Advertisement
Guest User

Untitled

a guest
Apr 26th, 2019
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 32.51 KB | None | 0 0
  1. #pragma once
  2.  
  3. #include "../gamelib/RaceData.h"
  4. #include "../gamelib/ActorInstance.h"
  5. #ifdef ENABLE_SASH_SYSTEM
  6. #include "../eterlib/GrpObjectInstance.h"
  7. #endif
  8.  
  9. #include "AffectFlagContainer.h"
  10.  
  11. class CInstanceBase
  12. {
  13. public:
  14. struct SCreateData
  15. {
  16. BYTE m_bType;
  17. DWORD m_dwStateFlags;
  18. DWORD m_dwEmpireID;
  19. DWORD m_dwGuildID;
  20. DWORD m_dwLevel;
  21. DWORD m_dwVID;
  22. DWORD m_dwRace;
  23. DWORD m_dwMovSpd;
  24. DWORD m_dwAtkSpd;
  25. LONG m_lPosX;
  26. LONG m_lPosY;
  27. FLOAT m_fRot;
  28. DWORD m_dwArmor;
  29. DWORD m_dwWeapon;
  30. DWORD m_dwHair;
  31. #ifdef ENABLE_SASH_SYSTEM
  32. DWORD m_dwSash;
  33. #endif
  34. DWORD m_dwMountVnum;
  35.  
  36. short m_sAlignment;
  37. BYTE m_byPKMode;
  38. CAffectFlagContainer m_kAffectFlags;
  39.  
  40. std::string m_stName;
  41.  
  42. bool m_isMain;
  43. };
  44.  
  45. public:
  46. typedef DWORD TType;
  47.  
  48. enum EDirection
  49. {
  50. DIR_NORTH,
  51. DIR_NORTHEAST,
  52. DIR_EAST,
  53. DIR_SOUTHEAST,
  54. DIR_SOUTH,
  55. DIR_SOUTHWEST,
  56. DIR_WEST,
  57. DIR_NORTHWEST,
  58. DIR_MAX_NUM,
  59. };
  60.  
  61. enum
  62. {
  63. FUNC_WAIT,
  64. FUNC_MOVE,
  65. FUNC_ATTACK,
  66. FUNC_COMBO,
  67. FUNC_MOB_SKILL,
  68. FUNC_EMOTION,
  69. FUNC_SKILL = 0x80,
  70. };
  71.  
  72. enum
  73. {
  74. AFFECT_YMIR,
  75. AFFECT_INVISIBILITY,
  76. AFFECT_SPAWN,
  77.  
  78. AFFECT_POISON,
  79. AFFECT_SLOW,
  80. AFFECT_STUN,
  81.  
  82. AFFECT_DUNGEON_READY, // ´řŔüżˇĽ­ ÁŘşń »óĹÂ
  83. AFFECT_SHOW_ALWAYS, // AFFECT_DUNGEON_UNIQUE żˇĽ­ şŻ°ć(Ŭ¶óŔĚľđĆ®żˇĽ­ ÄøµµÇÁöľĘŔ˝)
  84.  
  85. AFFECT_BUILDING_CONSTRUCTION_SMALL,
  86. AFFECT_BUILDING_CONSTRUCTION_LARGE,
  87. AFFECT_BUILDING_UPGRADE,
  88.  
  89. AFFECT_MOV_SPEED_POTION, // 11
  90. AFFECT_ATT_SPEED_POTION, // 12
  91.  
  92. AFFECT_FISH_MIND, // 13
  93.  
  94. AFFECT_JEONGWI, // 14 Ŕü±ÍČĄ
  95. AFFECT_GEOMGYEONG, // 15 °Ë°ć
  96. AFFECT_CHEONGEUN, // 16 õ±ŮĂß
  97. AFFECT_GYEONGGONG, // 17 °ć°řĽú
  98. AFFECT_EUNHYEONG, // 18 ŔşÇüąý
  99. AFFECT_GWIGEOM, // 19 ±Í°Ë
  100. AFFECT_GONGPO, // 20 °řĆ÷
  101. AFFECT_JUMAGAP, // 21 ÁÖ¸¶°©
  102. AFFECT_HOSIN, // 22 ČŁ˝Ĺ
  103. AFFECT_BOHO, // 23 ş¸ČŁ
  104. AFFECT_KWAESOK, // 24 ÄčĽÓ
  105. AFFECT_HEUKSIN, // 25 Čć˝ĹĽöČŁ
  106. AFFECT_MUYEONG, // 26 ą«żµÁř
  107. AFFECT_REVIVE_INVISIBILITY, // 27 şÎČ° ą«Ŕű
  108. AFFECT_FIRE, // 28 ÁöĽÓ şŇ
  109. AFFECT_GICHEON, // 29 ±âõ ´ë°ř
  110. AFFECT_JEUNGRYEOK, // 30 Áő·ÂĽú
  111. AFFECT_DASH, // 31 ´ë˝¬
  112. AFFECT_PABEOP, // 32 ĆÄąýĽú
  113. AFFECT_FALLEN_CHEONGEUN, // 33 ´Ůżî ±×·ąŔ̵ĺ õ±ŮĂß
  114. AFFECT_POLYMORPH, // 34 Ćú¸®¸đÇÁ
  115. AFFECT_WAR_FLAG1, // 35
  116. AFFECT_WAR_FLAG2, // 36
  117. AFFECT_WAR_FLAG3, // 37
  118. AFFECT_CHINA_FIREWORK, // 38
  119. AFFECT_PREMIUM_SILVER,
  120. AFFECT_PREMIUM_GOLD,
  121. AFFECT_RAMADAN_RING, // 41 ĂĘ˝Â´Ţ ąÝÁö Âřżë Affect
  122.  
  123. AFFECT_NUM = 64,
  124.  
  125. AFFECT_HWAYEOM = AFFECT_GEOMGYEONG,
  126. };
  127.  
  128. enum
  129. {
  130. NEW_AFFECT_MOV_SPEED = 200,
  131. NEW_AFFECT_ATT_SPEED,
  132. NEW_AFFECT_ATT_GRADE,
  133. NEW_AFFECT_INVISIBILITY,
  134. NEW_AFFECT_STR,
  135. NEW_AFFECT_DEX, // 205
  136. NEW_AFFECT_CON,
  137. NEW_AFFECT_INT,
  138. NEW_AFFECT_FISH_MIND_PILL,
  139.  
  140. NEW_AFFECT_POISON,
  141. NEW_AFFECT_STUN, // 210
  142. NEW_AFFECT_SLOW,
  143. NEW_AFFECT_DUNGEON_READY,
  144. NEW_AFFECT_DUNGEON_UNIQUE,
  145.  
  146. NEW_AFFECT_BUILDING,
  147. NEW_AFFECT_REVIVE_INVISIBLE, // 215
  148. NEW_AFFECT_FIRE,
  149. NEW_AFFECT_CAST_SPEED,
  150. NEW_AFFECT_HP_RECOVER_CONTINUE,
  151. NEW_AFFECT_SP_RECOVER_CONTINUE,
  152.  
  153. NEW_AFFECT_POLYMORPH, // 220
  154. NEW_AFFECT_MOUNT,
  155.  
  156. NEW_AFFECT_WAR_FLAG, // 222
  157.  
  158. NEW_AFFECT_BLOCK_CHAT, // 223
  159. NEW_AFFECT_CHINA_FIREWORK,
  160.  
  161. NEW_AFFECT_BOW_DISTANCE, // 225
  162.  
  163. NEW_AFFECT_EXP_BONUS = 500, // °ćÇčŔÇ ąÝÁö
  164. NEW_AFFECT_ITEM_BONUS = 501, // µµµĎŔÇ Ŕĺ°©
  165. NEW_AFFECT_SAFEBOX = 502, // PREMIUM_SAFEBOX,
  166. NEW_AFFECT_AUTOLOOT = 503, // PREMIUM_AUTOLOOT,
  167. NEW_AFFECT_FISH_MIND = 504, // PREMIUM_FISH_MIND,
  168. NEW_AFFECT_MARRIAGE_FAST = 505, // żřľÓŔÇ ±ęĹĐ (±Ý˝˝),
  169. NEW_AFFECT_GOLD_BONUS = 506,
  170.  
  171. NEW_AFFECT_MALL = 510, // ¸ô ľĆŔĚĹŰ żˇĆĺĆ®
  172. NEW_AFFECT_NO_DEATH_PENALTY = 511, // żë˝ĹŔÇ °ˇČŁ (°ćÇčġ ĆĐłÎĆĽ¸¦ ÇŃąř ¸·ľĆÁŘ´Ů)
  173. NEW_AFFECT_SKILL_BOOK_BONUS = 512, // Ľ±ŔÎŔÇ ±łČĆ (ĂĄ Ľö·Ă Ľş°ř Č®·üŔĚ 50% Áő°ˇ)
  174. NEW_AFFECT_SKILL_BOOK_NO_DELAY = 513, // ÁÖľČ ĽúĽ­ (ĂĄ Ľö·Ă µô·ąŔĚ ľřŔ˝)
  175.  
  176. NEW_AFFECT_EXP_BONUS_EURO_FREE = 516, // °ćÇčŔÇ ąÝÁö (ŔŻ·´ ąöŔü 14 ·ąş§ ŔĚÇĎ ±âş» Čż°ú)
  177. NEW_AFFECT_EXP_BONUS_EURO_FREE_UNDER_15 = 517,
  178.  
  179. NEW_AFFECT_AUTO_HP_RECOVERY = 534, // ŔÚµżą°ľŕ HP
  180. NEW_AFFECT_AUTO_SP_RECOVERY = 535, // ŔÚµżą°ľŕ SP
  181.  
  182. NEW_AFFECT_DRAGON_SOUL_QUALIFIED = 540,
  183. NEW_AFFECT_DRAGON_SOUL_DECK1 = 541,
  184. NEW_AFFECT_DRAGON_SOUL_DECK2 = 542,
  185.  
  186. NEW_AFFECT_RAMADAN_ABILITY = 300,
  187. NEW_AFFECT_RAMADAN_RING = 301, // ¶ó¸¶´Ü ŔĚşĄĆ®żë ĆŻĽöľĆŔĚĹŰ Ăʽ´ŢŔÇ ąÝÁö Âřżë ŔŻą«
  188.  
  189. NEW_AFFECT_NOG_POCKET_ABILITY = 302,
  190.  
  191. #ifdef ENABLE_NEW_AFFECT_POTION
  192. AFFECT_POTION_1 = 303,
  193. AFFECT_POTION_2 = 304,
  194. AFFECT_POTION_3 = 305,
  195. AFFECT_POTION_4 = 306,
  196. AFFECT_POTION_5 = 307,
  197. AFFECT_POTION_6 = 308,
  198. AFFECT_POTION_7 = 309,
  199. AFFECT_POTION_8 = 310,
  200. AFFECT_POTION_9 = 311,
  201. AFFECT_POTION_10 = 312,
  202. #endif
  203.  
  204. NEW_AFFECT_QUEST_START_IDX = 1000,
  205. };
  206.  
  207. enum
  208. {
  209. STONE_SMOKE1 = 0, // 99%
  210. STONE_SMOKE2 = 1, // 85%
  211. STONE_SMOKE3 = 2, // 80%
  212. STONE_SMOKE4 = 3, // 60%
  213. STONE_SMOKE5 = 4, // 45%
  214. STONE_SMOKE6 = 5, // 40%
  215. STONE_SMOKE7 = 6, // 20%
  216. STONE_SMOKE8 = 7, // 10%
  217. STONE_SMOKE_NUM = 4,
  218. };
  219.  
  220. enum EBuildingAffect
  221. {
  222. BUILDING_CONSTRUCTION_SMALL = 0,
  223. BUILDING_CONSTRUCTION_LARGE = 1,
  224. BUILDING_UPGRADE = 2,
  225. };
  226.  
  227. enum
  228. {
  229. WEAPON_DUALHAND,
  230. WEAPON_ONEHAND,
  231. WEAPON_TWOHAND,
  232. WEAPON_NUM,
  233. };
  234.  
  235. enum
  236. {
  237. EMPIRE_NONE,
  238. EMPIRE_A,
  239. EMPIRE_B,
  240. EMPIRE_C,
  241. EMPIRE_NUM,
  242. };
  243.  
  244. enum
  245. {
  246. NAMECOLOR_MOB,
  247. NAMECOLOR_NPC,
  248. NAMECOLOR_PC,
  249. NAMECOLOR_PC_END = NAMECOLOR_PC + EMPIRE_NUM,
  250. NAMECOLOR_NORMAL_MOB,
  251. NAMECOLOR_NORMAL_NPC,
  252. NAMECOLOR_NORMAL_PC,
  253. NAMECOLOR_NORMAL_PC_END = NAMECOLOR_NORMAL_PC + EMPIRE_NUM,
  254. NAMECOLOR_EMPIRE_MOB,
  255. NAMECOLOR_EMPIRE_NPC,
  256. NAMECOLOR_EMPIRE_PC,
  257. NAMECOLOR_EMPIRE_PC_END = NAMECOLOR_EMPIRE_PC + EMPIRE_NUM,
  258. NAMECOLOR_FUNC,
  259. NAMECOLOR_PK,
  260. NAMECOLOR_PVP,
  261. NAMECOLOR_PARTY,
  262. NAMECOLOR_WARP,
  263. NAMECOLOR_WAYPOINT,
  264. #ifdef ENABLE_OFFLINE_SHOP
  265. NAMECOLOR_SHOP,
  266. #endif
  267. NAMECOLOR_EXTRA = NAMECOLOR_FUNC + 10,
  268. NAMECOLOR_NUM = NAMECOLOR_EXTRA + 10,
  269. };
  270.  
  271. enum
  272. {
  273. ALIGNMENT_TYPE_WHITE,
  274. ALIGNMENT_TYPE_NORMAL,
  275. ALIGNMENT_TYPE_DARK,
  276. };
  277.  
  278. enum
  279. {
  280. EMOTICON_EXCLAMATION = 1,
  281. EMOTICON_FISH = 11,
  282. EMOTICON_NUM = 128,
  283.  
  284. TITLE_NUM = 9,
  285. TITLE_NONE = 4,
  286. };
  287.  
  288. enum //ľĆ·ˇ ąřČŁ°ˇ ąŮ˛î¸é registerEffect Âʵµ ąŮ˛Ůľî Áŕľß ÇŃ´Ů.
  289. {
  290. EFFECT_REFINED_NONE,
  291.  
  292. EFFECT_SWORD_REFINED7,
  293. EFFECT_SWORD_REFINED8,
  294. EFFECT_SWORD_REFINED9,
  295.  
  296. EFFECT_BOW_REFINED7,
  297. EFFECT_BOW_REFINED8,
  298. EFFECT_BOW_REFINED9,
  299.  
  300. EFFECT_FANBELL_REFINED7,
  301. EFFECT_FANBELL_REFINED8,
  302. EFFECT_FANBELL_REFINED9,
  303.  
  304. EFFECT_SMALLSWORD_REFINED7,
  305. EFFECT_SMALLSWORD_REFINED8,
  306. EFFECT_SMALLSWORD_REFINED9,
  307.  
  308. EFFECT_SMALLSWORD_REFINED7_LEFT,
  309. EFFECT_SMALLSWORD_REFINED8_LEFT,
  310. EFFECT_SMALLSWORD_REFINED9_LEFT,
  311.  
  312. EFFECT_BODYARMOR_REFINED7,
  313. EFFECT_BODYARMOR_REFINED8,
  314. EFFECT_BODYARMOR_REFINED9,
  315.  
  316. EFFECT_BODYARMOR_SPECIAL,
  317. EFFECT_BODYARMOR_SPECIAL2,
  318.  
  319. EFFECT_SASH,
  320.  
  321. EFFECT_SWORD_REFINED_SPECIAL,
  322.  
  323. EFFECT_REFINED_NUM,
  324. };
  325.  
  326. enum DamageFlag
  327. {
  328. DAMAGE_NORMAL = (1<<0),
  329. DAMAGE_POISON = (1<<1),
  330. DAMAGE_DODGE = (1<<2),
  331. DAMAGE_BLOCK = (1<<3),
  332. DAMAGE_PENETRATE= (1<<4),
  333. DAMAGE_CRITICAL = (1<<5),
  334. // ąÝ-_-»ç
  335. };
  336.  
  337. enum
  338. {
  339. EFFECT_DUST,
  340. EFFECT_STUN,
  341. EFFECT_HIT,
  342. EFFECT_FLAME_ATTACK,
  343. EFFECT_FLAME_HIT,
  344. EFFECT_FLAME_ATTACH,
  345. EFFECT_ELECTRIC_ATTACK,
  346. EFFECT_ELECTRIC_HIT,
  347. EFFECT_ELECTRIC_ATTACH,
  348. EFFECT_SPAWN_APPEAR,
  349. EFFECT_SPAWN_DISAPPEAR,
  350. EFFECT_LEVELUP,
  351. EFFECT_SKILLUP,
  352. EFFECT_HPUP_RED,
  353. EFFECT_SPUP_BLUE,
  354. EFFECT_SPEEDUP_GREEN,
  355. EFFECT_DXUP_PURPLE,
  356. EFFECT_CRITICAL,
  357. EFFECT_PENETRATE,
  358. EFFECT_BLOCK,
  359. EFFECT_DODGE,
  360. EFFECT_FIRECRACKER,
  361. EFFECT_SPIN_TOP,
  362. EFFECT_WEAPON,
  363. EFFECT_WEAPON_END = EFFECT_WEAPON + WEAPON_NUM,
  364. EFFECT_AFFECT,
  365. EFFECT_AFFECT_GYEONGGONG = EFFECT_AFFECT + AFFECT_GYEONGGONG,
  366. EFFECT_AFFECT_KWAESOK = EFFECT_AFFECT + AFFECT_KWAESOK,
  367. EFFECT_AFFECT_END = EFFECT_AFFECT + AFFECT_NUM,
  368. EFFECT_EMOTICON,
  369. EFFECT_EMOTICON_END = EFFECT_EMOTICON + EMOTICON_NUM,
  370. EFFECT_SELECT,
  371. EFFECT_TARGET,
  372. EFFECT_EMPIRE,
  373. EFFECT_EMPIRE_END = EFFECT_EMPIRE + EMPIRE_NUM,
  374. EFFECT_HORSE_DUST,
  375. EFFECT_REFINED,
  376. EFFECT_REFINED_END = EFFECT_REFINED + EFFECT_REFINED_NUM,
  377. EFFECT_DAMAGE_TARGET,
  378. EFFECT_DAMAGE_NOT_TARGET,
  379. EFFECT_DAMAGE_SELFDAMAGE,
  380. EFFECT_DAMAGE_SELFDAMAGE2,
  381. EFFECT_DAMAGE_POISON,
  382. EFFECT_DAMAGE_MISS,
  383. EFFECT_DAMAGE_TARGETMISS,
  384. EFFECT_DAMAGE_CRITICAL,
  385. EFFECT_SUCCESS,
  386. EFFECT_FAIL,
  387. EFFECT_FR_SUCCESS,
  388. EFFECT_LEVELUP_ON_14_FOR_GERMANY, //·ąş§ľ÷ 14Ŕ϶§ ( µ¶ŔĎŔüżë )
  389. EFFECT_LEVELUP_UNDER_15_FOR_GERMANY,//·ąş§ľ÷ 15Ŕ϶§ ( µ¶ŔĎŔüżë )
  390. EFFECT_PERCENT_DAMAGE1,
  391. EFFECT_PERCENT_DAMAGE2,
  392. EFFECT_PERCENT_DAMAGE3,
  393. EFFECT_AUTO_HPUP,
  394. EFFECT_AUTO_SPUP,
  395. EFFECT_RAMADAN_RING_EQUIP, // ĂĘ˝Â´Ţ ąÝÁö Âřżë Ľř°Łżˇ ąßµżÇĎ´Â ŔĚĆĺĆ®
  396. EFFECT_HALLOWEEN_CANDY_EQUIP, // ÇŇ·ÎŔ© »çĹÁ Âřżë Ľř°Łżˇ ąßµżÇĎ´Â ŔĚĆĺĆ®
  397. EFFECT_HAPPINESS_RING_EQUIP, // ÇŕşąŔÇ ąÝÁö Âřżë Ľř°Łżˇ ąßµżÇĎ´Â ŔĚĆĺĆ®
  398. EFFECT_LOVE_PENDANT_EQUIP, // ÇŕşąŔÇ ąÝÁö Âřżë Ľř°Łżˇ ąßµżÇĎ´Â ŔĚĆĺĆ®
  399. EFFECT_TEMP,
  400. #ifdef ENABLE_SASH_SYSTEM
  401. EFFECT_SASH_SUCCEDED,
  402. EFFECT_SASH_EQUIP,
  403. #endif
  404. EFFECT_NUM,
  405. };
  406.  
  407. enum
  408. {
  409. DUEL_NONE,
  410. DUEL_CANNOTATTACK,
  411. DUEL_START,
  412. };
  413.  
  414. public:
  415. static void DestroySystem();
  416. static void CreateSystem(UINT uCapacity);
  417. static bool RegisterEffect(UINT eEftType, const char* c_szEftAttachBone, const char* c_szEftName, bool isCache);
  418. static void RegisterTitleName(int iIndex, const char * c_szTitleName);
  419. static bool RegisterNameColor(UINT uIndex, UINT r, UINT g, UINT b);
  420. static bool RegisterTitleColor(UINT uIndex, UINT r, UINT g, UINT b);
  421. static bool ChangeEffectTexture(UINT eEftType, const char* c_szSrcFileName, const char* c_szDstFileName);
  422.  
  423. static void SetDustGap(float fDustGap);
  424. static void SetHorseDustGap(float fDustGap);
  425.  
  426. static void SetEmpireNameMode(bool isEnable);
  427. static const D3DXCOLOR& GetIndexedNameColor(UINT eNameColor);
  428.  
  429. public:
  430. void SetMainInstance();
  431.  
  432. void OnSelected();
  433. void OnUnselected();
  434. void OnTargeted();
  435. void OnUntargeted();
  436.  
  437. protected:
  438. bool __IsExistMainInstance();
  439. bool __IsMainInstance();
  440. bool __MainCanSeeHiddenThing();
  441. float __GetBowRange();
  442.  
  443. protected:
  444. DWORD __AttachEffect(UINT eEftType);
  445. DWORD __AttachEffect(char filename[128]);
  446. void __DetachEffect(DWORD dwEID);
  447.  
  448. public:
  449. void CreateSpecialEffect(DWORD iEffectIndex);
  450. void AttachSpecialEffect(DWORD effect);
  451.  
  452. protected:
  453. static std::string ms_astAffectEffectAttachBone[EFFECT_NUM];
  454. static DWORD ms_adwCRCAffectEffect[EFFECT_NUM];
  455. static float ms_fDustGap;
  456. static float ms_fHorseDustGap;
  457.  
  458. public:
  459. CInstanceBase();
  460. virtual ~CInstanceBase();
  461.  
  462. bool LessRenderOrder(CInstanceBase* pkInst);
  463.  
  464. void MountHorse(UINT eRace);
  465. void DismountHorse();
  466.  
  467. // ˝şĹ©¸łĆ®żë Ĺ×˝şĆ® ÇÔĽö. łŞÁßżˇ ľřżˇŔÚ
  468. void SCRIPT_SetAffect(UINT eAffect, bool isVisible);
  469.  
  470. float CalculateDistanceSq3d(const TPixelPosition& c_rkPPosDst);
  471.  
  472. // Instance Data
  473. bool IsFlyTargetObject();
  474. void ClearFlyTargetInstance();
  475. void SetFlyTargetInstance(CInstanceBase& rkInstDst);
  476. void AddFlyTargetInstance(CInstanceBase& rkInstDst);
  477. void AddFlyTargetPosition(const TPixelPosition& c_rkPPosDst);
  478.  
  479. float GetFlyTargetDistance();
  480.  
  481. void SetAlpha(float fAlpha);
  482.  
  483. void DeleteBlendOut();
  484.  
  485. void AttachTextTail();
  486. void DetachTextTail();
  487. void UpdateTextTailLevel(DWORD level);
  488.  
  489. void RefreshTextTail();
  490. void RefreshTextTailTitle();
  491.  
  492. bool Create(const SCreateData& c_rkCreateData);
  493.  
  494. bool CreateDeviceObjects();
  495. void DestroyDeviceObjects();
  496.  
  497. void Destroy();
  498.  
  499. void Update();
  500. bool UpdateDeleting();
  501.  
  502. void Transform();
  503. void Deform();
  504. void Render();
  505. void RenderTrace();
  506. void RenderToShadowMap();
  507. void RenderCollision();
  508. void RegisterBoundingSphere();
  509.  
  510. // Temporary
  511. void GetBoundBox(D3DXVECTOR3 * vtMin, D3DXVECTOR3 * vtMax);
  512.  
  513. void SetNameString(const char* c_szName, int len);
  514. bool SetRace(DWORD dwRaceIndex);
  515. void SetVirtualID(DWORD wVirtualNumber);
  516. void SetVirtualNumber(DWORD dwVirtualNumber);
  517. void SetInstanceType(int iInstanceType);
  518. void SetAlignment(short sAlignment);
  519. void SetPKMode(BYTE byPKMode);
  520. void SetKiller(bool bFlag);
  521. void SetPartyMemberFlag(bool bFlag);
  522. void SetStateFlags(DWORD dwStateFlags);
  523.  
  524. void SetArmor(DWORD dwArmor);
  525. void SetShape(DWORD eShape, float fSpecular=0.0f);
  526. void SetHair(DWORD eHair);
  527. #ifdef ENABLE_SASH_SYSTEM
  528. void SetSash(DWORD dwSash);
  529. void ChangeSash(DWORD dwSash);
  530. #endif
  531. bool SetWeapon(DWORD eWeapon);
  532. bool ChangeArmor(DWORD dwArmor);
  533. void ChangeWeapon(DWORD eWeapon);
  534. void ChangeHair(DWORD eHair);
  535. void ChangeGuild(DWORD dwGuildID);
  536. DWORD GetWeaponType();
  537.  
  538. void SetComboType(UINT uComboType);
  539. void SetAttackSpeed(UINT uAtkSpd);
  540. void SetMoveSpeed(UINT uMovSpd);
  541. void SetRotationSpeed(float fRotSpd);
  542.  
  543. const char * GetNameString();
  544. int GetInstanceType();
  545. DWORD GetPart(CRaceData::EParts part);
  546. DWORD GetShape();
  547. DWORD GetRace();
  548. DWORD GetVirtualID();
  549. DWORD GetVirtualNumber();
  550. DWORD GetEmpireID();
  551. DWORD GetGuildID();
  552. int GetAlignment();
  553. UINT GetAlignmentGrade();
  554. int GetAlignmentType();
  555. BYTE GetPKMode();
  556. bool IsKiller();
  557. bool IsPartyMember();
  558.  
  559. void ActDualEmotion(CInstanceBase & rkDstInst, WORD dwMotionNumber1, WORD dwMotionNumber2);
  560. void ActEmotion(DWORD dwMotionNumber);
  561. void LevelUp();
  562. void SkillUp();
  563. void UseSpinTop();
  564. void Revive();
  565. void Stun();
  566. void Die();
  567. void Hide();
  568. void Show();
  569.  
  570. bool CanAct();
  571. bool CanMove();
  572. bool CanAttack();
  573. bool CanUseSkill();
  574. bool CanFishing();
  575. bool IsConflictAlignmentInstance(CInstanceBase& rkInstVictim);
  576. bool IsAttackableInstance(CInstanceBase& rkInstVictim);
  577. bool IsTargetableInstance(CInstanceBase& rkInstVictim);
  578. bool IsPVPInstance(CInstanceBase& rkInstVictim);
  579. bool CanChangeTarget();
  580. bool CanPickInstance();
  581. bool CanViewTargetHP(CInstanceBase& rkInstVictim);
  582.  
  583.  
  584. // Movement
  585. BOOL IsGoing();
  586. bool NEW_Goto(const TPixelPosition& c_rkPPosDst, float fDstRot);
  587. void EndGoing();
  588.  
  589. void SetRunMode();
  590. void SetWalkMode();
  591.  
  592. bool IsAffect(UINT uAffect);
  593. BOOL IsInvisibility();
  594. BOOL IsParalysis();
  595. BOOL IsGameMaster();
  596. BOOL IsSameEmpire(CInstanceBase& rkInstDst);
  597. BOOL IsBowMode();
  598. BOOL IsHandMode();
  599. BOOL IsFishingMode();
  600. BOOL IsFishing();
  601.  
  602. BOOL IsWearingDress();
  603. BOOL IsHoldingPickAxe();
  604. BOOL IsMountingHorse();
  605. BOOL IsNewMount();
  606. BOOL IsForceVisible();
  607. BOOL IsInSafe();
  608. BOOL IsEnemy();
  609. BOOL IsStone();
  610. BOOL IsResource();
  611. BOOL IsNPC();
  612. BOOL IsPC();
  613. BOOL IsPoly();
  614. BOOL IsWarp();
  615. BOOL IsGoto();
  616. BOOL IsObject();
  617. BOOL IsDoor();
  618. BOOL IsBuilding();
  619. BOOL IsWoodenDoor();
  620. BOOL IsStoneDoor();
  621. BOOL IsFlag();
  622. BOOL IsGuildWall();
  623.  
  624. BOOL IsDead();
  625. BOOL IsStun();
  626. BOOL IsSleep();
  627. BOOL __IsSyncing();
  628. BOOL IsWaiting();
  629. BOOL IsWalking();
  630. BOOL IsPushing();
  631. BOOL IsAttacking();
  632. BOOL IsActingEmotion();
  633. BOOL IsAttacked();
  634. BOOL IsKnockDown();
  635. BOOL IsUsingSkill();
  636. BOOL IsUsingMovingSkill();
  637. BOOL CanCancelSkill();
  638. BOOL CanAttackHorseLevel();
  639.  
  640. #ifdef __MOVIE_MODE__
  641. BOOL IsMovieMode(); // żîżµŔÚżë żĎŔüČ÷ ľČş¸Ŕ̴°Ĺ
  642. #endif
  643. bool NEW_CanMoveToDestPixelPosition(const TPixelPosition& c_rkPPosDst);
  644.  
  645. void NEW_SetAdvancingRotationFromPixelPosition(const TPixelPosition& c_rkPPosSrc, const TPixelPosition& c_rkPPosDst);
  646. void NEW_SetAdvancingRotationFromDirPixelPosition(const TPixelPosition& c_rkPPosDir);
  647. bool NEW_SetAdvancingRotationFromDestPixelPosition(const TPixelPosition& c_rkPPosDst);
  648. void SetAdvancingRotation(float fRotation);
  649.  
  650. void EndWalking(float fBlendingTime=0.15f);
  651. void EndWalkingWithoutBlending();
  652.  
  653. // Battle
  654. void SetEventHandler(CActorInstance::IEventHandler* pkEventHandler);
  655.  
  656. void PushUDPState(DWORD dwCmdTime, const TPixelPosition& c_rkPPosDst, float fDstRot, UINT eFunc, UINT uArg);
  657. void PushTCPState(DWORD dwCmdTime, const TPixelPosition& c_rkPPosDst, float fDstRot, UINT eFunc, UINT uArg);
  658. void PushTCPStateExpanded(DWORD dwCmdTime, const TPixelPosition& c_rkPPosDst, float fDstRot, UINT eFunc, UINT uArg, UINT uTargetVID);
  659.  
  660. void NEW_Stop();
  661.  
  662. bool NEW_UseSkill(UINT uSkill, UINT uMot, UINT uMotLoopCount, bool isMovingSkill);
  663. void NEW_Attack();
  664. void NEW_Attack(float fDirRot);
  665. void NEW_AttackToDestPixelPositionDirection(const TPixelPosition& c_rkPPosDst);
  666. bool NEW_AttackToDestInstanceDirection(CInstanceBase& rkInstDst, IFlyEventHandler* pkFlyHandler);
  667. bool NEW_AttackToDestInstanceDirection(CInstanceBase& rkInstDst);
  668.  
  669. bool NEW_MoveToDestPixelPositionDirection(const TPixelPosition& c_rkPPosDst);
  670. void NEW_MoveToDestInstanceDirection(CInstanceBase& rkInstDst);
  671. void NEW_MoveToDirection(float fDirRot);
  672.  
  673. float NEW_GetDistanceFromDirPixelPosition(const TPixelPosition& c_rkPPosDir);
  674. float NEW_GetDistanceFromDestPixelPosition(const TPixelPosition& c_rkPPosDst);
  675. float NEW_GetDistanceFromDestInstance(CInstanceBase& rkInstDst);
  676.  
  677. float NEW_GetRotation();
  678. float NEW_GetRotationFromDestPixelPosition(const TPixelPosition& c_rkPPosDst);
  679. float NEW_GetRotationFromDirPixelPosition(const TPixelPosition& c_rkPPosDir);
  680. float NEW_GetRotationFromDestInstance(CInstanceBase& rkInstDst);
  681.  
  682. float NEW_GetAdvancingRotationFromDirPixelPosition(const TPixelPosition& c_rkPPosDir);
  683. float NEW_GetAdvancingRotationFromDestPixelPosition(const TPixelPosition& c_rkPPosDst);
  684. float NEW_GetAdvancingRotationFromPixelPosition(const TPixelPosition& c_rkPPosSrc, const TPixelPosition& c_rkPPosDst);
  685.  
  686. BOOL NEW_IsClickableDistanceDestPixelPosition(const TPixelPosition& c_rkPPosDst);
  687. BOOL NEW_IsClickableDistanceDestInstance(CInstanceBase& rkInstDst);
  688.  
  689. bool NEW_GetFrontInstance(CInstanceBase ** ppoutTargetInstance, float fDistance);
  690. void NEW_GetRandomPositionInFanRange(CInstanceBase& rkInstTarget, TPixelPosition* pkPPosDst);
  691. bool NEW_GetInstanceVectorInFanRange(float fSkillDistance, CInstanceBase& rkInstTarget, std::vector<CInstanceBase*>* pkVct_pkInst);
  692. bool NEW_GetInstanceVectorInCircleRange(float fSkillDistance, std::vector<CInstanceBase*>* pkVct_pkInst);
  693.  
  694. void NEW_SetOwner(DWORD dwOwnerVID);
  695. void NEW_SyncPixelPosition(long & nPPosX, long & nPPosY);
  696. void NEW_SyncCurrentPixelPosition();
  697.  
  698. void NEW_SetPixelPosition(const TPixelPosition& c_rkPPosDst);
  699.  
  700. bool NEW_IsLastPixelPosition();
  701. const TPixelPosition& NEW_GetLastPixelPositionRef();
  702.  
  703.  
  704. // Battle
  705. BOOL isNormalAttacking();
  706. BOOL isComboAttacking();
  707. MOTION_KEY GetNormalAttackIndex();
  708. DWORD GetComboIndex();
  709. float GetAttackingElapsedTime();
  710. void InputNormalAttack(float fAtkDirRot);
  711. void InputComboAttack(float fAtkDirRot);
  712.  
  713. void RunNormalAttack(float fAtkDirRot);
  714. void RunComboAttack(float fAtkDirRot, DWORD wMotionIndex);
  715.  
  716. CInstanceBase* FindNearestVictim();
  717. BOOL CheckAdvancing();
  718.  
  719.  
  720. bool AvoidObject(const CGraphicObjectInstance& c_rkBGObj);
  721. bool IsBlockObject(const CGraphicObjectInstance& c_rkBGObj);
  722. void BlockMovement();
  723.  
  724. public:
  725. BOOL CheckAttacking(CInstanceBase& rkInstVictim);
  726. void ProcessHitting(DWORD dwMotionKey, CInstanceBase * pVictimInstance);
  727. void ProcessHitting(DWORD dwMotionKey, BYTE byEventIndex, CInstanceBase * pVictimInstance);
  728. void GetBlendingPosition(TPixelPosition * pPixelPosition);
  729. void SetBlendingPosition(const TPixelPosition & c_rPixelPosition);
  730.  
  731. // Fishing
  732. void StartFishing(float frot);
  733. void StopFishing();
  734. void ReactFishing();
  735. void CatchSuccess();
  736. void CatchFail();
  737. BOOL GetFishingRot(int * pirot);
  738.  
  739. // Render Mode
  740. void RestoreRenderMode();
  741. void SetAddRenderMode();
  742. void SetModulateRenderMode();
  743. void SetRenderMode(int iRenderMode);
  744. void SetAddColor(const D3DXCOLOR & c_rColor);
  745.  
  746. // Position
  747. void SCRIPT_SetPixelPosition(float fx, float fy);
  748. void NEW_GetPixelPosition(TPixelPosition * pPixelPosition);
  749.  
  750. // Rotation
  751. void NEW_LookAtFlyTarget();
  752. void NEW_LookAtDestInstance(CInstanceBase& rkInstDst);
  753. void NEW_LookAtDestPixelPosition(const TPixelPosition& c_rkPPosDst);
  754.  
  755. float GetRotation();
  756. float GetAdvancingRotation();
  757. void SetRotation(float fRotation);
  758. void BlendRotation(float fRotation, float fBlendTime = 0.1f);
  759.  
  760. void SetDirection(int dir);
  761. void BlendDirection(int dir, float blendTime);
  762. float GetDegreeFromDirection(int dir);
  763.  
  764. // Motion
  765. // Motion Deque
  766. BOOL isLock();
  767.  
  768. void SetMotionMode(int iMotionMode);
  769. int GetMotionMode(DWORD dwMotionIndex);
  770.  
  771. // Motion
  772. // Pushing Motion
  773. void ResetLocalTime();
  774. void SetLoopMotion(WORD wMotion, float fBlendTime=0.1f, float fSpeedRatio=1.0f);
  775. void PushOnceMotion(WORD wMotion, float fBlendTime=0.1f, float fSpeedRatio=1.0f);
  776. void PushLoopMotion(WORD wMotion, float fBlendTime=0.1f, float fSpeedRatio=1.0f);
  777. void SetEndStopMotion();
  778.  
  779. // Intersect
  780. bool IntersectDefendingSphere();
  781. bool IntersectBoundingBox();
  782.  
  783. // Part
  784. //void SetParts(const WORD * c_pParts);
  785. void Refresh(DWORD dwMotIndex, bool isLoop);
  786.  
  787. //void AttachEffectByID(DWORD dwParentPartIndex, const char * c_pszBoneName, DWORD dwEffectID, int dwLife = CActorInstance::EFFECT_LIFE_INFINITE ); // Ľö¸íŔş ms´ÜŔ§ŔÔ´Ď´Ů.
  788. //void AttachEffectByName(DWORD dwParentPartIndex, const char * c_pszBoneName, const char * c_pszEffectName, int dwLife = CActorInstance::EFFECT_LIFE_INFINITE ); // Ľö¸íŔş ms´ÜŔ§ŔÔ´Ď´Ů.
  789.  
  790. float GetDistance(CInstanceBase * pkTargetInst);
  791. float GetDistance(const TPixelPosition & c_rPixelPosition);
  792.  
  793. // ETC
  794. CActorInstance& GetGraphicThingInstanceRef();
  795. CActorInstance* GetGraphicThingInstancePtr();
  796.  
  797. bool __Background_IsWaterPixelPosition(const TPixelPosition& c_rkPPos);
  798. bool __Background_GetWaterHeight(const TPixelPosition& c_rkPPos, float* pfHeight);
  799.  
  800. // 2004.07.25.myevan.ŔĚĆĺĆ® ľČłŞżŔ´Â ą®Á¦
  801. /////////////////////////////////////////////////////////////
  802. void __ClearAffectFlagContainer();
  803. void __ClearAffects();
  804. /////////////////////////////////////////////////////////////
  805.  
  806. void __SetAffect(UINT eAffect, bool isVisible);
  807.  
  808. void SetAffectFlagContainer(const CAffectFlagContainer& c_rkAffectFlagContainer);
  809.  
  810. void __SetNormalAffectFlagContainer(const CAffectFlagContainer& c_rkAffectFlagContainer);
  811. void __SetStoneSmokeFlagContainer(const CAffectFlagContainer& c_rkAffectFlagContainer);
  812.  
  813. void SetEmoticon(UINT eEmoticon);
  814. void SetFishEmoticon();
  815. bool IsPossibleEmoticon();
  816.  
  817. protected:
  818. UINT __LessRenderOrder_GetLODLevel();
  819. void __Initialize();
  820. void __InitializeRotationSpeed();
  821.  
  822. void __Create_SetName(const SCreateData& c_rkCreateData);
  823. void __Create_SetWarpName(const SCreateData& c_rkCreateData);
  824.  
  825. CInstanceBase* __GetMainInstancePtr();
  826. CInstanceBase* __FindInstancePtr(DWORD dwVID);
  827.  
  828. bool __FindRaceType(DWORD dwRace, BYTE* pbType);
  829. DWORD __GetRaceType();
  830.  
  831. bool __IsShapeAnimalWear();
  832. BOOL __IsChangableWeapon(int iWeaponID);
  833.  
  834. void __EnableSkipCollision();
  835. void __DisableSkipCollision();
  836.  
  837. void __ClearMainInstance();
  838.  
  839. void __Shaman_SetParalysis(bool isParalysis);
  840. void __Warrior_SetGeomgyeongAffect(bool isVisible);
  841. void __Assassin_SetEunhyeongAffect(bool isVisible);
  842. void __SetReviveInvisibilityAffect(bool isVisible);
  843.  
  844. BOOL __CanProcessNetworkStatePacket();
  845.  
  846. bool __IsInDustRange();
  847.  
  848. // Emotion
  849. void __ProcessFunctionEmotion(DWORD dwMotionNumber, DWORD dwTargetVID, const TPixelPosition & c_rkPosDst);
  850. void __EnableChangingTCPState();
  851. void __DisableChangingTCPState();
  852. BOOL __IsEnableTCPProcess(UINT eCurFunc);
  853.  
  854. // 2004.07.17.levites.isShow¸¦ ViewFrustumCheck·Î şŻ°ć
  855. bool __CanRender();
  856. bool __IsInViewFrustum();
  857.  
  858. // HORSE
  859. void __AttachHorseSaddle();
  860. void __DetachHorseSaddle();
  861.  
  862. struct SHORSE
  863. {
  864. bool m_isMounting;
  865. CActorInstance* m_pkActor;
  866.  
  867. SHORSE();
  868. ~SHORSE();
  869.  
  870. void Destroy();
  871. void Create(const TPixelPosition& c_rkPPos, UINT eRace, UINT eHitEffect);
  872.  
  873. void SetAttackSpeed(UINT uAtkSpd);
  874. void SetMoveSpeed(UINT uMovSpd);
  875. void Deform();
  876. void Render();
  877. CActorInstance& GetActorRef();
  878. CActorInstance* GetActorPtr();
  879.  
  880. bool IsMounting();
  881. bool CanAttack();
  882. bool CanUseSkill();
  883.  
  884. UINT GetLevel();
  885. bool IsNewMount();
  886.  
  887. void __Initialize();
  888. } m_kHorse;
  889.  
  890.  
  891. protected:
  892. // Blend Mode
  893. void __SetBlendRenderingMode();
  894. void __SetAlphaValue(float fAlpha);
  895. float __GetAlphaValue();
  896.  
  897. void __ComboProcess();
  898. void MovementProcess();
  899. void TodoProcess();
  900. void StateProcess();
  901. void AttackProcess();
  902.  
  903. void StartWalking();
  904. float GetLocalTime();
  905.  
  906. void RefreshState(DWORD dwMotIndex, bool isLoop);
  907. void RefreshActorInstance();
  908.  
  909. protected:
  910. void OnSyncing();
  911. void OnWaiting();
  912. void OnMoving();
  913.  
  914. void NEW_SetCurPixelPosition(const TPixelPosition& c_rkPPosDst);
  915. void NEW_SetSrcPixelPosition(const TPixelPosition& c_rkPPosDst);
  916. void NEW_SetDstPixelPosition(const TPixelPosition& c_rkPPosDst);
  917. void NEW_SetDstPixelPositionZ(FLOAT z);
  918.  
  919. const TPixelPosition& NEW_GetCurPixelPositionRef();
  920. const TPixelPosition& NEW_GetSrcPixelPositionRef();
  921.  
  922. public:
  923. const TPixelPosition& NEW_GetDstPixelPositionRef();
  924.  
  925. protected:
  926. BOOL m_isTextTail;
  927.  
  928. // Instance Data
  929. std::string m_stName;
  930.  
  931. DWORD m_awPart[CRaceData::PART_MAX_NUM];
  932.  
  933. DWORD m_dwLevel;
  934. DWORD m_dwEmpireID;
  935. DWORD m_dwGuildID;
  936.  
  937. protected:
  938. CAffectFlagContainer m_kAffectFlagContainer;
  939. DWORD m_adwCRCAffectEffect[AFFECT_NUM];
  940.  
  941. UINT __GetRefinedEffect(CItemData* pItem);
  942. void __ClearWeaponRefineEffect();
  943. void __ClearArmorRefineEffect();
  944. #ifdef ENABLE_SASH_SYSTEM
  945. void ClearSashEffect();
  946. #endif
  947.  
  948. protected:
  949. void __AttachSelectEffect();
  950. void __DetachSelectEffect();
  951.  
  952. void __AttachTargetEffect();
  953. void __DetachTargetEffect();
  954.  
  955. void __AttachEmpireEffect(DWORD eEmpire);
  956.  
  957. protected:
  958. struct SEffectContainer
  959. {
  960. typedef std::map<DWORD, DWORD> Dict;
  961. Dict m_kDct_dwEftID;
  962. } m_kEffectContainer;
  963.  
  964. void __EffectContainer_Initialize();
  965. void __EffectContainer_Destroy();
  966.  
  967. DWORD __EffectContainer_AttachEffect(DWORD eEffect);
  968. void __EffectContainer_DetachEffect(DWORD eEffect);
  969.  
  970. SEffectContainer::Dict& __EffectContainer_GetDict();
  971.  
  972. protected:
  973. struct SStoneSmoke
  974. {
  975. DWORD m_dwEftID;
  976. } m_kStoneSmoke;
  977.  
  978. void __StoneSmoke_Inialize();
  979. void __StoneSmoke_Destroy();
  980. void __StoneSmoke_Create(DWORD eSmoke);
  981.  
  982.  
  983. protected:
  984. // Emoticon
  985. //DWORD m_adwCRCEmoticonEffect[EMOTICON_NUM];
  986.  
  987. BYTE m_eType;
  988. BYTE m_eRaceType;
  989. DWORD m_eShape;
  990. DWORD m_dwRace;
  991. DWORD m_dwVirtualNumber;
  992. short m_sAlignment;
  993. BYTE m_byPKMode;
  994. bool m_isKiller;
  995. bool m_isPartyMember;
  996.  
  997. // Movement
  998. int m_iRotatingDirection;
  999.  
  1000. DWORD m_dwAdvActorVID;
  1001. DWORD m_dwLastDmgActorVID;
  1002.  
  1003. LONG m_nAverageNetworkGap;
  1004. DWORD m_dwNextUpdateHeightTime;
  1005.  
  1006. bool m_isGoing;
  1007.  
  1008. TPixelPosition m_kPPosDust;
  1009.  
  1010. DWORD m_dwLastComboIndex;
  1011.  
  1012. DWORD m_swordRefineEffectRight;
  1013. DWORD m_swordRefineEffectLeft;
  1014. DWORD m_armorRefineEffect;
  1015. #ifdef ENABLE_SASH_SYSTEM
  1016. DWORD m_dwSashEffect;
  1017. #endif
  1018.  
  1019. struct SMoveAfterFunc
  1020. {
  1021. UINT eFunc;
  1022. UINT uArg;
  1023.  
  1024. // For Emotion Function
  1025. UINT uArgExpanded;
  1026. TPixelPosition kPosDst;
  1027. };
  1028.  
  1029. SMoveAfterFunc m_kMovAfterFunc;
  1030.  
  1031. float m_fDstRot;
  1032. float m_fAtkPosTime;
  1033. float m_fRotSpd;
  1034. float m_fMaxRotSpd;
  1035.  
  1036. BOOL m_bEnableTCPState;
  1037.  
  1038. // Graphic Instance
  1039. CActorInstance m_GraphicThingInstance;
  1040.  
  1041.  
  1042. protected:
  1043. struct SCommand
  1044. {
  1045. DWORD m_dwChkTime;
  1046. DWORD m_dwCmdTime;
  1047. float m_fDstRot;
  1048. UINT m_eFunc;
  1049. UINT m_uArg;
  1050. UINT m_uTargetVID;
  1051. TPixelPosition m_kPPosDst;
  1052. };
  1053.  
  1054. typedef std::list<SCommand> CommandQueue;
  1055.  
  1056. DWORD m_dwBaseChkTime;
  1057. DWORD m_dwBaseCmdTime;
  1058.  
  1059. DWORD m_dwSkipTime;
  1060.  
  1061. CommandQueue m_kQue_kCmdNew;
  1062.  
  1063. BOOL m_bDamageEffectType;
  1064.  
  1065. struct SEffectDamage
  1066. {
  1067. DWORD damage;
  1068. BYTE flag;
  1069. BOOL bSelf;
  1070. BOOL bTarget;
  1071. };
  1072.  
  1073. typedef std::list<SEffectDamage> CommandDamageQueue;
  1074. CommandDamageQueue m_DamageQueue;
  1075.  
  1076. void ProcessDamage();
  1077.  
  1078. public:
  1079. void AddDamageEffect(DWORD damage,BYTE flag,BOOL bSelf,BOOL bTarget);
  1080.  
  1081. protected:
  1082. struct SWarrior
  1083. {
  1084. DWORD m_dwGeomgyeongEffect;
  1085. };
  1086.  
  1087. SWarrior m_kWarrior;
  1088.  
  1089. void __Warrior_Initialize();
  1090.  
  1091. public:
  1092. static void ClearPVPKeySystem();
  1093.  
  1094. static void InsertPVPKey(DWORD dwSrcVID, DWORD dwDstVID);
  1095. static void InsertPVPReadyKey(DWORD dwSrcVID, DWORD dwDstVID);
  1096. static void RemovePVPKey(DWORD dwSrcVID, DWORD dwDstVID);
  1097.  
  1098. static void InsertGVGKey(DWORD dwSrcGuildVID, DWORD dwDstGuildVID);
  1099. static void RemoveGVGKey(DWORD dwSrcGuildVID, DWORD dwDstGuildVID);
  1100.  
  1101. static void InsertDUELKey(DWORD dwSrcVID, DWORD dwDstVID);
  1102.  
  1103. UINT GetNameColorIndex();
  1104.  
  1105. const D3DXCOLOR& GetNameColor();
  1106. const D3DXCOLOR& GetTitleColor();
  1107.  
  1108. protected:
  1109. static DWORD __GetPVPKey(DWORD dwSrcVID, DWORD dwDstVID);
  1110. static bool __FindPVPKey(DWORD dwSrcVID, DWORD dwDstVID);
  1111. static bool __FindPVPReadyKey(DWORD dwSrcVID, DWORD dwDstVID);
  1112. static bool __FindGVGKey(DWORD dwSrcGuildID, DWORD dwDstGuildID);
  1113. static bool __FindDUELKey(DWORD dwSrcGuildID, DWORD dwDstGuildID);
  1114.  
  1115. protected:
  1116. CActorInstance::IEventHandler* GetEventHandlerPtr();
  1117. CActorInstance::IEventHandler& GetEventHandlerRef();
  1118.  
  1119. protected:
  1120. static float __GetBackgroundHeight(float x, float y);
  1121. static DWORD __GetShadowMapColor(float x, float y);
  1122.  
  1123. public:
  1124. static void ResetPerformanceCounter();
  1125. static void GetInfo(std::string* pstInfo);
  1126.  
  1127. public:
  1128. static CInstanceBase* New();
  1129. static void Delete(CInstanceBase* pkInst);
  1130.  
  1131. static CDynamicPool<CInstanceBase> ms_kPool;
  1132.  
  1133. protected:
  1134. static DWORD ms_dwUpdateCounter;
  1135. static DWORD ms_dwRenderCounter;
  1136. static DWORD ms_dwDeformCounter;
  1137.  
  1138. public:
  1139. DWORD GetDuelMode();
  1140. void SetDuelMode(DWORD type);
  1141. protected:
  1142. DWORD m_dwDuelMode;
  1143. DWORD m_dwEmoticonTime;
  1144. };
  1145.  
  1146. inline int RaceToJob(int race)
  1147. {
  1148. const int JOB_NUM = 4;
  1149. return race % JOB_NUM;
  1150. }
  1151.  
  1152. inline int RaceToSex(int race)
  1153. {
  1154. switch (race)
  1155. {
  1156. case 0:
  1157. case 2:
  1158. case 5:
  1159. case 7:
  1160. return 1;
  1161. case 1:
  1162. case 3:
  1163. case 4:
  1164. case 6:
  1165. return 0;
  1166.  
  1167. }
  1168. return 0;
  1169. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement