I hear you've been waiting a while on a functional social slot script
It's not nearly as elegant as Okami-X's script, but it does work.
just pop this into the script window. Please know that the [Link] will likely break the script if you consume it.
Functional Social Slots for Terraria 1.4.2.1 (Intel):
Code: Select all
{ Game : Terraria.exe
Version:
Date : 2021-04-05
Author : Cowtow
Lets you use your social slots as extra working accessory slots. Cool!
}
//Draws the tooltip so you can see what the item does.
define(fSocialDraw,Terraria.Main::MouseText_DrawItemTooltip_GetLinesInfo+13F)
define(fSocialDrawBytes,80 BF 70 01 00 00 00)
//Forces the effect of the items prefix to work.
define(socialPrefix,Terraria.Player::UpdateEquips+23B0)
define(socialPrefixBytes,83 FF 0A 0F 8C AD DF FF FF)
//Next 5 addresses override various checks in the code that try to limit accessory slots to 10
define(vCheck1,Terraria.Player::UpdateEquips+2418)
define(vCheck1Bytes,83 FF 0A 7C D0)
define(vCheck2,Terraria.Player::UpdateEquips+259C)
define(vCheck2Bytes,83 FF 0A 0F 8C 55 FF FF FF)
define(vCheck3,Terraria.Player::ApplyEquipFunctional+6D)
define(vCheck3Bytes,3B 58 04 0F 83 98 24 00 00)
define(vCheck4,Terraria.Player::ApplyEquipFunctional+1007 )
define(vCheck4Bytes,3B 58 04 0F 83 FE 14 00 00)
define(vCheck5,Terraria.Player::UpdateEquips+252D )
define(vCheck5Bytes,3B 78 04 0F 83 97 03 00 00)
[ENABLE]
// Tooltip
assert(fSocialDraw,fSocialDrawBytes)
alloc(fSocialDrawMem,$1000)
//Prefix's
assert(socialPrefix,socialPrefixBytes)
alloc(socialPrefixMem,$1000)
//vCheck1
assert(vCheck1,vCheck1Bytes)
alloc(vCheck1Mem,$1000)
//vCheck2
assert(vCheck2,vCheck2Bytes)
alloc(vCheck2Mem,$1000)
//vCheck3
assert(vCheck3,vCheck3Bytes)
alloc(vCheck3Mem,$1000)
//vCheck4
assert(vCheck4,vCheck4Bytes)
alloc(vCheck4Mem,$1000)
//vCheck5
assert(vCheck5,vCheck5Bytes)
alloc(vCheck5Mem,$1000)
label(fSocialDrawCode)
label(fSocialDrawReturn)
label(socialPrefixCode)
label(socialPrefixReturn)
label(vCheck1Code)
label(vCheck1Return)
label(vCheck2Code)
label(vCheck2Return)
label(vCheck3Code)
label(vCheck3Return)
label(vCheck4Code)
label(vCheck4Return)
label(vCheck5Code)
label(vCheck5Return)
// Tooltip
fSocialDrawMem:
db 90 90 90 90 90 90 90
fSocialDrawCode:
//cmp byte ptr [edi+00000170],00
jmp fSocialDrawReturn
fSocialDraw:
jmp fSocialDrawMem
nop 2
fSocialDrawReturn:
//Prefix's
socialPrefixMem:
socialPrefixCode:
cmp edi,14
jl Terraria.Player::UpdateEquips+366
jmp socialPrefixReturn
socialPrefix:
jmp socialPrefixMem
nop 4
socialPrefixReturn:
//vCheck1
vCheck1Mem:
vCheck1Code:
cmp edi,14
jl Terraria.Player::UpdateEquips+23ED
jmp vCheck1Return
vCheck1:
jmp vCheck1Mem
vCheck1Return:
//vCheck2
vCheck2Mem:
vCheck2Code:
cmp edi,14
jl Terraria.Player::UpdateEquips+24FA
jmp vCheck2Return
vCheck2:
jmp vCheck2Mem
nop 4
vCheck2Return:
//vCheck3
vCheck3Mem:
vCheck3Code:
cmp ebx,14
jae Terraria.Player::ApplyEquipFunctional+250E
jmp vCheck3Return
vCheck3:
jmp vCheck3Mem
nop 4
vCheck3Return:
//vCheck4
vCheck4Mem:
vCheck4Code:
cmp ebx,14
jae Terraria.Player::ApplyEquipFunctional+250E
jmp vCheck4Return
vCheck4:
jmp vCheck4Mem
nop 4
vCheck4Return:
//vCheck5
vCheck5Mem:
vCheck5Code:
cmp edi,14
jae Terraria.Player::UpdateEquips+28CD
jmp vCheck5Return
vCheck5:
jmp vCheck5Mem
nop 4
vCheck5Return:
[DISABLE]
//Tooltip
fSocialDraw:
db fSocialDrawBytes
// cmp byte ptr [edi+00000170],00
dealloc(fSocialDrawMem)
//Prefix's
socialPrefix:
db socialPrefixBytes
// cmp edi,0A
// jl Terraria.Player::UpdateEquips+366
dealloc(socialPrefixMem)
//vCheck1
vCheck1:
db vCheck1Bytes
// cmp edi,0A
// jl Terraria.Player::UpdateEquips+23ED
dealloc(vCheck1Mem)
//vCheck2
vCheck2:
db vCheck2Bytes
// cmp edi,0A
// jl Terraria.Player::UpdateEquips+24FA
dealloc(vCheck2Mem)
//vCheck3
vCheck3:
db vCheck3Bytes
// cmp ebx,[eax+04]
// jae Terraria.Player::ApplyEquipFunctional+250E
dealloc(vCheck3Mem)
//vCheck4
vCheck4:
db vCheck4Bytes
// cmp ebx,[eax+04]
// jae Terraria.Player::ApplyEquipFunctional+250E
dealloc(vCheck4Mem)
//vCheck5
vCheck5:
db vCheck5Bytes
// cmp edi,[eax+04]
// jae Terraria.Player::UpdateEquips+28CD
dealloc(vCheck5Mem)
How to use this cheat table?
- Install Cheat Engine
- Double-click the .CT file in order to open it.
- Click the PC icon in Cheat Engine in order to select the game process.
- Keep the list.
- Activate the trainer options by checking boxes or setting values from 0 to 1