#ifndef _MONSTER_STRUCTURE_H_ #define _MONSTER_STRUCTURE_H_ #include "../CreatureStructure.h" #pragma pack(8) struct MonsterInfo { enum MaxNumber { MAX_MOTION_NUM = 4, // ÃÖ´ë ¸ð¼Ç °³¼ö MAX_ORIGINAL_ITEM_NUM = 2, MAX_AWARD_KIND = 9, MAX_NAME_LENGTH = 32, MAX_MODELING_FLAG_LENGTH = 32 }; enum MonsterPattern { PATTERN_COMMON = 0, PATTERN_WARRIOR, // ¿ö¸®¾î PATTERN_DEFENDER, // µðÆæ´õ PATTERN_MAGE, // ¸ÞÀÌÁö PATTERN_ACOLYTE, // ¾îÄݶóÀÌÆ® PATTERN_BOSS, // º¸½º PATTERN_BG // ¹è°æ(?) }; enum HitBox { XPlus = 0, XMinus, YPlus, YMinus, MAX_HITBOX_NUM = 4 }; enum Z3D_CHR_ACTION { Z3D_CA_WALK = 8, // °È±â Z3D_CA_RUN = 1, // ´Þ¸®±â Z3D_CA_CASTING = 50, // ij½ºÆÃ Z3D_CA_ATTACK = 51 // °ø°Ý }; MotionInfo m_MonsterMotions[MAX_MOTION_NUM]; // ¸ó½ºÅÍÀÇ Çൿ Á¤º¸ (°È±â, ´Þ¸®±â, °ø°Ý, ij½ºÆÃ) char m_strName[MAX_NAME_LENGTH]; // À̸§ char m_strModelingFlag[MAX_MODELING_FLAG_LENGTH]; // ¸ðµ¨¸µ ÇüÅ Ç÷¡±× float m_fHitBox[MAX_HITBOX_NUM]; // Ÿ°Ý¹Ú½º unsigned long m_AwardItem[MAX_ORIGINAL_ITEM_NUM]; // ¸ó½ºÅͰ¡ °¡Áö°í ÀÖ´Â ¿À¸®Áö³¯ ¾ÆÀÌÅÛµé int m_nDropRate[MAX_AWARD_KIND]; // ¾ÆÀÌÅÛ Á¾·ùº° µå¶ø·ü DWORD m_dwKID; // Á¾·ù ID float m_fSize; // »çÀÌÁî DWORD m_dwRespawnTime; // ¸®½ºÆù ŸÀÓ float m_fAttackAngle; // °ø°Ý °¢µµ int m_nSkillPattern; // ½ºÅ³ ÆÐÅÏ int m_nSkillLevel; // ½ºÅ³ ·¹º§ bool m_bStealth; // ½ºÅÚ½º ŸÀÔÀÎÁö ¿©ºÎ bool m_bFirstAttack; // ¼±Á¦°ø°Ý ¿©ºÎ bool m_bReturnPosition; // Ÿ°ÙÀÌ µµ¸Á°¡¸é Á¦ÀÚ¸®·Î µ¹¾Æ°¡´ÂÁö ¿©ºÎ bool m_bEscape; // ÀÚ½ÅÀÇ HP°¡ ¶³¾îÁ³À» ¶§, µµ¸Áħ ¿©ºÎ MonsterInfo(); static MonsterPattern GetMonsterPattern(const char* szMonsterType); }; #pragma pack() #endif