Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?xml version="1.0"?>
- <CheatTable CheatEngineTableVersion="12">
- <CheatEntries>
- <CheatEntry>
- <ID>57</ID>
- <Description>"EXP base script: must be activated FIRST, prerequiste to the next script (exp reduction) (please activate)"</Description>
- <Color>80000008</Color>
- <VariableType>Auto Assembler Script</VariableType>
- <AssemblerScript>[ENABLE]
- //code from here to '[DISABLE]' will be used to enable the cheat
- alloc(newmem7,2048) //2kb should be enough
- label(returnhere7)
- label(originalcode7)
- label(exit7)
- label(hHSubFJMP)
- label(skillpoints)
- aobscan(EXPChange_AOB,89 48 18 8b 57 1C 5D)
- registersymbol(hHSubFJMP)
- newmem7: //this is allocated memory, you have read,write,execute access
- //place your code here
- push edx
- push ebx
- //No changes in this script neccessary; just a technical anchor
- // in order for the next script to work: it marks a strand of parallel code
- skillpoints:
- pop ebx
- pop edx
- originalcode7:
- mov [eax+18],ecx
- mov edx,[edi+1C]
- pop ebp
- exit7:
- jmp returnhere7
- EXPChange_AOB:
- hHSubFJMP:
- jmp newmem7
- nop
- nop
- returnhere7:
- [DISABLE]
- //code from here till the end of the code will be used to disable the cheat
- dealloc(newmem7)
- hHSubFJMP: //"Reckoning.exe"+3A1051:
- //db 5E 89 48 18 8B 57 1C
- db 89 48 18 8b 57 1C 5D
- //db 66 2B C8 66 89 8E DA 00 00 00
- //Alt: mov eax,esi
- //Alt: neg eax
- //Alt: cmp ecx,eax
- unregistersymbol(hHSubFJMP)
- </AssemblerScript>
- <Hotkeys>
- <Hotkey>
- <Action>Toggle Activation</Action>
- <Keys>
- <Key>17</Key>
- <Key>49</Key>
- </Keys>
- <Description>EXP Always first</Description>
- <ID>0</ID>
- </Hotkey>
- </Hotkeys>
- </CheatEntry>
- <CheatEntry>
- <ID>56</ID>
- <Description>"60% EXP gain reduction (only works if first script was activated beforehand) (please activate)"</Description>
- <Color>80000008</Color>
- <VariableType>Auto Assembler Script</VariableType>
- <AssemblerScript>[ENABLE]
- //code from here to '[DISABLE]' will be used to enable the cheat
- alloc(newmem8,2048) //2kb should be enough
- label(returnhere8)
- label(originalcode8)
- label(exit8)
- label(hHSubGJMP)
- label(skillpoints2)
- label(NotZero)
- aobscan(EXPChange2_AOB,5E 89 48 18 8b 57 1C 5D)
- //globalalloc(EXPPointer,4)
- //globalalloc(pTotalEXP,4)
- registersymbol(hHSubGJMP)
- newmem8: //this is allocated memory, you have read,write,execute access
- //place your code here
- push edx
- push ebx
- mov edx,[eax+18]
- mov ebx,ecx
- sub ebx,edx
- cmp ebx,(int)15
- jbe skillpoints2
- cmp ebx,(int)100
- je skillpoints2
- cmp [eax+18],ecx
- je skillpoints2
- cmp ebx,(int)10000
- jg skillpoints2
- cmp ecx,0
- jbe skillpoints2
- cmp edx,0
- jbe skillpoints2
- push eax
- push edx
- mov eax,ebx
- //BEGIN OF ADJUSTABLE BLOCK: EXP REDUCTION//
- mov edx,3
- //above number is the dividend
- mul edx
- pop edx
- sar eax,3
- //above number is the divisor
- //a 1 means divide by 2, a 2 means divide by 4, a 3 means by 8...
- //above settings result in only 3/8 gain (37,5%)
- //if you wanted less severe penality and more gain, like e.g. 50%:
- //you could set this e.g. to 1 (first number)/1(second number),
- //meaning: 1/2 (50%)
- //END OF ADJUSTABLE BLOCK: EXP REDUCTION//
- mov ebx,eax
- pop eax
- add [eax+18],ebx
- mov ebx,[eax+18]
- //mov [pTotalEXP],ebx
- cmp ebx,0
- jg NotZero
- jmp skillpoints2
- NotZero:
- pop ebx
- pop edx
- pop esi
- jmp originalcode8
- skillpoints2:
- pop ebx
- mov [eax+18],ecx
- pop edx
- pop esi
- originalcode8:
- //pop esi
- //mov [eax+18],ecx
- mov edx,[edi+1C]
- pop ebp
- exit8:
- jmp returnhere8
- EXPChange2_AOB:
- hHSubGJMP:
- jmp newmem8
- nop
- nop
- nop
- returnhere8:
- [DISABLE]
- //code from here till the end of the code will be used to disable the cheat
- dealloc(newmem8)
- dealloc(TotalEXP)
- hHSubGJMP: //"Reckoning.exe"+3A1051:
- //db 5E 89 48 18 8B 57 1C
- db 5E 89 48 18 8b 57 1C 5D
- //db 66 2B C8 66 89 8E DA 00 00 00
- //Alt: mov eax,esi
- //Alt: neg eax
- //Alt: cmp ecx,eax
- unregistersymbol(hHSubGJMP)
- </AssemblerScript>
- <Hotkeys>
- <Hotkey>
- <Action>Toggle Activation</Action>
- <Keys>
- <Key>17</Key>
- <Key>50</Key>
- </Keys>
- <Description>EXP -60%</Description>
- <ID>0</ID>
- </Hotkey>
- </Hotkeys>
- </CheatEntry>
- <CheatEntry>
- <ID>2</ID>
- <Description>"Damage done 50%, damage received 200%, Mob min damage 3%, Soft cap player damage at 1500/12% (please activate)"</Description>
- <Color>80000008</Color>
- <VariableType>Auto Assembler Script</VariableType>
- <AssemblerScript>[ENABLE]
- //code from here to '[DISABLE]' will be used to enable the cheat
- alloc(newmem1,2048) //2kb should be enough
- label(returnhere1)
- label(originalcode1)
- label(exit1)
- globalalloc(pHeroHealth,4)
- alloc(pHeroMaxHealth,4)
- alloc(pHeroCurrentHealth,4)
- aobscan(hHRead_AOB,8B 4B 48 89 4C 24 14 85 C9)
- label(hHReadJMP)
- registersymbol(hHReadJMP)
- alloc(newmem2,2048) //2kb should be enough
- label(returnhere2)
- label(originalcode2)
- label(exit2)
- label(MonsterHP)
- label(NonBoosted)
- label(StillBoosted)
- label(NonBoostedDamage)
- label(FiveLimit)
- label(FiveRemains)
- label(FiveSteps)
- label(GoOn)
- aobscan(hHSubA_AOB,3B C8 76 ** 03 CE 89 4F 48 ** ** 89 5F 48 B1 40)
- label(hHSubAJMP)
- registersymbol(hHSubAJMP)
- alloc(newmem6,2048) //2kb should be enough
- label(returnhere6)
- label(originalcode6)
- label(exit6)
- label(hHSubEJMP)
- aobscan(MaxHPIncrease_AOB,83 F8 01 89 47 4C)
- registersymbol(hHSubEJMP)
- newmem1: //this is allocated memory, you have read,write,execute access
- //place your code here
- mov [pHeroHealth],ebx
- push edx
- mov edx,[ebx+4c]
- mov [pHeroMaxHealth],edx
- mov edx,[ebx+48]
- mov [pHeroCurrentHealth],edx
- pop edx
- originalcode1:
- mov ecx,[ebx+48]
- mov [esp+14],ecx
- exit1:
- jmp returnhere1
- newmem2: //this is allocated memory, you have read,write,execute access
- //place your code here
- cmp [pHeroHealth],edi
- jne MonsterHP
- push eax
- push ebx
- mov eax,esi
- // ADJUSTABLE BLOCK: SOFT CAP OF HIGH HP BY EXTREME DAMAGE INCREASE//
- cmp [pHeroCurrentHealth],(int)2999
- //above number is the hero current hp number which has to be exceeded for below
- //described extreme damage increase to kick in
- //the changes start with 3000+ hp in this case
- //when changing this adjust all other "2999" you see in the whole code below
- //to the same value
- jbe NonBoosted
- mov ebx,(int)40
- //above number is the dividend for damage received by player when his health
- // is 3000+ hp; it's a counterbalance for excessive stat increase due to
- //crafting and the way stat multilpliers are stacked in vanilla
- mul ebx
- sar eax,(int)1
- //above number is the divisor for such damage received by high hp player
- //a 1 above means divide by 2, a 2 divide by 4, a 3 divide by 8...
- //above combination results in 40/2 (2^1), i.e. 20 times the vanilla damage
- //(or 2000% or paraphrased +additional +1900%)
- mov esi,eax
- //END OF ADJUSTABLE BLOCK: SOFT CAP OF HIGH HP BY EXTREME DAMAGE INCREASE//
- // ADJUSTABLE BLOCK: MINIMUM DAMGAE RECEIVED REGARDLESS OF ARMOR/RESISTENCE//
- push [pHeroMaxHealth]
- sar [pHeroMaxHealth],5
- // above number describes the percentage of the hero's maximum hp that is added
- // to damage each time a damage occurs; it adds on every hit, but also on every
- // posion, burn, bleed etc. tick. There is an exception to this when hero
- // current hp drop below 200 hp or max hero hp are below 128 hp;
- // these exceptions are described further down in the code;
- // purpose of this is to counterbalance excessive stacking of resistence and
- // armor modifiers; furthermore it keeps even grey mobs somewhat dangerous;
- // you get better in the game, a true hero - but you remain vulnerable
- // a 1 above means divide by 2, a 2 divide by 4, a 3 divide by 8...
- // above setting results in 1/32 (2^5), i.e. about 3% of hero max hp added
- // to each damage received after armor/resistance calculations;e.g a 10000
- // max hp hero would receive (round about) additional 300 points of damage per
- // hit this values appears double time (see code below); change the other entry
- // accordingly
- sub esi,[pHeroMaxHealth]
- pop [pHeroMaxHealth]
- add ecx,esi
- pop ebx
- pop eax
- cmp ecx,(int)2999
- //when a hit brings you below of 3000 current hp, this line (and the one below)
- // ensures that this very hit will apply no more damage then needed to drop to
- // 4999 hp; this is just to make it still attractive to go over 3000+ hp
- // otherwise a hero with e.g. 2999 hp might be better of than one with 3001 hp
- jge StillBoosted
- mov ecx,(int)2999
- //see above, change in accordane, as all "2999" numbers in the code
- jmp originalcode2
- // END OF ADJUSTABLE BLOCK: MINIMUM DAMGAE RECEIVED REGARDLESS OF ARMOR/RES//
- StillBoosted:
- cmp ecx,0
- jg originalcode2
- mov ecx,0
- jmp originalcode2
- //ADJUSTABLE BLOCK: DAMAGE RECEVEID BY HERO WHEN CURRENT HP BELOW 5000//
- NonBoosted:
- mov ebx,(int)4
- //above number is the dividend for damage received by player
- // this muliplier is the normal multiplier used, i.e. when current hero hp are
- // below 3000 hp;
- mul ebx
- sar eax,(int)1
- //above number is the divisor for damage received by player
- //a 1 above means divide by 2, a 2 divide by 4, a 3 divide by 8...
- //above combintaion results in 4/2 (2^1), i.e. double times the damage received
- //by hero than in vanilla; that is 200% of vanilla damage received or
- //paraphrased + additional 100%
- cmp [pHeroMaxHealth],(int)3000
- //This number caps the minmum damage received in certain high hp situations;
- //not very relevant actually - without the cap heroes with over 3000 max hp
- //might get in situations where they would actually wish for less max hp
- //which is to be avoided - therefore this cap
- jb FiveLimit
- mov [pHeroMaxHealth],(int)3000
- //END OF ADJUSTABLE BLOCK: DAMAGE RECEVEID BY HERO WHEN CURRENT HP BELOW 5000//
- //ADJUSTABLE BLOCK: EXECPTIONS TO MINIMUM DAMAGE//
- FiveLimit:
- mov esi,eax
- cmp [pHeroMaxHealth],(int)128
- //above number is the minimum full hp of the hero that is neccesssary before the
- //minimum damage mechanism described above kicks in; I had crashes when going
- //below this; if you lower the divisor for minimum damage below, i.e. increase
- //minimum damage, you might want to increase this number, too;
- // e.g. when setting the divider to 6 (now 5) I would increase this threshold
- // to 256 (now 128)
- jb FiveRemains
- cmp [pHeroCurrentHealth],(int)200
- //above number is a switch point at which minimum damage is calculated as
- //absolute value (here: +5 additional damage points) instead of using
- //above relative method (here: 3% of of max hp). This switch, occuring when
- //current hp go equal or below above value (200), is neccessary to somewhat
- //mitigate the effect of damage over time ticks from posion, burn, bleed, etc.;
- //your reaction window for healing/fleeing is increased this way;
- //without this you will have many sudden death situations when fighting foes
- //with damage over time attacks
- //to deactivate this safe zone change all three values of "200" here and below
- //two times to 0; in any case change all three vlaues in parallel
- jbe FiveSteps
- push [pHeroMaxHealth]
- sar [pHeroMaxHealth],5
- //this is again the divisor for minimum damage (1/32 here; 2^5; round about
- //3% of max hp: set to the same value as above; it repeats for techncial reasons
- //only
- sub esi,[pHeroMaxHealth]
- pop [pHeroMaxHealth]
- push [pHeroCurrentHealth]
- add [pHeroCurrentHealth],esi
- mov ebx,[pHeroCurrentHealth]
- pop [pHeroCurrentHealth]
- cmp ebx,(int)150
- //again, a threshold value: in case any damage brings your hero to 200 or less
- //hp, that very damage only drops you down to exactly 200 hp; otherwise spill
- //over damage might simply drop you dead right away before entering the 200 hp
- // safe zone with reduced minmum damage mechanism
- jg FiveRemains
- mov esi,0
- mov ecx,(int)150
- //see above, always chnage in parallel
- jmp FiveRemains
- FiveSteps:
- sub esi,(int)5
- //This is the absolute minimum damage added to each damage that occurs within
- //the 200 hp safe zone
- //END OF ADJUSTABLE BLOCK: EXECPTIONS TO MINIMUM//
- FiveRemains:
- add ecx,esi
- pop ebx
- pop eax
- cmp ecx,0
- //do not change or dying will be glitchy
- jg originalcode2
- mov ecx,0
- //do not change or dying will be glitchy
- jmp originalcode2
- MonsterHP:
- push eax
- push ebx
- //mov eax,[edi+48]
- //mov [edi+48],ecx
- //neg eax
- //mov ebx,(int)1
- //mul ebx
- //sar eax,1
- //cmp ecx,eax
- //jg GoOn
- //mov ebx,(int)-1500
- //add eax,esi
- //add eax,(int)30
- //cmp eax,(int)0
- //jg GoOn
- //mov ebx,[edi+48]
- //neg ebx
- //cmp eax,ebx
- //jb GoOn
- //mov ecx,0
- //add ecx,esi
- //pop ebx
- //pop eax
- //cmp ecx,0
- //do not change or dying will be glitchy
- //jg originalcode2
- //mov ecx,0
- //do not change or dying will be glitchy
- //jmp originalcode2
- GoOn:
- mov eax,esi
- //ADJUSTABLE BLOCK: SOFT CAP TO DAMAGE DONE BY HERO//
- cmp eax,(int)-1500
- //this checks at which damage value a soft cap to the damage the hero deals
- //shall be applied; in this case, if you do more than 1500 damage points, you
- //get diminishing returns
- //purpose is to counterbalance extreme effects due to the way the modifiers
- //stack in vanilla; this shall prevent weapon crafting/socketing
- //from becoming game breaking in the end game
- //this mechanism favors fast weapons over slow a little - I cannot change that
- //it will not break stealth kills: there's a glitch though that stealth killed
- //opponents need a few extra strikes after they have dropped ;just imagine you
- //alredy kncoked them out and now have to finish them off; only a minor glitch
- //mind that it's a negative value here
- jge NonBoostedDamage
- add eax,(int)1629
- //change in accordance to above, but use a positive value
- sar eax,(int)3
- //this is the percentage to which the excess damage, here beyond 1500 damage
- //points, is reduced; it's round about 12% right now (1/8, 2^3). E.g when
- //dealing 3000 damage points in vanilla this will drop to 1500+1500*12/100=
- //1680 damage points
- //actually this is not fully correct for I have added additonal 129 points
- //to prevent potential crashes (at least 128 should go positive before dividing)
- //balancewise these 129 points will have no effect you might notice ingame
- sub eax,(int)1629
- //change in accordance to above, but use a positive value
- //END OF ADJUSTABLE BLOCK: SOFT CAP TO DMAGAE DONE BY HERO//
- //ADJUSTABLE BLOCK 1: DAMAGE DONE BY HERO//
- mov ebx,(int)1
- //above number is the dividend for all damage done by hero
- //this damage block repeats a few lines below;
- //make changes in both blocks (1&2) in accordance
- push edx
- mul ebx
- pop edx
- sar eax,(int)1
- //above number is the divisor for damage done by hero
- //a 1 above means divide by 2, a 2 divide by 4, a 3 divide by 8...
- //right now this is 1/2, i.e. 50% of vanilla damahge done by hero or paraphrased
- //-50% to the vanilla damage done by the hero
- //END OF ADJUSTABLE BLOCK 1: DAMAGE DONE BY HERO//
- mov esi,eax
- add ecx,esi
- pop ebx
- pop eax
- cmp ecx,0
- //do not change or dying will be glitchy
- jg originalcode2
- mov ecx,0
- //do not change or dying will be glitchy
- jmp originalcode2
- NonBoostedDamage:
- //ADJUSTABLE BLOCK 2: DAMAGE DONE BY HERO//
- mov ebx,(int)1
- //above number is the dividend for all damage done by hero
- //this damage block repeats a few lines above;
- //make changes in both blocks (1&2) in accordance
- push edx
- mul ebx
- pop edx
- sar eax,(int)1
- //above number is the divisor for damage done by hero
- //a 1 above means divide by 2, a 2 divide by 4, a 3 divide by 8...
- //right now this is 1/2, i.e. 50% of vanilla damage done by hero or paraphrased
- //-50% to the vanilla damage done by the hero
- //END OF ADJUSTABLE BLOCK 2: DAMAGE DONE BY HERO//
- mov esi,eax
- add ecx,esi
- pop ebx
- pop eax
- cmp ecx,0
- //do not change or dying will be glitchy
- jg originalcode2
- mov ecx,0
- //do not change or dying will be glitchy
- jmp originalcode2
- originalcode2:
- mov [edi+48],ecx
- exit2:
- jmp returnhere2
- newmem6: //this is allocated memory, you have read,write,execute access
- //place your code here
- cmp eax,01
- push ebx
- //ADJUSABLE BLOCK: MAX HP TIMES FIVE//
- mov ebx,(int)1
- //above value is the muliplier for hero's max hp; it's at vanilla level now
- //END OF ADJUSABLE BLOCK: MAX HP TIMES FIVE//
- mul ebx
- pop ebx
- originalcode6:
- //cmp eax,01
- mov [edi+4C],eax
- exit6:
- jmp returnhere6
- hHRead_AOB: //"Reckoning.exe"+3A18E5:
- hHReadJMP:
- jmp newmem1
- nop
- nop
- returnhere1:
- hHSubA_AOB: //"Reckoning.exe"+3A1059:
- hHSubAJMP:
- jmp newmem2
- nop
- nop
- nop
- nop
- returnhere2:
- MaxHPIncrease_AOB:
- hHSubEJMP:
- jmp newmem6
- nop
- returnhere6:
- [DISABLE]
- //code from here till the end of the code will be used to disable the cheat
- dealloc(newmem1)
- dealloc(newmem2)
- dealloc(newmem6)
- hHReadJMP: //"Reckoning.exe"+3A18E5:
- db 8B 4B 48 89 4C 24 14
- //Alt: mov ecx,[ebx+48]
- //Alt: mov [esp+14],ecx
- dealloc(pHeroHealth)
- dealloc(pHeroMaxHealth)
- dealloc(pHeroCurrentHealth)
- //dealloc(Intermediate,4)
- unregistersymbol(hHReadJMP)
- hHSubAJMP: //"Reckoning.exe"+3A1059:
- db 03 CE 89 4F 48
- //Alt: add ecx,esi
- //Alt: mov [edi+48],ecx
- unregistersymbol(hHSubAJMP)
- hHSubEJMP: //"Reckoning.exe"+3A1051:
- //db 5E 89 48 18 8B 57 1C
- db 83 F8 01 89 47 4C
- //db 66 2B C8 66 89 8E DA 00 00 00
- //Alt: mov eax,esi
- //Alt: neg eax
- //Alt: cmp ecx,eax
- unregistersymbol(hHSubEJMP)
- </AssemblerScript>
- <Hotkeys>
- <Hotkey>
- <Action>Toggle Activation</Action>
- <Keys>
- <Key>17</Key>
- <Key>51</Key>
- </Keys>
- <Description>DAM Changes</Description>
- <ID>0</ID>
- </Hotkey>
- </Hotkeys>
- <CheatEntries>
- <CheatEntry>
- <ID>28</ID>
- <Description>"CurrentHealth (leave UNACTIVATED)"</Description>
- <Color>80000008</Color>
- <VariableType>4 Bytes</VariableType>
- <Address>pHeroHealth</Address>
- <Offsets>
- <Offset>48</Offset>
- </Offsets>
- </CheatEntry>
- </CheatEntries>
- </CheatEntry>
- <CheatEntry>
- <ID>60</ID>
- <Description>"Health regeneration 20% effect, Heal potions 50% effect; needs damage script active (please activate)"</Description>
- <Color>80000008</Color>
- <VariableType>Auto Assembler Script</VariableType>
- <AssemblerScript>[ENABLE]
- //code from here to '[DISABLE]' will be used to enable the cheat
- alloc(newmem3,2048) //2kb should be enough
- label(returnhere3)
- label(originalcode3)
- label(exit3)
- label(Collecting)
- label(Healpotion)
- label(MonsterRegeneration)
- globalalloc(Counter,4)
- aobscan(hHSubB_AOB,03 CE 83 F8 01 89 4F 48 8D 53 01)
- label(hHSubBJMP)
- registersymbol(hHSubBJMP)
- newmem3: //this is allocated memory, you have read,write,execute access
- //place your code here
- cmp [pHeroHealth],edi
- jne MonsterRegeneration
- //ADJUSTABLE BLOCK: STRENGTH OF HEALING EFFECTS IN FAVOR OF HERO//
- cmp esi,(int)30
- //above number is for identifying whether a heal potion (or more general:
- //single instance heal) or a regeneration potion (or more genereal: heal
- //over time) is used; every heal of 30+ points on one tick is considered as
- //heal potion; please note that the number of ticks called per second depends
- //on the potion used; small regenration potions tick 3 to 5 times per second
- //large ones about 20 times per second
- jge Healpotion
- cmp [Counter],(int)5
- //this number divides the strenth of heal over time effects (e.g. regeneration
- //potions); it actually inserts blank ticks without effect: the setting of 5,
- // reduces HoT effects to 20% (80% effectiveness lost)
- jne Collecting
- add ecx,esi
- mov [Counter],0
- jmp originalcode3
- Collecting:
- add [Counter],(int)1
- jmp originalcode3
- Healpotion:
- push ebx
- push eax
- mov eax,esi
- mov ebx,(int)1
- mul ebx
- sar eax,(int)1
- mov esi,eax
- pop eax
- pop ebx
- //above number divides the strength of single instance heals (e.g. heal potions)
- // a 1 means divide by 2, a 2 means by 4, a 3 by 8...
- //the 2 above brings single instance heals down 50% (50% effectiveness lost)
- //END OF ADJUSTABLE BLOCK: STRENGTH OF HEALING EFFECTS IN FAVOR OF HERO//
- add ecx,esi
- jmp originalcode3
- MonsterRegeneration:
- add ecx,esi
- //add ecx,esi
- //special: above- if un-commmenetned could double monster heals, but I have not
- //seen any so far... I keep it commented and tehrewith dectivated to prevent
- //potential hidden glitches
- originalcode3:
- //add ecx,esi
- cmp eax,01
- exit3:
- jmp returnhere3
- hHSubB_AOB: //"Reckoning.exe"+3A0FC9:
- hHSubBJMP:
- jmp newmem3
- returnhere3:
- [DISABLE]
- //code from here till the end of the code will be used to disable the cheat
- dealloc(newmem3)
- hHSubBJMP: //"Reckoning.exe"+3A0FC9:
- db 03 CE 83 F8 01
- //Alt: add ecx,esi
- //Alt: cmp eax,01
- unregistersymbol(hHSubBJMP)
- </AssemblerScript>
- <Hotkeys>
- <Hotkey>
- <Action>Toggle Activation</Action>
- <Keys>
- <Key>17</Key>
- <Key>52</Key>
- </Keys>
- <Description>HEAL Changes</Description>
- <ID>0</ID>
- </Hotkey>
- </Hotkeys>
- </CheatEntry>
- <CheatEntry>
- <ID>10</ID>
- <Description>"Mana cost 200%, mana reg 33%, mana potions 50%, Min cast cost 10 (please activate)"</Description>
- <Color>80000008</Color>
- <VariableType>Auto Assembler Script</VariableType>
- <AssemblerScript>[ENABLE]
- //code from here to '[DISABLE]' will be used to enable the cheat
- alloc(newmem,2048) //2kb should be enough
- label(returnhere)
- label(originalcode)
- label(exit)
- label(DRUNTER)
- label(MinCostReached)
- aobscan(MPSub_AOB,8B D0 F7 DA 3B CA ** ** 03 C8 89 8D 84 00 00 00)
- label(MPSubJMP)
- registersymbol(MPSubJMP)
- alloc(newmem3,2048) //2kb should be enough
- label(returnhere3)
- label(originalcode3)
- label(exit3)
- //label(MonsterRegeneration)
- label(Collecting)
- label(ManaPotion)
- globalalloc(ManaCounter,4)
- aobscan(ManaRegSub_AOB,01 85 84 00 00 00 8B B5 84 00 00 00)
- label(ManaRegSubJMP)
- registersymbol(ManaRegSubJMP)
- newmem: //this is allocated memory, you have read,write,execute access
- //place your code here
- push eax
- push ebx
- push ecx
- mov eax,[ebp+00000084]
- sub eax,ecx
- // ADJUSTABLE BLOCK: INCREASED MANA COST//
- mov ecx,(int)200
- //above number is the dividend for mana cost
- mul ecx
- mov ebx,(int)100
- //above number is the divisor for mana cost
- //the combination means double mana cost
- //i.e. + additional 100% compared to vanilla
- //or paraphrased: 200% of vanilla cost
- //Note: The last spell before mana rus out can actually be cast for vanilla
- //mana cost; it's out of bounds for me to change this
- // END OF ADJUSTABLE BLOCK: INCREASED MANA COST//
- push edx
- div ebx
- //ADJUSTABLE BLOCK: MINIMUM MANA COST
- cmp eax,(int)10
- //above number it the minimum of mana cost per cast, regardless of
- //your equipment or skill boni; change in parallel to second number
- //below
- jg MinCostReached
- mov eax,(int)10
- //above number is the minimum of mana cost per cast, regardless of
- //your equipment or skill boni; change in parallel to first number
- //above
- //END OF ADJUSTABLE BLOCK: MINIMUM MANA COST
- MinCostReached:
- pop edx
- cmp [ebp+00000084],eax
- jbe DRUNTER
- sub [ebp+00000084],eax
- pop ecx
- pop ebx
- pop eax
- jmp returnhere
- DRUNTER:
- mov [ebp+00000084],0
- pop ecx
- pop ebx
- pop eax
- originalcode:
- //mov [ebp+00000084],ecx
- exit:
- jmp returnhere
- newmem3: //this is allocated memory, you have read,write,execute access
- //place your code here
- //ADJUSTABLE BLOCK: STRENGTH OF MANA EFFECTS IN FAVOR OF HERO//
- cmp eax,(int)30
- //above number is for identifying whether a mana potion (or more general:
- //single instance managain) or a regeneration potion (or more generel: mana
- //over time) is used; every mana gain of 30+ points on one tick is considered as
- //mana potion; please note that the number of ticks called per second depends
- //on the potion used; small regenration potions tick 3 to 5 times per second
- //large ones about 20 times per second
- jge ManaPotion
- cmp [ManaCounter],(int)3
- //this number divides the strength of mana over time effects (e.g. regeneration
- //potions); it actually inserts blank ticks without effect: the setting of 3,
- // reduces mana over time effects to 33% (67% effectiveness lost)
- jne Collecting
- add [ebp+00000084],eax
- mov [ManaCounter],0
- jmp originalcode3
- Collecting:
- add [ManaCounter],(int)1
- jmp originalcode3
- ManaPotion:
- sar eax,1
- //above number divides the strength of single instance mana gains
- // a 1 means divide by 2, a 2 means by 4, a 3 by 8...
- //the 1 above brings single instance gain down 50% (50% effectiveness lost)
- //END OF ADJUSTABLE BLOCK: STRENGTH OF MANA EFFECTS IN FAVOR OF HERO//
- add [ebp+00000084],eax
- jmp originalcode3
- originalcode3:
- //add [ebp+00000084],eax
- exit3:
- jmp returnhere3
- MPSub_AOB+A: //"Reckoning.exe"+39A6A1:
- MPSubJMP:
- jmp newmem
- nop
- returnhere:
- ManaRegSub_AOB:
- ManaRegSubJMP:
- jmp newmem3
- nop
- returnhere3:
- [DISABLE]
- //code from here till the end of the code will be used to disable the cheat
- dealloc(newmem)
- dealloc(newmem3)
- MPSubJMP: //"Reckoning.exe"+39A6A1:
- mov [ebp+00000084],ecx
- //Alt: db 89 8D 84 00 00 00
- unregistersymbol(MPSubJMP)
- ManaRegSubJMP: //"Reckoning.exe"+39A6A1:
- add [ebp+00000084],eax
- unregistersymbol(ManaRegSubJMP)
- </AssemblerScript>
- <Hotkeys>
- <Hotkey>
- <Action>Toggle Activation</Action>
- <Keys>
- <Key>17</Key>
- <Key>53</Key>
- </Keys>
- <Description>MANA Changes</Description>
- <ID>0</ID>
- </Hotkey>
- </Hotkeys>
- </CheatEntry>
- <CheatEntry>
- <ID>59</ID>
- <Description>"Slower Fatepoints gain: gain speed down to approximately 25% , later in game even less (please activate)"</Description>
- <Color>80000008</Color>
- <VariableType>Auto Assembler Script</VariableType>
- <AssemblerScript>[ENABLE]
- //code from here to '[DISABLE]' will be used to enable the cheat
- alloc(newmem,2048) //2kb should be enough
- label(returnhere)
- label(originalcode)
- label(exit)
- label(MinFive)
- aobscan(Fate_AOB,03 82 04 02 00 00 D9 6C 24 0C)
- label(FateSubJMP)
- registersymbol(FateSubJMP)
- newmem: //this is allocated memory, you have read,write,execute access
- //place your code here
- cmp eax,(int)250
- jg originalcode
- cmp eax,(int)5
- jae MinFive
- mov eax,(int)5
- MinFive:
- sub [edx+00000204],(int)5
- //ADJUSTABLE BLOCK: FATE GAIN PER KILL
- cmp eax,(int)10
- //above line sets the maximal fate points per kill
- //it's the above value minus 5; here: 10-5 = 5 max. fate points per kill
- //to go down to e.g. 4 max points per kill, set this and the below number to 9
- //this setting means about max. 2% of your fate bar (when full: 265 fate points)
- //per kill, no more fate agin for attck combos alone, no extra fate agin for
- //"elite" opponents of various classes; estimated reducutio of gain speed: 25%
- //(and even more when late ron you woudl find mor "elite")
- //note that foes 4 lvl below you, even if still yellows, don't yield fate points
- jbe originalcode
- mov eax,(int)10
- //keep this number the same as above number; here both at 10
- //END OF ADJUSTABLE BLOCK: FATE GAIN PER KILL
- originalcode:
- add eax,[edx+00000204]
- exit:
- jmp returnhere
- Fate_AOB:
- FateSubJMP:
- jmp newmem
- nop
- returnhere:
- [DISABLE]
- //code from here till the end of the code will be used to disable the cheat
- dealloc(newmem)
- FateSubJMP: //"Reckoning.exe"+39A6A1:
- db 03 82 04 02 00 00
- //mov [ebp+00000084],ecx
- //Alt: db 89 8D 84 00 00 00
- unregistersymbol(FateSubJMP)
- </AssemblerScript>
- <Hotkeys>
- <Hotkey>
- <Action>Toggle Activation</Action>
- <Keys>
- <Key>17</Key>
- <Key>54</Key>
- </Keys>
- <Description>FATE Changes</Description>
- <ID>0</ID>
- </Hotkey>
- </Hotkeys>
- </CheatEntry>
- <CheatEntry>
- <ID>18</ID>
- <Description>"Gold found and sell value set to 33% of vanilla: Preparation script (please activate)"</Description>
- <Color>80000008</Color>
- <VariableType>Auto Assembler Script</VariableType>
- <AssemblerScript>[ENABLE]
- //code from here to '[DISABLE]' will be used to enable the cheat
- alloc(newmem,2048) //2kb should be enough
- label(returnhere)
- label(originalcode)
- label(exit)
- globalalloc(pMoney,4)
- aobscan(moneyRead_AOB,85 C0 74 08 8B 80 64 03 00 00 EB 02 33 C0 33 C9 33 D2 89 44 24 20)
- label(moneyReadJMP)
- registersymbol(moneyReadJMP)
- newmem: //this is allocated memory, you have read,write,execute access
- //place your code here
- mov [pMoney],eax
- //just a script preparing the use of the second gold script; no need for
- //changes here; always activate both of these gold scripts, preferably this
- //one first
- originalcode:
- mov eax,[eax+00000364]
- exit:
- jmp returnhere
- moneyRead_AOB+4: //"Reckoning.exe"+7020EC:
- moneyReadJMP:
- jmp newmem
- nop
- returnhere:
- [DISABLE]
- //code from here till the end of the code will be used to disable the cheat
- dealloc(newmem)
- moneyReadJMP: //"Reckoning.exe"+7020EC:
- db 8B 80 64 03 00 00
- //Alt: mov eax,[eax+00000364]
- dealloc(pMoney)
- unregistersymbol(moneyReadJMP)
- </AssemblerScript>
- <Hotkeys>
- <Hotkey>
- <Action>Toggle Activation</Action>
- <Keys>
- <Key>17</Key>
- <Key>55</Key>
- </Keys>
- <Description>GOLD Changes</Description>
- <ID>0</ID>
- </Hotkey>
- </Hotkeys>
- <CheatEntries>
- <CheatEntry>
- <ID>19</ID>
- <Description>"Money (leave UNACTIVATED)"</Description>
- <Color>80000008</Color>
- <VariableType>4 Bytes</VariableType>
- <Address>pMoney</Address>
- <Offsets>
- <Offset>364</Offset>
- </Offsets>
- </CheatEntry>
- <CheatEntry>
- <ID>20</ID>
- <Description>"Gold found and sell value set to 33% of vanilla: Executive script (please activate)"</Description>
- <Color>80000008</Color>
- <VariableType>Auto Assembler Script</VariableType>
- <AssemblerScript>[ENABLE]
- //code from here to '[DISABLE]' will be used to enable the cheat
- alloc(newmem,2048) //2kb should be enough
- label(returnhere)
- label(originalcode)
- label(exit)
- aobscan(moneySub_AOB,CC CC 01 86 64 03 00 00 8B 86 64 03 00 00 8B 15 ** ** ** ** 33 C9 85 C0)
- label(moneySubJMP)
- registersymbol(moneySubJMP)
- newmem: //this is allocated memory, you have read,write,execute access
- //place your code here
- cmp [pMoney],esi
- push ebx
- push ecx
- jne originalcode
- cmp eax,(int)0
- jbe originalcode
- mov ebx,[esi+00000364]
- mov ecx,ebx
- add ecx,eax
- cmp ecx,ebx
- jbe originalcode
- //ADJUSTABLE BLOCK: DECREASED GOLD INFLUX//
- mov ebx,(int)33
- //above number is the dividend for gold found and gained by selling
- //please note that the sell values appear a shigh as before, but the money you
- //get will be only one third (33/100) with above setting
- mul ebx
- mov ecx,(int)100
- //above number is the divisor for gold found and gained by selling
- push edx
- div ecx
- pop edx
- //END OF ADJUSTABLE BLOCK: DECREASED GOLD INFLUX//
- originalcode:
- pop ecx
- pop ebx
- add [esi+00000364],eax
- exit:
- jmp returnhere
- moneySub_AOB+2: //"Reckoning.exe"+63C490:
- moneySubJMP:
- jmp newmem
- nop
- returnhere:
- [DISABLE]
- //code from here till the end of the code will be used to disable the cheat
- dealloc(newmem)
- moneySubJMP: //"Reckoning.exe"+63C490:
- db 01 86 64 03 00 00
- //Alt: add [esi+00000364],eax
- unregistersymbol(moneySubJMP)
- </AssemblerScript>
- <Hotkeys>
- <Hotkey>
- <Action>Toggle Activation</Action>
- <Keys>
- <Key>17</Key>
- <Key>55</Key>
- </Keys>
- <Description>GOLD Changes</Description>
- <ID>0</ID>
- </Hotkey>
- </Hotkeys>
- </CheatEntry>
- </CheatEntries>
- </CheatEntry>
- <CheatEntry>
- <ID>29</ID>
- <Description>"MaximumHealth (leave UNACTIVATED)"</Description>
- <Color>80000008</Color>
- <VariableType>4 Bytes</VariableType>
- <Address>pHeroHealth</Address>
- <Offsets>
- <Offset>4C</Offset>
- </Offsets>
- </CheatEntry>
- <CheatEntry>
- <ID>61</ID>
- <Description>"Attack Weight Preparation (please activate; afterwards switch ingame from diffculty hard to medium to hard again)"</Description>
- <Color>80000008</Color>
- <VariableType>Auto Assembler Script</VariableType>
- <AssemblerScript>[ENABLE]
- //code from here to '[DISABLE]' will be used to enable the cheat
- alloc(newmem5,2048) //2kb should be enough
- label(returnhere5)
- label(originalcode5)
- label(exit5)
- label(hHSubDJMP)
- globalalloc(AttackWeightPointer,4)
- aobscan(AttackWeight_AOB,66 2B C8 66 89 8E DA 00 00 00)
- registersymbol(hHSubDJMP)
- newmem5: //this is allocated memory, you have read,write,execute access
- //place your code here
- sub cx,ax
- //ADJUSTABLE BLOCK: ATTACK WEIGHT//
- mov [esi+000000DA],(int)100
- //The game uses a parameter called attack weight to determine how many opponents
- //attack you simultaneously with which of their attacks; usually this is 14 on
- //hard vanilla difficulty; it's increased to 100 here;
- //to have this increase take effect, you have to change diffculty back and
- //forth ingame on each restart of the game, like hard-medium-hard
- //after doing so place the check mark in front of the Attack Weight Pointer in
- //the Cheat Engine menu to lock its value at 100
- //END OF ADJUSTABLE BLOCK: ATTACK WEIGHT//
- mov [AttackWeightPointer],esi
- originalcode5:
- //sub cx,ax
- //mov [esi+000000DA],cx
- exit5:
- jmp returnhere5
- AttackWeight_AOB:
- hHSubDJMP:
- jmp newmem5
- nop
- nop
- nop
- nop
- nop
- returnhere5:
- [DISABLE]
- //code from here till the end of the code will be used to disable the cheat
- dealloc(newmem5)
- hHSubDJMP: //"Reckoning.exe"+3A1051:
- //db 5E 89 48 18 8B 57 1C
- db 66 2B C8 66 89 8E DA 00 00 00
- //Alt: mov eax,esi
- //Alt: neg eax
- //Alt: cmp ecx,eax
- unregistersymbol(hHSubDJMP)
- </AssemblerScript>
- <Hotkeys>
- <Hotkey>
- <Action>Toggle Activation</Action>
- <Keys>
- <Key>17</Key>
- <Key>56</Key>
- </Keys>
- <Description>AW Change now</Description>
- <ID>0</ID>
- </Hotkey>
- </Hotkeys>
- </CheatEntry>
- <CheatEntry>
- <ID>49</ID>
- <Description>"AttackWeight Freeze (please activate after having activated the script above and having done that hard-medium-hard switch ingame)"</Description>
- <Color>80000008</Color>
- <VariableType>Byte</VariableType>
- <Address>AttackWeightPointer</Address>
- <Offsets>
- <Offset>DA</Offset>
- </Offsets>
- <Hotkeys>
- <Hotkey>
- <Action>Toggle Activation</Action>
- <Keys>
- <Key>17</Key>
- <Key>57</Key>
- </Keys>
- <Description>AW alt+tab</Description>
- <ID>0</ID>
- </Hotkey>
- </Hotkeys>
- </CheatEntry>
- </CheatEntries>
- <CheatCodes>
- <CodeEntry>
- <Description>hp +- 1 Code :mov [edi+48],ecx</Description>
- <Address>007A105B</Address>
- <ModuleName>Reckoning.exe</ModuleName>
- <ModuleNameOffset>3A105B</ModuleNameOffset>
- <Before>
- <Byte>C8</Byte>
- <Byte>76</Byte>
- <Byte>07</Byte>
- <Byte>03</Byte>
- <Byte>CE</Byte>
- </Before>
- <Actual>
- <Byte>89</Byte>
- <Byte>4F</Byte>
- <Byte>48</Byte>
- </Actual>
- <After>
- <Byte>EB</Byte>
- <Byte>03</Byte>
- <Byte>89</Byte>
- <Byte>5F</Byte>
- <Byte>48</Byte>
- </After>
- </CodeEntry>
- <CodeEntry>
- <Description>hp access 1 Code :mov ecx,[ebx+48]</Description>
- <Address>007A18E5</Address>
- <ModuleName>Reckoning.exe</ModuleName>
- <ModuleNameOffset>3A18E5</ModuleNameOffset>
- <Before>
- <Byte>8E</Byte>
- <Byte>98</Byte>
- <Byte>01</Byte>
- <Byte>00</Byte>
- <Byte>00</Byte>
- </Before>
- <Actual>
- <Byte>8B</Byte>
- <Byte>4B</Byte>
- <Byte>48</Byte>
- </Actual>
- <After>
- <Byte>89</Byte>
- <Byte>4C</Byte>
- <Byte>24</Byte>
- <Byte>14</Byte>
- <Byte>85</Byte>
- </After>
- </CodeEntry>
- <CodeEntry>
- <Description>arrow - Code :mov [ebp+00000084],eax</Description>
- <Address>008C16DB</Address>
- <ModuleName>Reckoning.exe</ModuleName>
- <ModuleNameOffset>4C16DB</ModuleNameOffset>
- <Before>
- <Byte>48</Byte>
- <Byte>3B</Byte>
- <Byte>C3</Byte>
- <Byte>7C</Byte>
- <Byte>06</Byte>
- </Before>
- <Actual>
- <Byte>89</Byte>
- <Byte>85</Byte>
- <Byte>84</Byte>
- <Byte>00</Byte>
- <Byte>00</Byte>
- <Byte>00</Byte>
- </Actual>
- <After>
- <Byte>38</Byte>
- <Byte>9C</Byte>
- <Byte>24</Byte>
- <Byte>F4</Byte>
- <Byte>01</Byte>
- </After>
- </CodeEntry>
- <CodeEntry>
- <Description>arrow + 1 Code :mov [esi+00000084],eax</Description>
- <Address>008866C0</Address>
- <ModuleName>Reckoning.exe</ModuleName>
- <ModuleNameOffset>4866C0</ModuleNameOffset>
- <Before>
- <Byte>5E</Byte>
- <Byte>6C</Byte>
- <Byte>89</Byte>
- <Byte>5E</Byte>
- <Byte>60</Byte>
- </Before>
- <Actual>
- <Byte>89</Byte>
- <Byte>86</Byte>
- <Byte>84</Byte>
- <Byte>00</Byte>
- <Byte>00</Byte>
- <Byte>00</Byte>
- </Actual>
- <After>
- <Byte>F3</Byte>
- <Byte>0F</Byte>
- <Byte>11</Byte>
- <Byte>86</Byte>
- <Byte>88</Byte>
- </After>
- </CodeEntry>
- <CodeEntry>
- <Description>arrow + 2 Code :mov [esi+00000084],ebx</Description>
- <Address>008C4A6C</Address>
- <ModuleName>Reckoning.exe</ModuleName>
- <ModuleNameOffset>4C4A6C</ModuleNameOffset>
- <Before>
- <Byte>00</Byte>
- <Byte>03</Byte>
- <Byte>D8</Byte>
- <Byte>78</Byte>
- <Byte>06</Byte>
- </Before>
- <Actual>
- <Byte>89</Byte>
- <Byte>9E</Byte>
- <Byte>84</Byte>
- <Byte>00</Byte>
- <Byte>00</Byte>
- <Byte>00</Byte>
- </Actual>
- <After>
- <Byte>33</Byte>
- <Byte>DB</Byte>
- <Byte>EB</Byte>
- <Byte>12</Byte>
- <Byte>8B</Byte>
- </After>
- </CodeEntry>
- <CodeEntry>
- <Description>arrow + 3 Code :mov [ecx+00000084],eax</Description>
- <Address>008B9C03</Address>
- <ModuleName>Reckoning.exe</ModuleName>
- <ModuleNameOffset>4B9C03</ModuleNameOffset>
- <Before>
- <Byte>0A</Byte>
- <Byte>8B</Byte>
- <Byte>4C</Byte>
- <Byte>24</Byte>
- <Byte>2C</Byte>
- </Before>
- <Actual>
- <Byte>89</Byte>
- <Byte>81</Byte>
- <Byte>84</Byte>
- <Byte>00</Byte>
- <Byte>00</Byte>
- <Byte>00</Byte>
- </Actual>
- <After>
- <Byte>83</Byte>
- <Byte>7D</Byte>
- <Byte>0C</Byte>
- <Byte>00</Byte>
- <Byte>74</Byte>
- </After>
- </CodeEntry>
- <CodeEntry>
- <Description>arrow access Code :mov eax,[eax+00000084]</Description>
- <Address>0088AFE5</Address>
- <ModuleName>Reckoning.exe</ModuleName>
- <ModuleNameOffset>48AFE5</ModuleNameOffset>
- <Before>
- <Byte>40</Byte>
- <Byte>20</Byte>
- <Byte>01</Byte>
- <Byte>74</Byte>
- <Byte>0A</Byte>
- </Before>
- <Actual>
- <Byte>8B</Byte>
- <Byte>80</Byte>
- <Byte>84</Byte>
- <Byte>00</Byte>
- <Byte>00</Byte>
- <Byte>00</Byte>
- </Actual>
- <After>
- <Byte>01</Byte>
- <Byte>44</Byte>
- <Byte>24</Byte>
- <Byte>18</Byte>
- <Byte>83</Byte>
- </After>
- </CodeEntry>
- <CodeEntry>
- <Description>repair - Code :movss [esi+00000088],xmm0</Description>
- <Address>008BC1CF</Address>
- <ModuleName>Reckoning.exe</ModuleName>
- <ModuleNameOffset>4BC1CF</ModuleNameOffset>
- <Before>
- <Byte>28</Byte>
- <Byte>C2</Byte>
- <Byte>0F</Byte>
- <Byte>2F</Byte>
- <Byte>D0</Byte>
- </Before>
- <Actual>
- <Byte>F3</Byte>
- <Byte>0F</Byte>
- <Byte>11</Byte>
- <Byte>86</Byte>
- <Byte>88</Byte>
- <Byte>00</Byte>
- <Byte>00</Byte>
- <Byte>00</Byte>
- </Actual>
- <After>
- <Byte>0F</Byte>
- <Byte>82</Byte>
- <Byte>3B</Byte>
- <Byte>01</Byte>
- <Byte>00</Byte>
- </After>
- </CodeEntry>
- <CodeEntry>
- <Description>mp - Code :mov [ebp+00000084],ecx</Description>
- <Address>0079A6A1</Address>
- <ModuleName>Reckoning.exe</ModuleName>
- <ModuleNameOffset>39A6A1</ModuleNameOffset>
- <Before>
- <Byte>CA</Byte>
- <Byte>76</Byte>
- <Byte>0A</Byte>
- <Byte>03</Byte>
- <Byte>C8</Byte>
- </Before>
- <Actual>
- <Byte>89</Byte>
- <Byte>8D</Byte>
- <Byte>84</Byte>
- <Byte>00</Byte>
- <Byte>00</Byte>
- <Byte>00</Byte>
- </Actual>
- <After>
- <Byte>EB</Byte>
- <Byte>0A</Byte>
- <Byte>C7</Byte>
- <Byte>85</Byte>
- <Byte>84</Byte>
- </After>
- </CodeEntry>
- <CodeEntry>
- <Description>mp + Code :add [ebp+00000084],eax</Description>
- <Address>0079A602</Address>
- <ModuleName>Reckoning.exe</ModuleName>
- <ModuleNameOffset>39A602</ModuleNameOffset>
- <Before>
- <Byte>8C</Byte>
- <Byte>8F</Byte>
- <Byte>00</Byte>
- <Byte>00</Byte>
- <Byte>00</Byte>
- </Before>
- <Actual>
- <Byte>01</Byte>
- <Byte>85</Byte>
- <Byte>84</Byte>
- <Byte>00</Byte>
- <Byte>00</Byte>
- <Byte>00</Byte>
- </Actual>
- <After>
- <Byte>8B</Byte>
- <Byte>B5</Byte>
- <Byte>84</Byte>
- <Byte>00</Byte>
- <Byte>00</Byte>
- </After>
- </CodeEntry>
- <CodeEntry>
- <Description>hp +- 2 Code :mov [edi+48],ecx</Description>
- <Address>007A0FD1</Address>
- <ModuleName>Reckoning.exe</ModuleName>
- <ModuleNameOffset>3A0FD1</ModuleNameOffset>
- <Before>
- <Byte>03</Byte>
- <Byte>CE</Byte>
- <Byte>83</Byte>
- <Byte>F8</Byte>
- <Byte>01</Byte>
- </Before>
- <Actual>
- <Byte>89</Byte>
- <Byte>4F</Byte>
- <Byte>48</Byte>
- </Actual>
- <After>
- <Byte>8D</Byte>
- <Byte>53</Byte>
- <Byte>01</Byte>
- <Byte>7C</Byte>
- <Byte>02</Byte>
- </After>
- </CodeEntry>
- <CodeEntry>
- <Description>hp +- 3 Code :mov [edi+48],ebx</Description>
- <Address>007A1060</Address>
- <ModuleName>Reckoning.exe</ModuleName>
- <ModuleNameOffset>3A1060</ModuleNameOffset>
- <Before>
- <Byte>F7</Byte>
- <Byte>10</Byte>
- <Byte>01</Byte>
- <Byte>EB</Byte>
- <Byte>03</Byte>
- </Before>
- <Actual>
- <Byte>89</Byte>
- <Byte>5F</Byte>
- <Byte>48</Byte>
- </Actual>
- <After>
- <Byte>B1</Byte>
- <Byte>40</Byte>
- <Byte>84</Byte>
- <Byte>8F</Byte>
- <Byte>DC</Byte>
- </After>
- </CodeEntry>
- <CodeEntry>
- <Description>fate + 1 Code :mov [edx+00000204],eax</Description>
- <Address>0082D30E</Address>
- <ModuleName>Reckoning.exe</ModuleName>
- <ModuleNameOffset>42D30E</ModuleNameOffset>
- <Before>
- <Byte>0C</Byte>
- <Byte>3B</Byte>
- <Byte>C1</Byte>
- <Byte>73</Byte>
- <Byte>0C</Byte>
- </Before>
- <Actual>
- <Byte>89</Byte>
- <Byte>82</Byte>
- <Byte>04</Byte>
- <Byte>02</Byte>
- <Byte>00</Byte>
- <Byte>00</Byte>
- </Actual>
- <After>
- <Byte>83</Byte>
- <Byte>C4</Byte>
- <Byte>08</Byte>
- <Byte>C2</Byte>
- <Byte>04</Byte>
- </After>
- </CodeEntry>
- <CodeEntry>
- <Description>fate + 2 Code :mov [edx+00000204],ecx</Description>
- <Address>0082D31A</Address>
- <ModuleName>Reckoning.exe</ModuleName>
- <ModuleNameOffset>42D31A</ModuleNameOffset>
- <Before>
- <Byte>C4</Byte>
- <Byte>08</Byte>
- <Byte>C2</Byte>
- <Byte>04</Byte>
- <Byte>00</Byte>
- </Before>
- <Actual>
- <Byte>89</Byte>
- <Byte>8A</Byte>
- <Byte>04</Byte>
- <Byte>02</Byte>
- <Byte>00</Byte>
- <Byte>00</Byte>
- </Actual>
- <After>
- <Byte>83</Byte>
- <Byte>C4</Byte>
- <Byte>08</Byte>
- <Byte>C2</Byte>
- <Byte>04</Byte>
- </After>
- </CodeEntry>
- <CodeEntry>
- <Description>fate - Code :mov [eax+00000204],esi</Description>
- <Address>00AF7D00</Address>
- <ModuleName>Reckoning.exe</ModuleName>
- <ModuleNameOffset>6F7D00</ModuleNameOffset>
- <Before>
- <Byte>F1</Byte>
- <Byte>72</Byte>
- <Byte>02</Byte>
- <Byte>8B</Byte>
- <Byte>F1</Byte>
- </Before>
- <Actual>
- <Byte>89</Byte>
- <Byte>B0</Byte>
- <Byte>04</Byte>
- <Byte>02</Byte>
- <Byte>00</Byte>
- <Byte>00</Byte>
- </Actual>
- <After>
- <Byte>5F</Byte>
- <Byte>33</Byte>
- <Byte>C0</Byte>
- <Byte>5E</Byte>
- <Byte>C3</Byte>
- </After>
- </CodeEntry>
- <CodeEntry>
- <Description>skill point - Code :mov [eax+18],ecx</Description>
- <Address>0089CFBA</Address>
- <ModuleName>Reckoning.exe</ModuleName>
- <ModuleNameOffset>49CFBA</ModuleNameOffset>
- <Before>
- <Byte>00</Byte>
- <Byte>8B</Byte>
- <Byte>4F</Byte>
- <Byte>18</Byte>
- <Byte>5E</Byte>
- </Before>
- <Actual>
- <Byte>89</Byte>
- <Byte>48</Byte>
- <Byte>18</Byte>
- </Actual>
- <After>
- <Byte>8B</Byte>
- <Byte>57</Byte>
- <Byte>1C</Byte>
- <Byte>5D</Byte>
- <Byte>89</Byte>
- </After>
- </CodeEntry>
- <CodeEntry>
- <Description>$ +- 1 Code :add [esi+00000364],eax</Description>
- <Address>00A3C490</Address>
- <ModuleName>Reckoning.exe</ModuleName>
- <ModuleNameOffset>63C490</ModuleNameOffset>
- <Before>
- <Byte>00</Byte>
- <Byte>5B</Byte>
- <Byte>C3</Byte>
- <Byte>CC</Byte>
- <Byte>CC</Byte>
- </Before>
- <Actual>
- <Byte>01</Byte>
- <Byte>86</Byte>
- <Byte>64</Byte>
- <Byte>03</Byte>
- <Byte>00</Byte>
- <Byte>00</Byte>
- </Actual>
- <After>
- <Byte>8B</Byte>
- <Byte>86</Byte>
- <Byte>64</Byte>
- <Byte>03</Byte>
- <Byte>00</Byte>
- </After>
- </CodeEntry>
- <CodeEntry>
- <Description>$ +- 2 Code :mov [esi+00000364],eax</Description>
- <Address>00A3C4AC</Address>
- <ModuleName>Reckoning.exe</ModuleName>
- <ModuleNameOffset>63C4AC</ModuleNameOffset>
- <Before>
- <Byte>9C</Byte>
- <Byte>C1</Byte>
- <Byte>49</Byte>
- <Byte>23</Byte>
- <Byte>C1</Byte>
- </Before>
- <Actual>
- <Byte>89</Byte>
- <Byte>86</Byte>
- <Byte>64</Byte>
- <Byte>03</Byte>
- <Byte>00</Byte>
- <Byte>00</Byte>
- </Actual>
- <After>
- <Byte>8B</Byte>
- <Byte>8A</Byte>
- <Byte>DC</Byte>
- <Byte>32</Byte>
- <Byte>00</Byte>
- </After>
- </CodeEntry>
- <CodeEntry>
- <Description>$ +- 3 Code :mov [esi+00000364],eax</Description>
- <Address>00A3C4C4</Address>
- <ModuleName>Reckoning.exe</ModuleName>
- <ModuleNameOffset>63C4C4</ModuleNameOffset>
- <Before>
- <Byte>0D</Byte>
- <Byte>8C</Byte>
- <Byte>5A</Byte>
- <Byte>BF</Byte>
- <Byte>00</Byte>
- </Before>
- <Actual>
- <Byte>89</Byte>
- <Byte>86</Byte>
- <Byte>64</Byte>
- <Byte>03</Byte>
- <Byte>00</Byte>
- <Byte>00</Byte>
- </Actual>
- <After>
- <Byte>8B</Byte>
- <Byte>49</Byte>
- <Byte>24</Byte>
- <Byte>8B</Byte>
- <Byte>11</Byte>
- </After>
- </CodeEntry>
- <CodeEntry>
- <Description>$ access Code :mov eax,[eax+00000364]</Description>
- <Address>00B020EC</Address>
- <ModuleName>Reckoning.exe</ModuleName>
- <ModuleNameOffset>7020EC</ModuleNameOffset>
- <Before>
- <Byte>FF</Byte>
- <Byte>85</Byte>
- <Byte>C0</Byte>
- <Byte>74</Byte>
- <Byte>08</Byte>
- </Before>
- <Actual>
- <Byte>8B</Byte>
- <Byte>80</Byte>
- <Byte>64</Byte>
- <Byte>03</Byte>
- <Byte>00</Byte>
- <Byte>00</Byte>
- </Actual>
- <After>
- <Byte>EB</Byte>
- <Byte>02</Byte>
- <Byte>33</Byte>
- <Byte>C0</Byte>
- <Byte>33</Byte>
- </After>
- </CodeEntry>
- <CodeEntry>
- <Description>cool down start Code :mov [ecx+esi+04],edx</Description>
- <Address>00892ED0</Address>
- <ModuleName>Reckoning.exe</ModuleName>
- <ModuleNameOffset>492ED0</ModuleNameOffset>
- <Before>
- <Byte>04</Byte>
- <Byte>8B</Byte>
- <Byte>54</Byte>
- <Byte>24</Byte>
- <Byte>1C</Byte>
- </Before>
- <Actual>
- <Byte>89</Byte>
- <Byte>54</Byte>
- <Byte>31</Byte>
- <Byte>04</Byte>
- </Actual>
- <After>
- <Byte>8B</Byte>
- <Byte>43</Byte>
- <Byte>04</Byte>
- <Byte>80</Byte>
- <Byte>4C</Byte>
- </After>
- </CodeEntry>
- <CodeEntry>
- <Description>cooling down Code :sub [esi+04],eax</Description>
- <Address>00886D6B</Address>
- <ModuleName>Reckoning.exe</ModuleName>
- <ModuleNameOffset>486D6B</ModuleNameOffset>
- <Before>
- <Byte>00</Byte>
- <Byte>00</Byte>
- <Byte>00</Byte>
- <Byte>EB</Byte>
- <Byte>07</Byte>
- </Before>
- <Actual>
- <Byte>29</Byte>
- <Byte>46</Byte>
- <Byte>04</Byte>
- </Actual>
- <After>
- <Byte>FF</Byte>
- <Byte>44</Byte>
- <Byte>24</Byte>
- <Byte>0C</Byte>
- <Byte>45</Byte>
- </After>
- </CodeEntry>
- <CodeEntry>
- <Description>cool down set zero Code :mov [esi+04],00000000</Description>
- <Address>00886D49</Address>
- <ModuleName>Reckoning.exe</ModuleName>
- <ModuleNameOffset>486D49</ModuleNameOffset>
- <Before>
- <Byte>02</Byte>
- <Byte>C6</Byte>
- <Byte>46</Byte>
- <Byte>08</Byte>
- <Byte>00</Byte>
- </Before>
- <Actual>
- <Byte>C7</Byte>
- <Byte>46</Byte>
- <Byte>04</Byte>
- <Byte>00</Byte>
- <Byte>00</Byte>
- <Byte>00</Byte>
- <Byte>00</Byte>
- </Actual>
- <After>
- <Byte>7C</Byte>
- <Byte>11</Byte>
- <Byte>8B</Byte>
- <Byte>0D</Byte>
- <Byte>54</Byte>
- </After>
- </CodeEntry>
- <CodeEntry>
- <Description>Heal HPCode :mov [edi+48],ecx</Description>
- <Address>007A14F1</Address>
- <ModuleName>Reckoning.exe</ModuleName>
- <ModuleNameOffset>3A14F1</ModuleNameOffset>
- <Before>
- <Byte>94</Byte>
- <Byte>07</Byte>
- <Byte>83</Byte>
- <Byte>F8</Byte>
- <Byte>01</Byte>
- </Before>
- <Actual>
- <Byte>89</Byte>
- <Byte>4F</Byte>
- <Byte>48</Byte>
- </Actual>
- <After>
- <Byte>8D</Byte>
- <Byte>53</Byte>
- <Byte>01</Byte>
- <Byte>7C</Byte>
- <Byte>02</Byte>
- </After>
- </CodeEntry>
- <CodeEntry>
- <Description>Raise EXP Code :mov [eax+18],ecx</Description>
- <Address>0089D7AA</Address>
- <ModuleName>Reckoning.exe</ModuleName>
- <ModuleNameOffset>49D7AA</ModuleNameOffset>
- <Before>
- <Byte>00</Byte>
- <Byte>8B</Byte>
- <Byte>4F</Byte>
- <Byte>18</Byte>
- <Byte>5E</Byte>
- </Before>
- <Actual>
- <Byte>89</Byte>
- <Byte>48</Byte>
- <Byte>18</Byte>
- </Actual>
- <After>
- <Byte>8B</Byte>
- <Byte>57</Byte>
- <Byte>1C</Byte>
- <Byte>5D</Byte>
- <Byte>89</Byte>
- </After>
- </CodeEntry>
- <CodeEntry>
- <Description>Gain Level Code :mov eax,[eax+000001F4]</Description>
- <Address>00B0454C</Address>
- <ModuleName>Reckoning.exe</ModuleName>
- <ModuleNameOffset>70454C</ModuleNameOffset>
- <Before>
- <Byte>FF</Byte>
- <Byte>85</Byte>
- <Byte>C0</Byte>
- <Byte>74</Byte>
- <Byte>08</Byte>
- </Before>
- <Actual>
- <Byte>8B</Byte>
- <Byte>80</Byte>
- <Byte>F4</Byte>
- <Byte>01</Byte>
- <Byte>00</Byte>
- <Byte>00</Byte>
- </Actual>
- <After>
- <Byte>EB</Byte>
- <Byte>02</Byte>
- <Byte>33</Byte>
- <Byte>C0</Byte>
- <Byte>33</Byte>
- </After>
- </CodeEntry>
- <CodeEntry>
- <Description>Real get level 1 Code :mov [edi+000001F4],eax</Description>
- <Address>00847E0E</Address>
- <ModuleName>Reckoning.exe</ModuleName>
- <ModuleNameOffset>447E0E</ModuleNameOffset>
- <Before>
- <Byte>C6</Byte>
- <Byte>50</Byte>
- <Byte>12</Byte>
- <Byte>00</Byte>
- <Byte>00</Byte>
- </Before>
- <Actual>
- <Byte>89</Byte>
- <Byte>87</Byte>
- <Byte>F4</Byte>
- <Byte>01</Byte>
- <Byte>00</Byte>
- <Byte>00</Byte>
- </Actual>
- <After>
- <Byte>E8</Byte>
- <Byte>87</Byte>
- <Byte>01</Byte>
- <Byte>1D</Byte>
- <Byte>00</Byte>
- </After>
- </CodeEntry>
- <CodeEntry>
- <Description>Real Get Level 2 Code :mov eax,[edi+000001F4]</Description>
- <Address>00847E2C</Address>
- <ModuleName>Reckoning.exe</ModuleName>
- <ModuleNameOffset>447E2C</ModuleNameOffset>
- <Before>
- <Byte>BF</Byte>
- <Byte>00</Byte>
- <Byte>8B</Byte>
- <Byte>49</Byte>
- <Byte>24</Byte>
- </Before>
- <Actual>
- <Byte>8B</Byte>
- <Byte>87</Byte>
- <Byte>F4</Byte>
- <Byte>01</Byte>
- <Byte>00</Byte>
- <Byte>00</Byte>
- </Actual>
- <After>
- <Byte>8B</Byte>
- <Byte>11</Byte>
- <Byte>8B</Byte>
- <Byte>52</Byte>
- <Byte>10</Byte>
- </After>
- </CodeEntry>
- <CodeEntry>
- <Description>DepleteFatebarCode :mov [eax+00000204],esi</Description>
- <Address>09DA0000</Address>
- <ModuleName/>
- <ModuleNameOffset>0</ModuleNameOffset>
- <Before/>
- <Actual>
- <Byte>89</Byte>
- <Byte>B0</Byte>
- <Byte>04</Byte>
- <Byte>02</Byte>
- <Byte>00</Byte>
- <Byte>00</Byte>
- </Actual>
- <After>
- <Byte>E9</Byte>
- <Byte>DB</Byte>
- <Byte>83</Byte>
- <Byte>D5</Byte>
- <Byte>F6</Byte>
- </After>
- </CodeEntry>
- <CodeEntry>
- <Description>EXPCode :mov [eax+18],ecx</Description>
- <Address>0089D7AA</Address>
- <ModuleName>Reckoning.exe</ModuleName>
- <ModuleNameOffset>49D7AA</ModuleNameOffset>
- <Before>
- <Byte>00</Byte>
- <Byte>8B</Byte>
- <Byte>4F</Byte>
- <Byte>18</Byte>
- <Byte>5E</Byte>
- </Before>
- <Actual>
- <Byte>89</Byte>
- <Byte>48</Byte>
- <Byte>18</Byte>
- </Actual>
- <After>
- <Byte>8B</Byte>
- <Byte>57</Byte>
- <Byte>1C</Byte>
- <Byte>5D</Byte>
- <Byte>89</Byte>
- </After>
- </CodeEntry>
- <CodeEntry>
- <Description>MaxHPIncreasonlvlupCode :mov [edi+4C],eax</Description>
- <Address>007A0C5B</Address>
- <ModuleName>Reckoning.exe</ModuleName>
- <ModuleNameOffset>3A0C5B</ModuleNameOffset>
- <Before>
- <Byte>CE</Byte>
- <Byte>FF</Byte>
- <Byte>83</Byte>
- <Byte>F8</Byte>
- <Byte>01</Byte>
- </Before>
- <Actual>
- <Byte>89</Byte>
- <Byte>47</Byte>
- <Byte>4C</Byte>
- </Actual>
- <After>
- <Byte>B9</Byte>
- <Byte>01</Byte>
- <Byte>00</Byte>
- <Byte>00</Byte>
- <Byte>00</Byte>
- </After>
- </CodeEntry>
- </CheatCodes>
- <UserdefinedSymbols>
- <SymbolEntry>
- <Name>EnemyNummberPointer</Name>
- <Address>18430000</Address>
- </SymbolEntry>
- <SymbolEntry>
- <Name>pSkillPt</Name>
- <Address>01870000</Address>
- </SymbolEntry>
- <SymbolEntry>
- <Name>pHeroHealth</Name>
- <Address>003E0000</Address>
- </SymbolEntry>
- <SymbolEntry>
- <Name>pMoney</Name>
- <Address>00F30000</Address>
- </SymbolEntry>
- <SymbolEntry>
- <Name>cooldownJMP</Name>
- <Address>00888EDE</Address>
- </SymbolEntry>
- <SymbolEntry>
- <Name>repairJMP</Name>
- <Address>008BE36F</Address>
- </SymbolEntry>
- <SymbolEntry>
- <Name>fateBJMP</Name>
- <Address>0082DA0C</Address>
- </SymbolEntry>
- <SymbolEntry>
- <Name>pLvlUpPt</Name>
- <Address>19820000</Address>
- </SymbolEntry>
- <SymbolEntry>
- <Name>pExp</Name>
- <Address>19830000</Address>
- </SymbolEntry>
- <SymbolEntry>
- <Name>AttackWeightPointer</Name>
- <Address>00F60000</Address>
- </SymbolEntry>
- <SymbolEntry>
- <Name>EXPPointer</Name>
- <Address>003D0000</Address>
- </SymbolEntry>
- <SymbolEntry>
- <Name>hHSubCJMP</Name>
- <Address>007A1571</Address>
- </SymbolEntry>
- <SymbolEntry>
- <Name>Counter</Name>
- <Address>00EE0000</Address>
- </SymbolEntry>
- <SymbolEntry>
- <Name>ManaCounter</Name>
- <Address>00F00000</Address>
- </SymbolEntry>
- <SymbolEntry>
- <Name>TotalEXP</Name>
- <Address>00230000</Address>
- </SymbolEntry>
- <SymbolEntry>
- <Name>pTotalEXP</Name>
- <Address>0A920000</Address>
- </SymbolEntry>
- <SymbolEntry>
- <Name>hHSubFJMP</Name>
- <Address>0086441A</Address>
- </SymbolEntry>
- <SymbolEntry>
- <Name>hHSubGJMP</Name>
- <Address>0089D7A9</Address>
- </SymbolEntry>
- <SymbolEntry>
- <Name>hHReadJMP</Name>
- <Address>007A1E05</Address>
- </SymbolEntry>
- <SymbolEntry>
- <Name>hHSubAJMP</Name>
- <Address>007A1575</Address>
- </SymbolEntry>
- <SymbolEntry>
- <Name>hHSubEJMP</Name>
- <Address>007A0C58</Address>
- </SymbolEntry>
- <SymbolEntry>
- <Name>hHSubBJMP</Name>
- <Address>007A14EC</Address>
- </SymbolEntry>
- <SymbolEntry>
- <Name>MPSubJMP</Name>
- <Address>0079ABC1</Address>
- </SymbolEntry>
- <SymbolEntry>
- <Name>ManaRegSubJMP</Name>
- <Address>0079AB22</Address>
- </SymbolEntry>
- <SymbolEntry>
- <Name>FateSubJMP</Name>
- <Address>0082DA00</Address>
- </SymbolEntry>
- <SymbolEntry>
- <Name>moneyReadJMP</Name>
- <Address>00B027CC</Address>
- </SymbolEntry>
- <SymbolEntry>
- <Name>moneySubJMP</Name>
- <Address>00A3BE30</Address>
- </SymbolEntry>
- <SymbolEntry>
- <Name>hHSubDJMP</Name>
- <Address>0088A42E</Address>
- </SymbolEntry>
- </UserdefinedSymbols>
- </CheatTable>
Add Comment
Please, Sign In to add comment