[Request] Symphony of War: The Nephilim Saga
Re: [Request] Symphony of War: The Nephilim Saga
Something is not working to fit these scripts. There is always some kind of error coming out
Re: [Request] Symphony of War: The Nephilim Saga
How do I use these with CE?
RMLSNK wrote: ↑Sun Apr 14, 2024 10:10 ambase game: no dlc: (idk if that affects anything so putting that up there).
Patch 1.10.22: Steam
Want any item in the game? Want 100 of those items? well, I made this. On a side note, save before using, just in case you crash if you accidentally buy a nil value. Items won't update (visually only) until you refresh the trade screen. But this is visual only, you can still buy it. Please be sure to upvote if this helps. Took a little while to get these values.
and this is a "turns taken" script.Code: Select all
<?xml version="1.0" encoding="utf-8"?> <CheatTable> <CheatEntries> <CheatEntry> <ID>14437</ID> <Description>"Items"</Description> <Options moHideChildren="1" moActivateChildrenAsWell="1" moDeactivateChildrenAsWell="1" moAllowManualCollapseAndExpand="1"/> <LastState Value="" RealAddress="200F1B23038"/> <ShowAsSigned>0</ShowAsSigned> <GroupHeader>1</GroupHeader> <Address>"x64-msvcrt-ruby240.dll"+002F20E0</Address> <Offsets> <Offset>8</Offset> <Offset>18</Offset> <Offset>0</Offset> <Offset>20</Offset> <Offset>3E0</Offset> <Offset>18</Offset> <Offset>8</Offset> <Offset>0</Offset> <Offset>14F8</Offset> <Offset>10</Offset> </Offsets> <CheatEntries> <CheatEntry> <ID>14511</ID> <Description>"Amount Available"</Description> <DropDownList ReadOnly="1" DescriptionOnly="1" DisplayValueAsItem="1">0:Out of Stock 1:x1 2:x2 5:x5 10:x10 25:x25 50:x50 100:x100 </DropDownList> <LastState Value="1" RealAddress="200F1B23048"/> <ShowAsSigned>0</ShowAsSigned> <VariableType>Custom</VariableType> <CustomType>RPG VX type</CustomType> <Address>+10</Address> </CheatEntry> <CheatEntry> <ID>14438</ID> <Description>"Type "</Description> <Options moHideChildren="1" moAllowManualCollapseAndExpand="1"/> <DropDownList ReadOnly="1" DescriptionOnly="1" DisplayValueAsItem="1">6514822:Resources 6529158:Gear 7200902:Purchased! </DropDownList> <LastState Value="6514822" RealAddress="200F1B23038"/> <ShowAsSigned>0</ShowAsSigned> <VariableType>Custom</VariableType> <CustomType>RPG VX type</CustomType> <Address>+0</Address> <CheatEntries> <CheatEntry> <ID>14513</ID> <Description>"Highly recommended to tick either Resources or Gear (Not Both)."</Description> <LastState Value="" RealAddress="00000000"/> <Color>7171FF</Color> <GroupHeader>1</GroupHeader> </CheatEntry> <CheatEntry> <ID>14440</ID> <Description>"Resources"</Description> <DropDownList ReadOnly="1" DescriptionOnly="1" DisplayValueAsItem="1">0:[Avoid This Value] 1:-- 2: [ Codex and Tokens ] 3:XP Codex 4:CP Codex 5:Bronze Arena Token 6:Silver Arena Token 7:Gold Arena Token 8:Platinum Arena Token 9:Proof of Merit -: [ Resources ] 10:Iron 11:-- 12:Obsidian 13:Sunstone 14:Gems 15:Pyrocite 16:Horses 17:Tech Points -: [ Consumables ] 18:Donari Chronicle 19:Mint Leaves of Magic 20:Roast Beef of Might 21:Apple of Agility 22:Salmon of Health 23:Medal of Valor 24: [ Affinities ] 25:Affinity: Earth 26:Affinity: Water 27:Affinity: Lightning 28:Affinity: Fire 29:Affinity: Dark 30:Affinity: Light 31: [ Tomes ] 32:Book of Unlife 33:Defiled Donari Tome 34:Mark of the Risen 35:Primal Tome 36:-- 37:-- 38:-- 39:-- 40:-- 41:-- 42:-- 43:-- 44:-- 45:-- 46:-- 47: [ Traits ] 48:Trait: Scavenger 49:Trait: Garrison 50:Trait: Bodyguard 51:Trait: Vengeance 52:Trait: Overpower 53:Trait: Imposing 54:Trait: Unassuming 55:Trait: Resolve 56:Trait: Unscathed 57:Trait: Precision 58:Trait: Assassin's Heart 59:Trait: Archer Captain 60:Trait: Soldier Captain 61:Trait: Knight Captain 62:Trait: Concentration 63:Trait: Disarm 64:Trait: Lithe Assault 65:Trait: Assassin's Reaper 66:Trait: Bowmanship 67:Trait: Dragonslayer 68:Trait: Warrior's Hubris 69:Trait: Challenger 70:Trait: Executioner 71:Trait: Healing Attuned 72:Trait: Cold-Blooded 73:Trait: Beacon 74:Trait: Arcane Barrier 75:Trait: Arcane Might 76:Trait: Arcane Speed 77:Trait: Arcane Vigor 78:Trait: Counterattack 79:Trait: Desperation 80:Trait: Immortal Spirit 81:Trait: Smite 82:Trait: Shock and Awe 83:Trait: Bloodlust 84:Trait: Silver-Tongued 85:Trait: Treasure Hunter 86:Trait: Tundra Warrior 87:Trait: Desert Warrior 88:-- 89:-- 90:Trait: Benevolent 91:Trait: Liberator 92:Trait: Rally 93:Trait: Barricade 94:Trait: Pacifist 95:Trait: Wide Guard 96:Trait: Raid Captain </DropDownList> <LastState Value="52" RealAddress="200F1B23040"/> <ShowAsSigned>0</ShowAsSigned> <VariableType>Custom</VariableType> <CustomType>RPG VX type</CustomType> <Address>+8</Address> </CheatEntry> <CheatEntry> <ID>14436</ID> <Description>"Gear"</Description> <DropDownList ReadOnly="1" DescriptionOnly="1" DisplayValueAsItem="1">0:[Avoid This Value] 1:-- 2: [ Swords ] 3:Steel Arming Sword 4:Elegant Blade 5:Flame Saber 6:Steelshatter 7:Excalibur 8:Sin Credo 9: [ Great Swords ] 10:Steel Greatsword 11:Giant's Thresher 12:Kesh's Daikatana 13:Dragon Slayer 14:Balmung 15:-- 16: [ Polearms ] 17:Sayunaari War Pike 18:Crystal Lance 19:Fang of Duros 20:-- 21: [ Daggers ] 22:Eskandar's Karambit 23:Obsidian Edge 24:Zero Point Blade 25:-- 26: [ Maces ] 27:Acolyte's Mace 28:Crusader's Mace 29:Refuge 30:-- 31: [ Bows ] 32:Guerilla Bow 33:Trueshot Bow 34:Ataraxia 35:Heartseeker 36:Obsidian Arquebus 37:-- 38:-- 39:-- 40:-- 41:-- 42:-- 43:-- 44:-- 45: [ Mage Gear ] 46:Donari Staff 47:-- 48:Blood Staff 49:Apprentice Spellbook 50:Grandmaster Spellbook 51:Auraweave Cloak 52:Cyrene's Regalia 53:-- 54: [ Military ] 55:Sergeant's Uniform 56:Officer's Regalia 57:-- 58:-- 59: [ Light Armor ] 60:Scout's Gear 61:Guerilla Armor 62:Shinobi Gi 63:Blademaster's Armor 64:Landis's Mirage 65:-- 66:-- 67: [ Heavy Armor ] 68:Steel Plate Armor 69:Donari Armor 70:Dragonscale Armor 71:Imperial Battle Armor 72:Obsidian Plate Armor 73:St. Teresa's Tiara 74: [ Shields ] 75:Hulking Pavise 76:Aldor's Tower Shield 77:St. Teresa's Bulwark 78:-- 79:-- 80: [ Halloween 2022 ] 81:Skull of Rowdain 82:-- 83:-- 84:-- 85:-- 86:-- 87:-- 88:-- 89:-- 90:-- 91: [ Accessories ] 92:Puffin Feather Amulet 93:Ruby Ring 94:Emerald Ring 95:Sapphire Ring 96:Ribbon 97:Kesh's Toolkit 98:Noisy Cricket 99:Boots of Tyranny 100:Imperial War Banner 101:Everlasting Potion 102:Jade Figurine 103:Iblis Family Signet 104:Donar's Treatise of War 105:Soha's Blood Shard 106:Landis's Fixed Dice 107:Genbu Shell Fragment 108:Temporal Modulator 109:Black Belt 110:Cloak of Cunning 111:Ace of Spaces 112:Essence of Embor 113:Belinda's Field Kit 114:Signet of Wrath 115:Firewalker Boots 116:-- 117: [ Legends ] 118:Shadowchaster Boots 119:Gilded Clover 120:Mercurial Shoes 121:Caladori Charm 122:Fitch Farm Rancher Hat 123:Grothnor Lich's Skull 124:Spencer's Spectacles 125:Aetherium Gemstone 126:Sunset Bay Theatre Mask 127:-- 128:-- 129:Warfarer's Boots 130:Duelist's Contract 131:Do-It-Yourself Bandage 132:Emperor's Missive 133:Donari Charm 134:Commoner's Goblet 135:Tailored Great Helm 136:Thorny Charm </DropDownList> <LastState Value="52" RealAddress="200F1B23040"/> <ShowAsSigned>0</ShowAsSigned> <VariableType>Custom</VariableType> <CustomType>RPG VX type</CustomType> <Address>+8</Address> <Hotkeys> <Hotkey> <Action>Increase Value</Action> <Keys> <Key>6</Key> </Keys> <Value>1</Value> <ID>0</ID> </Hotkey> <Hotkey> <Action>Decrease Value</Action> <Keys> <Key>5</Key> </Keys> <Value>1</Value> <ID>1</ID> </Hotkey> </Hotkeys> </CheatEntry> </CheatEntries> </CheatEntry> </CheatEntries> </CheatEntry> </CheatEntries> </CheatTable>
Spoiler
Code: Select all
<?xml version="1.0" encoding="utf-8"?> <CheatTable> <CheatEntries> <CheatEntry> <ID>14538</ID> <Description>"Turns Taken"</Description> <Options moHideChildren="1" moDeactivateChildrenAsWell="1" moAllowManualCollapseAndExpand="1"/> <LastState Value="" Activated="1" RealAddress="00000000"/> <GroupHeader>1</GroupHeader> <CheatEntries> <CheatEntry> <ID>14518</ID> <Description>"Turns Taken"</Description> <Options moHideChildren="1" moAllowManualCollapseAndExpand="1"/> <LastState/> <VariableType>Auto Assembler Script</VariableType> <AssemblerScript>{ Game : SymphonyOfWar.exe Version: 1.10.2 Date : 2024-04-14 Author : RMLSNEK } [ENABLE] aobscanmodule(TurnsTakenScript,x64-msvcrt-ruby240.dll,48 83 3C C3 34 0F) alloc(newmem,$1000,TurnsTakenScript) label(code GetTurns GetTurnsOffset) label(return) newmem: code: //cmp [rbx+rax*8],(int)21 cmp [rbx+rax*8]+158],(int)30306572 je TurnsTaken //Engage Normal Route cmp qword ptr [rbx+rax*8],34 jmp return TurnsTaken: mov [GetTurns],rbx mov [GetTurnsOffset],rax //Engage Normal Route cmp qword ptr [rbx+rax*8],34 jmp return GetTurns: dq 0 GetTurnsOffset: dq 0 TurnsTakenScript: jmp newmem return: registersymbol(TurnsTakenScript GetTurns GetTurnsOffset) [DISABLE] TurnsTakenScript: db 48 83 3C C3 34 unregistersymbol(TurnsTakenScript GetTurns GetTurnsOffset) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: x64-msvcrt-ruby240.rb_ivar_defined+120 x64-msvcrt-ruby240.rb_ivar_defined+F6: E8 F5 36 FA FF - call x64-msvcrt-ruby240.st_lookup x64-msvcrt-ruby240.rb_ivar_defined+FB: 85 C0 - test eax,eax x64-msvcrt-ruby240.rb_ivar_defined+FD: 0F 84 5D FF FF FF - je x64-msvcrt-ruby240.rb_ivar_defined+60 x64-msvcrt-ruby240.rb_ivar_defined+103: 48 8B 45 F8 - mov rax,[rbp-08] x64-msvcrt-ruby240.rb_ivar_defined+107: 48 F7 03 00 20 00 00 - test [rbx],00002000 x64-msvcrt-ruby240.rb_ivar_defined+10E: 75 48 - jne x64-msvcrt-ruby240.rb_ivar_defined+158 x64-msvcrt-ruby240.rb_ivar_defined+110: 8B 53 10 - mov edx,[rbx+10] x64-msvcrt-ruby240.rb_ivar_defined+113: 48 39 D0 - cmp rax,rdx x64-msvcrt-ruby240.rb_ivar_defined+116: 0F 83 44 FF FF FF - jae x64-msvcrt-ruby240.rb_ivar_defined+60 x64-msvcrt-ruby240.rb_ivar_defined+11C: 48 8B 5B 18 - mov rbx,[rbx+18] // ---------- INJECTING HERE ---------- x64-msvcrt-ruby240.rb_ivar_defined+120: 48 83 3C C3 34 - cmp qword ptr [rbx+rax*8],34 // ---------- DONE INJECTING ---------- x64-msvcrt-ruby240.rb_ivar_defined+125: 0F 84 35 FF FF FF - je x64-msvcrt-ruby240.rb_ivar_defined+60 x64-msvcrt-ruby240.rb_ivar_defined+12B: BE 14 00 00 00 - mov esi,00000014 x64-msvcrt-ruby240.rb_ivar_defined+130: E9 2D FF FF FF - jmp x64-msvcrt-ruby240.rb_ivar_defined+62 x64-msvcrt-ruby240.rb_ivar_defined+135: 0F 1F 00 - nop dword ptr [rax] x64-msvcrt-ruby240.rb_ivar_defined+138: 48 89 D9 - mov rcx,rbx x64-msvcrt-ruby240.rb_ivar_defined+13B: 48 89 55 28 - mov [rbp+28],rdx x64-msvcrt-ruby240.rb_ivar_defined+13F: E8 FC DA F1 FF - call x64-msvcrt-ruby240.rb_obj_class x64-msvcrt-ruby240.rb_ivar_defined+144: 48 8B 55 28 - mov rdx,[rbp+28] x64-msvcrt-ruby240.rb_ivar_defined+148: 48 8B 40 18 - mov rax,[rax+18] x64-msvcrt-ruby240.rb_ivar_defined+14C: 48 8B 08 - mov rcx,[rax] } </AssemblerScript> <CheatEntries> <CheatEntry> <ID>14530</ID> <Description>"Amount"</Description> <LastState Value="5" RealAddress="29D17005A50"/> <ShowAsSigned>0</ShowAsSigned> <VariableType>Custom</VariableType> <CustomType>RPG VX type</CustomType> <Address>[GetTurns]+[GetTurnsOffset]*8-158</Address> </CheatEntry> </CheatEntries> </CheatEntry> <CheatEntry> <ID>14536</ID> <Description>"Challenge Missions"</Description> <Options moHideChildren="1" moAllowManualCollapseAndExpand="1"/> <LastState/> <VariableType>Auto Assembler Script</VariableType> <AssemblerScript>{ Game : SymphonyOfWar.exe Version: 1.10.2 Date : 2024-04-14 Author : RMLSNEK } [ENABLE] aobscanmodule(TurnsTakenObjScript,x64-msvcrt-ruby240.dll,48 8B 40 10 49 89 45 00) alloc(newmem,$1000,TurnsTakenObjScript) label(code GetTurnsObj) label(return) newmem: code: cmp [rax+10],(int)40554764 je TurnsTakenObj jmp returnroute TurnsTakenObj: mov [GetTurnsObj],rax jmp returnroute returnroute: //Engage Normal Route mov rax,[rax+10] mov [r13+00],rax jmp return GetTurnsObj: dq 0 TurnsTakenObjScript: jmp newmem nop 3 return: registersymbol(TurnsTakenObjScript GetTurnsObj) [DISABLE] TurnsTakenObjScript: db 48 8B 40 10 49 89 45 00 unregistersymbol(TurnsTakenObjScript GetTurnsObj) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: x64-msvcrt-ruby240.st_lookup+6F x64-msvcrt-ruby240.st_lookup+4A: 48 83 F8 FE - cmp rax,-02 x64-msvcrt-ruby240.st_lookup+4E: 74 E5 - je x64-msvcrt-ruby240.st_lookup+35 x64-msvcrt-ruby240.st_lookup+50: 48 83 F8 FF - cmp rax,-01 x64-msvcrt-ruby240.st_lookup+54: 0F 84 B6 00 00 00 - je x64-msvcrt-ruby240.st_lookup+110 x64-msvcrt-ruby240.st_lookup+5A: 48 8D 58 FE - lea rbx,[rax-02] x64-msvcrt-ruby240.st_lookup+5E: 4D 85 ED - test r13,r13 x64-msvcrt-ruby240.st_lookup+61: 74 14 - je x64-msvcrt-ruby240.st_lookup+77 x64-msvcrt-ruby240.st_lookup+63: 49 8B 56 30 - mov rdx,[r14+30] x64-msvcrt-ruby240.st_lookup+67: 48 8D 04 5B - lea rax,[rbx+rbx*2] x64-msvcrt-ruby240.st_lookup+6B: 48 8D 04 C2 - lea rax,[rdx+rax*8] // ---------- INJECTING HERE ---------- x64-msvcrt-ruby240.st_lookup+6F: 48 8B 40 10 - mov rax,[rax+10] // ---------- DONE INJECTING ---------- x64-msvcrt-ruby240.st_lookup+73: 49 89 45 00 - mov [r13+00],rax x64-msvcrt-ruby240.st_lookup+77: B8 01 00 00 00 - mov eax,00000001 x64-msvcrt-ruby240.st_lookup+7C: 48 83 C4 38 - add rsp,38 x64-msvcrt-ruby240.st_lookup+80: 5B - pop rbx x64-msvcrt-ruby240.st_lookup+81: 5E - pop rsi x64-msvcrt-ruby240.st_lookup+82: 5F - pop rdi x64-msvcrt-ruby240.st_lookup+83: 41 5C - pop r12 x64-msvcrt-ruby240.st_lookup+85: 41 5D - pop r13 x64-msvcrt-ruby240.st_lookup+87: 41 5E - pop r14 x64-msvcrt-ruby240.st_lookup+89: 41 5F - pop r15 } </AssemblerScript> <CheatEntries> <CheatEntry> <ID>14537</ID> <Description>"Amount"</Description> <ShowAsSigned>0</ShowAsSigned> <VariableType>Custom</VariableType> <CustomType>RPG VX type</CustomType> <Address>[GetTurnsObj]+70</Address> </CheatEntry> <CheatEntry> <ID>14539</ID> <Description>"View Mission Info to Update Value. If value is failed or completed. Then this will not show."</Description> <LastState Value="" RealAddress="00000000"/> <Color>7171FF</Color> <GroupHeader>1</GroupHeader> </CheatEntry> </CheatEntries> </CheatEntry> </CheatEntries> </CheatEntry> </CheatEntries> </CheatTable>
These tables use RPG VX value type. Thanks to Dark Byte Be sure to use it.
Spoiler
How to Use:
[Right Click on the "Value Type" selective bar and click "Define
new custom type (Auto Assembler)" . Delete everything inside this Script and paste the new script (from below). You can now select this value type to search for values.
Code: Select all
alloc(TypeName,256) alloc(ByteSize,4) alloc(PreferedAlignment, 4) alloc(ConvertRoutine,1024) alloc(ConvertBackRoutine,1024) TypeName: db 'RPG VX type',0 ByteSize: dd 4 PreferedAlignment: dd 1 //The convert routine should hold a routine that converts the data to an nteger (in eax) //function declared as: stdcall int ConvertRoutine(unsigned char *input); //Note: Keep in mind that this routine can be called by multiple threads at the same time. ConvertRoutine: [32-bit] push ebp mov ebp,esp push ecx mov ecx,[ebp+8] [/32-bit] //at this point ecx contains the address where the bytes are stored //put the bytes into the eax register mov eax,[ecx] //second fun fact, addressing with 32-bit registers doesn't work in 64-bit, it becomes a 64-bit automatically (most of the time) shr eax,1 //shift right by 1 bit (divide by 2) //and now exit the routine [64-bit] ret [/64-bit] [32-bit] pop ecx pop ebp ret 4 [/32-bit] //The convert back routine should hold a routine that converts the given integer back to a row of bytes (e.g when the user wats to write a new value) //function declared as: stdcall void ConvertBackRoutine(int i, unsigned char *output); ConvertBackRoutine: [32-bit] push ebp mov ebp,esp push edx //save the registers push ecx mov edx,[ebp+0c] mov ecx,[ebp+08] [/32-bit] //at this point edx contains the address to write the value to //and ecx contains the value push eax push edx mov edx,[edx] //edx now contains the original value and edx,1 //only save the first bit mov eax,ecx //eax gets the user input value shl eax,1 //shift left by 1 bit (multiply by 2) or eax,edx //add the bits of the original value pop edx mov [edx],eax //write the new value into the old value pop eax [64-bit] //everything is back to what it was, so exit ret [/64-bit] [32-bit] //cleanup first pop ecx pop edx pop ebp ret 8 [/32-bit]
Re: [Request] Symphony of War: The Nephilim Saga
It was planned that the players would enter these scripts themselves, but something went wrong.
Re: [Request] Symphony of War: The Nephilim Saga
you should be able to select all and then copy the code-paste into your own table. But here's my table if you need it. Not sure if the dlc will offset any values so hopefully this works for you guys.linkchaos wrote: ↑Wed Apr 17, 2024 4:32 amHow do I use these with CE?
RMLSNK wrote: ↑Sun Apr 14, 2024 10:10 ambase game: no dlc: (idk if that affects anything so putting that up there).
Patch 1.10.22: Steam
Want any item in the game? Want 100 of those items? well, I made this. On a side note, save before using, just in case you crash if you accidentally buy a nil value. Items won't update (visually only) until you refresh the trade screen. But this is visual only, you can still buy it. Please be sure to upvote if this helps. Took a little while to get these values.
and this is a "turns taken" script.Code: Select all
<?xml version="1.0" encoding="utf-8"?> <CheatTable> <CheatEntries> <CheatEntry> <ID>14437</ID> <Description>"Items"</Description> <Options moHideChildren="1" moActivateChildrenAsWell="1" moDeactivateChildrenAsWell="1" moAllowManualCollapseAndExpand="1"/> <LastState Value="" RealAddress="200F1B23038"/> <ShowAsSigned>0</ShowAsSigned> <GroupHeader>1</GroupHeader> <Address>"x64-msvcrt-ruby240.dll"+002F20E0</Address> <Offsets> <Offset>8</Offset> <Offset>18</Offset> <Offset>0</Offset> <Offset>20</Offset> <Offset>3E0</Offset> <Offset>18</Offset> <Offset>8</Offset> <Offset>0</Offset> <Offset>14F8</Offset> <Offset>10</Offset> </Offsets> <CheatEntries> <CheatEntry> <ID>14511</ID> <Description>"Amount Available"</Description> <DropDownList ReadOnly="1" DescriptionOnly="1" DisplayValueAsItem="1">0:Out of Stock 1:x1 2:x2 5:x5 10:x10 25:x25 50:x50 100:x100 </DropDownList> <LastState Value="1" RealAddress="200F1B23048"/> <ShowAsSigned>0</ShowAsSigned> <VariableType>Custom</VariableType> <CustomType>RPG VX type</CustomType> <Address>+10</Address> </CheatEntry> <CheatEntry> <ID>14438</ID> <Description>"Type "</Description> <Options moHideChildren="1" moAllowManualCollapseAndExpand="1"/> <DropDownList ReadOnly="1" DescriptionOnly="1" DisplayValueAsItem="1">6514822:Resources 6529158:Gear 7200902:Purchased! </DropDownList> <LastState Value="6514822" RealAddress="200F1B23038"/> <ShowAsSigned>0</ShowAsSigned> <VariableType>Custom</VariableType> <CustomType>RPG VX type</CustomType> <Address>+0</Address> <CheatEntries> <CheatEntry> <ID>14513</ID> <Description>"Highly recommended to tick either Resources or Gear (Not Both)."</Description> <LastState Value="" RealAddress="00000000"/> <Color>7171FF</Color> <GroupHeader>1</GroupHeader> </CheatEntry> <CheatEntry> <ID>14440</ID> <Description>"Resources"</Description> <DropDownList ReadOnly="1" DescriptionOnly="1" DisplayValueAsItem="1">0:[Avoid This Value] 1:-- 2: [ Codex and Tokens ] 3:XP Codex 4:CP Codex 5:Bronze Arena Token 6:Silver Arena Token 7:Gold Arena Token 8:Platinum Arena Token 9:Proof of Merit -: [ Resources ] 10:Iron 11:-- 12:Obsidian 13:Sunstone 14:Gems 15:Pyrocite 16:Horses 17:Tech Points -: [ Consumables ] 18:Donari Chronicle 19:Mint Leaves of Magic 20:Roast Beef of Might 21:Apple of Agility 22:Salmon of Health 23:Medal of Valor 24: [ Affinities ] 25:Affinity: Earth 26:Affinity: Water 27:Affinity: Lightning 28:Affinity: Fire 29:Affinity: Dark 30:Affinity: Light 31: [ Tomes ] 32:Book of Unlife 33:Defiled Donari Tome 34:Mark of the Risen 35:Primal Tome 36:-- 37:-- 38:-- 39:-- 40:-- 41:-- 42:-- 43:-- 44:-- 45:-- 46:-- 47: [ Traits ] 48:Trait: Scavenger 49:Trait: Garrison 50:Trait: Bodyguard 51:Trait: Vengeance 52:Trait: Overpower 53:Trait: Imposing 54:Trait: Unassuming 55:Trait: Resolve 56:Trait: Unscathed 57:Trait: Precision 58:Trait: Assassin's Heart 59:Trait: Archer Captain 60:Trait: Soldier Captain 61:Trait: Knight Captain 62:Trait: Concentration 63:Trait: Disarm 64:Trait: Lithe Assault 65:Trait: Assassin's Reaper 66:Trait: Bowmanship 67:Trait: Dragonslayer 68:Trait: Warrior's Hubris 69:Trait: Challenger 70:Trait: Executioner 71:Trait: Healing Attuned 72:Trait: Cold-Blooded 73:Trait: Beacon 74:Trait: Arcane Barrier 75:Trait: Arcane Might 76:Trait: Arcane Speed 77:Trait: Arcane Vigor 78:Trait: Counterattack 79:Trait: Desperation 80:Trait: Immortal Spirit 81:Trait: Smite 82:Trait: Shock and Awe 83:Trait: Bloodlust 84:Trait: Silver-Tongued 85:Trait: Treasure Hunter 86:Trait: Tundra Warrior 87:Trait: Desert Warrior 88:-- 89:-- 90:Trait: Benevolent 91:Trait: Liberator 92:Trait: Rally 93:Trait: Barricade 94:Trait: Pacifist 95:Trait: Wide Guard 96:Trait: Raid Captain </DropDownList> <LastState Value="52" RealAddress="200F1B23040"/> <ShowAsSigned>0</ShowAsSigned> <VariableType>Custom</VariableType> <CustomType>RPG VX type</CustomType> <Address>+8</Address> </CheatEntry> <CheatEntry> <ID>14436</ID> <Description>"Gear"</Description> <DropDownList ReadOnly="1" DescriptionOnly="1" DisplayValueAsItem="1">0:[Avoid This Value] 1:-- 2: [ Swords ] 3:Steel Arming Sword 4:Elegant Blade 5:Flame Saber 6:Steelshatter 7:Excalibur 8:Sin Credo 9: [ Great Swords ] 10:Steel Greatsword 11:Giant's Thresher 12:Kesh's Daikatana 13:Dragon Slayer 14:Balmung 15:-- 16: [ Polearms ] 17:Sayunaari War Pike 18:Crystal Lance 19:Fang of Duros 20:-- 21: [ Daggers ] 22:Eskandar's Karambit 23:Obsidian Edge 24:Zero Point Blade 25:-- 26: [ Maces ] 27:Acolyte's Mace 28:Crusader's Mace 29:Refuge 30:-- 31: [ Bows ] 32:Guerilla Bow 33:Trueshot Bow 34:Ataraxia 35:Heartseeker 36:Obsidian Arquebus 37:-- 38:-- 39:-- 40:-- 41:-- 42:-- 43:-- 44:-- 45: [ Mage Gear ] 46:Donari Staff 47:-- 48:Blood Staff 49:Apprentice Spellbook 50:Grandmaster Spellbook 51:Auraweave Cloak 52:Cyrene's Regalia 53:-- 54: [ Military ] 55:Sergeant's Uniform 56:Officer's Regalia 57:-- 58:-- 59: [ Light Armor ] 60:Scout's Gear 61:Guerilla Armor 62:Shinobi Gi 63:Blademaster's Armor 64:Landis's Mirage 65:-- 66:-- 67: [ Heavy Armor ] 68:Steel Plate Armor 69:Donari Armor 70:Dragonscale Armor 71:Imperial Battle Armor 72:Obsidian Plate Armor 73:St. Teresa's Tiara 74: [ Shields ] 75:Hulking Pavise 76:Aldor's Tower Shield 77:St. Teresa's Bulwark 78:-- 79:-- 80: [ Halloween 2022 ] 81:Skull of Rowdain 82:-- 83:-- 84:-- 85:-- 86:-- 87:-- 88:-- 89:-- 90:-- 91: [ Accessories ] 92:Puffin Feather Amulet 93:Ruby Ring 94:Emerald Ring 95:Sapphire Ring 96:Ribbon 97:Kesh's Toolkit 98:Noisy Cricket 99:Boots of Tyranny 100:Imperial War Banner 101:Everlasting Potion 102:Jade Figurine 103:Iblis Family Signet 104:Donar's Treatise of War 105:Soha's Blood Shard 106:Landis's Fixed Dice 107:Genbu Shell Fragment 108:Temporal Modulator 109:Black Belt 110:Cloak of Cunning 111:Ace of Spaces 112:Essence of Embor 113:Belinda's Field Kit 114:Signet of Wrath 115:Firewalker Boots 116:-- 117: [ Legends ] 118:Shadowchaster Boots 119:Gilded Clover 120:Mercurial Shoes 121:Caladori Charm 122:Fitch Farm Rancher Hat 123:Grothnor Lich's Skull 124:Spencer's Spectacles 125:Aetherium Gemstone 126:Sunset Bay Theatre Mask 127:-- 128:-- 129:Warfarer's Boots 130:Duelist's Contract 131:Do-It-Yourself Bandage 132:Emperor's Missive 133:Donari Charm 134:Commoner's Goblet 135:Tailored Great Helm 136:Thorny Charm </DropDownList> <LastState Value="52" RealAddress="200F1B23040"/> <ShowAsSigned>0</ShowAsSigned> <VariableType>Custom</VariableType> <CustomType>RPG VX type</CustomType> <Address>+8</Address> <Hotkeys> <Hotkey> <Action>Increase Value</Action> <Keys> <Key>6</Key> </Keys> <Value>1</Value> <ID>0</ID> </Hotkey> <Hotkey> <Action>Decrease Value</Action> <Keys> <Key>5</Key> </Keys> <Value>1</Value> <ID>1</ID> </Hotkey> </Hotkeys> </CheatEntry> </CheatEntries> </CheatEntry> </CheatEntries> </CheatEntry> </CheatEntries> </CheatTable>
Spoiler
Code: Select all
<?xml version="1.0" encoding="utf-8"?> <CheatTable> <CheatEntries> <CheatEntry> <ID>14538</ID> <Description>"Turns Taken"</Description> <Options moHideChildren="1" moDeactivateChildrenAsWell="1" moAllowManualCollapseAndExpand="1"/> <LastState Value="" Activated="1" RealAddress="00000000"/> <GroupHeader>1</GroupHeader> <CheatEntries> <CheatEntry> <ID>14518</ID> <Description>"Turns Taken"</Description> <Options moHideChildren="1" moAllowManualCollapseAndExpand="1"/> <LastState/> <VariableType>Auto Assembler Script</VariableType> <AssemblerScript>{ Game : SymphonyOfWar.exe Version: 1.10.2 Date : 2024-04-14 Author : RMLSNEK } [ENABLE] aobscanmodule(TurnsTakenScript,x64-msvcrt-ruby240.dll,48 83 3C C3 34 0F) alloc(newmem,$1000,TurnsTakenScript) label(code GetTurns GetTurnsOffset) label(return) newmem: code: //cmp [rbx+rax*8],(int)21 cmp [rbx+rax*8]+158],(int)30306572 je TurnsTaken //Engage Normal Route cmp qword ptr [rbx+rax*8],34 jmp return TurnsTaken: mov [GetTurns],rbx mov [GetTurnsOffset],rax //Engage Normal Route cmp qword ptr [rbx+rax*8],34 jmp return GetTurns: dq 0 GetTurnsOffset: dq 0 TurnsTakenScript: jmp newmem return: registersymbol(TurnsTakenScript GetTurns GetTurnsOffset) [DISABLE] TurnsTakenScript: db 48 83 3C C3 34 unregistersymbol(TurnsTakenScript GetTurns GetTurnsOffset) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: x64-msvcrt-ruby240.rb_ivar_defined+120 x64-msvcrt-ruby240.rb_ivar_defined+F6: E8 F5 36 FA FF - call x64-msvcrt-ruby240.st_lookup x64-msvcrt-ruby240.rb_ivar_defined+FB: 85 C0 - test eax,eax x64-msvcrt-ruby240.rb_ivar_defined+FD: 0F 84 5D FF FF FF - je x64-msvcrt-ruby240.rb_ivar_defined+60 x64-msvcrt-ruby240.rb_ivar_defined+103: 48 8B 45 F8 - mov rax,[rbp-08] x64-msvcrt-ruby240.rb_ivar_defined+107: 48 F7 03 00 20 00 00 - test [rbx],00002000 x64-msvcrt-ruby240.rb_ivar_defined+10E: 75 48 - jne x64-msvcrt-ruby240.rb_ivar_defined+158 x64-msvcrt-ruby240.rb_ivar_defined+110: 8B 53 10 - mov edx,[rbx+10] x64-msvcrt-ruby240.rb_ivar_defined+113: 48 39 D0 - cmp rax,rdx x64-msvcrt-ruby240.rb_ivar_defined+116: 0F 83 44 FF FF FF - jae x64-msvcrt-ruby240.rb_ivar_defined+60 x64-msvcrt-ruby240.rb_ivar_defined+11C: 48 8B 5B 18 - mov rbx,[rbx+18] // ---------- INJECTING HERE ---------- x64-msvcrt-ruby240.rb_ivar_defined+120: 48 83 3C C3 34 - cmp qword ptr [rbx+rax*8],34 // ---------- DONE INJECTING ---------- x64-msvcrt-ruby240.rb_ivar_defined+125: 0F 84 35 FF FF FF - je x64-msvcrt-ruby240.rb_ivar_defined+60 x64-msvcrt-ruby240.rb_ivar_defined+12B: BE 14 00 00 00 - mov esi,00000014 x64-msvcrt-ruby240.rb_ivar_defined+130: E9 2D FF FF FF - jmp x64-msvcrt-ruby240.rb_ivar_defined+62 x64-msvcrt-ruby240.rb_ivar_defined+135: 0F 1F 00 - nop dword ptr [rax] x64-msvcrt-ruby240.rb_ivar_defined+138: 48 89 D9 - mov rcx,rbx x64-msvcrt-ruby240.rb_ivar_defined+13B: 48 89 55 28 - mov [rbp+28],rdx x64-msvcrt-ruby240.rb_ivar_defined+13F: E8 FC DA F1 FF - call x64-msvcrt-ruby240.rb_obj_class x64-msvcrt-ruby240.rb_ivar_defined+144: 48 8B 55 28 - mov rdx,[rbp+28] x64-msvcrt-ruby240.rb_ivar_defined+148: 48 8B 40 18 - mov rax,[rax+18] x64-msvcrt-ruby240.rb_ivar_defined+14C: 48 8B 08 - mov rcx,[rax] } </AssemblerScript> <CheatEntries> <CheatEntry> <ID>14530</ID> <Description>"Amount"</Description> <LastState Value="5" RealAddress="29D17005A50"/> <ShowAsSigned>0</ShowAsSigned> <VariableType>Custom</VariableType> <CustomType>RPG VX type</CustomType> <Address>[GetTurns]+[GetTurnsOffset]*8-158</Address> </CheatEntry> </CheatEntries> </CheatEntry> <CheatEntry> <ID>14536</ID> <Description>"Challenge Missions"</Description> <Options moHideChildren="1" moAllowManualCollapseAndExpand="1"/> <LastState/> <VariableType>Auto Assembler Script</VariableType> <AssemblerScript>{ Game : SymphonyOfWar.exe Version: 1.10.2 Date : 2024-04-14 Author : RMLSNEK } [ENABLE] aobscanmodule(TurnsTakenObjScript,x64-msvcrt-ruby240.dll,48 8B 40 10 49 89 45 00) alloc(newmem,$1000,TurnsTakenObjScript) label(code GetTurnsObj) label(return) newmem: code: cmp [rax+10],(int)40554764 je TurnsTakenObj jmp returnroute TurnsTakenObj: mov [GetTurnsObj],rax jmp returnroute returnroute: //Engage Normal Route mov rax,[rax+10] mov [r13+00],rax jmp return GetTurnsObj: dq 0 TurnsTakenObjScript: jmp newmem nop 3 return: registersymbol(TurnsTakenObjScript GetTurnsObj) [DISABLE] TurnsTakenObjScript: db 48 8B 40 10 49 89 45 00 unregistersymbol(TurnsTakenObjScript GetTurnsObj) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: x64-msvcrt-ruby240.st_lookup+6F x64-msvcrt-ruby240.st_lookup+4A: 48 83 F8 FE - cmp rax,-02 x64-msvcrt-ruby240.st_lookup+4E: 74 E5 - je x64-msvcrt-ruby240.st_lookup+35 x64-msvcrt-ruby240.st_lookup+50: 48 83 F8 FF - cmp rax,-01 x64-msvcrt-ruby240.st_lookup+54: 0F 84 B6 00 00 00 - je x64-msvcrt-ruby240.st_lookup+110 x64-msvcrt-ruby240.st_lookup+5A: 48 8D 58 FE - lea rbx,[rax-02] x64-msvcrt-ruby240.st_lookup+5E: 4D 85 ED - test r13,r13 x64-msvcrt-ruby240.st_lookup+61: 74 14 - je x64-msvcrt-ruby240.st_lookup+77 x64-msvcrt-ruby240.st_lookup+63: 49 8B 56 30 - mov rdx,[r14+30] x64-msvcrt-ruby240.st_lookup+67: 48 8D 04 5B - lea rax,[rbx+rbx*2] x64-msvcrt-ruby240.st_lookup+6B: 48 8D 04 C2 - lea rax,[rdx+rax*8] // ---------- INJECTING HERE ---------- x64-msvcrt-ruby240.st_lookup+6F: 48 8B 40 10 - mov rax,[rax+10] // ---------- DONE INJECTING ---------- x64-msvcrt-ruby240.st_lookup+73: 49 89 45 00 - mov [r13+00],rax x64-msvcrt-ruby240.st_lookup+77: B8 01 00 00 00 - mov eax,00000001 x64-msvcrt-ruby240.st_lookup+7C: 48 83 C4 38 - add rsp,38 x64-msvcrt-ruby240.st_lookup+80: 5B - pop rbx x64-msvcrt-ruby240.st_lookup+81: 5E - pop rsi x64-msvcrt-ruby240.st_lookup+82: 5F - pop rdi x64-msvcrt-ruby240.st_lookup+83: 41 5C - pop r12 x64-msvcrt-ruby240.st_lookup+85: 41 5D - pop r13 x64-msvcrt-ruby240.st_lookup+87: 41 5E - pop r14 x64-msvcrt-ruby240.st_lookup+89: 41 5F - pop r15 } </AssemblerScript> <CheatEntries> <CheatEntry> <ID>14537</ID> <Description>"Amount"</Description> <ShowAsSigned>0</ShowAsSigned> <VariableType>Custom</VariableType> <CustomType>RPG VX type</CustomType> <Address>[GetTurnsObj]+70</Address> </CheatEntry> <CheatEntry> <ID>14539</ID> <Description>"View Mission Info to Update Value. If value is failed or completed. Then this will not show."</Description> <LastState Value="" RealAddress="00000000"/> <Color>7171FF</Color> <GroupHeader>1</GroupHeader> </CheatEntry> </CheatEntries> </CheatEntry> </CheatEntries> </CheatEntry> </CheatEntries> </CheatTable>
These tables use RPG VX value type. Thanks to Dark Byte Be sure to use it.
Spoiler
How to Use:
[Right Click on the "Value Type" selective bar and click "Define
new custom type (Auto Assembler)" . Delete everything inside this Script and paste the new script (from below). You can now select this value type to search for values.
Code: Select all
alloc(TypeName,256) alloc(ByteSize,4) alloc(PreferedAlignment, 4) alloc(ConvertRoutine,1024) alloc(ConvertBackRoutine,1024) TypeName: db 'RPG VX type',0 ByteSize: dd 4 PreferedAlignment: dd 1 //The convert routine should hold a routine that converts the data to an nteger (in eax) //function declared as: stdcall int ConvertRoutine(unsigned char *input); //Note: Keep in mind that this routine can be called by multiple threads at the same time. ConvertRoutine: [32-bit] push ebp mov ebp,esp push ecx mov ecx,[ebp+8] [/32-bit] //at this point ecx contains the address where the bytes are stored //put the bytes into the eax register mov eax,[ecx] //second fun fact, addressing with 32-bit registers doesn't work in 64-bit, it becomes a 64-bit automatically (most of the time) shr eax,1 //shift right by 1 bit (divide by 2) //and now exit the routine [64-bit] ret [/64-bit] [32-bit] pop ecx pop ebp ret 4 [/32-bit] //The convert back routine should hold a routine that converts the given integer back to a row of bytes (e.g when the user wats to write a new value) //function declared as: stdcall void ConvertBackRoutine(int i, unsigned char *output); ConvertBackRoutine: [32-bit] push ebp mov ebp,esp push edx //save the registers push ecx mov edx,[ebp+0c] mov ecx,[ebp+08] [/32-bit] //at this point edx contains the address to write the value to //and ecx contains the value push eax push edx mov edx,[edx] //edx now contains the original value and edx,1 //only save the first bit mov eax,ecx //eax gets the user input value shl eax,1 //shift left by 1 bit (multiply by 2) or eax,edx //add the bits of the original value pop edx mov [edx],eax //write the new value into the old value pop eax [64-bit] //everything is back to what it was, so exit ret [/64-bit] [32-bit] //cleanup first pop ecx pop edx pop ebp ret 8 [/32-bit]
- Attachments
-
- SymphonyOfWar v1 10 22.CT
- Version 1.10.22: Steam.
- (343.64 KiB) Downloaded 1715 times
Re: [Request] Symphony of War: The Nephilim Saga
You misunderstood me, I was talking about infinite actions.
Re: [Request] Symphony of War: The Nephilim Saga
I have downloaded the table, but I genuinely don't see a way to use it. There are no values - am I doing something wrong? Can you please post a quick set of instructions to use this (for example, "use an item for values to updates" or something like that) or a video, as other people have mentioned?RMLSNK wrote: ↑Wed Apr 17, 2024 7:37 pmyou should be able to select all and then copy the code-paste into your own table. But here's my table if you need it. Not sure if the dlc will offset any values so hopefully this works for you guys.linkchaos wrote: ↑Wed Apr 17, 2024 4:32 amHow do I use these with CE?
RMLSNK wrote: ↑Sun Apr 14, 2024 10:10 ambase game: no dlc: (idk if that affects anything so putting that up there).
Patch 1.10.22: Steam
Want any item in the game? Want 100 of those items? well, I made this. On a side note, save before using, just in case you crash if you accidentally buy a nil value. Items won't update (visually only) until you refresh the trade screen. But this is visual only, you can still buy it. Please be sure to upvote if this helps. Took a little while to get these values.
and this is a "turns taken" script.Code: Select all
<?xml version="1.0" encoding="utf-8"?> <CheatTable> <CheatEntries> <CheatEntry> <ID>14437</ID> <Description>"Items"</Description> <Options moHideChildren="1" moActivateChildrenAsWell="1" moDeactivateChildrenAsWell="1" moAllowManualCollapseAndExpand="1"/> <LastState Value="" RealAddress="200F1B23038"/> <ShowAsSigned>0</ShowAsSigned> <GroupHeader>1</GroupHeader> <Address>"x64-msvcrt-ruby240.dll"+002F20E0</Address> <Offsets> <Offset>8</Offset> <Offset>18</Offset> <Offset>0</Offset> <Offset>20</Offset> <Offset>3E0</Offset> <Offset>18</Offset> <Offset>8</Offset> <Offset>0</Offset> <Offset>14F8</Offset> <Offset>10</Offset> </Offsets> <CheatEntries> <CheatEntry> <ID>14511</ID> <Description>"Amount Available"</Description> <DropDownList ReadOnly="1" DescriptionOnly="1" DisplayValueAsItem="1">0:Out of Stock 1:x1 2:x2 5:x5 10:x10 25:x25 50:x50 100:x100 </DropDownList> <LastState Value="1" RealAddress="200F1B23048"/> <ShowAsSigned>0</ShowAsSigned> <VariableType>Custom</VariableType> <CustomType>RPG VX type</CustomType> <Address>+10</Address> </CheatEntry> <CheatEntry> <ID>14438</ID> <Description>"Type "</Description> <Options moHideChildren="1" moAllowManualCollapseAndExpand="1"/> <DropDownList ReadOnly="1" DescriptionOnly="1" DisplayValueAsItem="1">6514822:Resources 6529158:Gear 7200902:Purchased! </DropDownList> <LastState Value="6514822" RealAddress="200F1B23038"/> <ShowAsSigned>0</ShowAsSigned> <VariableType>Custom</VariableType> <CustomType>RPG VX type</CustomType> <Address>+0</Address> <CheatEntries> <CheatEntry> <ID>14513</ID> <Description>"Highly recommended to tick either Resources or Gear (Not Both)."</Description> <LastState Value="" RealAddress="00000000"/> <Color>7171FF</Color> <GroupHeader>1</GroupHeader> </CheatEntry> <CheatEntry> <ID>14440</ID> <Description>"Resources"</Description> <DropDownList ReadOnly="1" DescriptionOnly="1" DisplayValueAsItem="1">0:[Avoid This Value] 1:-- 2: [ Codex and Tokens ] 3:XP Codex 4:CP Codex 5:Bronze Arena Token 6:Silver Arena Token 7:Gold Arena Token 8:Platinum Arena Token 9:Proof of Merit -: [ Resources ] 10:Iron 11:-- 12:Obsidian 13:Sunstone 14:Gems 15:Pyrocite 16:Horses 17:Tech Points -: [ Consumables ] 18:Donari Chronicle 19:Mint Leaves of Magic 20:Roast Beef of Might 21:Apple of Agility 22:Salmon of Health 23:Medal of Valor 24: [ Affinities ] 25:Affinity: Earth 26:Affinity: Water 27:Affinity: Lightning 28:Affinity: Fire 29:Affinity: Dark 30:Affinity: Light 31: [ Tomes ] 32:Book of Unlife 33:Defiled Donari Tome 34:Mark of the Risen 35:Primal Tome 36:-- 37:-- 38:-- 39:-- 40:-- 41:-- 42:-- 43:-- 44:-- 45:-- 46:-- 47: [ Traits ] 48:Trait: Scavenger 49:Trait: Garrison 50:Trait: Bodyguard 51:Trait: Vengeance 52:Trait: Overpower 53:Trait: Imposing 54:Trait: Unassuming 55:Trait: Resolve 56:Trait: Unscathed 57:Trait: Precision 58:Trait: Assassin's Heart 59:Trait: Archer Captain 60:Trait: Soldier Captain 61:Trait: Knight Captain 62:Trait: Concentration 63:Trait: Disarm 64:Trait: Lithe Assault 65:Trait: Assassin's Reaper 66:Trait: Bowmanship 67:Trait: Dragonslayer 68:Trait: Warrior's Hubris 69:Trait: Challenger 70:Trait: Executioner 71:Trait: Healing Attuned 72:Trait: Cold-Blooded 73:Trait: Beacon 74:Trait: Arcane Barrier 75:Trait: Arcane Might 76:Trait: Arcane Speed 77:Trait: Arcane Vigor 78:Trait: Counterattack 79:Trait: Desperation 80:Trait: Immortal Spirit 81:Trait: Smite 82:Trait: Shock and Awe 83:Trait: Bloodlust 84:Trait: Silver-Tongued 85:Trait: Treasure Hunter 86:Trait: Tundra Warrior 87:Trait: Desert Warrior 88:-- 89:-- 90:Trait: Benevolent 91:Trait: Liberator 92:Trait: Rally 93:Trait: Barricade 94:Trait: Pacifist 95:Trait: Wide Guard 96:Trait: Raid Captain </DropDownList> <LastState Value="52" RealAddress="200F1B23040"/> <ShowAsSigned>0</ShowAsSigned> <VariableType>Custom</VariableType> <CustomType>RPG VX type</CustomType> <Address>+8</Address> </CheatEntry> <CheatEntry> <ID>14436</ID> <Description>"Gear"</Description> <DropDownList ReadOnly="1" DescriptionOnly="1" DisplayValueAsItem="1">0:[Avoid This Value] 1:-- 2: [ Swords ] 3:Steel Arming Sword 4:Elegant Blade 5:Flame Saber 6:Steelshatter 7:Excalibur 8:Sin Credo 9: [ Great Swords ] 10:Steel Greatsword 11:Giant's Thresher 12:Kesh's Daikatana 13:Dragon Slayer 14:Balmung 15:-- 16: [ Polearms ] 17:Sayunaari War Pike 18:Crystal Lance 19:Fang of Duros 20:-- 21: [ Daggers ] 22:Eskandar's Karambit 23:Obsidian Edge 24:Zero Point Blade 25:-- 26: [ Maces ] 27:Acolyte's Mace 28:Crusader's Mace 29:Refuge 30:-- 31: [ Bows ] 32:Guerilla Bow 33:Trueshot Bow 34:Ataraxia 35:Heartseeker 36:Obsidian Arquebus 37:-- 38:-- 39:-- 40:-- 41:-- 42:-- 43:-- 44:-- 45: [ Mage Gear ] 46:Donari Staff 47:-- 48:Blood Staff 49:Apprentice Spellbook 50:Grandmaster Spellbook 51:Auraweave Cloak 52:Cyrene's Regalia 53:-- 54: [ Military ] 55:Sergeant's Uniform 56:Officer's Regalia 57:-- 58:-- 59: [ Light Armor ] 60:Scout's Gear 61:Guerilla Armor 62:Shinobi Gi 63:Blademaster's Armor 64:Landis's Mirage 65:-- 66:-- 67: [ Heavy Armor ] 68:Steel Plate Armor 69:Donari Armor 70:Dragonscale Armor 71:Imperial Battle Armor 72:Obsidian Plate Armor 73:St. Teresa's Tiara 74: [ Shields ] 75:Hulking Pavise 76:Aldor's Tower Shield 77:St. Teresa's Bulwark 78:-- 79:-- 80: [ Halloween 2022 ] 81:Skull of Rowdain 82:-- 83:-- 84:-- 85:-- 86:-- 87:-- 88:-- 89:-- 90:-- 91: [ Accessories ] 92:Puffin Feather Amulet 93:Ruby Ring 94:Emerald Ring 95:Sapphire Ring 96:Ribbon 97:Kesh's Toolkit 98:Noisy Cricket 99:Boots of Tyranny 100:Imperial War Banner 101:Everlasting Potion 102:Jade Figurine 103:Iblis Family Signet 104:Donar's Treatise of War 105:Soha's Blood Shard 106:Landis's Fixed Dice 107:Genbu Shell Fragment 108:Temporal Modulator 109:Black Belt 110:Cloak of Cunning 111:Ace of Spaces 112:Essence of Embor 113:Belinda's Field Kit 114:Signet of Wrath 115:Firewalker Boots 116:-- 117: [ Legends ] 118:Shadowchaster Boots 119:Gilded Clover 120:Mercurial Shoes 121:Caladori Charm 122:Fitch Farm Rancher Hat 123:Grothnor Lich's Skull 124:Spencer's Spectacles 125:Aetherium Gemstone 126:Sunset Bay Theatre Mask 127:-- 128:-- 129:Warfarer's Boots 130:Duelist's Contract 131:Do-It-Yourself Bandage 132:Emperor's Missive 133:Donari Charm 134:Commoner's Goblet 135:Tailored Great Helm 136:Thorny Charm </DropDownList> <LastState Value="52" RealAddress="200F1B23040"/> <ShowAsSigned>0</ShowAsSigned> <VariableType>Custom</VariableType> <CustomType>RPG VX type</CustomType> <Address>+8</Address> <Hotkeys> <Hotkey> <Action>Increase Value</Action> <Keys> <Key>6</Key> </Keys> <Value>1</Value> <ID>0</ID> </Hotkey> <Hotkey> <Action>Decrease Value</Action> <Keys> <Key>5</Key> </Keys> <Value>1</Value> <ID>1</ID> </Hotkey> </Hotkeys> </CheatEntry> </CheatEntries> </CheatEntry> </CheatEntries> </CheatEntry> </CheatEntries> </CheatTable>
Spoiler
Code: Select all
<?xml version="1.0" encoding="utf-8"?> <CheatTable> <CheatEntries> <CheatEntry> <ID>14538</ID> <Description>"Turns Taken"</Description> <Options moHideChildren="1" moDeactivateChildrenAsWell="1" moAllowManualCollapseAndExpand="1"/> <LastState Value="" Activated="1" RealAddress="00000000"/> <GroupHeader>1</GroupHeader> <CheatEntries> <CheatEntry> <ID>14518</ID> <Description>"Turns Taken"</Description> <Options moHideChildren="1" moAllowManualCollapseAndExpand="1"/> <LastState/> <VariableType>Auto Assembler Script</VariableType> <AssemblerScript>{ Game : SymphonyOfWar.exe Version: 1.10.2 Date : 2024-04-14 Author : RMLSNEK } [ENABLE] aobscanmodule(TurnsTakenScript,x64-msvcrt-ruby240.dll,48 83 3C C3 34 0F) alloc(newmem,$1000,TurnsTakenScript) label(code GetTurns GetTurnsOffset) label(return) newmem: code: //cmp [rbx+rax*8],(int)21 cmp [rbx+rax*8]+158],(int)30306572 je TurnsTaken //Engage Normal Route cmp qword ptr [rbx+rax*8],34 jmp return TurnsTaken: mov [GetTurns],rbx mov [GetTurnsOffset],rax //Engage Normal Route cmp qword ptr [rbx+rax*8],34 jmp return GetTurns: dq 0 GetTurnsOffset: dq 0 TurnsTakenScript: jmp newmem return: registersymbol(TurnsTakenScript GetTurns GetTurnsOffset) [DISABLE] TurnsTakenScript: db 48 83 3C C3 34 unregistersymbol(TurnsTakenScript GetTurns GetTurnsOffset) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: x64-msvcrt-ruby240.rb_ivar_defined+120 x64-msvcrt-ruby240.rb_ivar_defined+F6: E8 F5 36 FA FF - call x64-msvcrt-ruby240.st_lookup x64-msvcrt-ruby240.rb_ivar_defined+FB: 85 C0 - test eax,eax x64-msvcrt-ruby240.rb_ivar_defined+FD: 0F 84 5D FF FF FF - je x64-msvcrt-ruby240.rb_ivar_defined+60 x64-msvcrt-ruby240.rb_ivar_defined+103: 48 8B 45 F8 - mov rax,[rbp-08] x64-msvcrt-ruby240.rb_ivar_defined+107: 48 F7 03 00 20 00 00 - test [rbx],00002000 x64-msvcrt-ruby240.rb_ivar_defined+10E: 75 48 - jne x64-msvcrt-ruby240.rb_ivar_defined+158 x64-msvcrt-ruby240.rb_ivar_defined+110: 8B 53 10 - mov edx,[rbx+10] x64-msvcrt-ruby240.rb_ivar_defined+113: 48 39 D0 - cmp rax,rdx x64-msvcrt-ruby240.rb_ivar_defined+116: 0F 83 44 FF FF FF - jae x64-msvcrt-ruby240.rb_ivar_defined+60 x64-msvcrt-ruby240.rb_ivar_defined+11C: 48 8B 5B 18 - mov rbx,[rbx+18] // ---------- INJECTING HERE ---------- x64-msvcrt-ruby240.rb_ivar_defined+120: 48 83 3C C3 34 - cmp qword ptr [rbx+rax*8],34 // ---------- DONE INJECTING ---------- x64-msvcrt-ruby240.rb_ivar_defined+125: 0F 84 35 FF FF FF - je x64-msvcrt-ruby240.rb_ivar_defined+60 x64-msvcrt-ruby240.rb_ivar_defined+12B: BE 14 00 00 00 - mov esi,00000014 x64-msvcrt-ruby240.rb_ivar_defined+130: E9 2D FF FF FF - jmp x64-msvcrt-ruby240.rb_ivar_defined+62 x64-msvcrt-ruby240.rb_ivar_defined+135: 0F 1F 00 - nop dword ptr [rax] x64-msvcrt-ruby240.rb_ivar_defined+138: 48 89 D9 - mov rcx,rbx x64-msvcrt-ruby240.rb_ivar_defined+13B: 48 89 55 28 - mov [rbp+28],rdx x64-msvcrt-ruby240.rb_ivar_defined+13F: E8 FC DA F1 FF - call x64-msvcrt-ruby240.rb_obj_class x64-msvcrt-ruby240.rb_ivar_defined+144: 48 8B 55 28 - mov rdx,[rbp+28] x64-msvcrt-ruby240.rb_ivar_defined+148: 48 8B 40 18 - mov rax,[rax+18] x64-msvcrt-ruby240.rb_ivar_defined+14C: 48 8B 08 - mov rcx,[rax] } </AssemblerScript> <CheatEntries> <CheatEntry> <ID>14530</ID> <Description>"Amount"</Description> <LastState Value="5" RealAddress="29D17005A50"/> <ShowAsSigned>0</ShowAsSigned> <VariableType>Custom</VariableType> <CustomType>RPG VX type</CustomType> <Address>[GetTurns]+[GetTurnsOffset]*8-158</Address> </CheatEntry> </CheatEntries> </CheatEntry> <CheatEntry> <ID>14536</ID> <Description>"Challenge Missions"</Description> <Options moHideChildren="1" moAllowManualCollapseAndExpand="1"/> <LastState/> <VariableType>Auto Assembler Script</VariableType> <AssemblerScript>{ Game : SymphonyOfWar.exe Version: 1.10.2 Date : 2024-04-14 Author : RMLSNEK } [ENABLE] aobscanmodule(TurnsTakenObjScript,x64-msvcrt-ruby240.dll,48 8B 40 10 49 89 45 00) alloc(newmem,$1000,TurnsTakenObjScript) label(code GetTurnsObj) label(return) newmem: code: cmp [rax+10],(int)40554764 je TurnsTakenObj jmp returnroute TurnsTakenObj: mov [GetTurnsObj],rax jmp returnroute returnroute: //Engage Normal Route mov rax,[rax+10] mov [r13+00],rax jmp return GetTurnsObj: dq 0 TurnsTakenObjScript: jmp newmem nop 3 return: registersymbol(TurnsTakenObjScript GetTurnsObj) [DISABLE] TurnsTakenObjScript: db 48 8B 40 10 49 89 45 00 unregistersymbol(TurnsTakenObjScript GetTurnsObj) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: x64-msvcrt-ruby240.st_lookup+6F x64-msvcrt-ruby240.st_lookup+4A: 48 83 F8 FE - cmp rax,-02 x64-msvcrt-ruby240.st_lookup+4E: 74 E5 - je x64-msvcrt-ruby240.st_lookup+35 x64-msvcrt-ruby240.st_lookup+50: 48 83 F8 FF - cmp rax,-01 x64-msvcrt-ruby240.st_lookup+54: 0F 84 B6 00 00 00 - je x64-msvcrt-ruby240.st_lookup+110 x64-msvcrt-ruby240.st_lookup+5A: 48 8D 58 FE - lea rbx,[rax-02] x64-msvcrt-ruby240.st_lookup+5E: 4D 85 ED - test r13,r13 x64-msvcrt-ruby240.st_lookup+61: 74 14 - je x64-msvcrt-ruby240.st_lookup+77 x64-msvcrt-ruby240.st_lookup+63: 49 8B 56 30 - mov rdx,[r14+30] x64-msvcrt-ruby240.st_lookup+67: 48 8D 04 5B - lea rax,[rbx+rbx*2] x64-msvcrt-ruby240.st_lookup+6B: 48 8D 04 C2 - lea rax,[rdx+rax*8] // ---------- INJECTING HERE ---------- x64-msvcrt-ruby240.st_lookup+6F: 48 8B 40 10 - mov rax,[rax+10] // ---------- DONE INJECTING ---------- x64-msvcrt-ruby240.st_lookup+73: 49 89 45 00 - mov [r13+00],rax x64-msvcrt-ruby240.st_lookup+77: B8 01 00 00 00 - mov eax,00000001 x64-msvcrt-ruby240.st_lookup+7C: 48 83 C4 38 - add rsp,38 x64-msvcrt-ruby240.st_lookup+80: 5B - pop rbx x64-msvcrt-ruby240.st_lookup+81: 5E - pop rsi x64-msvcrt-ruby240.st_lookup+82: 5F - pop rdi x64-msvcrt-ruby240.st_lookup+83: 41 5C - pop r12 x64-msvcrt-ruby240.st_lookup+85: 41 5D - pop r13 x64-msvcrt-ruby240.st_lookup+87: 41 5E - pop r14 x64-msvcrt-ruby240.st_lookup+89: 41 5F - pop r15 } </AssemblerScript> <CheatEntries> <CheatEntry> <ID>14537</ID> <Description>"Amount"</Description> <ShowAsSigned>0</ShowAsSigned> <VariableType>Custom</VariableType> <CustomType>RPG VX type</CustomType> <Address>[GetTurnsObj]+70</Address> </CheatEntry> <CheatEntry> <ID>14539</ID> <Description>"View Mission Info to Update Value. If value is failed or completed. Then this will not show."</Description> <LastState Value="" RealAddress="00000000"/> <Color>7171FF</Color> <GroupHeader>1</GroupHeader> </CheatEntry> </CheatEntries> </CheatEntry> </CheatEntries> </CheatEntry> </CheatEntries> </CheatTable>
These tables use RPG VX value type. Thanks to Dark Byte Be sure to use it.
Spoiler
How to Use:
[Right Click on the "Value Type" selective bar and click "Define
new custom type (Auto Assembler)" . Delete everything inside this Script and paste the new script (from below). You can now select this value type to search for values.
Code: Select all
alloc(TypeName,256) alloc(ByteSize,4) alloc(PreferedAlignment, 4) alloc(ConvertRoutine,1024) alloc(ConvertBackRoutine,1024) TypeName: db 'RPG VX type',0 ByteSize: dd 4 PreferedAlignment: dd 1 //The convert routine should hold a routine that converts the data to an nteger (in eax) //function declared as: stdcall int ConvertRoutine(unsigned char *input); //Note: Keep in mind that this routine can be called by multiple threads at the same time. ConvertRoutine: [32-bit] push ebp mov ebp,esp push ecx mov ecx,[ebp+8] [/32-bit] //at this point ecx contains the address where the bytes are stored //put the bytes into the eax register mov eax,[ecx] //second fun fact, addressing with 32-bit registers doesn't work in 64-bit, it becomes a 64-bit automatically (most of the time) shr eax,1 //shift right by 1 bit (divide by 2) //and now exit the routine [64-bit] ret [/64-bit] [32-bit] pop ecx pop ebp ret 4 [/32-bit] //The convert back routine should hold a routine that converts the given integer back to a row of bytes (e.g when the user wats to write a new value) //function declared as: stdcall void ConvertBackRoutine(int i, unsigned char *output); ConvertBackRoutine: [32-bit] push ebp mov ebp,esp push edx //save the registers push ecx mov edx,[ebp+0c] mov ecx,[ebp+08] [/32-bit] //at this point edx contains the address to write the value to //and ecx contains the value push eax push edx mov edx,[edx] //edx now contains the original value and edx,1 //only save the first bit mov eax,ecx //eax gets the user input value shl eax,1 //shift left by 1 bit (multiply by 2) or eax,edx //add the bits of the original value pop edx mov [edx],eax //write the new value into the old value pop eax [64-bit] //everything is back to what it was, so exit ret [/64-bit] [32-bit] //cleanup first pop ecx pop edx pop ebp ret 8 [/32-bit]
Re: [Request] Symphony of War: The Nephilim Saga
(Google translation)
Setting all stats of the selected unit to maximum values, as in the screenshot I showed:
Works in different game modes on all types of units, including allied and enemy (v1.10.22, win7 x64).
Activate the script, press and hold down the "~" (tilde) key, then move the cursor over the units whose stats you want to change. Stats change only when you hold down the key.
Note. Please note that during the battle you can also change the stats of any units.
Setting all stats of the selected unit to maximum values, as in the screenshot I showed:
Spoiler
Activate the script, press and hold down the "~" (tilde) key, then move the cursor over the units whose stats you want to change. Stats change only when you hold down the key.
Note. Please note that during the battle you can also change the stats of any units.
- Attachments
-
- SoW_v1.2.CT
- (1.81 KiB) Downloaded 1227 times
Re: [Request] Symphony of War: The Nephilim Saga
rmndr wrote: ↑Wed Apr 24, 2024 5:33 pmI have downloaded the table, but I genuinely don't see a way to use it. There are no values - am I doing something wrong? Can you please post a quick set of instructions to use this (for example, "use an item for values to updates" or something like that) or a video, as other people have mentioned?
===========================
ah that's entirely my bad! I feel so bad, I forgot to mention it's for the index slot 1 of the trade system.
here are some images to help:
Spoiler
The first item in the list, and only this item slot will be our target. (circled in red). We will be changing this value from a "Affinity: Water" to a "Heartseeker" item.
we can do this by selecting "Type" and changing the value from "Resources" to "Gear" as indicated by the red circle.
Just make sure the item you want matches the "Type".E.g.
[*] If you want horses, or iron then you want to set "Type" as "Resources" and select the item in the "Resources" list (as shown by the green line)
[*] If you want an item like a heartsteel bow, then set "Type" as "Gear" and select the item in the "Gear" list(as shown by the yellow line)
For our example, we will be changing the "Affinity: Water" to a "Heartseeker" Bow so lets select Gear and then select the item from the Gear List. (as shown by the orange circle)
As you can see on the rightside of the trade menu, the item is displayed correctly, but the item itself is still named "Affinity: Water". This item is actually the bow, so we can ignore that. (As shown by the purple circle)
and finally, we if do want to update the visual of the text, we just back out of the trade and re-enter, and it should correct itself.
Re: [Request] Symphony of War: The Nephilim Saga
You can make scripts for each separate statistic?
Re: [Request] Symphony of War: The Nephilim Saga
How to change to values of like 255 to maybe 150 and if not possible where are the values in the script so that maybe I can change them manually.AlexS wrote: ↑Fri Apr 26, 2024 5:45 pm(Google translation)
Setting all stats of the selected unit to maximum values, as in the screenshot I showed:Works in different game modes on all types of units, including allied and enemy (v1.10.22, win7 x64).Spoiler
Activate the script, press and hold down the "~" (tilde) key, then move the cursor over the units whose stats you want to change. Stats change only when you hold down the key.
Note. Please note that during the battle you can also change the stats of any units.
Re: [Request] Symphony of War: The Nephilim Saga
The values part doesn't appear anything, so I can't change anything at all, still very confusing how to make the configuration should be the first priority.RMLSNK wrote: ↑Sat Apr 27, 2024 12:25 amrmndr wrote: ↑Wed Apr 24, 2024 5:33 pmI have downloaded the table, but I genuinely don't see a way to use it. There are no values - am I doing something wrong? Can you please post a quick set of instructions to use this (for example, "use an item for values to updates" or something like that) or a video, as other people have mentioned?
===========================
ah that's entirely my bad! I feel so bad, I forgot to mention it's for the index slot 1 of the trade system.
here are some images to help:
Once again I'm really sorry for forgetting about this crucial piece of information.Spoiler
The first item in the list, and only this item slot will be our target. (circled in red). We will be changing this value from a "Affinity: Water" to a "Heartseeker" item.
we can do this by selecting "Type" and changing the value from "Resources" to "Gear" as indicated by the red circle.
Just make sure the item you want matches the "Type".E.g.
[*] If you want horses, or iron then you want to set "Type" as "Resources" and select the item in the "Resources" list (as shown by the green line)
[*] If you want an item like a heartsteel bow, then set "Type" as "Gear" and select the item in the "Gear" list(as shown by the yellow line)
For our example, we will be changing the "Affinity: Water" to a "Heartseeker" Bow so lets select Gear and then select the item from the Gear List. (as shown by the orange circle)
As you can see on the rightside of the trade menu, the item is displayed correctly, but the item itself is still named "Affinity: Water". This item is actually the bow, so we can ignore that. (As shown by the purple circle)
and finally, we if do want to update the visual of the text, we just back out of the trade and re-enter, and it should correct itself.
Re: [Request] Symphony of War: The Nephilim Saga
(Google translation)
The game uses a complex calculation of player characteristics from different values that are of a non-standard type (RPG VX), so direct input of the value you specify is not possible.
When creating this script, the main condition was that it work according to the “activate and forget” principle. This script does not register non-standard types of values, it does not require the user to switch to the CE program during the game to enter some values or other actions with the table, all control of the script is carried out with one button. This is done by request for the convenience of users, many of whom are not familiar with the CE program.
-
- Cheater
- Posts: 39
- Joined: Sun Apr 16, 2017 7:42 pm
- Reputation: 2
Re: [Request] Symphony of War: The Nephilim Saga
Thanks for your effort, but they aren't working at all. (except for the RPG VX value script, this is working)RMLSNK wrote: ↑Sat Apr 27, 2024 12:25 amrmndr wrote: ↑Wed Apr 24, 2024 5:33 pmI have downloaded the table, but I genuinely don't see a way to use it. There are no values - am I doing something wrong? Can you please post a quick set of instructions to use this (for example, "use an item for values to updates" or something like that) or a video, as other people have mentioned?
===========================
ah that's entirely my bad! I feel so bad, I forgot to mention it's for the index slot 1 of the trade system.
here are some images to help:
Once again I'm really sorry for forgetting about this crucial piece of information.Spoiler
The first item in the list, and only this item slot will be our target. (circled in red). We will be changing this value from a "Affinity: Water" to a "Heartseeker" item.
we can do this by selecting "Type" and changing the value from "Resources" to "Gear" as indicated by the red circle.
Just make sure the item you want matches the "Type".E.g.
[*] If you want horses, or iron then you want to set "Type" as "Resources" and select the item in the "Resources" list (as shown by the green line)
[*] If you want an item like a heartsteel bow, then set "Type" as "Gear" and select the item in the "Gear" list(as shown by the yellow line)
For our example, we will be changing the "Affinity: Water" to a "Heartseeker" Bow so lets select Gear and then select the item from the Gear List. (as shown by the orange circle)
As you can see on the rightside of the trade menu, the item is displayed correctly, but the item itself is still named "Affinity: Water". This item is actually the bow, so we can ignore that. (As shown by the purple circle)
and finally, we if do want to update the visual of the text, we just back out of the trade and re-enter, and it should correct itself.
You can paste them into the list and open them, but the RPG VX only show ?? as values, regardless were you are in the menus.
Re: [Request] Symphony of War: The Nephilim Saga
HappyGamer wrote: ↑Sat May 18, 2024 7:35 amThanks for your effort, but they aren't working at all. (except for the RPG VX value script, this is working)RMLSNK wrote: ↑Sat Apr 27, 2024 12:25 amrmndr wrote: ↑Wed Apr 24, 2024 5:33 pm
I have downloaded the table, but I genuinely don't see a way to use it. There are no values - am I doing something wrong? Can you please post a quick set of instructions to use this (for example, "use an item for values to updates" or something like that) or a video, as other people have mentioned?
===========================
ah that's entirely my bad! I feel so bad, I forgot to mention it's for the index slot 1 of the trade system.
here are some images to help:
Once again I'm really sorry for forgetting about this crucial piece of information.Spoiler
The first item in the list, and only this item slot will be our target. (circled in red). We will be changing this value from a "Affinity: Water" to a "Heartseeker" item.
we can do this by selecting "Type" and changing the value from "Resources" to "Gear" as indicated by the red circle.
Just make sure the item you want matches the "Type".E.g.
[*] If you want horses, or iron then you want to set "Type" as "Resources" and select the item in the "Resources" list (as shown by the green line)
[*] If you want an item like a heartsteel bow, then set "Type" as "Gear" and select the item in the "Gear" list(as shown by the yellow line)
For our example, we will be changing the "Affinity: Water" to a "Heartseeker" Bow so lets select Gear and then select the item from the Gear List. (as shown by the orange circle)
As you can see on the rightside of the trade menu, the item is displayed correctly, but the item itself is still named "Affinity: Water". This item is actually the bow, so we can ignore that. (As shown by the purple circle)
and finally, we if do want to update the visual of the text, we just back out of the trade and re-enter, and it should correct itself.
You can paste them into the list and open them, but the RPG VX only show ?? as values, regardless were you are in the menus.
Apologises if I'm quiet, but this video should demostrate
What to Enter:
Spoiler
alloc(TypeName,256)
alloc(ByteSize,4)
alloc(PreferedAlignment, 4)
alloc(ConvertRoutine,1024)
alloc(ConvertBackRoutine,1024)
TypeName:
db 'RPG VX type',0
ByteSize:
dd 4
PreferedAlignment:
dd 1
//The convert routine should hold a routine that converts the data to an nteger (in eax)
//function declared as: stdcall int ConvertRoutine(unsigned char *input);
//Note: Keep in mind that this routine can be called by multiple threads at the same time.
ConvertRoutine:
[32-bit]
push ebp
mov ebp,esp
push ecx
mov ecx,[ebp+8]
[/32-bit]
//at this point ecx contains the address where the bytes are stored
//put the bytes into the eax register
mov eax,[ecx] //second fun fact, addressing with 32-bit registers doesn't work in 64-bit, it becomes a 64-bit automatically (most of the time)
shr eax,1 //shift right by 1 bit (divide by 2)
//and now exit the routine
[64-bit]
ret
[/64-bit]
[32-bit]
pop ecx
pop ebp
ret 4
[/32-bit]
//The convert back routine should hold a routine that converts the given integer back to a row of bytes (e.g when the user wats to write a new value)
//function declared as: stdcall void ConvertBackRoutine(int i, unsigned char *output);
ConvertBackRoutine:
[32-bit]
push ebp
mov ebp,esp
push edx //save the registers
push ecx
mov edx,[ebp+0c]
mov ecx,[ebp+08]
[/32-bit]
//at this point edx contains the address to write the value to
//and ecx contains the value
push eax
push edx
mov edx,[edx] //edx now contains the original value
and edx,1 //only save the first bit
mov eax,ecx //eax gets the user input value
shl eax,1 //shift left by 1 bit (multiply by 2)
or eax,edx //add the bits of the original value
pop edx
mov [edx],eax //write the new value into the old value
pop eax
[64-bit]
//everything is back to what it was, so exit
ret
[/64-bit]
[32-bit]
//cleanup first
pop ecx
pop edx
pop ebp
ret 8
[/32-bit]
alloc(ByteSize,4)
alloc(PreferedAlignment, 4)
alloc(ConvertRoutine,1024)
alloc(ConvertBackRoutine,1024)
TypeName:
db 'RPG VX type',0
ByteSize:
dd 4
PreferedAlignment:
dd 1
//The convert routine should hold a routine that converts the data to an nteger (in eax)
//function declared as: stdcall int ConvertRoutine(unsigned char *input);
//Note: Keep in mind that this routine can be called by multiple threads at the same time.
ConvertRoutine:
[32-bit]
push ebp
mov ebp,esp
push ecx
mov ecx,[ebp+8]
[/32-bit]
//at this point ecx contains the address where the bytes are stored
//put the bytes into the eax register
mov eax,[ecx] //second fun fact, addressing with 32-bit registers doesn't work in 64-bit, it becomes a 64-bit automatically (most of the time)
shr eax,1 //shift right by 1 bit (divide by 2)
//and now exit the routine
[64-bit]
ret
[/64-bit]
[32-bit]
pop ecx
pop ebp
ret 4
[/32-bit]
//The convert back routine should hold a routine that converts the given integer back to a row of bytes (e.g when the user wats to write a new value)
//function declared as: stdcall void ConvertBackRoutine(int i, unsigned char *output);
ConvertBackRoutine:
[32-bit]
push ebp
mov ebp,esp
push edx //save the registers
push ecx
mov edx,[ebp+0c]
mov ecx,[ebp+08]
[/32-bit]
//at this point edx contains the address to write the value to
//and ecx contains the value
push eax
push edx
mov edx,[edx] //edx now contains the original value
and edx,1 //only save the first bit
mov eax,ecx //eax gets the user input value
shl eax,1 //shift left by 1 bit (multiply by 2)
or eax,edx //add the bits of the original value
pop edx
mov [edx],eax //write the new value into the old value
pop eax
[64-bit]
//everything is back to what it was, so exit
ret
[/64-bit]
[32-bit]
//cleanup first
pop ecx
pop edx
pop ebp
ret 8
[/32-bit]
-
- Cheater
- Posts: 39
- Joined: Sun Apr 16, 2017 7:42 pm
- Reputation: 2
Re: [Request] Symphony of War: The Nephilim Saga
Thanks for your reply, but there seems to be a misunderstanding.HappyGamer wrote: ↑Sat May 18, 2024 7:35 am
Apologises if I'm quiet, but this video should demostrate
I have the RPG VX value type available, I can also search with it.
BUT! the values of your scripts are "??" and nothing you can do with that.
So there is no way I can use your explanation for the script.
[Link]
Who is online
Users browsing this forum: Firstlast2s100, Google Adsense [Bot], SemrushBot