Advertisement
JKornev

MonsLib.h

Aug 20th, 2012
1,397
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.47 KB | None | 0 0
  1. /*
  2. Code: Add new monsters to MuOnline client
  3. Credits: DoS.Ninja
  4. Web: ninja-researcher.blogspot.com
  5. */
  6. #ifndef MONSTA_H
  7. #define MONSTA_H
  8.  
  9. // Offsets and structures for Main 1.03.25(1.03y) JPN
  10. #define OFFST_MODELRES_SIZEOF 0x005F365C
  11. #define OFFST_MODELRES_COUNT 0x005F3657
  12. #define OFFST_MODELRES_MOBS_ID 0x005FBB47
  13.  
  14. #define HPROC_OPENMONSTERMODEL_BULL 0x00518DAD
  15. #define HARGS_BULL_PUSH HPROC_OPENMONSTERMODEL_BULL - 2
  16. #define HPROC_CONSTMONSTERMODEL_BULL 0x00518DC8
  17. #define HPROC_LOADBMDMODEL 0x005FBB93
  18. #define HPROC_LOADPLAYERBMD 0x005F36E2
  19. #define HPROC_SETMOBNAMESTYLE 0x0051B908
  20.  
  21. #define HOpenMonsterModel ((void (__cdecl *)(DWORD dwMobNumber)) 0x005FBB28)
  22. #define HConstructMonsterModel ((DWORD (__cdecl *)(DWORD Arg1, DWORD dwResInx, DWORD dwResOffst, DWORD Arg4, DWORD Arg5)) 0x005148C8)
  23. #define HLoadBMDModel ((DWORD (__cdecl *)(DWORD Arg1, LPSTR Arg2, LPSTR Arg3, DWORD Arg4)) 0x005F34C3)
  24. #define HSetMonsterNameStyle ((DWORD (__cdecl *)(DWORD dwMemAddr, DWORD dwMobID, DWORD Arg3, DWORD Arg4)) 0x00516489)
  25.  
  26. /*
  27. 005F36AE  |. 8B15 10A0B306  MOV EDX,DWORD PTR DS:[6B3A010]
  28. 005F36B4  |. 03D0           ADD EDX,EAX
  29. 005F36B6  |. 8915 90F09D05  MOV DWORD PTR DS:[59DF090],EDX */
  30. static DWORD *lpModelResBase = (DWORD *)0x6B3A010;
  31. static DWORD *lpModelResArray = (DWORD *)0x59DF090;
  32.  
  33. struct Unit_Struct{
  34.     BYTE Unknown1[32];
  35.     BYTE bPKStatus;
  36.     BYTE Unknown2[23];
  37.     char cName[32];
  38.     BYTE bMoveOut;
  39.     BYTE Unknown5[303];
  40.     signed short sItem1ResID;
  41.     BYTE Unknown7;
  42.     signed char bItem1IsExc;
  43.     BYTE Unknown8;
  44.     signed char bItem1JoinID;//6
  45.     BYTE Unknown9[26];//26
  46.     signed short sItem2ResID;
  47.     BYTE Unknown10;
  48.     signed char bItem2IsExc;
  49.     BYTE Unknown11;
  50.     signed char bItem2JoinID;//6
  51.     BYTE Unknown12[292];
  52.     BYTE bMobType;
  53.     BYTE Unknown13[73];
  54.     float fSize;
  55. };
  56.  
  57. /*// Offsets and structures for Main 1.05.50(1.05x+) KOR
  58. #define OFFST_MODELRES_SIZEOF 0x005C9AFF
  59. #define OFFST_MODELRES_COUNT 0x005C9B04
  60. #define OFFST_MODELRES_MOBS_ID 0x005D075D
  61.  
  62. #define HPROC_OPENMONSTERMODEL_BULL 0x004FCA33
  63. #define HARGS_BULL_PUSH HPROC_OPENMONSTERMODEL_BULL - 2
  64. #define HPROC_CONSTMONSTERMODEL_BULL 0x004FCA4E
  65. #define HPROC_LOADBMDMODEL 0x005D07A9
  66. #define HPROC_LOADPLAYERBMD 0x005C9B8A
  67. #define HPROC_SETMOBNAMESTYLE 0x004FECBC
  68.  
  69. #define HOpenMonsterModel ((void (__cdecl *)(DWORD dwMobNumber)) 0x005D0754)
  70. #define HConstructMonsterModel ((DWORD (__cdecl *)(DWORD Arg1, DWORD dwResInx, DWORD dwResOffst, DWORD Arg4, DWORD Arg5)) 0x004F88F6)
  71. #define HLoadBMDModel ((DWORD (__cdecl *)(DWORD Arg1, LPSTR Arg2, LPSTR Arg3, DWORD Arg4)) 0x005C9983)
  72. #define HSetMonsterNameStyle ((DWORD (__cdecl *)(DWORD dwMemAddr, DWORD dwMobID, DWORD Arg3, DWORD Arg4)) 0x004FA1DE)
  73.  
  74. //005C9B56  |.  8B15 9C29A506 MOV EDX,DWORD PTR DS:[6A5299C]
  75. //005C9B5C  |.  03D0          ADD EDX,EAX
  76. //005C9B5E  |.  8915 1C7A8F05 MOV DWORD PTR DS:[58F7A1C],EDX
  77. static DWORD *lpModelResBase = (DWORD *)0x06A5299C;
  78. static DWORD *lpModelResArray = (DWORD *)0x058F7A1C;
  79.  
  80. struct Unit_Struct{
  81.     BYTE Unknown4[31];
  82.     BYTE bPKStatus;
  83.     BYTE Unknown1[19];
  84.     BYTE bAnimationDie;
  85.     BYTE Unknown5[4];
  86.     char cName[25];
  87.     BYTE bMoveOut; 
  88.     BYTE Unknown3[3];
  89.     BYTE bClanTag;
  90.     BYTE Unknown6[5];
  91.     BYTE bColor;
  92.     BYTE Unknown2[292];
  93.     signed short sItem1ResID;
  94.     BYTE Unknown7;
  95.     signed char bItem1IsExc;
  96.     BYTE Unknown8;
  97.     signed char bItem1JoinID;
  98.     BYTE Unknown9[26];
  99.     signed short sItem2ResID;
  100.     BYTE Unknown10;
  101.     signed char bItem2IsExc;
  102.     BYTE Unknown11;
  103.     signed char bItem2JoinID;
  104.     BYTE Unknown12[236];
  105.     BYTE bMobType;
  106.     BYTE Unknown13[73];
  107.     float fSize;
  108. };
  109. */
  110.  
  111. struct MobParam_Struct{
  112.     DWORD dwMobID;
  113.     LPSTR lpName;
  114.     signed char bMobType;
  115.     signed char bPKStatus;
  116.     signed char bMoveOut;
  117.     signed short sItem1ResID;
  118.     signed char bItem1IsExcl;
  119.     signed char bItem1JoinID;
  120.     signed short sItem2ResID;
  121.     signed char bItem2IsExcl;
  122.     signed char bItem2JoinID;
  123.     float fSize;
  124. };
  125.  
  126. struct MonsterAdd_Struct{
  127.     DWORD dwMobID;
  128.     char *lpDir;
  129.     char *lpFile;
  130. };
  131.  
  132. #define NONE -1
  133. #define MONSTER_DIR "Data\\Monster\\"
  134.  
  135. void Init_Monsters();
  136. void __cdecl Hook_OpenMonsterModel(DWORD dwMobNumber);
  137. DWORD __cdecl Hook_ConstructMonsterModel(DWORD Arg1, DWORD dwResInx, DWORD dwResOffst, DWORD Arg4, DWORD Arg5);
  138. void __cdecl Hook_FixLoadBMDModel(DWORD dwResInx, LPSTR lpDir, LPSTR lpBaseName, DWORD Arg4);
  139. void __cdecl Hook_LoadPlayerBMD(DWORD dwResInx, LPSTR lpDir, LPSTR lpBaseName, DWORD Arg4);
  140. void __cdecl Hook_SetMonsterNameStyle(DWORD dwMemAddr, DWORD dwMobID, DWORD Arg3, DWORD Arg4);
  141. void ModifMonsParams(DWORD lpUnit, DWORD dwMobID);
  142.  
  143. #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement