#ifndef __TRIGGER_HEADER_H__ #define __TRIGGER_HEADER_H__ #pragma once #include #pragma pack(push,1) enum eTRIGGER_TYPE { eTRIGGER_CONDITION = 0, // ÄÁµð¼Ç eTRIGGER_ACTION = 1, // ¾×¼Ç }; // Á¶°Ç Æ®¸®°Å ŸÀÔ => 3DEngineÆÀ¿¡¼­ Æ®¸®°Å ¿¡µðÅÍ ÀÛ¾÷ÀÌ ÀÌ¹Ì ¾Æ·¡¿Í °°Àº ¾ÆÀ̵ð·Î µÇ¾î ÀÖ´Â »óÅÂ(2005.4.12) enum eTRIGGER_CONDITION_TYPE { eTRIGGER_ALWAYS_CONDITION = 0, // Ç×»ó eTRIGGER_COMPARE_SWITCH_CONDITION = 1, // ½ºÀ§Ä¡ ºñ±³ eTRIGGER_CLICK_OBJECT_CONDITION = 2, // ¿ÀºêÁ§Æ® Ŭ¸¯ eTRIGGER_DAMAGE_OBJECT_CONDITION = 3, // ¿ÀºêÁ§Æ® µ¥¹ÌÁö ÀÔÀ½ eTRIGGER_COUNT_NPCKILL_CONDITION = 4, // ¸ó½ºÅÍ »ç³É ¸¶¸®¼ö eTRIGGER_PASS_TIME_CONDITION = 5, // ÀÏÁ¤½Ã°£ÀÌ È帧 eTRIGGER_ENTER_AREA_CONDITION = 6, // ƯÁ¤ ¿µ¿ª¿¡ µé¾î°¨ eTRIGGER_OBTAIN_ITEM_CONDITION = 7, // ¾ÆÀÌÅÛ È¹µæ eTRIGGER_MULTI_SWITCH_CONDITION = 8, // ´ÙÁß ½ºÀ§Ä¡ ºñ±³ eTRIGGER_MISSION_POINT_CONDITION = 9, // ¹Ì¼Ç Æ÷ÀÎÆ® ¸¸Á· eTRIGGER_VARIABLE_COMPARE_CONDITION = 10, // º¯¼öºñ±³ eTRIGGER_TEST_QUEST_FLAG_CONDITION = 11, // Äù½ºÆ® ¿Ï·á üũ eTRIGGER_USER_CONDITION = 12, // À¯Àú Á÷Á¢ ¼³Á¤ eTRIGGER_MONSTER_KILL = 13, // ¸ó½ºÅÍ À¯´ÖÀ» ÀâÀ¸¸é // _NA_002098_20110307_ADD_NPC_CONTROL_TRIGGER eTRIGGER_NPC_ENTER_AREA_CONDITION = 14, // NPC°¡ ƯÁ¤ ¿µ¿ª¿¡ µé¾î°¬´Ù¸é //_NA_004777_20120428_ADD_COMPLETE_COLLECTION_TRIGGER eTRIGGER_COMPLETE_COLLECTION_CONDITION = 15, // ¹Ì¼Ç³» äÁý Æ®¸®°Å }; // ÇàÀ§ Æ®¸®°Å ŸÀÔ => 3DEngineÆÀ¿¡¼­ Æ®¸®°Å ¿¡µðÅÍ ÀÛ¾÷ÀÌ ÀÌ¹Ì ¾Æ·¡¿Í °°Àº ¾ÆÀ̵ð·Î µÇ¾î ÀÖ´Â »óÅÂ(2005.4.12) enum eTRIGGER_ACTION_TYPE { eTRIGGER_CHANGE_SWITCH_ACTION = 1000, // ½ºÀ§Ä¡ º¯°æ eTRIGGER_CHANGE_OBJECTANI_ACTION = 1001, // ¿ÀºêÁ§Æ® ¾Ö´Ï¸ÞÀÌ¼Ç º¯°æ eTRIGGER_CHANGE_PATHTILE_ACTION = 1002, // ±æÃ£±â ŸÀÏ ¼Ó¼º º¯°æ eTRIGGER_CHANGE_OBJECTSTATE_ACTION = 1003, // ¿ÀºêÁ§Æ® »óÅ º¯°æ eTRIGGER_PLAY_EVENT_ACTION = 1004, // À̺¥Æ® Ç÷¹ÀÌ eTRIGGER_SET_ISATTACK_ACTION = 1005, // °ø°Ý °¡´É/ºÒ°¡ ¼³Á¤ eTRIGGER_PORTAL_PLAYER_ACTION = 1006, // Ç÷¹ÀÌ¾î Æ÷Å» eTRIGGER_SET_OBJECTTHRUST_ACTION = 1007, // ¿ÀºêÁ§Æ® ¹Ð±â ¼³Á¤ eTRIGGER_APPLY_DAMAGE_ACTION = 1008, // µ¥¹ÌÁö Àû¿ë eTRIGGER_REFLECT_DAMAGE_ACTION = 1009, // µ¥¹ÌÁö ¹Ý»ç eTRIGGER_CREATE_MONSTER_ACTION = 1010, // ¸ó½ºÅÍ »ý¼º eTRIGGER_DISPLAY_MSGBOX_ACTION = 1011, // ¸Þ¼¼Áö ¹Ú½º Ãâ·Â eTRIGGER_REMOVE_ITEM_ACTION = 1012, // Àκ¥Å丮 ¾ÆÀÌÅÛ Á¦°Å eTRIGGER_PRESERVER_ACTION = 1013, // Áö¼Ó eTRIGGER_REWARD_PLAYER_ACTION = 1014, // Ç÷¹ÀÌ¾î º¸»ó eTRIGGER_CLEAR_MISSION_ACTION = 1015, // ¹Ì¼Ç °á°ú eTRIGGER_PORTAL_RANDOM_ACTION = 1016, // ·£´ý Æ÷Å» eTRIGGER_ACTIVATE_TRIGGER_ACTION = 1017, // Æ®¸®°Å Ȱ¼º ºñȰ¼º eTRIGGER_AREA_DAMAGE_ACTION = 1018, // ¹üÀ§µ¥¹ÌÁö eTRIGGER_OPERATE_SWITCH_ACTION = 1019, // ½ºÀ§Ä¡ ¿¬»ê eTRIGGER_OPERATE_VARIABLE_ACTION = 1020, // º¯¼ö ¿¬»ê eTRIGGER_AREA_CHANGE_PATHTILE_ACTION = 1021, // ¿µ¿ª ŸÀÏ ¼Ó¼ºº¯°æ eTRIGGER_CREATE_MONSTER_WITH_DIRECTION = 1022, // ¸ó½ºÅÍ »ý¼º (¹æÇâ) eTRIGGER_CHANGE_LIGHT = 1023, // ±¤¿ø ¼³Á¤ º¯°æ eTRIGGER_CHANGE_OBJECT_TYPE = 1024, // ¿ÀºêÁ§Æ® »óŸ¦ ¹Ù²Û´Ù. eTRIGGER_RANDOMMAP_MOVE = 1025, // ·£´ý¸Ê À̵¿ eTRIGGER_DROP_TREASURE = 1026, // »óÀÚ ¶³±¸±â eTRIGGER_QUEST_CONDITION_COMPLETE_ACTION = 1027, // Äù Á¶°Ç ¸¸Á· eTRIGGER_GIVE_QUEST_ACTION = 1028, // Äù ÁÖ±â eTRIGGER_SET_QUEST_COMPLETE_FLAG_ACTION = 1029, // Äù½ºÆ® ¼º°ø ½ÇÆÐ eTRIGGER_USER_ACTION = 1030, // À¯Àú ¾×¼Ç eTRIGGER_USE_CATEGORY_ACTION = 1031, // Ä«Å×°í¸® »ç¿ë eTRIGGER_SET_CANNOT_MOVE_ACTION = 1032, // À̵¿ ºÒ°¡ ¼³Á¤ eTRIGGER_CREATE_MONSTER_GROUP_ACTION = 1033, // ¸ó½ºÅÍ ±×·ì »ý¼º eTRIGGER_NOTICE_MESSAGE_BOX_ACTION = 1034, // ¾È³» ¸Þ½ÃÁö ¹Ú½º eTRIGGER_SHOW_MONSTERUNIT_ACTION = 1035, // À¯´Ö ³ªÅ¸³² / »ç¶óÁü eTRIGGER_SHOW_MESSAGE_BOX_ACTION = 1036, // ¸Þ½ÃÁö ¹Ú½º¸¦ ³ªÅ¸³ª°Ô / »ç¶óÁö°Ô ÇÑ´Ù. eTRIGGER_SKILL_GENERATE_ACTION = 1037, // ½ºÅ³¹ß»ý Æ®¸®°Å. eTRIGGER_TERRITORY_MOVE_ACTION = 1038, // ¿µ¿ª À̵¿ Æ®¸®°Å. eTRIGGER_MON_RANDOM_SPAWN_ACTION = 1039, // ¸ó½ºÅÍ ·£´ý ½ºÆù. eTRIGGER_SET_LAYER = 1040, // [?]ÃþÀ» º¸¿©ÁØ´Ù. }; // ¿¬»ê Á¾·ù enum eTRIGGER_OPERATION_TYPE { eTRIGGER_OPERATION_EQUAL = 0, // "==" eTRIGGER_OPERATION_MORE, // ">" eTRIGGER_OPERATION_LESS, // "<" eTRIGGER_OPERATION_LESSTHAN, // "<=" eTRIGGER_OPERATION_MORETHAN, // ">=" eTRIGGER_OPERATION_NOTEQUAL, // "!=" }; #define INVALID_SWITCH_ID_VALUE 255 ////////////////////////////////////////////////////////////////////////// // Trigger Struct Define Start ////////////////////////////////////////////////////////////////////////// struct TRIGGER_TYPE { WORD m_wTriggerType; // Æ®¸®°Å Á¾·ù int m_iIDIndex; }; // Á¶°Ç Æ®¸®°Å : ¹«Á¶°Ç struct TRIGGER_ALWAYS_CONDITION : public TRIGGER_TYPE { TRIGGER_ALWAYS_CONDITION() { m_wTriggerType = eTRIGGER_ALWAYS_CONDITION; } }; // Á¶°Ç Æ®¸®°Å : ½ºÀ§Ä¡ ºñ±³ => ÇöÀç ±¸ÇöÇÒ ÇÊ¿ä ¾øÀ½(2005.04.12) struct TRIGGER_COMPARE_SWITCH_CONDITION : public TRIGGER_TYPE { TRIGGER_COMPARE_SWITCH_CONDITION() { m_wTriggerType = eTRIGGER_COMPARE_SWITCH_CONDITION; } BYTE m_bySwitchID; // ½ºÀ§Ä¡ ¾ÆÀ̵ð BYTE m_byOperationType; // ¿¬»êÁ¾·ù int m_iValue; // °ª }; // Á¶°Ç Æ®¸®°Å : ¿ÀºêÁ§Æ® ¼±Åà struct TRIGGER_CLICK_OBJECT_CONDITION : public TRIGGER_TYPE { TRIGGER_CLICK_OBJECT_CONDITION() { m_wTriggerType = eTRIGGER_CLICK_OBJECT_CONDITION; } int m_iObjectID; // ¿ÀºêÁ§Æ® ¾ÆÀ̵ð }; // Á¶°Ç Æ®¸®°Å : ¿ÀºêÁ§Æ® µ¥¹ÌÁö ÀÔÀ½ struct TRIGGER_DAMAGE_OBJECT_CONDITION : public TRIGGER_TYPE { TRIGGER_DAMAGE_OBJECT_CONDITION() { m_wTriggerType = eTRIGGER_DAMAGE_OBJECT_CONDITION; } int m_iObjectID; // ¿ÀºêÁ§Æ® ¾ÆÀ̵ð float m_fDamage; // µ¥¹ÌÁö }; // Á¶°Ç Æ®¸®°Å : ¸ó½ºÅÍ Á×ÀÎ ÀÏÁ¤ ¸¶¸® Á×À½ struct TRIGGER_COUNT_NPCKILL_CONDITION : public TRIGGER_TYPE { TRIGGER_COUNT_NPCKILL_CONDITION() { m_wTriggerType = eTRIGGER_COUNT_NPCKILL_CONDITION; } int m_iAreaID; // ¿µ¿ª ¾ÆÀ̵ð int m_iMonsterType; // ¸ó½ºÅÍ Á¾·ù BYTE m_byIsParty; // ÆÄƼ¿©ºÎ(°³ÀÎ 0, ÆÄƼ 1) int m_iKillCount; // ¸ó½ºÅÍ »ç³É ¸¶¸®¼ö BYTE m_byMethod; // ¹æ¹ý (0 : ÀÏ¹Ý 1 : ´©Àû) }; // Á¶°Ç Æ®¸®°Å : ÀÏÁ¤½Ã°£ È帧 => ÇöÀç ±¸ÇöÇÒ ÇÊ¿ä ¾øÀ½(2005.04.12) struct TRIGGER_PASS_TIME_CONDITION : public TRIGGER_TYPE { TRIGGER_PASS_TIME_CONDITION() { m_wTriggerType = eTRIGGER_PASS_TIME_CONDITION; } int m_iPassTime; // È帣´Â ½Ã°£ }; // Á¶°Ç Æ®¸®°Å : ¿µ¿ª¿¡ µé¾î°¨ struct TRIGGER_ENTER_AREA_CONDITION : public TRIGGER_TYPE { TRIGGER_ENTER_AREA_CONDITION() { m_wTriggerType = eTRIGGER_ENTER_AREA_CONDITION; } int m_iAreaID; // ¿µ¿ª ¾ÆÀ̵ð int m_iEnterCount; // µé¾î°£ °´Ã¼ÀÇ ¼ö BYTE m_bIsParty; // ÆÄƼ? °³ÀÎ? }; // _NA_002098_20110307_ADD_NPC_CONTROL_TRIGGER // NPC°¡ ƯÁ¤ ¿µ¿ª¿¡ µé¾î°¬´Ù¸é struct TRIGGER_NPC_ENTER_AREA_CONDITION : public TRIGGER_TYPE { TRIGGER_NPC_ENTER_AREA_CONDITION() : area_id(0), npc_unit_id(0) { m_wTriggerType = eTRIGGER_NPC_ENTER_AREA_CONDITION; } CODETYPE area_id; CODETYPE npc_unit_id; }; //_NA_004777_20120428_ADD_COMPLETE_COLLECTION_TRIGGER struct TRIGGER_COMPLETE_COLLECTION_CONDITION : public TRIGGER_TYPE { TRIGGER_COMPLETE_COLLECTION_CONDITION() : object_key(0) { m_wTriggerType = eTRIGGER_COMPLETE_COLLECTION_CONDITION; } CODETYPE object_key; }; // Á¶°Ç Æ®¸®°Å : ¾ÆÀÌÅÛ È¹µæ => ÇöÀç ±¸ÇöÇÒ ÇÊ¿ä ¾øÀ½(2005.04.12) struct TRIGGER_OBTAIN_ITEM_CONDITION : public TRIGGER_TYPE { TRIGGER_OBTAIN_ITEM_CONDITION() { m_wTriggerType = eTRIGGER_OBTAIN_ITEM_CONDITION; } int m_iItemCode; // ¾ÆÀÌÅÛ ÄÚµå int m_iNumber; }; // Á¶°Ç Æ®¸®°Å : ´ÙÁß ½ºÀ§Ä¡ struct TRIGGER_MULTI_SWITCH_CONDITION : public TRIGGER_TYPE { enum { _MAX_SWITCH_ID_NUM = 10 }; TRIGGER_MULTI_SWITCH_CONDITION() { m_wTriggerType = eTRIGGER_MULTI_SWITCH_CONDITION; } BYTE m_byaSwitchID[_MAX_SWITCH_ID_NUM]; // ½ºÀ§Ä¡ ¾ÆÀ̵ðµé BYTE m_byOperationType1; // ¿¬»êÁ¾·ù1 int m_iValue1; // °ª1 BYTE m_byOperationType2; // ¿¬»êÁ¾·ù2 int m_iValue2; // °ª2 }; // Á¶°Ç Æ®¸®°Å : ¹Ì¼Ç Æ÷ÀÎÆ® ¸¸Á· => ÇöÀç ±¸ÇöÇÒ ÇÊ¿ä ¾øÀ½(2005.04.12) struct TRIGGER_MISSION_POINT_CONDITION : public TRIGGER_TYPE { TRIGGER_MISSION_POINT_CONDITION() { m_wTriggerType = eTRIGGER_MISSION_POINT_CONDITION; } //int m_iAreaID; // ¿µ¿ª ¾ÆÀ̵ð int m_iMissionPoint; // ¸¸Á·½Ãų ¹Ì¼Ç Æ÷ÀÎÆ® BYTE m_bCondition; }; // Á¶°Ç Æ®¸®°Å : º¯¼ö ºñ±³ struct TRIGGER_VARIABLE_COMPARE_CONDITION : public TRIGGER_TYPE { TRIGGER_VARIABLE_COMPARE_CONDITION() { m_wTriggerType = eTRIGGER_VARIABLE_COMPARE_CONDITION; } DWORD m_dwVariableID; BYTE m_bOperator; int m_iParam; }; struct TRIGGER_TEST_QUEST_FLAG_CONDITION : public TRIGGER_TYPE { TRIGGER_TEST_QUEST_FLAG_CONDITION() { m_wTriggerType = eTRIGGER_TEST_QUEST_FLAG_CONDITION; } ULONG m_ulQuestID; BYTE m_lScriptCode; }; struct TRIGGER_USER_CONDITION : public TRIGGER_TYPE { TRIGGER_USER_CONDITION() { m_wTriggerType = eTRIGGER_USER_CONDITION; } int m_iUser; }; struct TRIGGER_MONSTER_KILL : public TRIGGER_TYPE { TRIGGER_MONSTER_KILL() { m_wTriggerType = eTRIGGER_MONSTER_KILL; } WzID m_wID; // ´ë»ó À¯´ÖÀÇ WzID }; //////////////////////////////////////////////////////////////////////////////////////// // ÇàÀ§ Æ®¸®°Å : ½ºÀ§Ä¡ ¼³Á¤ º¯°æ => ÇöÀç ±¸ÇöÇÒ ÇÊ¿ä ¾øÀ½(2005.04.12) struct TRIGGER_CHANGE_SWITCH_ACTION : public TRIGGER_TYPE { TRIGGER_CHANGE_SWITCH_ACTION() { m_wTriggerType = eTRIGGER_CHANGE_SWITCH_ACTION; } BYTE m_bySwitchID; // ½ºÀ§Ä¡ ¾ÆÀ̵ð int m_iValue; // °ª }; // ÇàÀ§ Æ®¸®°Å : ¿ÀºêÁ§Æ® ¾Ö´Ï¸ÞÀÌ¼Ç º¯°æ struct TRIGGER_CHANGE_OBJECTANI_ACTION : public TRIGGER_TYPE { enum eORDER { RIGHT = 0, REVERSE = 1, }; TRIGGER_CHANGE_OBJECTANI_ACTION() { m_wTriggerType = eTRIGGER_CHANGE_OBJECTANI_ACTION; } int m_iObjectID; // ¿ÀºêÁ§Æ® ¾ÆÀ̵ð DWORD m_dwAniID; // ¾Ö´Ï¸ÞÀÌ¼Ç ¾ÆÀ̵ð BYTE m_byDirection; // ¹æÇâ(Á¤¹æÇâ 0, ¿ª¹æÇâ 1) }; // ÇàÀ§ Æ®¸®°Å : ŸÀϼӼº º¯°æ struct TRIGGER_CHANGE_PATHTILE_ACTION : public TRIGGER_TYPE { enum eFLAG { ENABLE = 0, DISABLE = 1 }; TRIGGER_CHANGE_PATHTILE_ACTION() { m_wTriggerType = eTRIGGER_CHANGE_PATHTILE_ACTION; } int m_iTileID; // ŸÀÏ ¾ÆÀ̵ð BYTE m_byAttribute; // ¼Ó¼º }; // ÇàÀ§ Æ®¸®°Å : ¿ÀºêÁ§Æ® »óÅ º¯°æ => ÇöÀç ±¸ÇöÇÒ ÇÊ¿ä ¾øÀ½(2005.04.12) struct TRIGGER_CHANGE_OBJECTSTATE_ACTION : public TRIGGER_TYPE { enum eSTATE { APPEAR = 0, DISAPPEAR = 1, REMOVE = 2 }; TRIGGER_CHANGE_OBJECTSTATE_ACTION() { m_wTriggerType = eTRIGGER_CHANGE_OBJECTSTATE_ACTION; } int m_iObjectID; // ¿ÀºêÁ§Æ® ¾ÆÀ̵ð BYTE m_byState; // »óÅ }; // ÇàÀ§ Æ®¸®°Å : À̺¥Æ® Ç÷¹ÀÌ struct TRIGGER_PLAY_EVENT_ACTION : public TRIGGER_TYPE { TRIGGER_PLAY_EVENT_ACTION() { m_wTriggerType = eTRIGGER_PLAY_EVENT_ACTION; } int m_iEventID; // À̺¥Æ® ¾ÆÀ̵ð }; // ÇàÀ§ Æ®¸®°Å : °ø°Ý¿©ºÎ ¼³Á¤ => ÇöÀç ±¸ÇöÇÒ ÇÊ¿ä ¾øÀ½(2005.04.12) struct TRIGGER_SET_ISATTACK_ACTION : public TRIGGER_TYPE { TRIGGER_SET_ISATTACK_ACTION() { m_wTriggerType = eTRIGGER_SET_ISATTACK_ACTION; } BYTE m_byTargetType; // °ø°Ý´ë»ó Á¾·ù BYTE m_byIsAttack; // °ø°Ý °¡´É ¿©ºÎ }; // ÇàÀ§ Æ®¸®°Å : Ç÷¹ÀÌ¾î Æ÷Å» struct TRIGGER_PORTAL_PLAYER_ACTION : public TRIGGER_TYPE { TRIGGER_PORTAL_PLAYER_ACTION() { m_wTriggerType = eTRIGGER_PORTAL_PLAYER_ACTION; } int m_iMapIndex; // ¸Ê¹øÈ£ int m_iAreaID; // ¿µ¿ª ¾ÆÀ̵ð BYTE m_byTarget; // À̵¿½Ãų ´ë»ó (0 : °³ÀÎ 1: ÆÄƼ) int m_iType; }; // ÇàÀ§ Æ®¸®°Å : ¿ÀºêÁ§Æ® ¹Ð±â¼³Á¤ => ÇöÀç ±¸ÇöÇÒ ÇÊ¿ä ¾øÀ½(2005.04.12) struct TRIGGER_SET_OBJECTTHRUST_ACTION : public TRIGGER_TYPE { TRIGGER_SET_OBJECTTHRUST_ACTION() { m_wTriggerType = eTRIGGER_SET_OBJECTTHRUST_ACTION; } BYTE m_byState; }; // ÇàÀ§ Æ®¸®°Å : µ¥¹ÌÁö Àû¿ë => ÇöÀç ±¸ÇöÇÒ ÇÊ¿ä ¾øÀ½(2005.04.12) struct TRIGGER_APPLY_DAMAGE_ACTION : public TRIGGER_TYPE { TRIGGER_APPLY_DAMAGE_ACTION() { m_wTriggerType = eTRIGGER_APPLY_DAMAGE_ACTION; } BYTE m_byDamageType; BYTE m_byTargetType; float m_fDamage; }; // ÇàÀ§ Æ®¸®°Å : µ¥¹ÌÁö ¹Ý»ç struct TRIGGER_REFLECT_DAMAGE_ACTION : public TRIGGER_TYPE { TRIGGER_REFLECT_DAMAGE_ACTION() { m_wTriggerType = eTRIGGER_REFLECT_DAMAGE_ACTION; } int m_iObjectID; float m_fDamage; // µ¥¹ÌÁö }; // ÇàÀ§ Æ®¸®°Å : ¸ó½ºÅÍ »ý¼º struct TRIGGER_CREATE_MONSTER_ACTION : public TRIGGER_TYPE { TRIGGER_CREATE_MONSTER_ACTION() { m_wTriggerType = eTRIGGER_CREATE_MONSTER_ACTION; } int m_iMonsterCode; // ¸ó½ºÅÍ ÄÚµå int m_iAreaID; // ¿µ¿ª ¾ÆÀ̵ð BYTE m_byIsParty; // ÆÄƼ¿©ºÎ int m_iCreateCount; // ¸ó½ºÅÍ »ý¼º °¹¼ö int m_iDelayTime; // »ý¼º µô·¹ÀÌ ½Ã°£ int m_iLoopCount; // ¸ó½ºÅÍ »ý¼º ȸ¼ö BYTE m_byCreateDelete; // »ý¼º/Á¦°Å int m_iType; // ŸÀÔ }; // ÇàÀ§ Æ®¸®°Å : ¸Þ¼¼Áö ¹Ú½º Ãâ·Â struct TRIGGER_DISPLAY_MSGBOX_ACTION : public TRIGGER_TYPE { TRIGGER_DISPLAY_MSGBOX_ACTION() { m_wTriggerType = eTRIGGER_DISPLAY_MSGBOX_ACTION; } int m_iTextID; // ÅØ½ºÆ® ¾ÆÀ̵ð BYTE m_byIsParty; // ÆÄƼ¿©ºÎ int m_iDisplayWindow; // Ãâ·ÂÇÒ Ã¢ }; // ÇàÀ§ Æ®¸®°Å : Àκ¥Å丮 ¾ÆÀÌÅÛ Á¦°Å => ÇöÀç ±¸ÇöÇÒ ÇÊ¿ä ¾øÀ½(2005.04.12) struct TRIGGER_REMOVE_ITEM_ACTION : public TRIGGER_TYPE { TRIGGER_REMOVE_ITEM_ACTION() { m_wTriggerType = eTRIGGER_REMOVE_ITEM_ACTION; } int m_iItemID; //BYTE m_byAll; // (0: ¾ÆÀÌÅÛ Çϳª¸¸,1: ¾ÆÀÌÅÛ ÀüºÎ) int m_iNumber; // ¼ýÀÚ }; // ÇàÀ§ Æ®¸®°Å : Áö¼Ó => ÇöÀç ±¸ÇöÇÒ ÇÊ¿ä ¾øÀ½(2005.04.12) struct TRIGGER_PRESERVER_ACTION : public TRIGGER_TYPE { TRIGGER_PRESERVER_ACTION() { m_wTriggerType = eTRIGGER_PRESERVER_ACTION; } }; // ÇàÀ§ Æ®¸®°Å : Ç÷¹ÀÌ¾î º¸»ó => ÇöÀç ±¸ÇöÇÒ ÇÊ¿ä ¾øÀ½(2005.04.12) struct TRIGGER_REWARD_PLAYER_ACTION : public TRIGGER_TYPE { TRIGGER_REWARD_PLAYER_ACTION() { m_wTriggerType = eTRIGGER_REWARD_PLAYER_ACTION; } int m_iItemCode; // ¾ÆÀÌÅÛ ÄÚµå int m_iItemCount; // ¾ÆÀÌÅÛ °¹¼ö BYTE m_byIsParty; // ÆÄƼ¿©ºÎ(°³ÀÎ 0, ÆÄƼ 1) BYTE m_byDrop; // Áִ¹æ½Ä(0 : Àκ¥¿¡ ³Ö¾î¼­,1 ¹Ù´Ú¿¡ ¶³±À) }; // ÇàÀ§ Æ®¸®°Å : ¹Ì¼Ç °á°ú struct TRIGGER_CLEAR_MISSION_ACTION : public TRIGGER_TYPE { TRIGGER_CLEAR_MISSION_ACTION() { m_wTriggerType = eTRIGGER_CLEAR_MISSION_ACTION; } BYTE m_byResultType; }; // ÇàÀ§ Æ®¸®°Å : ·£´ý Æ÷Å» => ÇöÀç ±¸ÇöÇÒ ÇÊ¿ä ¾øÀ½(2005.04.12) struct TRIGGER_PORTAL_RANDOM_ACTION : public TRIGGER_TYPE { enum { _MAX_AREA_ID_NUM = 8 }; TRIGGER_PORTAL_RANDOM_ACTION() { m_wTriggerType = eTRIGGER_PORTAL_RANDOM_ACTION; } int m_iMapID; int m_iAreaID[_MAX_AREA_ID_NUM]; BYTE m_byRandom; // ·£´ý ¼øÂ÷ÀûÀ¸·Î BYTE m_byTarget; // (0: °³ÀÎ 1: ÆÄƼ) }; // ÇàÀ§ Æ®¸®°Å : Æ®¸®°Å Ȱ¼º/ºñȰ¼º struct TRIGGER_ACTIVATE_TRIGGER_ACTION : public TRIGGER_TYPE { TRIGGER_ACTIVATE_TRIGGER_ACTION() { m_wTriggerType = eTRIGGER_ACTIVATE_TRIGGER_ACTION; } DWORD m_dwTriggerID; // Æ®¸®°Å ¾ÆÀ̵ð BYTE m_byFlag; // Ȱ¼º/ºñȰ¼º }; // ÇàÀ§ Æ®¸®°Å : ¹üÀ§ µ¥¹ÌÁö ºÎ¿© struct TRIGGER_AREA_DAMAGE_ACTION : public TRIGGER_TYPE { TRIGGER_AREA_DAMAGE_ACTION() { m_wTriggerType = eTRIGGER_AREA_DAMAGE_ACTION; } int m_iObjectIndex; // ¿ÀºêÁ§Æ® ID float m_fRange; // ¹üÀ§ BYTE m_byTarget; // ¸ñÇ¥ (°³ÀÎ/ÆÄƼ) BYTE m_byDamageType; // µ¥¹ÌÁö ŸÀÔ float m_fDamage; // µ¥¹ÌÁö }; // ÇàÀ§ Æ®¸®°Å : ½ºÀ§Ä¡ ¼³Á¤ º¯°æ struct TRIGGER_OPERATE_SWITCH_ACTION : public TRIGGER_TYPE { TRIGGER_OPERATE_SWITCH_ACTION() { m_wTriggerType = eTRIGGER_OPERATE_SWITCH_ACTION; } BYTE m_bySwitchID; // ½ºÀ§Ä¡¾ÆÀ̵ð BYTE m_byOperation; // ¿¬»êÁ¾·ù int m_iArgument; // ¸Å°³º¯¼ö }; // ÇàÀ§ Æ®¸®°Å : ½ºÀ§Ä¡ ¼³Á¤ º¯°æ struct TRIGGER_OPERATE_VARIABLE_ACTION : public TRIGGER_TYPE { TRIGGER_OPERATE_VARIABLE_ACTION() { m_wTriggerType = eTRIGGER_OPERATE_VARIABLE_ACTION; } DWORD m_dwVariableID; // º¯¼ö¾ÆÀ̵ð BYTE m_byOperation; // ¿¬»êÁ¾·ù int m_iArgument; // ¸Å°³º¯¼ö }; // ÇàÀ§ Æ®¸®°Å : ¿µ¿ª ŸÀÏ ¼Ó¼ºº¯°æ struct TRIGGER_AREA_CHANGE_PATHTILE_ACTION : public TRIGGER_TYPE { TRIGGER_AREA_CHANGE_PATHTILE_ACTION () { m_wTriggerType = eTRIGGER_AREA_CHANGE_PATHTILE_ACTION; } int m_iAreaID; // ¿µ¿ª¾ÆÀ̵ð BYTE m_byCanWalk; // °¥¼öÀÖÀ½ ¾øÀ½ }; // ÇàÀ§ Æ®¸®°Å : ¸ó½ºÅÍ »ý¼º (¹æÇâ) struct TRIGGER_CREATE_MONSTER_WITH_DIRECTION : public TRIGGER_TYPE { TRIGGER_CREATE_MONSTER_WITH_DIRECTION() { m_wTriggerType = eTRIGGER_CREATE_MONSTER_WITH_DIRECTION; } int m_iMonsterID; // ¸÷Á¾·ù int m_iAreaID; BYTE m_byParty; int m_iMonsterCount; int m_iTimeInverval; int m_iTimeCount; WzVector m_vDir; int m_iType; }; // ÇàÀ§ Æ®¸®°Å : ±¤¿ø ¼³Á¤ º¯°æ struct TRIGGER_CHANGE_LIGHT : public TRIGGER_TYPE { enum eSTATE { OFF = 0, ON = 1, TOGGLE = 2, }; // 0:²ö´Ù 1:ÄÒ´Ù 2:Åä±ÛÇÑ´Ù TRIGGER_CHANGE_LIGHT() { m_wTriggerType = eTRIGGER_CHANGE_LIGHT; } int m_iLightIndex; int m_iTime; BYTE m_byCondition; }; // ÇàÀ§ Æ®¸®°Å : ¿ÀºêÁ§Æ® »óŸ¦ ¹Ù²Û´Ù. struct TRIGGER_CHANGE_OBJECT_TYPE : public TRIGGER_TYPE { TRIGGER_CHANGE_OBJECT_TYPE() { m_wTriggerType = eTRIGGER_CHANGE_OBJECT_TYPE; } int m_iObjectID; int m_iTime; int m_iType; }; struct TRIGGER_RANDOMMAP_MOVE : public TRIGGER_TYPE { TRIGGER_RANDOMMAP_MOVE() { m_wTriggerType = eTRIGGER_RANDOMMAP_MOVE; } int m_iMapIndex[10]; BYTE m_bMethod; // ·£´ý / ¼øÂ÷ WzID m_AreaID; // ¿µ¿ª¾ÆÀ̵ð BYTE m_bParty; // °³ÀÎ / ÆÄƼ int m_iType; // ŸÀÔ }; struct TRIGGER_DROP_TREASURE : public TRIGGER_TYPE { TRIGGER_DROP_TREASURE() { m_wTriggerType = eTRIGGER_DROP_TREASURE; } int m_iType; BYTE m_bParty; BYTE m_bInventory; }; struct TRIGGER_QUEST_CONDITION_COMPLETE_ACTION : public TRIGGER_TYPE // Äù Á¶°Ç ¸¸Á· { TRIGGER_QUEST_CONDITION_COMPLETE_ACTION() { m_wTriggerType = eTRIGGER_QUEST_CONDITION_COMPLETE_ACTION; } ULONG m_ulQuestID; long m_lScriptCode; }; struct TRIGGER_GIVE_QUEST_ACTION : public TRIGGER_TYPE // Äù ÁÖ±â { TRIGGER_GIVE_QUEST_ACTION() { m_wTriggerType = eTRIGGER_GIVE_QUEST_ACTION; } ULONG m_ulQuestID; BYTE m_byParty; // 0 : °³ÀÎ 1 : ÆÄƼ }; struct TRIGGER_SET_QUEST_COMPLETE_FLAG_ACTION : public TRIGGER_TYPE // Äù½ºÆ® ¼º°ø ½ÇÆÐ { TRIGGER_SET_QUEST_COMPLETE_FLAG_ACTION() { m_wTriggerType = eTRIGGER_SET_QUEST_COMPLETE_FLAG_ACTION; } ULONG m_ulQuestID; BYTE m_byFailed; // 0 : ¿Ï·á 1 : ½ÇÆÐ }; struct TRIGGER_USER_ACTION : public TRIGGER_TYPE // À¯Àú ¾×¼Ç { TRIGGER_USER_ACTION() { m_wTriggerType = eTRIGGER_USER_ACTION; } int m_iUserID; }; struct TRIGGER_USE_CATEGORY_ACTION : public TRIGGER_TYPE // Ä«Å×°í¸® »ç¿ë { TRIGGER_USE_CATEGORY_ACTION() { m_wTriggerType = eTRIGGER_USE_CATEGORY_ACTION; } int m_iFieldID; char m_szCategory[128]; }; struct TRIGGER_SET_CANNOT_MOVE_ACTION : public TRIGGER_TYPE // À̵¿ ºÒ°¡ ¼³Á¤ { TRIGGER_SET_CANNOT_MOVE_ACTION() { m_wTriggerType = eTRIGGER_SET_CANNOT_MOVE_ACTION; } BYTE m_byTarget; // 0 : À¯Àú 1 : ¸÷ 2 : µÑ´Ù int m_iTime; }; struct TRIGGER_CREATE_MONSTER_GROUP_ACTION : public TRIGGER_TYPE // ¸ó½ºÅÍ ±×·ì »ý¼º { TRIGGER_CREATE_MONSTER_GROUP_ACTION() { m_wTriggerType = eTRIGGER_CREATE_MONSTER_GROUP_ACTION; } int m_iGroupCode; int m_iAreaID; BYTE m_byParty; // 0 : °³ÀÎ 1 : ÆÄƼ int m_iNumber; }; struct TRIGGER_NOTICE_MESSAGE_BOX_ACTION : public TRIGGER_TYPE // ¾È³» ¸Þ½ÃÁö ¹Ú½º { TRIGGER_NOTICE_MESSAGE_BOX_ACTION() { m_wTriggerType = eTRIGGER_NOTICE_MESSAGE_BOX_ACTION; } long m_lScriptCode; }; struct TRIGGER_SHOW_MONSTERUNIT_ACTION : public TRIGGER_TYPE // ¸ó½ºÅÍ À¯´Ö ³ªÅ¸³ª°Ô »ç¶óÁü { TRIGGER_SHOW_MONSTERUNIT_ACTION() { m_wTriggerType = eTRIGGER_SHOW_MONSTERUNIT_ACTION; } int m_iUnitID; }; struct TRIGGER_SHOW_MESSAGE_BOX_ACTION : public TRIGGER_TYPE // ¸Þ½ÃÁö ³ªÅ¸³ª°Ô / »ç¶óÁö°Ô { TRIGGER_SHOW_MESSAGE_BOX_ACTION() { m_wTriggerType = eTRIGGER_SHOW_MESSAGE_BOX_ACTION; } int m_iTextID; // ÅØ½ºÆ® ¾ÆÀ̵ð BYTE m_byIsParty; // ÆÄƼ¿©ºÎ int m_iDisplayWindow; // Ãâ·ÂÇÒ Ã¢ int m_iDisplaySwitch; // º¸¿©ÁÙ °ÍÀΰ¡ ¸»°ÍÀΰ¡? }; struct TRIGGER_SKILL_GENERATE_ACTION : public TRIGGER_TYPE { TRIGGER_SKILL_GENERATE_ACTION() {m_wTriggerType = eTRIGGER_SKILL_GENERATE_ACTION; } WzID m_wzObject; int m_iSkill; }; struct TRIGGER_TERRITORY_MOVE_ACTION : public TRIGGER_TYPE { TRIGGER_TERRITORY_MOVE_ACTION() { m_wTriggerType = eTRIGGER_TERRITORY_MOVE_ACTION; } int m_iArea[8]; BYTE m_btWho; BYTE m_btRandom; }; struct TRIGGER_MON_RANDOM_SPAWN_ACTION : public TRIGGER_TYPE { TRIGGER_MON_RANDOM_SPAWN_ACTION() { m_wTriggerType = eTRIGGER_MON_RANDOM_SPAWN_ACTION; } int m_iMonID[5]; int m_iMonRate[5]; int m_iArea; BYTE m_btWho; int m_iMonMinNum; int m_iMonMaxNum; int m_iTime; int m_iRegenNum; WzVector m_wvDir; }; struct TRIGGER_SET_LAYER : public TRIGGER_TYPE { TRIGGER_SET_LAYER() { m_wTriggerType = eTRIGGER_SET_LAYER; } int m_iLayer; // Ãþ °ª }; ////////////////////////////////////////////////////////////////////////// // Trigger Struct Define End ////////////////////////////////////////////////////////////////////////// #pragma pack(pop) #endif // __TRIGGER_HEADER_H__