Advertisement
Guest User

instancebase.h

a guest
Aug 4th, 2020
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 41.40 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. #if defined(WJ_SHOW_MOB_INFO)
  22. DWORD m_dwAIFlag;
  23. #endif
  24. DWORD m_dwVID;
  25. DWORD m_dwRace;
  26. DWORD m_dwMovSpd;
  27. DWORD m_dwAtkSpd;
  28. LONG m_lPosX;
  29. LONG m_lPosY;
  30. FLOAT m_fRot;
  31. DWORD m_dwArmor;
  32. DWORD m_dwWeapon;
  33. DWORD m_dwHair;
  34. //DWORD m_dwAcce;
  35. #ifdef ENABLE_SASH_SYSTEM
  36. DWORD m_dwSash;
  37. #endif
  38. #ifdef WJ_QUIVER_SYSTEM
  39. DWORD m_dwArrowType;
  40. #endif
  41. DWORD m_dwMountVnum;
  42. BYTE m_dwNewIsGuildName;
  43. DWORD m_dwWeaponEvolution;
  44.  
  45. short m_sAlignment;
  46. #ifdef ENABLE_TITLE_SYSTEM
  47. short m_sPrestige;
  48. #endif
  49. #ifdef ENABLE_REBORN_SYSTEM
  50. short m_sReborn;
  51. #endif
  52. BYTE m_byPKMode;
  53. #if defined(WJ_COMBAT_ZONE)
  54. BYTE combat_zone_rank;
  55. DWORD combat_zone_points;
  56. #endif
  57. //DWORD m_dwCostumEvo;
  58. CAffectFlagContainer m_kAffectFlags;
  59.  
  60. std::string m_stName;
  61.  
  62. bool m_isMain;
  63. };
  64.  
  65. public:
  66. typedef DWORD TType;
  67.  
  68. enum EMobAIFlags
  69. {
  70. AIFLAG_AGGRESSIVE = (1 << 0),
  71. AIFLAG_NOMOVE = (1 << 1),
  72. AIFLAG_COWARD = (1 << 2),
  73. AIFLAG_NOATTACKSHINSU = (1 << 3),
  74. AIFLAG_NOATTACKJINNO = (1 << 4),
  75. AIFLAG_NOATTACKCHUNJO = (1 << 5),
  76. AIFLAG_ATTACKMOB = (1 << 6),
  77. AIFLAG_BERSERK = (1 << 7),
  78. AIFLAG_STONESKIN = (1 << 8),
  79. AIFLAG_GODSPEED = (1 << 9),
  80. AIFLAG_DEATHBLOW = (1 << 10),
  81. AIFLAG_REVIVE = (1 << 11),
  82. };
  83.  
  84. enum EDirection
  85. {
  86. DIR_NORTH,
  87. DIR_NORTHEAST,
  88. DIR_EAST,
  89. DIR_SOUTHEAST,
  90. DIR_SOUTH,
  91. DIR_SOUTHWEST,
  92. DIR_WEST,
  93. DIR_NORTHWEST,
  94. DIR_MAX_NUM,
  95. };
  96.  
  97. enum
  98. {
  99. FUNC_WAIT,
  100. FUNC_MOVE,
  101. FUNC_ATTACK,
  102. FUNC_COMBO,
  103. FUNC_MOB_SKILL,
  104. FUNC_EMOTION,
  105. FUNC_SKILL = 0x80,
  106. };
  107.  
  108. enum
  109. {
  110. AFFECT_YMIR,
  111. AFFECT_INVISIBILITY,
  112. AFFECT_SPAWN,
  113.  
  114. AFFECT_POISON,
  115. AFFECT_SLOW,
  116. AFFECT_STUN,
  117.  
  118. AFFECT_DUNGEON_READY, // ´øÀü¿¡¼­ Áغñ »óÅÂ
  119. AFFECT_SHOW_ALWAYS, // AFFECT_DUNGEON_UNIQUE ¿¡¼­ º¯°æ(Ŭ¶óÀ̾ðÆ®¿¡¼­ ÄøµµÇÁö¾ÊÀ½)
  120.  
  121. AFFECT_BUILDING_CONSTRUCTION_SMALL,
  122. AFFECT_BUILDING_CONSTRUCTION_LARGE,
  123. AFFECT_BUILDING_UPGRADE,
  124.  
  125. AFFECT_MOV_SPEED_POTION, // 11
  126. AFFECT_ATT_SPEED_POTION, // 12
  127.  
  128. AFFECT_FISH_MIND, // 13
  129. AFFECT_JEONGWI, // 14 Àü±ÍÈ¥
  130. AFFECT_GEOMGYEONG, // 15 °Ë°æ
  131. AFFECT_CHEONGEUN, // 16 õ±ÙÃß
  132. AFFECT_GYEONGGONG, // 17 °æ°ø¼ú
  133. AFFECT_EUNHYEONG, // 18 ÀºÇü¹ý
  134. AFFECT_GWIGEOM, // 19 ±Í°Ë
  135. AFFECT_GONGPO, // 20 °øÆ÷
  136. AFFECT_JUMAGAP, // 21 ÁÖ¸¶°©
  137. AFFECT_HOSIN, // 22 È£½Å
  138. AFFECT_BOHO, // 23 º¸È£
  139. AFFECT_KWAESOK, // 24 Äè¼Ó
  140. AFFECT_HEUKSIN, // 25 Èæ½Å¼öÈ£
  141. AFFECT_MUYEONG, // 26 ¹«¿µÁø
  142. AFFECT_REVIVE_INVISIBILITY, // 27 ºÎÈ° ¹«Àû
  143. AFFECT_FIRE, // 28 Áö¼Ó ºÒ
  144. AFFECT_GICHEON, // 29 ±âõ ´ë°ø
  145. AFFECT_JEUNGRYEOK, // 30 Áõ·Â¼ú
  146. AFFECT_DASH, // 31 ´ë½¬
  147. AFFECT_PABEOP, // 32 ÆĹý¼ú
  148. AFFECT_FALLEN_CHEONGEUN, // 33 ´Ù¿î ±×·¹À̵å õ±ÙÃß
  149. AFFECT_POLYMORPH, // 34 Æú¸®¸ðÇÁ
  150. AFFECT_WAR_FLAG1, // 35
  151. AFFECT_WAR_FLAG2, // 36
  152. AFFECT_WAR_FLAG3, // 37
  153. AFFECT_CHINA_FIREWORK, // 38
  154. AFFECT_PREMIUM_SILVER, // 39
  155. AFFECT_PREMIUM_GOLD, // 40
  156. AFFECT_RAMADAN_RING, // 41 ÃÊ½Â´Þ ¹ÝÁö Âø¿ë Affect
  157. AFFECT_BLEEDING, // 42
  158. AFFECT_RED_POSSESION, // 43
  159. AFFECT_BLUE_POSSESION, // 44
  160. AFFECT_JEOKRANG, // 45
  161. AFFECT_CHEONGRANG, // 46
  162. //AFFECT_ACCE, // 47
  163.  
  164. #ifdef ENABLE_MELEY_LAIR_DUNGEON
  165. AFFECT_STATUE1,
  166. AFFECT_STATUE2,
  167. AFFECT_STATUE3,
  168. AFFECT_STATUE4,
  169. #endif
  170. #ifdef DRAGON_SOUL_ACTIVE_EFFECT
  171. AFFECT_DS,
  172. #endif
  173. #ifdef ENABLE_GM_AFFECTS
  174. AFFECT_YMIR_MOD,
  175. AFFECT_YMIR_SGM,
  176. AFFECT_YMIR_GA,
  177. #endif
  178.  
  179. AFFECT_NUM = 64,
  180.  
  181. AFFECT_HWAYEOM = AFFECT_GEOMGYEONG,
  182. };
  183.  
  184. enum
  185. {
  186. NEW_AFFECT_MOV_SPEED = 200,
  187. NEW_AFFECT_ATT_SPEED,
  188. NEW_AFFECT_ATT_GRADE,
  189. NEW_AFFECT_INVISIBILITY,
  190. NEW_AFFECT_STR,
  191. NEW_AFFECT_DEX, // 205
  192. NEW_AFFECT_CON,
  193. NEW_AFFECT_INT,
  194. NEW_AFFECT_FISH_MIND_PILL,
  195.  
  196. NEW_AFFECT_POISON,
  197. NEW_AFFECT_STUN, // 210
  198. NEW_AFFECT_SLOW,
  199. NEW_AFFECT_DUNGEON_READY,
  200. NEW_AFFECT_DUNGEON_UNIQUE,
  201.  
  202. NEW_AFFECT_BUILDING,
  203. NEW_AFFECT_REVIVE_INVISIBLE, // 215
  204. NEW_AFFECT_FIRE,
  205. NEW_AFFECT_CAST_SPEED,
  206. NEW_AFFECT_HP_RECOVER_CONTINUE,
  207. NEW_AFFECT_SP_RECOVER_CONTINUE,
  208.  
  209. NEW_AFFECT_POLYMORPH, // 220
  210. NEW_AFFECT_MOUNT,
  211.  
  212. NEW_AFFECT_WAR_FLAG, // 222
  213.  
  214. NEW_AFFECT_BLOCK_CHAT, // 223
  215. NEW_AFFECT_CHINA_FIREWORK,
  216.  
  217. NEW_AFFECT_BOW_DISTANCE, // 225
  218.  
  219. NEW_AFFECT_EXP_BONUS = 500, // °æÇèÀÇ ¹ÝÁö
  220. NEW_AFFECT_ITEM_BONUS = 501, // µµµÏÀÇ Àå°©
  221. NEW_AFFECT_SAFEBOX = 502, // PREMIUM_SAFEBOX,
  222. NEW_AFFECT_AUTOLOOT = 503, // PREMIUM_AUTOLOOT,
  223. NEW_AFFECT_FISH_MIND = 504, // PREMIUM_FISH_MIND,
  224. NEW_AFFECT_MARRIAGE_FAST = 505, // ¿ø¾ÓÀÇ ±êÅÐ (±Ý½½),
  225. NEW_AFFECT_GOLD_BONUS = 506,
  226.  
  227. NEW_AFFECT_MALL = 510, // ¸ô ¾ÆÀÌÅÛ ¿¡ÆåÆ®
  228. NEW_AFFECT_NO_DEATH_PENALTY = 511, // ¿ë½ÅÀÇ °¡È£ (°æÇèÄ¡ ÆгÎƼ¸¦ Çѹø ¸·¾ÆÁØ´Ù)
  229. NEW_AFFECT_SKILL_BOOK_BONUS = 512, // ¼±ÀÎÀÇ ±³ÈÆ (Ã¥ ¼ö·Ã ¼º°ø È®·üÀÌ 50% Áõ°¡)
  230. NEW_AFFECT_SKILL_BOOK_NO_DELAY = 513, // ÁÖ¾È ¼ú¼­ (Ã¥ ¼ö·Ã µô·¹ÀÌ ¾øÀ½)
  231.  
  232. NEW_AFFECT_EXP_BONUS_EURO_FREE = 516, // °æÇèÀÇ ¹ÝÁö (À¯·´ ¹öÀü 14 ·¹º§ ÀÌÇÏ ±âº» È¿°ú)
  233. NEW_AFFECT_EXP_BONUS_EURO_FREE_UNDER_15 = 517,
  234.  
  235. NEW_AFFECT_AUTO_HP_RECOVERY = 534, // ÀÚµ¿¹°¾à HP
  236. NEW_AFFECT_AUTO_SP_RECOVERY = 535, // ÀÚµ¿¹°¾à SP
  237.  
  238. NEW_AFFECT_DRAGON_SOUL_QUALIFIED = 540,
  239. NEW_AFFECT_DRAGON_SOUL_DECK1 = 541,
  240. NEW_AFFECT_DRAGON_SOUL_DECK2 = 542,
  241.  
  242. NEW_AFFECT_RAMADAN_ABILITY = 300,
  243. NEW_AFFECT_RAMADAN_RING = 301, // ¶ó¸¶´Ü À̺¥Æ®¿ë Ư¼ö¾ÆÀÌÅÛ Ãʽ´ÞÀÇ ¹ÝÁö Âø¿ë À¯¹«
  244.  
  245. NEW_AFFECT_NOG_POCKET_ABILITY = 302,
  246. #ifdef ENABLE_NEW_AFFECT_POTION
  247. AFFECT_POTION_1 = 303,
  248. AFFECT_POTION_2 = 304,
  249. AFFECT_POTION_3 = 305,
  250. AFFECT_POTION_4 = 306,
  251. AFFECT_POTION_5 = 307,
  252. AFFECT_POTION_6 = 308,
  253. #endif
  254. NEW_AFFECT_BLEEDING = 309,
  255.  
  256. NEW_AFFECT_QUEST_START_IDX = 1000,
  257. };
  258.  
  259. enum
  260. {
  261. STONE_SMOKE1 = 0, // 99%
  262. STONE_SMOKE2 = 1, // 85%
  263. STONE_SMOKE3 = 2, // 80%
  264. STONE_SMOKE4 = 3, // 60%
  265. STONE_SMOKE5 = 4, // 45%
  266. STONE_SMOKE6 = 5, // 40%
  267. STONE_SMOKE7 = 6, // 20%
  268. STONE_SMOKE8 = 7, // 10%
  269. STONE_SMOKE_NUM = 4,
  270. };
  271.  
  272. enum EBuildingAffect
  273. {
  274. BUILDING_CONSTRUCTION_SMALL = 0,
  275. BUILDING_CONSTRUCTION_LARGE = 1,
  276. BUILDING_UPGRADE = 2,
  277. };
  278.  
  279. enum
  280. {
  281. WEAPON_DUALHAND,
  282. WEAPON_ONEHAND,
  283. WEAPON_TWOHAND,
  284. WEAPON_NUM,
  285. };
  286.  
  287. enum
  288. {
  289. EMPIRE_NONE,
  290. EMPIRE_A,
  291. EMPIRE_B,
  292. EMPIRE_C,
  293. EMPIRE_NUM,
  294. };
  295.  
  296. enum
  297. {
  298. NAMECOLOR_MOB,
  299. NAMECOLOR_NPC,
  300. NAMECOLOR_PC,
  301. NAMECOLOR_PC_END = NAMECOLOR_PC + EMPIRE_NUM,
  302. NAMECOLOR_NORMAL_MOB,
  303. NAMECOLOR_NORMAL_NPC,
  304. NAMECOLOR_NORMAL_PC,
  305. NAMECOLOR_NORMAL_PC_END = NAMECOLOR_NORMAL_PC + EMPIRE_NUM,
  306. NAMECOLOR_EMPIRE_MOB,
  307. NAMECOLOR_EMPIRE_NPC,
  308. NAMECOLOR_EMPIRE_PC,
  309. NAMECOLOR_EMPIRE_PC_END = NAMECOLOR_EMPIRE_PC + EMPIRE_NUM,
  310. NAMECOLOR_FUNC,
  311. NAMECOLOR_PK,
  312. NAMECOLOR_PVP,
  313. NAMECOLOR_PARTY,
  314. NAMECOLOR_WARP,
  315. NAMECOLOR_WAYPOINT,
  316. #ifdef TOURNAMENT_PVP_SYSTEM
  317. NAMECOLOR_TOURNAMENT_TEAM_A,
  318. NAMECOLOR_TOURNAMENT_TEAM_B,
  319. #endif
  320. NAMECOLOR_METIN,
  321. NAMECOLOR_OFFLINESHOP,
  322. NAMECOLOR_SUPPORT,
  323. NAMECOLOR_EXTRA = NAMECOLOR_FUNC + 10,
  324. NAMECOLOR_NUM = NAMECOLOR_EXTRA + 10,
  325. };
  326.  
  327. enum
  328. {
  329. ALIGNMENT_TYPE_WHITE,
  330. ALIGNMENT_TYPE_NORMAL,
  331. ALIGNMENT_TYPE_DARK,
  332. };
  333.  
  334. enum
  335. {
  336. EMOTICON_EXCLAMATION = 1,
  337. EMOTICON_FISH = 11,
  338. EMOTICON_NUM = 128,
  339.  
  340. #ifdef ENABLE_TITLE_SYSTEM
  341. TITLE_NUM_PRESTIGE = 20,
  342. TITLE_NONE_PRESTIGE = 19,
  343. #endif
  344.  
  345. #ifdef ENABLE_REBORN_SYSTEM
  346. TITLE_NUM_REBORN = 5,
  347. TITLE_NONE_REBORN = 3,
  348. #endif
  349.  
  350. TITLE_NUM = 9,
  351. TITLE_NONE = 4,
  352. };
  353.  
  354. enum //¾Æ·¡ ¹øÈ£°¡ ¹Ù²î¸é registerEffect Âʵµ ¹Ù²Ù¾î Áà¾ß ÇÑ´Ù.
  355. {
  356. EFFECT_REFINED_NONE,
  357.  
  358. EFFECT_SWORD_REFINED7,
  359. EFFECT_SWORD_REFINED8,
  360. EFFECT_SWORD_REFINED9,
  361.  
  362. EFFECT_BOW_REFINED7,
  363. EFFECT_BOW_REFINED8,
  364. EFFECT_BOW_REFINED9,
  365.  
  366. EFFECT_FANBELL_REFINED7,
  367. EFFECT_FANBELL_REFINED8,
  368. EFFECT_FANBELL_REFINED9,
  369.  
  370. EFFECT_SMALLSWORD_REFINED7,
  371. EFFECT_SMALLSWORD_REFINED8,
  372. EFFECT_SMALLSWORD_REFINED9,
  373.  
  374. EFFECT_SMALLSWORD_REFINED7_LEFT,
  375. EFFECT_SMALLSWORD_REFINED8_LEFT,
  376. EFFECT_SMALLSWORD_REFINED9_LEFT,
  377.  
  378. EFFECT_BODYARMOR_REFINED7,
  379. EFFECT_BODYARMOR_REFINED8,
  380. EFFECT_BODYARMOR_REFINED9,
  381.  
  382. EFFECT_BODYARMOR_SPECIAL, // °©¿Ê 4-2-1
  383. EFFECT_BODYARMOR_SPECIAL2, // °©¿Ê 4-2-2
  384. #ifdef VERSION_162_ENABLED
  385. EFFECT_BODYARMOR_SPECIAL3,
  386. #endif
  387. #ifdef ENABLE_SASH_SYSTEM
  388. EFFECT_SASH,
  389. #endif
  390. EFFECT_BODYARMOR_NEW_DEAMON,
  391. EFFECT_COSTUMEBODY_SPECIAL,
  392. EFFECT_COSTUMEBODY_SPECIAL2,
  393. EFFECT_COSTUMEBODY_SPECIAL3,
  394. EFFECT_COSTUMEBODY_SPECIAL4,
  395. EFFECT_COSTUMEBODY_SPECIAL5,
  396. EFFECT_BODYARMOR_ELECTRIC,
  397.  
  398. EFFECT_SWORD_EVOLUTION1,
  399. EFFECT_SWORD_EVOLUTION2,
  400. EFFECT_SWORD_EVOLUTION3,
  401. EFFECT_SWORD_EVOLUTION4,
  402.  
  403. EFFECT_BOW_EVOLUTION1,
  404. EFFECT_BOW_EVOLUTION2,
  405. EFFECT_BOW_EVOLUTION3,
  406. EFFECT_BOW_EVOLUTION4,
  407.  
  408. EFFECT_FANBELL_EVOLUTION1,
  409. EFFECT_FANBELL_EVOLUTION2,
  410. EFFECT_FANBELL_EVOLUTION3,
  411. EFFECT_FANBELL_EVOLUTION4,
  412.  
  413. EFFECT_SMALLSWORD_EVOLUTION1,
  414. EFFECT_SMALLSWORD_EVOLUTION2,
  415. EFFECT_SMALLSWORD_EVOLUTION3,
  416. EFFECT_SMALLSWORD_EVOLUTION4,
  417.  
  418. EFFECT_SMALLSWORD_EVOLUTION1_LEFT,
  419. EFFECT_SMALLSWORD_EVOLUTION2_LEFT,
  420. EFFECT_SMALLSWORD_EVOLUTION3_LEFT,
  421. EFFECT_SMALLSWORD_EVOLUTION4_LEFT,
  422.  
  423. EFFECT_CLAW_EVOLUTION1,
  424. EFFECT_CLAW_EVOLUTION2,
  425. EFFECT_CLAW_EVOLUTION3,
  426. EFFECT_CLAW_EVOLUTION4,
  427.  
  428. EFFECT_CLAW_EVOLUTION1_LEFT,
  429. EFFECT_CLAW_EVOLUTION2_LEFT,
  430. EFFECT_CLAW_EVOLUTION3_LEFT,
  431. EFFECT_CLAW_EVOLUTION4_LEFT,
  432.  
  433. EFFECT_CLAW_REFINED7,
  434. EFFECT_CLAW_REFINED8,
  435. EFFECT_CLAW_REFINED9,
  436.  
  437. EFFECT_CLAW_REFINED7_LEFT,
  438. EFFECT_CLAW_REFINED8_LEFT,
  439. EFFECT_CLAW_REFINED9_LEFT,
  440.  
  441. //EFFECT_YOUTUBER,
  442. EFFECT_COSTUME_YOUTUBER,
  443. EFFECT_COSTUME_TWITCH,
  444.  
  445. /*EFFECT_COSTUME_SYSTEM_SPECIAL1,
  446. EFFECT_COSTUME_SYSTEM_SPECIAL2,
  447. EFFECT_COSTUME_SYSTEM_SPECIAL3,
  448. EFFECT_COSTUME_SYSTEM_SPECIAL4,
  449. EFFECT_COSTUME_SYSTEM_SPECIAL5,
  450. EFFECT_COSTUME_SYSTEM_SPECIAL6,
  451. EFFECT_COSTUME_SYSTEM_SPECIAL7,*/
  452.  
  453. EFFECT_REFINED_NUM,
  454. };
  455.  
  456. enum DamageFlag
  457. {
  458. DAMAGE_NORMAL = (1<<0),
  459. DAMAGE_POISON = (1<<1),
  460. DAMAGE_DODGE = (1<<2),
  461. DAMAGE_BLOCK = (1<<3),
  462. DAMAGE_PENETRATE= (1<<4),
  463. DAMAGE_CRITICAL = (1<<5),
  464. DAMAGE_BLEEDING = (1 << 6),
  465. DAMAGE_FIRE = (1 << 7),
  466. // ¹Ý-_-»ç
  467. };
  468.  
  469. enum
  470. {
  471. EFFECT_DUST,
  472. EFFECT_STUN,
  473. EFFECT_HIT,
  474. EFFECT_FLAME_ATTACK,
  475. EFFECT_FLAME_HIT,
  476. EFFECT_FLAME_ATTACH,
  477. EFFECT_ELECTRIC_ATTACK,
  478. EFFECT_ELECTRIC_HIT,
  479. EFFECT_ELECTRIC_ATTACH,
  480. EFFECT_SPAWN_APPEAR,
  481. EFFECT_SPAWN_DISAPPEAR,
  482. EFFECT_LEVELUP,
  483. EFFECT_SKILLUP,
  484. EFFECT_HPUP_RED,
  485. EFFECT_SPUP_BLUE,
  486. EFFECT_SPEEDUP_GREEN,
  487. EFFECT_DXUP_PURPLE,
  488. EFFECT_CRITICAL,
  489. EFFECT_PENETRATE,
  490. EFFECT_BLOCK,
  491. EFFECT_DODGE,
  492. EFFECT_FIRECRACKER,
  493. EFFECT_SPIN_TOP,
  494. EFFECT_WEAPON,
  495. EFFECT_WEAPON_END = EFFECT_WEAPON + WEAPON_NUM,
  496. EFFECT_AFFECT,
  497. EFFECT_AFFECT_GYEONGGONG = EFFECT_AFFECT + AFFECT_GYEONGGONG,
  498. EFFECT_AFFECT_KWAESOK = EFFECT_AFFECT + AFFECT_KWAESOK,
  499. EFFECT_AFFECT_END = EFFECT_AFFECT + AFFECT_NUM,
  500. EFFECT_EMOTICON,
  501. EFFECT_EMOTICON_END = EFFECT_EMOTICON + EMOTICON_NUM,
  502. EFFECT_MONSTER,
  503. EFFECT_STONE,
  504. EFFECT_SHINSOO,
  505. EFFECT_CHUNJO,
  506. EFFECT_JINNOS,
  507. EFFECT_TARGET_SHINSOO,
  508. EFFECT_TARGET_JINNOS,
  509. EFFECT_TARGET_CHUNJO,
  510. EFFECT_TARGET_MONSTER,
  511. EFFECT_TARGET_STONE,
  512. EFFECT_SELECT,
  513. EFFECT_TARGET,
  514. EFFECT_EMPIRE,
  515. EFFECT_EMPIRE_END = EFFECT_EMPIRE + EMPIRE_NUM,
  516. EFFECT_HORSE_DUST,
  517. EFFECT_REFINED,
  518. EFFECT_REFINED_END = EFFECT_REFINED + EFFECT_REFINED_NUM,
  519. EFFECT_DAMAGE_TARGET,
  520. EFFECT_DAMAGE_NOT_TARGET,
  521. EFFECT_DAMAGE_SELFDAMAGE,
  522. EFFECT_DAMAGE_SELFDAMAGE2,
  523. EFFECT_DAMAGE_POISON,
  524. EFFECT_DAMAGE_MISS,
  525. EFFECT_DAMAGE_TARGETMISS,
  526. EFFECT_DAMAGE_CRITICAL,
  527. EFFECT_SUCCESS,
  528. EFFECT_FAIL,
  529. EFFECT_FR_SUCCESS,
  530. EFFECT_LEVELUP_ON_14_FOR_GERMANY, //·¹º§¾÷ 14À϶§ ( µ¶ÀÏÀü¿ë )
  531. EFFECT_LEVELUP_UNDER_15_FOR_GERMANY,//·¹º§¾÷ 15À϶§ ( µ¶ÀÏÀü¿ë )
  532. EFFECT_PERCENT_DAMAGE1,
  533. EFFECT_PERCENT_DAMAGE2,
  534. EFFECT_PERCENT_DAMAGE3,
  535. EFFECT_AUTO_HPUP,
  536. EFFECT_AUTO_SPUP,
  537. EFFECT_RAMADAN_RING_EQUIP, // ÃÊ½Â´Þ ¹ÝÁö Âø¿ë ¼ø°£¿¡ ¹ßµ¿ÇÏ´Â ÀÌÆåÆ®
  538. EFFECT_HALLOWEEN_CANDY_EQUIP, // ÇÒ·ÎÀ© »çÅÁ Âø¿ë ¼ø°£¿¡ ¹ßµ¿ÇÏ´Â ÀÌÆåÆ®
  539. EFFECT_HAPPINESS_RING_EQUIP, // ÇູÀÇ ¹ÝÁö Âø¿ë ¼ø°£¿¡ ¹ßµ¿ÇÏ´Â ÀÌÆåÆ®
  540. EFFECT_LOVE_PENDANT_EQUIP, // ÇູÀÇ ¹ÝÁö Âø¿ë ¼ø°£¿¡ ¹ßµ¿ÇÏ´Â ÀÌÆåÆ®
  541. #ifdef VERSION_162_ENABLED
  542. EFFECT_HEALER,
  543. #endif
  544. EFFECT_EQUIP_RUZGAR,
  545. EFFECT_DUEL_VICTIM,
  546. EFFECT_DUEL_KILLER,
  547. EFFECT_DUEL_SENDER,
  548. EFFECT_DUEL_RECEIVER,
  549. EFFECT_DUEL_5,
  550. EFFECT_DUEL_4,
  551. EFFECT_DUEL_3,
  552. EFFECT_DUEL_2,
  553. EFFECT_DUEL_1,
  554. EFFECT_DUEL_0,
  555. #ifdef ENABLE_SASH_SYSTEM
  556. EFFECT_SASH_SUCCEDED,
  557. EFFECT_SASH_EQUIP,
  558. #endif
  559. EFFECT_TEMP,
  560. #ifdef ENABLE_MOUNT_SYSTEM
  561. EFFECT_MOUNT_1,
  562. EFFECT_MOUNT_2,
  563. EFFECT_MOUNT_3,
  564. EFFECT_MOUNT_4,
  565. EFFECT_MOUNT_5,
  566. EFFECT_MOUNT_6,
  567. EFFECT_MOUNT_7,
  568. EFFECT_MOUNT_8,
  569. EFFECT_MOUNT_9,
  570. EFFECT_MOUNT_10,
  571. EFFECT_MOUNT_11,
  572. EFFECT_MOUNT_12,
  573. EFFECT_MOUNT_13,
  574. EFFECT_MOUNT_14,
  575. EFFECT_MOUNT_15,
  576. EFFECT_MOUNT_16,
  577. EFFECT_MOUNT_17,
  578. EFFECT_MOUNT_18,
  579. EFFECT_MOUNT_19,
  580. EFFECT_MOUNT_20,
  581. EFFECT_MOUNT_21,
  582. EFFECT_MOUNT_22,
  583. EFFECT_MOUNT_23,
  584. EFFECT_MOUNT_24,
  585. EFFECT_MOUNT_25,
  586. EFFECT_MOUNT_26,
  587. EFFECT_MOUNT_27,
  588. EFFECT_MOUNT_28,
  589. EFFECT_MOUNT_29,
  590. EFFECT_MOUNT_30,
  591. EFFECT_MOUNT_31,
  592. EFFECT_MOUNT_32,
  593. EFFECT_MOUNT_33,
  594. EFFECT_MOUNT_34,
  595. EFFECT_MOUNT_35,
  596. EFFECT_MOUNT_36,
  597. EFFECT_MOUNT_37,
  598. EFFECT_MOUNT_38,
  599. EFFECT_MOUNT_39,
  600. EFFECT_MOUNT_40,
  601. EFFECT_MOUNT_41,
  602. EFFECT_MOUNT_42,
  603. EFFECT_MOUNT_43,
  604. EFFECT_MOUNT_44,
  605. EFFECT_MOUNT_45,
  606. EFFECT_MOUNT_46,
  607. EFFECT_MOUNT_47,
  608. EFFECT_MOUNT_48,
  609. EFFECT_MOUNT_49,
  610. EFFECT_MOUNT_50,
  611. EFFECT_MOUNT_51,
  612. EFFECT_MOUNT_52,
  613. EFFECT_MOUNT_53,
  614. EFFECT_MOUNT_54,
  615. EFFECT_MOUNT_55,
  616. EFFECT_MOUNT_56,
  617. EFFECT_MOUNT_57,
  618. EFFECT_MOUNT_58,
  619. EFFECT_MOUNT_59,
  620. EFFECT_MOUNT_60,
  621. EFFECT_MOUNT_61,
  622. #endif
  623. EFFECT_DAMAGE_BLEEDING,
  624. EFFECT_DAMAGE_FIRE,
  625. #if defined(WJ_COMBAT_ZONE)
  626. EFFECT_COMBAT_ZONE_POTION,
  627. #endif
  628. EFEKT_BOSSA,
  629. #ifdef ENABLE_AGGREGATE_MONSTER_EFFECT
  630. EFFECT_AGGREGATE_MONSTER,
  631. #endif
  632.  
  633. EFFECT_NUM,
  634. };
  635.  
  636. enum
  637. {
  638. DUEL_NONE,
  639. DUEL_CANNOTATTACK,
  640. DUEL_START,
  641. };
  642.  
  643. public:
  644. static void DestroySystem();
  645. static void CreateSystem(UINT uCapacity);
  646. static bool RegisterEffect(UINT eEftType, const char* c_szEftAttachBone, const char* c_szEftName, bool isCache);
  647. static void RegisterTitleName(int iIndex, const char * c_szTitleName);
  648. #ifdef ENABLE_TITLE_SYSTEM
  649. static void RegisterTitlePrestigeName(int iIndex, const char * c_szTitlePrestigeName);
  650. #endif
  651. #ifdef ENABLE_REBORN_SYSTEM
  652. static void RegisterTitleRebornName(int iIndex, const char * c_szTitleRebornName);
  653. #endif
  654. static bool RegisterNameColor(UINT uIndex, UINT r, UINT g, UINT b);
  655. static bool RegisterTitleColor(UINT uIndex, UINT r, UINT g, UINT b);
  656. #ifdef ENABLE_TITLE_SYSTEM
  657. static bool RegisterTitlePrestigeColor(UINT uIndex, UINT r, UINT g, UINT b);
  658. #endif
  659. #ifdef ENABLE_REBORN_SYSTEM
  660. static bool RegisterTitleRebornColor(UINT uIndex, UINT r, UINT g, UINT b);
  661. #endif
  662. static bool ChangeEffectTexture(UINT eEftType, const char* c_szSrcFileName, const char* c_szDstFileName);
  663.  
  664. static void SetDustGap(float fDustGap);
  665. static void SetHorseDustGap(float fDustGap);
  666.  
  667. static void SetEmpireNameMode(bool isEnable);
  668. static const D3DXCOLOR& GetIndexedNameColor(UINT eNameColor);
  669.  
  670. public:
  671. void SetMainInstance();
  672.  
  673. void OnSelected();
  674. void OnUnselected();
  675. void OnTargeted();
  676. void OnUntargeted();
  677.  
  678. protected:
  679. bool __IsExistMainInstance();
  680. bool __IsMainInstance();
  681. bool __MainCanSeeHiddenThing();
  682. float __GetBowRange();
  683.  
  684. protected:
  685. DWORD __AttachEffect(UINT eEftType);
  686. DWORD __AttachEffect(char filename[128]);
  687. void __DetachEffect(DWORD dwEID);
  688.  
  689. public:
  690. void CreateSpecialEffect(DWORD iEffectIndex);
  691. void AttachSpecialEffect(DWORD effect);
  692.  
  693. protected:
  694. static std::string ms_astAffectEffectAttachBone[EFFECT_NUM];
  695. static DWORD ms_adwCRCAffectEffect[EFFECT_NUM];
  696. static float ms_fDustGap;
  697. static float ms_fHorseDustGap;
  698.  
  699. public:
  700. CInstanceBase();
  701. virtual ~CInstanceBase();
  702.  
  703. bool LessRenderOrder(CInstanceBase* pkInst);
  704.  
  705. void MountHorse(UINT eRace);
  706. void DismountHorse();
  707.  
  708. // ½ºÅ©¸³Æ®¿ë Å×½ºÆ® ÇÔ¼ö. ³ªÁß¿¡ ¾ø¿¡ÀÚ
  709. void SCRIPT_SetAffect(UINT eAffect, bool isVisible);
  710.  
  711. float CalculateDistanceSq3d(const TPixelPosition& c_rkPPosDst);
  712.  
  713. // Instance Data
  714. bool IsFlyTargetObject();
  715. void ClearFlyTargetInstance();
  716. void SetFlyTargetInstance(CInstanceBase& rkInstDst);
  717. void AddFlyTargetInstance(CInstanceBase& rkInstDst);
  718. void AddFlyTargetPosition(const TPixelPosition& c_rkPPosDst);
  719.  
  720. float GetFlyTargetDistance();
  721.  
  722. void SetAlpha(float fAlpha);
  723.  
  724. void DeleteBlendOut();
  725.  
  726. void AttachTextTail();
  727. void DetachTextTail();
  728. void UpdateTextTailLevel(DWORD level);
  729.  
  730. void RefreshTextTail();
  731. void RefreshTextTailTitle();
  732.  
  733. bool Create(const SCreateData& c_rkCreateData);
  734.  
  735. bool CreateDeviceObjects();
  736. void DestroyDeviceObjects();
  737.  
  738. void Destroy();
  739.  
  740. void Update();
  741. bool UpdateDeleting();
  742.  
  743. void Transform();
  744. void Deform();
  745. void Render();
  746. void RenderTrace();
  747. void RenderToShadowMap();
  748. void RenderCollision();
  749. void RegisterBoundingSphere();
  750.  
  751. // Temporary
  752. void GetBoundBox(D3DXVECTOR3 * vtMin, D3DXVECTOR3 * vtMax);
  753.  
  754. void SetNameString(const char* c_szName, int len);
  755. bool SetRace(DWORD dwRaceIndex);
  756. void SetVirtualID(DWORD wVirtualNumber);
  757. void SetVirtualNumber(DWORD dwVirtualNumber);
  758. void SetInstanceType(int iInstanceType);
  759. void SetAlignment(short sAlignment);
  760. #ifdef ENABLE_TITLE_SYSTEM
  761. void SetPrestige(short sPrestige);
  762. #endif
  763. #ifdef ENABLE_REBORN_SYSTEM
  764. void SetReborn(short sReborn);
  765. #endif
  766. void SetLevelText(int mLevel);
  767. void SetLevel(DWORD level);
  768. void SetPKMode(BYTE byPKMode);
  769. void SetKiller(bool bFlag);
  770. void SetPartyMemberFlag(bool bFlag);
  771. void SetStateFlags(DWORD dwStateFlags);
  772.  
  773. void SetArmor(DWORD dwArmor);
  774. void SetShape(DWORD eShape, float fSpecular=0.0f);
  775. void SetHair(DWORD eHair);
  776. /*void SetAcce(DWORD eAcce);
  777. void ChangeAcce(DWORD eAcce);*/
  778. #ifdef ENABLE_SASH_SYSTEM
  779. void SetSash(DWORD dwSash);
  780. void ChangeSash(DWORD dwSash);
  781. #endif
  782. bool SetWeapon(DWORD eWeapon, DWORD dwEvolution, DWORD eArrow = 0);
  783. void SetWeaponEvolution(DWORD dwEvolution);
  784. //void SetCostumEvo(DWORD dwCostumEvo);
  785. bool ChangeArmor(DWORD dwArmor);
  786. void ChangeWeapon(DWORD eWeapon, DWORD dwEvolution, DWORD eArrow = 0);
  787. void ChangeHair(DWORD eHair);
  788. void ChangeGuild(DWORD dwGuildID, DWORD dwNewIsGuildName);
  789. DWORD GetWeaponType();
  790.  
  791. void SetComboType(UINT uComboType);
  792. void SetAttackSpeed(UINT uAtkSpd);
  793. void SetMoveSpeed(UINT uMovSpd);
  794. void SetRotationSpeed(float fRotSpd);
  795.  
  796. const char * GetNameString();
  797. #if defined(WJ_COMBAT_ZONE)
  798. bool IsCombatZoneMap();
  799. void SetCombatZonePoints(DWORD dwValue);
  800. DWORD GetCombatZonePoints();
  801. void SetCombatZoneRank(BYTE bValue);
  802. BYTE GetCombatZoneRank();
  803. #endif
  804.  
  805. int GetInstanceType();
  806. #ifdef ENABLE_NEW_EXCHANGE_WINDOW
  807. DWORD GetLevel();
  808. #endif
  809. DWORD GetPart(CRaceData::EParts part);
  810. DWORD GetShape();
  811. DWORD GetRace();
  812. DWORD GetVirtualID();
  813. DWORD GetVirtualNumber();
  814. DWORD GetEmpireID();
  815. DWORD GetGuildID();
  816. #ifdef WJ_SHOW_MOB_INFO
  817. DWORD GetAIFlag();
  818. #endif
  819. BYTE GetNewIsGuildName();
  820. int GetAlignment();
  821. UINT GetAlignmentGrade();
  822. int GetAlignmentType();
  823. #ifdef ENABLE_TITLE_SYSTEM
  824. int GetPrestige();
  825. UINT GetPrestigeGrade();
  826. #endif
  827. #ifdef ENABLE_REBORN_SYSTEM
  828. int GetReborn();
  829. UINT GetRebornGrade();
  830. #endif
  831. BYTE GetPKMode();
  832. bool IsKiller();
  833. bool IsPartyMember();
  834. #ifdef TOURNAMENT_PVP_SYSTEM
  835. bool IsTournamentMap();
  836. #endif
  837.  
  838. void ActDualEmotion(CInstanceBase & rkDstInst, WORD dwMotionNumber1, WORD dwMotionNumber2);
  839. void ActEmotion(DWORD dwMotionNumber);
  840. void LevelUp();
  841. void SkillUp();
  842. void UseSpinTop();
  843. void Revive();
  844. void Stun();
  845. void Die();
  846. void Hide();
  847. void Show();
  848.  
  849. bool CanAct();
  850. bool CanMove();
  851. bool CanAttack();
  852. bool CanUseSkill();
  853. bool CanFishing();
  854. bool IsConflictAlignmentInstance(CInstanceBase& rkInstVictim);
  855. bool IsAttackableInstance(CInstanceBase& rkInstVictim);
  856. bool IsTargetableInstance(CInstanceBase& rkInstVictim);
  857. bool IsPVPInstance(CInstanceBase& rkInstVictim);
  858. bool CanChangeTarget();
  859. bool CanPickInstance();
  860. bool CanViewTargetHP(CInstanceBase& rkInstVictim);
  861.  
  862.  
  863. // Movement
  864. BOOL IsGoing();
  865. bool NEW_Goto(const TPixelPosition& c_rkPPosDst, float fDstRot);
  866. void EndGoing();
  867.  
  868. void SetRunMode();
  869. void SetWalkMode();
  870.  
  871. bool IsAffect(UINT uAffect);
  872. BOOL IsInvisibility();
  873. BOOL IsParalysis();
  874. BOOL IsGameMaster();
  875. BOOL IsSameEmpire(CInstanceBase& rkInstDst);
  876. BOOL IsBowMode();
  877. BOOL IsHandMode();
  878. BOOL IsFishingMode();
  879. BOOL IsFishing();
  880.  
  881. BOOL IsWearingDress();
  882. BOOL IsHoldingPickAxe();
  883. BOOL IsMountingHorse();
  884. BOOL IsNewMount();
  885. BOOL IsForceVisible();
  886. BOOL IsInSafe();
  887. #ifdef NEW_PET_SYSTEM
  888. BOOL IsNewPet();
  889. #endif
  890. BOOL IsEnemy();
  891. BOOL IsStone();
  892. BOOL IsResource();
  893. BOOL IsNPC();
  894. BOOL IsPC();
  895. BOOL IsPoly();
  896. BOOL IsWarp();
  897. BOOL IsGoto();
  898. BOOL IsObject();
  899. BOOL IsDoor();
  900. BOOL IsBuilding();
  901. BOOL IsWoodenDoor();
  902. BOOL IsStoneDoor();
  903. BOOL IsFlag();
  904. BOOL IsGuildWall();
  905. BOOL IsOfflineShop();
  906. BOOL IsSupport();
  907.  
  908. BOOL IsDead();
  909. BOOL IsStun();
  910. BOOL IsSleep();
  911. BOOL __IsSyncing();
  912. BOOL IsWaiting();
  913. BOOL IsWalking();
  914. BOOL IsPushing();
  915. BOOL IsAttacking();
  916. BOOL IsActingEmotion();
  917. BOOL IsAttacked();
  918. BOOL IsKnockDown();
  919. BOOL IsUsingSkill();
  920. BOOL IsUsingMovingSkill();
  921. BOOL CanCancelSkill();
  922. BOOL CanAttackHorseLevel();
  923.  
  924. #ifdef __MOVIE_MODE__
  925. BOOL IsMovieMode(); // ¿î¿µÀÚ¿ë ¿ÏÀüÈ÷ ¾Èº¸À̴°Å
  926. #endif
  927. bool NEW_CanMoveToDestPixelPosition(const TPixelPosition& c_rkPPosDst);
  928.  
  929. void NEW_SetAdvancingRotationFromPixelPosition(const TPixelPosition& c_rkPPosSrc, const TPixelPosition& c_rkPPosDst);
  930. void NEW_SetAdvancingRotationFromDirPixelPosition(const TPixelPosition& c_rkPPosDir);
  931. bool NEW_SetAdvancingRotationFromDestPixelPosition(const TPixelPosition& c_rkPPosDst);
  932. void SetAdvancingRotation(float fRotation);
  933.  
  934. void EndWalking(float fBlendingTime=0.15f);
  935. void EndWalkingWithoutBlending();
  936.  
  937. // Battle
  938. void SetEventHandler(CActorInstance::IEventHandler* pkEventHandler);
  939.  
  940. void PushUDPState(DWORD dwCmdTime, const TPixelPosition& c_rkPPosDst, float fDstRot, UINT eFunc, UINT uArg);
  941. void PushTCPState(DWORD dwCmdTime, const TPixelPosition& c_rkPPosDst, float fDstRot, UINT eFunc, UINT uArg);
  942. void PushTCPStateExpanded(DWORD dwCmdTime, const TPixelPosition& c_rkPPosDst, float fDstRot, UINT eFunc, UINT uArg, UINT uTargetVID);
  943.  
  944. void NEW_Stop();
  945.  
  946. bool NEW_UseSkill(UINT uSkill, UINT uMot, UINT uMotLoopCount, bool isMovingSkill);
  947. void NEW_Attack();
  948. void NEW_Attack(float fDirRot);
  949. void NEW_AttackToDestPixelPositionDirection(const TPixelPosition& c_rkPPosDst);
  950. bool NEW_AttackToDestInstanceDirection(CInstanceBase& rkInstDst, IFlyEventHandler* pkFlyHandler);
  951. bool NEW_AttackToDestInstanceDirection(CInstanceBase& rkInstDst);
  952.  
  953. bool NEW_MoveToDestPixelPositionDirection(const TPixelPosition& c_rkPPosDst);
  954. void NEW_MoveToDestInstanceDirection(CInstanceBase& rkInstDst);
  955. void NEW_MoveToDirection(float fDirRot);
  956.  
  957. float NEW_GetDistanceFromDirPixelPosition(const TPixelPosition& c_rkPPosDir);
  958. float NEW_GetDistanceFromDestPixelPosition(const TPixelPosition& c_rkPPosDst);
  959. float NEW_GetDistanceFromDestInstance(CInstanceBase& rkInstDst);
  960.  
  961. float NEW_GetRotation();
  962. float NEW_GetRotationFromDestPixelPosition(const TPixelPosition& c_rkPPosDst);
  963. float NEW_GetRotationFromDirPixelPosition(const TPixelPosition& c_rkPPosDir);
  964. float NEW_GetRotationFromDestInstance(CInstanceBase& rkInstDst);
  965.  
  966. float NEW_GetAdvancingRotationFromDirPixelPosition(const TPixelPosition& c_rkPPosDir);
  967. float NEW_GetAdvancingRotationFromDestPixelPosition(const TPixelPosition& c_rkPPosDst);
  968. float NEW_GetAdvancingRotationFromPixelPosition(const TPixelPosition& c_rkPPosSrc, const TPixelPosition& c_rkPPosDst);
  969.  
  970. BOOL NEW_IsClickableDistanceDestPixelPosition(const TPixelPosition& c_rkPPosDst);
  971. BOOL NEW_IsClickableDistanceDestInstance(CInstanceBase& rkInstDst);
  972.  
  973. bool NEW_GetFrontInstance(CInstanceBase ** ppoutTargetInstance, float fDistance);
  974. void NEW_GetRandomPositionInFanRange(CInstanceBase& rkInstTarget, TPixelPosition* pkPPosDst);
  975. bool NEW_GetInstanceVectorInFanRange(float fSkillDistance, CInstanceBase& rkInstTarget, std::vector<CInstanceBase*>* pkVct_pkInst);
  976. bool NEW_GetInstanceVectorInCircleRange(float fSkillDistance, std::vector<CInstanceBase*>* pkVct_pkInst);
  977.  
  978. void NEW_SetOwner(DWORD dwOwnerVID);
  979. void NEW_SyncPixelPosition(long & nPPosX, long & nPPosY);
  980. void NEW_SyncCurrentPixelPosition();
  981.  
  982. void NEW_SetPixelPosition(const TPixelPosition& c_rkPPosDst);
  983.  
  984. bool NEW_IsLastPixelPosition();
  985. const TPixelPosition& NEW_GetLastPixelPositionRef();
  986.  
  987.  
  988. // Battle
  989. BOOL isNormalAttacking();
  990. BOOL isComboAttacking();
  991. MOTION_KEY GetNormalAttackIndex();
  992. DWORD GetComboIndex();
  993. float GetAttackingElapsedTime();
  994. void InputNormalAttack(float fAtkDirRot);
  995. void InputComboAttack(float fAtkDirRot);
  996.  
  997. void RunNormalAttack(float fAtkDirRot);
  998. void RunComboAttack(float fAtkDirRot, DWORD wMotionIndex);
  999.  
  1000. CInstanceBase* FindNearestVictim();
  1001. BOOL CheckAdvancing();
  1002.  
  1003.  
  1004. bool AvoidObject(const CGraphicObjectInstance& c_rkBGObj);
  1005. bool IsBlockObject(const CGraphicObjectInstance& c_rkBGObj);
  1006. void BlockMovement();
  1007.  
  1008. public:
  1009. BOOL CheckAttacking(CInstanceBase& rkInstVictim);
  1010. void ProcessHitting(DWORD dwMotionKey, CInstanceBase * pVictimInstance);
  1011. void ProcessHitting(DWORD dwMotionKey, BYTE byEventIndex, CInstanceBase * pVictimInstance);
  1012. void GetBlendingPosition(TPixelPosition * pPixelPosition);
  1013. void SetBlendingPosition(const TPixelPosition & c_rPixelPosition);
  1014.  
  1015. // Fishing
  1016. void StartFishing(float frot);
  1017. void StopFishing();
  1018. void ReactFishing();
  1019. void CatchSuccess();
  1020. void CatchFail();
  1021. BOOL GetFishingRot(int * pirot);
  1022.  
  1023. // Render Mode
  1024. void RestoreRenderMode();
  1025. void SetAddRenderMode();
  1026. void SetModulateRenderMode();
  1027. void SetRenderMode(int iRenderMode);
  1028. void SetAddColor(const D3DXCOLOR & c_rColor);
  1029.  
  1030. // Position
  1031. void SCRIPT_SetPixelPosition(float fx, float fy);
  1032. void NEW_GetPixelPosition(TPixelPosition * pPixelPosition);
  1033.  
  1034. // Rotation
  1035. void NEW_LookAtFlyTarget();
  1036. void NEW_LookAtDestInstance(CInstanceBase& rkInstDst);
  1037. void NEW_LookAtDestPixelPosition(const TPixelPosition& c_rkPPosDst);
  1038.  
  1039. float GetRotation();
  1040. float GetAdvancingRotation();
  1041. void SetRotation(float fRotation);
  1042. void BlendRotation(float fRotation, float fBlendTime = 0.1f);
  1043.  
  1044. void SetDirection(int dir);
  1045. void BlendDirection(int dir, float blendTime);
  1046. float GetDegreeFromDirection(int dir);
  1047.  
  1048. // Motion
  1049. // Motion Deque
  1050. BOOL isLock();
  1051.  
  1052. void SetMotionMode(int iMotionMode);
  1053. int GetMotionMode(DWORD dwMotionIndex);
  1054.  
  1055. // Motion
  1056. // Pushing Motion
  1057. void ResetLocalTime();
  1058. void SetLoopMotion(WORD wMotion, float fBlendTime=0.1f, float fSpeedRatio=1.0f);
  1059. void PushOnceMotion(WORD wMotion, float fBlendTime=0.1f, float fSpeedRatio=1.0f);
  1060. void PushLoopMotion(WORD wMotion, float fBlendTime=0.1f, float fSpeedRatio=1.0f);
  1061. void SetEndStopMotion();
  1062.  
  1063. // Intersect
  1064. bool IntersectDefendingSphere();
  1065. bool IntersectBoundingBox();
  1066.  
  1067. // Part
  1068. //void SetParts(const WORD * c_pParts);
  1069. void Refresh(DWORD dwMotIndex, bool isLoop);
  1070.  
  1071. //void AttachEffectByID(DWORD dwParentPartIndex, const char * c_pszBoneName, DWORD dwEffectID, int dwLife = CActorInstance::EFFECT_LIFE_INFINITE ); // ¼ö¸íÀº ms´ÜÀ§ÀÔ´Ï´Ù.
  1072. //void AttachEffectByName(DWORD dwParentPartIndex, const char * c_pszBoneName, const char * c_pszEffectName, int dwLife = CActorInstance::EFFECT_LIFE_INFINITE ); // ¼ö¸íÀº ms´ÜÀ§ÀÔ´Ï´Ù.
  1073.  
  1074. float GetDistance(CInstanceBase * pkTargetInst);
  1075. float GetDistance(const TPixelPosition & c_rPixelPosition);
  1076. #ifdef ENABLE_RACE_HEIGHT
  1077. float GetBaseHeight();
  1078. #endif
  1079.  
  1080. // ETC
  1081. CActorInstance& GetGraphicThingInstanceRef();
  1082. CActorInstance* GetGraphicThingInstancePtr();
  1083.  
  1084. bool __Background_IsWaterPixelPosition(const TPixelPosition& c_rkPPos);
  1085. bool __Background_GetWaterHeight(const TPixelPosition& c_rkPPos, float* pfHeight);
  1086.  
  1087. // 2004.07.25.myevan.ÀÌÆåÆ® ¾È³ª¿À´Â ¹®Á¦
  1088. /////////////////////////////////////////////////////////////
  1089. void __ClearAffectFlagContainer();
  1090. void __ClearAffects();
  1091. /////////////////////////////////////////////////////////////
  1092.  
  1093. void __SetAffect(UINT eAffect, bool isVisible);
  1094.  
  1095. void SetAffectFlagContainer(const CAffectFlagContainer& c_rkAffectFlagContainer);
  1096.  
  1097. void __SetNormalAffectFlagContainer(const CAffectFlagContainer& c_rkAffectFlagContainer);
  1098. void __SetStoneSmokeFlagContainer(const CAffectFlagContainer& c_rkAffectFlagContainer);
  1099.  
  1100. void SetEmoticon(UINT eEmoticon);
  1101. void SetFishEmoticon();
  1102. bool IsPossibleEmoticon();
  1103.  
  1104. protected:
  1105. UINT __LessRenderOrder_GetLODLevel();
  1106. void __Initialize();
  1107. void __InitializeRotationSpeed();
  1108.  
  1109. void __Create_SetName(const SCreateData& c_rkCreateData);
  1110. void __Create_SetWarpName(const SCreateData& c_rkCreateData);
  1111.  
  1112. CInstanceBase* __GetMainInstancePtr();
  1113. CInstanceBase* __FindInstancePtr(DWORD dwVID);
  1114.  
  1115. bool __FindRaceType(DWORD dwRace, BYTE* pbType);
  1116. DWORD __GetRaceType();
  1117.  
  1118. bool __IsShapeAnimalWear();
  1119. BOOL __IsChangableWeapon(int iWeaponID);
  1120.  
  1121. void __EnableSkipCollision();
  1122. void __DisableSkipCollision();
  1123.  
  1124. void __ClearMainInstance();
  1125.  
  1126. void __Shaman_SetParalysis(bool isParalysis);
  1127. void __Warrior_SetGeomgyeongAffect(bool isVisible);
  1128. void __Assassin_SetEunhyeongAffect(bool isVisible);
  1129. void __SetReviveInvisibilityAffect(bool isVisible);
  1130.  
  1131. BOOL __CanProcessNetworkStatePacket();
  1132.  
  1133. bool __IsInDustRange();
  1134.  
  1135. // Emotion
  1136. void __ProcessFunctionEmotion(DWORD dwMotionNumber, DWORD dwTargetVID, const TPixelPosition & c_rkPosDst);
  1137. void __EnableChangingTCPState();
  1138. void __DisableChangingTCPState();
  1139. BOOL __IsEnableTCPProcess(UINT eCurFunc);
  1140.  
  1141. // 2004.07.17.levites.isShow¸¦ ViewFrustumCheck·Î º¯°æ
  1142. bool __CanRender();
  1143. bool __IsInViewFrustum();
  1144.  
  1145. // HORSE
  1146. void __AttachHorseSaddle();
  1147. void __DetachHorseSaddle();
  1148.  
  1149. struct SHORSE
  1150. {
  1151. bool m_isMounting;
  1152. CActorInstance* m_pkActor;
  1153.  
  1154. SHORSE();
  1155. ~SHORSE();
  1156.  
  1157. void Destroy();
  1158. void Create(const TPixelPosition& c_rkPPos, UINT eRace, UINT eHitEffect);
  1159.  
  1160. void SetAttackSpeed(UINT uAtkSpd);
  1161. void SetMoveSpeed(UINT uMovSpd);
  1162. void Deform();
  1163. void Render();
  1164. CActorInstance& GetActorRef();
  1165. CActorInstance* GetActorPtr();
  1166.  
  1167. bool IsMounting();
  1168. bool CanAttack();
  1169. bool CanUseSkill();
  1170.  
  1171. UINT GetLevel();
  1172. bool IsNewMount();
  1173.  
  1174. void __Initialize();
  1175. } m_kHorse;
  1176.  
  1177.  
  1178. protected:
  1179. // Blend Mode
  1180. void __SetBlendRenderingMode();
  1181. void __SetAlphaValue(float fAlpha);
  1182. float __GetAlphaValue();
  1183.  
  1184. void __ComboProcess();
  1185. void MovementProcess();
  1186. void TodoProcess();
  1187. void StateProcess();
  1188. void AttackProcess();
  1189.  
  1190. void StartWalking();
  1191. float GetLocalTime();
  1192.  
  1193. void RefreshState(DWORD dwMotIndex, bool isLoop);
  1194. void RefreshActorInstance();
  1195.  
  1196. protected:
  1197. void OnSyncing();
  1198. void OnWaiting();
  1199. void OnMoving();
  1200.  
  1201. void NEW_SetCurPixelPosition(const TPixelPosition& c_rkPPosDst);
  1202. void NEW_SetSrcPixelPosition(const TPixelPosition& c_rkPPosDst);
  1203. void NEW_SetDstPixelPosition(const TPixelPosition& c_rkPPosDst);
  1204. void NEW_SetDstPixelPositionZ(FLOAT z);
  1205.  
  1206. const TPixelPosition& NEW_GetCurPixelPositionRef();
  1207. const TPixelPosition& NEW_GetSrcPixelPositionRef();
  1208.  
  1209. public:
  1210. const TPixelPosition& NEW_GetDstPixelPositionRef();
  1211.  
  1212. protected:
  1213. BOOL m_isTextTail;
  1214.  
  1215. // Instance Data
  1216. std::string m_stName;
  1217.  
  1218. DWORD m_awPart[CRaceData::PART_MAX_NUM];
  1219.  
  1220. DWORD m_dwLevel;
  1221. #if defined(WJ_SHOW_MOB_INFO)
  1222. DWORD m_dwAIFlag;
  1223. #endif
  1224. DWORD m_dwWeaponEvolution;
  1225. //DWORD m_dwCostumEvo;
  1226. DWORD m_dwEmpireID;
  1227. DWORD m_dwGuildID;
  1228. BYTE m_dwNewIsGuildName;
  1229. bool m_bIsHidden;
  1230. public:
  1231. bool IsHidden();
  1232.  
  1233. protected:
  1234. CAffectFlagContainer m_kAffectFlagContainer;
  1235. DWORD m_adwCRCAffectEffect[AFFECT_NUM];
  1236.  
  1237. UINT __GetRefinedEffect(CItemData* pItem, DWORD dwEvolution = 0);
  1238. void __ClearWeaponRefineEffect();
  1239. void __ClearArmorRefineEffect();
  1240. //void __ClearAcceRefineEffect();
  1241. #ifdef ENABLE_SASH_SYSTEM
  1242. void ClearSashEffect();
  1243. #endif
  1244.  
  1245. protected:
  1246. void __AttachSelectEffect();
  1247. void __DetachSelectEffect();
  1248.  
  1249. void __AttachTargetEffect();
  1250. void __DetachTargetEffect();
  1251.  
  1252. void __AttachTargetEffectMonster();
  1253. void __DetachTargetEffectMonster();
  1254. void __AttachSelectEffectMonster();
  1255. void __DetachSelectEffectMonster();
  1256.  
  1257. void __AttachTargetEffectStone();
  1258. void __DetachTargetEffectStone();
  1259. void __AttachSelectEffectStone();
  1260. void __DetachSelectEffectStone();
  1261.  
  1262. void __AttachTargetEffectShinsoo();
  1263. void __DetachTargetEffectShinsoo();
  1264. void __AttachSelectEffectShinsoo();
  1265. void __DetachSelectEffectShinsoo();
  1266.  
  1267. void __AttachTargetEffectJinnos();
  1268. void __DetachTargetEffectJinnos();
  1269. void __AttachSelectEffectJinnos();
  1270. void __DetachSelectEffectJinnos();
  1271.  
  1272. void __AttachTargetEffectChunjo();
  1273. void __DetachTargetEffectChunjo();
  1274. void __AttachSelectEffectChunjo();
  1275. void __DetachSelectEffectChunjo();
  1276.  
  1277. void __AttachEmpireEffect(DWORD eEmpire);
  1278.  
  1279. protected:
  1280. struct SEffectContainer
  1281. {
  1282. typedef std::map<DWORD, DWORD> Dict;
  1283. Dict m_kDct_dwEftID;
  1284. } m_kEffectContainer;
  1285.  
  1286. void __EffectContainer_Initialize();
  1287. void __AttachEfektBossa();
  1288. void __EffectContainer_Destroy();
  1289. void __EffectContainer_Suspend();
  1290. void __EffectContainer_Continue();
  1291.  
  1292. DWORD __EffectContainer_AttachEffect(DWORD eEffect);
  1293. void __EffectContainer_DetachEffect(DWORD eEffect);
  1294.  
  1295. SEffectContainer::Dict& __EffectContainer_GetDict();
  1296.  
  1297. protected:
  1298. struct SStoneSmoke
  1299. {
  1300. DWORD m_dwEftID;
  1301. } m_kStoneSmoke;
  1302.  
  1303. void __StoneSmoke_Inialize();
  1304. void __StoneSmoke_Destroy();
  1305. void __StoneSmoke_Create(DWORD eSmoke);
  1306.  
  1307.  
  1308. protected:
  1309. // Emoticon
  1310. //DWORD m_adwCRCEmoticonEffect[EMOTICON_NUM];
  1311.  
  1312. BYTE m_eType;
  1313. BYTE m_eRaceType;
  1314. DWORD m_eShape;
  1315. DWORD m_dwRace;
  1316. DWORD m_dwVirtualNumber;
  1317. short m_sAlignment;
  1318. #ifdef ENABLE_TITLE_SYSTEM
  1319. short m_sPrestige;
  1320. #endif
  1321. #ifdef ENABLE_REBORN_SYSTEM
  1322. short m_sReborn;
  1323. #endif
  1324. BYTE m_byPKMode;
  1325. #if defined(WJ_COMBAT_ZONE)
  1326. BYTE combat_zone_rank;
  1327. DWORD combat_zone_points;
  1328. #endif
  1329. bool m_isKiller;
  1330. bool m_isPartyMember;
  1331.  
  1332. // Movement
  1333. int m_iRotatingDirection;
  1334.  
  1335. DWORD m_dwAdvActorVID;
  1336. DWORD m_dwLastDmgActorVID;
  1337.  
  1338. LONG m_nAverageNetworkGap;
  1339. DWORD m_dwNextUpdateHeightTime;
  1340.  
  1341. bool m_isGoing;
  1342.  
  1343. TPixelPosition m_kPPosDust;
  1344.  
  1345. DWORD m_dwLastComboIndex;
  1346.  
  1347. DWORD m_swordRefineEffectRight;
  1348. DWORD m_swordRefineEffectLeft;
  1349. DWORD m_armorRefineEffect;
  1350. //DWORD m_acceEffect;
  1351. #ifdef ENABLE_SASH_SYSTEM
  1352. DWORD m_dwSashEffect;
  1353. #endif
  1354.  
  1355. struct SMoveAfterFunc
  1356. {
  1357. UINT eFunc;
  1358. UINT uArg;
  1359.  
  1360. // For Emotion Function
  1361. UINT uArgExpanded;
  1362. TPixelPosition kPosDst;
  1363. };
  1364.  
  1365. SMoveAfterFunc m_kMovAfterFunc;
  1366.  
  1367. float m_fDstRot;
  1368. float m_fAtkPosTime;
  1369. float m_fRotSpd;
  1370. float m_fMaxRotSpd;
  1371.  
  1372. BOOL m_bEnableTCPState;
  1373.  
  1374. // Graphic Instance
  1375. CActorInstance m_GraphicThingInstance;
  1376.  
  1377.  
  1378. protected:
  1379. struct SCommand
  1380. {
  1381. DWORD m_dwChkTime;
  1382. DWORD m_dwCmdTime;
  1383. float m_fDstRot;
  1384. UINT m_eFunc;
  1385. UINT m_uArg;
  1386. UINT m_uTargetVID;
  1387. TPixelPosition m_kPPosDst;
  1388. };
  1389.  
  1390. typedef std::list<SCommand> CommandQueue;
  1391.  
  1392. DWORD m_dwBaseChkTime;
  1393. DWORD m_dwBaseCmdTime;
  1394.  
  1395. DWORD m_dwSkipTime;
  1396.  
  1397. CommandQueue m_kQue_kCmdNew;
  1398.  
  1399. BOOL m_bDamageEffectType;
  1400.  
  1401. struct SEffectDamage
  1402. {
  1403. DWORD damage;
  1404. BYTE flag;
  1405. BOOL bSelf;
  1406. BOOL bTarget;
  1407. };
  1408.  
  1409. typedef std::list<SEffectDamage> CommandDamageQueue;
  1410. CommandDamageQueue m_DamageQueue;
  1411.  
  1412. void ProcessDamage();
  1413.  
  1414. public:
  1415. void AddDamageEffect(DWORD damage,BYTE flag,BOOL bSelf,BOOL bTarget);
  1416.  
  1417. protected:
  1418. struct SWarrior
  1419. {
  1420. DWORD m_dwGeomgyeongEffect;
  1421. };
  1422.  
  1423. SWarrior m_kWarrior;
  1424.  
  1425. void __Warrior_Initialize();
  1426.  
  1427. public:
  1428. static void ClearPVPKeySystem();
  1429.  
  1430. static void InsertPVPKey(DWORD dwSrcVID, DWORD dwDstVID);
  1431. static void InsertPVPReadyKey(DWORD dwSrcVID, DWORD dwDstVID);
  1432. static void RemovePVPKey(DWORD dwSrcVID, DWORD dwDstVID);
  1433.  
  1434. static void InsertGVGKey(DWORD dwSrcGuildVID, DWORD dwDstGuildVID);
  1435. static void RemoveGVGKey(DWORD dwSrcGuildVID, DWORD dwDstGuildVID);
  1436.  
  1437. static void InsertDUELKey(DWORD dwSrcVID, DWORD dwDstVID);
  1438.  
  1439. UINT GetNameColorIndex();
  1440.  
  1441. const D3DXCOLOR& GetNameColor();
  1442. const D3DXCOLOR& GetTitleColor();
  1443. #ifdef ENABLE_TITLE_SYSTEM
  1444. const D3DXCOLOR& GetTitlePrestigeColor();
  1445. #endif
  1446. #ifdef ENABLE_REBORN_SYSTEM
  1447. const D3DXCOLOR& GetTitleRebornColor();
  1448. #endif
  1449.  
  1450. protected:
  1451. static DWORD __GetPVPKey(DWORD dwSrcVID, DWORD dwDstVID);
  1452. static bool __FindPVPKey(DWORD dwSrcVID, DWORD dwDstVID);
  1453. static bool __FindPVPReadyKey(DWORD dwSrcVID, DWORD dwDstVID);
  1454. static bool __FindGVGKey(DWORD dwSrcGuildID, DWORD dwDstGuildID);
  1455. static bool __FindDUELKey(DWORD dwSrcGuildID, DWORD dwDstGuildID);
  1456.  
  1457. protected:
  1458. CActorInstance::IEventHandler* GetEventHandlerPtr();
  1459. CActorInstance::IEventHandler& GetEventHandlerRef();
  1460.  
  1461. protected:
  1462. static float __GetBackgroundHeight(float x, float y);
  1463. static DWORD __GetShadowMapColor(float x, float y);
  1464.  
  1465. public:
  1466. static void ResetPerformanceCounter();
  1467. static void GetInfo(std::string* pstInfo);
  1468.  
  1469. public:
  1470. static CInstanceBase* New();
  1471. static void Delete(CInstanceBase* pkInst);
  1472.  
  1473. static CDynamicPool<CInstanceBase> ms_kPool;
  1474.  
  1475. protected:
  1476. static DWORD ms_dwUpdateCounter;
  1477. static DWORD ms_dwRenderCounter;
  1478. static DWORD ms_dwDeformCounter;
  1479.  
  1480. public:
  1481. DWORD GetDuelMode();
  1482. void SetDuelMode(DWORD type);
  1483. protected:
  1484. DWORD m_dwDuelMode;
  1485. DWORD m_dwEmoticonTime;
  1486. };
  1487.  
  1488. inline int RaceToJob(int race)
  1489. {
  1490. switch (race)
  1491. {
  1492. case 0:
  1493. case 4:
  1494. return 0;
  1495. case 1:
  1496. case 5:
  1497. return 1;
  1498. case 2:
  1499. case 6:
  1500. return 2;
  1501. case 3:
  1502. case 7:
  1503. return 3;
  1504. case 8:
  1505. return 4;
  1506. default:
  1507. return 0;
  1508. }
  1509. return 0;
  1510. }
  1511.  
  1512. inline int RaceToSex(int race)
  1513. {
  1514. switch (race)
  1515. {
  1516. case 0:
  1517. case 2:
  1518. case 5:
  1519. case 7:
  1520. case 8:
  1521. return 1;
  1522. case 1:
  1523. case 3:
  1524. case 4:
  1525. case 6:
  1526. return 0;
  1527.  
  1528. }
  1529. return 0;
  1530. }
  1531.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement