Last active
January 12, 2019 16:54
-
-
Save harryhare/d6984551d5c93ef158182f2d037223d0 to your computer and use it in GitHub Desktop.
stardraw valley save file edit (星露谷游戏存档修改,Artifact Spot, item stack/ quality)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<item> | |
<key> | |
<Vector2> | |
<X>22</X> | |
<Y>88</Y> | |
</Vector2> | |
</key> | |
<value> | |
<Object> | |
<category>0</category> | |
<name>Artifact Spot</name> | |
<parentSheetIndex>590</parentSheetIndex> | |
<specialItem>false</specialItem> | |
<hasBeenInInventory>false</hasBeenInInventory> | |
<SpecialVariable>0</SpecialVariable> | |
<DisplayName>Artifact Spot</DisplayName> | |
<Name>Artifact Spot</Name> | |
<Stack>1</Stack> | |
<tileLocation> | |
<X>22</X> | |
<Y>88</Y> | |
</tileLocation> | |
<owner>0</owner> | |
<type>asdf</type> | |
<canBeSetDown>true</canBeSetDown> | |
<canBeGrabbed>true</canBeGrabbed> | |
<isHoedirt>false</isHoedirt> | |
<isSpawnedObject>false</isSpawnedObject> | |
<questItem>false</questItem> | |
<questId>0</questId> | |
<isOn>true</isOn> | |
<fragility>0</fragility> | |
<price>0</price> | |
<edibility>-300</edibility> | |
<stack>1</stack> | |
<quality>0</quality> | |
<bigCraftable>false</bigCraftable> | |
<setOutdoors>false</setOutdoors> | |
<setIndoors>false</setIndoors> | |
<readyForHarvest>false</readyForHarvest> | |
<showNextIndex>false</showNextIndex> | |
<flipped>true</flipped> | |
<hasBeenPickedUpByFarmer>false</hasBeenPickedUpByFarmer> | |
<isRecipe>false</isRecipe> | |
<isLamp>false</isLamp> | |
<minutesUntilReady>0</minutesUntilReady> | |
<boundingBox> | |
<X>1408</X> | |
<Y>5632</Y> | |
<Width>64</Width> | |
<Height>64</Height> | |
<Location> | |
<X>1408</X> | |
<Y>5632</Y> | |
</Location> | |
</boundingBox> | |
<scale> | |
<X>0</X> | |
<Y>0</Y> | |
</scale> | |
<uses>0</uses> | |
<preservedParentSheetIndex>0</preservedParentSheetIndex> | |
</Object> | |
</value> | |
</item> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="utf-8"?> | |
<CheatTable CheatEngineTableVersion="26"> | |
<CheatEntries> | |
<CheatEntry> | |
<ID>19</ID> | |
<Description>"cost no stamina(AOB)"</Description> | |
<LastState/> | |
<VariableType>Auto Assembler Script</VariableType> | |
<AssemblerScript>{ Game : Stardew Valley.exe | |
Version: | |
Date : 2018-12-27 | |
Author : Administrator | |
This script does blah blah blah | |
} | |
[ENABLE] | |
aobscan(INJECT,D9 1C 24 8B 01 8B 40 38 FF 10 59) // should be unique | |
alloc(newmem,$1000) | |
label(code) | |
label(return) | |
newmem: | |
fstp dword ptr [esp] | |
fld dword ptr [ebp-08] | |
code: | |
fstp dword ptr [esp] | |
mov eax,[ecx] | |
jmp return | |
INJECT: | |
jmp newmem | |
return: | |
registersymbol(INJECT) | |
[DISABLE] | |
INJECT: | |
db D9 1C 24 8B 01 | |
unregistersymbol(INJECT) | |
dealloc(newmem) | |
{ | |
// ORIGINAL CODE - INJECTION POINT: 072BBA22 | |
""+72BB9FB: 83 EC 04 - sub esp,04 | |
""+72BB9FE: D9 1C 24 - fstp dword ptr [esp] | |
""+72BBA01: FF 75 08 - push [ebp+08] | |
""+72BBA04: 68 00 00 80 C1 - push C1800000 | |
""+72BBA09: E8 02 0D 17 67 - call mscorlib.ni.dll+37C710 | |
""+72BBA0E: 83 EC 04 - sub esp,04 | |
""+72BBA11: D9 1C 24 - fstp dword ptr [esp] | |
""+72BBA14: E8 47 0D 17 67 - call mscorlib.ni.dll+37C760 | |
""+72BBA19: 8B 8E F4 01 00 00 - mov ecx,[esi+000001F4] | |
""+72BBA1F: 83 EC 04 - sub esp,04 | |
// ---------- INJECTING HERE ---------- | |
""+72BBA22: D9 1C 24 - fstp dword ptr [esp] | |
""+72BBA25: 8B 01 - mov eax,[ecx] | |
// ---------- DONE INJECTING ---------- | |
""+72BBA27: 8B 40 38 - mov eax,[eax+38] | |
""+72BBA2A: FF 10 - call dword ptr [eax] | |
""+72BBA2C: 59 - pop ecx | |
""+72BBA2D: 5E - pop esi | |
""+72BBA2E: 5D - pop ebp | |
""+72BBA2F: C2 04 00 - ret 0004 | |
""+72BBA32: 00 00 - add [eax],al | |
""+72BBA34: 00 00 - add [eax],al | |
""+72BBA36: 00 00 - add [eax],al | |
""+72BBA38: D0 A7 5F 0E 00 00 - shl byte ptr [edi+00000E5F],1 | |
} | |
</AssemblerScript> | |
</CheatEntry> | |
<CheatEntry> | |
<ID>8</ID> | |
<Description>"clock"</Description> | |
<VariableType>4 Bytes</VariableType> | |
<Address>"GalaxyPeer.dll"+00A7CE1C</Address> | |
<Offsets> | |
<Offset>3C</Offset> | |
<Offset>3C0</Offset> | |
<Offset>5C</Offset> | |
<Offset>34</Offset> | |
</Offsets> | |
</CheatEntry> | |
<CheatEntry> | |
<ID>13</ID> | |
<Description>"cost no money"</Description> | |
<LastState/> | |
<VariableType>Auto Assembler Script</VariableType> | |
<AssemblerScript>{ Game : Stardew Valley.exe | |
Version: | |
Date : 2018-12-27 | |
Author : Administrator | |
This script does blah blah blah | |
} | |
[ENABLE] | |
aobscan(INJECT,2B 55 08 8B CE) // should be unique | |
alloc(newmem,$1000) | |
label(code) | |
label(return) | |
newmem: | |
push eax | |
mov eax,[ebp+08] | |
cmp eax,0 | |
pop eax | |
jg return | |
code: | |
sub edx,[ebp+08] | |
mov ecx,esi | |
jmp return | |
INJECT: | |
jmp newmem | |
return: | |
registersymbol(INJECT) | |
[DISABLE] | |
INJECT: | |
db 2B 55 08 8B CE | |
unregistersymbol(INJECT) | |
dealloc(newmem) | |
{ | |
// ORIGINAL CODE - INJECTION POINT: 095CCB88 | |
""+95CCB69: 73 07 - jae 095CCB72 | |
""+95CCB6B: FF 24 95 D0 CB 5C 09 - jmp dword ptr [edx*4+095CCBD0] | |
""+95CCB72: 5E - pop esi | |
""+95CCB73: 5D - pop ebp | |
""+95CCB74: C2 04 00 - ret 0004 | |
""+95CCB77: 38 06 - cmp [esi],al | |
""+95CCB79: 8B 86 F8 01 00 00 - mov eax,[esi+000001F8] | |
""+95CCB7F: 8B 40 24 - mov eax,[eax+24] | |
""+95CCB82: 8B 40 04 - mov eax,[eax+04] | |
""+95CCB85: 8B 50 28 - mov edx,[eax+28] | |
// ---------- INJECTING HERE ---------- | |
""+95CCB88: 2B 55 08 - sub edx,[ebp+08] | |
""+95CCB8B: 8B CE - mov ecx,esi | |
// ---------- DONE INJECTING ---------- | |
""+95CCB8D: FF 15 74 A1 EB 00 - call dword ptr [00EBA174] | |
""+95CCB93: 5E - pop esi | |
""+95CCB94: 5D - pop ebp | |
""+95CCB95: C2 04 00 - ret 0004 | |
""+95CCB98: 8B 8E 74 01 00 00 - mov ecx,[esi+00000174] | |
""+95CCB9E: BA 48 F7 0C 06 - mov edx,060CF748 | |
""+95CCBA3: E8 00 99 3E FD - call 069B64A8 | |
""+95CCBA8: 2B 45 08 - sub eax,[ebp+08] | |
""+95CCBAB: 8B D0 - mov edx,eax | |
""+95CCBAD: 8B 8E 74 01 00 00 - mov ecx,[esi+00000174] | |
} | |
</AssemblerScript> | |
</CheatEntry> | |
<CheatEntry> | |
<ID>48</ID> | |
<Description>"no harm"</Description> | |
<LastState/> | |
<VariableType>Auto Assembler Script</VariableType> | |
<AssemblerScript>{ Game : Stardew Valley.exe | |
Version: | |
Date : 2018-12-31 | |
Author : Administrator | |
This script does blah blah blah | |
} | |
[ENABLE] | |
aobscan(INJECT,2B 45 CC 85 C0 7E) // should be unique | |
alloc(newmem,$1000) | |
label(code) | |
label(return) | |
newmem: | |
test eax,eax | |
jmp return | |
code: | |
sub eax,[ebp-34] | |
test eax,eax | |
jmp return | |
INJECT: | |
jmp newmem | |
return: | |
registersymbol(INJECT) | |
[DISABLE] | |
INJECT: | |
db 2B 45 CC 85 C0 | |
unregistersymbol(INJECT) | |
dealloc(newmem) | |
{ | |
// ORIGINAL CODE - INJECTION POINT: 0A410416 | |
""+A4103F2: FF 50 18 - call dword ptr [eax+18] | |
""+A4103F5: 03 F0 - add esi,eax | |
""+A4103F7: 2B B3 C0 02 00 00 - sub esi,[ebx+000002C0] | |
""+A4103FD: 8B C6 - mov eax,esi | |
""+A4103FF: 83 F8 01 - cmp eax,01 | |
""+A410402: 7E 05 - jle 0A410409 | |
""+A410404: 89 45 CC - mov [ebp-34],eax | |
""+A410407: EB 07 - jmp 0A410410 | |
""+A410409: C7 45 CC 01 00 00 00 - mov [ebp-34],00000001 | |
""+A410410: 8B 83 0C 03 00 00 - mov eax,[ebx+0000030C] | |
// ---------- INJECTING HERE ---------- | |
""+A410416: 2B 45 CC - sub eax,[ebp-34] | |
""+A410419: 85 C0 - test eax,eax | |
// ---------- DONE INJECTING ---------- | |
""+A41041B: 7E 02 - jle 0A41041F | |
""+A41041D: EB 02 - jmp 0A410421 | |
""+A41041F: 33 C0 - xor eax,eax | |
""+A410421: 89 83 0C 03 00 00 - mov [ebx+0000030C],eax | |
""+A410427: C6 83 77 03 00 00 01 - mov byte ptr [ebx+00000377],01 | |
""+A41042E: 8B 4B 44 - mov ecx,[ebx+44] | |
""+A410431: 38 01 - cmp [ecx],al | |
""+A410433: E8 B0 49 95 FC - call 06D64DE8 | |
""+A410438: 8B 70 54 - mov esi,[eax+54] | |
""+A41043B: 8D 7D BC - lea edi,[ebp-44] | |
} | |
</AssemblerScript> | |
</CheatEntry> | |
<CheatEntry> | |
<ID>36</ID> | |
<Description>"bar game(pirate king infinite life)"</Description> | |
<LastState/> | |
<VariableType>Auto Assembler Script</VariableType> | |
<AssemblerScript>{ Game : Stardew Valley.exe | |
Version: | |
Date : 2018-12-31 | |
Author : Administrator | |
This script does blah blah blah | |
} | |
[ENABLE] | |
aobscan(INJECT,FF 4B 60 C7 05 B0 5D 5D 00 88 13 00 00) // should be unique | |
alloc(newmem,$1000) | |
label(code) | |
label(return) | |
newmem: | |
mov [005D5DB0],00001388 | |
jmp return | |
code: | |
dec [ebx+60] | |
mov [005D5DB0],00001388 | |
jmp return | |
INJECT: | |
jmp newmem | |
nop | |
nop | |
nop | |
nop | |
nop | |
nop | |
nop | |
nop | |
return: | |
registersymbol(INJECT) | |
[DISABLE] | |
INJECT: | |
db FF 4B 60 C7 05 B0 5D 5D 00 88 13 00 00 | |
unregistersymbol(INJECT) | |
dealloc(newmem) | |
{ | |
// ORIGINAL CODE - INJECTION POINT: 0D9BAA86 | |
""+D9BAA58: 39 09 - cmp [ecx],ecx | |
""+D9BAA5A: E8 31 BA A5 60 - call mscorlib.ni.dll+366490 | |
""+D9BAA5F: A1 8C 5D 5D 00 - mov eax,[005D5D8C] | |
""+D9BAA64: 05 10 27 00 00 - add eax,00002710 | |
""+D9BAA69: 3D 80 38 01 00 - cmp eax,00013880 | |
""+D9BAA6E: 7D 02 - jnl 0D9BAA72 | |
""+D9BAA70: EB 05 - jmp 0D9BAA77 | |
""+D9BAA72: B8 80 38 01 00 - mov eax,00013880 | |
""+D9BAA77: A3 8C 5D 5D 00 - mov [005D5D8C],eax | |
""+D9BAA7C: C7 05 90 5D 5D 00 A0 0F 00 00 - mov [005D5D90],00000FA0 | |
// ---------- INJECTING HERE ---------- | |
""+D9BAA86: FF 4B 60 - dec [ebx+60] | |
""+D9BAA89: C7 05 B0 5D 5D 00 88 13 00 00 - mov [005D5DB0],00001388 | |
// ---------- DONE INJECTING ---------- | |
""+D9BAA93: 80 3D D6 5D 5D 00 00 - cmp byte ptr [005D5DD6],00 | |
""+D9BAA9A: 74 29 - je 0D9BAAC5 | |
""+D9BAA9C: D9 05 D0 AC 9B 0D - fld dword ptr [0D9BACD0] | |
""+D9BAAA2: D9 05 D8 AC 9B 0D - fld dword ptr [0D9BACD8] | |
""+D9BAAA8: 8D 93 AC 00 00 00 - lea edx,[ebx+000000AC] | |
""+D9BAAAE: D9 C9 - fxch st(1) | |
""+D9BAAB0: D9 1A - fstp dword ptr [edx] | |
""+D9BAAB2: D9 5A 04 - fstp dword ptr [edx+04] | |
""+D9BAAB5: 8B 0D 88 A9 06 05 - mov ecx,[0506A988] | |
""+D9BAABB: E8 A8 AB 87 F9 - call 07235668 | |
} | |
</AssemblerScript> | |
</CheatEntry> | |
<CheatEntry> | |
<ID>34</ID> | |
<Description>"bar game(jumimo kart infinite life)"</Description> | |
<LastState/> | |
<VariableType>Auto Assembler Script</VariableType> | |
<AssemblerScript>{ Game : Stardew Valley.exe | |
Version: | |
Date : 2018-12-31 | |
Author : Administrator | |
This script does blah blah blah | |
} | |
[ENABLE] | |
aobscan(INJECT,FF 88 8C 00 00 00 8B) // should be unique | |
alloc(newmem,$1000) | |
label(code) | |
label(return) | |
newmem: | |
jmp return | |
code: | |
dec [eax+0000008C] | |
jmp return | |
INJECT: | |
jmp newmem | |
nop | |
return: | |
registersymbol(INJECT) | |
[DISABLE] | |
INJECT: | |
db FF 88 8C 00 00 00 | |
unregistersymbol(INJECT) | |
dealloc(newmem) | |
{ | |
// ORIGINAL CODE - INJECTION POINT: 0D841D16 | |
""+D841CE1: D9 80 9C 00 00 00 - fld dword ptr [eax+0000009C] | |
""+D841CE7: DB 40 6C - fild dword ptr [eax+6C] | |
""+D841CEA: D9 9D D0 FC FF FF - fstp dword ptr [ebp-00000330] | |
""+D841CF0: D9 85 D0 FC FF FF - fld dword ptr [ebp-00000330] | |
""+D841CF6: DF F1 - fcomip st(0),st(1) | |
""+D841CF8: DD D8 - fstp st(0) | |
""+D841CFA: 0F 8A DA 01 00 00 - jp 0D841EDA | |
""+D841D00: 0F 83 D4 01 00 00 - jae 0D841EDA | |
""+D841D06: 8B 85 E4 FC FF FF - mov eax,[ebp-0000031C] | |
""+D841D0C: C7 80 9C 00 00 00 F0 23 74 C9 - mov [eax+0000009C],C97423F0 | |
// ---------- INJECTING HERE ---------- | |
""+D841D16: FF 88 8C 00 00 00 - dec [eax+0000008C] | |
// ---------- DONE INJECTING ---------- | |
""+D841D1C: 8B 0D E8 A6 06 05 - mov ecx,[0506A6E8] | |
""+D841D22: E8 41 39 9F F9 - call 07235668 | |
""+D841D27: 8B 85 E4 FC FF FF - mov eax,[ebp-0000031C] | |
""+D841D2D: 83 B8 88 00 00 00 00 - cmp dword ptr [eax+00000088],00 | |
""+D841D34: 0F 85 04 01 00 00 - jne 0D841E3E | |
""+D841D3A: 8B 85 E4 FC FF FF - mov eax,[ebp-0000031C] | |
""+D841D40: DB 80 8C 00 00 00 - fild dword ptr [eax+0000008C] | |
""+D841D46: D9 9D D0 FC FF FF - fstp dword ptr [ebp-00000330] | |
""+D841D4C: D9 85 D0 FC FF FF - fld dword ptr [ebp-00000330] | |
""+D841D52: D9 EE - fldz | |
} | |
</AssemblerScript> | |
</CheatEntry> | |
<CheatEntry> | |
<ID>38</ID> | |
<Description>"bar game (add money)"</Description> | |
<LastState/> | |
<VariableType>Auto Assembler Script</VariableType> | |
<AssemblerScript>{ Game : Stardew Valley.exe | |
Version: | |
Date : 2018-12-31 | |
Author : Administrator | |
This script does blah blah blah | |
} | |
[ENABLE] | |
aobscan(INJECT,FF 40 64 8B 0D 44 98 06 05) // should be unique | |
alloc(newmem,$1000) | |
label(code) | |
label(return) | |
newmem: | |
add [eax+64],100 | |
mov ecx,[05069844] | |
jmp return | |
code: | |
inc [eax+64] | |
mov ecx,[05069844] | |
jmp return | |
INJECT: | |
jmp newmem | |
nop | |
nop | |
nop | |
nop | |
return: | |
registersymbol(INJECT) | |
[DISABLE] | |
INJECT: | |
db FF 40 64 8B 0D 44 98 06 05 | |
unregistersymbol(INJECT) | |
dealloc(newmem) | |
{ | |
// ORIGINAL CODE - INJECTION POINT: 0D8018F8 | |
""+D8018D4: 8B 85 3C FE FF FF - mov eax,[ebp-000001C4] | |
""+D8018DA: 8B 48 1C - mov ecx,[eax+1C] | |
""+D8018DD: 8B 40 34 - mov eax,[eax+34] | |
""+D8018E0: 05 D0 07 00 00 - add eax,000007D0 | |
""+D8018E5: 50 - push eax | |
""+D8018E6: 8B 55 DC - mov edx,[ebp-24] | |
""+D8018E9: 39 09 - cmp [ecx],ecx | |
""+D8018EB: E8 70 3C 3B 61 - call mscorlib.ni.dll+B05560 | |
""+D8018F0: EB 59 - jmp 0D80194B | |
""+D8018F2: 8B 85 3C FE FF FF - mov eax,[ebp-000001C4] | |
// ---------- INJECTING HERE ---------- | |
""+D8018F8: FF 40 64 - inc [eax+64] | |
""+D8018FB: 8B 0D 44 98 06 05 - mov ecx,[05069844] | |
// ---------- DONE INJECTING ---------- | |
""+D801901: E8 62 3D A3 F9 - call 07235668 | |
""+D801906: EB 43 - jmp 0D80194B | |
""+D801908: 8B 85 3C FE FF FF - mov eax,[ebp-000001C4] | |
""+D80190E: 83 40 64 05 - add dword ptr [eax+64],05 | |
""+D801912: 8B 0D 44 98 06 05 - mov ecx,[05069844] | |
""+D801918: E8 4B 3D A3 F9 - call 07235668 | |
""+D80191D: 8B 0D 44 98 06 05 - mov ecx,[05069844] | |
""+D801923: E8 40 3D A3 F9 - call 07235668 | |
""+D801928: EB 21 - jmp 0D80194B | |
""+D80192A: 8B 85 3C FE FF FF - mov eax,[ebp-000001C4] | |
} | |
</AssemblerScript> | |
</CheatEntry> | |
<CheatEntry> | |
<ID>53</ID> | |
<Description>"bar game(search 80000 4byte)"</Description> | |
<VariableType>4 Bytes</VariableType> | |
<Address>00485D8C</Address> | |
</CheatEntry> | |
<CheatEntry> | |
<ID>56</ID> | |
<Description>"bar game (infinte money)"</Description> | |
<LastState/> | |
<VariableType>Auto Assembler Script</VariableType> | |
<AssemblerScript>{ Game : Stardew Valley.exe | |
Version: | |
Date : 2019-01-06 | |
Author : Administrator | |
This script does blah blah blah | |
} | |
[ENABLE] | |
aobscan(INJECT,8B 40 64 8B 95 50 FD FF FF) // should be unique | |
alloc(newmem,$1000) | |
label(code) | |
label(return) | |
newmem: | |
mov [eax+64],1000 | |
code: | |
mov eax,[eax+64] | |
mov edx,[ebp-000002B0] | |
jmp return | |
INJECT: | |
jmp newmem | |
nop | |
nop | |
nop | |
nop | |
return: | |
registersymbol(INJECT) | |
[DISABLE] | |
INJECT: | |
db 8B 40 64 8B 95 50 FD FF FF | |
unregistersymbol(INJECT) | |
dealloc(newmem) | |
{ | |
// ORIGINAL CODE - INJECTION POINT: 0F4CE03A | |
""+F4CE002: 8B 95 24 FD FF FF - mov edx,[ebp-000002DC] | |
""+F4CE008: E8 5B F7 D2 FF - call 0F1FD768 | |
""+F4CE00D: B9 38 16 57 6E - mov ecx,mscorlib.ni.dll+4C1638 | |
""+F4CE012: E8 B1 50 FA F0 - call 004730C8 | |
""+F4CE017: 89 85 50 FD FF FF - mov [ebp-000002B0],eax | |
""+F4CE01D: A1 38 36 F0 04 - mov eax,[04F03638] | |
""+F4CE022: 89 85 D4 FC FF FF - mov [ebp-0000032C],eax | |
""+F4CE028: 8B 05 90 5E FF 04 - mov eax,[04FF5E90] | |
""+F4CE02E: 89 85 BC E4 FF FF - mov [ebp-00001B44],eax | |
""+F4CE034: 8B 85 88 E4 FF FF - mov eax,[ebp-00001B78] | |
// ---------- INJECTING HERE ---------- | |
""+F4CE03A: 8B 40 64 - mov eax,[eax+64] | |
""+F4CE03D: 8B 95 50 FD FF FF - mov edx,[ebp-000002B0] | |
// ---------- DONE INJECTING ---------- | |
""+F4CE043: 89 42 04 - mov [edx+04],eax | |
""+F4CE046: 8B 85 50 FD FF FF - mov eax,[ebp-000002B0] | |
""+F4CE04C: 89 85 B8 E4 FF FF - mov [ebp-00001B48],eax | |
""+F4CE052: 8B 8D BC E4 FF FF - mov ecx,[ebp-00001B44] | |
""+F4CE058: 8B 95 B8 E4 FF FF - mov edx,[ebp-00001B48] | |
""+F4CE05E: E8 DD 81 F9 5E - call mscorlib.ni.dll+3B6240 | |
""+F4CE063: 89 85 D0 FC FF FF - mov [ebp-00000330],eax | |
""+F4CE069: 8D BD C8 FC FF FF - lea edi,[ebp-00000338] | |
""+F4CE06F: 8B 35 D8 38 F0 04 - mov esi,[04F038D8] | |
""+F4CE075: 83 C6 04 - add esi,04 | |
} | |
</AssemblerScript> | |
</CheatEntry> | |
<CheatEntry> | |
<ID>58</ID> | |
<Description>"bar game (one shut kill)"</Description> | |
<LastState/> | |
<VariableType>Auto Assembler Script</VariableType> | |
<AssemblerScript>{ Game : Stardew Valley.exe | |
Version: | |
Date : 2019-01-06 | |
Author : Administrator | |
This script does blah blah blah | |
} | |
[ENABLE] | |
aobscan(INJECT,29 7E 04 83 7E 04 00) // should be unique | |
alloc(newmem,$1000) | |
label(code) | |
label(return) | |
newmem: | |
mov edi,0 | |
code: | |
sub [esi+04],edi | |
cmp dword ptr [esi+04],00 | |
jmp return | |
INJECT: | |
jmp newmem | |
nop | |
nop | |
return: | |
registersymbol(INJECT) | |
[DISABLE] | |
INJECT: | |
db 29 7E 04 83 7E 04 00 | |
unregistersymbol(INJECT) | |
dealloc(newmem) | |
{ | |
// ORIGINAL CODE - INJECTION POINT: 0F27E1C5 | |
""+F27E1B1: 8B C1 - mov eax,ecx | |
""+F27E1B3: EB 05 - jmp 0F27E1BA | |
""+F27E1B5: E8 56 37 26 5F - call mscorlib.ni.dll+431910 | |
""+F27E1BA: 83 F8 05 - cmp eax,05 | |
""+F27E1BD: 7D 06 - jnl 0F27E1C5 | |
""+F27E1BF: 33 C0 - xor eax,eax | |
""+F27E1C1: 5E - pop esi | |
""+F27E1C2: 5F - pop edi | |
""+F27E1C3: 5D - pop ebp | |
""+F27E1C4: C3 - ret | |
// ---------- INJECTING HERE ---------- | |
""+F27E1C5: 29 7E 04 - sub [esi+04],edi | |
""+F27E1C8: 83 7E 04 00 - cmp dword ptr [esi+04],00 | |
// ---------- DONE INJECTING ---------- | |
""+F27E1CC: 7D 09 - jnl 0F27E1D7 | |
""+F27E1CE: B8 01 00 00 00 - mov eax,00000001 | |
""+F27E1D3: 5E - pop esi | |
""+F27E1D4: 5F - pop edi | |
""+F27E1D5: 5D - pop ebp | |
""+F27E1D6: C3 - ret | |
""+F27E1D7: C7 46 18 00 00 16 43 - mov [esi+18],43160000 | |
""+F27E1DE: 8B 0D C8 75 FF 04 - mov ecx,[04FF75C8] | |
""+F27E1E4: E8 67 95 99 FA - call 09C17750 | |
""+F27E1E9: 33 C0 - xor eax,eax | |
} | |
</AssemblerScript> | |
</CheatEntry> | |
</CheatEntries> | |
<CheatCodes> | |
<CodeEntry> | |
<Description>Change of fstp dword ptr [esi+28]</Description> | |
<Address>067B6EE5</Address> | |
<ModuleName/> | |
<ModuleNameOffset>0</ModuleNameOffset> | |
<Before> | |
<Byte>74</Byte> | |
<Byte>0B</Byte> | |
<Byte>D9</Byte> | |
<Byte>45</Byte> | |
<Byte>08</Byte> | |
</Before> | |
<Actual> | |
<Byte>D9</Byte> | |
<Byte>5E</Byte> | |
<Byte>28</Byte> | |
</Actual> | |
<After> | |
<Byte>5E</Byte> | |
<Byte>5D</Byte> | |
<Byte>C2</Byte> | |
<Byte>04</Byte> | |
<Byte>00</Byte> | |
</After> | |
</CodeEntry> | |
<CodeEntry> | |
<Description>Change of fsubr dword ptr [ebp-40]</Description> | |
<Address>0E14A619</Address> | |
<ModuleName/> | |
<ModuleNameOffset>0</ModuleNameOffset> | |
<Before> | |
<Byte>FE</Byte> | |
<Byte>FF</Byte> | |
<Byte>FF</Byte> | |
<Byte>DE</Byte> | |
<Byte>E1</Byte> | |
</Before> | |
<Actual> | |
<Byte>D8</Byte> | |
<Byte>6D</Byte> | |
<Byte>C0</Byte> | |
</Actual> | |
<After> | |
<Byte>83</Byte> | |
<Byte>EC</Byte> | |
<Byte>04</Byte> | |
<Byte>D9</Byte> | |
<Byte>1C</Byte> | |
</After> | |
</CodeEntry> | |
<CodeEntry> | |
<Description>Change of call StardewValley.Farmer::set_Stamina</Description> | |
<Address>0E14A625</Address> | |
<ModuleName/> | |
<ModuleNameOffset>0</ModuleNameOffset> | |
<Before> | |
<Byte>1C</Byte> | |
<Byte>24</Byte> | |
<Byte>8B</Byte> | |
<Byte>4D</Byte> | |
<Byte>08</Byte> | |
</Before> | |
<Actual> | |
<Byte>E8</Byte> | |
<Byte>4E</Byte> | |
<Byte>1E</Byte> | |
<Byte>D5</Byte> | |
<Byte>FB</Byte> | |
</Actual> | |
<After> | |
<Byte>85</Byte> | |
<Byte>FF</Byte> | |
<Byte>79</Byte> | |
<Byte>03</Byte> | |
<Byte>83</Byte> | |
</After> | |
</CodeEntry> | |
</CheatCodes> | |
<UserdefinedSymbols/> | |
</CheatTable> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import xml.dom.minidom | |
''' | |
FarmHouse | |
Farm | |
FarmCave | |
Town | |
SeedShop | |
Beach | |
Mountain | |
Forest | |
WizardHouse | |
BusStop | |
Sewer | |
Desert | |
Club | |
LibraryMuseum | |
AdventureGuild | |
Woods | |
Railroad | |
Summit | |
BathHousePool | |
CommunityCenter | |
JojaMart | |
Cellar | |
BeachNightMarket | |
MermaidHouse | |
Submarine | |
''' | |
# save file: | |
def save(filename, dom): | |
content=dom.toxml(encoding='utf-8') | |
file=open(filename,"wb") | |
file.write(content) | |
file.close() | |
def load(filename): | |
file=open(filename,encoding="utf-8") | |
dom=xml.dom.minidom.parse(file) | |
file.close() | |
return dom | |
def find_artifact_item(gamelocation): | |
#gamelocation=localtionMap["Forest"] | |
objects = gamelocation.getElementsByTagName("objects")[0] | |
artifact_item = None | |
for item in objects.getElementsByTagName("item"): | |
object = item.getElementsByTagName("Object")[0] | |
name_node = item.getElementsByTagName("Name")[0] | |
name=name_node.childNodes[0].data | |
if(name=="Artifact Spot"): | |
artifact_node=item | |
print(artifact_node) | |
save("artifact_item.xml",artifact_node) | |
def spawn(gamelocation,x_min,y_min,x_max,y_max): | |
#gamelocation=localtionMap[place] | |
objects = gamelocation.getElementsByTagName("objects")[0] | |
item=load("artifact_item.xml") | |
item=item.getElementsByTagName("item")[0] | |
for x in range(x_min,x_max): | |
for y in range(y_min,y_max): | |
item_new=item.cloneNode(item) | |
vector=item_new.getElementsByTagName("key")[0].getElementsByTagName("Vector2")[0] | |
x_node=vector.getElementsByTagName("X")[0] | |
x_node.childNodes[0].data=str(x) | |
y_node=vector.getElementsByTagName("Y")[0] | |
y_node.childNodes[0].data=str(y) | |
tileLocation=item_new.getElementsByTagName("value")[0].getElementsByTagName("Object")[0].getElementsByTagName("tileLocation")[0] | |
x_node=tileLocation.getElementsByTagName("X")[0] | |
x_node.childNodes[0].data=str(x) | |
y_node=tileLocation.getElementsByTagName("Y")[0] | |
y_node.childNodes[0].data=str(y) | |
objects.appendChild(item_new) | |
filename = 'C:\\Users\\harryhare\\AppData\\Roaming\\StardewValley\\Saves\\harryhare_205343769\\harryhare_205343769' | |
file = open(filename,encoding='utf-8-sig') | |
dom = xml.dom.minidom.parse(file) | |
file.close() | |
player = dom.getElementsByTagName("player") | |
locations = dom.getElementsByTagName("locations")[0] | |
localtionMap={} | |
for gamelocation in locations.getElementsByTagName("GameLocation"): | |
name=gamelocation.getAttribute("xsi:type") | |
if name!="": | |
localtionMap[name]=gamelocation | |
# print(name) | |
# need to change name and position accrodingly | |
# todo need to assure the positions don't overlapped | |
spawn(localtionMap["Farm"],30,30,42,42) | |
spawn(localtionMap["Town"],55,27,70,33) | |
spawn(localtionMap["Beach"],20,9,35,18) | |
spawn(localtionMap["Mountain"],8,8,20,14) | |
# spawn(localtionMap["Mountain"],8,27,20,36) | |
spawn(localtionMap["Forest"],64,13,76,25) | |
spawn(localtionMap["Railroad"],32,50,41,56) | |
spawn(localtionMap["Woods"],26,5,32,14) | |
spawn(localtionMap["Desert"],25,13,33,20) | |
# spawn(localtionMap["Desert"],25,15,43,21) | |
save(filename,dom) | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# change item in a fixed chest (need to change the index according to save file when use) | |
import xml.dom.minidom | |
filename = 'C:\\Users\\harryhare\\AppData\\Roaming\\StardewValley\\Saves\\harryhare_205343769\\harryhare_205343769' | |
file = open(filename,encoding='utf-8-sig') | |
dom = xml.dom.minidom.parse(file) | |
file.close() | |
player = dom.getElementsByTagName("player") | |
locations = dom.getElementsByTagName("locations")[0] | |
gamelocation = locations.getElementsByTagName("GameLocation")[0] | |
objects = gamelocation.getElementsByTagName("objects")[0] | |
item = objects.getElementsByTagName("item")[2] | |
object = item.getElementsByTagName("Object")[0] | |
items = object.getElementsByTagName("items")[0] | |
def printitem(items): | |
for item in items.getElementsByTagName("Item"): | |
name= item.getElementsByTagName("Name")[0] | |
print(name.childNodes[0].data) | |
stack = item.getElementsByTagName("stack")[0] | |
print(stack.childNodes[0].data) | |
Stack = item.getElementsByTagName("Stack")[0] | |
print(Stack.childNodes[0].data) | |
quality = item.getElementsByTagName("quality")[0] | |
print(quality.childNodes[0].data) | |
def setitem(items): | |
for item in items.getElementsByTagName("Item"): | |
stack = item.getElementsByTagName("stack")[0] | |
stack.childNodes[0].data=222 | |
Stack = item.getElementsByTagName("Stack")[0] | |
Stack.childNodes[0].data=222 | |
quality = item.getElementsByTagName("quality")[0] | |
quality.childNodes[0].data=2 | |
# todo edit friend ship | |
# printitem(items) | |
setitem(items) | |
printitem(items) | |
# save file: | |
content=dom.toxml(encoding='utf-8') | |
#print(content[:20]) | |
file=open(filename,"wb") | |
file.write(content) | |
file.close() | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment