grayfenix wrote: ↑Tue Nov 12, 2024 7:04 pm
Rankti wrote: ↑Tue Nov 12, 2024 1:16 pm
grayfenix wrote: ↑Tue Nov 12, 2024 7:02 am
I unticked it, then saved. THen closed the game and cheat engine. Upon restart , all of my items are now legendary, not just the items I equiped and unequiped.
Have you made this work?
Thank you for the script, it worked as explained. I even didn't have to save and reload the game.
The items got immediately upgraded and when I left the character menus I got all the respective popup messages. I'm now at the point of no return so I do have a lot of items and I wanted to upgrade all items to 11/legendary anyway but I didn't see any items that I didn't equip being upgraded. My "common" and "Unique" items were not touched by the script.
Yet, all items of my companions got automatically upgraded to legendary/11 although I was not in their menus.
Yes, thats what happens. EVERYTHING you or your companions have equiped is modified, not just the item you swap.
I cant find a way to unequip items in game, so unless i want to be completely op this script is not really usable.
I'm hoping someone with more knowledge than me will be able to fix this script to only do a specific item.
I was lazy in my earlier script as I only used it once.
I tracked the code back and now created an updated "Last Item Equipped Pointer" where it covers ANY item and you choose how to update it.
I hope this helps. (Updated to accurately show for both Gear and Accessories as they are 2 separate references)
Code: Select all
<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
<CheatEntries>
<CheatEntry>
<ID>571</ID>
<Description>"Last Item Equipped Pointer (Any Item)"</Description>
<Options moHideChildren="1" moActivateChildrenAsWell="1" moDeactivateChildrenAsWell="1"/>
<Color>FFFF00</Color>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript Async="1">[ENABLE]
// Last equipped has 2 references. 1 for armor/weapons and another for accessories
// I am lazy so bundled the original one from Zanzer with mine for accessories
alloc(lastEquippedPtr, 8)
registersymbol(lastEquippedPtr)
// Start: Last equipped accessory
aobscanmodule(lastEquipped_Acc,$process,48 8B 13 48 8B CB 48 89 5C 24 20 FF)
alloc(newmem_Acc,$100,lastEquipped_Acc)
label(lastEquippedBkp_Acc)
label(return_Acc)
newmem_Acc:
push rax
mov rax,lastEquippedPtr
mov [rax],rbx
pop rax
lastEquippedBkp_Acc:
readmem(lastEquipped_Acc,14)
jmp return_Acc
lastEquipped_Acc:
jmp far newmem_Acc
return_Acc:
registersymbol(lastEquipped_Acc)
registersymbol(lastEquippedBkp_Acc)
// End: Last equipped accessory
// Start: Last equipped armor/weapon
aobscanmodule(lastEquipped_Gear,$process,FF 90 ?? ?? 00 00 48 8B ?? ?? ?? 48 89 ?? ?? 48 3B)
alloc(newmem_Gear,$100)
label(lastEquippedBkp_Gear)
label(return_Gear)
newmem_Gear:
push rax
mov rax,lastEquippedPtr
mov [rax],rcx
pop rax
lastEquippedBkp_Gear:
readmem(lastEquipped_Gear,15)
jmp return_Gear
lastEquipped_Gear:
jmp far newmem_Gear
nop
return_Gear:
registersymbol(lastEquipped_Gear)
registersymbol(lastEquippedBkp_Gear)
// End: Last equipped armor/weapon
[DISABLE]
// Start: Last equipped accessory
lastEquipped_Acc:
readmem(lastEquippedBkp_Acc,14)
unregistersymbol(lastEquippedBkp_Acc)
unregistersymbol(lastEquipped_Acc)
dealloc(newmem_Acc)
// End: Last equipped accessory
// Start: Last equipped armor/weapon
lastEquipped_Gear:
readmem(lastEquippedBkp_Gear,15)
unregistersymbol(lastEquipped_Gear)
unregistersymbol(lastEquippedBkp_Gear)
dealloc(newmem_Gear)
// End: Last equipped armor/weapon
dealloc(lastEquippedPtr)
unregistersymbol(lastEquippedPtr)
// Ref for last equipped accessory here
{
// ORIGINAL CODE - INJECTION POINT: Dragon Age The Veilguard.exe+1E5E9FA
Dragon Age The Veilguard.exe+13F049A - 48 8B 10 - mov rdx,[rax]
Dragon Age The Veilguard.exe+13F049D - 48 8B C8 - mov rcx,rax
Dragon Age The Veilguard.exe+13F04A0 - FF 52 10 - call qword ptr [rdx+10]
// ---------- INJECTING HERE ----------
Dragon Age The Veilguard.exe+13F04A3 - 48 8B 13 - mov rdx,[rbx]
Dragon Age The Veilguard.exe+13F04A6 - 48 8B CB - mov rcx,rbx
Dragon Age The Veilguard.exe+13F04A9 - 48 89 5C 24 20 - mov [rsp+20],rbx
Dragon Age The Veilguard.exe+13F04AE - FF 52 10 - call qword ptr [rdx+10]
// ---------- DONE INJECTING ----------
Dragon Age The Veilguard.exe+13F04B1 - 44 8B CE - mov r9d,esi
Dragon Age The Veilguard.exe+13F04B4 - 48 8D 54 24 20 - lea rdx,[rsp+20]
Dragon Age The Veilguard.exe+13F04B9 - 4C 8B C5 - mov r8,rbp
}
// Ref for last equipped weapon/armor here
{
// ORIGINAL CODE - INJECTION POINT: Dragon Age The Veilguard.exe+24F4460
Dragon Age The Veilguard.exe+24F4436: FF 92 C8 00 00 00 - call qword ptr [rdx+000000C8]
Dragon Age The Veilguard.exe+24F443C: 48 8B 4C 24 30 - mov rcx,[rsp+30]
Dragon Age The Veilguard.exe+24F4441: 48 3B F8 - cmp rdi,rax
Dragon Age The Veilguard.exe+24F4444: 75 17 - jne "Dragon Age The Veilguard.exe"+24F445D
Dragon Age The Veilguard.exe+24F4446: 48 8B 5C 24 38 - mov rbx,[rsp+38]
Dragon Age The Veilguard.exe+24F444B: 48 85 C9 - test rcx,rcx
Dragon Age The Veilguard.exe+24F444E: 0F 84 B8 02 00 00 - je "Dragon Age The Veilguard.exe"+24F470C
Dragon Age The Veilguard.exe+24F4454: 48 85 DB - test rbx,rbx
Dragon Age The Veilguard.exe+24F4457: 0F 85 F2 02 00 00 - jne "Dragon Age The Veilguard.exe"+24F474F
Dragon Age The Veilguard.exe+24F445D: 48 8B 01 - mov rax,[rcx]
// ---------- INJECTING HERE ----------
Dragon Age The Veilguard.exe+24F4460: FF 90 98 00 00 00 - call qword ptr [rax+00000098]
Dragon Age The Veilguard.exe+24F4466: 48 8B 54 24 70 - mov rdx,[rsp+70]
Dragon Age The Veilguard.exe+24F446B: 48 89 45 88 - mov [rbp-78],rax
// ---------- DONE INJECTING ----------
Dragon Age The Veilguard.exe+24F446F: 48 3B 54 24 78 - cmp rdx,[rsp+78]
Dragon Age The Veilguard.exe+24F4474: 73 16 - jae "Dragon Age The Veilguard.exe"+24F448C
Dragon Age The Veilguard.exe+24F4476: 48 8B CA - mov rcx,rdx
Dragon Age The Veilguard.exe+24F4479: 48 83 C2 78 - add rdx,78
Dragon Age The Veilguard.exe+24F447D: 48 89 54 24 70 - mov [rsp+70],rdx
Dragon Age The Veilguard.exe+24F4482: E8 59 64 C7 01 - call "Dragon Age The Veilguard.exe"+416A8E0
Dragon Age The Veilguard.exe+24F4487: E9 5D 01 00 00 - jmp "Dragon Age The Veilguard.exe"+24F45E9
Dragon Age The Veilguard.exe+24F448C: 48 8D 8D 90 00 00 00 - lea rcx,[rbp+00000090]
}
</AssemblerScript>
<CheatEntries>
<CheatEntry>
<ID>572</ID>
<Description>"Re-Equip Item to See Changes"</Description>
<Options moDeactivateChildrenAsWell="1"/>
<ShowAsSigned>0</ShowAsSigned>
<GroupHeader>1</GroupHeader>
<Address>lastEquippedPtr</Address>
<Offsets>
<Offset>0</Offset>
</Offsets>
<CheatEntries>
<CheatEntry>
<ID>573</ID>
<Description>"Name (do not change)"</Description>
<ShowAsSigned>0</ShowAsSigned>
<VariableType>String</VariableType>
<Length>256</Length>
<Unicode>0</Unicode>
<CodePage>0</CodePage>
<ZeroTerminate>1</ZeroTerminate>
<Address>+90</Address>
<Offsets>
<Offset>0</Offset>
<Offset>38</Offset>
</Offsets>
</CheatEntry>
<CheatEntry>
<ID>574</ID>
<Description>"Level"</Description>
<ShowAsSigned>0</ShowAsSigned>
<VariableType>4 Bytes</VariableType>
<Address>+38</Address>
</CheatEntry>
<CheatEntry>
<ID>575</ID>
<Description>"Rarity"</Description>
<DropDownList DisplayValueAsItem="1">1:Common
2:Uncommon
3:Rare
4:Epic
5:Legendary
6:Unique (Do not set)
</DropDownList>
<ShowAsSigned>0</ShowAsSigned>
<VariableType>4 Bytes</VariableType>
<Address>+40</Address>
</CheatEntry>
</CheatEntries>
</CheatEntry>
</CheatEntries>
</CheatEntry>
</CheatEntries>
</CheatTable>