Becaro Es wrote: ↑Mon Oct 21, 2019 3:22 pm
it worked, but the game crashed when i move to other area
Well, it's a progress.
It crash because, it run code that's not yet initialized, to make it not crash you have to add cooking recipe, maybe
This should fix the crash but it will not read your bug picture book.
Just paste it directly into CE
Code: Select all
<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
<CheatEntries>
<CheatEntry>
<ID>4611</ID>
<Description>"Easy Bug Catching"</Description>
<LastState/>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>[ENABLE]
assert(BugController:Update,55 48 8B EC 56)
alloc(newmem2,2048,BugController:Update)
label(returnhere2)
getmonostruct(BugController)
getmonostruct(BugDataModel)
getmonostruct(BugMasterModel)
newmem2:
push rbp
mov rbp,rsp
push rsi
test rcx,rcx
je short @f
mov byte ptr[rcx+BugController.mIsStay],1
mov rsi,[rcx+BugController.mBugModel]
test rsi,rsi
je short @f
mov rsi,[rsi+BugDataModel.mBugData]
test rsi,rsi
je short @f
mov byte ptr[rsi+BugMasterModel.mIsRandomQuality],0
mov dword ptr[rsi+BugMasterModel.mQuality],#10
@@:
jmp returnhere2
BugController:Update:
jmp newmem2
returnhere2:
assert(BugPointController:GetBugData,55 48 8B EC 56)
aobscanregion(_GetMapName,TextUtility:GetMapName,TextUtility:GetMapName+50,49)
aobscanregion(_FarmPlayerControllerUpdate,FarmPlayerController:Update,FarmPlayerController:Update+50,49)
//aobscanregion(_ListContains,FarmModel:AddCookingRecipe,FarmModel:AddCookingRecipe+50,49)
getmonostruct(MasterManager)
getmonostruct(BugMasterCollection)
getmonostruct(BugMasterModel)
getmonostruct(UserManager)
getmonostruct(UserModel)
getmonostruct(PicturebookModel)
getmonostruct(BugDataModel)
alloc(newmem,2048,BugPointController:GetBugData)
label(returnhere)
label(exit)
label(temp)
newmem:
push rbp
mov rbp,rsp
push rsi
lea rdx,[rdx]
test rdx,rdx
je long exit
mov [temp],rax
mov [temp+8],rbx
mov [temp+10],rcx
mov [temp+18],rdx
mov [temp+20],r8
mov [temp+28],r9
mov [temp+30],r10
mov [temp+38],r11
readmem(_FarmPlayerControllerUpdate,31)
mov rcx,[rax+UserManager.mUser]
mov rcx,[rcx+UserModel.mBugPicturebookModel]
mov [temp+60],rcx
mov rcx,[rcx+PicturebookModel.mItemIdList]
mov [temp+50],rcx
mov rcx,[temp+60]
sub rsp,30
mov r11,"PicturebookModel:OnBeforeSerialize"
call r11
add rsp,30
readmem(_GetMapName,31)
mov rbx,rax
mov rbx,[rbx+MasterManager.mBugMaster]
mov rbx,[rbx+BugMasterCollection.mBugDatas]
mov [temp+58],rbx
@@:
xor rax,rax
mov rbx,[temp+58]
mov al,[temp+40]
cmp al,[rbx+38]
jnl short @f
mov rbx,[rbx+28]
mov rbx,[rbx+20+rax*8]
add byte ptr[temp+40],01
mov [temp+48],rbx
mov rbx,dword ptr[rbx+BugMasterModel.mItemId]
/*
mov rcx,[temp+50]
mov rax,rcx
mov rdx,rbx
sub rsp,20
cmp dword ptr [rax],00
reassemble(_ListContains)
call r11
add rsp,20
test eax,eax
jne short @b
*/
mov rdx,[temp+18]
mov dword ptr[rdx+18],01
mov rbx,[temp+48]
mov rdx,[rdx+20]
mov [rdx+BugDataModel.mBugData],rbx
jmp short exit
@@:
xor rcx,rcx
mov rax,[temp+50]
mov rbx,[temp+58]
mov eax,dword ptr[rax+18]
cmp eax,dword ptr[rbx+38]
jnl short exit
mov byte ptr[temp+40],0
exit:
mov rax,[temp]
mov rbx,[temp+8]
mov rcx,[temp+10]
mov rdx,[temp+18]
mov r8,[temp+20]
mov r9,[temp+28]
mov r10,[temp+30]
mov r11,[temp+38]
lea rdx,[rdx]
jmp returnhere
temp:
dq 0 0 0 0 0 0 0 0 0 0 0 0 0 0
BugPointController:GetBugData:
jmp newmem
returnhere:
[DISABLE]
dealloc(newmem2)
BugController:Update:
//push rbp
//mov rbp,rsp
//push rsi
db 55 48 8B EC 56
dealloc(newmem)
BugPointController:GetBugData:
//push rbp
//mov rbp,rsp
//push rsi
db 55 48 8B EC 56
</AssemblerScript>
</CheatEntry>
</CheatEntries>
</CheatTable>
And more pointer for latest table - paste it into the script...
Code: Select all
[ENABLE]
assert("ItemSlotModel:TryAddItem",55)
aobscanregion(FarmPlayerController,FarmPlayerController:Update,FarmPlayerController:Update+50,48 8B C8 83 39 00)
registersymbol(FarmPlayerController)
alloc(newmem,2048,FarmPlayerController)
label(returnhere)
label(temp)
label(exit)
label(_getstore)
label(_UserManager)
registersymbol(_UserManager)
aobscanregion(_ConvertRateToSpeed,FarmPlayerController:ConvertRateToSpeed,FarmPlayerController:ConvertRateToSpeed+50,48 B8)
label(_player)
[_ConvertRateToSpeed+2]-20:
_player:
registersymbol(_player)
assert("FarmModel:AddCookingRecipe",55)
aobscanregion(_GetMapName,TextUtility:GetMapName,TextUtility:GetMapName+50,49)
getmonostruct(MasterManager)
getmonostruct(CookingRecipeMasterModel)
getmonostruct(UserManager)
getmonostruct(UserModel)
getmonostruct(PlayerModel)
getmonostruct(TimeModel)
getmonostruct(StaminaModel)
getmonostruct(InventoryModel)
getmonostruct(FarmModel)
getmonostruct(CookingToolModel)
registersymbol(UserManager.mUser)
registersymbol(UserModel.mPlayer)
registersymbol(UserModel.mTime)
registersymbol(UserModel.mInventory)
registersymbol(UserModel.mPlayTime)
registersymbol(PlayerModel.mStamina)
registersymbol(PlayerModel.mMoney)
registersymbol(TimeModel.mYear)
registersymbol(TimeModel.mSeason)
registersymbol(TimeModel.mDayOfWeek)
registersymbol(TimeModel.mDay)
registersymbol(TimeModel.mHour)
registersymbol(TimeModel.mMinute)
registersymbol(TimeModel.mSecond)
registersymbol(StaminaModel.mNow)
registersymbol(StaminaModel.mMax)
registersymbol(StaminaModel.mIsEmpty)
registersymbol(StaminaModel.mCanConsume)
registersymbol(StaminaModel.mTiredStateIndex)
registersymbol(InventoryModel.mLevel)
registersymbol(UserModel.mFarm)
registersymbol(FarmModel.mCookingTools)
registersymbol(CookingToolModel.mProficiency)
registersymbol(FarmModel.mBugPoints)
newmem:
mov [temp],rax
mov [temp+8],rbx
mov [temp+10],rcx
mov [temp+18],rdx
mov [temp+20],r8
mov [temp+28],r9
mov [temp+30],r10
mov [temp+38],r11
cmp byte ptr[_UserManager+8],1
jne short exit
@@:
mov rcx,[_UserManager]
test rcx,rcx
je short exit
mov rcx,[rcx+UserManager.mUser]
test rcx,rcx
je short exit
call _getstore
test rcx,rcx
je short exit
mov rdx,dword ptr[_UserManager+C]
mov r8,dword ptr[_UserManager+10]
mov r9,dword ptr[_UserManager+14]
sub rsp,30
mov r11,"ItemSlotModel:TryAddItem"
call r11
add rsp,30
mov byte ptr[_UserManager+8],0
test rax,rax
jne short exit
cmp byte ptr[_UserManager+9],1
je short exit
mov byte ptr[_UserManager+9],1
jmp short @b
exit:
cmp byte ptr[_UserManager+A],1
jne long @f
readmem(_GetMapName,31)
mov rbx,rax
xor rax,rax
mov rbx,[rbx+MasterManager.mCookingRecipeMaster]
mov rbx,[rbx+10]
mov al,[_UserManager+B]
xor rdx,rdx
mov dl,[rbx+38]
sub rdx,2
cmp al,dl
cmovb rax,[_UserManager+A]
mov [_UserManager+A],al
xor rax,rax
mov al,[_UserManager+B]
mov rbx,[rbx+28]
mov rdx,[rbx+rax*8+20]
test rdx,rdx
add byte ptr[_UserManager+B],01
je short @f
mov rdx,dword ptr[rdx+10]
mov rcx,[temp]
test rcx,rcx
je short @f
mov rcx,[rcx+UserManager.mUser]
test rcx,rcx
je short @f
mov rcx,[rcx+UserModel.mFarm]
test rcx,rcx
je short @f
sub rsp,30
mov r11,"FarmModel:AddCookingRecipe"
call r11
add rsp,30
@@:
mov rax,[temp]
mov rbx,[temp+8]
mov rcx,[temp+10]
mov rdx,[temp+18]
mov r8,[temp+20]
mov r9,[temp+28]
mov r10,[temp+30]
mov r11,[temp+38]
mov [_UserManager],rax
mov rcx,rax
cmp dword ptr [rcx],00
jmp returnhere
_getstore:
cmp byte ptr[_UserManager+9],0
jne short @f
mov rcx,[rcx+UserModel.mInventory]
ret
@@:
cmp byte ptr[_UserManager+9],1
jne short @f
mov rcx,[rcx+UserModel.mChest]
ret
@@:
cmp byte ptr[_UserManager+9],2
jne short @f
mov rcx,[rcx+UserModel.mRefrigerator]
ret
@@:
cmp byte ptr[_UserManager+9],3
jne short @f
mov rcx,[rcx+UserModel.mMaterialStorage]
ret
@@:
cmp byte ptr[_UserManager+9],4
jne short @f
mov rcx,[rcx+UserModel.mShippingBox]
ret
@@:
xor rcx,rcx
ret
_UserManager:
dq 0 0 0
temp:
dq 0 0 0 0 0 0 0 0 0
FarmPlayerController:
jmp newmem
nop
returnhere:
[DISABLE]
dealloc(newmem)
FarmPlayerController:
db 48 8B C8 83 39 00
//mov rcx,rax
//cmp dword ptr [rcx],00
unregistersymbol(FarmPlayerController)
unregistersymbol(_UserManager)
unregistersymbol(UserManager.mUser)
unregistersymbol(UserModel.mPlayer)
unregistersymbol(UserModel.mTime)
unregistersymbol(UserModel.mInventory)
unregistersymbol(UserModel.mPlayTime)
unregistersymbol(PlayerModel.mStamina)
unregistersymbol(PlayerModel.mMoney)
unregistersymbol(TimeModel.mYear)
unregistersymbol(TimeModel.mSeason)
unregistersymbol(TimeModel.mDayOfWeek)
unregistersymbol(TimeModel.mDay)
unregistersymbol(TimeModel.mHour)
unregistersymbol(TimeModel.mMinute)
unregistersymbol(TimeModel.mSecond)
unregistersymbol(StaminaModel.mNow)
unregistersymbol(StaminaModel.mMax)
unregistersymbol(StaminaModel.mIsEmpty)
unregistersymbol(StaminaModel.mCanConsume)
unregistersymbol(StaminaModel.mTiredStateIndex)
unregistersymbol(InventoryModel.mLevel)
unregistersymbol(UserModel.mFarm)
unregistersymbol(FarmModel.mCookingTools)
unregistersymbol(CookingToolModel.mProficiency)
unregistersymbol(FarmModel.mBugPoints)
unregistersymbol(_player)