Advertisement
Kiosani

Item.cpp de Season 4 CHS 1.03.08 XV Plugin

Jul 15th, 2021
46
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 45.92 KB | None | 0 0
  1. #include "StdAfx.h"
  2.  
  3. cItem gItem;
  4.  
  5. cItem::cItem()
  6. {
  7. // -> Constructor
  8. this->bIsBlackFenrir = FALSE;
  9. this->bIsBlueFenrir = FALSE;
  10. this->bIsGoldenFenrir = FALSE;
  11. this->bIsOrangeFenrir = FALSE;
  12. this->bIsRedFenrir = FALSE;
  13. }
  14.  
  15. void cItem::Init()
  16. {
  17. for(int i=0;i<MAX_CUSTOM_ITEMS;i++)
  18. {
  19. if(i != GET_OBJECT_INDEX(0,0)) // -> Static fix for Kriss
  20. {
  21. this->m_Item[i].Type =NULL;
  22. this->m_Item[i].Index =NULL;
  23. // ----
  24. ZeroMemory(this->m_Item[i].Name,sizeof(this->m_Item[i].Name));
  25. }
  26. }
  27. }
  28.  
  29. static BOOL bBundledBlessInvenPos_Switcher;
  30.  
  31. #pragma optimize("t",on)
  32. void MASM cItem::BundledBlessInventoryPos()
  33. {
  34. static DWORD dwBundledBlessInvenPos_Pointer;
  35. static DWORD dwBundledBlessInvenPos_Buffer;
  36. // ----
  37. bBundledBlessInvenPos_Switcher = FALSE;
  38. // ----
  39. _asm
  40. {
  41. MOV dwBundledBlessInvenPos_Pointer,ESI
  42. }
  43. // -----
  44. if(dwBundledBlessInvenPos_Pointer == GET_ITEM_INDEX(12,30))
  45. {
  46. bBundledBlessInvenPos_Switcher = TRUE;
  47. }
  48. else if(dwBundledBlessInvenPos_Pointer >= GET_ITEM_INDEX(12,150) && dwBundledBlessInvenPos_Pointer <= GET_ITEM_INDEX(12,156))
  49. {
  50. bBundledBlessInvenPos_Switcher = TRUE;
  51. }
  52. else if(dwBundledBlessInvenPos_Pointer >= GET_ITEM_INDEX(13,150) && dwBundledBlessInvenPos_Pointer <= GET_ITEM_INDEX(13,152)) // -> All Elemental Fragments
  53. {
  54. bBundledBlessInvenPos_Switcher = TRUE;
  55. }
  56. else if(dwBundledBlessInvenPos_Pointer == GET_ITEM_INDEX(14,172)) // -> Divine Stone
  57. {
  58. bBundledBlessInvenPos_Switcher = TRUE;
  59. }
  60. else if(dwBundledBlessInvenPos_Pointer == GET_ITEM_INDEX(14,173)) // -> Jewel of Dark Chaos
  61. {
  62. bBundledBlessInvenPos_Switcher = TRUE;
  63. }
  64. else if(dwBundledBlessInvenPos_Pointer == GET_ITEM_INDEX(0,36)) // -> Divine Archangel Blade (Small Fix)
  65. {
  66. bBundledBlessInvenPos_Switcher = TRUE;
  67. }
  68. else if(dwBundledBlessInvenPos_Pointer == GET_ITEM_INDEX(5,38)) // -> Summon Spirit Stick (Small Fix)
  69. {
  70. bBundledBlessInvenPos_Switcher = TRUE;
  71. }
  72. // ----
  73. if(bBundledBlessInvenPos_Switcher == TRUE)
  74. {
  75. _asm
  76. {
  77. MOV dwBundledBlessInvenPos_Buffer,oBundledBlessInvenPos_Allowed
  78. JMP dwBundledBlessInvenPos_Buffer
  79. }
  80. }
  81. else
  82. {
  83. _asm
  84. {
  85. MOV dwBundledBlessInvenPos_Buffer,oBundledBlessInvenPos_Return
  86. JMP dwBundledBlessInvenPos_Buffer
  87. }
  88. }
  89. }
  90. #pragma optimize("t",off)
  91.  
  92. static BOOL bBundledBlessInvenSize_Switcher;
  93.  
  94. #pragma optimize("t",on)
  95. void MASM cItem::BundledBlessInventorySize()
  96. {
  97. static DWORD dwBundledBlessInvenSize_Pointer;
  98. static DWORD dwBundledBlessInvenSize_Buffer;
  99. // ----
  100. bBundledBlessInvenSize_Switcher = FALSE;
  101. // ----
  102. _asm
  103. {
  104. MOV dwBundledBlessInvenSize_Pointer,ESI
  105. }
  106. // ----
  107. if(dwBundledBlessInvenSize_Pointer == GET_OBJECT_INDEX(12,30))
  108. {
  109. bBundledBlessInvenSize_Switcher = TRUE;
  110. }
  111. else if(dwBundledBlessInvenSize_Pointer >= GET_OBJECT_INDEX(12,150) && dwBundledBlessInvenSize_Pointer <= GET_OBJECT_INDEX(12,156))
  112. {
  113. bBundledBlessInvenSize_Switcher = TRUE;
  114. }
  115. else if(dwBundledBlessInvenSize_Pointer >= GET_OBJECT_INDEX(13,150) && dwBundledBlessInvenSize_Pointer <= GET_OBJECT_INDEX(13,152)) // -> All Elemental Fragments
  116. {
  117. bBundledBlessInvenSize_Switcher = TRUE;
  118. }
  119. else if(dwBundledBlessInvenSize_Pointer == GET_OBJECT_INDEX(14,172)) // -> Divine Stone
  120. {
  121. bBundledBlessInvenSize_Switcher = TRUE;
  122. }
  123. else if(dwBundledBlessInvenSize_Pointer == GET_OBJECT_INDEX(14,173)) // -> Jewel of Dark Chaos
  124. {
  125. bBundledBlessInvenSize_Switcher = TRUE;
  126. }
  127. else if(dwBundledBlessInvenSize_Pointer == GET_OBJECT_INDEX(0,36)) // -> Divine Archangel Blade (Small Fix)
  128. {
  129. bBundledBlessInvenSize_Switcher = TRUE;
  130. }
  131. else if(dwBundledBlessInvenSize_Pointer == GET_OBJECT_INDEX(5,38)) // -> Summon Spirit Stick (Small Fix)
  132. {
  133. bBundledBlessInvenSize_Switcher = TRUE;
  134. }
  135. // ----
  136. if(bBundledBlessInvenSize_Switcher == TRUE)
  137. {
  138. _asm
  139. {
  140. MOV dwBundledBlessInvenSize_Buffer,oBundledBlessInvenSize_Allowed
  141. JMP dwBundledBlessInvenSize_Buffer
  142. }
  143. }
  144. else
  145. {
  146. _asm
  147. {
  148. MOV dwBundledBlessInvenSize_Buffer,oBundledBlessInvenSize_Return
  149. JMP dwBundledBlessInvenSize_Buffer
  150. }
  151. }
  152. }
  153. #pragma optimize("t",off)
  154.  
  155. void cItem::InitBundles()
  156. {
  157. gToolKit.SetRange((LPVOID)oBundledBlessInvenPos_Hook,12,ASM::NOP);
  158. gToolKit.SetJmp((LPVOID)oBundledBlessInvenPos_Hook,this->BundledBlessInventoryPos);
  159. // ----
  160. gToolKit.SetRange((LPVOID)oBundledBlessInvenSize_Hook,12,ASM::NOP);
  161. gToolKit.SetJmp((LPVOID)oBundledBlessInvenSize_Hook,this->BundledBlessInventorySize);
  162. }
  163.  
  164. #define pDrawNumber ((bool(__cdecl*)(int pObj))0x005111F0) // 1.03H CHS
  165.  
  166. #define oDrawColorR_Buff 0x007221E2 // 1.03H CHS
  167. #define oDrawColorG_Buff 0x007221DD // 1.03H CHS
  168. #define oDrawColorB_Buff 0x007221D8 // 1.03H CHS
  169.  
  170. void cItem::DrawColors(int iColor)
  171. {
  172. if(iColor == eNormalNumber)
  173. {
  174. gToolKit.SetByte((PVOID)(oDrawColorR_Buff+4),0x3F);
  175. gToolKit.SetByte((PVOID)(oDrawColorR_Buff+3),0x80);
  176. gToolKit.SetByte((PVOID)(oDrawColorR_Buff+2),0x00);
  177. gToolKit.SetByte((PVOID)(oDrawColorR_Buff+1),0x00);
  178. // ----
  179. gToolKit.SetByte((PVOID)(oDrawColorG_Buff+4),0x3F);
  180. gToolKit.SetByte((PVOID)(oDrawColorG_Buff+3),0x66);
  181. gToolKit.SetByte((PVOID)(oDrawColorG_Buff+2),0x66);
  182. gToolKit.SetByte((PVOID)(oDrawColorG_Buff+1),0x66);
  183. // ----
  184. gToolKit.SetByte((PVOID)(oDrawColorB_Buff+4),0x3F);
  185. gToolKit.SetByte((PVOID)(oDrawColorB_Buff+3),0x33);
  186. gToolKit.SetByte((PVOID)(oDrawColorB_Buff+2),0x33);
  187. gToolKit.SetByte((PVOID)(oDrawColorB_Buff+1),0x33);
  188. }
  189. else if(iColor == eBlueNumber)
  190. {
  191. gToolKit.SetByte((PVOID)(oDrawColorR_Buff+4),0x00);
  192. gToolKit.SetByte((PVOID)(oDrawColorR_Buff+3),0x00);
  193. gToolKit.SetByte((PVOID)(oDrawColorR_Buff+2),0x00);
  194. gToolKit.SetByte((PVOID)(oDrawColorR_Buff+1),0x00);
  195. // ----
  196. gToolKit.SetByte((PVOID)(oDrawColorG_Buff+4),0x00);
  197. gToolKit.SetByte((PVOID)(oDrawColorG_Buff+3),0x00);
  198. gToolKit.SetByte((PVOID)(oDrawColorG_Buff+2),0x00);
  199. gToolKit.SetByte((PVOID)(oDrawColorG_Buff+1),0x00);
  200. // ----
  201. gToolKit.SetByte((PVOID)(oDrawColorB_Buff+4),0x3F);
  202. gToolKit.SetByte((PVOID)(oDrawColorB_Buff+3),0x80);
  203. gToolKit.SetByte((PVOID)(oDrawColorB_Buff+2),0x00);
  204. gToolKit.SetByte((PVOID)(oDrawColorB_Buff+1),0x00);
  205. }
  206. else if(iColor == eRedNumber)
  207. {
  208. gToolKit.SetByte((PVOID)(oDrawColorR_Buff+4),0x3F);
  209. gToolKit.SetByte((PVOID)(oDrawColorR_Buff+3),0x80);
  210. gToolKit.SetByte((PVOID)(oDrawColorR_Buff+2),0x00);
  211. gToolKit.SetByte((PVOID)(oDrawColorR_Buff+1),0x00);
  212. // ----
  213. gToolKit.SetByte((PVOID)(oDrawColorG_Buff+4),0x00);
  214. gToolKit.SetByte((PVOID)(oDrawColorG_Buff+3),0x00);
  215. gToolKit.SetByte((PVOID)(oDrawColorG_Buff+2),0x00);
  216. gToolKit.SetByte((PVOID)(oDrawColorG_Buff+1),0x00);
  217. // ----
  218. gToolKit.SetByte((PVOID)(oDrawColorB_Buff+4),0x00);
  219. gToolKit.SetByte((PVOID)(oDrawColorB_Buff+3),0x00);
  220. gToolKit.SetByte((PVOID)(oDrawColorB_Buff+2),0x00);
  221. gToolKit.SetByte((PVOID)(oDrawColorB_Buff+1),0x00);
  222. }
  223. else if(iColor == eGoldenNumber)
  224. {
  225. gToolKit.SetByte((PVOID)(oDrawColorR_Buff+4),0x3F);
  226. gToolKit.SetByte((PVOID)(oDrawColorR_Buff+3),0x80);
  227. gToolKit.SetByte((PVOID)(oDrawColorR_Buff+2),0x00);
  228. gToolKit.SetByte((PVOID)(oDrawColorR_Buff+1),0x00);
  229. // ----
  230. gToolKit.SetByte((PVOID)(oDrawColorG_Buff+4),0x3F);
  231. gToolKit.SetByte((PVOID)(oDrawColorG_Buff+3),0x80);
  232. gToolKit.SetByte((PVOID)(oDrawColorG_Buff+2),0x00);
  233. gToolKit.SetByte((PVOID)(oDrawColorG_Buff+1),0x00);
  234. // ----
  235. gToolKit.SetByte((PVOID)(oDrawColorB_Buff+4),0x3D);
  236. gToolKit.SetByte((PVOID)(oDrawColorB_Buff+3),0xCC);
  237. gToolKit.SetByte((PVOID)(oDrawColorB_Buff+2),0xCC);
  238. gToolKit.SetByte((PVOID)(oDrawColorB_Buff+1),0xCD);
  239. }
  240. else if(iColor == eGreenNumber)
  241. {
  242. gToolKit.SetByte((PVOID)(oDrawColorR_Buff+4),0x00);
  243. gToolKit.SetByte((PVOID)(oDrawColorR_Buff+3),0x00);
  244. gToolKit.SetByte((PVOID)(oDrawColorR_Buff+2),0x00);
  245. gToolKit.SetByte((PVOID)(oDrawColorR_Buff+1),0x00);
  246. // ----
  247. gToolKit.SetByte((PVOID)(oDrawColorG_Buff+4),0x3F);
  248. gToolKit.SetByte((PVOID)(oDrawColorG_Buff+3),0x80);
  249. gToolKit.SetByte((PVOID)(oDrawColorG_Buff+2),0x00);
  250. gToolKit.SetByte((PVOID)(oDrawColorG_Buff+1),0x00);
  251. // ----
  252. gToolKit.SetByte((PVOID)(oDrawColorB_Buff+4),0x00);
  253. gToolKit.SetByte((PVOID)(oDrawColorB_Buff+3),0x00);
  254. gToolKit.SetByte((PVOID)(oDrawColorB_Buff+2),0x00);
  255. gToolKit.SetByte((PVOID)(oDrawColorB_Buff+1),0x00);
  256. }
  257. else if(iColor == eLBlueNumber)
  258. {
  259. gToolKit.SetByte((PVOID)(oDrawColorR_Buff+4),0x00);
  260. gToolKit.SetByte((PVOID)(oDrawColorR_Buff+3),0x00);
  261. gToolKit.SetByte((PVOID)(oDrawColorR_Buff+2),0x00);
  262. gToolKit.SetByte((PVOID)(oDrawColorR_Buff+1),0x00);
  263. // ----
  264. gToolKit.SetByte((PVOID)(oDrawColorG_Buff+4),0x3F);
  265. gToolKit.SetByte((PVOID)(oDrawColorG_Buff+3),0x7B);
  266. gToolKit.SetByte((PVOID)(oDrawColorG_Buff+2),0xB9);
  267. gToolKit.SetByte((PVOID)(oDrawColorG_Buff+1),0x8C);
  268. // ----
  269. gToolKit.SetByte((PVOID)(oDrawColorB_Buff+4),0x3F);
  270. gToolKit.SetByte((PVOID)(oDrawColorB_Buff+3),0x80);
  271. gToolKit.SetByte((PVOID)(oDrawColorB_Buff+2),0x00);
  272. gToolKit.SetByte((PVOID)(oDrawColorB_Buff+1),0x00);
  273. }
  274. else if(iColor == eLGreenNumber)
  275. {
  276. gToolKit.SetByte((PVOID)(oDrawColorR_Buff+4),0x00);
  277. gToolKit.SetByte((PVOID)(oDrawColorR_Buff+3),0x00);
  278. gToolKit.SetByte((PVOID)(oDrawColorR_Buff+2),0x00);
  279. gToolKit.SetByte((PVOID)(oDrawColorR_Buff+1),0x00);
  280. // ----
  281. gToolKit.SetByte((PVOID)(oDrawColorG_Buff+4),0x3F);
  282. gToolKit.SetByte((PVOID)(oDrawColorG_Buff+3),0x80);
  283. gToolKit.SetByte((PVOID)(oDrawColorG_Buff+2),0x00);
  284. gToolKit.SetByte((PVOID)(oDrawColorG_Buff+1),0x00);
  285. // ----
  286. gToolKit.SetByte((PVOID)(oDrawColorB_Buff+4),0x3E);
  287. gToolKit.SetByte((PVOID)(oDrawColorB_Buff+3),0xB3);
  288. gToolKit.SetByte((PVOID)(oDrawColorB_Buff+2),0x33);
  289. gToolKit.SetByte((PVOID)(oDrawColorB_Buff+1),0x33);
  290. }
  291. else if(iColor == eOrangeNumber)
  292. {
  293. gToolKit.SetByte((PVOID)(oDrawColorR_Buff+4),0x3F);
  294. gToolKit.SetByte((PVOID)(oDrawColorR_Buff+3),0x80);
  295. gToolKit.SetByte((PVOID)(oDrawColorR_Buff+2),0x00);
  296. gToolKit.SetByte((PVOID)(oDrawColorR_Buff+1),0x00);
  297. // ----
  298. gToolKit.SetByte((PVOID)(oDrawColorG_Buff+4),0x3F);
  299. gToolKit.SetByte((PVOID)(oDrawColorG_Buff+3),0x40);
  300. gToolKit.SetByte((PVOID)(oDrawColorG_Buff+2),0x00);
  301. gToolKit.SetByte((PVOID)(oDrawColorG_Buff+1),0x00);
  302. // ----
  303. gToolKit.SetByte((PVOID)(oDrawColorB_Buff+4),0x00);
  304. gToolKit.SetByte((PVOID)(oDrawColorB_Buff+3),0x00);
  305. gToolKit.SetByte((PVOID)(oDrawColorB_Buff+2),0x00);
  306. gToolKit.SetByte((PVOID)(oDrawColorB_Buff+1),0x00);
  307. }
  308. else if(iColor == eBlueJewelNumb)
  309. {
  310. gToolKit.SetByte((PVOID)(oDrawColorR_Buff+4),0x00);
  311. gToolKit.SetByte((PVOID)(oDrawColorR_Buff+3),0x00);
  312. gToolKit.SetByte((PVOID)(oDrawColorR_Buff+2),0x00);
  313. gToolKit.SetByte((PVOID)(oDrawColorR_Buff+1),0x00);
  314. // ----
  315. gToolKit.SetByte((PVOID)(oDrawColorG_Buff+4),0x3F);
  316. gToolKit.SetByte((PVOID)(oDrawColorG_Buff+3),0x15);
  317. gToolKit.SetByte((PVOID)(oDrawColorG_Buff+2),0x53);
  318. gToolKit.SetByte((PVOID)(oDrawColorG_Buff+1),0x26);
  319. // ----
  320. gToolKit.SetByte((PVOID)(oDrawColorB_Buff+4),0x3F);
  321. gToolKit.SetByte((PVOID)(oDrawColorB_Buff+3),0x80);
  322. gToolKit.SetByte((PVOID)(oDrawColorB_Buff+2),0x00);
  323. gToolKit.SetByte((PVOID)(oDrawColorB_Buff+1),0x00);
  324. }
  325. else if(iColor == eLRedNumber)
  326. {
  327. gToolKit.SetByte((PVOID)(oDrawColorR_Buff+4),0x3F);
  328. gToolKit.SetByte((PVOID)(oDrawColorR_Buff+3),0x80);
  329. gToolKit.SetByte((PVOID)(oDrawColorR_Buff+2),0x00);
  330. gToolKit.SetByte((PVOID)(oDrawColorR_Buff+1),0x00);
  331. // ----
  332. gToolKit.SetByte((PVOID)(oDrawColorG_Buff+4),0x3E);
  333. gToolKit.SetByte((PVOID)(oDrawColorG_Buff+3),0xEB);
  334. gToolKit.SetByte((PVOID)(oDrawColorG_Buff+2),0x85);
  335. gToolKit.SetByte((PVOID)(oDrawColorG_Buff+1),0x1F);
  336. // ----
  337. gToolKit.SetByte((PVOID)(oDrawColorB_Buff+4),0x3E);
  338. gToolKit.SetByte((PVOID)(oDrawColorB_Buff+3),0xEB);
  339. gToolKit.SetByte((PVOID)(oDrawColorB_Buff+2),0x85);
  340. gToolKit.SetByte((PVOID)(oDrawColorB_Buff+1),0x1F);
  341. }
  342. else if(iColor == ePinkNumber)
  343. {
  344. gToolKit.SetByte((PVOID)(oDrawColorR_Buff+4),0x3F);
  345. gToolKit.SetByte((PVOID)(oDrawColorR_Buff+3),0x68);
  346. gToolKit.SetByte((PVOID)(oDrawColorR_Buff+2),0xF5);
  347. gToolKit.SetByte((PVOID)(oDrawColorR_Buff+1),0xC3);
  348. // ----
  349. gToolKit.SetByte((PVOID)(oDrawColorG_Buff+4),0x3F);
  350. gToolKit.SetByte((PVOID)(oDrawColorG_Buff+3),0x0B);
  351. gToolKit.SetByte((PVOID)(oDrawColorG_Buff+2),0xC6);
  352. gToolKit.SetByte((PVOID)(oDrawColorG_Buff+1),0xA8);
  353. // ----
  354. gToolKit.SetByte((PVOID)(oDrawColorB_Buff+4),0x3F);
  355. gToolKit.SetByte((PVOID)(oDrawColorB_Buff+3),0x3B);
  356. gToolKit.SetByte((PVOID)(oDrawColorB_Buff+2),0xED);
  357. gToolKit.SetByte((PVOID)(oDrawColorB_Buff+1),0xFA);
  358. }
  359. else if(iColor == ePurpleNumber)
  360. {
  361. gToolKit.SetByte((PVOID)(oDrawColorR_Buff+4),0x3F);
  362. gToolKit.SetByte((PVOID)(oDrawColorR_Buff+3),0x6E);
  363. gToolKit.SetByte((PVOID)(oDrawColorR_Buff+2),0x14);
  364. gToolKit.SetByte((PVOID)(oDrawColorR_Buff+1),0x7B);
  365. // ----
  366. gToolKit.SetByte((PVOID)(oDrawColorG_Buff+4),0x00);
  367. gToolKit.SetByte((PVOID)(oDrawColorG_Buff+3),0x00);
  368. gToolKit.SetByte((PVOID)(oDrawColorG_Buff+2),0x00);
  369. gToolKit.SetByte((PVOID)(oDrawColorG_Buff+1),0x00);
  370. // ----
  371. gToolKit.SetByte((PVOID)(oDrawColorB_Buff+4),0x3F);
  372. gToolKit.SetByte((PVOID)(oDrawColorB_Buff+3),0x4E);
  373. gToolKit.SetByte((PVOID)(oDrawColorB_Buff+2),0x56);
  374. gToolKit.SetByte((PVOID)(oDrawColorB_Buff+1),0x04);
  375. }
  376. }
  377.  
  378. BOOL cItem::DrawNumber(int pObj) // -> 005111F0
  379. {
  380. int pObject = *(WORD*)pObj;
  381. // ----
  382. switch(pObject)
  383. {
  384. case GET_ITEM_INDEX(12,30):
  385. gItem.DrawColors(eNormalNumber);
  386. return TRUE;
  387. break;
  388.  
  389. case GET_ITEM_INDEX(12,31):
  390. gItem.DrawColors(eNormalNumber);
  391. return TRUE;
  392. break;
  393.  
  394. case GET_ITEM_INDEX(12,150):
  395. gItem.DrawColors(eNormalNumber);
  396. return TRUE;
  397. break;
  398.  
  399. case GET_ITEM_INDEX(12,151):
  400. gItem.DrawColors(eNormalNumber);
  401. return TRUE;
  402. break;
  403.  
  404. case GET_ITEM_INDEX(12,152):
  405. gItem.DrawColors(eNormalNumber);
  406. return TRUE;
  407. break;
  408.  
  409. case GET_ITEM_INDEX(12,153):
  410. gItem.DrawColors(eNormalNumber);
  411. return TRUE;
  412. break;
  413.  
  414. case GET_ITEM_INDEX(12,154):
  415. gItem.DrawColors(eNormalNumber);
  416. return TRUE;
  417. break;
  418.  
  419. case GET_ITEM_INDEX(12,155):
  420. gItem.DrawColors(eNormalNumber);
  421. return TRUE;
  422. break;
  423.  
  424. case GET_ITEM_INDEX(12,156):
  425. gItem.DrawColors(eNormalNumber);
  426. return TRUE;
  427. break;
  428.  
  429. default:
  430. return pDrawNumber(pObj) >= 2;
  431. break;
  432. }
  433. }
  434.  
  435. void cItem::InitDrawNumber()
  436. {
  437. gToolKit.SetOp((LPVOID)0x00509CE0,this->DrawNumber,ASM::CALL); // 1.03H CHS
  438. gToolKit.SetOp((LPVOID)0x007221B8,this->DrawNumber,ASM::CALL); // 1.03H CHS
  439. gToolKit.SetOp((LPVOID)0x0076399F,this->DrawNumber,ASM::CALL); // 1.03H CHS
  440. }
  441.  
  442. #define pTextList *(int*)0x7BB0894
  443. #define pTextNum *(int*)0x7B7DE78
  444. #define pItemInfo *(int*)0x7B7EC24
  445. #define pTextListColor *(int*)0x7B7EFDC
  446. #define pTextBold *(int*)0x7BAE0A8
  447.  
  448. #define oTextListColorR 0x00587A66
  449. #define oTextListColorG 0x00587A61
  450. #define oTextListColorB 0x00587A5C
  451.  
  452. void cItem::AddText(char *Text,int Color,int Weight)
  453. {
  454. *(&*(DWORD*)oItemDescriptionText_Color + *(DWORD*)oItemDescriptionText_Line) = Color;
  455. *(&*(DWORD*)oItemDesctiptionText_Weight + *(DWORD*)oItemDescriptionText_Line) = Weight;
  456. // ----
  457. pSetItemTextLine(100 * (*(DWORD*)oItemDescriptionText_Line) + oItemDescriptionText_Point,Text);
  458. // ----
  459. *(DWORD*)oItemDescriptionText_Line += 1;
  460. }
  461.  
  462. void cItem::ToolTipEx(float a1,float a2,int a3,char a4,int a5)
  463. {
  464. LPITEM lpItem = &*(SITEM*)a3;
  465. // ----
  466. switch(lpItem->Index)
  467. {
  468. case GET_ITEM_INDEX(13,37):
  469. {
  470. if(lpItem->ExcellentOption == ATTACK_FENRIR)
  471. gItem.bIsBlackFenrir=TRUE;
  472. else
  473. gItem.bIsBlackFenrir=FALSE;
  474. // ----
  475. if(lpItem->ExcellentOption == DEFENSE_FENRIR)
  476. gItem.bIsBlueFenrir=TRUE;
  477. else
  478. gItem.bIsBlueFenrir=FALSE;
  479. // ----
  480. if(lpItem->ExcellentOption == ILLUSION_FENRIR)
  481. gItem.bIsGoldenFenrir=TRUE;
  482. else
  483. gItem.bIsGoldenFenrir=FALSE;
  484. // ----
  485. if(lpItem->ExcellentOption == DESTINY_FENRIR)
  486. gItem.bIsOrangeFenrir=TRUE;
  487. else
  488. gItem.bIsOrangeFenrir=FALSE;
  489. // ----
  490. if(lpItem->ExcellentOption == NORMAL_FENRIR)
  491. gItem.bIsRedFenrir=TRUE;
  492. else
  493. gItem.bIsRedFenrir=FALSE;
  494. }
  495. break;
  496. default:
  497. gItem.bIsRedFenrir = FALSE;
  498. gItem.bIsBlackFenrir = FALSE;
  499. gItem.bIsBlueFenrir = FALSE;
  500. gItem.bIsGoldenFenrir = FALSE;
  501. gItem.bIsOrangeFenrir = FALSE;
  502. break;
  503. }
  504. // ----
  505. if(lpItem->Index >= GET_ITEM_INDEX(0,0)
  506. && lpItem->Index <= GET_ITEM_INDEX(15,511))
  507. {
  508. if(gInterface.DisabledPack==FALSE)
  509. {
  510. pSetBlend(true);
  511. glColor4f(1.f,1.f,1.f,0.8f);
  512. // ----
  513. gItem.CX = 448.f;
  514. gItem.CY = 175.f;
  515. // ----
  516. int Randomizer = rand()%2;
  517. // ----
  518. if(lpItem->Index >=GET_ITEM_INDEX(14,240)
  519. && lpItem->Index <=GET_ITEM_INDEX(14,246))
  520. {
  521. switch(lpItem->Index)
  522. {
  523. case GET_ITEM_INDEX(14,240):
  524. case GET_ITEM_INDEX(14,241):
  525. case GET_ITEM_INDEX(14,242):
  526. case GET_ITEM_INDEX(14,243):
  527. case GET_ITEM_INDEX(14,244):
  528. case GET_ITEM_INDEX(14,245):
  529. case GET_ITEM_INDEX(14,246):
  530. {
  531. gInterface.CheckPosForDraw(eFLAG_IT01,eFLAG_IT02,(float)(pCursorX),18.f,38.f,(float)(pCursorY),18.f,18.f,1);
  532. gInterface.CheckPosForDraw(eFLAG_IT01,eFLAG_IT02,(float)(pCursorX),39.f,60.f,(float)(pCursorY),18.f,18.f,2);
  533. gInterface.CheckPosForDraw(eFLAG_IT01,eFLAG_IT02,(float)(pCursorX),61.f,82.f,(float)(pCursorY),18.f,18.f,3);
  534. gInterface.CheckPosForDraw(eFLAG_IT01,eFLAG_IT02,(float)(pCursorX),83.f,104.f,(float)(pCursorY),18.f,18.f,4);
  535. gInterface.CheckPosForDraw(eFLAG_IT01,eFLAG_IT02,(float)(pCursorX),105.f,125.f,(float)(pCursorY),18.f,18.f,5);
  536. gInterface.CheckPosForDraw(eFLAG_IT01,eFLAG_IT02,(float)(pCursorX),126.f,147.f,(float)(pCursorY),18.f,18.f,6);
  537. gInterface.CheckPosForDraw(eFLAG_IT01,eFLAG_IT02,(float)(pCursorX),148.f,169.f,(float)(pCursorY),18.f,18.f,7);
  538. gInterface.CheckPosForDraw(eFLAG_IT01,eFLAG_IT02,(float)(pCursorX),170.f,191.f,(float)(pCursorY),18.f,18.f,8);
  539. }
  540. break;
  541. }
  542. }
  543. // ----
  544. pGLSwitchBlend();
  545. pGLSwitch();
  546. // ----
  547. switch(lpItem->Index)
  548. {
  549. case GET_ITEM_INDEX(14,240):
  550. {
  551. if(gInterface.OnRightClickPackProcess==TRUE)
  552. {
  553. gInterface.SendChat("/packlevel");
  554. return;
  555. }
  556. }
  557. break;
  558. case GET_ITEM_INDEX(14,241):
  559. {
  560. if(gInterface.OnRightClickPackProcess==TRUE)
  561. {
  562. gInterface.SendChat("/packluck");
  563. return;
  564. }
  565. }
  566. break;
  567. case GET_ITEM_INDEX(14,242):
  568. {
  569. if(gInterface.OnRightClickPackProcess==TRUE)
  570. {
  571. gInterface.SendChat("/packskill");
  572. return;
  573. }
  574. }
  575. break;
  576. case GET_ITEM_INDEX(14,243):
  577. {
  578. if(gInterface.OnRightClickPackProcess==TRUE)
  579. {
  580. gInterface.SendChat("/packoption");
  581. return;
  582. }
  583. }
  584. break;
  585. case GET_ITEM_INDEX(14,244):
  586. {
  587. if(gInterface.OnRightClickPackProcess==TRUE)
  588. {
  589. gInterface.SendChat("/packexcellent");
  590. return;
  591. }
  592. }
  593. break;
  594. case GET_ITEM_INDEX(14,245):
  595. {
  596. if(gInterface.OnRightClickPackProcess==TRUE)
  597. {
  598. gInterface.SendChat("/packancient");
  599. return;
  600. }
  601. }
  602. break;
  603. case GET_ITEM_INDEX(14,246):
  604. {
  605. if(gInterface.OnRightClickPackProcess==TRUE)
  606. {
  607. gInterface.SendChat("/packsocket");
  608. return;
  609. }
  610. }
  611. break;
  612. default:
  613. {
  614. if(gInterface.OnRightClickPackProcess==TRUE)
  615. {
  616. gInterface.OnRightClickPackProcess=FALSE;
  617. return;
  618. }
  619. }
  620. break;
  621. }
  622. }
  623. else if(gInterface.DisabledUnpack==FALSE)
  624. {
  625. float ToolTipPosX,ToolTipPosY;
  626. float AllowTextPX,AllowTextPY;
  627. float AllowWhiteX,AllowWhiteY;
  628. float ReturnTextX,ReturnTextY;
  629. float DenyWhiteTX,DenyWhiteTY;
  630. // ----
  631. if(lpItem->Index >= GET_ITEM_INDEX(12,150)
  632. && lpItem->Index <= GET_ITEM_INDEX(12,156))
  633. {
  634. pSetBlend(true);
  635. glColor4f(1.f,1.f,1.f,0.8f);
  636. // ----
  637. float PosXDef = 484.f;
  638. float PosYDef = 16.f;// Inventory 175.f
  639. // ----
  640. if((float)(pCursorX) >= PosXDef
  641. && (float)(pCursorY) >= PosYDef)
  642. {
  643. ToolTipPosX = (float)(pCursorX-101.f);
  644. ToolTipPosY = (float)(pCursorY+33.f);
  645. AllowTextPX = (float)(pCursorX-98.f);
  646. AllowTextPY = (float)(pCursorY+38.f);
  647. AllowWhiteX = (float)(pCursorX-98.f);
  648. AllowWhiteY = (float)(pCursorY+48.f);
  649. ReturnTextX = (float)(pCursorX-98.f);
  650. ReturnTextY = (float)(pCursorY+38.f);
  651. DenyWhiteTX = (float)(pCursorX-98.f);
  652. DenyWhiteTY = (float)(pCursorY+48.f);
  653. }
  654. else
  655. {
  656. ToolTipPosX = (float)(pCursorX+35.f);
  657. ToolTipPosY = (float)(pCursorY-35.f);
  658. AllowTextPX = (float)(pCursorX+38.f);
  659. AllowTextPY = (float)(pCursorY-32.f);
  660. AllowWhiteX = (float)(pCursorX+38.f);
  661. AllowWhiteY = (float)(pCursorY-22.f);
  662. ReturnTextX = (float)(pCursorX+38.f);
  663. ReturnTextY = (float)(pCursorY-32.f);
  664. DenyWhiteTX = (float)(pCursorX+38.f);
  665. DenyWhiteTY = (float)(pCursorY-22.f);
  666. }
  667. // ----
  668. int Randomizer = rand()%2;
  669. // ----
  670. if(Randomizer==1)
  671. {
  672. if((float)(pCursorX) >= PosXDef && (float)(pCursorY) >= PosYDef)
  673. {
  674. gInterface.DrawGUI(eSMOUSE_IC1,AllowWhiteX+95.f,AllowWhiteY-12.f,23.f,21.f);
  675. }
  676. else
  677. {
  678. gInterface.DrawGUI(eSMOUSE_IC1,AllowWhiteX+95.f,AllowWhiteY-12.f,23.f,21.f);
  679. }
  680. }
  681. else
  682. {
  683. if((float)(pCursorX) >= PosXDef && (float)(pCursorY) >= PosYDef)
  684. {
  685. gInterface.DrawGUI(eSMOUSE_IC2,AllowWhiteX+95.f,AllowWhiteY-12.f,23.f,21.f);
  686. }
  687. else
  688. {
  689. gInterface.DrawGUI(eSMOUSE_IC2,AllowWhiteX+95.f,AllowWhiteY-12.f,23.f,21.f);
  690. }
  691. }
  692. // ----
  693. gInterface.DrawGUI(eUNPACK_TT1,ToolTipPosX,ToolTipPosY,125.f,57.f);
  694. gInterface.DrawFormat(eShinyGreen,AllowTextPX,AllowTextPY,FW_BOLD,TRUE,"Unpack Jewel Bundled");
  695. gInterface.DrawFormat(eWhite180,AllowWhiteX,AllowWhiteY,FW_BOLD,TRUE,"Use Right-Click to Unpack");
  696. // ----
  697. pGLSwitchBlend();
  698. pGLSwitch();
  699. }
  700. else
  701. {
  702. pSetBlend(true);
  703. glColor4f(1.f,1.f,1.f,0.8f);
  704. // ----
  705. float PosXDef = 484.f;
  706. float PosYDef = 16.f;//175.f
  707. // ----
  708. if((float)(pCursorX) >= PosXDef
  709. && (float)(pCursorY) >= PosYDef)
  710. {
  711. ToolTipPosX = (float)(pCursorX-101.f);
  712. ToolTipPosY = (float)(pCursorY+33.f);
  713. AllowTextPX = (float)(pCursorX-98.f);
  714. AllowTextPY = (float)(pCursorY+38.f);
  715. AllowWhiteX = (float)(pCursorX-98.f);
  716. AllowWhiteY = (float)(pCursorY+48.f);
  717. ReturnTextX = (float)(pCursorX-98.f);
  718. ReturnTextY = (float)(pCursorY+38.f);
  719. DenyWhiteTX = (float)(pCursorX-98.f);
  720. DenyWhiteTY = (float)(pCursorY+48.f);
  721. }
  722. else
  723. {
  724. ToolTipPosX = (float)(pCursorX+35.f);
  725. ToolTipPosY = (float)(pCursorY-35.f);
  726. AllowTextPX = (float)(pCursorX+38.f);
  727. AllowTextPY = (float)(pCursorY-32.f);
  728. AllowWhiteX = (float)(pCursorX+38.f);
  729. AllowWhiteY = (float)(pCursorY-22.f);
  730. ReturnTextX = (float)(pCursorX+38.f);
  731. ReturnTextY = (float)(pCursorY-32.f);
  732. DenyWhiteTX = (float)(pCursorX+38.f);
  733. DenyWhiteTY = (float)(pCursorY-22.f);
  734. }
  735. gInterface.DrawGUI(eUNPACK_TT1,ToolTipPosX,ToolTipPosY,125.f,57.f);
  736. gInterface.DrawFormat(eRed,ReturnTextX,ReturnTextY,FW_BOLD,TRUE,"This Item Can't be Unpacked");
  737. gInterface.DrawFormat(eWhite180,DenyWhiteTX,DenyWhiteTY,FW_BOLD,TRUE,"Please, target another item.");
  738. // ----
  739. pGLSwitchBlend();
  740. pGLSwitch();
  741. }
  742. switch(lpItem->Index)
  743. {
  744. case GET_ITEM_INDEX(12,150):
  745. {
  746. if(gInterface.OnRightClickProcess==TRUE)
  747. {
  748. gInterface.SendChat("/unpacklevel");
  749. }
  750. else
  751. {
  752. return;
  753. }
  754. }
  755. break;
  756. case GET_ITEM_INDEX(12,151):
  757. {
  758. if(gInterface.OnRightClickProcess==TRUE)
  759. {
  760. gInterface.SendChat("/unpackluck");
  761. }
  762. else
  763. {
  764. return;
  765. }
  766. }
  767. break;
  768. case GET_ITEM_INDEX(12,152):
  769. {
  770. if(gInterface.OnRightClickProcess==TRUE)
  771. {
  772. gInterface.SendChat("/unpackskill");
  773. }
  774. else
  775. {
  776. return;
  777. }
  778. }
  779. break;
  780. case GET_ITEM_INDEX(12,153):
  781. {
  782. if(gInterface.OnRightClickProcess==TRUE)
  783. {
  784. gInterface.SendChat("/unpackoption");
  785. }
  786. else
  787. {
  788. return;
  789. }
  790. }
  791. break;
  792. case GET_ITEM_INDEX(12,154):
  793. {
  794. if(gInterface.OnRightClickProcess==TRUE)
  795. {
  796. gInterface.SendChat("/unpackexcellent");
  797. }
  798. else
  799. {
  800. return;
  801. }
  802. }
  803. break;
  804. case GET_ITEM_INDEX(12,155):
  805. {
  806. if(gInterface.OnRightClickProcess==TRUE)
  807. {
  808. gInterface.SendChat("/unpackancient");
  809. }
  810. else
  811. {
  812. return;
  813. }
  814. }
  815. break;
  816. case GET_ITEM_INDEX(12,156):
  817. {
  818. if(gInterface.OnRightClickProcess==TRUE)
  819. {
  820. gInterface.SendChat("/unpacksocket");
  821. }
  822. else
  823. {
  824. return;
  825. }
  826. }
  827. break;
  828. default:
  829. break;
  830. }
  831. }
  832. else // <- RETURNS ITEM TOOLTIP FINAL ORIGINAL
  833. {
  834. pSetBlend(true);
  835. glColor4f(1.f,1.f,1.f,1.f);
  836. pItemToolTip(a1,a2,a3,a4,a5);
  837. }
  838. }
  839. }
  840.  
  841. BOOL cItem::SocketEx(int ItemID)
  842. {
  843. for(int i=0;i<MAX_CUSTOM_ITEMS;i++)
  844. {
  845. if(ItemID == GET_ITEM_INDEX(gItem.m_Item[i].Type,gItem.m_Item[i].Index))
  846. {
  847. if(gItem.m_Item[i].IsSocket==TRUE)
  848. {
  849. return TRUE;
  850. }
  851. else
  852. {
  853. return FALSE;
  854. }
  855. }
  856. }
  857. // ----
  858. return pIsSocketItem(ItemID);
  859. }
  860.  
  861. void cItem::ModelEx()
  862. {
  863. pInitModelData();
  864. // ----
  865. for(int i=0;i<MAX_CUSTOM_ITEMS;i++)
  866. {
  867. if(strlen(gItem.m_Item[i].Name)>NULL)
  868. {
  869. PCHAR Path = XVT_MODEL_ITEM_PATH;
  870. pLoadModel(GET_OBJECT_INDEX(gItem.m_Item[i].Type,gItem.m_Item[i].Index),Path,gItem.m_Item[i].Name,NONE);
  871. }
  872. }
  873. }
  874.  
  875. void cItem::TextureEx()
  876. {
  877. pInitTextureData();
  878. // ----
  879. for(int i=0;i<MAX_CUSTOM_ITEMS;i++)
  880. {
  881. if(strlen(gItem.m_Item[i].Name)>NULL)
  882. {
  883. PCHAR Path = XVT_TEXTURE_ITEM_PATH;
  884. pLoadTexture(GET_OBJECT_INDEX(gItem.m_Item[i].Type,gItem.m_Item[i].Index),Path,GL_REPEAT,GL_NEAREST,GL_TRUE);
  885. }
  886. }
  887. }
  888.  
  889. void cItem::AngleEx(int Type)
  890. {
  891. pItemAngle(Type);
  892. // ----
  893. LPOBJ lpObj = &*(OBJSTRUCT*)Type;
  894. // ----
  895. if(lpObj->ObjectID == GET_OBJECT_INDEX(13,64)) // Static Fix for Pets from Season 4
  896. {
  897. lpObj->Angle[0] = 0.f;
  898. lpObj->Angle[1] = 0.f;
  899. lpObj->Angle[2] = 70.f;
  900. lpObj->Scale = 0.2f;
  901. }
  902. else if(lpObj->ObjectID == GET_OBJECT_INDEX(13,65)) // Static Fix for Pets from Season 4
  903. {
  904. lpObj->Angle[0] = 0.f;
  905. lpObj->Angle[1] = 0.f;
  906. lpObj->Angle[2] = 70.f;
  907. lpObj->Scale = 0.4f;
  908. }
  909. else if(lpObj->ObjectID != GET_OBJECT_INDEX(0,0)) // Static Fix for Kriss
  910. {
  911. for(int i=0;i<MAX_CUSTOM_ITEMS;i++)
  912. {
  913. if(lpObj->ObjectID == GET_OBJECT_INDEX(gItem.m_Item[i].Type,gItem.m_Item[i].Index))
  914. {
  915. if(gItem.m_Item[i].RotX!=NONE)
  916. {
  917. lpObj->Angle[0]=gItem.m_Item[i].RotX;
  918. }
  919. // ----
  920. if(gItem.m_Item[i].RotY!=NONE)
  921. {
  922. lpObj->Angle[1]=gItem.m_Item[i].RotY;
  923. }
  924. // ----
  925. if(gItem.m_Item[i].RotZ!=NONE)
  926. {
  927. lpObj->Angle[2]=gItem.m_Item[i].RotZ;
  928. }
  929. // ----
  930. if(gItem.m_Item[i].Size!=NONE)
  931. {
  932. lpObj->Scale=gItem.m_Item[i].Size;
  933. }
  934. }
  935. }
  936. }
  937. }
  938.  
  939. void cItem::InventoryEx(float ScreenX,float ScreenY,float PosX,float PosY,int ItemID,int a6,int a7,int a8,int a9)
  940. {
  941. if(ItemID != GET_ITEM_INDEX(0,0)) // -> Static Fix for Kriss
  942. {
  943. for(int i=0;i<MAX_CUSTOM_ITEMS;i++)
  944. {
  945. if(ItemID == GET_ITEM_INDEX(gItem.m_Item[i].Type,gItem.m_Item[i].Index))
  946. {
  947. if(gItem.m_Item[i].PosX!=NONE)
  948. {
  949. PosX = PosX+gItem.m_Item[i].PosX;
  950. }
  951. if(gItem.m_Item[i].PosY!=NONE)
  952. {
  953. PosY = PosY+gItem.m_Item[i].PosY;
  954. }
  955. }
  956. }
  957. }
  958. // ----
  959. pRenderItem3D(ScreenX,ScreenY,PosX,PosY,ItemID,a6,a7,a8,a9);
  960. }
  961.  
  962. /*
  963. vec_t InventoryRotationX = *(vec_t*)0x7BAF970;
  964. vec_t InventoryRotationY = *(vec_t*)0x7BAF974;
  965. vec_t InventoryRotationZ = *(vec_t*)0x7BAF978;
  966.  
  967. void cItem::RenderObjectScreenEx(int Type,int Level,int SetOption,int Select,int OnPosition,int NewOption,char OnClick)
  968. {
  969. pRenderObjectScreen(Type,Level,SetOption,Select,OnPosition,NewOption,OnClick);
  970. // ----
  971. vec3_t InventoryRotation;
  972. Vector(InventoryRotationX,InventoryRotationY,InventoryRotationZ,InventoryRotation);
  973. // ----
  974. for(int i=NULL;i<MAX_CUSTOM_ITEMS;i++)
  975. {
  976. if(Type == GET_OBJECT_INDEX(gItem.m_Item[i].Type,gItem.m_Item[i].Index))
  977. {
  978. if(gItem.m_Item[i].InvRotX!=NONE)
  979. {
  980. InventoryRotation[0] = gItem.m_Item[i].InvRotX;
  981. }
  982. if(gItem.m_Item[i].InvRotY!=NONE)
  983. {
  984. InventoryRotation[1] = gItem.m_Item[i].InvRotY;
  985. }
  986. if(gItem.m_Item[i].InvRotZ!=NONE)
  987. {
  988. InventoryRotation[2] = gItem.m_Item[i].InvRotZ;
  989. }
  990. }
  991. }
  992. }
  993. */
  994.  
  995. int cItem::GetEquippedBowTypeEx(int a1)
  996. {
  997. LPCHAR lpChar = &*(OBJCHAR*)a1;
  998. // ----
  999. for(int i=0;i<MAX_CUSTOM_ITEMS;i++)
  1000. {
  1001. if(lpChar->WeaponSecondSlot == GET_OBJECT_INDEX(gItem.m_Item[i].Type,gItem.m_Item[i].Index))
  1002. {
  1003. if(gItem.m_Item[i].IsBowType!=NONE)
  1004. {
  1005. return gItem.m_Item[i].IsBowType; // 1 if Bow
  1006. }
  1007. }
  1008. if(lpChar->WeaponFirstSlot == GET_OBJECT_INDEX(gItem.m_Item[i].Type,gItem.m_Item[i].Index))
  1009. {
  1010. if(gItem.m_Item[i].IsBowType!=NONE)
  1011. {
  1012. return gItem.m_Item[i].IsBowType; // 2 if Crossbow
  1013. }
  1014. }
  1015. }
  1016. // ----
  1017. return pGetEquippedBowType(a1);
  1018. }
  1019.  
  1020. int cItem::CheckItem(DWORD ItemID,BOOL Preview)
  1021. {
  1022. if(Preview)
  1023. {
  1024. ItemID -= ITEM_OFFSET_IN_ARRAY;
  1025. }
  1026. // ----
  1027. for(int i=0;i<MAX_CUSTOM_ITEMS;i++)
  1028. {
  1029. if(ItemID == GET_OBJECT_INDEX(gItem.m_Item[i].Type,gItem.m_Item[i].Index))
  1030. {
  1031. return gItem.m_Item[i].IsBowType;
  1032. }
  1033. }
  1034. // ----
  1035. return 0;
  1036. }
  1037.  
  1038. BOOL bBowRotationSwitcher;
  1039. BOOL bCrossRotationSwitcher;
  1040.  
  1041. #pragma optimize("t",on)
  1042. void MASM cItem::BowRotation()
  1043. {
  1044. static DWORD dwBowRotationPointer;
  1045. static DWORD dwBowRotationBuffer;
  1046. // ----
  1047. static DWORD dwAngleMatrix=0x006B01B5;
  1048. static DWORD dwJumpingRotation=0x004E796F;
  1049. // ----
  1050. bBowRotationSwitcher=FALSE;
  1051. bCrossRotationSwitcher=FALSE;
  1052. // ----
  1053. _asm
  1054. {
  1055. MOV EAX,DWORD PTR SS:[EBP+0x1C]
  1056. MOV dwBowRotationPointer,EAX
  1057. }
  1058. // ----
  1059. if(dwBowRotationPointer>=GET_OBJECT_INDEX(4,8)
  1060. && dwBowRotationPointer<=GET_OBJECT_INDEX(4,14)
  1061. || dwBowRotationPointer==GET_OBJECT_INDEX(4,16)
  1062. || dwBowRotationPointer==GET_OBJECT_INDEX(4,18)
  1063. || dwBowRotationPointer==GET_OBJECT_INDEX(4,19))
  1064. {
  1065. bCrossRotationSwitcher=TRUE;
  1066. }
  1067. else if(dwBowRotationPointer>=GET_OBJECT_INDEX(4,0)
  1068. && dwBowRotationPointer<=GET_OBJECT_INDEX(4,6)
  1069. || dwBowRotationPointer==GET_OBJECT_INDEX(4,17)
  1070. || dwBowRotationPointer>=GET_OBJECT_INDEX(4,20)
  1071. && dwBowRotationPointer<=GET_OBJECT_INDEX(4,23)
  1072. || dwBowRotationPointer==GET_OBJECT_INDEX(4,15)
  1073. || dwBowRotationPointer==GET_OBJECT_INDEX(4,7))
  1074. {
  1075. bBowRotationSwitcher=TRUE;
  1076. }
  1077. if(gItem.CheckItem(dwBowRotationPointer,FALSE)==1)
  1078. {
  1079. bBowRotationSwitcher=TRUE;
  1080. }
  1081. if(gItem.CheckItem(dwBowRotationPointer,FALSE)==2)
  1082. {
  1083. bCrossRotationSwitcher=TRUE;
  1084. }
  1085. // ----
  1086. if(bBowRotationSwitcher==TRUE)
  1087. {
  1088. _asm
  1089. {
  1090. MOV DWORD PTR SS:[EBP-0x0B0],0x428C0000
  1091. MOV DWORD PTR SS:[EBP-0x0AC],0x0
  1092. MOV DWORD PTR SS:[EBP-0x0A8],0x42B40000
  1093. LEA ECX,[EBP-0x0A4]
  1094. PUSH ECX
  1095. LEA EDX,[EBP-0x0B0]
  1096. PUSH EDX
  1097. CALL dwAngleMatrix
  1098. ADD ESP,0x8
  1099. MOV DWORD PTR SS:[EBP-0x98],0xC1200000
  1100. MOV DWORD PTR SS:[EBP-0x88],0x41000000
  1101. MOV DWORD PTR SS:[EBP-0x78],0x42200000
  1102. JMP dwJumpingRotation
  1103. }
  1104. }
  1105. // ----
  1106. if(bCrossRotationSwitcher==TRUE)
  1107. {
  1108. _asm
  1109. {
  1110. MOV DWORD PTR SS:[EBP-0x0B0],0x0
  1111. MOV DWORD PTR SS:[EBP-0x0AC],0x41A00000
  1112. MOV DWORD PTR SS:[EBP-0x0A8],0x43340000
  1113. LEA ECX,[EBP-0x0A4]
  1114. PUSH ECX
  1115. LEA EDX,[EBP-0x0B0]
  1116. PUSH EDX
  1117. CALL dwAngleMatrix
  1118. ADD ESP,0x8
  1119. MOV DWORD PTR SS:[EBP-0x98],0xC1200000
  1120. MOV DWORD PTR SS:[EBP-0x88],0x41000000
  1121. MOV DWORD PTR SS:[EBP-0x78],0x42200000
  1122. JMP dwJumpingRotation
  1123. }
  1124. }
  1125. else
  1126. {
  1127. _asm
  1128. {
  1129. MOV dwBowRotationBuffer,0x004E7652
  1130. JMP dwBowRotationBuffer
  1131. }
  1132. }
  1133. }
  1134. #pragma optimize("t",off)
  1135.  
  1136. BOOL bBowPositionSwitcher;
  1137. BOOL bPetPositionSwitcher;
  1138.  
  1139. #pragma optimize("t",on)
  1140. void MASM cItem::BowPosition()
  1141. {
  1142. static DWORD dwBowPositionPointer;
  1143. static DWORD dwBowPositionBuffer;
  1144. // ----
  1145. static DWORD dwBowPositionJump=0x0059A5FC;
  1146. // ----
  1147. bBowPositionSwitcher=FALSE;
  1148. // ----
  1149. _asm
  1150. {
  1151. MOV dwBowPositionPointer,ESI
  1152. }
  1153. // ----
  1154. if(dwBowPositionPointer==GET_OBJECT_INDEX(4,23))
  1155. {
  1156. bBowPositionSwitcher=TRUE;
  1157. }
  1158. // ----
  1159. if(gItem.CheckItem(dwBowPositionPointer,FALSE)==1)
  1160. {
  1161. bBowPositionSwitcher=TRUE;
  1162. }
  1163. // ----
  1164. if(bBowPositionSwitcher==TRUE)
  1165. {
  1166. _asm
  1167. {
  1168. FLD DWORD PTR SS:[ESP+0x14]
  1169. FADD DWORD PTR DS:[0x864414] // FLOAT 0.02000000
  1170. MOV DWORD PTR DS:[0x7BAF970],0x43340000
  1171. MOV DWORD PTR DS:[0x7BAF974],0x42B40000
  1172. MOV DWORD PTR DS:[0x7BAF978],0x41000000
  1173. FSTP DWORD PTR SS:[ESP+0x14]
  1174. FLD DWORD PTR SS:[ESP+0x18]
  1175. FADD DWORD PTR DS:[0x864414] // FLOAT 0.02000000
  1176. FSTP DWORD PTR SS:[ESP+0x18]
  1177. // ----
  1178. FLD DWORD PTR SS:[ESP+0x14]
  1179. FSUB DWORD PTR DS:[0x8641A0] // FLOAT 0.1000000
  1180. MOV DWORD PTR DS:[0x7BAF970],0x43340000
  1181. MOV DWORD PTR DS:[0x7BAF974],0xC2B40000
  1182. FSTP DWORD PTR SS:[ESP+0x14]
  1183. FLD DWORD PTR SS:[ESP+0x18]
  1184. FADD DWORD PTR DS:[0x864654] // FLOAT 0.08000000
  1185. FSTP DWORD PTR SS:[ESP+0x18]
  1186. JMP SetPositionZ
  1187. MOV DWORD PTR DS:[0x7BAF970],0
  1188. MOV DWORD PTR DS:[0x7BAF974],0x43870000
  1189. SetPositionZ:
  1190. MOV DWORD PTR DS:[0x7BAF978],0x41700000
  1191. // ----
  1192. JMP dwBowPositionJump
  1193. }
  1194. }
  1195. // ----
  1196. _asm
  1197. {
  1198. MOV dwBowPositionBuffer,0x00599499
  1199. JMP dwBowPositionBuffer
  1200. }
  1201. }
  1202. #pragma optimize("t",off)
  1203.  
  1204. BOOL bBowAngleSwitcher;
  1205.  
  1206. #pragma optimize("t",on)
  1207. void MASM cItem::BowAngle()
  1208. {
  1209. static DWORD dwBowAnglePointer;
  1210. static DWORD dwBowAngleBuffer;
  1211. // ----
  1212. bBowAngleSwitcher=FALSE;
  1213. // ----
  1214. _asm
  1215. {
  1216. MOV EAX,DWORD PTR SS:[EBP+0x1C]
  1217. MOV dwBowAnglePointer,EAX
  1218. }
  1219. // ----
  1220. if(dwBowAnglePointer == GET_OBJECT_INDEX(4,20))
  1221. {
  1222. bBowAngleSwitcher=TRUE;
  1223. }
  1224. if(gItem.CheckItem(dwBowAnglePointer,FALSE)==1)
  1225. {
  1226. bBowAngleSwitcher=TRUE;
  1227. }
  1228. // ----
  1229. if(bBowAngleSwitcher==TRUE)
  1230. {
  1231. _asm
  1232. {
  1233. MOV dwBowAngleBuffer,0x004E7A0A
  1234. JMP dwBowAngleBuffer
  1235. }
  1236. }
  1237. else
  1238. {
  1239. _asm
  1240. {
  1241. MOV dwBowAngleBuffer,0x004E799B
  1242. JMP dwBowAngleBuffer
  1243. }
  1244. }
  1245. }
  1246. #pragma optimize("t",off)
  1247.  
  1248. void cItem::InitBowRotation()
  1249. {
  1250. gToolKit.SetRange((LPVOID)0x004E75C8,138,ASM::NOP);
  1251. gToolKit.SetJmp((LPVOID)0x004E75C8,this->BowRotation);
  1252. }
  1253.  
  1254. void cItem::InitBowPosition()
  1255. {
  1256. gToolKit.SetRange((LPVOID)0x0059948D,12,ASM::NOP);
  1257. gToolKit.SetJmp((LPVOID)0x0059948D,this->BowPosition);
  1258. }
  1259.  
  1260. void cItem::InitBowAngle()
  1261. {
  1262. gToolKit.SetRange((LPVOID)0x004E7992,9,ASM::NOP);
  1263. gToolKit.SetJmp((LPVOID)0x004E7992,this->BowAngle);
  1264. }
  1265.  
  1266. void cItem::PartColorEx(int ItemID,float PosX,float PosY,vec3_t Color,bool Mode)
  1267. {
  1268. pPartObjectColor(ItemID,PosX,PosY,Color,Mode);
  1269.  
  1270. for(int i=0;i<MAX_CUSTOM_ITEMS;i++)
  1271. {
  1272. if(ItemID == GET_OBJECT_INDEX(gItem.m_Item[i].Type,gItem.m_Item[i].Index))
  1273. {
  1274. Vector(gItem.m_Item[i].R,gItem.m_Item[i].G,gItem.m_Item[i].B,Color);
  1275. }
  1276. }
  1277. }
  1278.  
  1279. void cItem::PartColor2Ex(int ItemID,float PosX,float PosY,vec3_t Color)
  1280. {
  1281. pPartObjectColor2(ItemID,PosX,PosY,Color);
  1282.  
  1283. for(int i=0;i<MAX_CUSTOM_ITEMS;i++)
  1284. {
  1285. if(ItemID == GET_OBJECT_INDEX(gItem.m_Item[i].Type,gItem.m_Item[i].Index))
  1286. {
  1287. Vector(gItem.m_Item[i].R2,gItem.m_Item[i].G2,gItem.m_Item[i].B2,Color);
  1288. }
  1289. }
  1290. }
  1291.  
  1292. void cItem::Load()
  1293. {
  1294. if(gEncode.Load(XVT_ITEM_FILE))
  1295. {
  1296. WZSMDToken Token = gEncode.GetToken();
  1297. // ----
  1298. if((Token==END)||(gEncode.GetInt()!=NULL))
  1299. {
  1300. MessageBox(NULL,XVT_MSG_ITEM_MODEL_BAD,MSG_HEAD_ERROR,MB_OK);
  1301. ExitProcess(NULL);
  1302. }
  1303. // ----
  1304. this->Init();
  1305. // ----
  1306. for(int i=0;i<MAX_CUSTOM_ITEMS;i++)
  1307. {
  1308. Token = gEncode.GetToken();
  1309. // ----
  1310. if(Token==END||lstrcmpi(gEncode.GetString(),"end")==NULL)
  1311. {
  1312. break;
  1313. }
  1314. // ----
  1315. this->m_Item[i].Type = gEncode.GetInt();
  1316. // ----
  1317. Token = gEncode.GetToken();
  1318. this->m_Item[i].Index = gEncode.GetInt();
  1319. // ----
  1320. Token = gEncode.GetToken();
  1321. memcpy(this->m_Item[i].Name,gEncode.GetString(),sizeof(this->m_Item[i].Name));
  1322. // ----
  1323. Token = gEncode.GetToken();
  1324. this->m_Item[i].RotX = gEncode.GetFloat();
  1325. // ----
  1326. Token = gEncode.GetToken();
  1327. this->m_Item[i].RotY = gEncode.GetFloat();
  1328. // ----
  1329. Token = gEncode.GetToken();
  1330. this->m_Item[i].RotZ = gEncode.GetFloat();
  1331. // ----
  1332. Token = gEncode.GetToken();
  1333. this->m_Item[i].Size = gEncode.GetFloat();
  1334. // ----
  1335. Token = gEncode.GetToken();
  1336. this->m_Item[i].IsSocket = gEncode.GetInt();
  1337. // ----
  1338. Token = gEncode.GetToken();
  1339. this->m_Item[i].PosX = gEncode.GetFloat();
  1340. // ----
  1341. Token = gEncode.GetToken();
  1342. this->m_Item[i].PosY = gEncode.GetFloat();
  1343. // ----
  1344. Token = gEncode.GetToken();
  1345. this->m_Item[i].IsBowType = gEncode.GetInt();
  1346. // ----
  1347. Token = gEncode.GetToken();
  1348. this->m_Item[i].R = gEncode.GetFloat();
  1349. // ----
  1350. Token = gEncode.GetToken();
  1351. this->m_Item[i].G = gEncode.GetFloat();
  1352. // ----
  1353. Token = gEncode.GetToken();
  1354. this->m_Item[i].B = gEncode.GetFloat();
  1355. // ----
  1356. Token = gEncode.GetToken();
  1357. this->m_Item[i].R2 = gEncode.GetFloat();
  1358. // ----
  1359. Token = gEncode.GetToken();
  1360. this->m_Item[i].G2 = gEncode.GetFloat();
  1361. // ----
  1362. Token = gEncode.GetToken();
  1363. this->m_Item[i].B2 = gEncode.GetFloat();
  1364. }
  1365. // ----
  1366. gEncode.Close();
  1367. // ----
  1368. gToolKit.SetOp((LPVOID)oInitModelData_Call,this->ModelEx,ASM::CALL);
  1369. gToolKit.SetOp((LPVOID)oInitTextureData_Call,this->TextureEx,ASM::CALL);
  1370. // ----
  1371. gToolKit.SetOp((LPVOID)oItemAngle_Call01,this->AngleEx,ASM::CALL);
  1372. gToolKit.SetOp((LPVOID)oItemAngle_Call02,this->AngleEx,ASM::CALL);
  1373. // ----
  1374. gToolKit.SetOp((LPVOID)oItemToolTip_Call01,this->ToolTipEx,ASM::CALL);
  1375. gToolKit.SetOp((LPVOID)oItemToolTip_Call02,this->ToolTipEx,ASM::CALL);
  1376. gToolKit.SetOp((LPVOID)oItemToolTip_Call03,this->ToolTipEx,ASM::CALL);
  1377. gToolKit.SetOp((LPVOID)oItemToolTip_Call04,this->ToolTipEx,ASM::CALL);
  1378. gToolKit.SetOp((LPVOID)oItemToolTip_Call05,this->ToolTipEx,ASM::CALL);
  1379. gToolKit.SetOp((LPVOID)oItemToolTip_Call06,this->ToolTipEx,ASM::CALL);
  1380. gToolKit.SetOp((LPVOID)oItemToolTip_Call07,this->ToolTipEx,ASM::CALL);
  1381. // ----
  1382. gToolKit.SetOp((LPVOID)oIsSocketItem_Call01,this->SocketEx,ASM::CALL);
  1383. gToolKit.SetOp((LPVOID)oIsSocketItem_Call02,this->SocketEx,ASM::CALL);
  1384. // ----
  1385. gToolKit.SetOp((LPVOID)oRenderItem3D_Call01,this->InventoryEx,ASM::CALL);
  1386. gToolKit.SetOp((LPVOID)oRenderItem3D_Call02,this->InventoryEx,ASM::CALL);
  1387. gToolKit.SetOp((LPVOID)oRenderItem3D_Call03,this->InventoryEx,ASM::CALL);
  1388. gToolKit.SetOp((LPVOID)oRenderItem3D_Call04,this->InventoryEx,ASM::CALL);
  1389. gToolKit.SetOp((LPVOID)oRenderItem3D_Call05,this->InventoryEx,ASM::CALL);
  1390. gToolKit.SetOp((LPVOID)oRenderItem3D_Call06,this->InventoryEx,ASM::CALL);
  1391. gToolKit.SetOp((LPVOID)oRenderItem3D_Call07,this->InventoryEx,ASM::CALL);
  1392. gToolKit.SetOp((LPVOID)oRenderItem3D_Call08,this->InventoryEx,ASM::CALL);
  1393. gToolKit.SetOp((LPVOID)oRenderItem3D_Call09,this->InventoryEx,ASM::CALL);
  1394. gToolKit.SetOp((LPVOID)oRenderItem3D_Call10,this->InventoryEx,ASM::CALL);
  1395. gToolKit.SetOp((LPVOID)oRenderItem3D_Call11,this->InventoryEx,ASM::CALL);
  1396. gToolKit.SetOp((LPVOID)oRenderItem3D_Call12,this->InventoryEx,ASM::CALL);
  1397. gToolKit.SetOp((LPVOID)oRenderItem3D_Call13,this->InventoryEx,ASM::CALL);
  1398. gToolKit.SetOp((LPVOID)oRenderItem3D_Call14,this->InventoryEx,ASM::CALL);
  1399. gToolKit.SetOp((LPVOID)oRenderItem3D_Call15,this->InventoryEx,ASM::CALL);
  1400. gToolKit.SetOp((LPVOID)oRenderItem3D_Call16,this->InventoryEx,ASM::CALL);
  1401. gToolKit.SetOp((LPVOID)oRenderItem3D_Call17,this->InventoryEx,ASM::CALL);
  1402. gToolKit.SetOp((LPVOID)oRenderItem3D_Call18,this->InventoryEx,ASM::CALL);
  1403. gToolKit.SetOp((LPVOID)oRenderItem3D_Call19,this->InventoryEx,ASM::CALL);
  1404. gToolKit.SetOp((LPVOID)oRenderItem3D_Call20,this->InventoryEx,ASM::CALL);
  1405. gToolKit.SetOp((LPVOID)oRenderItem3D_Call21,this->InventoryEx,ASM::CALL);
  1406. gToolKit.SetOp((LPVOID)oRenderItem3D_Call22,this->InventoryEx,ASM::CALL);
  1407. gToolKit.SetOp((LPVOID)oRenderItem3D_Call23,this->InventoryEx,ASM::CALL);
  1408. gToolKit.SetOp((LPVOID)oRenderItem3D_Call24,this->InventoryEx,ASM::CALL);
  1409. // ----
  1410. /*
  1411. gToolKit.SetOp((LPVOID)oRenderObjectScreen_Call01,this->RenderObjectScreenEx,ASM::CALL);
  1412. gToolKit.SetOp((LPVOID)oRenderObjectScreen_Call02,this->RenderObjectScreenEx,ASM::CALL);
  1413. gToolKit.SetOp((LPVOID)oRenderObjectScreen_Call03,this->RenderObjectScreenEx,ASM::CALL);
  1414. gToolKit.SetOp((LPVOID)oRenderObjectScreen_Call04,this->RenderObjectScreenEx,ASM::CALL);
  1415. gToolKit.SetOp((LPVOID)oRenderObjectScreen_Call05,this->RenderObjectScreenEx,ASM::CALL);
  1416. gToolKit.SetOp((LPVOID)oRenderObjectScreen_Call06,this->RenderObjectScreenEx,ASM::CALL);
  1417. gToolKit.SetOp((LPVOID)oRenderObjectScreen_Call07,this->RenderObjectScreenEx,ASM::CALL);
  1418. gToolKit.SetOp((LPVOID)oRenderObjectScreen_Call08,this->RenderObjectScreenEx,ASM::CALL);
  1419. gToolKit.SetOp((LPVOID)oRenderObjectScreen_Call09,this->RenderObjectScreenEx,ASM::CALL);
  1420. gToolKit.SetOp((LPVOID)oRenderObjectScreen_Call10,this->RenderObjectScreenEx,ASM::CALL);
  1421. gToolKit.SetOp((LPVOID)oRenderObjectScreen_Call11,this->RenderObjectScreenEx,ASM::CALL);
  1422. gToolKit.SetOp((LPVOID)oRenderObjectScreen_Call12,this->RenderObjectScreenEx,ASM::CALL);
  1423. gToolKit.SetOp((LPVOID)oRenderObjectScreen_Call13,this->RenderObjectScreenEx,ASM::CALL);
  1424. gToolKit.SetOp((LPVOID)oRenderObjectScreen_Call14,this->RenderObjectScreenEx,ASM::CALL);
  1425. gToolKit.SetOp((LPVOID)oRenderObjectScreen_Call15,this->RenderObjectScreenEx,ASM::CALL);
  1426. gToolKit.SetOp((LPVOID)oRenderObjectScreen_Call16,this->RenderObjectScreenEx,ASM::CALL);
  1427. gToolKit.SetOp((LPVOID)oRenderObjectScreen_Call17,this->RenderObjectScreenEx,ASM::CALL);
  1428. gToolKit.SetOp((LPVOID)oRenderObjectScreen_Call18,this->RenderObjectScreenEx,ASM::CALL);
  1429. gToolKit.SetOp((LPVOID)oRenderObjectScreen_Call19,this->RenderObjectScreenEx,ASM::CALL);
  1430. gToolKit.SetOp((LPVOID)oRenderObjectScreen_Call20,this->RenderObjectScreenEx,ASM::CALL);
  1431. gToolKit.SetOp((LPVOID)oRenderObjectScreen_Call21,this->RenderObjectScreenEx,ASM::CALL);
  1432. gToolKit.SetOp((LPVOID)oRenderObjectScreen_Call22,this->RenderObjectScreenEx,ASM::CALL);
  1433. gToolKit.SetOp((LPVOID)oRenderObjectScreen_Call23,this->RenderObjectScreenEx,ASM::CALL);
  1434. gToolKit.SetOp((LPVOID)oRenderObjectScreen_Call24,this->RenderObjectScreenEx,ASM::CALL);
  1435. gToolKit.SetOp((LPVOID)oRenderObjectScreen_Call25,this->RenderObjectScreenEx,ASM::CALL);
  1436. gToolKit.SetOp((LPVOID)oRenderObjectScreen_Call26,this->RenderObjectScreenEx,ASM::CALL);
  1437. gToolKit.SetOp((LPVOID)oRenderObjectScreen_Call27,this->RenderObjectScreenEx,ASM::CALL);
  1438. gToolKit.SetOp((LPVOID)oRenderObjectScreen_Call28,this->RenderObjectScreenEx,ASM::CALL);
  1439. gToolKit.SetOp((LPVOID)oRenderObjectScreen_Call29,this->RenderObjectScreenEx,ASM::CALL);
  1440. gToolKit.SetOp((LPVOID)oRenderObjectScreen_Call30,this->RenderObjectScreenEx,ASM::CALL);
  1441. gToolKit.SetOp((LPVOID)oRenderObjectScreen_Call31,this->RenderObjectScreenEx,ASM::CALL);
  1442. gToolKit.SetOp((LPVOID)oRenderObjectScreen_Call32,this->RenderObjectScreenEx,ASM::CALL);
  1443. gToolKit.SetOp((LPVOID)oRenderObjectScreen_Call33,this->RenderObjectScreenEx,ASM::CALL);
  1444. gToolKit.SetOp((LPVOID)oRenderObjectScreen_Call34,this->RenderObjectScreenEx,ASM::CALL);
  1445. gToolKit.SetOp((LPVOID)oRenderObjectScreen_Call35,this->RenderObjectScreenEx,ASM::CALL);
  1446. */
  1447. // ----
  1448. gToolKit.SetOp((LPVOID)oGetEquippedBowType_Call01,this->GetEquippedBowTypeEx,ASM::CALL);
  1449. gToolKit.SetOp((LPVOID)oGetEquippedBowType_Call02,this->GetEquippedBowTypeEx,ASM::CALL);
  1450. gToolKit.SetOp((LPVOID)oGetEquippedBowType_Call03,this->GetEquippedBowTypeEx,ASM::CALL);
  1451. gToolKit.SetOp((LPVOID)oGetEquippedBowType_Call04,this->GetEquippedBowTypeEx,ASM::CALL);
  1452. gToolKit.SetOp((LPVOID)oGetEquippedBowType_Call05,this->GetEquippedBowTypeEx,ASM::CALL);
  1453. gToolKit.SetOp((LPVOID)oGetEquippedBowType_Call06,this->GetEquippedBowTypeEx,ASM::CALL);
  1454. gToolKit.SetOp((LPVOID)oGetEquippedBowType_Call07,this->GetEquippedBowTypeEx,ASM::CALL);
  1455. gToolKit.SetOp((LPVOID)oGetEquippedBowType_Call08,this->GetEquippedBowTypeEx,ASM::CALL);
  1456. gToolKit.SetOp((LPVOID)oGetEquippedBowType_Call09,this->GetEquippedBowTypeEx,ASM::CALL);
  1457. gToolKit.SetOp((LPVOID)oGetEquippedBowType_Call10,this->GetEquippedBowTypeEx,ASM::CALL);
  1458. gToolKit.SetOp((LPVOID)oGetEquippedBowType_Call11,this->GetEquippedBowTypeEx,ASM::CALL);
  1459. gToolKit.SetOp((LPVOID)oGetEquippedBowType_Call12,this->GetEquippedBowTypeEx,ASM::CALL);
  1460. gToolKit.SetOp((LPVOID)oGetEquippedBowType_Call13,this->GetEquippedBowTypeEx,ASM::CALL);
  1461. gToolKit.SetOp((LPVOID)oGetEquippedBowType_Call14,this->GetEquippedBowTypeEx,ASM::CALL);
  1462. gToolKit.SetOp((LPVOID)oGetEquippedBowType_Call15,this->GetEquippedBowTypeEx,ASM::CALL);
  1463. gToolKit.SetOp((LPVOID)oGetEquippedBowType_Call16,this->GetEquippedBowTypeEx,ASM::CALL);
  1464. gToolKit.SetOp((LPVOID)oGetEquippedBowType_Call17,this->GetEquippedBowTypeEx,ASM::CALL);
  1465. gToolKit.SetOp((LPVOID)oGetEquippedBowType_Call18,this->GetEquippedBowTypeEx,ASM::CALL);
  1466. gToolKit.SetOp((LPVOID)oGetEquippedBowType_Call19,this->GetEquippedBowTypeEx,ASM::CALL);
  1467. gToolKit.SetOp((LPVOID)oGetEquippedBowType_Call20,this->GetEquippedBowTypeEx,ASM::CALL);
  1468. gToolKit.SetOp((LPVOID)oGetEquippedBowType_Call21,this->GetEquippedBowTypeEx,ASM::CALL);
  1469. gToolKit.SetOp((LPVOID)oGetEquippedBowType_Call22,this->GetEquippedBowTypeEx,ASM::CALL);
  1470. gToolKit.SetOp((LPVOID)oGetEquippedBowType_Call23,this->GetEquippedBowTypeEx,ASM::CALL);
  1471. gToolKit.SetOp((LPVOID)oGetEquippedBowType_Call24,this->GetEquippedBowTypeEx,ASM::CALL);
  1472. gToolKit.SetOp((LPVOID)oGetEquippedBowType_Call25,this->GetEquippedBowTypeEx,ASM::CALL);
  1473. // ----
  1474. // -> ASM
  1475. // ----
  1476. this->InitBundles();
  1477. this->InitDrawNumber();
  1478. this->InitBowRotation();
  1479. this->InitBowPosition();
  1480. this->InitBowAngle();
  1481. // ----
  1482. gToolKit.SetOp((LPVOID)oPartObjectColor_Call01,this->PartColorEx,ASM::CALL);
  1483. gToolKit.SetOp((LPVOID)oPartObjectColor_Call02,this->PartColorEx,ASM::CALL);
  1484. // ----
  1485. gToolKit.SetOp((LPVOID)oPartObjectColor2_Call,this->PartColor2Ex,ASM::CALL);
  1486. }
  1487. else
  1488. {
  1489. MessageBox(NULL,XVT_MSG_ITEM_MODEL_NOT_FOUND,MSG_HEAD_ERROR,MB_OK);
  1490. ExitProcess(NULL);
  1491. }
  1492. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement