#ifndef _SOLARTRIGGER_COMMON_H #define _SOLARTRIGGER_COMMON_H #pragma once #include #include //-------------------------------------------------------------------------------------------------- // Á¶°Ç Æ®¸®°Å ŸÀÔ // 3D¿£ÁøÆÀ¿¡¼­ ŸÀÔ °ªÀ» º¯°æµÉ °æ¿ì // 1. enum eCONDITION_TYPEÀ» º¯°æÇÑ´Ù. // 2. ConditionInfo¸¦ »ó¼Ó¹Þ´Â ÇÏÀ§ Ŭ·¡½º¸¦ º¯°æÇÑ´Ù. enum eCONDITION_TYPE { eCONDITION_ALWAYS = 0, // Ç×»ó eCONDITION_COMPARE_SWITCH = 1, // ½ºÀ§Ä¡ ºñ±³ eCONDITION_CLICK_OBJECT = 2, // ¿ÀºêÁ§Æ® Ŭ¸¯ eCONDITION_DAMAGE_OBJECT = 3, // ¿ÀºêÁ§Æ® µ¥¹ÌÁö ÀÔÀ½ eCONDITION_COUNT_NPCKILL = 4, // ¸ó½ºÅÍ »ç³É ¸¶¸®¼ö eCONDITION_PASS_TIME = 5, // ÀÏÁ¤½Ã°£ÀÌ È帧 eCONDITION_ENTER_AREA = 6, // ƯÁ¤ ¿µ¿ª¿¡ µé¾î°¨ eCONDITION_HAVE_ITEM = 7, // ¾ÆÀÌÅÛÀ» ¼ÒÀ¯Çϰí ÀÖ´Ù eCONDITION_MULTI_SWITCH = 8, // ´ÙÁß ½ºÀ§Ä¡ ºñ±³ eCONDITION_MISSION_POINT = 9, // ¹Ì¼Ç Æ÷ÀÎÆ® ¸¸Á· eCONDITION_COMPARE_VARIABLE = 10, // º¯¼ö ºñ±³ eCONDITION_QUEST_PROGRESS = 11, // Quest ¿Ï·á üũ Æ®¸®°Å eCONDITION_CHECK_CLASS_ID = 12, // À¯Àú Ŭ·¡½º ¼³Á¤(ÀÇÁ¸ Æ®¸®°Å) eCONDITION_NPCKILL_FOR_UNITID = 13, // ¸ó½ºÅÍ À¯´ÖÀ» ÀâÀ¸¸é eCONDITION_LIVE_PARTY_MEMBER = 14, // ÆÄƼ¿ø »ýÁ¸/»ç¸Á »óŶó¸é //_NA001385_20090924_DOMINATION_TRIGGER eCONDITION_CHECK_OBJECT_HP = 15, // MapobjectÀÇ HP¼öÄ¡°¡ %ÀÌÇÏÀϰæ¿ì eCONDITION_DESTROY_OBJECT = 16, // mapobject°¡ ÆÄ±« µÇ¾ú´Ù¸é. //_NA_0_20100222_UNIT_TRIGGERS_ADD // 17¹ø ¸ÊÅø ¿©À¯ °ø°£ eCONDITION_CHECK_OBJECTKIND_HP = 18, // [UnitID,Mapobject]ÀÇ HP¼öÄ¡°¡ %ÀÌÇÏÀϰæ¿ì // _NA_002098_20110307_ADD_NPC_CONTROL_TRIGGER eCONDITION_NPC_ENTER_AREA = 19, // NPC°¡ ƯÁ¤ ¿µ¿ª¿¡ µé¾î°¬À» ¶§ //_NA_004777_20120428_ADD_COMPLETE_COLLECTION_TRIGGER eCONDITION_COMPLETE_COLLECTION = 20, // ¹Ì¼Ç³» ¼öÁý Æ®¸®°Å // _NA_000000_20130103_ADD_SERVER_EVENT_TRIGGER eCONDITION_SERVER_EVENT = 21, // ¼­¹öÀ̺¥Æ® Æ®¸®°Å // _NA_000000_20130104_ADD_CONDITION_TRIGGER_CHECK_TEAM eCONDITION_CHECK_TEAM = 22, // ÆÀ üũ(ÀÇÁ¸ Æ®¸®°Å) eCONDITION_COMPARE_SWITCH_EX = 23, // ½ºÀ§Ä¡(È®ÀåÇü) ºñ±³ eCONDITION_MONSTER_ENTER_AREA = 24, // ¸ó½ºÅͰ¡ ƯÁ¤ ¿µ¿ª¿¡ µé¾î°¬À» ¶§ eCONDITION_MAX, // ¿¡·¯ °ËÃâ¿ëÀ¸·Î ¾²ÀÓ (define ³»ºÎ¿¡ ³ÖÁö ¾Ê´Â´Ù. ÀÛ¾÷½Ã °ª¸¸ »ó½Â) }; //-------------------------------------------------------------------------------------------------- enum eACTION_TYPE { eACTION_CHANGE_OBJECTANI = 1001, // ¿ÀºêÁ§Æ® ¾Ö´Ï¸ÞÀÌ¼Ç º¯°æ (¼­¹ö-±¸ÇöX)(Ŭ¶ó-±¸ÇöO) eACTION_CHANGE_PATHTILE = 1002, // ±æÃ£±â ŸÀÏ ¼Ó¼º º¯°æ (¼­¹ö-±¸ÇöO)(Ŭ¶ó-±¸ÇöO) eACTION_CHANGE_OBJECTSTATE = 1003, // ¿ÀºêÁ§Æ® »óÅ º¯°æ (¼­¹ö-±¸ÇöX)(Ŭ¶ó-±¸ÇöO) eACTION_PLAY_EVENT = 1004, // À̺¥Æ® Ç÷¹ÀÌ (¼­¹ö-±¸ÇöO)(Ŭ¶ó-±¸ÇöO) eACTION_SET_ISATTACK = 1005, // °ø°Ý °¡´É/ºÒ°¡ ¼³Á¤ (¼­¹ö-±¸ÇöO)(Ŭ¶ó-±¸ÇöX) eACTION_PORTAL_PLAYER = 1006, // Ç÷¹ÀÌ¾î Æ÷Å» (¼­¹ö-±¸ÇöO)(Ŭ¶ó-±¸ÇöX) eACTION_SET_OBJECTTHRUST = 1007, // ¿ÀºêÁ§Æ® ¹Ð±â ¼³Á¤ (¼­¹ö-±¸ÇöX)(Ŭ¶ó-±¸ÇöX) X eACTION_APPLY_DAMAGE = 1008, // µ¥¹ÌÁö Àû¿ë (¼­¹ö-±¸ÇöX)(Ŭ¶ó-±¸ÇöX) X eACTION_REFLECT_DAMAGE = 1009, // µ¥¹ÌÁö ¹Ý»ç (¼­¹ö-±¸ÇöX)(Ŭ¶ó-±¸ÇöX) X eACTION_CREATE_MONSTER = 1010, // ¸ó½ºÅÍ »ý¼º (¼­¹ö-±¸ÇöO)(Ŭ¶ó-±¸ÇöO) eACTION_DISPLAY_MSGBOX = 1011, // ¸Þ¼¼Áö ¹Ú½º Ãâ·Â (¼­¹ö-±¸ÇöO)(Ŭ¶ó-±¸ÇöX) eACTION_REMOVE_ITEM = 1012, // Àκ¥Å丮 ¾ÆÀÌÅÛ Á¦°Å (¼­¹ö-±¸ÇöO)(Ŭ¶ó-±¸ÇöX) eACTION_REWARD_PLAYER = 1014, // Ç÷¹ÀÌ¾î º¸»ó (¼­¹ö-±¸ÇöO)(Ŭ¶ó-±¸ÇöX) eACTION_CLEAR_MISSION = 1015, // ¹Ì¼Ç °á°ú (¼­¹ö-±¸ÇöO)(Ŭ¶ó-±¸ÇöO) eACTION_PORTAL_RANDOM = 1016, // ·£´ý Æ÷Å» (¼­¹ö-±¸ÇöO)(Ŭ¶ó-±¸ÇöX) eACTION_ACTIVATE_TRIGGER = 1017, // Æ®¸®°Å Ȱ¼º ºñȰ¼º (¼­¹ö-±¸ÇöO)(Ŭ¶ó-±¸ÇöO) eACTION_AREA_DAMAGE = 1018, // ¹üÀ§µ¥¹ÌÁö (¼­¹ö-±¸ÇöO)(Ŭ¶ó-±¸ÇöX) eACTION_OPERATE_SWITCH = 1019, // ½ºÀ§Ä¡ ¿¬»ê (¼­¹ö-±¸ÇöO)(Ŭ¶ó-±¸ÇöX) eACTION_OPERATE_VARIABLE = 1020, // ½ºÀ§Ä¡ ¼³Á¤ º¯°æ (¼­¹ö-±¸ÇöO)(Ŭ¶ó-±¸ÇöX) eACTION_ROAD_CONNECT = 1021, // ±æ ¿¬°áÀ» ¼³Á¤/ÇØÁ¦ÇÑ´Ù (¼­¹ö-±¸ÇöO)(Ŭ¶ó-±¸ÇöO) eACTION_CREATE_DIR_MONSTER = 1022, // ¸ó½ºÅ͸¦ »ý¼ºÇÑ´Ù(¹æÇâ) (¼­¹ö-±¸ÇöO)(Ŭ¶ó-±¸ÇöO) eACTION_CHANGE_LIGHT = 1023, // ¶óÀÌÆ® ¼³Á¤À» º¯°æÇÑ´Ù (¼­¹ö-±¸ÇöX)(Ŭ¶ó-±¸ÇöO) eACTION_CHANGE_OBJECT_TYPE = 1024, // ¿ÀºêÁ§Æ® »óŸ¦ ¹Ù²Û´Ù (¼­¹ö-±¸ÇöX)(Ŭ¶ó-±¸ÇöO) eACTION_RANDOM_MAP_MOVE = 1025, // ·£´ý ¸Ê À̵¿ (¼­¹ö-±¸ÇöO)(Ŭ¶ó-±¸ÇöX) eACTION_DROP_TRESUREBOX = 1026, // º¸¹° »óÀÚ ¶³¾î¶ß¸®±â (¼­¹ö-±¸ÇöX)(Ŭ¶ó-±¸ÇöX) X //eACTION_CREATE_MONSTER, eACTION_QUEST_SATISFACTION = 1027, // Äù½ºÆ® Á¶°Ç ¸¸Á· (¼­¹ö-±¸ÇöX)(Ŭ¶ó-±¸ÇöX) X eACTION_QUEST_GRANT = 1028, // Äù½ºÆ® ºÎ¿© (¼­¹ö-±¸ÇöO)(Ŭ¶ó-±¸ÇöX) eACTION_QUEST_SETUP = 1029, // Äù½ºÆ® ¿Ï·á/½ÇÆÐ ¼³Á¤ (¼­¹ö-±¸ÇöO)(Ŭ¶ó-±¸ÇöX) // eACTION_USE_CATEGORY = 1031, // (Çʵå)ÀÇ (Ä«Å×°í¸®)¸¦ »ç¿ëÇÑ´Ù (¼­¹ö-±¸ÇöX)(Ŭ¶ó-±¸ÇöX) X eACTION_HOLD_CHARACTER = 1032, // (Character)ÀÇ À̵¿À» (½Ã°£)µ¿¾È ¸·´Â´Ù (¼­¹ö-±¸ÇöX)(Ŭ¶ó-±¸ÇöX) X eACTION_CREATE_MONSTER_GROUP = 1033, // ¸ó½ºÅÍ±×·ì »ý¼º (¼­¹ö-±¸ÇöX)(Ŭ¶ó-±¸ÇöX) X eACTION_SHOW_GUIDE_MSGBOX = 1034, // ¾È³»¸Þ½ÃÁö¹Ú½º Ãâ·Â (¼­¹ö-±¸ÇöX)(Ŭ¶ó-±¸ÇöO) eACTION_SHOW_OR_HIDE_UNIT = 1035, // À¯´Ö ³ªÅ¸³²/»ç¶óÁü (¼­¹ö-±¸ÇöX)(Ŭ¶ó-±¸ÇöX) X eACTION_SHOW_OR_HIDE_MSGBOX = 1036, // ¸Þ½ÃÁö ¹Ú½ºÀÇ ³ªÅ¸³²/»ç¶óÁü (¼­¹ö-±¸ÇöX)(Ŭ¶ó-±¸ÇöO) eACTION_RANDOM_AREA_MOVE = 1038, // À¯Àú¸¦ ¿µ¿ª À̵¿ ½ÃŲ´Ù (¼­¹ö-±¸ÇöO)(Ŭ¶ó-±¸ÇöX) eACTION_RANDOM_MONSTER_SPAWN = 1039, // ¸ó½ºÅÍ ·£´ý ½ºÆù (¼­¹ö-±¸ÇöO)(Ŭ¶ó-±¸ÇöO) eACTION_TOWER_OF_TRIAL_SHOW_THE_FLOOR = 1040, // (¼­¹ö-±¸ÇöO)(Ŭ¶ó-±¸ÇöX) eACTION_REMOVE_MONSTER = 1041, // (¼­¹ö-±¸ÇöO)(Ŭ¶ó-±¸ÇöX) eACTION_ADD_EXP = 1042, // (¼­¹ö-±¸ÇöO)(Ŭ¶ó-±¸ÇöX) eACTION_MONSTER_STAT_UP_OR_DOWN = 1043, // ¸ó½ºÅÍÀÇ ´É·ÂÄ¡Áß Çϳª¸¦ Áõ°¡/°¨¼Ò ½ÃŲ´Ù. (¼­¹ö-±¸ÇöO)(Ŭ¶ó-±¸ÇöX) eACTION_RANDUM_TRIGER_ON_OR_OFF = 1044, // ÇØ´ç Æ®¸®°ÅÁß Çϳª¸¦ on/off ½ÃŲ´Ù. (¼­¹ö-±¸ÇöO)(Ŭ¶ó-±¸ÇöX) //__NA001140_20080128_SOUND_TRIGGER_ADD eACTION_PLAY_MUSIC = 1045, // »ç¿îµå ÆÄÀÏÀ» Àç»ýÇÑ´Ù. (¼­¹ö-±¸ÇöO)(Ŭ¶ó-±¸ÇöX) //_NA001385_20090924_DOMINATION_TRIGGER eACTION_DOWN_OBJETC_HP = 1046, // ¸Ê ¿ÀºêÁ§Æ®ÀÇ HP¸¦ ±ï´Â´Ù. (¼­¹ö-±¸ÇöO)(Ŭ¶ó-±¸ÇöX) eACTION_CHANGE_ATTACK_KIND = 1047, // ÀÚ½ÅÀ» °ø°Ý°¡´É[ºÒ°¡´É] ÇÏ°Ô ¸¸µç´Ù. (¼­¹ö-±¸ÇöO)(Ŭ¶ó-±¸ÇöO) eACTION_ACTIVE_STAMP = 1048, // °¢ÀÎ °¡´É »óÅ·Πº¯°æ½Ã(¿¡Å׸£ ÆÄ±«) °¢Àι°ÀÇ (¼­¹ö-±¸ÇöO)(Ŭ¶ó-±¸ÇöX) // Ȱ¼ºÈ­ »óÅ µ¿±âÈ­¸¦ À§ÇÑ À̺¥Æ®·Î »ç¿ë // ÇöÀç eCONDITION_DESTROY_OBJECT »óÅ ÀϽà µ¿ÀÛ //_NA_0_20100222_UNIT_TRIGGERS_ADD eACTION_ATTACK_OBJECTKIND = 1049, // [¸ó½ºÅÍ/À¯´Ö/¿ÀºêÁ§Æ®]¸¦ °ø°Ý ÇÒ ¼ö [ÀÖ°Ô/¾ø°Ô] ¸¸µç´Ù (ƯÁ¤ ¸ó½ºÅÍ °´Ã¼°¡ Ç÷¹À̾°Ô °ø°Ý ´çÇÏÁö ¾Ê°Ô ¸¸µç´Ù.) eACTION_ACTIVE_SKILL_OBJECTKIND = 1050, // [¸ó½ºÅÍ/À¯´Ö/¿ÀºêÁ§Æ®]°¡ [½ºÅ³ID]½ºÅ³À» ¹ßµ¿½ÃŲ´Ù. eACTION_SHOW_MESSAGEBOX_OBJECTKIND = 1051, // [¸ó½ºÅÍ/À¯´Ö/¿ÀºêÁ§Æ®]ÀÇ À§Ä¡¿¡ [¸Þ½ÃÁöÄÚµå]¸Þ½ÃÁö¸¦ º¸¿©ÁØ´Ù. eACTION_SET_ATTACK_STATE_OBJECTKIND = 1052, // [¸ó½ºÅÍ/À¯´Ö]°¡ [¸ó½ºÅÍ]¸¦ [°ø°Ý/¸ØÃã]ÇÑ´Ù. eACTION_DESTROY_OBJECTKIND = 1053, // [¸ó½ºÅÍ/À¯´Ö/¿ÀºêÁ§Æ®]¸¦ Á¦°ÅÇÏ¸ç º¸»óÀ» [Áö±Þ/¹ÌÁö±Þ]ÇÑ´Ù. eACTION_CREATE_MONSTER_LINKED_MAPOBJECT = 1054, // [¿ÀºêÁ§Æ®]¸¦ »ý¼ºÇÑ´Ù. (MapObject¿¡ ¿¬°áµÈ Npc »ý¼º) // _NA_0_20100525_ADD_TIMER_ACTION_TRIGGER eACTION_CONTROL_TIMER = 1055, // ½Ã°è¸¦ º¸¿©ÁØ´Ù. //_NA_0_20100616_DOMINATION_EVENT eACTION_DO_COMMAND = 1056, // ŸÀÔ¿¡ ÇØ´ç ÇÏ´Â µ¿ÀÛÀ» ½ÇÇà(Æ®¸®°Å¸¦ ÅëÇÑ ¸Þ½ÃÁö Àü´Þ) //_NA_0_20100817_HELLON_LAST_TRIGGER eACTION_MOVE_CONTROL = 1057, eACTION_ANIMATION_CONTROL = 1058, // _NA_002098_20110307_ADD_NPC_CONTROL_TRIGGER eACTION_NPC_APPLY_DAMAGE = 1059, // ¸ó½ºÅÍ/À¯´Ö/¿ÀºêÁ§Æ®¿¡°Ô µ¥¹ÌÁö¸¦ Àû¿ëÇÑ´Ù. //_NA_004777_20120428_ADD_COMPLETE_COLLECTION_TRIGGER eACTION_COMPLETE_COLLECTION = 1060, //¹Ì¼Ç³» äÁý Æ®¸®°Å //_NA_000000_20130104_ADD_ACTION_TRIGGER_APPLY_HPMPSD eACTION_APPLY_HPMPSD = 1061, // [°³ÀÎ/Àüü]¿¡°Ô [HP/MP/SD]¸¦ [¼öÄ¡]¸¸Å­ [Áõ°¡/°¨¼Ò]¸¦ Àû¿ë //_NA_006658_20130422_ADD_ACTION_TRIGGER_CHANGE_OBJECT_HP eACTION_CHANGE_OBJECT_HP = 1062, // [ObjectKey]¿ÀºêÁ§Æ®ÀÇ HP¸¦ [ºñÀ²/¼öÄ¡] [¼ýÀÚ]¸¸Å­ [³»¸°´Ù/¿Ã¸°´Ù] //_NA_006619_20130422_ADD_ACTION_TRIGGER_CHANGE_RADAR_MAP eACTION_CHANGE_RADAR_MAP = 1063, // ·¹ÀÌ´õ¸Ê(¹Ì´Ï¸Ê)À» º¯°æÇÑ´Ù. eACTION_ATTACH_STATE_RANGE = 1064, // ´ë»óÀÇ ¹üÀ§³»¿¡ »óŸ¦ Áö¼Ó½Ã°£µ¿¾È ºÎ¿©ÇÑ´Ù. eACTION_CHANGE_PLAYER_HP = 1065, // [ÆÄƼ/°³ÀÎ]ÀÇ HP¸¦ [ºñÀ²/¼öÄ¡] [¼ýÀÚ]¸¸Å­ [³»¸°´Ù/¿Ã¸°´Ù] eACTION_OPERATE_SWITCH_EX = 1066, // ½ºÀ§Ä¡ ¿¬»ê(È®ÀåÇü) eACTION_NPC_RANDOM_AREA_MOVE = 1067, // NPC ·£´ý ¿µ¿ª À̵¿ eACTION_MAX, // ¿¡·¯ °ËÃâ¿ëÀ¸·Î ¾²ÀÓ (define ³»ºÎ¿¡ ³ÖÁö ¾Ê´Â´Ù. ÀÛ¾÷½Ã °ª¸¸ »ó½Â) }; //-------------------------------------------------------------------------------------------------- // ºñ±³ Á¾·ù enum eCOMPARE_TYPE { eCOMPARE_EQUAL = 0, // "==" eCOMPARE_MORE, // ">" eCOMPARE_LESS, // "<" eCOMPARE_LESSTHAN, // "<=" eCOMPARE_MORETHAN, // ">=" eCOMPARE_NOTEQUAL, // "!=" }; // ¿¬»ê Á¾·ù enum eOPERATION_TYPE { eOPERATION_EQUAL = 0, // "=" eOPERATION_PLUS, // "+" eOPERATION_MINUS, // "-" eOPERATION_MULTIPLE, // "*" eOPERATION_DIVIDE, // "/" }; // _NA_0_20100222_UNIT_TRIGGERS_ADD enum eOBJECTCODE_TYPE { NPCCODE_TYPE = 0, UNITID_TYPE = 1, MAPNPC_TYPE = 2, NON_TYPE = 3, // _NA_0_20100817_HELLON_LAST_TRIGGER }; enum eACTION_ATTACK_TYPE { ATTACK_IMPOSSIBILITY = 0, ATTACK_POSSIBILITY = 1, }; //_NA_0_20100817_HELLON_LAST_TRIGGER enum eACTION_MOVE_TYPE { MOVE_IMPOSSIBILITY = 0, MOVE_POSSIBILITY = 1, }; //_NA_0_20100525_ADD_TIMER_ACTION_TRIGGER enum eTIMER_CONTROL_TYPE { eTIMER_CREATE_DECREASE = 0, // ŸÀÌ¸Ó »ý¼ºÈÄ ½Ã°£°ª °¨¼Ò. eTIMER_CREATE_INCREASE = 1, // ŸÀÌ¸Ó »ý¼ºÈÄ ½Ã°£°ª Áõ°¡. eTIMER_DESTROY = 2, // ÀÏÁ¤ ½Ã°£ ui À¯ÁöÈÄ ÆÄ±«. }; // »ç¿ëÇÏÁö ¾Ê´Â °ª #define INVALID_SWITCH_ID_VALUE 255 //-------------------------------------------------------------------------------------------------- #if !defined(_SERVER) template class TRIGGER_POOL { public: enum { eDEFUALT_TRIGGER_POOL_SIZE = 10, }; TRIGGER_POOL(INT iSize = eDEFUALT_TRIGGER_POOL_SIZE) { #ifndef _SERVER m_pool.Initialize(iSize); #else m_pool.Initialize(iSize, iSize, "TRIGGER_POOL", AssertionLogger4Pool_Server); #endif // } ~TRIGGER_POOL() { m_pool.Release(); } _TYPE * Alloc() { return (_TYPE*)m_pool.Alloc(); } void Free(_TYPE* pType) { m_pool.Free(pType); } private: util::CMemoryPoolFactory<_TYPE> m_pool; }; #define __DECLARE_POOL(CLASSNAME) \ private: \ static TRIGGER_POOL m_Pool; \ public: \ static CLASSNAME* Create() \ { \ return m_Pool.Alloc(); \ } \ static void Destroy(CLASSNAME* pObject) \ { \ m_Pool.Free(pObject); \ } #define __IMPL_POOL(CLASSNAME) \ TRIGGER_POOL CLASSNAME::m_Pool; //-------------------------------------------------------------------------------------------------- #elif defined(_SERVER) #define __DECLARE_POOL(class_name) \ public: \ static class_name* Create() { \ return TAllocNew(class_name); \ } \ static void Destroy(class_name* object_ptr) { \ TAllocDelete(class_name, object_ptr); \ } #define __IMPL_POOL(class_name) #endif //-------------------------------------------------------------------------------------------------- #endif //_SOLARTRIGGER_COMMON_H