#pragma once #ifndef SOLARTRIGGER_ACTION_INFO_H #define SOLARTRIGGER_ACTION_INFO_H //================================================================================================== /// ActionInfo's class /** @author Kim Min Wook < taiyo@webzen.com > @since 2004. 12. 29 @remark - ¾×¼Ç Æ®¸®°Å(ActionInfo class)À» »ó¼Ó¹ÞÀº °¢Á¾ ¾×¼Ç Æ®¸®°Å ŸÀÔ Å¬·¡½ºµé ÁýÇÕ @note - @history - ~2011. 07. 20 - 2011. 07. 20, waverix, code improvement */ //================================================================================================== #include "ConditionInfo.h" #include "TriggerCommon.h" //----------------------------------------------------------------------- // // ÃÖ»óÀ§ Ŭ·¡½º // //----------------------------------------------------------------------- class ActionInfo { public: ActionInfo(eACTION_TYPE wType); virtual ~ActionInfo(); eACTION_TYPE TriggerType() const; private: eACTION_TYPE trigger_type_; }; inline ActionInfo::ActionInfo(eACTION_TYPE trigger_type) : trigger_type_(trigger_type) { } inline ActionInfo::~ActionInfo() { } inline eACTION_TYPE ActionInfo::TriggerType() const { return trigger_type_; } //----------------------------------------------------------------------- // // ÇÏÀ§ Ŭ·¡½º ¼±¾ð Á¤Àǹ® // //----------------------------------------------------------------------- #define BEGIN_DECL_ACTION(ConcreteAction) \ class ConcreteAction##_INFO : public ActionInfo \ { \ public: \ ConcreteAction##_INFO() : ActionInfo(e##ConcreteAction) {} \ virtual ~ConcreteAction##_INFO() {} #define END_DECL_ACTION \ }; //----------------------------------------------------------------------- // // ÇÏÀ§ Ŭ·¡½º // // Warnings : ObjectID°¡ INT // ItemCode°¡ INT // //----------------------------------------------------------------------- namespace ns_trigger { ; enum { CANMOVE, CANNOTMOVE, }; //< ACTION_CHANGE_PATHTILEÀÇ Attribute ¼Ó¼º Á¤º¸ }; //end of namespace /* BEGIN_DECL_ACTION(ACTION_CHANGE_SWITCH) __PROPERTY(BYTE, SwitchID) __PROPERTY(INT, Value) END_DECL_ACTION; */ BEGIN_DECL_ACTION(ACTION_CHANGE_OBJECTANI) __PROPERTY(INT, ObjectID); __PROPERTY(DWORD, WzAniID); __PROPERTY(BYTE, Direction);// ¹æÇâ(Á¤¹æÇâ 0, ¿ª¹æÇâ 1) END_DECL_ACTION; BEGIN_DECL_ACTION(ACTION_CHANGE_PATHTILE) __PROPERTY(INT, TileID); __PROPERTY(BYTE, Attribute); END_DECL_ACTION; BEGIN_DECL_ACTION(ACTION_CHANGE_OBJECTSTATE) public:enum { APPEAR, DISAPPEAR, REMOVE, }; __PROPERTY(INT, ObjectID); __PROPERTY(BYTE, State); END_DECL_ACTION; BEGIN_DECL_ACTION(ACTION_PLAY_EVENT) __PROPERTY(INT, EventID); END_DECL_ACTION; BEGIN_DECL_ACTION(ACTION_SET_ISATTACK) public: enum { TARGET_TYPE_USER = 0, TARGET_TYPE_MONSTER, TARGET_TYPE_ALL, CAN_NOT_ATTACK = 0, CAN_ATTACK }; __PROPERTY(BYTE, TargetType);// °ø°Ý´ë»ó Á¾·ù(0 : À¯Àú, 1: ¸ó½ºÅÍ, 2 : µÑ´Ù) __PROPERTY(BYTE, IsAttack); // °ø°Ý °¡´É ¿©ºÎ(0 : °ø°ÝºÒ°¡´É, 1 : °ø°Ý°¡´É) END_DECL_ACTION; BEGIN_DECL_ACTION(ACTION_PORTAL_PLAYER) public: enum { _MAX_MAP_NAME_LENGTH = 128, RELATEDVILLAGE = 0, VILLAGECODE = 1, FIELDCODE = 2, TARGET_RETURN = 3, //__NA001310_BATTLEZONE_PORTAL_RETURN_TARGET_MOVE_SUPPORT__ }; __PROPERTY(INT, MapCode); __PROPERTY(INT, AreaID); __PROPERTY(BYTE, IsParty); // À̵¿½Ãų ´ë»ó (0 : °³ÀÎ 1: ÆÄƼ) __PROPERTY(INT, Type); END_DECL_ACTION; BEGIN_DECL_ACTION(ACTION_SET_OBJECTTHRUST) __PROPERTY(BYTE, State); END_DECL_ACTION; BEGIN_DECL_ACTION(ACTION_APPLY_DAMAGE) public: enum { TARGET_FIELD = 0, TARGET_PERSONAL = 1, }; __PROPERTY(BYTE, DamageType); __PROPERTY(BYTE, TargetType); __PROPERTY(FLOAT, Damage); END_DECL_ACTION; BEGIN_DECL_ACTION(ACTION_REFLECT_DAMAGE) __PROPERTY(INT, ObjectID); __PROPERTY(FLOAT, Damage); END_DECL_ACTION; BEGIN_DECL_ACTION(ACTION_CREATE_MONSTER) __PROPERTY(INT, MonsterCode); __PROPERTY(INT, AreaID); __PROPERTY(BYTE, IsParty); __PROPERTY(INT, CreateCount); // ¸ó½ºÅÍ »ý¼º °¹¼ö __PROPERTY(INT, DelayTime); // »ý¼º ½Ã°£ °£°Ý __PROPERTY(INT, LoopCount); // ¸ó½ºÅÍ »ý¼º ȸ¼ö __PROPERTY(BYTE, CreateDestroy); // ¸ó½ºÅÍ »ý¼º/Á¦°Å __PROPERTY(INT, Type); // ŸÀÔ (¸®´õ ³Ä ²¿ºØÀ̳Ä) END_DECL_ACTION; BEGIN_DECL_ACTION(ACTION_DISPLAY_MSGBOX) enum eENUM { TARGET_PERSONAL = 0, TARGET_FIELD = 1, TARGET_OFFENCE = 2, TARGET_DEFENCE = 3, }; __PROPERTY(INT, TextID); __PROPERTY(BYTE, Target); // 0:°³ÀÎ 1:Àüü 2:°ø°Ý 3:¼öºñ __PROPERTY(INT, DisplayWindow); // Ãâ·ÂÇÒ Ã¢ END_DECL_ACTION; BEGIN_DECL_ACTION(ACTION_REMOVE_ITEM) __PROPERTY(INT, ItemCode); __PROPERTY(INT, ItemNum); // ¾ÆÀÌÅÛ °³¼ö END_DECL_ACTION; /* BEGIN_DECL_ACTION(ACTION_PRESERVER) END_DECL_ACTION; */ BEGIN_DECL_ACTION(ACTION_REWARD_PLAYER) public:enum { INVENTORY=0, DROPFIELD=1, }; __PROPERTY(INT, ItemCode); __PROPERTY(INT, Count); __PROPERTY(BYTE, IsParty); __PROPERTY(BYTE, IsDrop); // Áִ¹æ½Ä(0 : Àκ¥¿¡ ³Ö¾î¼­,1 ¹Ù´Ú¿¡ ¶³±À) END_DECL_ACTION; BEGIN_DECL_ACTION(ACTION_CLEAR_MISSION) __PROPERTY(BYTE, ResultType); END_DECL_ACTION; BEGIN_DECL_ACTION(ACTION_PORTAL_RANDOM) public: enum { _MAX_AREA_ID_NUM = 8, }; __PROPERTY(INT, MapID); __ARRAY_PROPERTY(INT, _MAX_AREA_ID_NUM, AreaID); __PROPERTY(BYTE, Random); // ·£´ý ¼øÂ÷ÀûÀ¸·Î __PROPERTY(BYTE, Target); // (0: °³ÀÎ 1: ÆÄƼ) END_DECL_ACTION; BEGIN_DECL_ACTION(ACTION_NPC_RANDOM_AREA_MOVE) public: enum { _MAX_AREA_ID_NUM = 8, }; __ARRAY_PROPERTY(INT, _MAX_AREA_ID_NUM, AreaID); __PROPERTY(BYTE, MoveOrWarp); // (0: move 1: warp) END_DECL_ACTION; BEGIN_DECL_ACTION(ACTION_ACTIVATE_TRIGGER) __PROPERTY(DWORD, WzTriggerID); __PROPERTY(BYTE, Flag); // 0 : Ȱ¼º, 1 : ºñȰ¼º END_DECL_ACTION; BEGIN_DECL_ACTION(ACTION_AREA_DAMAGE) __PROPERTY(DWORD, ObjectIndex); __PROPERTY(FLOAT, Range); __PROPERTY(BYTE, Target); // ¸ñÇ¥ (°³ÀÎ/ÆÄƼ) __PROPERTY(BYTE, DamageType); // µ¥¹ÌÁö ŸÀÔ __PROPERTY(FLOAT, Damage); END_DECL_ACTION; BEGIN_DECL_ACTION(ACTION_OPERATE_SWITCH) __PROPERTY(BYTE, SwitchID); __PROPERTY(BYTE, OperationType); __PROPERTY(INT, Argument); // ¸Å°³º¯¼ö END_DECL_ACTION; BEGIN_DECL_ACTION(ACTION_OPERATE_SWITCH_EX) __PROPERTY(BYTE, Target); // (0: °³ÀÎ 1: ÆÄƼ) __PROPERTY(BYTE, SwitchID); __PROPERTY(BYTE, OperationType); __PROPERTY(INT, Argument); // ¸Å°³º¯¼ö END_DECL_ACTION; BEGIN_DECL_ACTION(ACTION_OPERATE_VARIABLE) __PROPERTY(INT, VarID); __PROPERTY(BYTE, OperationType); __PROPERTY(INT, Argument); // ¸Å°³º¯¼ö END_DECL_ACTION; BEGIN_DECL_ACTION(ACTION_ROAD_CONNECT); // ±æ ¿¬°áÀ» ¼³Á¤/ÇØÁ¦ ÇÑ´Ù __PROPERTY(INT, AreaIndex); __PROPERTY(BYTE, CanGo); // °¥ ¼ö ÀÖ´Ù=0, ¾ø´Ù=1 END_DECL_ACTION; BEGIN_DECL_ACTION(ACTION_CREATE_DIR_MONSTER) __PROPERTY(INT, MonsterCode); __PROPERTY(INT, AreaID); __PROPERTY(BYTE, IsParty); __PROPERTY(INT, CreateCount); // ¸ó½ºÅÍ »ý¼º °¹¼ö __PROPERTY(INT, DelayTime); // »ý¼º ½Ã°£ °£°Ý __PROPERTY(INT, LoopCount); // ¸ó½ºÅÍ »ý¼º ȸ¼ö __PROPERTY(FLOAT, DirX); // x¹æÇâ __PROPERTY(FLOAT, DirY); // y¹æÇâ __PROPERTY(FLOAT, DirZ); // z¹æÇâ __PROPERTY(INT, Type); // Type[0] END_DECL_ACTION; BEGIN_DECL_ACTION(ACTION_CHANGE_LIGHT) __PROPERTY(INT, LightIndex);// ÀÌ À妽ºÀÇ ¶óÀÌÆ®¸¦ __PROPERTY(INT, DelayTime); // À̸¸Å­ÀÇ ½Ã°£ ÈÄ¿¡ __PROPERTY(BYTE, Status); // 0:²ö´Ù 1:ÄÒ´Ù 2:Åä±ÛÇÑ´Ù END_DECL_ACTION; BEGIN_DECL_ACTION(ACTION_CHANGE_OBJECT_TYPE) __PROPERTY(INT, ObjectID); __PROPERTY(INT, DelayTime); __PROPERTY(INT, ObjectType); END_DECL_ACTION; BEGIN_DECL_ACTION(ACTION_QUEST_SATISFACTION) __PROPERTY(ULONG, QuestID); __PROPERTY(LONG, ScriptCode); END_DECL_ACTION; BEGIN_DECL_ACTION(ACTION_QUEST_GRANT) __PROPERTY(ULONG, QuestID); __PROPERTY(BYTE, PartyState); END_DECL_ACTION; BEGIN_DECL_ACTION(ACTION_QUEST_SETUP) __PROPERTY(ULONG, QuestID); __PROPERTY(BYTE, Completed); END_DECL_ACTION; BEGIN_DECL_ACTION(ACTION_USE_CATEGORY) enum { _MAX_USE_CATEGORY_NAME = 128 }; __PROPERTY(INT, FieldID); __ARRAY_PROPERTY(TCHAR, _MAX_USE_CATEGORY_NAME, CategoryName) END_DECL_ACTION; // ±âÁ¸¿¡ Á¸ÀçÇÏ´Â ¾×¼Ç Æ®¸®°Å //BEGIN_DECL_ACTION(ACTION_CREATE_MONSTER) //__END_DECL_ACTION BEGIN_DECL_ACTION(ACTION_HOLD_CHARACTER) __PROPERTY(BYTE, Who); __PROPERTY(INT, HoldingTime); END_DECL_ACTION; BEGIN_DECL_ACTION(ACTION_CREATE_MONSTER_GROUP) __PROPERTY(INT, GroupID); __PROPERTY(INT, AreaID); __PROPERTY(BYTE, PartyState); __PROPERTY(INT, GroupCount); END_DECL_ACTION; // // ³ªÅ¸³²/»ç¶óÁü // ³ªÅ¸³ª°Ô/»ç¶óÁö°Ô // --> ÀÌ µÎ°¡Áö´Â ¼­·Î ¹Ý´ë °ªÀ¸·Î ÇØ´ç ¼Ó¼ºÀ» Ç¥½ÃÇÏ°Ô µÈ´Ù. ÁÖÀÇÇÒ °Í // ShowOrHideÀÇ ¸íĪ ¼öÁ¤ÇÒ Çʿ䰡 ÀÖ´Ù. // À¯´Ö ³ªÅ¸³²/»ç¶óÁü (¼­¹ö¿¡¼­´Â ¸ó½ºÅÍ »ý¼º/Á¦°Å¿Í µ¿ÀÏ) BEGIN_DECL_ACTION(ACTION_SHOW_OR_HIDE_UNIT) enum { SHOW=0,HIDE=1,}; __PROPERTY(WzID, MonsterUnitID); __PROPERTY(INT, IsHide); //0: ³ªÅ¸³ª°Ô, 1:»ç¶óÁö°Ô END_DECL_ACTION; BEGIN_DECL_ACTION(ACTION_SHOW_GUIDE_MSGBOX) __PROPERTY(LONG, HelpIndex); END_DECL_ACTION; // ¸Þ½ÃÁö ¹Ú½ºÀÇ ³ªÅ¸³²/»ç¶óÁü BEGIN_DECL_ACTION(ACTION_SHOW_OR_HIDE_MSGBOX) enum { SHOW=1,HIDE=0,}; __PROPERTY(INT, TextID); __PROPERTY(BYTE, IsParty); __PROPERTY(INT, DisplayWindow); // Ãâ·ÂÇÒ Ã¢ __PROPERTY(INT, IsShow); //1: ³ªÅ¸³ª°Ô, 0:»ç¶óÁö°Ô END_DECL_ACTION; // ¸ó½ºÅÍ ·£´ý ½ºÆù BEGIN_DECL_ACTION(ACTION_RANDOM_MONSTER_SPAWN) __PROPERTY(INT, MonsterID_1); // 1-5 ¸ó½ºÅÍ __PROPERTY(INT, MonsterRate_1); // 1-5 ¸ó½ºÅÍ »ý¼ºÈ®·ü __PROPERTY(INT, MonsterID_2); __PROPERTY(INT, MonsterRate_2); __PROPERTY(INT, MonsterID_3); __PROPERTY(INT, MonsterRate_3); __PROPERTY(INT, MonsterID_4); __PROPERTY(INT, MonsterRate_4); __PROPERTY(INT, MonsterID_5); __PROPERTY(INT, MonsterRate_5); __PROPERTY(INT, AreaID); // ¸ó½ºÅÍ »ý¼º Áö¿ª __PROPERTY(BYTE, IsParty); // °³ÀÎ ? ÆÄƼ ? __PROPERTY(INT, MinCreateMonsterCnt); // ÃÖ¼Ò ¸ó½ºÅÍ »ý¼º °¹¼ö __PROPERTY(INT, MaxCreateMonsterCnt); // ÃÖ¼Ò ¸ó½ºÅÍ »ý¼º °¹¼ö __PROPERTY(INT, RegenTime); // ¸®Á¨ ½Ã°£ °£°Ý __PROPERTY(INT, MaxRegenCount); // ¸ó½ºÅÍ ÃÑ ¸®Á¨ ȸ¼ö __PROPERTY(FLOAT, DirX); // x¹æÇâ __PROPERTY(FLOAT, DirY); // y¹æÇâ __PROPERTY(FLOAT, DirZ); // z¹æÇâ END_DECL_ACTION; //#ifdef __NA_000104_20070123_TOP_OF_TRIAL BEGIN_DECL_ACTION(ACTION_TOWER_OF_TRIAL_SHOW_THE_FLOOR) __PROPERTY(INT, Floor); // ÀúÁÖÀÇ Å¾ Ãþ ¼ö END_DECL_ACTION; //#endif // ////////////////////////////////////////////////////////////////////////// BEGIN_DECL_ACTION(ACTION_RANDOM_MAP_MOVE) // ·£´ý ¸Ê À̵¿ public: enum eENUM { _MAX_FIELDCODE_ID = 10, // Çʵå ÄÚµå ¹è¿­ Å©±â RNDMODE_RANDOM = 0, RNDMODE_SEQUENCIAL = 1, TARGET_PERSONAL = 0, TARGET_PARTY = 1, RETMAP_VILLAGE = 0, RETMAP_STARTINGVILLAGE = 1, RETMAP_BATTLEMAP = 2, }; __ARRAY_PROPERTY(INT, _MAX_FIELDCODE_ID, FieldID); __PROPERTY(BYTE, Random); // ·£´ý, ¼øÂ÷ÀûÀ¸·Î __PROPERTY(WzID, AreaID); // ¿µ¿ª ID __PROPERTY(BYTE, Target); // (0: °³ÀÎ 1: ÆÄƼ) __PROPERTY(INT, Type); // (0: ¸¶À», 1:±Í¼Ó¸¶À»(?), 2:¹èƲ¸Ê END_DECL_ACTION; BEGIN_DECL_ACTION(ACTION_RANDOM_AREA_MOVE) // À¯Àú¸¦ ¿µ¿ª À̵¿ ½ÃŲ´Ù public: enum eENUM { _MAX_AREA_ID = 8, TARGET_PERSONAL = 0, TARGET_PARTY = 1, PROC_EACH = 0, PROC_SAMENESS = 1, }; __ARRAY_PROPERTY(INT, _MAX_AREA_ID, AreaIDX); // À̵¿½Ãų ¿µ¿ª IDs __PROPERTY(BYTE, Target); // (0: °³ÀÎ 1: ÆÄƼ) __PROPERTY(BYTE, ProcType); // (0: °³º°, 1: µ¿ÀÏ) END_DECL_ACTION; ////////////////////////////////////////////////////////////////////////// BEGIN_DECL_ACTION(ACTION_REMOVE_MONSTER)// ºÀÀÎ. __PROPERTY(INT, MonsterCode); // ¸ó½ºÅÍÄÚµå __PROPERTY(BYTE, IsExpItemDrop); // °æÇèÄ¡¹×¾ÆÀÌÅ۵巴 Áö±Þ (0: ¾ÈÇÑ´Ù. 1: ÇÑ´Ù) END_DECL_ACTION; BEGIN_DECL_ACTION(ACTION_ADD_EXP) __PROPERTY(BYTE, IsParty); // °³ÀÎÀÌ³Ä ÆÄƼ³Ä (0 : °³ÀÎ, 1:ÆÄƼ) __PROPERTY(DWORD, Exp); // Exp ÁÖ´Â °æÇèÄ¡. END_DECL_ACTION; BEGIN_DECL_ACTION(ACTION_MONSTER_STAT_UP_OR_DOWN) public: enum { eOPERATION_MINUS = 0, // "-" eOPERATION_PLUS = 1, // "+" }; __PROPERTY(INT, MonsterCode); // ¸ó½ºÅÍÄÚµå __PROPERTY(WORD, AbilityID); // ¾îºô¸®Æ¼ ID __PROPERTY(int, AbilityParameter1); // ŸÀÔ¼³Á¤ : 0. ??, 1. ¼öÄ¡, 2. ÇöÀçÄ¡ ´ëºñ ºñÀ², 3. ÃÖ´ëÄ¡ ´ëºñ ºñÀ², 4. »ó´ë ¹æ¾î·Â, 5. ¼öÄ¡°¡ ºñÀ²°ªÀÎ °æ¿ì(À̵¿¼ÓµµÀ²) __PROPERTY(int, AbilityParameter2); // ¼öÄ¡/ºñÀ²°ª __PROPERTY(BYTE, OperationType); // ¿¬»êÀÚ 1 : + , 0 : - END_DECL_ACTION; BEGIN_DECL_ACTION(ACTION_RANDUM_TRIGER_ON_OR_OFF) public: enum { _TRIGGER_STATE_OFF = 0, _TRIGGER_STATE_ON = 1, _MAX_TRIGGER_ID = 8 }; __ARRAY_PROPERTY(DWORD, _MAX_TRIGGER_ID, WzTriggerID); __PROPERTY(BYTE, TriggerState); END_DECL_ACTION; BEGIN_DECL_ACTION(ACTION_PLAY_MUSIC) public: enum { TARGET_PERSONAL = 0, TARGET_FIELD = 1, }; __PROPERTY(BYTE, Target); // (0: °³ÀÎ 1: ÇʵåÀüü) __PROPERTY(INT, MusCode); // (¹ÂÁ÷ÄÚµå) END_DECL_ACTION; BEGIN_DECL_ACTION(ACTION_DOWN_OBJETC_HP) public: // ¸Ê ¿ÀºêÁ§Æ®ÀÇ HP¸¦ %·Î ±ï´Â´Ù. (map_object ¿¡ ¿¬°áµÈ NPC) __PROPERTY(DWORD, dwObjKey); // mapobjectkey __PROPERTY(BYTE, btHPPercentage); // Ç϶ô ¼öÄ¡ END_DECL_ACTION; BEGIN_DECL_ACTION(ACTION_CHANGE_ATTACK_KIND) // ºÀÀÎ. public: // ŸÀÎÀÌ ÀÚ½ÅÀ» °ø°Ý°¡´É[ºÒ°¡´É] ÇÏ°Ô ¸¸µç´Ù. (map_object ¿¡ ¿¬°áµÈ NPC) enum { ATTACK_IMPOSSIBILITY = 0, ATTACK_POSSIBILITY = 1, }; __PROPERTY(DWORD, dwObjKey); // mapobjectkey __PROPERTY(BYTE, btPossibility); // 0 : °ø°Ý ºÒ°¡, 1 : °ø°Ý °¡´É END_DECL_ACTION; BEGIN_DECL_ACTION(ACTION_ACTIVE_STAMP) END_DECL_ACTION; BEGIN_DECL_ACTION(ACTION_ATTACK_OBJECTKIND) // ACTION_CHANGE_ATTACK_KIND È®Àå public: //[¸ó½ºÅÍ/À¯´Ö/¿ÀºêÁ§Æ®]¸¦ °ø°Ý ÇÒ ¼ö [ÀÖ°Ô/¾ø°Ô] ¸¸µç´Ù. __PROPERTY(BYTE, byObjectType); // eOBJECTCODE_TYPE __PROPERTY(DWORD, dwObjectKey); // ŸÀÔ¿¡ µû¶ó º¯È­. __PROPERTY(BYTE, byAttack); // eACTION_ATTACK_TYPE END_DECL_ACTION; BEGIN_DECL_ACTION(ACTION_ACTIVE_SKILL_OBJECTKIND) public: //[¸ó½ºÅÍ/À¯´Ö/¿ÀºêÁ§Æ®]°¡ [½ºÅ³ID]½ºÅ³À» ¹ßµ¿½ÃŲ´Ù. __PROPERTY(BYTE, byObjectType); // eOBJECTCODE_TYPE __PROPERTY(DWORD, dwObjectKey); // ŸÀÔ¿¡ µû¶ó º¯È­. __PROPERTY(DWORD, dwSkillCode); // ¹ßµ¿ ½ºÅ³ ÄÚµå END_DECL_ACTION; BEGIN_DECL_ACTION(ACTION_SHOW_MESSAGEBOX_OBJECTKIND) public: //[¸ó½ºÅÍ/À¯´Ö/¿ÀºêÁ§Æ®]ÀÇ À§Ä¡¿¡ [¸Þ½ÃÁöÄÚµå]¸Þ½ÃÁö¸¦ º¸¿©ÁØ´Ù. __PROPERTY(BYTE, byObjectType); // eOBJECTCODE_TYPE __PROPERTY(DWORD, dwObjectKey); // ŸÀÔ¿¡ µû¶ó º¯È­. __PROPERTY(DWORD, dwMessageCode); // Ãâ·ÂÇÒ ¸Þ½ÃÁöÄÚµå END_DECL_ACTION; BEGIN_DECL_ACTION(ACTION_SET_ATTACK_STATE_OBJECTKIND) public: //[¸ó½ºÅÍ/À¯´Ö]°¡ [¿ÀºêÁ§Æ®]¸¦ [°ø°Ý/¸ØÃã]ÇÑ´Ù. __PROPERTY(BYTE, byObjectType); // eOBJECTCODE_TYPE __PROPERTY(DWORD, dwObjectKey); // ŸÀÔ¿¡ µû¶ó º¯È­. __PROPERTY(BYTE, byDestObjectType); // ´ë»ó eOBJECTCODE_TYPE __PROPERTY(DWORD, dwDestObjectKey); // ´ë»ó ŸÀÔ¿¡ µû¶ó º¯È­. __PROPERTY(BYTE, byAttack); // eACTION_ATTACK_TYPE END_DECL_ACTION; BEGIN_DECL_ACTION(ACTION_DESTROY_OBJECTKIND) // ACTION_REMOVE_MONSTER È®Àå public: // [¸ó½ºÅÍ/À¯´Ö/¿ÀºêÁ§Æ®]¸¦ Á¦°ÅÇÏ¸ç º¸»óÀ» [Áö±Þ/¹ÌÁö±Þ]ÇÑ´Ù. enum { NOT_REWARD = 0, REWARD = 1, }; __PROPERTY(BYTE, byObjectType); // eOBJECTCODE_TYPE __PROPERTY(DWORD, dwObjectKey); // ŸÀÔ¿¡ µû¶ó º¯È­. __PROPERTY(BYTE, byReward); // °æÇèÄ¡¹×¾ÆÀÌÅ۵巴 Áö±Þ (0: ¾ÈÇÑ´Ù. 1: ÇÑ´Ù) END_DECL_ACTION; BEGIN_DECL_ACTION(ACTION_CREATE_MONSTER_LINKED_MAPOBJECT) public: __PROPERTY(DWORD, dwObjectKey); // ¿ÀºêÁ§Æ®ID END_DECL_ACTION; BEGIN_DECL_ACTION(ACTION_CONTROL_TIMER) public: __PROPERTY(DWORD, dwTime); // ½Ã°£ (ms), »ý¼º½Ã Ãʱâ½Ã°£, ÆÄ±«½Ã À¯Áö ½Ã°£(delay) __PROPERTY(BYTE, byControlType); // º¯µ¿ eTIMER_CONTROL_TYPE END_DECL_ACTION; // (0:¿ª¹æÇâ »ý¼º(°¨¼Ò), 1:Á¤¹æÇâ »ý¼º(Áõ°¡), 2:ÆÄ±«) //_NA_0_20100705_DOMINATION_EVENT BEGIN_DECL_ACTION(ACTION_DO_COMMAND) public: enum { END_REGEN_EVENT = 0, MAX_COMMAND_TYPE, }; __PROPERTY(BYTE, byCommandType); // ¸Þ½ÃÁö Á¾·ù END_DECL_ACTION; // added by _NA_0_20100817_HELLON_LAST_TRIGGER BEGIN_DECL_ACTION(ACTION_MOVE_CONTROL) public: __PROPERTY(BYTE, byObjectType); // eOBJECTCODE_TYPE __PROPERTY(DWORD, dwObjectKey); // ŸÀÔ¿¡ µû¶ó º¯È­. __PROPERTY(BYTE, byMove); // eACTION_MOVE_TYPE END_DECL_ACTION; // added by _NA_0_20100817_HELLON_LAST_TRIGGER BEGIN_DECL_ACTION(ACTION_ANIMATION_CONTROL) public: enum { LOOP = 0, ONCE = 1, }; __PROPERTY(BYTE, byObjectType); // eOBJECTCODE_TYPE __PROPERTY(DWORD, dwObjectKey); // ŸÀÔ¿¡ µû¶ó º¯È­. __PROPERTY(DWORD, dwAnimationCode1); // µ¿ÀÛ ÄÚµå1 __PROPERTY(BYTE, byLoop1); //µ¿ÀÛ ÄÚµå1 ÀÇ (·çÇÁ/1ȸ) ¿©ºÎ __PROPERTY(DWORD, dwAnimationCode2); // µ¿ÀÛ ÄÚµå2 __PROPERTY(BYTE, byLoop2); //µ¿ÀÛ ÄÚµå2 ÀÇ (·çÇÁ/1ȸ) ¿©ºÎ END_DECL_ACTION; // _NA_002098_20110307_ADD_NPC_CONTROL_TRIGGER // ¸ó½ºÅÍ/À¯´Ö/¿ÀºêÁ§Æ®¿¡°Ô µ¥¹ÌÁö¸¦ Àû¿ëÇÑ´Ù. BEGIN_DECL_ACTION(ACTION_NPC_APPLY_DAMAGE) public: __PROPERTY(BYTE, ObjectType); // °´Ã¼ Á¾·ù __PROPERTY(DWORD, ObjectKey); // °´Ã¼ Á¾·ù¿¡ µû¶ó º¯°æ __PROPERTY(INT, Damage); // °íÁ¤Çü µ¥¹ÌÁö END_DECL_ACTION; //_NA_004777_20120428_ADD_COMPLETE_COLLECTION_TRIGGER //¹Ì¼Ç³» äÁý Æ®¸®°Å BEGIN_DECL_ACTION(ACTION_COMPLETE_COLLECTION) public: enum { kMaxCollectObject = 10, }; __ARRAY_PROPERTY(CODETYPE, kMaxCollectObject, ObjectKey); // °´Ã¼ Á¾·ù¿¡ µû¶ó º¯°æ __PROPERTY(BYTE, EnableType); // Ȱ¼ºÈ­¿©ºÎ(0:ºñȰ¼º, 1:Ȱ¼º) END_DECL_ACTION; // _NA_000000_20130104_ADD_ACTION_TRIGGER_APPLY_HPMPSD // [°³ÀÎ/Àüü]¿¡°Ô [HP/MP/SD]¸¦ [¼öÄ¡]¸¸Å­ [Áõ°¡/°¨¼Ò]¸¦ Àû¿ë BEGIN_DECL_ACTION(ACTION_APPLY_HPMPSD) public: enum { kPerson = 0, kField = 1, kTeam = 2 }; enum { kHP = 0, KMP = 1, KSD = 2 }; enum { kIncrease = 0, kDecrease = 1 }; __PROPERTY(BYTE, TargetType); // TargetType __PROPERTY(int, TeamKey); // Áõ°¡/°¨¼Ò __PROPERTY(BYTE, PointType); // HP/MP/SD __PROPERTY(DWORD, Figure); // ¼öÄ¡ __PROPERTY(BYTE, ApplyType); // Áõ°¡/°¨¼Ò END_DECL_ACTION; // _NA_006658_20130422_ADD_ACTION_TRIGGER_CHANGE_OBJECT_HP // [ObjectKey]¿ÀºêÁ§Æ®ÀÇ HP¸¦ [ºñÀ²/¼öÄ¡] [¼ýÀÚ]¸¸Å­ [³»¸°´Ù/¿Ã¸°´Ù] BEGIN_DECL_ACTION(ACTION_CHANGE_OBJECT_HP) public: enum { kPersentage = 0, kValue = 1, }; enum { kDecrease = 0, kIncrease = 1 }; __PROPERTY(DWORD, Objectkey); // ´ë»ó ¿ÀºêÁ§Æ®Å° __PROPERTY(BYTE, CalcType); // ºñÀ²/¼öÄ¡ __PROPERTY(DWORD, Figure); // °ª __PROPERTY(BYTE, ApplyType); // Áõ°¨¿©ºÎ END_DECL_ACTION; // _NA_006619_20130422_ADD_ACTION_TRIGGER_CHANGE_RADAR_MAP // ·¹ÀÌ´õ¸Ê(¹Ì´Ï¸Ê)À» º¯°æÇÑ´Ù. BEGIN_DECL_ACTION(ACTION_CHANGE_RADAR_MAP) public: __PROPERTY(WzID, SubMapID); // ¼­ºê¸ÊID END_DECL_ACTION; // ´ë»óÀÇ ¹üÀ§³»¿¡ ÀÖ´Â Ç÷¹À̾°Ô »óŸ¦ Áö¼Ó½Ã°£µ¿¾È ºÎ¿©ÇÑ´Ù BEGIN_DECL_ACTION(ACTION_ATTACH_STATE_RANGE) public: __PROPERTY(BYTE, byObjectType); // eOBJECTCODE_TYPE __PROPERTY(DWORD, dwObjectKey); // ŸÀÔ¿¡ µû¶ó º¯È­. __PROPERTY(FLOAT, fRange); // ¹üÀ§ __PROPERTY(DWORD, dwStateCode); // ºÎ¿©ÇÒ »óÅÂÄÚµå __PROPERTY(DWORD, dwTimeDuration); // »óÅÂÀÇ Áö¼Ó½Ã°£ __PROPERTY(BYTE, byApplyType); // 0:ºÎ¿©ÇÑ´Ù, 1:Á¦°ÅÇÑ´Ù END_DECL_ACTION; // [ÆÄƼ/°³ÀÎ]ÀÇ HP¸¦ [ºñÀ²/¼öÄ¡] [¼ýÀÚ]¸¸Å­ [³»¸°´Ù/¿Ã¸°´Ù] BEGIN_DECL_ACTION(ACTION_CHANGE_PLAYER_HP) public: enum { kTargetParty = 0, kTargetPerson, }; enum { kPersentage = 0, kValue = 1, }; enum { kDecrease = 0, kIncrease = 1 }; __PROPERTY(BYTE, TargetType); // Ÿ°ÙŸÀÔ __PROPERTY(BYTE, CalcType); // ºñÀ²/¼öÄ¡ figureÀÇ Å¸ÀÔ __PROPERTY(DWORD, Figure); // ºñÀ²/°ª __PROPERTY(BYTE, ApplyType); // Áõ°¨¿©ºÎ END_DECL_ACTION; #endif //SOLARTRIGGER_ACTION_INFO_H