/* ========================================================================== * ÆÄ ÀÏ : Quest_Common.h * ¸ñ Àû : * ÀÛ ¼º ÀÚ : ±è°¡¶÷ * ÀÛ ¼º ÀÏ : 2008-03-03 * ÁÖÀÇ»çÇ× : *===========================================================================*/ #pragma once #pragma pack(push,1) #include "CommonDefines.h" #include "CommonNetworkMsgStruct.h" /// ÃÖ´ë º¸À¯ °¡´É °¹¼ö #define MAX_KEEPQUEST 20 #define MAX_DUTY 8 /// ÇÑ Äù½ºÆ®¿¡¼­ °¡Áö´Â ÃÖ´ë ÀÓ¹«¼ö (ÁöºÒ±Ý¾×Àº Á¦¿Ü) #define QUEST_BUFF_MAX 3 #define QUEST_ITEM_MAX 5 #define QUEST_INITHOUR 24 /// Äù½ºÆ® ÃʱâÈ­ Àý´ë ½Ã°£ /// Äù½ºÆ® ŸÀÔ enum eQuestEventType { eQUEST_TIMEEVENT = 0, /// ½Ã°£Á¦ eQUEST_TRANSMON, /// º¯½Å»óÅ eQUEST_SETTITLE, /// ȣĪ»óÅ eQUEST_MAX /// ÀÏ¹Ý }; /// Äù½ºÆ® ¹Ýº¹Å¸ÀÔ enum eQuestRepeat { eQUEST_CHALLENGE = 0, /// ¼º°ø½Ã±îÁö eQUEST_REPEAT, /// ¹Ýº¹ }; /// ÀÓ¹« ¼öÇàŸÀÔ enum eDutyType { eDUTY_NONE = 0, eDUTY_HUNT, /// ¸ó½ºÅÍ »ç³É eDUTY_COLLECT, /// ¾ÆÀÌÅÛ ¼öÁý eDUTY_MEET, /// ¸¸³ª±â eDUTY_ACTIVESKILL, /// ½ºÅ³ ¹ßµ¿ (¸ó½ºÅÍ¿¡°Ô) eDUTY_ENHANCE, /// °­È­ eDUTY_PUTCARD, /// Ä«µå ÀåÂø eDUTY_PVPJOIN, /// ÀüÀåÂü¿© eDUTY_PVPWIN, /// ÀüÀå½Â¸® eDUTY_PVPLOSE, /// ÀüÀåÆÐ¹è }; /// DBÀÇ»óÅÂ¿Í ¸ÂÃçÁ®ÀÖ´Ù /// ÇöÀç Äù½ºÆ®ÀÇ »óÅ enum eQuestStatus { // Äù½ºÆ® ÀÚü »óÅ eQUEST_PLAYING = 0, /// ÁøÇàÁß //eQUEST_REWARD = 1, /// º¸»ó¿Ï·á eQUEST_COMPLETE = 2, /// ÁøÇà¿Ï·á //eQUEST_DELETE = 3, /// Æ÷±â //eQUEST_REMOVE = 5, /// °­Á¦»èÁ¦ }; // npc°¡ ÀÌ¿ëÇÏ´Â Äù½ºÆ® ¾Ë¸²»óÅ // ¿ì¼±¼øÀ§º°·Î Á¤·Ä ( º¸»ó°¡´É > ¿Ï·á°¡´É > ½Å±Ô°¡´É > ÁøÇàÁß > ½ÇÆÐ > NONE ) enum eNpcQuestStatus { eNPCQUEST_NONE = 0, eNPCQUEST_PLAYING, /// ÁøÇàÁß eNPCQUEST_NEW, /// ½Å±Ô°¡´É eNPCQUEST_COMPLETE, /// ÁøÇà¿Ï·á°¡´É ( ÁøÇàÁßÀÇ ´Ù¸¥ »óÅ ) eNPCQUEST_REWARD, /// º¸»ó°¡´É eNPCQUEST_MAX, }; /// npcÀÇ Äù½ºÆ® ÀÌÆåÆ® Á¾·ù enum eNpcQuestEffect { eNPCQUEST_EFFECT_NONE = 0, eNPCQUEST_EFFECT_PLAYING, /// Äù½ºÆ® ÁøÇàÁß eNPCQUEST_EFFECT_NEW, /// ÀÏ¹Ý Äù½ºÆ® ½Å±Ô°¡´É eNPCQUEST_EFFECT_COMPLETE, /// ÀÏ¹Ý Äù½ºÆ® ÁøÇà¿Ï·á°¡´É ( ÁøÇàÁßÀÇ ´Ù¸¥ »óÅ ) eNPCQUEST_EFFECT_REWARD, /// ÀÏ¹Ý Äù½ºÆ® º¸»ó°¡´É eNPCQUEST_EFFECT_THEME_NEW, /// Å׸¶ ´øÁ¯ Äù½ºÆ® ½Å±Ô°¡´É »óÅ eNPCQUEST_EFFECT_THEME_COMPLETE, /// Å׸¶ ´øÁ¯ Äù½ºÆ® ÁøÇà¿Ï·á°¡´É »óÅ eNPCQUEST_EFFECT_THEME_REWARD, /// Å׸¶ ´øÁ¯ Äù½ºÆ® º¸»ó°¡´É »óÅ eNPCQUEST_EFFECT_REPEAT_NEW, /// ¹Ýº¹ Äù½ºÆ® ½Å±Ô°¡´É »óÅ eNPCQUEST_EFFECT_REPEAT_COMPLETE, /// ¹Ýº¹ Äù½ºÆ® ÁøÇà¿Ï·á°¡´É »óÅ eNPCQUEST_EFFECT_REPEAT_REWARD, /// ¹Ýº¹ Äù½ºÆ® º¸»ó°¡´É »óÅ /// eNPCQUEST_NEW À϶§ Ŭ¶óÀ̾ðÆ®ÀÇ Æ¯¼ö »óÅ eNPCQUEST_EFFECT_LOW_LEVEL_NEW, /// Àú ·¹º§ ½Å±Ô°¡´É( Äù½ºÆ® ¼öÁÖ °¡´É, ÀÌÆåÆ® Ç¥½Ã ¾ÈÇÔ ) eNPCQUEST_EFFECT_NEXT_LEVEL_NEW, /// °í ·¹º§ ½Å±Ô Äù½ºÆ®°¡ ÀÖÀ½( Äù½ºÆ® ¼öÁÖ ºÒ°¡, ´Ü¼ø Ç¥½Ã¿ë ) }; /// Äù½ºÆ® Á¦Çѽ𣠟ÀÔ enum eQuestTimeType { eTIME_NONE = 0, eTIME_REAL, /// ½Ç½Ã°£Å¸ÀÔ eTIME_GAME, /// °ÔÀӽð£Å¸ÀÔ }; /// Á¦°ø & ¹Ý³³ ŸÀÔ enum eGiveType { eGIVE_GIVE = 0, /// ¾ÆÀÌÅÛ Á¦°ø¿ë eGIVE_TAKE, /// ¾ÆÀÌÅÛ ¹Ý³³¿ë }; /// ¾ÆÀÌÅÛ º¸»ó ŸÀÔ enum eRewardType { eREWARD_DEFAULT = 0, /// ±âº»º¸»ó eREWARD_SELECT, /// ¼±Åú¸»ó }; enum eDeleteType { eDELETE_YES = 0, /// »èÁ¦ °¡´É eDELETE_NO, /// »èÁ¦ ºÒ°¡ }; /// ¿äÀÏ Å¸ÀÔ enum eDayType { eDAY_SUN = 0, /// tmÀÇ wday¿Í ¸ÂÃá´Ù eDAY_MON, eDAY_TUE, eDAY_WED, eDAY_THU, eDAY_FRI, eDAY_SAT, eDAY_MAX, }; /// Äù½ºÆ® ÁøÇàÁ¤º¸ struct sQuestList { unsigned long arrIdx; // array À妽º unsigned long questIdx; // [In] Äù½ºÆ® °íÀ¯¹øÈ£ __int64 check; // [In] ÁøÇàÁ¤º¸ char status; // [Out] Äù½ºÆ®»óÅ (0:ÁøÇàÁß, 2:ÁøÇà¿Ï·á, 4:ÁøÇà½ÇÆÐ) long restTime; // [Out] ³²Àº½Ã°£ }; enum eREWARD_TYPE { eREWARD_ITEM = 0, /// ¾ÆÀÌÅÛ eREWARD_SKILL, /// ½ºÅ³ }; struct sRewardData { eREWARD_TYPE type; /// º¸»ó ŸÀÔ unsigned long index; /// À妽º }; struct sQuestItem { unsigned long itemIndex; unsigned long count; }; /// NPC°¡ °¡Áø Äù½ºÆ® ¸®½ºÆ® struct sNpcQuestList { tHashSet mQuestSet; }; /// #define ERROR_QUEST_ADD_SUCCESS 0 // ¼º°ø - Äù½ºÆ® Ãß°¡ ¼º°ø #define ERROR_QUEST_ADD_FAIL 1 // ½ÇÆÐ - ¾Ë¼ö ¾ø´Â ¿À·ù #define ERROR_QUEST_ADD_NOTYET 2 // ½ÇÆÐ - DB »ç¿ëÁß #define ERROR_QUEST_ADD_EXIST 3 // ½ÇÆÐ - ÀÌ¹Ì ÇØ´ç Äù½ºÆ®¸¦ °¡Áö°íÀÖÀ½ #define ERROR_QUEST_ADD_COMPLETE 4 // ½ÇÆÐ - ÀÌ¹Ì ¿Ï·áÇÑ Äù½ºÆ® #define ERROR_QUEST_ADD_TRIGGER 5 // ½ÇÆÐ - Äù½ºÆ® ¹ÞÀ» Á¶°ÇÀÌ ¾ÈµÊ #define ERROR_QUEST_ADD_MAX 6 // ½ÇÆÐ - Äù½ºÆ® ¸ñ·ÏÀÌ FULL #define ERROR_QUEST_ADD_ITEM 7 // ½ÇÆÐ - Äù½ºÆ® Á¦°ø¾ÆÀÌÅÛ ¹ÞÀ»¼ö ¾øÀ½ #define ERROR_QUEST_ADD_NPC 8 // ½ÇÆÐ - NPC ÀÎÁõ ½ÇÆÐ #define ERROR_QUEST_ADD_TIME 9 // ½ÇÆÐ - ´Ù½Ã¹ÞÀ»¼ö ÀÖ´Â ½Ã°£ÀÌ ¾È‰çÀ½ #define ERROR_QUEST_ADD_MONEY 10 // ½ÇÆÐ - ÁöºÒÇÒ ±Ý¾×ÀÌ ºÎÁ·ÇÔ #define ERROR_QUEST_ADD_POINT 11 // ½ÇÆÐ - ÁöºÒÇÒ Æ÷ÀÎÆ®°¡ ºÎÁ·ÇÔ #define ERROR_QUEST_ADD_ITEMFAIL 12 // ½ÇÆÐ - ¾ÆÀÌÅÛ #define ERROR_QUEST_ADD_COOLTIME 13 // ½ÇÆÐ - ¾ÆÀÌÅÛ ÄðŸÀÓ #define ERROR_QUEST_ADD_TUTORIALMODE 14 // ½ÇÆÐ - Æ©Å丮¾ó ¸ðµå º¯°æ ½ÇÆÐ #define ERROR_QUEST_ADD_MAX_ITEM 15 // ½ÇÆÐ - Äù½ºÆ® Á¦°ø¾ÆÀÌÅÛ ¹ÞÀ»¼ö ¾øÀ½(ÃÖ´ë º¸À¯¼ö·®) #define ERROR_QUEST_ADD_LICENSE 16 // ½ÇÆÐ - ¹ÌÀÎÁõ ÀÇ·Ú ¾ÆÀÌÅÛ enum eQUESTADD_TYPE { eQUESTADD_NPC = 0, /// NPC ¿¡ ÀÇÇÑ Äù½ºÆ® ¹ßµ¿ eQUESTADD_ETC, /// ±×¿ÜÀÇ ¹ßµ¿( ¾ÆÀÌÅÛ, »ç¸Á½Ã µî ) }; /// ½Å±ÔÄù½ºÆ® µî·Ï ½Åû struct MSG_REQ_QUEST_ADD : MSGROOT { unsigned long questIndex; unsigned long npcIndex; /// npc À妽º }; struct MSG_RES_QUEST_ADD : MSG_ERROR { sQuestList table; }; /// Äù½ºÆ® ¸ñ·Ï struct MSG_RES_QUEST_LIST : MSGROOT { unsigned char rowCount; sQuestList table[1]; }; /// Äù½ºÆ® °»½Å struct MSG_RES_QUEST_UPDATE : MSGROOT { unsigned char rowCount; sQuestList table[1]; }; #define ERROR_QUEST_DEL_SUCCESS 0 // ¼º°ø - Äù½ºÆ® Æ÷±â ¼º°ø #define ERROR_QUEST_DEL_FAIL 1 // ½ÇÆÐ - ¿À·ù #define ERROR_QUEST_DEL_NOTYET 2 // ½ÇÆÐ - DB »ç¿ëÁß #define ERROR_QUEST_DEL_QUEST 3 // ½ÇÆÐ - À߸øµÈ Äù½ºÆ® /// Äù½ºÆ® »èÁ¦ struct MSG_REQ_QUEST_DEL : MSGROOT { int arrayIdx; // Äù½ºÆ® ¸ñ·Ï³» À妽º unsigned long questIndex; }; struct MSG_RES_QUEST_DEL : MSG_ERROR {}; #define ERROR_QUEST_DELAUTO_SUCCESS 0 // ¼º°ø - Äù½ºÆ® ½ÇÆÐ¿äû ¼º°ø #define ERROR_QUEST_DELAUTO_FAIL 1 // ½ÇÆÐ - ¿À·ù #define ERROR_QUEST_DELAUTO_NOTYET 2 // ½ÇÆÐ - DB »ç¿ëÁß /// Äù½ºÆ® »èÁ¦ - ½Ã°£ ¿À¹ö·Î ÀÎÇÑ ÀÚµ¿»èÁ¦ struct MSG_REQ_QUEST_DELAUTO : MSGROOT { int arrayIdx; // Äù½ºÆ® ¸ñ·Ï³» À妽º unsigned long questIndex; }; struct MSG_RES_QUEST_DELAUTO : MSG_ERROR {}; /* #define ERROR_QUEST_ADD_SUCCESS 0 // ¼º°ø - Äù½ºÆ® Ãß°¡ ¼º°ø #define ERROR_QUEST_ADD_FAIL 1 // ½ÇÆÐ - ¾Ë¼ö ¾ø´Â ¿À·ù #define ERROR_QUEST_ADD_NOTYET 2 // ½ÇÆÐ - DB »ç¿ëÁß #define ERROR_QUEST_ADD_EXIST 3 // ½ÇÆÐ - ÀÌ¹Ì ÇØ´ç Äù½ºÆ®¸¦ °¡Áö°íÀÖÀ½ #define ERROR_QUEST_ADD_COMPLETE 4 // ½ÇÆÐ - ÀÌ¹Ì ¿Ï·áÇÑ Äù½ºÆ® #define ERROR_QUEST_ADD_TRIGGER 5 // ½ÇÆÐ - Äù½ºÆ® ¹ÞÀ» Á¶°ÇÀÌ ¾ÈµÊ #define ERROR_QUEST_ADD_MAX 6 // ½ÇÆÐ - Äù½ºÆ® ¸ñ·ÏÀÌ FULL #define ERROR_QUEST_ADD_ITEM 7 // ½ÇÆÐ - Äù½ºÆ® Á¦°ø¾ÆÀÌÅÛ ¹ÞÀ»¼ö ¾øÀ½ #define ERROR_QUEST_ADD_NPC 8 // ½ÇÆÐ - NPC ÀÎÁõ ½ÇÆÐ #define ERROR_QUEST_ADD_TIME 9 // ½ÇÆÐ - ´Ù½Ã¹ÞÀ»¼ö ÀÖ´Â ½Ã°£ÀÌ ¾È‰çÀ½ #define ERROR_QUEST_ADD_MONEY 10 // ½ÇÆÐ - ÁöºÒÇÒ ±Ý¾×ÀÌ ºÎÁ·ÇÔ #define ERROR_QUEST_ADD_POINT 11 // ½ÇÆÐ - ÁöºÒÇÒ Æ÷ÀÎÆ®°¡ ºÎÁ·ÇÔ #define ERROR_QUEST_ADD_ITEMFAIL 12 // ½ÇÆÐ - ¾ÆÀÌÅÛ #define ERROR_QUEST_ADD_COOLTIME 13 // ½ÇÆÐ - ¾ÆÀÌÅÛ ÄðŸÀÓ #define ERROR_QUEST_ADD_TUTORIALMODE 14 // ½ÇÆÐ - Æ©Å丮¾ó ¸ðµå º¯°æ ½ÇÆÐ */ /// ÀÇ·Ú¾ÆÀÌÅÛÀ¸·Î ÀÎÇÑ Äù½ºÆ® ºÎ¿© struct MSG_REQ_QUEST_ADDBYITEM : MSGROOT { unsigned short number; /// Àκ¥½½·Ô ¹øÈ£ }; struct MSG_RES_QUEST_ADDBYITEM : MSG_ERROR { sQuestList table; }; // ¹Ì´Ï¸ÊÀ¸·Î ÀÎÇÑ Äù½ºÆ® ½Å±Ô¸®½ºÆ® Àç¹ß¼Û ¿äû struct MSG_REQ_NEWQUESTLIST : MSGROOT { unsigned long mapIndex; }; // //#define ERROR_NEWQUESTLIST_SUCCESS 0 // ¼º°ø - ¿Ï·á ¿äû ¼º°ø //#define ERROR_NEWQUESTLIST_FAIL 1 // ½ÇÆÐ - ¿À·ù //#define ERROR_NEWQUESTLIST_MAP 2 // MAP struct MSG_SYN_NEWQUESTLIST : public MSGROOT { unsigned short rowCount; unsigned long questIdxList[1]; /// ½Å±Ô °¡´É Äù½ºÆ® ¸ñ·Ï }; struct MSG_SYN_NEXT_LEVEL_NEWQUESTLIST : public MSG_SYN_NEWQUESTLIST { }; #pragma pack(pop)