#pragma once #include "DnLuaAPIDefine.h" // GameServer Script API // [4/1/2008 nextome] class CEtTriggerElement; class CDNGameRoom; class CDNUserBase; int CheckInvenForQuestReward(CDNUserBase* pUser, const TQuestReward& QuestReward, const bool bSelectedArray[]); // ¸ðµç ÇÔ¼ö¸¦ ·ç¾Æ¿¡ µî·ÏÇÑ´Ù. void DefAllAPIFunc(lua_State* pLuaState); /* desc : ´ÙÀ½ ´ë»ç·Î ¿¬°áÇÑ´Ù. param : À¯ÀúÀ妽º, NPCÀ妽º, ÅäÅ©À妽º, ÅäÅ©ÆÄÀÏÀ̸§ return : void */ void api_npc_NextTalk(CDNGameRoom *pRoom, UINT nUserSessionID, UINT nNpcObjectID, const char* szTalkIndex, const char* szTargetFile); /* desc : ´ÙÀ½ ½ºÅ©¸³Æ®·Î ¿¬°áÇÑ´Ù. param : À¯ÀúÀ妽º, NPCÀ妽º, ÅäÅ©À妽º, ÅäÅ©ÆÄÀÏÀ̸§ return : void */ void api_npc_NextScript(CDNGameRoom *pRoom, UINT nUserSessionID, UINT nNpcObjectID, const char* szTalkIndex, const char* szTargetFile); /* desc : ´ë»ç ÆÄ¶ó¸ÞÅ͸¦ ¼¼ÆÃÇÑ´Ù(½ºÆ®¸µ). param : ÆÄ¶ó¸ÞÅÍŰ, ÆÄ¶ó¸ÞÅ͹®ÀÚÀÇ À妽º return : -1 À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, -2 ÆÄ¶ó¸ÞÅÍ °¹¼ö°¡ ³Ñ¾î¼­¼­ ´õÀÌ»ó ¼¼ÆÃÇÒ¼ö ¾øÀ½. 1 ÀÌ¸é ¼º°ø sample : Àú´Â {%color} »öÀ» ÁÁ¾ÆÇÕ´Ï´Ù. ¶ó´Â ¹®ÀåÀ» ¸¸µé¶§. api_npc_SetParamString("{%color}, math.random(2) ); ÀÌ·±½ÄÀ¸·Î ¸¸µé¾îÁØ´Ù. 1Àº TalkParamTable.xls ¿¡ 1 : »¡°­, 2: ÆÄ¶û µû·Î ±â·Ï µÇ¾îÀÖ¾î¾ßÇÑ´Ù. ÁÖÀÇ: api_npc_SetParamString À¸·Î ¼¼ÆÃÇÑ ÆÄ¶ó¸ÞÅÍ´Â api_npc_NextTalk È£ÃâÈÄ clear µÇ¹Ç·Î api_npc_NextTalk È£ÃâÀü¿¡ ¼¼ÆÃÇÑ´Ù. */ int api_npc_SetParamString(CDNGameRoom *pRoom, UINT nUserObjectID, const char* szParamKey, int nParamID); /* desc : ´ë»ç ÆÄ¶ó¸ÞÅ͸¦ ¼¼ÆÃÇÑ´Ù(Á¤¼ö). param : ÆÄ¶ó¸ÞÅÍŰ, Á¤¼ö°ª return : -1 À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, -2 ÆÄ¶ó¸ÞÅÍ °¹¼ö°¡ ³Ñ¾î¼­¼­ ´õÀÌ»ó ¼¼ÆÃÇÒ¼ö ¾øÀ½. 1 ÀÌ¸é ¼º°ø sample : Àú´Â {%age} »ìÂë¿¡ ¼ûÁö°í ½Í¾î¿ä. ¶ó´Â ¹®ÀåÀ» ¸¸µé¶§. api_npc_SetParamInt("{%age}, math.random(30)+40 ); ÀÌ·±½ÄÀ¸·Î ¸¸µé¾îÁØ´Ù. ÁÖÀÇ: api_npc_SetParamInt À¸·Î ¼¼ÆÃÇÑ ÆÄ¶ó¸ÞÅÍ´Â api_npc_NextTalk È£ÃâÈÄ clear µÇ¹Ç·Î api_npc_NextTalk È£ÃâÀü¿¡ ¼¼ÆÃÇÑ´Ù. */ int api_npc_SetParamInt(CDNGameRoom *pRoom, UINT nUserObjectID, const char* szParamKey, int nValue); /* desc : ·Î±×¸¦ ³²±ä´Ù. param : ·Î±× ½ºÆ®¸µ ÁٹٲÞÀ» À§ÇØ \n À» Æ÷ÇÔÇÒ°Í. return : void */ void api_log_AddLog(CDNGameRoom *pRoom, const char* szLog); /* desc : À¯Àú¿¡°Ô ·Î±×¸¦ ³²±ä´Ù. À¯ÀúäÆÃ¸Þ¼¼Áö·Î Àü¼ÛÇØÁÜ. param : ·Î±× ½ºÆ®¸µ ÁٹٲÞÀ» À§ÇØ \n À» Æ÷ÇÔÇÒ°Í. return : void */ void api_log_UserLog(CDNGameRoom *pRoom, UINT nUserObjectID, const char* szLog); /* desc : À¯Àú¿¡°Ô Äù½ºÆ® °ü·Ã Á¤º¸¸¦ äÆÃÀ¸·Î º¸³»ÁØ´Ù. param : return : void */ void api_quest_DumpQuest(CDNGameRoom *pRoom, UINT nUserObjectID); /* desc : À¯Àú¿¡°Ô Äù½ºÆ®¸¦ ºÎ¿© ÇÑ´Ù. param : À¯ÀúÀ妽º, Äù½ºÆ®À妽º, Äù½ºÆ® ŸÀÔ QuestType_SubQuest = 1, QuestType_MainQuest = 2, return : 1 : ¼º°ø, -1 : À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, -2 : À¯Àú°¡ Äù½ºÆ®¸¦ °¡Áö°í ÀÖÁö ¾ÊÀ½ */ int api_quest_AddHuntingQuest(CDNGameRoom *pRoom, UINT nUserObjectID, int nQuestID, int nQuestStep, int nJournalStep, int nCountingSlot, int nCountingType, int nCountingIndex, int nTargetCnt); int api_quest_AddQuest(CDNGameRoom *pRoom, UINT nUserObjectID, int nQuestID, int nQuestType); /* desc : À¯Àú¿¡°Ô Äù½ºÆ®¸¦ ¿Ï·á ½ÃŲ´Ù. param : À¯ÀúÀ妽º, Äù½ºÆ®À妽º, ÇöÀç °¡Áö°í ÀÖ´Â Äù½ºÆ®¿¡¼­ Áö¿ï°ÍÀÎÁö (¾ÈÁö¿ì¸é Ç÷¹ÀÌ È½¼ö¸¸ Áõ°¡ ½ÃŲ´Ù.) return : -1 À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, -2 Äù½ºÆ®°¡ ÁøÇàÁßÀÌ ¾Æ´Ô */ int api_quest_CompleteQuest(CDNGameRoom *pRoom, UINT nUserObjectID, int nQuestID, bool bDelPlayList); /* desc : À¯Àú¿¡°Ô Äù½ºÆ®¸¦ ¿Ï·á¸ñ·Ï¿¡ Ãß°¡ ½ÃŲ´Ù. ( DB ¿¡ ±â·Ï!! ) param : À¯ÀúÀ妽º, Äù½ºÆ®À妽º return : -1 À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, -2 Äù½ºÆ®°¡ ÁøÇàÁßÀÌ ¾Æ´Ô */ int api_quest_MarkingCompleteQuest(CDNGameRoom *pRoom, UINT nUserObjectID, int nQuestID); /* desc : ¿Ï·á¸ñ·Ï¿¡ ¿Ï·á¸¶Å·ÀÌ µÇ¾îÀÖ´Â Äù½ºÆ®ÀÎÁö? param : À¯ÀúÀ妽º, Äù½ºÆ®À妽º return : -1 À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, 1 ÀÌ¸é ¿Ï·á¸¶Å·µÈ Äù½ºÆ®, 0 ÀÌ¸é ¿Ï·á¸¶Å· ¾ÈµÊ */ int api_quest_IsMarkingCompleteQuest(CDNGameRoom *pRoom, UINT nUserObjectID, int nQuestID); /* desc : À¯Àú°¡ Äù½ºÆ®¸¦ °¡Áö°í ÀÖ´ÂÁö È®ÀÎÇÑ´Ù. param : À¯ÀúÀ妽º, Äù½ºÆ®À妽º return : -1 À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, -2 À¯Àú°¡ Äù½ºÆ®¸¦ °¡Áö°í ÀÖÁö ¾ÊÀ½, -1 º¸´Ù Å©¸é Äù½ºÆ®¸¦ °¡Áö°í ÀÕÀ½ ( Äù½ºÆ® ½ºÅÜÀ» ¸®ÅÏ ) */ int api_quest_UserHasQuest(CDNGameRoom *pRoom, UINT nUserObjectID, int nQuestID); /* desc : À¯Àú°¡ ¸î°³ÀÇ Äù½ºÆ®¸¦ ÁøÇàÁßÀÎÁö È®ÀÎÇÑ´Ù. param : À¯ÀúÀ妽º, Äù½ºÆ®À妽º return : -1 À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, ±×¿Ü¿¡ ÇöÀç ÁøÇàÁßÀÎ Äù½ºÆ® °¹¼ö ¸®ÅÏ.. */ int api_quest_GetPlayingQuestCnt(CDNGameRoom *pRoom, UINT nUserObjectID); /* desc : npc À妽º¸¦ ¸®ÅÏÇÑ´Ù. param : À¯ÀúÀ妽º, NpcObjId ( npc À妽º¿Í npcobject À妽º´Â ´Ù¸¥ °Í. ) return : -1 À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, -2 npc ¸¦ ãÀ»¼ö ¾øÀ½, ±×¿Ü¿¡´Â npcÀ妽º */ int api_npc_GetNpcIndex(CDNGameRoom *pRoom, UINT nUserObjectID, UINT nNpcObjID); /* desc : À¯Àú°¡ °¡Áö°í ÀÖ´Â Äù½ºÆ®ÀÇ ½ºÅÜ, Àú³Î ½ºÅÜÀ» ¼¼ÆÃÇÑ´Ù. param : À¯ÀúÀ妽º, Äù½ºÆ®À妽º, Àú³Î ½ºÅÜ return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½ -2 => À¯Àú°¡ Äù½ºÆ®¸¦ °¡Áö°í ÀÖÁö ¾ÊÀ½. -3 Àú³Î ½ºÅÜ ¹üÀ§¸¦ ¹þ¾î³². ¼º°øÀÏ °æ¿ì 1À» ¸®ÅÏ */ int api_quest_SetQuestStepAndJournalStep(CDNGameRoom *pRoom, UINT nUserObjectID, int nQuestID, short nQuestStep, int nJournalStep); /* desc : À¯Àú°¡ °¡Áö°í ÀÖ´Â Äù½ºÆ®ÀÇ Äù½ºÆ® ½ºÅÜÀ» ¼¼ÆÃÇÑ´Ù. param : À¯ÀúÀ妽º, Äù½ºÆ®À妽º, Äù½ºÆ® ½ºÅÜ return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½ -2 => À¯Àú°¡ Äù½ºÆ®¸¦ °¡Áö°í ÀÖÁö ¾ÊÀ½. ¼º°øÀÏ °æ¿ì 1À» ¸®ÅÏ */ int api_quest_SetQuestStep(CDNGameRoom *pRoom, UINT nUserObjectID, int nQuestID, short nQuestStep); /* desc : À¯Àú°¡ °¡Áö°í ÀÖ´Â Äù½ºÆ®ÀÇ Äù½ºÆ® ½ºÅÜÀ» ¾ò´Â´Ù. param : À¯ÀúÀ妽º, Äù½ºÆ®À妽º return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½ -2 => À¯Àú°¡ Äù½ºÆ®¸¦ °¡Áö°í ÀÖÁö ¾ÊÀ½., -1 º¸´Ù Å«°æ¿ì ÇöÀç Äù½ºÆ®ÀÇ ½ºÅÜ */ int api_quest_GetQuestStep(CDNGameRoom *pRoom, UINT nUserObjectID, int nQuestID); /* desc : À¯Àú°¡ °¡Áö°í ÀÖ´Â Äù½ºÆ®ÀÇ Àú³Î ½ºÅÜÀ» ¼¼ÆÃÇÑ´Ù. param : À¯ÀúÀ妽º, Äù½ºÆ®À妽º, Àú³Î ½ºÅÜ return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½ -2 => À¯Àú°¡ Äù½ºÆ®¸¦ °¡Áö°í ÀÖÁö ¾ÊÀ½. -3 Àú³Î ½ºÅÜ ¹üÀ§¸¦ ¹þ¾î³². ¼º°øÀÏ °æ¿ì 1À» ¸®ÅÏ */ int api_quest_SetJournalStep(CDNGameRoom *pRoom, UINT nUserObjectID, int nQuestID, int nJournalStep); /* desc : À¯Àú°¡ °¡Áö°í ÀÖ´Â Äù½ºÆ®ÀÇ Àú³Î ½ºÅÜÀ» ¾ò´Â´Ù. param : À¯ÀúÀ妽º, Äù½ºÆ®À妽º return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½ -2 => À¯Àú°¡ Äù½ºÆ®¸¦ °¡Áö°í ÀÖÁö ¾ÊÀ½., -1 º¸´Ù Å«°æ¿ì ÇöÀç Àú³Î ½ºÅÜ */ int api_quest_GetJournalStep(CDNGameRoom *pRoom, UINT nUserObjectID, int nQuestID); /* desc : À¯Àú°¡ °¡Áö°í ÀÖ´Â Äù½ºÆ®ÀÇ ¸Þ¸ðÀÇ Æ¯Á¤ À妽º¿¡ °ªÀ» ¼¼ÆÃÇÑ´Ù. param : À¯ÀúÀ妽º, ¸Þ¸ðÀ妽º, ¸Þ¸ð°ª return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½. -2 => À¯Àú°¡ Äù½ºÆ®¸¦ °¡Áö°í ÀÖÁö ¾ÊÀ½. -3 ¸Þ¸ð À妽º ¹üÀ§¸¦ ¹þ¾î³². ¼º°øÀÏ °æ¿ì 1À» ¸®ÅÏ */ int api_quest_SetQuestMemo(CDNGameRoom *pRoom, UINT nUserObjectID, int nQuestID, char nMemoIndex, int iVal); /* desc : À¯Àú°¡ °¡Áö°í ÀÖ´Â Äù½ºÆ®ÀÇ ¸Þ¸ðÀÇ Æ¯Á¤ À妽ºÀÇ °ªÀ» ¾ò´Â´Ù. param : À¯ÀúÀ妽º, ¸Þ¸ðÀ妽º return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½. -2 => À¯Àú°¡ Äù½ºÆ®¸¦ °¡Áö°í ÀÖÁö ¾ÊÀ½. -3 ¸Þ¸ð À妽º ¹üÀ§¸¦ ¹þ¾î³². -1 º¸´Ù Å«°æ¿ì ƯÁ¤ ¸Þ¸ð À妽ºÀÇ °ª */ int api_quest_GetQuestMemo(CDNGameRoom *pRoom, UINT nUserObjectID, int nQuestID, char nMemoIndex); /* desc : ¸ó½ºÅÍ Àâ°Å³ª, ¾ÆÀÌÅÛ ¾ò´Â °¹¼ö Ä«¿îÆÃ Á¤º¸¸¦ ¼¼ÆÃÇÏ´Â ÇÔ¼ö ÀÌ´Ù. param : À¯ÀúÀ妽º, Äù½ºÆ®À妽º, Ä«¿îÆÃÁ¤º¸ ¼¼ÆÃ ½½·Ô(0ºÎÅÍ 4±îÁö 5°³ÀÇ ¼¼ÆÃ½½·ÔÀÌ ÀÖÀ½) , Ä«¿îÆÃÇÒ Å¸ÀÔ( CountingType_MyMonsterKill = 1, CountingType_AllMonsterKill = 2, CountingType_Item = 3, CountingType_SymbolItem = 4), Ä«¿îÆÃÇÒ °ÍÀÇ À妽º, Ä«¿îÆÃÇÒ °¹¼ö return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½ -2 => À¯Àú°¡ Äù½ºÆ®¸¦ °¡Áö°í ÀÖÁö ¾ÊÀ½. -3 => Ä«¿îÆÃÁ¤º¸¼¼ÆÃ½½·Ô ¹üÀ§ Ãʰú -4 => Ä«¿îÆÃŸÀÔ or Ÿ°ÙÄ«¿îÆ® ¹üÀ§ Ãʰú example: api_quest_SetCountingInfo(À¯Àú¾ÆÀ̵ð, Äù½ºÆ®¾ÆÀ̵ð, 0, CountingType_MyMonsterKill, 10001, 10); api_quest_SetCountingInfo(À¯Àú¾ÆÀ̵ð, Äù½ºÆ®¾ÆÀ̵ð, 1, CountingType_MyMonsterKill, 10002, 5); api_quest_SetCountingInfo(À¯Àú¾ÆÀ̵ð, Äù½ºÆ®¾ÆÀ̵ð, 2, CountingType_MyMonsterKill, 10003, 20); api_quest_SetCountingInfo(À¯Àú¾ÆÀ̵ð, Äù½ºÆ®¾ÆÀ̵ð, 3, Item, 1001, 5); api_quest_SetCountingInfo(À¯Àú¾ÆÀ̵ð, Äù½ºÆ®¾ÆÀ̵ð, 4, Item, 1002, 1); À§¿Í °°ÀÌ ½ºÅ©¸³Æ®¿¡¼­ È£Ãâ ÇØÁáÀ» °æ¿ì 5°³ÀÇ Ä«¿îÆÃ Á¶°ÇÀÌ ¼¼ÆÃ µÇ°Ô µÈ´Ù. ¸Ç À­ÁÙÀÇ ¶æÀº 0¹ø ½½·Ô¿¡ 10001¹ø ¸ó½ºÅ͸¦ 10¸¶¸® ÀâÀ¸¸é Á¶°ÇÀÌ ¸¸Á·ÇÑ´Ù°í ¼¼ÆÃÇÑ´Ù. À§¿Í°°ÀÌ 5°³ÀÇ ½½·Ô¿¡ 10001¹ø ¸ó½ºÅÍ 10¸¶¸®, 10002¹ø ¸ó½ºÅÍ 5¸¶¸®, 10003¹ø ¸ó½ºÅÍ 20¸¶¸®, 1001¹ø ¾ÆÀÌÅÛ 5°³, 1002¹ø ¾ÆÀÌÅÛ 1°³ ¶ó°í ¼¼ÆÃ ÇÏ¿´°í À§ 5°³ÀÇ Á¶°ÇÀ» ¸¸Á·ÇÏ°Ô µÇ¸é. Äù½ºÆ® ½ºÅ©¸³Æ®ÀÇ OnComplete() ÇÔ¼ö¸¦ È£ÃâÇÏ°Ô µÈ´Ù. *** Ä«¿îÆÃ °¹¼ö´Â ÃÖ´ë 30000 °³ÀÌ´Ù. */ int api_quest_SetCountingInfo(CDNGameRoom *pRoom, UINT nUserObjectID, int nQuestID, int nSlot, int nCountingType, int nCountingIndex, int nTargetCnt); /* desc : ¼¼ÆÃµÈ Ä«¿îÆÃ Á¤º¸¸¦ Ŭ¸®¾î ÇÑ´Ù. param : À¯ÀúÀ妽º, Äù½ºÆ® À妽º return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½ -2 => Äù½ºÆ®¸¦ ãÀ»¼ö ¾øÀ½, */ int api_quest_ClearCountingInfo(CDNGameRoom *pRoom, UINT nUserObjectID, int nQuestID); /* desc : ¼¼ÆÃµÈ Ä«¿îÆÃµéÀÌ ¸ðµÎ ¿Ï·á µÇ¾ú´ÂÁö È®ÀÎÇÑ´Ù. param : À¯ÀúÀ妽º, ¾ÆÀÌÅÛÀ妽º, ¾ÆÀÌÅÛ Ä«¿îÆ® return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½ -2 => Äù½ºÆ®¸¦ ãÀ»¼ö ¾øÀ½, -3ÀÌ¸é ¿Ï·á ¾ÈµÊ, 1 ÀÌ¸é ¸ðµÎ ¿Ï·á */ int api_quest_IsAllCompleteCounting(CDNGameRoom *pRoom, UINT nUserObjectID, int nQuestID); /* desc : À¯Àú¿¡°Ô ¾ÆÀÌÅÛÀ» ³ÖÀ»¸¸ÇÑ Àκ¥¿©À¯°¡ ÀÖ´ÂÁö È®ÀÎÇÑ´Ù. param : À¯ÀúÀ妽º, ¾ÆÀÌÅÛÀ妽º, ¾ÆÀÌÅÛ Ä«¿îÆ® return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½ -2 => ¾ÆÀÌÅÛÀ» ãÀ»¼ö ¾øÀ½, -3 Àκ¥ ºÎÁ· */ int api_user_CheckInvenForAddItem(CDNGameRoom *pRoom, UINT nUserObjectID, int nItemIndex, int nItemCnt); /* desc : À¯Àú¿¡°Ô Äù½ºÆ® ¾ÆÀÌÅÛ ¸ñ·ÏÀ» ³ÖÀ»¸¸ÇÑ Àκ¥¿©À¯°¡ ÀÖ´ÂÁö È®ÀÎÇÑ´Ù. param : À¯ÀúÀ妽º, Äù½ºÆ® ¾ÆÀÌÅÛ ¸ñ·Ï (·ç¾ÆÅ×À̺í, [<ÃÖ´ë°³¼ö>]{Äù½ºÆ® ¾ÆÀÌÅÛÀ妽º, Äù½ºÆ® ¾ÆÀÌÅÛ Ä«¿îÆ®} °¡ ÇÑ ½ÖÀ¸·Î <ÃÖ´ë°³¼ö (ÇöÀç 10°³)> ¸¸Å­ Á¸Àç) return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½ -2 => ¾ÆÀÌÅÛÀ» ãÀ»¼ö ¾øÀ½, -3 Àκ¥ ºÎÁ· example : function grandmother_OnTalk(userObjID, npcObjID, npc_talk_index, npc_talk_target, questID) local TableItem = { { 1001, 10 }, -- ¾ÆÀÌÅÛ À妽º (1001), ¾ÆÀÌÅÛ °³¼ö (10) { 1002, 1 }, -- ¾ÆÀÌÅÛ À妽º (1002), ¾ÆÀÌÅÛ °³¼ö (1) { 1003, 5 }, -- ¾ÆÀÌÅÛ À妽º (1003), ¾ÆÀÌÅÛ °³¼ö (5) }; if (api_user_CheckInvenForAddItemList(userObjID, TableParam) == 1) then -- ¼º°ø else -- ½ÇÆÐ end end */ int api_user_CheckInvenForAddItemList(CDNGameRoom *pRoom, UINT nUserObjectID, lua_tinker::table ItemTable); /* desc : À¯Àú¿¡°Ô ¾ÆÀÌÅÛÀ» Áö±ÞÇÑ´Ù. param : À¯ÀúÀ妽º, ¾ÆÀÌÅÛÀ妽º, ¾ÆÀÌÅÛ Ä«¿îÆ®, Äù½ºÆ® ¾ÆÀ̵ð return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½ -2 => ¾ÆÀÌÅÛÀ» ãÀ»¼ö ¾øÀ½, -3 Àκ¥ ºÎÁ· */ int api_user_AddItem(CDNGameRoom *pRoom, UINT nUserObjectID, int nItemIndex, int nItemCnt, int nQuestID); /* desc : À¯Àú¿¡°Ô¼­ ¾ÆÀÌÅÛÀ» Áö¿î´Ù. param : À¯ÀúÀ妽º, ¾ÆÀÌÅÛÀ妽º, ¾ÆÀÌÅÛ Ä«¿îÆ®, Äù½ºÆ® ¾ÆÀ̵ð return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½ -2 => ¾ÆÀÌÅÛÀ» ãÀ»¼ö ¾øÀ½, -3 ¾ÆÀÌÅÛ °¹¼ö ºÎÁ· */ int api_user_DelItem(CDNGameRoom *pRoom, UINT nUserObjectID, int nItemIndex, int nItemCnt, int nQuestID); /* desc : À¯Àú¿¡°Ô¼­ ¾ÆÀÌÅÛÀ» ¸ðµÎ Áö¿î´Ù. param : À¯ÀúÀ妽º, ¾ÆÀÌÅÛÀ妽º return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½ -2 => ¾ÆÀÌÅÛÀ» ãÀ»¼ö ¾øÀ½ */ int api_user_AllDelItem(CDNGameRoom *pRoom, UINT nUserObjectID, int nItemIndex); /* desc : À¯Àú°¡ ¾ÆÀÌÅÛÀ» °¡Áö°í ÀÖ´ÂÁö È®ÀÎÇÑ´Ù. param : À¯ÀúÀ妽º, ¾ÆÀÌÅÛÀ妽º, ¾ÆÀÌÅÛ Ä«¿îÆ® return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½ -2 => ¾ÆÀÌÅÛÀ» ãÀ»¼ö ¾øÀ½, -3 ¾ÆÀÌÅÛ °¹¼ö ºÎÁ·, 0 º¸´Ù Å©¸é true ( °¹¼ö¸¦ ¸®ÅÏ ) */ int api_user_HasItem(CDNGameRoom *pRoom, UINT nUserObjectID, int nItemIndex, int nItemCnt); /* desc : À¯ÀúÀÇ Å¬·¡½º ID ¸¦ ¾ò´Â´Ù. param : À¯ÀúÀ妽º return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, ±×¿Ü´Â ClasssID */ int api_user_GetUserClassID(CDNGameRoom *pRoom, UINT nUserObjectID); /* desc : À¯ÀúÀÇ Job ID ¸¦ ¾ò´Â´Ù. param : À¯ÀúÀ妽º return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, ±×¿Ü´Â Job ID */ int api_user_GetUserJobID(CDNGameRoom *pRoom, UINT nUserObjectID); /* desc : À¯ÀúÀÇ levelÀ» ¾ò´Â´Ù. param : À¯ÀúÀ妽º return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, ±×¿Ü´Â Level */ int api_user_GetUserLevel(CDNGameRoom *pRoom, UINT nUserObjectID); /* desc : À¯Àú Àκ¥Å丮ÀÇ ºóÄ­¼ö¸¦ ¾ò´Â´Ù. param : À¯ÀúÀ妽º return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, ±×¿Ü´Â ºóÄ­¼ö */ int api_user_GetUserInvenBlankCount(CDNGameRoom *pRoom, UINT nUserObjectID); /* desc : À¯Àú Äù½ºÆ® Àκ¥Å丮ÀÇ ºóÄ­¼ö¸¦ ¾ò´Â´Ù. param : À¯ÀúÀ妽º return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, ±×¿Ü´Â ºóÄ­¼ö */ int api_quest_GetUserQuestInvenBlankCount(CDNGameRoom *pRoom, UINT nUserObjectID); /* desc : À¯Àú¿¡°Ô °æÇèÄ¡¸¦ Ãß°¡ÇÑ´Ù. param : À¯ÀúÀ妽º, °æÇèÄ¡ return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, 1ÀÌ¸é ¼º°ø */ int api_user_AddExp(CDNGameRoom *pRoom, UINT nUserObjectID, int nQuestID, int nAddExp); /* desc : À¯Àú¿¡°Ô µ·À» Ãß°¡ÇÑ´Ù. param : À¯ÀúÀ妽º, µ· return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, 1ÀÌ¸é ¼º°ø */ int api_user_AddCoin(CDNGameRoom *pRoom, UINT nUserObjectID, int nAddCoin, int nQuestID); /* desc : À¯Àú¿¡°Ô µ¿¿µ»óÀ» Àç»ý ½ÃŲ´Ù. param : À¯ÀúÀ妽º, ÄÆ¾ÀÅ×À̺íID return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, 1ÀÌ¸é ¼º°ø */ int api_user_PlayCutScene(CDNGameRoom *pRoom, UINT nUserObjectID, UINT nNpcObjectID, int nCutSceneTableID, bool bIgnoreFadeIn); /* desc : À¯Àú¿¡°Ô â°í¸¦ ¿­¶ó°í ¾Ë¸°´Ù. param : À¯ÀúÀ妽º return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, 1ÀÌ¸é ¼º°ø */ int api_ui_OpenWareHouse(CDNGameRoom *pRoom, UINT nUserObjectID, int iItemID=0 ); /* desc : À¯Àú¿¡°Ô »óÁ¡¸¦ ¿­¶ó°í ¾Ë¸°´Ù. param : À¯ÀúÀ妽º, »óÁ¡ ID return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, -2 ¸é ¼¥ÀÌ ¾øÀ½. 1ÀÌ¸é ¼º°ø */ int api_ui_OpenShop(CDNGameRoom *pRoom, UINT nUserObjectID, int nShopID, Shop::Type::eCode Type = Shop::Type::Normal); /* desc : À¯Àú¿¡°Ô ½ºÅ³ »óÁ¡¸¦ ¿­¶ó°í ¾Ë¸°´Ù. param : À¯ÀúÀ妽º, ½ºÅ³ »óÁ¡ ID return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, -2 ¸é ¼¥ÀÌ ¾øÀ½. 1ÀÌ¸é ¼º°ø */ int api_ui_OpenSkillShop(CDNGameRoom *pRoom, UINT nUserObjectID, int nSkillShopID); /* desc : À¯Àú¿¡°Ô ¹«ÀλóÁ¡À» ¿­¶ó°í ¾Ë¸°´Ù. param : À¯ÀúÀ妽º return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, -2 ¸é ¼¥ÀÌ ¾øÀ½. 1ÀÌ¸é ¼º°ø */ int api_ui_OpenMarket(CDNGameRoom *pRoom, UINT nUserObjectID); /* desc : À¯Àú¿¡°Ô ¹®À庸¿Á ÇÕ¼º âÀ» ¿­¶ó°í ÇÑ´Ù. param : À¯ÀúÀ妽º return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, 1ÀÌ¸é ¼º°ø */ int api_ui_OpenCompoundEmblem(CDNGameRoom *pRoom, UINT nUserObjectID); /* desc : À¯Àú¿¡°Ô º¸¿Á ¾÷±×·¹À̵å âÀ» ¿­¶ó°í ¾Ë¸°´Ù. param : À¯ÀúÀ妽º return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, 1ÀÌ¸é ¼º°ø */ int api_ui_OpenUpgradeJewel(CDNGameRoom *pRoom, UINT nUserObjectID); /* desc : À¯Àú¿¡°Ô ¿ìÆíÇÔÀ» ¿­¶ó°í ½ÃŲ´Ù. param : À¯ÀúÀ妽º return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, 1ÀÌ¸é ¼º°ø */ int api_ui_OpenMailBox(CDNGameRoom *pRoom, UINT nUserObjectID); /* desc : À¯Àú¿¡°Ô ºÐÇØÃ¢À» ¿­¶ó°í ½ÃŲ´Ù. param : À¯ÀúÀ妽º return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, 1ÀÌ¸é ¼º°ø */ int api_ui_OpenDisjointItem(CDNGameRoom *pRoom, UINT nUserObjectID); /* desc : À¯Àú¿¡°Ô ¾ÆÀÌÅÛ ÇÕ¼ºÃ¢À» ¿­¶ó°í ½ÃŲ´Ù. param : À¯ÀúÀ妽º, ¾ÆÀÌÅÛ ÇÕ¼º »óÁ¡ ID return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, 1ÀÌ¸é ¼º°ø */ int api_ui_OpenCompoundItem(CDNGameRoom *pRoom, UINT nUserObjectID, int nCompoundShopID); int api_ui_OpenCompound2Item(CDNGameRoom *pRoom, UINT nUserObjectID, int nCompoundShopID, int iItemID/*=0*/ ); /* desc : À¯Àú¿¡°Ô ij½¬ ¾ÆÀÌÅÛ »óÁ¡À» ¿­¶ó°í ½ÃŲ´Ù. param : À¯ÀúÀ妽º return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, 1ÀÌ¸é ¼º°ø */ int api_ui_OpenCashShop(CDNGameRoom *pRoom, UINT nUserObjectID); /* desc : À¯Àú¿¡°Ô ±æµå °ü¸® UI ´ëÈ­»óÀÚ¸¦ ¿­¶ó°í ½ÃŲ´Ù. param : À¯ÀúÀ妽º, ±æµå°ü¸®¹øÈ£ return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, 1ÀÌ¸é ¼º°ø ±æµå°ü¸®¹øÈ£> 0 : ±æµåâ¼³ 1 : ±æµåÇØ»ê 2 : ±æµåÅ»Åð 3 : ±æµåÆ÷ÀÎÆ® 4 : ±æµå·¹º§¾÷ */ int api_ui_OpenGuildMgrBox(CDNGameRoom *pRoom, UINT nUserObjectID, int nGuildMgrNo); /* desc : ÀϺ» °¡Ã­Æù ´ÙÀ̾ó·Î±×¸¦ ¿¬´Ù. param : »ç¿ëµÉ °¡Ã­Æù À妽º return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, -2 ¸é ¼¥ÀÌ ¾øÀ½. 1ÀÌ¸é ¼º°ø, -3 ÀÌ¸é µðÆÄÀο¡ °É·¯Áü.. */ int api_ui_OpenGacha_JP(CDNGameRoom *pRoom, UINT nUserObjectID, int nGachaShopID); /* desc : NPC ¼±¹°Çϱ⠴ÙÀ̾ó·Î±×¸¦ ¿¬´Ù. param : ´ëÈ­ÁßÀÎ Npc ID return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½. 1 ÀÌ¸é ¼º°ø. */ int api_ui_OpenGiveNpcPresent(CDNGameRoom* pRoom, UINT nUserObjectID, int nNpcID); /* desc : À¯Àú¿¡°Ô ³óÀåâ°í¸¦ ¿­¶ó°í ¾Ë¸°´Ù. param : À¯ÀúÀ妽º return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, 1ÀÌ¸é ¼º°ø */ int api_ui_OpenFarmWareHouse(CDNGameRoom *pRoom, UINT nUserObjectID); #if defined(PRE_ADD_OPEN_QUEST_TEXTURE_DIALOG) /* desc : ÅØ½ºÃÄ ´ÙÀ̾ó·Î±×¸¦ ¿¬´Ù. param : À¯ÀúÀ妽º, ÆÄÀÏÀ妽º, È­¸é¿¡¼­ÀÇ À§Ä¡, º¸¿©Áú ½Ã°£, À̹ÌÁö Áß¾ÓÁ¡, return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, 1ÀÌ¸é ¼º°ø */ int api_ui_OpenTextureDialog(CDNGameRoom* pRoom, UINT nUserObjectID, int nFileIndex, float fX, float fY, int nPos, int nTime, int nDialogIndex, bool bAutoCloseDialog); /* desc : ÅØ½ºÃÄ ´ÙÀ̾ó·Î±×¸¦ ´Ý´Â´Ù. param : À¯ÀúÀ妽º, ´ÙÀ̾ó·Î±× ID return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, 1ÀÌ¸é ¼º°ø */ int api_ui_CloseTextureDialog(CDNGameRoom* pRoom, UINT nUserObjectID, int nDlgID); #endif /* desc : À¯Àú¿¡°Ô ¸Þ¼¼Áö¸¦ Ãâ·ÂÇÏ°Ô ÇÑ´Ù. param : nType Àº ¸Þ¼¼Áö Ãâ·Â ŸÀÔ, CHATTYPE_NORMAL => 1, // ÀϹÝÀûÀÎ ´ëÈ­ CHATTYPE_PARTY => 2, // ÆÄƼ ´ëÈ­ CHATTYPE_PRIVATE => 3, // ±Ó¼Ó¸» CHATTYPE_GUILD => 4, // ±æµå ´ëÈ­ CHATTYPE_CHANNEL => 5, // °Å·¡/ä³Î ´ëÈ­ CHATTYPE_SYSTEM => 6, // ½Ã½ºÅÛ ¸Þ¼¼Áö ·Î±× ½ºÆ®¸µ ÁٹٲÞÀ» À§ÇØ \n À» Æ÷ÇÔÇÒ°Í. return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, -2 ŸÀÔÀÌ ¾øÀ½ -3 ¸Þ¼¼Áö°¡ ³Ê¹« ±è */ int api_user_UserMessage(CDNGameRoom *pRoom, UINT nUserObjectID, int nType, int nBaseStringIdx, lua_tinker::table ParamTable); /* desc : À¯Àú¿¡°Ô ½Éº¼¾ÆÀÌÅÛÀ» Ãß°¡ÇÑ´Ù. param : À¯ÀúÀ妽º, ½Éº¼¾ÆÀÌÅÛ¾ÆÀ̵ð, °¹¼ö return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, -2¸é ½ÇÆÐ 1ÀÌ¸é ¼º°ø */ int api_quest_AddSymbolItem(CDNGameRoom *pRoom, UINT nUserObjectID, int nItemID, short wCount); /* desc : À¯Àú¿¡°Ô ½Éº¼¾ÆÀÌÅÛÀ» »èÁ¦ÇÑ´Ù. param : À¯ÀúÀ妽º, ½Éº¼¾ÆÀÌÅÛ¾ÆÀ̵ð, °¹¼ö return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, -2 ¸é ½ÇÆÐ, 1ÀÌ¸é ¼º°ø */ int api_quest_DelSymbolItem(CDNGameRoom *pRoom, UINT nUserObjectID, int nItemID, short wCount); /* desc : À¯Àú°¡ ½Éº¼ ¾ÆÀÌÅÛÀ» °¡Áö°í ÀÖ´ÂÁö È®ÀÎÇÑ´Ù. param : À¯ÀúÀ妽º, ¾ÆÀÌÅÛÀ妽º, ¾ÆÀÌÅÛ Ä«¿îÆ® return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½ -2 => ¾ÆÀÌÅÛÀ» ãÀ»¼ö ¾øÀ½, -3 ¾ÆÀÌÅÛ °¹¼ö ºÎÁ·, 0 º¸´Ù Å©¸é true ( °¹¼ö¸¦ ¸®ÅÏ ) */ int api_quest_HasSymbolItem(CDNGameRoom *pRoom, UINT nUserObjectID, int nItemIndex, int nItemCnt); /* desc : À¯Àú¿¡°Ô Äù½ºÆ® ¾ÆÀÌÅÛÀ» ³ÖÀ»¸¸ÇÑ Àκ¥¿©À¯°¡ ÀÖ´ÂÁö È®ÀÎÇÑ´Ù. param : À¯ÀúÀ妽º, Äù½ºÆ® ¾ÆÀÌÅÛ À妽º, Äù½ºÆ® ¾ÆÀÌÅÛ Ä«¿îÆ® return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½ -2 => ¾ÆÀÌÅÛÀ» ãÀ»¼ö ¾øÀ½, -3 Àκ¥ ºÎÁ· */ int api_quest_CheckQuestInvenForAddItem(CDNGameRoom *pRoom, UINT nUserObjectID, int nItemIndex, int nItemCnt); /* desc : À¯Àú¿¡°Ô Äù½ºÆ® ¾ÆÀÌÅÛ ¸ñ·ÏÀ» ³ÖÀ»¸¸ÇÑ Àκ¥¿©À¯°¡ ÀÖ´ÂÁö È®ÀÎÇÑ´Ù. param : À¯ÀúÀ妽º, Äù½ºÆ® ¾ÆÀÌÅÛ ¸ñ·Ï (·ç¾ÆÅ×À̺í, [<ÃÖ´ë°³¼ö>]{Äù½ºÆ® ¾ÆÀÌÅÛÀ妽º, Äù½ºÆ® ¾ÆÀÌÅÛ Ä«¿îÆ®} °¡ ÇÑ ½ÖÀ¸·Î <ÃÖ´ë°³¼ö (ÇöÀç 10°³)> ¸¸Å­ Á¸Àç) return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½ -2 => ¾ÆÀÌÅÛÀ» ãÀ»¼ö ¾øÀ½, -3 Àκ¥ ºÎÁ· example : function grandmother_OnTalk(userObjID, npcObjID, npc_talk_index, npc_talk_target, questID) local TableItem = { { 1001, 10 }, -- ¾ÆÀÌÅÛ À妽º (1001), ¾ÆÀÌÅÛ °³¼ö (10) { 1002, 1 }, -- ¾ÆÀÌÅÛ À妽º (1002), ¾ÆÀÌÅÛ °³¼ö (1) { 1003, 5 }, -- ¾ÆÀÌÅÛ À妽º (1003), ¾ÆÀÌÅÛ °³¼ö (5) }; if (api_quest_CheckQuestInvenForAddItemList(userObjID, TableParam) == 1) then -- ¼º°ø else -- ½ÇÆÐ end end */ int api_quest_CheckQuestInvenForAddItemList(CDNGameRoom *pRoom, UINT nUserObjectID, lua_tinker::table ItemTable); /* desc : À¯Àú¿¡°Ô Äù½ºÆ® ¾ÆÀÌÅÛÀ» Ãß°¡ÇÑ´Ù. param : À¯ÀúÀ妽º, Äù½ºÆ®¾ÆÀÌÅÛ¾ÆÀ̵ð, °¹¼ö, Äù½ºÆ® ¾ÆÀ̵ð return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, -2¸é ½ÇÆÐ 1ÀÌ¸é ¼º°ø */ int api_quest_AddQuestItem(CDNGameRoom *pRoom, UINT nUserObjectID, int nItemID, short wCount, int nQuestID); /* desc : À¯Àú¿¡°Ô Äù½ºÆ® ¾ÆÀÌÅÛÀ» »èÁ¦ÇÑ´Ù. param : À¯ÀúÀ妽º, Äù½ºÆ®¾ÆÀÌÅÛ¾ÆÀ̵ð, °¹¼ö, Äù½ºÆ® ¾ÆÀ̵ð return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, -2 ¸é ½ÇÆÐ, 1ÀÌ¸é ¼º°ø */ int api_quest_DelQuestItem(CDNGameRoom *pRoom, UINT nUserObjectID, int nItemID, short wCount, int nQuestID); /* desc : À¯Àú¿¡°Ô Äù½ºÆ® ¾ÆÀÌÅÛÀ» ¸ðµÎ »èÁ¦ÇÑ´Ù. param : À¯ÀúÀ妽º, Äù½ºÆ®¾ÆÀÌÅÛ¾ÆÀ̵ð return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, -2 ¸é ½ÇÆÐ, 1ÀÌ¸é ¼º°ø */ int api_quest_AllDelQuestItem(CDNGameRoom *pRoom, UINT nUserObjectID, int nItemID ); /* desc : À¯Àú°¡ Äù½ºÆ® ¾ÆÀÌÅÛÀ» °¡Áö°í ÀÖ´ÂÁö È®ÀÎÇÑ´Ù. param : À¯ÀúÀ妽º, ¾ÆÀÌÅÛÀ妽º, ¾ÆÀÌÅÛ Ä«¿îÆ® return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½ -2 => ¾ÆÀÌÅÛÀ» ãÀ»¼ö ¾øÀ½, -3 ¾ÆÀÌÅÛ °¹¼ö ºÎÁ·, 0 º¸´Ù Å©¸é true ( °¹¼ö¸¦ ¸®ÅÏ ) */ int api_quest_HasQuestItem(CDNGameRoom *pRoom, UINT nUserObjectID, int nItemIndex, int nItemCnt); /* desc : À¯Àú¿¡°Ô ±æµå »ý¼ºÃ¢À» ¶ç¿ì¶ó°í ¾Ë¸°´Ù. param : À¯ÀúÀ妽º return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, 1ÀÌ¸é ¼º°ø */ int api_ui_OpenGuildCreate(CDNGameRoom *pRoom, UINT nUserObjectID); /* desc : À¯Àú¿¡°Ô Äù½ºÆ® º¸»óâÀ» ¶ç¿ì¶ó°í ¾Ë¸°´Ù. param : À¯ÀúÀ妽º, º¸»óÅ×À̺í, bActivate °¡ true ¸é °í¸¦¼ö ÀÖ°í ÀÌ¸é ±×³É º¸´Â ¿ëµµ´Â false·Î ¾´´Ù. return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, 1ÀÌ¸é ¼º°ø */ int api_ui_OpenQuestReward(CDNGameRoom *pRoom, UINT nUserObjectID, int nRewardTableIndex, bool bActivate); /* desc : À¯Àú¿¡°Ô Äù½ºÆ® º¸»óÀ» ÇÑ´Ù. param : À¯ÀúÀ妽º, º¸»óÅ×À̺í, Äù½ºÆ® ¾ÆÀ̵ð, º¸»óüũ¹øÈ£ return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, -2 À¯Àú¾ÆÀÌÅÛ°´Ã¼ ¿À·ù, -3 Àκ¥ ºÎÁ·, -4 À̸é Å×À̺íÀ» ãÀ»¼ö ¾øÀ½, -5 º¸»ó Á¶°Ç üũ ¿À·ù, 1 ÀÌ¸é ¼º°ø */ int api_quest_RewardQuestUser(CDNGameRoom *pRoom, UINT nUserObjectID, int nRewardTableIndext, int nQuestID, int nRewardCheck); /* desc : ÇØ´ç À¯ÀúÀÇ ÆÄƼ¿ø¼ö¸¦ ¸®ÅÏÇÑ´Ù. param : À¯ÀúÀ妽º return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, ±×¿Ü´Â ÆÄƼ¿ø¼ö (ÁÖÀÇ !!!> ÆÄƼ¿¡ °¡ÀÔµÇÁö ¾ÊÀº »ç¿ëÀÚµµ 1 À» ¹Ýȯ) */ int api_user_GetPartymemberCount(CDNGameRoom *pRoom, UINT nUserObjectID); /* desc : ÇØ´ç À¯Àú°¡ ÆÄƼ¿¡ °¡ÀÔµÈ »óÅÂÀÎÁö üũÇÑ´Ù. param : À¯ÀúÀ妽º return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, 0 => ÆÄƼ¿¡ °¡ÀÔ ¾ÊµÇ¾îÀÖÀ½, 1 => ÆÄƼ¿¡ °¡ÀÔ µÇ¾îÀÖÀ½ */ int api_user_IsPartymember(CDNGameRoom *pRoom, UINT nUserObjectID); /* desc : À¯Àú¸¦ À̵¿½ÃŲ´Ù. param : À¯ÀúÀ妽º, À̵¿ÇÒ ¸Ê À妽º, À̵¿ÇÒ °ÔÀÌÆ® À妽º return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, -2 ¾ø´Â ¸ÊÀÓ */ void api_user_ChangeMap(CDNGameRoom *pRoom, UINT nUserObjectID, int nMapIndex, int nGateNo); /* desc : ÇØ´ç À¯ÀúÀÇ ½ºÅ×ÀÌÁö ³­À̵µ¸¦ ±¸ÇÔ param : À¯ÀúÀ妽º return : 0 ~ 4 => ´øÀü ³­À̵µ (0:½¬¿ò / 1:º¸Åë / 2:¾î·Á¿ò / 3:¸¶½ºÅÍ : 4:¾îºñ½º), ±× ¿Ü´Â ½ÇÆÐ (±âº» -1) */ int api_user_GetStageConstructionLevel(CDNGameRoom *pRoom, UINT nUserObjectID); /* desc : ÇØ´ç À¯ÀúÀÇ ÇöÀç ¸Ê¹øÈ£¸¦ ±¸ÇÔ param : À¯ÀúÀ妽º return : ¸Ê¹øÈ£ (1 ÀÌ»ó), ±× ¿Ü´Â ½ÇÆÐ ? (0 ÀÌÇÏ) */ int api_user_GetMapIndex(CDNGameRoom *pRoom, UINT nUserObjectID); /* desc : ÇØ´ç À¯ÀúÀÇ ÃÖ±Ù ½ºÅ×ÀÌÁö ¿Ï·á ·©Å©¸¦ ±¸ÇÔ param : À¯ÀúÀ妽º return : ½ºÅ×ÀÌÁö ¿Ï·á ·©Å© (SSS : 0 / SS : 1 / S : 2 / A : 3 / B : 4 / C : 5 / D : 6), ±× ¿Ü´Â ½ÇÆÐ ? (±âº» -1) */ int api_user_GetLastStageClearRank(CDNGameRoom *pRoom, UINT nUserObjectID); /* desc : À¯ÀúÀÇ ÇöÀç ¼ÒÁö±ÝÀ» È®ÀÎÇÑ´Ù. param : À¯ÀúÀ妽º, üũÇÒ °ª return : -1 => À¯Àú¸¦ ãÀ» ¼ö ¾øÀ½, -2 => ¼ÒÁö±ÝÀÌ ºÎÁ·ÇÔ, 1 => ¼ÒÁö±ÝÀÌ ÃæºÐÇÔ */ int api_user_EnoughCoin(CDNGameRoom *pRoom, UINT nUserObjectID, int nCoin ); /* desc : À¯ÀúÀÇ ÇöÀç ¼ÒÁö±ÝÀ» È®ÀÎÇÑ´Ù. param : À¯ÀúÀ妽º return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, 0 ÀÌ»ó => ÇöÀç ¼ÒÁö±Ý */ int api_user_GetCoin(CDNGameRoom *pRoom, UINT nUserObjectID); /* desc : À¯Àú¿¡°Ô µ·À» °¨¼ÒÇÑ´Ù. param : À¯ÀúÀ妽º, µ· (0 Ãʰú) return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, 1 => ¼º°ø */ int api_user_DelCoin(CDNGameRoom *pRoom, UINT nUserObjectID, int nDelCoin); /* desc : À¯ÀúÀÇ Æ¯Á¤ ¹Ì¼Ç Ãëµæ ¿©ºÎ¸¦ ¹Ýȯ param : À¯ÀúÀ妽º, ¹Ì¼ÇÀ妽º (MISSIONMAX (ÇöÀç 5000 ¡æ 0 ~ 4999)) return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, 0 => ÇØ´ç ¹Ì¼Ç ¾øÀ½, 1 Æ÷ÇÔ ÀÌ¿Ü => ÇØ´ç ¹Ì¼Ç Á¸Àç */ int api_user_IsMissionGained(CDNGameRoom *pRoom, UINT nUserObjectID, int nMissionIndex); /* desc : À¯ÀúÀÇ Æ¯Á¤ ¹Ì¼Ç ¿Ï·á ¿©ºÎ¸¦ ¹Ýȯ param : À¯ÀúÀ妽º, ¹Ì¼ÇÀ妽º (MISSIONMAX (ÇöÀç 5000 ¡æ 0 ~ 4999)) return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, 0 => ÇØ´ç ¹Ì¼Ç ¾øÀ½, 1 Æ÷ÇÔ ÀÌ¿Ü => ÇØ´ç ¹Ì¼Ç Á¸Àç */ int api_user_IsMissionAchieved(CDNGameRoom *pRoom, UINT nUserObjectID, int nMissionIndex); /* desc : À¯Àú°¡ â°í¿¡ ¾ÆÀÌÅÛÀ» °¡Áö°í ÀÖ´ÂÁö È®ÀÎÇÑ´Ù. param : À¯ÀúÀ妽º, ¾ÆÀÌÅÛÀ妽º, ¾ÆÀÌÅÛ Ä«¿îÆ® return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½ -2 => ¾ÆÀÌÅÛÀ» ãÀ»¼ö ¾øÀ½, -3 ¾ÆÀÌÅÛ °¹¼ö ºÎÁ·, 0 º¸´Ù Å©¸é true ( °¹¼ö¸¦ ¸®ÅÏ ) */ int api_user_HasItemWarehouse(CDNGameRoom *pRoom, UINT nUserObjectID, int nItemIndex, int nItemCnt); /* desc : À¯Àú°¡ Àåºñ¿¡ ¾ÆÀÌÅÛÀ» °¡Áö°í ÀÖ´ÂÁö È®ÀÎÇÑ´Ù. param : À¯ÀúÀ妽º, ¾ÆÀÌÅÛÀ妽º return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½ -2 => ¾ÆÀÌÅÛÀ» ãÀ»¼ö ¾øÀ½, 1 Æ÷ÇÔ ±×¿Ü true */ int api_user_HasItemEquip(CDNGameRoom *pRoom, UINT nUserObjectID, int nItemIndex); /* desc : À¯ÀúÀÇ ÇöÀç ±æµå Á÷±ÞÀ» ¹Ýȯ param : À¯ÀúÀ妽º return : 0 : ±æµå ¾øÀ½ / 1 : ±æµåÀå / 2 : ºÎ±æµåÀå / 3 : ¼±ÀÓ±æµå¿ø / 4 : ÀϹݱæµå¿ø / 5 : ½ÅÀÔ±æµå¿ø */ int api_guild_GetGuildMemberRole(CDNGameRoom *pRoom, UINT nUserObjectID); /* desc : À¯Àú°¡ °¡Áö°í ÀÖ´Â Äù½ºÆ®ÀÇ ¸Þ¸ðÀÇ Æ¯Á¤ À妽º¿¡ °ªÀ» 1 Áõ°¡½ÃÅ´ param : À¯ÀúÀ妽º, Äù½ºÆ®¹øÈ£, ¸Þ¸ðÀ妽º return : Áõ°¡µÈ Äù½ºÆ® ¸Þ¸ð°ª (¿¡·¯ÀÏ °æ¿ì¿¡´Â LONG_MIN ¹Ýȯ) */ int api_quest_IncQuestMemo(CDNGameRoom *pRoom, UINT nUserObjectID, int nQuestID, char nMemoIndex); /* desc : À¯Àú°¡ °¡Áö°í ÀÖ´Â Äù½ºÆ®ÀÇ ¸Þ¸ðÀÇ Æ¯Á¤ À妽º¿¡ °ªÀ» 1 °¨¼Ò½ÃÅ´ param : À¯ÀúÀ妽º, Äù½ºÆ®¹øÈ£, ¸Þ¸ðÀ妽º return : Áõ°¡µÈ Äù½ºÆ® ¸Þ¸ð°ª (¿¡·¯ÀÏ °æ¿ì¿¡´Â LONG_MAX ¹Ýȯ) */ int api_quest_DecQuestMemo(CDNGameRoom *pRoom, UINT nUserObjectID, int nQuestID, char nMemoIndex); /* desc : À¯Àú¿¡°Ô ƯÁ¤ ÀüÁ÷ Á÷¾÷À» ÁöÁ¤ param : À¯ÀúÀ妽º, º¯°æ ÀüÁ÷ Á÷¾÷ return : -1 : À¯Àú¸¦ ãÀ»¼ö ¾øÀ½ / -2 : ¾ø´Â ÀüÁ÷ ¹øÈ£ÀÓ / -3 : ÀüÁ÷ ºÒ°¡ Á¶°ÇÀÓ / 0 : ÀÌ¹Ì °°Àº ÀüÁ÷ Á÷¾÷ÀÓ / 1 : ÀüÁ÷ Á÷¾÷ º¯°æ ¼º°ø */ int api_user_SetUserJobID(CDNGameRoom *pRoom, UINT nUserObjectID, int nJobID); /* desc : À¯ÀúÀÇ ÀüÁ÷ Á÷¾÷ÀÌ Æ¯Á¤ ÀüÁ÷ °è¿­¿¡ ÀÖ´ÂÁö È®ÀÎ param : À¯ÀúÀ妽º, ¼±Çà ÀüÁ÷ Á÷¾÷ return : -1 : À¯Àú¸¦ ãÀ»¼ö ¾øÀ½ / 0 : °°Àº °è¿­ÀÌ ¾Æ´Ô / 1 : °°Àº °è¿­ÀÌ ¸ÂÀ½ */ int api_user_IsJobInSameLine(CDNGameRoom *pRoom, UINT nUserObjectID, int nBaseJobID); /* desc : À¯Àú°¡ ij½¬ ¾ÆÀÌÅÛÀ» °¡Áö°í ÀÖ´ÂÁö È®ÀÎÇÑ´Ù. param : À¯ÀúÀ妽º, ij½¬¾ÆÀÌÅÛÀ妽º, ¾ÆÀÌÅÛ Ä«¿îÆ® return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½ -2 => ¾ÆÀÌÅÛÀ» ãÀ»¼ö ¾øÀ½, -3 ¾ÆÀÌÅÛ °¹¼ö ºÎÁ·, 0 º¸´Ù Å©¸é true ( °¹¼ö¸¦ ¸®ÅÏ ) */ int api_user_HasCashItem(CDNGameRoom *pRoom, UINT nUserObjectID, int nItemIndex, int nItemCnt); /* desc : À¯Àú°¡ Àåºñ¿¡ ij½¬ ¾ÆÀÌÅÛÀ» °¡Áö°í ÀÖ´ÂÁö È®ÀÎÇÑ´Ù. param : À¯ÀúÀ妽º, ij½¬¾ÆÀÌÅÛÀ妽º return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½ -2 => ¾ÆÀÌÅÛÀ» ãÀ»¼ö ¾øÀ½, 1 Æ÷ÇÔ ±×¿Ü true */ int api_user_HasCashItemEquip(CDNGameRoom *pRoom, UINT nUserObjectID, int nItemIndex); /* desc : ƯÁ¤ Ä«¿îÆÃ ŸÀÔ, ID ¿¡ ´ëÇØ¼­ ÀÓÀÇ·Î Ä«¿îÆÃÀ» Áõ°¡½ÃŲ´Ù. param : À¯ÀúÀ妽º, Äù½ºÆ®À妽º, Ä«¿îÆÃÇÒ Å¸ÀÔ (CountingType_MyMonsterKill = 1, CountingType_AllMonsterKill = 2, CountingType_Item = 3), Ä«¿îÆÃÇÒ °ÍÀÇ À妽º (¾ÆÀÌÅÛ ID, ¸ó½ºÅÍ ID µîµî) return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, 1 => ¼º°ø */ int api_quest_IncCounting(CDNGameRoom *pRoom, UINT nUserObjectID, int nCountingType, int nCountingIndex); #if defined(PRE_ADD_DAILYQUESTDATEAPI_01) && defined(PRE_ADD_QUEST_DAILYCHECK_01) /* desc : ÀÏÀÏ Äù½ºÆ® ±âÁØÀ¸·Î ÇöÀç ³¯Â¥¸¦ ¾ò¾î¿Â´Ù. param : À¯ÀúÀ妽º return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, 1 => ¼º°ø */ int api_quest_GetDailyQuestDay(CDNGameRoom *pRoom, UINT nUserObjectID); #endif // #if defined(PRE_ADD_DAILYQUESTDATEAPI_01) && defined(PRE_ADD_QUEST_DAILYCHECK_01) /* desc : À¯Àú°¡ ÁøÇà °¡´É ÃÖ´ë Äù½ºÆ® ¼ö¿¡ µµ´ÞÇÏ¿´´ÂÁö ¿©ºÎ¸¦ ¹ÝȯÇÑ´Ù. param : À¯ÀúÀ妽º, Äù½ºÆ®À妽º return : -1 : À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, 1 : ÃÖ´ë Äù½ºÆ® ¼ö¿¡ µµ´Þ ÇÔ, ±×¿Ü : ¾Æ´Ô */ int api_quest_IsPlayingQuestMaximum(CDNGameRoom *pRoom, UINT nUserObjectID); /* desc : ƯÁ¤ Äù½ºÆ®¸¦ °­Á¦ ¿Ï·á ½ÃŲ´Ù. (ÁøÇà ÁßÀÌ ¾Æ´Ñ Äù½ºÆ®´Â Ãß°¡ÇÏ¿© ¿Ï·á) param : À¯ÀúÀ妽º, Äù½ºÆ®À妽º, Äù½ºÆ® ÄÚµå (0:ÀÏ¹Ý / 1:½Ã°£Á¦), ¸¶Å·¿©ºÎ (1:¸¶Å·/0:¾ÈÇÔ), »èÁ¦¿©ºÎ (1:»èÁ¦/0:¾ÊÇÔ), ¹Ýº¹¿©ºÎ (1:¹Ýº¹/0:¾ÈÇÔ) return : -1 : À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, 1 : ÃÖ´ë Äù½ºÆ® ¼ö¿¡ µµ´Þ ÇÔ, ±×¿Ü : ¾Æ´Ô */ int api_quest_ForceCompleteQuest(CDNGameRoom *pRoom, UINT nUserObjectID, int nQuestID, int nQuestCode, int bDoMark, int bDoDelete, int bDoRepeat); /* desc : ƯÁ¤ »ç¿ëÀÚÀÇ À§Ä¡¸¦ À̵¿ ½ÃŲ´Ù. param : À¯ÀúÀ妽º, X ÁÂÇ¥, Y ÁÂÇ¥, Z ÁÂÇ¥ return : -1 : À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, 1 ¼º°ø */ int api_user_ChangePos(CDNGameRoom *pRoom, UINT nUserObjectID, int nX, int nY, int nZ, int nLookX = 0, int nLookY = 0); int api_ui_OpenUpgradeItem(CDNGameRoom *pRoom, UINT nUserObjectID,int iItemID=0); int api_user_RequestEnterPVP(CDNGameRoom *pRoom, UINT nUserObjectID); /* desc : NPC È£ÀÇPoint ¸¦ ¾ò¾î¿Â´Ù. param : À¯ÀúÀ妽º, NpcID return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, -2 => ½Ã½ºÅÛ¿¡·¯ ±×¿Ü => ¸®Åϰª */ int api_npc_GetFavorPoint( CDNGameRoom *pRoom, UINT uiUserObjectID, int iNpcID ); /* desc : NPC ¾ÇÀÇPoint ¸¦ ¾ò¾î¿Â´Ù. param : À¯ÀúÀ妽º, NpcID return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, -2 => ½Ã½ºÅÛ¿¡·¯ ±×¿Ü => ¸®Åϰª */ int api_npc_GetMalicePoint( CDNGameRoom *pRoom, UINT uiUserObjectID, int iNpcID ); /* desc : NPC È£ÀÇPercent ¸¦ ¾ò¾î¿Â´Ù. param : À¯ÀúÀ妽º, NpcID return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, -2 => ½Ã½ºÅÛ¿¡·¯ ±×¿Ü => ¸®Åϰª */ int api_npc_GetFavorPercent( CDNGameRoom *pRoom, UINT uiUserObjectID, int iNpcID ); /* desc : NPC ¾ÇÀÇPercent ¸¦ ¾ò¾î¿Â´Ù. param : À¯ÀúÀ妽º, NpcID return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, -2 => ½Ã½ºÅÛ¿¡·¯ ±×¿Ü => ¸®Åϰª */ int api_npc_GetMalicePercent( CDNGameRoom *pRoom, UINT uiUserObjectID, int iNpcID ); /* desc : NPC È£ÀÇPoint ¸¦ °¡°¨ÇÑ´Ù. param : À¯ÀúÀ妽º, NpcID, °¡°¨°ª(- ³ÖÀ¸¸é °¨¼ÒÇÔ) return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, -2 => ½Ã½ºÅÛ¿¡·¯ ±×¿Ü => ¸®Åϰª */ int api_npc_AddFavorPoint( CDNGameRoom *pRoom, UINT uiUserObjectID, int iNpcID, int val ); /* desc : NPC ¾ÇÀÇPoint ¸¦ °¡°¨ÇÑ´Ù. param : À¯ÀúÀ妽º, NpcID, °¡°¨°ª(- ³ÖÀ¸¸é °¨¼ÒÇÔ) return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, -2 => ½Ã½ºÅÛ¿¡·¯ ±×¿Ü => ¸®Åϰª */ int api_npc_AddMalicePoint( CDNGameRoom *pRoom, UINT uiUserObjectID, int iNpcID, int val ); /* desc : NPC ¿¡°Ô º¸³¾ ¼±¹° ¼±ÅÃÇÑ Á¤º¸¸¦ ¼­¹ö·Î º¸³»¶ó°í Ŭ¶óÀÌ¾ðÆ®¿¡°Ô ¿äû. param : À¯ÀúÀ妽º, NpcID return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, -2 => ½Ã½ºÅÛ¿¡·¯ ±×¿Ü => ¸®Åϰª */ int api_npc_SendSelectedPresent( CDNGameRoom* pRoom, UINT uiUserObjectID, int iNpcID ); /* desc : NPC ¿¡°Ô º¸³¾ ¼±¹° ¼±ÅÃÇÑ Á¤º¸¸¦ ¼­¹ö·Î º¸³»¶ó°í Ŭ¶óÀÌ¾ðÆ®¿¡°Ô ¿äû. param : À¯ÀúÀ妽º, NpcID return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, -2 => ½Ã½ºÅÛ¿¡·¯ ±×¿Ü => ¸®Åϰª */ int api_npc_Rage( CDNGameRoom* pRoom, UINT uiUserObjectID, int iNpcID ); /* desc : NPC ¿¡°Ô º¸³¾ ¼±¹° ¼±ÅÃÇÑ Á¤º¸¸¦ ¼­¹ö·Î º¸³»¶ó°í Ŭ¶óÀÌ¾ðÆ®¿¡°Ô ¿äû. param : À¯ÀúÀ妽º, NpcID return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, -2 => ½Ã½ºÅÛ¿¡·¯ ±×¿Ü => ¸®Åϰª */ int api_npc_Disappoint( CDNGameRoom* pRoom, UINT uiUserObjectID, int iNpcID ); /* desc : ƯÁ¤ »ç¿ëÀÚÀÇ Àüü ½ºÅ³À» ¸®¼Â½ÃŲ´Ù. param : À¯ÀúÀ妽º return : -1 : À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, 1 : ¼º°ø */ int api_user_ResetSkill(CDNGameRoom *pRoom, UINT nUserObjectID); /* desc : ƯÁ¤ »ç¿ëÀÚ¸¦ 2Â÷ ÀüÁ÷ ½ºÅ³À» »ç¿ëÇÒ ¼ö ÀÖ´Â »óÅ·ΠÀӽ÷Π¸¸µé¾îÁØ´Ù. param : À¯ÀúÀ妽º return : -1 : À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, 1 : ¼º°ø */ int api_user_SetSecondJobSkill( CDNGameRoom *pRoom, UINT nUserObjectID, int iSecondChangeJobID ); /* desc : Àӽ÷Π2Â÷ ÀüÁ÷À» »ç¿ëÇÒ ¼ö ÀÖ´Â »óÅ·Π¸¸µé¾îµÐ À¯Àú¸¦ ¿ø·¡ »óÅ·Πµ¹·Á³õ´Â´Ù. ÀÌ api ¸¦ È£ÃâÇÏÁö ¾Ê¾Æµµ ¸ÊÀ» À̵¿Çصµ ¸®¼ÂµÈ´Ù. param : À¯ÀúÀ妽º return : -1 : À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, 1 : ¼º°ø */ int api_user_ClearSecondJobSkill( CDNGameRoom *pRoom, UINT nUserObjectID ); /* desc : À¯Àú°¡ °¡Áø Àåºñ ¾ÆÀÌÅÛÀ» ¼ö¸®Çϰí, ¼ö¸®ºñ¿ëÀ» Â÷°¨ÇÕ´Ï´Ù. param : À¯ÀúÀ妽º, Àüü¼ö¸® À¯¹«(1-Àüü¼ö¸®, 0-ÀåÂøÇѾÆÀÌÅÛ) return : -1 : À¯Àú¸¦ ãÀ»¼ö ¾øÀ½ / 0 : ¼ö¸®ÇÒ ¾ÆÀÌÅÛ ¾øÀ½ / 1 : ¼ÒÁö±Ý ºÎÁ· / 2 : ¾ÆÀÌÅÛ ¼ö¸® ¿Ï·á */ int api_user_RepairItem(CDNGameRoom *pRoom, UINT nUserObjectID, int iAllRepair); /* desc : ¾ÆÀÌÅÛÀÇ °­È­°ªÀ» ´Ù¸¥ ¾ÆÀÌÅÛÀ¸·Î À̵¿½Ãŵ´Ï´Ù. param : À¯ÀúÀ妽º return : -1 : À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, 1ÀÌ¸é ¼º°ø */ int api_ui_OpenExchangeEnchant(CDNGameRoom *pRoom, UINT nUserObjectID); //------------------------------------------------------------------------------------------------ // trigger int api_trigger_GetPartyCount( CDNGameRoom *pRoom ); int api_trigger_GetPartyActor( CDNGameRoom *pRoom, int nPartyIndex ); bool api_trigger_IsInsidePlayerToEventArea( CDNGameRoom *pRoom, int nActorHandle, int nEventAreaHandle ); void api_trigger_SetActionToProp( CDNGameRoom *pRoom, int nPropHandle, const char *szAction ); void api_trigger_ShowDungeonClear( CDNGameRoom *pRoom, bool bClear = true, bool bIgnoreRewardItem = false ); void api_trigger_SetPermitGate( CDNGameRoom *pRoom, int nGateIndex, int nOpenClose ); int api_trigger_GetMonsterAreaLiveCount( CDNGameRoom *pRoom, int nEventAreaHandle ); int api_trigger_GetMonsterAreaTotalCount( CDNGameRoom *pRoom, int nEventAreaHandle ); void api_trigger_RebirthMonster( CDNGameRoom *pRoom, int nEventAreaHandle ); void api_trigger_GenerationMonster( CDNGameRoom *pRoom, int nEventAreaHandle, int nMonsterTableID, int nMin, int nMax, int nTeamSetting ); void api_trigger_GenerationMonsterGroup( CDNGameRoom *pRoom, int nEventAreaHandle, int nMonsterGroupID, int nMin, int nMax, int nTeamSetting ); void api_trigger_CmdMoveMonster( CDNGameRoom* pRoom, int nEventAreaHandle, int nTargetEventAreaHandle ); void api_trigger_CmdRandMoveMonster( CDNGameRoom* pRoom, int nEventAreaHandle, int nTargetEventAreaHandle, UINT uiMoveFrontRate ); bool api_trigger_CheckMonsterIsInsideArea( CDNGameRoom* pRoom, int nEventAreaHandle, int nTargetEventAreaHandle ); bool api_trigger_CheckMonsterLessHP( CDNGameRoom* pRoom, int iMonsterID, int iHP ); bool api_trigger_CheckInsideAreaMonsterLessHP( CDNGameRoom* pRoom, int iAreaUniqueID, int iHP ); void api_trigger_GenerationMonsterSet( CDNGameRoom *pRoom, int nEventAreaHandle, int nSetID, int nPosID, int nTeamSetting, bool bResetReference ); void api_trigger_GenerationMonsterSetInEventArea( CDNGameRoom *pRoom, int nEventAreaHandle, int nChangeSetID, int nChangePosID, int nTeamSetting, bool bResetReference ); /* desc : EventArea ¿¡ NPC ¸¦ »ý¼ºÇÑ´Ù. param : À̺¥Æ®¿µ¿ª id , npc id return : -1 => À̺¥Æ®¿µ¿ª ãÀ»¼ö ¾øÀ½, 1ÀÌ¸é ¼º°ø */ int api_trigger_GenerationNpc(CDNGameRoom *pRoom, int nEventAreaHandle, int nNpcTableID); /* desc : EventArea ¿¡ NPC ¸¦ Á¦°ÅÇÑ´Ù. param : À̺¥Æ®¿µ¿ª id return : -1 => À̺¥Æ®¿µ¿ª ãÀ»¼ö ¾øÀ½, 1ÀÌ¸é ¼º°ø */ int api_trigger_DestroyNpc(CDNGameRoom *pRoom, int nEventAreaHandle); void api_trigger_SetGameSpeed( CDNGameRoom *pRoom, float fPlaySpeed, DWORD dwDelay ); void api_trigger_ShowProp( CDNGameRoom *pRoom, int nPropHandle, bool bShow ); bool api_trigger_IsAllDieMonster( CDNGameRoom *pRoom, bool bCheckTeam = false ); int api_trigger_GetLastAimPropHandle( CDNGameRoom *pRoom, CEtTriggerElement *pElement ); bool api_trigger_IsProp( CDNGameRoom *pRoom, int nPropHandle ); bool api_trigger_IsBrokenProp( CDNGameRoom *pRoom, int nPropHandle ); void api_trigger_DestroyMonsterArea( CDNGameRoom *pRoom, int nEventAreaHandle, int nDropType ); void api_trigger_DestroyAllMonster( CDNGameRoom *pRoom, bool bDropItem, int nTeam ); void api_trigger_SetMonsterAIState( CDNGameRoom *pRoom, int nEventAreaHandle, int nValue ); void api_trigger_PlayCutSceneByTrigger( CDNGameRoom *pRoom, int nCutSceneTableID, bool bFadeIn, int nQuestIndex , int nQuestStep); int api_trigger_GetGameTime( CDNGameRoom *pRoom ); bool api_trigger_Delay( CDNGameRoom *pRoom, CEtTriggerElement *pElement, int nDelay ); int api_trigger_GetBattleModeCount( CDNGameRoom *pRoom, int nEventAreaHandle ); char *api_trigger_GetActionToProp( CDNGameRoom *pRoom, int nPropHandle ); void api_trigger_ChangeMapByTrigger( CDNGameRoom *pRoom, int nMapIndex, int nGateNo ); int api_trigger_GetTalkNpcClassID( CDNGameRoom *pRoom, CEtTriggerElement *pElement ); int api_trigger_GetTalkNpcActor( CDNGameRoom *pRoom, CEtTriggerElement *pElement ); int api_trigger_GetTalkNpcTargetActor( CDNGameRoom *pRoom, CEtTriggerElement *pElement ); void api_trigger_EnableOperatorProp( CDNGameRoom *pRoom, int nPropHandle, int nActorHandle, bool bEnable ); void api_trigger_AllUserEnableOperatorProp( CDNGameRoom *pRoom, int nPropHandle, bool bEnable ); void api_trigger_SetActionToPropActor( CDNGameRoom *pRoom, int nPropHandle, int nActorHandle, const char *szAction ); int api_trigger_GetLastAimPropActor( CDNGameRoom *pRoom, CEtTriggerElement *pElement ); int api_trigger_GetLastBrokenPropActor( CDNGameRoom *pRoom, CEtTriggerElement *pElement ); void api_trigger_EnableTriggerElement( CDNGameRoom *pRoom, CEtTriggerElement *pElement, bool bEnable ); void api_trigger_SetActionToActor( CDNGameRoom *pRoom, int nEventAreaHandle, const char *szAction, int nLoopCount, float fBlendFrame ); void api_trigger_EnableOperatorNpc( CDNGameRoom *pRoom, int nEventAreaHandle, int nActorHandle, bool bEnable ); void api_trigger_EnableOperatorNpcFromPropNpc( CDNGameRoom *pRoom, int nPropHandle, int nActorHandle, bool bEnable ); void api_trigger_EnableTriggerObject( CDNGameRoom *pRoom, const char *szTriggerObjectName, bool bEnable ); void api_trigger_EnableMonsterNoDamage( CDNGameRoom *pRoom, int nEventAreaHandle, bool bEnable ); void api_trigger_WarpActor( CDNGameRoom *pRoom, int nActorHandle, int nTargetEventAreaHandle ); void api_trigger_WarpActorFromEventArea( CDNGameRoom *pRoom, int nMonsterEventAreaHandle, int nTargetEventAreaHandle ); bool api_trigger_IsInsidePropToEventArea( CDNGameRoom* pRoom, int nPropHandle, int nTargetEventAreaHandle ); void api_trigger_ChangeTeamFromEventArea( CDNGameRoom *pRoom, int nEventAreaHandle, int nTeam ); bool api_trigger_IsDieActor( CDNGameRoom *pRoom, int nActorHandle ); int api_trigger_GetUserLevelByTrigger( CDNGameRoom *pRoom, int nActorHandle ); int api_trigger_GetMonsterActorFromEventArea( CDNGameRoom *pRoom, int nEventAreaHandle, int nIndex ); void api_trigger_DropItemToEventArea( CDNGameRoom *pRoom, int nEventAreaHandle, int nItemID, int nCount, DWORD dwOwnerActorHandle = 0 ); void api_trigger_DropItemToActor( CDNGameRoom *pRoom, int nActorHandle, int nItemID, int nCount, DWORD dwOwnerActorHandle = 0 ); void api_trigger_ShowChatBalloonToMonsterArea( CDNGameRoom *pRoom, int nEventAreaHandle, int nUIStringIndex ); void api_trigger_ShowChatBalloonToActor( CDNGameRoom *pRoom, int nActorHandle, int nUIStringIndex ); void api_trigger_ShowChatBalloonToProp( CDNGameRoom *pRoom, int nPropHandle, int nUIStringIndex ); void api_trigger_HideChatBalloonToMonsterArea( CDNGameRoom *pRoom, int nEventAreaHandle ); void api_trigger_HideChatBalloonToProp( CDNGameRoom *pRoom, int nPropHandle ); void api_trigger_SetForceAggroToMonsterArea( CDNGameRoom *pRoom, int nEventAreaHandle, int nTargetEventArea, int nValue ); void api_trigger_SetForceAggroToProp( CDNGameRoom *pRoom, int nEventAreaHandle, int nPropHandle, int nValue ); void api_trigger_ShowExposureInfo( CDNGameRoom *pRoom, int nEventAreaHandle, bool bShow ); void api_trigger_DLChangeRound( CDNGameRoom *pRoom, bool bBoss, int iNextTotalRound=0 ); int api_trigger_DLGetRound( CDNGameRoom *pRoom ); int api_trigger_DLGetTotalRound( CDNGameRoom *pRoom ); int api_trigger_DLGetStartFloor( CDNGameRoom* pRoom ); int api_trigger_DLRequestChallenge( CDNGameRoom* pRoom ); int api_trigger_DLResponseChallenge( CDNGameRoom* pRoom ); void api_trigger_DLSetStartRound( CDNGameRoom* pRoom, int iRound ); void api_trigger_EnableDungeonClearWarpQuestFlag(CDNGameRoom* pRoom); bool api_trigger_IsEnableDungeonClearWarp(CDNGameRoom* pRoom); bool api_trigger_IsExistNotAchieveMissionPartyActor( CDNGameRoom *pRoom, int nMissionArrayIndex ); int api_trigger_GetChangeActionPlayerActor( CDNGameRoom *pRoom, CEtTriggerElement *pElement ); char *api_trigger_GetActionToPlayerActor( CDNGameRoom *pRoom, CEtTriggerElement *pElement ); void api_trigger_EnablePropNoDamage( CDNGameRoom *pRoom, int nPropHandle, bool bEnable ); int api_trigger_GetTriggerEventSignalEventAreaHandle( CDNGameRoom *pRoom, CEtTriggerElement *pElement ); int api_trigger_GetTriggerEventSignalActorHandle( CDNGameRoom *pRoom, CEtTriggerElement *pElement ); int api_trigger_GetTriggerEventSignalEventID( CDNGameRoom *pRoom, CEtTriggerElement *pElement ); int api_trigger_GetTriggerEventSignalTeam( CDNGameRoom *pRoom, CEtTriggerElement *pElement ); void api_trigger_HoldPartyDice(CDNGameRoom* pRoom); void api_trigger_ReleasePartyDice(CDNGameRoom* pRoom); void api_trigger_UpdateNestTryCount(CDNGameRoom *pRoom,int iForceMapIndex=0 ); void api_trigger_UpdateUserNestTryCount(CDNGameRoom *pRoom, int nActorHandle ); int api_trigger_GetMonsterClassID( CDNGameRoom *pRoom, int nActorHandle ); void api_trigger_EnableDungeonClearWarpAlarm( CDNGameRoom *pRoom, bool bEnable ); void api_trigger_SetHPFromEventArea( CDNGameRoom *pRoom, int nEventAreaHandle, int nValue ); void api_trigger_SetHP( CDNGameRoom *pRoom, int nActorHandle, int nValue ); void api_trigger_AddHPAbsoluteFromEventArea( CDNGameRoom *pRoom, int nEventAreaHandle, int nValue ); void api_trigger_AddHPRatioFromEventArea( CDNGameRoom *pRoom, int nEventAreaHandle, float fValue ); void api_trigger_AddHPAbsolute( CDNGameRoom *pRoom, int nActorHandle, int nValue ); void api_trigger_AddHPRatio( CDNGameRoom *pRoom, int nActorHandle, float fValue ); int api_trigger_GetTeamFromEventArea( CDNGameRoom *pRoom, int nEventAreaHandle ); int api_trigger_GetTeam( CDNGameRoom *pRoom, int nActorHandle ); void api_trigger_SetHPRatioFromEventArea( CDNGameRoom *pRoom, int nEventAreaHandle, float fValue ); void api_trigger_SetHPRatio( CDNGameRoom *pRoom, int nActorHandle, float fValue ); void api_trigger_IgnoreAggroFromEventArea( CDNGameRoom *pRoom, int nEventAreaHandle, int nValue ); int api_trigger_GetPropDurability( CDNGameRoom *pRoom, int nPropHandle ); int api_trigger_LastAimPropActorMessage( CDNGameRoom *pRoom, int nType, int nActorHandle, int nBaseStringIdx, lua_tinker::table ParamTable ); void api_trigger_BuffFromEventArea( CDNGameRoom *pRoom, int nActorHandle, int nSkillID, int nSkillLevel, int nDelay); bool api_trigger_NoDuplicateBuffFromEventArea( CDNGameRoom *pRoom, int nActorHandle, int nSkillID, int nSkillLevel, int nDelay); void api_trigger_Start_DragonNest( CDNGameRoom* pRoom, int nType, int nRebirthCount ); void api_trigger_SetUsableRebirthCoin( CDNGameRoom* pRoom, int nActorHandle, int nUsableRebirthCoin ); int api_trigger_GetMonsterHPPercent_FromEventArea( CDNGameRoom* pRoom, int nEventAreaHandle ); void api_trigger_UseSkillFromEventArea( CDNGameRoom *pRoom, int nEventAreaHandle, int nSkillID ); void api_trigger_UseSkill( CDNGameRoom *pRoom, int nActorHandle, int nSkillID ); void api_trigger_NotUseManaSkill( CDNGameRoom *pRoom, int nActorHandle ); void api_trigger_AllUser_AddVehicleItem(CDNGameRoom *pRoom, char* pszStr, bool bDBSave ); void api_trigger_PlayerNameShowBlindCaption( CDNGameRoom *pRoom, int nUIStringIndex, int nDelay, int nActorHandle ); void api_trigger_InvenToEquip( CDNGameRoom* pRoom, UINT nUserObjectID, int iItemID, bool bShootMode, bool bBackup=false ); void api_trigger_UnRideVehicle( CDNGameRoom* pRoom, UINT nUserObjectID ); void api_trigger_ChangeMyBGM( CDNGameRoom * pRoom, int nActorHandle, int nBGM, int nFadeDelta = 0 ); void api_trigger_FileTableBGMOff( CDNGameRoom * pRoom, int nActorHandle ); void api_trigger_RadioMsg( CDNGameRoom * pRoom, int nActorHandle, int nRadioID ); void api_trigger_RadioImage( CDNGameRoom * pRoom, int nActorHandle, int nFileID, DWORD nTime ); int api_trigger_GetPvPGameModePlayTime( CDNGameRoom * pRoom ); void api_trigger_DropGroupItemToEventArea( CDNGameRoom *pRoom, int nEventAreaHandle, int nItemID, DWORD dwOwnerActorHandle = 0 ); void api_trigger_DropGroupItemToActor( CDNGameRoom *pRoom, int nActorHandle, int nItemID, DWORD dwOwnerActorHandle = 0 ); void api_trigger_TargetActorShowNpc( CDNGameRoom * pRoom, int nActorHandle, int nEventAreaHandle, bool bShow ); void api_trigger_TargetActorShowProp( CDNGameRoom * pRoom, int nActorHandle, int nPropHandle, bool bShow ); int api_trigger_TriggerVariableTable( CDNGameRoom * pRoom, int nItemID ); int api_trigger_GetPvPGameMode( CDNGameRoom * pRoom ); void api_trigger_CmdKeepOperationProp( CDNGameRoom * pRoom, int nPropHandle, int nActorHandle, int nOperationTime, int nStringID, const char *szAction ); void api_trigger_ActivateMission( CDNGameRoom * pRoom, int nActorHandle, int nMissionID); void api_trigger_SetDungeonClearRound( CDNGameRoom * pRoom, int iRound ); bool api_trigger_BreakIntoUserCheck( CDNGameRoom* pRoom ); bool api_trigger_DungeonStartTimeAttack( CDNGameRoom* pRoom, int iMin, int iSec ); int api_trigger_DungeonCheckTimeAttack( CDNGameRoom* pRoom ); void api_trigger_DungeonStopTimeAttack( CDNGameRoom* pRoom ); void api_trigger_RequestDungeonFail( CDNGameRoom* pRoom, bool bTimeOut=false ); void api_trigger_Special_RebirthItem( CDNGameRoom* pRoom, int nType, int nITemID, int nRebirthItemCount ); void api_trigger_GameWarpDungeonClearToLeader(CDNGameRoom* pRoom, bool bIgnoreClear = false); void api_trigger_ActorBuffFromEventArea( CDNGameRoom *pRoom, int nActorHandle, int nEventAreaHandle, int nSkillID, int nSkillLevel, int nDelay, bool bSummonInclude ); void api_trigger_console_WriteLine( char * szOutputString, const char * s0, const char * s1, const char * s2, const char * s3, const char * s4, const char * s5, const char * s6, const char * s7, const char * s8, const char * s9 ); int api_trigger_GetPartyCountbyRoom( CDNGameRoom* pRoom ); int api_trigger_GetPartyActorbyRoom( CDNGameRoom* pRoom, int nFirstPartyIndex ); int api_trigger_GetRacingStartTime( CDNGameRoom * pRoom ); int api_trigger_GetRacingGoalTime( CDNGameRoom * pRoom, const int nActorHandle ); int api_trigger_GetCurrentWeather( CDNGameRoom* pRoom ); void api_trigger_StartDungeonGateTime( CDNGameRoom* pRoom, int nGateNumber ); void api_trigger_EndDungeonGateTime( CDNGameRoom* pRoom, int nGateNumber ); int api_trigger_StageRemainClearCount( CDNGameRoom* pRoom, UINT nUserObjectID, int nMapIndex ); void api_trigger_EnableRideVehicle( CDNGameRoom * pRoom, UINT nActorHandle, bool bEnableRide ); void api_trigger_AllMonsterUseSkill( CDNGameRoom * pRoom, int nSkillID, int nSkillLevel, int nDelay, bool bEternity ); bool api_trigger_RequireTotalComboCount( CDNGameRoom * pRoom, UINT nActorHandle, int nTotalComboCount ); void api_trigger_RequireTotalComboReset( CDNGameRoom * pRoom, UINT nActorHandle ); /* desc : ÆÄƼ Áß Æ¯Á¤ Ŭ·¡½ºÀÇ ÀοøÀ» üũ [Interger1] À¯Àú Ŭ·¡½ºÀÇ ÀοøÀ» ¹Ýȯ param : Á÷¾÷(Interger1)1 ¿ö¸®¾î 2 ¾ÆÃÄ, 3 ¼Ò¼­¸®½º 4 Ŭ·¡½º 5 ¾ÆÄ«µ¥¹Í 6 Ä®¸® return : ÆÄƼ³» [Interger1] Ŭ·¡½ºÀÇ Àοø */ int api_trigger_GetPartyInClassCount( CDNGameRoom* pRoom, int nClassID ); void api_trigger_Set_AlteiaWorld( CDNGameRoom* pRoom, bool bFlag ); void api_tirgger_Set_UserHPSP( CDNGameRoom * pRoom, UINT nActorHandle, int nHP_Ratio, int nSP_Ratio ); void api_trigger_Set_ItemUseCount( CDNGameRoom* pRoom, int nItemID, int nUseCount ); // ½ºÅ×ÀÌÁö ¾ÆÀÌÅÛ »ç¿ëȽ¼ö Á¦ÇÑ //rlkt_test bool api_trigger_CheckJobChangeProcess(CDNGameRoom* pRoom, UINT nActorHandle); int api_ui_OpenJobChange(CDNGameRoom* pRoom, UINT nUserObjectID); int api_trigger_Emergence_GetValue(CDNGameRoom* pRoom, UINT nValueType); int api_trigger_Emergence_Begin(CDNGameRoom* pRoom, int nEventAreaHandle); bool api_trigger_Emergence_CheckSelectedEvent(CDNGameRoom* pRoom, int nEventAreaHandle); bool api_trigger_CheckForceMoveComebackRoom(CDNGameRoom* pRoom);