搜索
 找回密码
 加入

[1.298] Change required NP per grade

Twisted 2011-10-16 17:52:56 1150
Hello everyone,
Many of you curious for how to change needed loyalty for per grade degree via ebenezer. Maybe most of you didn't notice but ebenezer automatically updates clan grades time to time.
Let's begin ;)

  1. 0042AC9F   > 8B4424 04    MOV EAX,DWORD PTR SS:[ESP+4]
  2. 0042ACA3   . 6A 24                PUSH 24 // MAX CLAN MEMBER
  3. 0042ACA5   . 99                  CDQ
  4. 0042ACA6   . 59                  POP ECX
  5. 0042ACA7   . F7F9                  IDIV ECX
  6. 0042ACA9   . 85C0                  TEST EAX,EAX
  7. 0042ACAB   . 7C 0D                JL SHORT ebenezer.0042ACBA // LOWER THAN 72000 ?
  8. 0042ACAD   . 3D D0070000        CMP EAX,7D0 // COMPARE WITH 72000
  9. 0042ACB2   . 7D 0D                JGE SHORT ebenezer.0042ACC1 // JUST GREAT OR EQUAL 144000?
  10. 0042ACB4   > 6A 05                PUSH 5 // GRADE 5
  11. 0042ACB6   > 58                  POP EAX
  12. 0042ACB7   . C2 0400            RETN 4 // RETURN GRADE VALUE :)
  13. 0042ACBA   > 3D D0070000        CMP EAX,7D0 // COMPARE WITH 72000
  14. 0042ACBF   . 7C 0B                JL SHORT ebenezer.0042ACCC // LOWER THAN 144000?
  15. 0042ACC1   > 3D A00F0000        CMP EAX,0FA0 // COMPARE WITH 144000
  16. 0042ACC6   . 7D 0B                JGE SHORT ebenezer.0042ACD3 // JUST GREAT OR EQUAL 360000?
  17. 0042ACC8   . 6A 04                PUSH 4 // GRADE 4
  18. 0042ACCA   .^EB EA                JMP SHORT ebenezer.0042ACB6 // RETURN VALUE AS GRADE 4 THAN
  19. 0042ACCC   > 3D A00F0000        CMP EAX,0FA0 // COMPARE WITH 144000
  20. 0042ACD1   . 7C 0B                JL SHORT ebenezer.0042ACDE // LOWER THAN 360000?
  21. 0042ACD3   > 3D 10270000        CMP EAX,2710 // COMPARE WITH 360000
  22. 0042ACD8   . 7D 0B                JGE SHORT ebenezer.0042ACE5 // JUST GREAT OR EQUAL 720000?
  23. 0042ACDA   . 6A 03                PUSH 3 // GRADE 3
  24. 0042ACDC   .^EB D8                JMP SHORT ebenezer.0042ACB6 // RETURN VALUE AS GRADE 3 THAN
  25. 0042ACDE   > 3D 10270000        CMP EAX,2710 // COMPARE WITH 360000
  26. 0042ACE3   . 7C 0B                JL SHORT ebenezer.0042ACF0 // LOWER THAN 720000?
  27. 0042ACE5   > 3D 204E0000        CMP EAX,4E20 // COMPARE WITH 720000
  28. 0042ACEA   . 7D 0B                JGE SHORT ebenezer.0042ACF7 // JUST GREAT OR EQUAL 720000?
  29. 0042ACEC   . 6A 02                PUSH 2 // GRADE 2
  30. 0042ACEE   .^EB C6                JMP SHORT ebenezer.0042ACB6 // RETURN VALUE AS GRADE 2 THAN
  31. 0042ACF0   > 3D 204E0000        CMP EAX,4E20 // COMPARE WITH 720000
  32. 0042ACF5   .^7C BD                JL SHORT ebenezer.0042ACB4 // ELSE THIS IS GRADE 5
  33. 0042ACF7   > 6A 01                PUSH 1 // GRADE 1
  34. 0042ACF9   .^EB BB                JMP SHORT ebenezer.0042ACB6 // RETURN VALUE AS GRADE 1 THAN
  35. 0042ACFB         CC                      INT3
复制代码
Here is the function of grade level calculator or definer in ebenezer. Maybe this codes are confusing for you :) let's focus.
As we know after 1299 patch clans can handle max 36 members and ebenezer divides total loyalty of clan members to that value.
So clans aritmethical loyalty becomes: {user1+user2.....+userN/36}
If clan members total loyalty is 528963 clans loyalty becomes= 14693,416666666666666666666666667 =~ 14693 is the clans loyalty and 14693 as hex value is 3A73 so this is GRADE 2 clan.

Anyway if you wanna change G1 range to greater than 14400000 you must change
  1. <-- 0042ACE5 > 3D 204E0000 CMP EAX,4E20 // COMPARE WITH 720000
  2. --> 0042ACE5 > 3D 409C0000 CMP EAX,9C40 // COMPARE WITH 1440000
  3. 0042ACEA . 7D 0B JGE SHORT ebenezer.0042ACF7 // JUST GREAT OR EQUAL 720000?
  4. 0042ACEC . 6A 02 PUSH 2 // GRADE 2
  5. 0042ACEE .^EB C6 JMP SHORT ebenezer.0042ACB6 // RETURN VALUE AS GRADE 2 THAN
  6. <-- 0042ACF0 > 3D 204E0000 CMP EAX,4E20 // COMPARE WITH 720000
  7. --> 0042ACF0 > 3D 409C0000 CMP EAX,9C40 // COMPARE WITH 1440000
复制代码
So as you can see its so easy. All you need is divide values to 36 and convert it to HEXADEMICAL base. You can easily do it with Windows's calculator's scientific mode and need to use some DBG program with editing support :P i can suggest you to use ollydbg, just load ebenezer with ollydbg and press CTRL and G buttons at same time and type down the offset which you wanna go and change values and than save it.
That's all folks :P
I wish it is understandable if not excuse me :)

0 回复

高级模式
游客