#pragma once class CDNUserBase; class CDnNpc; namespace DNScriptAPI { int CheckInvenForQuestReward(CDNUserBase* pUser, const TQuestReward& QuestReward, const bool bSelectedArray[]); /* desc : ´ÙÀ½ ´ë»ç·Î ¿¬°áÇÑ´Ù. param : À¯Àú(²À CDNUserSession*), NPCÀ妽º, ÅäÅ©À妽º, ÅäÅ©ÆÄÀÏÀ̸§ return : void */ void api_npc_NextTalk(CDNUserBase* pUser, UINT nNpcObjectID, const char* szTalkIndex, const char* szTargetFile); /* desc : ´ÙÀ½ ½ºÅ©¸³Æ®·Î ¿¬°áÇÑ´Ù. param : À¯Àú(²À CDNUserSession*), NPC, ÅäÅ©À妽º, ÅäÅ©ÆÄÀÏÀ̸§ return : void */ void api_npc_NextScript(CDNUserBase* pUser, CDnNpc* pNpc, 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(CDNUserBase* pUser, 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(CDNUserBase* pUser, const char* szParamKey, int nValue); /* desc : ·Î±×¸¦ ³²±ä´Ù. param : ·Î±× ½ºÆ®¸µ ÁٹٲÞÀ» À§ÇØ \n À» Æ÷ÇÔÇÒ°Í. return : void */ void api_log_AddLog(const char* szLog); /* desc : À¯Àú¿¡°Ô ·Î±×¸¦ ³²±ä´Ù. À¯ÀúäÆÃ¸Þ¼¼Áö·Î Àü¼ÛÇØÁÜ. param : ·Î±× ½ºÆ®¸µ ÁٹٲÞÀ» À§ÇØ \n À» Æ÷ÇÔÇÒ°Í. return : void */ void api_log_UserLog(CDNUserBase* pUser, const char* szLog); /* desc : À¯Àú¿¡°Ô Äù½ºÆ® °ü·Ã Á¤º¸¸¦ äÆÃÀ¸·Î º¸³»ÁØ´Ù. param : return : void */ void api_quest_DumpQuest(CDNUserBase* pUser); /* desc : À¯Àú¿¡°Ô Äù½ºÆ®¸¦ ºÎ¿© ÇÑ´Ù. param : À¯Àú, Äù½ºÆ®À妽º, Äù½ºÆ® ŸÀÔ QuestType_SubQuest = 1, QuestType_MainQuest = 2, return : 1 : ¼º°ø, -1 : À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, -2 : À¯Àú°¡ Äù½ºÆ®¸¦ °¡Áö°í ÀÖÁö ¾ÊÀ½ */ int api_quest_AddHuntingQuest(CDNUserBase* pUser, int nQuestID, int nQuestStep, int nJournalStep, int nCountingSlot, int nCountingType, int nCountingIndex, int nTargetCnt); int api_quest_AddQuest(CDNUserBase* pUser, int nQuestID, int nQuestType); /* desc : À¯Àú¿¡°Ô Äù½ºÆ®¸¦ ¿Ï·á ½ÃŲ´Ù. param : À¯Àú, Äù½ºÆ®À妽º, ÇöÀç °¡Áö°í ÀÖ´Â Äù½ºÆ®¿¡¼­ Áö¿ï°ÍÀÎÁö (¾ÈÁö¿ì¸é Ç÷¹ÀÌ È½¼ö¸¸ Áõ°¡ ½ÃŲ´Ù.), ¹Ýº¹ °¡´É ¿©ºÎ return : -1 À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, -2 Äù½ºÆ®°¡ ÁøÇàÁßÀÌ ¾Æ´Ô */ int api_quest_CompleteQuest(CDNUserBase* pUser, int nQuestID, bool bDelPlayList); /* desc : ¿Ï·á¸ñ·Ï¿¡ ¿Ï·á¸¶Å·ÀÌ µÇ¾îÀÖ´Â Äù½ºÆ®ÀÎÁö? param : À¯Àú, Äù½ºÆ®À妽º return : -1 À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, 1 ÀÌ¸é ¿Ï·á¸¶Å·µÈ Äù½ºÆ®, 0 ÀÌ¸é ¿Ï·á¸¶Å· ¾ÈµÊ */ int api_quest_IsMarkingCompleteQuest(CDNUserBase* pUser, int nQuestID); /* desc : À¯Àú°¡ Äù½ºÆ®¸¦ °¡Áö°í ÀÖ´ÂÁö È®ÀÎÇÑ´Ù. param : À¯Àú, Äù½ºÆ®À妽º return : -1 À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, -2 À¯Àú°¡ Äù½ºÆ®¸¦ °¡Áö°í ÀÖÁö ¾ÊÀ½, -1 º¸´Ù Å©¸é Äù½ºÆ®¸¦ °¡Áö°í ÀÕÀ½ ( Äù½ºÆ® ½ºÅÜÀ» ¸®ÅÏ ) */ int api_quest_UserHasQuest(CDNUserBase* pUser, int nQuestID); /* desc : À¯Àú°¡ ¸î°³ÀÇ Äù½ºÆ®¸¦ ÁøÇàÁßÀÎÁö È®ÀÎÇÑ´Ù. param : À¯Àú return : -1 À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, ±×¿Ü¿¡ ÇöÀç ÁøÇàÁßÀÎ Äù½ºÆ® °¹¼ö ¸®ÅÏ.. */ int api_quest_GetPlayingQuestCnt(CDNUserBase* pUser); /* desc : npc À妽º¸¦ ¸®ÅÏÇÑ´Ù. param : Npc return : -2 npc ¸¦ ãÀ»¼ö ¾øÀ½, ±×¿Ü¿¡´Â npcÀ妽º */ int api_npc_GetNpcIndex(CDnNpc* pNpc); /* desc : À¯Àú°¡ °¡Áö°í ÀÖ´Â Äù½ºÆ®ÀÇ ½ºÅÜ, Àú³Î ½ºÅÜÀ» ¼¼ÆÃÇÑ´Ù. param : À¯Àú, Äù½ºÆ®À妽º, Àú³Î ½ºÅÜ return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½ -2 => À¯Àú°¡ Äù½ºÆ®¸¦ °¡Áö°í ÀÖÁö ¾ÊÀ½. -3 Àú³Î ½ºÅÜ ¹üÀ§¸¦ ¹þ¾î³². ¼º°øÀÏ °æ¿ì 1À» ¸®ÅÏ */ int api_quest_SetQuestStepAndJournalStep(CDNUserBase* pUser, int nQuestID, short nQuestStep, int nJournalStep); /* desc : À¯Àú°¡ °¡Áö°í ÀÖ´Â Äù½ºÆ®ÀÇ Äù½ºÆ® ½ºÅÜÀ» ¼¼ÆÃÇÑ´Ù. param : À¯Àú, Äù½ºÆ®À妽º, Äù½ºÆ® ½ºÅÜ return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½ -2 => À¯Àú°¡ Äù½ºÆ®¸¦ °¡Áö°í ÀÖÁö ¾ÊÀ½. ¼º°øÀÏ °æ¿ì 1À» ¸®ÅÏ */ int api_quest_SetQuestStep(CDNUserBase* pUser, int nQuestID, short nQuestStep); /* desc : À¯Àú°¡ °¡Áö°í ÀÖ´Â Äù½ºÆ®ÀÇ Äù½ºÆ® ½ºÅÜÀ» ¾ò´Â´Ù. param : À¯Àú, Äù½ºÆ®À妽º return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½ -2 => À¯Àú°¡ Äù½ºÆ®¸¦ °¡Áö°í ÀÖÁö ¾ÊÀ½., -1 º¸´Ù Å«°æ¿ì ÇöÀç Äù½ºÆ®ÀÇ ½ºÅÜ */ int api_quest_GetQuestStep(CDNUserBase* pUser, int nQuestID); /* desc : À¯Àú°¡ °¡Áö°í ÀÖ´Â Äù½ºÆ®ÀÇ Àú³Î ½ºÅÜÀ» ¼¼ÆÃÇÑ´Ù. param : À¯Àú, Äù½ºÆ®À妽º, Àú³Î ½ºÅÜ return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½ -2 => À¯Àú°¡ Äù½ºÆ®¸¦ °¡Áö°í ÀÖÁö ¾ÊÀ½. -3 Àú³Î ½ºÅÜ ¹üÀ§¸¦ ¹þ¾î³². ¼º°øÀÏ °æ¿ì 1À» ¸®ÅÏ */ int api_quest_SetJournalStep(CDNUserBase* pUser, int nQuestID, int nJournalStep); /* desc : À¯Àú°¡ °¡Áö°í ÀÖ´Â Äù½ºÆ®ÀÇ Àú³Î ½ºÅÜÀ» ¾ò´Â´Ù. param : À¯Àú, Äù½ºÆ®À妽º return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½ -2 => À¯Àú°¡ Äù½ºÆ®¸¦ °¡Áö°í ÀÖÁö ¾ÊÀ½., -1 º¸´Ù Å«°æ¿ì ÇöÀç Àú³Î ½ºÅÜ */ int api_quest_GetJournalStep(CDNUserBase* pUser, int nQuestID); /* desc : À¯Àú°¡ °¡Áö°í ÀÖ´Â Äù½ºÆ®ÀÇ ¸Þ¸ðÀÇ Æ¯Á¤ À妽º¿¡ °ªÀ» ¼¼ÆÃÇÑ´Ù. param : À¯Àú, ¸Þ¸ðÀ妽º, ¸Þ¸ð°ª return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½. -2 => À¯Àú°¡ Äù½ºÆ®¸¦ °¡Áö°í ÀÖÁö ¾ÊÀ½. -3 ¸Þ¸ð À妽º ¹üÀ§¸¦ ¹þ¾î³². ¼º°øÀÏ °æ¿ì 1À» ¸®ÅÏ */ int api_quest_SetQuestMemo(CDNUserBase* pUser, int nQuestID, char nMemoIndex, int iVal); /* desc : À¯Àú°¡ °¡Áö°í ÀÖ´Â Äù½ºÆ®ÀÇ ¸Þ¸ðÀÇ Æ¯Á¤ À妽ºÀÇ °ªÀ» ¾ò´Â´Ù. param : À¯Àú, ¸Þ¸ðÀ妽º return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½. -2 => À¯Àú°¡ Äù½ºÆ®¸¦ °¡Áö°í ÀÖÁö ¾ÊÀ½. -3 ¸Þ¸ð À妽º ¹üÀ§¸¦ ¹þ¾î³². -1 º¸´Ù Å«°æ¿ì ƯÁ¤ ¸Þ¸ð À妽ºÀÇ °ª */ int api_quest_GetQuestMemo(CDNUserBase* pUser, int nQuestID, char nMemoIndex); /* desc : ¸ó½ºÅÍ Àâ°Å³ª, ¾ÆÀÌÅÛ ¾ò´Â °¹¼ö Ä«¿îÆÃ Á¤º¸¸¦ ¼¼ÆÃÇÏ´Â ÇÔ¼ö ÀÌ´Ù. param : À¯Àú, Äù½ºÆ®À妽º, Ä«¿îÆÃÁ¤º¸ ¼¼ÆÃ ½½·Ô(0ºÎÅÍ 49±îÁö 50°³ÀÇ ¼¼ÆÃ½½·ÔÀÌ ÀÖÀ½) , Ä«¿îÆÃÇÒ Å¸ÀÔ( CountingType_MyMonsterKill = 1, CountingType_AllMonsterKill = 2, CountingType_Item = 3), Ä«¿îÆÃÇÒ °ÍÀÇ À妽º 0 ~ 60000 ±îÁöÀÇ ¹üÀ§, Ä«¿îÆÃÇÒ °¹¼ö return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½ -2 => À¯Àú°¡ Äù½ºÆ®¸¦ °¡Áö°í ÀÖÁö ¾ÊÀ½. -3 => Ä«¿îÆÃÁ¤º¸¼¼ÆÃ½½·Ô ¹üÀ§ Ãʰú -4 => Ä«¿îÆÃŸÀÔ or Ÿ°ÙÄ«¿îÆ® ¹üÀ§ Ãʰú example: api_SetCountingInfo(À¯Àú¾ÆÀ̵ð, Äù½ºÆ®¾ÆÀ̵ð, 0, CountingType_MyMonsterKill, 10001, 10); api_SetCountingInfo(À¯Àú¾ÆÀ̵ð, Äù½ºÆ®¾ÆÀ̵ð, 1, CountingType_MyMonsterKill, 10002, 5); api_SetCountingInfo(À¯Àú¾ÆÀ̵ð, Äù½ºÆ®¾ÆÀ̵ð, 2, CountingType_MyMonsterKill, 10003, 20); api_SetCountingInfo(À¯Àú¾ÆÀ̵ð, Äù½ºÆ®¾ÆÀ̵ð, 3, Item, 1001, 5); api_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(CDNUserBase* pUser, int nQuestID, int nSlot, int nCountingType, int nCountingIndex, int nTargetCnt); /* desc : ¼¼ÆÃµÈ Ä«¿îÆÃ Á¤º¸¸¦ Ŭ¸®¾î ÇÑ´Ù. param : À¯Àú, Äù½ºÆ® À妽º return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½ -2 => Äù½ºÆ®¸¦ ãÀ»¼ö ¾øÀ½, */ int api_quest_ClearCountingInfo(CDNUserBase* pUser, int nQuestID); /* desc : ¼¼ÆÃµÈ Ä«¿îÆÃµéÀÌ ¸ðµÎ ¿Ï·á µÇ¾ú´ÂÁö È®ÀÎÇÑ´Ù. param : À¯Àú, ¾ÆÀÌÅÛÀ妽º, ¾ÆÀÌÅÛ Ä«¿îÆ® return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½ -2 => Äù½ºÆ®¸¦ ãÀ»¼ö ¾øÀ½, -3ÀÌ¸é ¿Ï·á ¾ÈµÊ, 1 ÀÌ¸é ¸ðµÎ ¿Ï·á */ int api_quest_IsAllCompleteCounting(CDNUserBase* pUser, int nQuestID); /* desc : À¯Àú¿¡°Ô ¾ÆÀÌÅÛÀ» ³ÖÀ»¸¸ÇÑ Àκ¥¿©À¯°¡ ÀÖ´ÂÁö È®ÀÎÇÑ´Ù. param : À¯Àú, ¾ÆÀÌÅÛÀ妽º, ¾ÆÀÌÅÛ Ä«¿îÆ® return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½ -2 => ¾ÆÀÌÅÛÀ» ãÀ»¼ö ¾øÀ½, -3 Àκ¥ ºÎÁ· */ int api_user_CheckInvenForAddItem(CDNUserBase* pUser, 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(CDNUserBase* pUser, lua_tinker::table ItemTable); /* desc : À¯Àú¿¡°Ô ¾ÆÀÌÅÛÀ» Áö±ÞÇÑ´Ù. param : À¯Àú, ¾ÆÀÌÅÛÀ妽º, ¾ÆÀÌÅÛ Ä«¿îÆ®, Äù½ºÆ® ¾ÆÀ̵ð return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½ -2 => ¾ÆÀÌÅÛÀ» ãÀ»¼ö ¾øÀ½, -3 Àκ¥ ºÎÁ· */ int api_user_AddItem(CDNUserBase* pUser, int nItemIndex, int nItemCnt, int nQuestID); /* desc : À¯Àú¿¡°Ô¼­ ¾ÆÀÌÅÛÀ» Áö¿î´Ù. param : À¯Àú, ¾ÆÀÌÅÛÀ妽º, ¾ÆÀÌÅÛ Ä«¿îÆ®, Äù½ºÆ® ¾ÆÀ̵ð return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½ -2 => ¾ÆÀÌÅÛÀ» ãÀ»¼ö ¾øÀ½, -3 ¾ÆÀÌÅÛ °¹¼ö ºÎÁ· */ int api_user_DelItem(CDNUserBase* pUser, int nItemIndex, int nItemCnt, int nQuestID); /* desc : À¯Àú¿¡°Ô¼­ ¾ÆÀÌÅÛÀ» ¸ðµÎ Áö¿î´Ù. param : À¯Àú, ¾ÆÀÌÅÛÀ妽º, ¾ÆÀÌÅÛ Ä«¿îÆ®, Äù½ºÆ® ¾ÆÀ̵ð return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½ -2 => ¾ÆÀÌÅÛÀ» ãÀ»¼ö ¾øÀ½ */ int api_user_AllDelItem(CDNUserBase* pUser, int nItemIndex); /* desc : À¯Àú°¡ ¾ÆÀÌÅÛÀ» °¡Áö°í ÀÖ´ÂÁö È®ÀÎÇÑ´Ù. param : À¯Àú, ¾ÆÀÌÅÛÀ妽º, ¾ÆÀÌÅÛ Ä«¿îÆ® return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½ -2 => ¾ÆÀÌÅÛÀ» ãÀ»¼ö ¾øÀ½, -3 ¾ÆÀÌÅÛ °¹¼ö ºÎÁ·, 0 º¸´Ù Å©¸é true ( °¹¼ö¸¦ ¸®ÅÏ ) */ int api_user_HasItem(CDNUserBase* pUser, int nItemIndex, int nItemCnt); /* desc : À¯ÀúÀÇ Å¬·¡½º ID ¸¦ ¾ò´Â´Ù. param : À¯Àú return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, ±×¿Ü´Â ClasssID */ int api_user_GetUserClassID(CDNUserBase* pUser); /* desc : À¯ÀúÀÇ Job ID ¸¦ ¾ò´Â´Ù. param : À¯Àú return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, ±×¿Ü´Â Job ID */ int api_user_GetUserJobID(CDNUserBase* pUser); /* desc : À¯ÀúÀÇ levelÀ» ¾ò´Â´Ù. param : À¯Àú return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, ±×¿Ü´Â Level */ int api_user_GetUserLevel(CDNUserBase* pUser); /* desc : À¯Àú Àκ¥Å丮ÀÇ ºóÄ­¼ö¸¦ ¾ò´Â´Ù. param : À¯Àú return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, ±×¿Ü´Â ºóÄ­¼ö */ int api_user_GetUserInvenBlankCount(CDNUserBase* pUser); /* desc : À¯Àú Äù½ºÆ® Àκ¥Å丮ÀÇ ºóÄ­¼ö¸¦ ¾ò´Â´Ù. param : À¯Àú return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, ±×¿Ü´Â ºóÄ­¼ö */ int api_quest_GetUserQuestInvenBlankCount(CDNUserBase* pUser); /* desc : À¯Àú¿¡°Ô µ¿¿µ»óÀ» Àç»ý ½ÃŲ´Ù. param : À¯Àú, µ¿¿µ»óÆÄÀÏÀ̸§ return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, 1ÀÌ¸é ¼º°ø */ int api_user_PlayCutScene(CDNUserBase* pUser, UINT nNpcObjectID, int nCutSceneTableID, bool bIgnoreFadeIn); /* desc : À¯Àú¿¡°Ô â°í¸¦ ¿­¶ó°í ¾Ë¸°´Ù. param : À¯Àú return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, 1ÀÌ¸é ¼º°ø */ int api_ui_OpenWareHouse(CDNUserBase* pUser, int iItemID=0 ); #if defined (PRE_MOD_GAMESERVERSHOP) /* desc : À¯Àú¿¡°Ô »óÁ¡¸¦ ¿­¶ó°í ¾Ë¸°´Ù. param : À¯ÀúÀ妽º, »óÁ¡ ID return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, -2 ¸é ¼¥ÀÌ ¾øÀ½. 1ÀÌ¸é ¼º°ø */ int api_ui_OpenShop(CDNUserBase* pUser, int nShopID, Shop::Type::eCode Type); /* desc : À¯Àú¿¡°Ô ½ºÅ³ »óÁ¡¸¦ ¿­¶ó°í ¾Ë¸°´Ù. param : À¯ÀúÀ妽º, ½ºÅ³ »óÁ¡ ID return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, -2 ¸é ¼¥ÀÌ ¾øÀ½. 1ÀÌ¸é ¼º°ø */ int api_ui_OpenSkillShop(CDNUserBase* pUser); #endif /* desc : À¯Àú¿¡°Ô ¹®À庸¿Á ÇÕ¼º âÀ» ¿­¶ó°í ÇÑ´Ù. param : À¯Àú return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, 1ÀÌ¸é ¼º°ø */ int api_ui_OpenCompoundEmblem(CDNUserBase* pUser); /* desc : À¯Àú¿¡°Ô º¸¿Á ¾÷±×·¹À̵å âÀ» ¿­¶ó°í ¾Ë¸°´Ù. param : À¯Àú return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, 1ÀÌ¸é ¼º°ø */ int api_ui_OpenUpgradeJewel(CDNUserBase* pUser); /* desc : À¯Àú¿¡°Ô ¿ìÆíÇÔÀ» ¿­¶ó°í ½ÃŲ´Ù. param : À¯Àú return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, 1ÀÌ¸é ¼º°ø */ int api_ui_OpenMailBox(CDNUserBase* pUser); /* desc : À¯Àú¿¡°Ô ¹®Àå ÇØÁ¦¸¦ À§ÇØ ¹®ÀåÂ÷À» ¿­¶ó°í ½ÃŲ´Ù. param : À¯ÀúÀ妽º return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, 1ÀÌ¸é ¼º°ø */ int api_ui_OpenGlyphLift(CDNUserBase* pUser); /* desc : À¯Àú¿¡°Ô ºÐÇØÃ¢À» ¿­¶ó°í ½ÃŲ´Ù. param : À¯Àú return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, 1ÀÌ¸é ¼º°ø */ int api_ui_OpenDisjointItem(CDNUserBase* pUser); /* desc : À¯Àú¿¡°Ô ¾ÆÀÌÅÛ ÇÕ¼ºÃ¢À» ¿­¶ó°í ½ÃŲ´Ù. param : À¯Àú, ¾ÆÀÌÅÛ ÇÕ¼º »óÁ¡ ID return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, 1ÀÌ¸é ¼º°ø */ int api_ui_OpenCompoundItem(CDNUserBase* pUser, int nCompoundShopID); /* desc : À¯Àú¿¡°Ô ij½¬ ¾ÆÀÌÅÛ »óÁ¡À» ¿­¶ó°í ½ÃŲ´Ù. param : À¯Àú return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, 1ÀÌ¸é ¼º°ø */ int api_ui_OpenCashShop(CDNUserBase* pUser); /* desc : À¯Àú¿¡°Ô ±æµå °ü¸® UI ´ëÈ­»óÀÚ¸¦ ¿­¶ó°í ½ÃŲ´Ù. param : À¯Àú, ±æµå°ü¸®¹øÈ£ return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, 1ÀÌ¸é ¼º°ø ±æµå°ü¸®¹øÈ£> 0 : ±æµåâ¼³ 1 : ±æµåÇØ»ê 2 : ±æµåÅ»Åð 3 : ±æµåÆ÷ÀÎÆ® 4 : ±æµå·¹º§¾÷ */ int api_ui_OpenGuildMgrBox(CDNUserBase* pUser, int nGuildMgrNo); /* desc : ÀϺ» °¡Ã­Æù ´ÙÀ̾ó·Î±×¸¦ ¿¬´Ù. param : »ç¿ëµÉ °¡Ã­Æù À妽º return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, -2 ¸é ¼¥ÀÌ ¾øÀ½. 1ÀÌ¸é ¼º°ø, -3 ÀÌ¸é µðÆÄÀο¡ °É·¯Áü.. */ int api_ui_OpenGacha_JP(CDNUserBase* pUser, int nGachaShopID); /* desc : NPC ¼±¹°Çϱ⠴ÙÀ̾ó·Î±×¸¦ ¿¬´Ù. param : ´ëÈ­ÁßÀÎ Npc ID return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½. 1 ÀÌ¸é ¼º°ø. */ int api_ui_OpenGiveNpcPresent(CDNUserBase* pUser, int nNpcID); /* desc : ±âºÎ âÀ» ¿¬´Ù. param : return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½. 1ÀÌ¸é ¼º°ø. */ int api_ui_OpenDonation(CDNUserBase* pUser); /* desc : Àκ¥Å丮 âÀ» ¿¬´Ù. param : return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½. 1ÀÌ¸é ¼º°ø. */ int api_ui_OpenInventory(CDNUserBase* pUser); #if defined(PRE_ADD_OPEN_QUEST_TEXTURE_DIALOG) /* desc : ÅØ½ºÃÄ ´ÙÀ̾ó·Î±×¸¦ ¿¬´Ù param : À¯ÀúÀ妽º, ´ÙÀ̾ó·Î±× µ¥ÀÌÅÍ return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½. 1ÀÌ¸é ¼º°ø. */ int api_Open_Texture_Dialog(CDNUserBase* pUser, SCOpenTextureDialog data); /* desc : ÅØ½ºÃÄ ´ÙÀ̾ó·Î±×¸¦ ´Ý´Â´Ù param : À¯ÀúÀ妽º, ´ÙÀ̾ó·Î±× µ¥ÀÌÅÍ return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½. 1ÀÌ¸é ¼º°ø. */ int api_Close_Texture_Dialog(CDNUserBase* pUser, int nDlgID); #endif /* desc : À¯Àú¿¡°Ô ¸Þ¼¼Áö¸¦ Ãâ·ÂÇÏ°Ô ÇÑ´Ù. param : nType Àº ¸Þ¼¼Áö Ãâ·Â ŸÀÔ, CHATTYPE_NORMAL => 1, // ÀϹÝÀûÀÎ ´ëÈ­ CHATTYPE_PARTY => 2, // ÆÄƼ ´ëÈ­ CHATTYPE_PRIVATE => 3, // ±Ó¼Ó¸» CHATTYPE_GUILD => 4, // ±æµå ´ëÈ­ CHATTYPE_CHANNEL => 5, // °Å·¡/ä³Î ´ëÈ­ CHATTYPE_SYSTEM => 6, // ½Ã½ºÅÛ ¸Þ¼¼Áö nBaseStringIdx ´Â ±âº» ½ºÆ®¸µ ParamTable Àº °¢ Ű¿öµåÀÇ Ä¡È¯ Á¤º¸°¡ ´ã°ÜÀÖ´Â ·ç¾Æ Å×À̺í return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, -2 ŸÀÔÀÌ ¾øÀ½ -3 ¸Þ¼¼Áö°¡ ³Ê¹« ±è example : {%Hitter} °¡ {item:2}¸¦ ÀåÂøÇÑä {%Target}¸¦ ¶§·È½À´Ï´Ù. <-- uistring 6000¹ø "È÷ÅÍ_»ç¶÷" <-- uistring 6001¹ø "Ÿ°Ù_»ç¸¶±Í"<-- uistring 6002¹ø function grandmother_OnTalk(userObjID, npcObjID, npc_talk_index, npc_talk_target, questID) local TableParam = { // ¾Æ·¡¿Í °°ÀÌ {%Hitter} ¶ó´Â Ű¿öµå´Â uistring.xml ÀÇ 6001¹øÀ¸·Î ġȯ µÈ´Ù. { "{%Hitter}", 1, 6001 }, { "{%Target}", 1, 6002 }, }; // ¸¸¾à { "{%Hitter}", 2, 6001 }, ¶ó¸é 6001 À̶õ Á¤¼ö°¡ ¹®ÀÚ¿­ "6001" ·Î µÇ¾î ġȯµÈ´Ù. api_UserMessage(userObjID, 1, 6000, TableParam); end */ int api_user_UserMessage(CDNUserBase* pUser, int nType, int nBaseStringIdx, lua_tinker::table ParamTable); /* desc : À¯Àú¿¡°Ô ½Éº¼¾ÆÀÌÅÛÀ» Ãß°¡ÇÑ´Ù. param : À¯Àú, ½Éº¼¾ÆÀÌÅÛ¾ÆÀ̵ð, °¹¼ö return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, -2¸é ½ÇÆÐ 1ÀÌ¸é ¼º°ø */ int api_quest_AddSymbolItem(CDNUserBase* pUser, int nItemID, short wCount); /* desc : À¯Àú¿¡°Ô ½Éº¼¾ÆÀÌÅÛÀ» »èÁ¦ÇÑ´Ù. param : À¯Àú, ½Éº¼¾ÆÀÌÅÛ¾ÆÀ̵ð, °¹¼ö return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, -2 ¸é ½ÇÆÐ, 1ÀÌ¸é ¼º°ø */ int api_quest_DelSymbolItem(CDNUserBase* pUser, int nItemID, short wCount); /* desc : À¯Àú°¡ ½Éº¼ ¾ÆÀÌÅÛÀ» °¡Áö°í ÀÖ´ÂÁö È®ÀÎÇÑ´Ù. param : À¯Àú, ¾ÆÀÌÅÛÀ妽º, ¾ÆÀÌÅÛ Ä«¿îÆ® return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½ -2 => ¾ÆÀÌÅÛÀ» ãÀ»¼ö ¾øÀ½, -3 ¾ÆÀÌÅÛ °¹¼ö ºÎÁ·, 0 º¸´Ù Å©¸é true ( °¹¼ö¸¦ ¸®ÅÏ ) */ int api_quest_HasSymbolItem(CDNUserBase* pUser, int nItemIndex, int nItemCnt); /* desc : À¯Àú¿¡°Ô Äù½ºÆ® ¾ÆÀÌÅÛÀ» ³ÖÀ»¸¸ÇÑ Àκ¥¿©À¯°¡ ÀÖ´ÂÁö È®ÀÎÇÑ´Ù. param : À¯Àú, Äù½ºÆ® ¾ÆÀÌÅÛ À妽º, Äù½ºÆ® ¾ÆÀÌÅÛ Ä«¿îÆ® return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½ -2 => ¾ÆÀÌÅÛÀ» ãÀ»¼ö ¾øÀ½, -3 Àκ¥ ºÎÁ· */ int api_quest_CheckQuestInvenForAddItem(CDNUserBase* pUser, 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(CDNUserBase* pUser, lua_tinker::table ItemTable); /* desc : À¯Àú¿¡°Ô Äù½ºÆ® ¾ÆÀÌÅÛÀ» Ãß°¡ÇÑ´Ù. param : À¯Àú, Äù½ºÆ®¾ÆÀÌÅÛ¾ÆÀ̵ð, °¹¼ö, Äù½ºÆ® ¾ÆÀ̵ð return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, -2¸é ½ÇÆÐ 1ÀÌ¸é ¼º°ø */ int api_quest_AddQuestItem(CDNUserBase* pUser, int nItemID, short wCount, int nQuestID); /* desc : À¯Àú¿¡°Ô Äù½ºÆ® ¾ÆÀÌÅÛÀ» »èÁ¦ÇÑ´Ù. param : À¯Àú, Äù½ºÆ®¾ÆÀÌÅÛ¾ÆÀ̵ð, °¹¼ö, Äù½ºÆ® ¾ÆÀ̵ð return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, -2 ¸é ½ÇÆÐ, 1ÀÌ¸é ¼º°ø */ int api_quest_DelQuestItem(CDNUserBase* pUser, int nItemID, short wCount, int nQuestID); /* desc : À¯Àú¿¡°Ô Äù½ºÆ® ¾ÆÀÌÅÛÀ» ¸ðµÎ »èÁ¦ÇÑ´Ù. param : À¯Àú, Äù½ºÆ®¾ÆÀÌÅÛ¾ÆÀ̵ð return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, -2 ¸é ½ÇÆÐ, 1ÀÌ¸é ¼º°ø */ int api_quest_AllDelQuestItem(CDNUserBase* pUser, int nItemID); /* desc : À¯Àú°¡ Äù½ºÆ® ¾ÆÀÌÅÛÀ» °¡Áö°í ÀÖ´ÂÁö È®ÀÎÇÑ´Ù. param : À¯Àú, ¾ÆÀÌÅÛÀ妽º, ¾ÆÀÌÅÛ Ä«¿îÆ® return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½ -2 => ¾ÆÀÌÅÛÀ» ãÀ»¼ö ¾øÀ½, -3 ¾ÆÀÌÅÛ °¹¼ö ºÎÁ·, 0 º¸´Ù Å©¸é true ( °¹¼ö¸¦ ¸®ÅÏ ) */ int api_quest_HasQuestItem(CDNUserBase* pUser, int nItemIndex, int nItemCnt); /* desc : À¯Àú¿¡°Ô ±æµå »ý¼ºÃ¢À» ¶ç¿ì¶ó°í ¾Ë¸°´Ù. param : À¯ÀúÀ妽º return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, 1ÀÌ¸é ¼º°ø */ int api_ui_OpenGuildCreate(CDNUserBase* pUser); /* desc : À¯Àú¿¡°Ô Äù½ºÆ® º¸»óâÀ» ¶ç¿ì¶ó°í ¾Ë¸°´Ù. param : À¯ÀúÀ妽º, º¸»óÅ×À̺í, bActivate °¡ true ¸é °í¸¦¼ö ÀÖ°í ÀÌ¸é ±×³É º¸´Â ¿ëµµ´Â false·Î ¾´´Ù. return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, 1ÀÌ¸é ¼º°ø */ int api_ui_OpenQuestReward(CDNUserBase* pUser, int nRewardTableIndex, bool bActivate); /* desc : À¯Àú¿¡°Ô Äù½ºÆ® º¸»óÀ» ÇÑ´Ù. param : À¯Àú, º¸»óÅ×À̺í, Äù½ºÆ® ¾ÆÀ̵ð, º¸»óüũ¹øÈ£ return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, -2 À¯Àú¾ÆÀÌÅÛ°´Ã¼ ¿À·ù, -3 Àκ¥ ºÎÁ·, -4 À̸é Å×À̺íÀ» ãÀ»¼ö ¾øÀ½, -5 º¸»ó Á¶°Ç üũ ¿À·ù, 1 ÀÌ¸é ¼º°ø */ int api_quest_RewardQuestUser(CDNUserBase* pUser, int nRewardTableIndext, int nQuestID, int nRewardCheck); /* desc : ÇØ´ç À¯ÀúÀÇ ÇöÀç ¸Ê¹øÈ£¸¦ ±¸ÇÔ param : À¯Àú return : ¸Ê¹øÈ£ (1 ÀÌ»ó), ±× ¿Ü´Â ½ÇÆÐ ? (0 ÀÌÇÏ) */ int api_user_GetMapIndex(CDNUserBase* pUser); /* desc : ÇØ´ç À¯ÀúÀÇ ÃÖ±Ù ½ºÅ×ÀÌÁö ¿Ï·á ·©Å©¸¦ ±¸ÇÔ param : À¯ÀúÀ妽º return : ½ºÅ×ÀÌÁö ¿Ï·á ·©Å© (SSS : 0 / SS : 1 / S : 2 / A : 3 / B : 4 / C : 5 / D : 6), ±× ¿Ü´Â ½ÇÆÐ ? (±âº» -1) */ int api_user_GetLastStageClearRank(CDNUserBase* pUser); /* desc : À¯ÀúÀÇ ÇöÀç ¼ÒÁö±ÝÀ» È®ÀÎÇÑ´Ù. param : À¯Àú, üũÇÒ °ª return : -1 => À¯Àú¸¦ ãÀ» ¼ö ¾øÀ½, -2 => ¼ÒÁö±ÝÀÌ ºÎÁ·ÇÔ, 1 => ¼ÒÁö±ÝÀÌ ÃæºÐÇÔ */ int api_user_EnoughCoin(CDNUserBase* pUser, int nCoin); /* desc : À¯ÀúÀÇ ÇöÀç ¼ÒÁö±ÝÀ» È®ÀÎÇÑ´Ù. param : À¯Àú return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, 0 ÀÌ»ó => ÇöÀç ¼ÒÁö±Ý */ int api_user_GetCoin(CDNUserBase* pUser); /* desc : À¯ÀúÀÇ Æ¯Á¤ ¹Ì¼Ç Ãëµæ ¿©ºÎ¸¦ ¹Ýȯ param : À¯Àú, ¹Ì¼ÇÀ妽º (MISSIONMAX (ÇöÀç 5000 ¡æ 0 ~ 4999)) return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, 0 => ÇØ´ç ¹Ì¼Ç ¾øÀ½, 1 Æ÷ÇÔ ÀÌ¿Ü => ÇØ´ç ¹Ì¼Ç Á¸Àç */ int api_user_IsMissionGained(CDNUserBase* pUser, int nMissionIndex); /* desc : À¯ÀúÀÇ Æ¯Á¤ ¹Ì¼Ç ¿Ï·á ¿©ºÎ¸¦ ¹Ýȯ param : À¯Àú, ¹Ì¼ÇÀ妽º (MISSIONMAX (ÇöÀç 5000 ¡æ 0 ~ 4999)) return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, 0 => ÇØ´ç ¹Ì¼Ç ¾øÀ½, 1 Æ÷ÇÔ ÀÌ¿Ü => ÇØ´ç ¹Ì¼Ç Á¸Àç */ int api_user_IsMissionAchieved(CDNUserBase* pUser, int nMissionIndex); /* desc : À¯Àú°¡ â°í¿¡ ¾ÆÀÌÅÛÀ» °¡Áö°í ÀÖ´ÂÁö È®ÀÎÇÑ´Ù. param : À¯Àú, ¾ÆÀÌÅÛÀ妽º, ¾ÆÀÌÅÛ Ä«¿îÆ® return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½ -2 => ¾ÆÀÌÅÛÀ» ãÀ»¼ö ¾øÀ½, -3 ¾ÆÀÌÅÛ °¹¼ö ºÎÁ·, 0 º¸´Ù Å©¸é true ( °¹¼ö¸¦ ¸®ÅÏ ) */ int api_user_HasItemWarehouse(CDNUserBase* pUser, int nItemIndex, int nItemCnt); /* desc : À¯Àú°¡ Àåºñ¿¡ ¾ÆÀÌÅÛÀ» °¡Áö°í ÀÖ´ÂÁö È®ÀÎÇÑ´Ù. param : À¯Àú, ¾ÆÀÌÅÛÀ妽º return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½ -2 => ¾ÆÀÌÅÛÀ» ãÀ»¼ö ¾øÀ½, 1 Æ÷ÇÔ ±×¿Ü true */ int api_user_HasItemEquip(CDNUserBase* pUser, int nItemIndex); /* desc : À¯ÀúÀÇ ÇöÀç ±æµå Á÷±ÞÀ» ¹Ýȯ param : À¯Àú return : 0 : ±æµå ¾øÀ½ / 1 : ±æµåÀå / 2 : ºÎ±æµåÀå / 3 : ¼±ÀÓ±æµå¿ø / 4 : ÀϹݱæµå¿ø / 5 : ½ÅÀÔ±æµå¿ø */ int api_guild_GetGuildMemberRole(CDNUserBase* pUser); /* desc : À¯Àú°¡ °¡Áö°í ÀÖ´Â Äù½ºÆ®ÀÇ ¸Þ¸ðÀÇ Æ¯Á¤ À妽º¿¡ °ªÀ» 1 Áõ°¡½ÃÅ´ param : À¯Àú, Äù½ºÆ®¹øÈ£, ¸Þ¸ðÀ妽º return : Áõ°¡µÈ Äù½ºÆ® ¸Þ¸ð°ª (¿¡·¯ÀÏ °æ¿ì¿¡´Â LONG_MIN ¹Ýȯ) */ int api_quest_IncQuestMemo(CDNUserBase* pUser, int nQuestID, char nMemoIndex); /* desc : À¯Àú°¡ °¡Áö°í ÀÖ´Â Äù½ºÆ®ÀÇ ¸Þ¸ðÀÇ Æ¯Á¤ À妽º¿¡ °ªÀ» 1 °¨¼Ò½ÃÅ´ param : À¯Àú, Äù½ºÆ®¹øÈ£, ¸Þ¸ðÀ妽º return : Áõ°¡µÈ Äù½ºÆ® ¸Þ¸ð°ª (¿¡·¯ÀÏ °æ¿ì¿¡´Â LONG_MAX ¹Ýȯ) */ int api_quest_DecQuestMemo(CDNUserBase* pUser, int nQuestID, char nMemoIndex); /* desc : À¯Àú¿¡°Ô ƯÁ¤ ÀüÁ÷ Á÷¾÷À» ÁöÁ¤ param : À¯Àú, º¯°æ ÀüÁ÷ Á÷¾÷ return : -1 : À¯Àú¸¦ ãÀ»¼ö ¾øÀ½ / -2 : ¾ø´Â ÀüÁ÷ ¹øÈ£ÀÓ / -3 : ÀüÁ÷ ºÒ°¡ Á¶°ÇÀÓ / 0 : ÀÌ¹Ì °°Àº ÀüÁ÷ Á÷¾÷ÀÓ / 1 : ÀüÁ÷ Á÷¾÷ º¯°æ ¼º°ø */ int api_user_SetUserJobID(CDNUserBase* pUser, int nJobID); /* desc : À¯ÀúÀÇ ÀüÁ÷ Á÷¾÷ÀÌ Æ¯Á¤ ÀüÁ÷ °è¿­¿¡ ÀÖ´ÂÁö È®ÀÎ param : À¯Àú, ¼±Çà ÀüÁ÷ Á÷¾÷ return : -1 : À¯Àú¸¦ ãÀ»¼ö ¾øÀ½ / 0 : °°Àº °è¿­ÀÌ ¾Æ´Ô / 1 : °°Àº °è¿­ÀÌ ¸ÂÀ½ */ int api_user_IsJobInSameLine(CDNUserBase* pUser, int nBaseJobID); /* desc : À¯Àú°¡ ij½¬ ¾ÆÀÌÅÛÀ» °¡Áö°í ÀÖ´ÂÁö È®ÀÎÇÑ´Ù. param : À¯Àú, ij½¬¾ÆÀÌÅÛÀ妽º, ¾ÆÀÌÅÛ Ä«¿îÆ® return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½ -2 => ¾ÆÀÌÅÛÀ» ãÀ»¼ö ¾øÀ½, -3 ¾ÆÀÌÅÛ °¹¼ö ºÎÁ·, 0 º¸´Ù Å©¸é true ( °¹¼ö¸¦ ¸®ÅÏ ) */ int api_user_HasCashItem(CDNUserBase* pUser, int nItemIndex, int nItemCnt); /* desc : À¯Àú°¡ Àåºñ¿¡ ij½¬ ¾ÆÀÌÅÛÀ» °¡Áö°í ÀÖ´ÂÁö È®ÀÎÇÑ´Ù. param : À¯Àú, ij½¬¾ÆÀÌÅÛÀ妽º return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½ -2 => ¾ÆÀÌÅÛÀ» ãÀ»¼ö ¾øÀ½, 1 Æ÷ÇÔ ±×¿Ü true */ int api_user_HasCashItemEquip(CDNUserBase* pUser, int nItemIndex); /* desc : ƯÁ¤ Ä«¿îÆÃ ŸÀÔ, ID ¿¡ ´ëÇØ¼­ ÀÓÀÇ·Î Ä«¿îÆÃÀ» Áõ°¡½ÃŲ´Ù. param : À¯Àú, Ä«¿îÆÃÇÒ Å¸ÀÔ (CountingType_MyMonsterKill = 1, CountingType_AllMonsterKill = 2, CountingType_Item = 3), Ä«¿îÆÃÇÒ °ÍÀÇ À妽º (¾ÆÀÌÅÛ ID, ¸ó½ºÅÍ ID µîµî) return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, 1 => ¼º°ø */ int api_quest_IncCounting(CDNUserBase* pUser, int nCountingType, int nCountingIndex); /* desc : À¯Àú°¡ ÁøÇà °¡´É ÃÖ´ë Äù½ºÆ® ¼ö¿¡ µµ´ÞÇÏ¿´´ÂÁö ¿©ºÎ¸¦ ¹ÝȯÇÑ´Ù. param : À¯Àú, Äù½ºÆ®À妽º return : -1 : À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, 1 : ÃÖ´ë Äù½ºÆ® ¼ö¿¡ µµ´Þ ÇÔ, ±×¿Ü : ¾Æ´Ô */ int api_quest_IsPlayingQuestMaximum(CDNUserBase* pUser); /* desc : ƯÁ¤ Äù½ºÆ®¸¦ °­Á¦ ¿Ï·á ½ÃŲ´Ù. (ÁøÇà ÁßÀÌ ¾Æ´Ñ Äù½ºÆ®´Â Ãß°¡ÇÏ¿© ¿Ï·á) param : À¯Àú, Äù½ºÆ®À妽º, Äù½ºÆ® ÄÚµå (0:ÀÏ¹Ý / 1:½Ã°£Á¦), ¸¶Å·¿©ºÎ (1:¸¶Å·/0:¾ÈÇÔ), »èÁ¦¿©ºÎ (1:»èÁ¦/0:¾ÊÇÔ), ¹Ýº¹¿©ºÎ (1:¹Ýº¹/0:¾ÈÇÔ) return : -1 : À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, 1 : ÃÖ´ë Äù½ºÆ® ¼ö¿¡ µµ´Þ ÇÔ, ±×¿Ü : ¾Æ´Ô */ int api_quest_ForceCompleteQuest(CDNUserBase* pUser, int nQuestID, int nQuestCode, int bDoMark, int bDoDelete, int bDoRepeat); /* desc : NPC È£ÀÇPoint ¸¦ ¾ò¾î¿Â´Ù. param : À¯Àú, NpcID return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, -2 => ½Ã½ºÅÛ¿¡·¯ ±×¿Ü => ¸®Åϰª */ int api_npc_GetFavorPoint(CDNUserBase* pUser, int iNpcID); /* desc : NPC ¾ÇÀÇPoint ¸¦ ¾ò¾î¿Â´Ù. param : À¯Àú, NpcID return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, -2 => ½Ã½ºÅÛ¿¡·¯ ±×¿Ü => ¸®Åϰª */ int api_npc_GetMalicePoint(CDNUserBase* pUser, int iNpcID); /* desc : NPC È£ÀÇPercent ¸¦ ¾ò¾î¿Â´Ù. param : À¯Àú, NpcID return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, -2 => ½Ã½ºÅÛ¿¡·¯ ±×¿Ü => ¸®Åϰª */ int api_npc_GetFavorPercent(CDNUserBase* pUser, int iNpcID); /* desc : NPC ¾ÇÀÇPercent ¸¦ ¾ò¾î¿Â´Ù. param : À¯Àú, NpcID return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, -2 => ½Ã½ºÅÛ¿¡·¯ ±×¿Ü => ¸®Åϰª */ int api_npc_GetMalicePercent(CDNUserBase* pUser, int iNpcID); /* desc : NPC È£ÀÇPoint ¸¦ °¡°¨ÇÑ´Ù. param : À¯Àú, NpcID, °¡°¨°ª(- ³ÖÀ¸¸é °¨¼ÒÇÔ) return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, -2 => ½Ã½ºÅÛ¿¡·¯ ±×¿Ü => ¸®Åϰª */ int api_npc_AddFavorPoint(CDNUserBase* pUser, int iNpcID, int val); /* desc : NPC ¾ÇÀÇPoint ¸¦ °¡°¨ÇÑ´Ù. param : À¯Àú, NpcID, °¡°¨°ª(- ³ÖÀ¸¸é °¨¼ÒÇÔ) return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, -2 => ½Ã½ºÅÛ¿¡·¯ ±×¿Ü => ¸®Åϰª */ int api_npc_AddMalicePoint(CDNUserBase* pUser, int iNpcID, int val); /* desc : NPC ¿¡°Ô º¸³¾ ¼±¹° ¼±ÅÃÇÑ Á¤º¸¸¦ ¼­¹ö·Î º¸³»¶ó°í Ŭ¶óÀÌ¾ðÆ®¿¡°Ô ¿äû. param : À¯Àú, NpcID return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, -2 => ½Ã½ºÅÛ¿¡·¯ ±×¿Ü => ¸®Åϰª */ int api_npc_SendSelectedPresent(CDNUserBase* pUser, int iNpcID); /* desc : NPC ¿¡°Ô º¸³¾ ¼±¹° ¼±ÅÃÇÑ Á¤º¸¸¦ ¼­¹ö·Î º¸³»¶ó°í Ŭ¶óÀÌ¾ðÆ®¿¡°Ô ¿äû. param : À¯Àú, NpcID return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, -2 => ½Ã½ºÅÛ¿¡·¯ ±×¿Ü => ¸®Åϰª */ int api_npc_Rage(CDNUserBase* pUser, int iNpcID); /* desc : NPC ¿¡°Ô º¸³¾ ¼±¹° ¼±ÅÃÇÑ Á¤º¸¸¦ ¼­¹ö·Î º¸³»¶ó°í Ŭ¶óÀÌ¾ðÆ®¿¡°Ô ¿äû. param : À¯Àú, NpcID return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, -2 => ½Ã½ºÅÛ¿¡·¯ ±×¿Ü => ¸®Åϰª */ int api_npc_Disappoint(CDNUserBase* pUser, int iNpcID); /* desc : ƯÁ¤ »ç¿ëÀÚÀÇ Àüü ½ºÅ³À» ¸®¼Â½ÃŲ´Ù. param : À¯Àú return : -1 : À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, 1 : ¼º°ø */ int api_user_ResetSkill(CDNUserBase* pUser); /* desc : À¯Àú°¡ °¡Áø Àåºñ ¾ÆÀÌÅÛÀ» ¼ö¸®Çϰí, ¼ö¸®ºñ¿ëÀ» Â÷°¨ÇÕ´Ï´Ù. param : À¯Àú, Àüü¼ö¸® À¯¹«(1-Àüü¼ö¸®, 0-ÀåÂøÇѾÆÀÌÅÛ) return : -1 : À¯Àú¸¦ ãÀ»¼ö ¾øÀ½ / 0 : ¼ö¸®ÇÒ ¾ÆÀÌÅÛ ¾øÀ½ / 1 : ¼ÒÁö±Ý ºÎÁ· / 2 : ¾ÆÀÌÅÛ ¼ö¸® ¿Ï·á */ int api_user_RepairItem(CDNUserBase* pUser, int iAllRepair); /* desc : À¯Àú¿¡°Ô °­È­À̵¿Ã¢À» ¿­¶ó°í ½ÃŲ´Ù. param : À¯Àú return : -1 => À¯Àú¸¦ ãÀ»¼ö ¾øÀ½, 1ÀÌ¸é ¼º°ø */ int api_ui_OpenExchangeEnchant(CDNUserBase* pUser); /* desc : ÇØ´ç ¸ÊÀÌ ´ÝÇôÀÖ´ÂÁö È®ÀÎÇÑ´Ù. param : À¯Àú, ¸Ê À妽º return : 1 ÀÌ¸é ¿ÀÇÂ, 0 À̸é Ŭ·ÎÁî */ int api_env_CheckCloseGateByTime(int iMapID); /* desc : ¿ø°Ý Äù½ºÆ® ¿Ï·á ½ºÅÜÀ» µî·Ï ÇÑ´Ù param : Äù½ºÆ®À妽º, ½ºÅÜ À妽º */ void api_quest_SetRemoteComplete (int nQuestID, int nStep); /* desc : ¿ùµå¹öÇÁ ÁÙ¼ö ÀÖ´ÂÁö üũ param : ¹öÇÁ ¾ÆÀÌÅÛ¾ÆÀ̵ð */ int api_quest_WorldBuffCheck(int nItemID); /* desc : ¿ùµå¹öÇÁ¸¦ ÁÜ param : ¹öÇÁ ¾ÆÀÌÅÛ¾ÆÀ̵ð */ int api_quest_ApplyWorldBuff(CDNUserBase* pUser, int nItemID, int nMapIdx); //rlkt_test int api_Open_ChangeJobDialog(CDNUserBase* pUser); };