DragonNest/Server/DNGameServer/DNGameServerScriptAPI.h

1064 lines
82 KiB
C
Raw Normal View History

2024-12-20 16:56:44 +08:00
<EFBFBD><EFBFBD>#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[]);
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD> h<EFBFBD><EFBFBD>|<EFBFBD> <EFBFBD><EFBFBD>D<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>]<EFBFBD>\<EFBFBD><EFBFBD><EFBFBD>.
void DefAllAPIFunc(lua_State* pLuaState);
/*
desc : <EFBFBD><EFBFBD>L<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>\<EFBFBD> <EFBFBD>Ű<EFBFBD>\<EFBFBD><EFBFBD><EFBFBD>.
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, NPCx<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD>l<EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD>l<EFBFBD> <EFBFBD>|<EFBFBD><EFBFBD>
return : void
*/
void api_npc_NextTalk(CDNGameRoom *pRoom, UINT nUserSessionID, UINT nNpcObjectID, const char* szTalkIndex, const char* szTargetFile);
/*
desc : <EFBFBD><EFBFBD>L<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\<EFBFBD> <EFBFBD>Ű<EFBFBD>\<EFBFBD><EFBFBD><EFBFBD>.
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, NPCx<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD>l<EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD>l<EFBFBD> <EFBFBD>|<EFBFBD><EFBFBD>
return : void
*/
void api_npc_NextScript(CDNGameRoom *pRoom, UINT nUserSessionID, UINT nNpcObjectID, const char* szTalkIndex, const char* szTargetFile);
/*
desc : <EFBFBD><EFBFBD><EFBFBD> <EFBFBD>|<EFBFBD>T<EFBFBD>0<EFBFBD>|<EFBFBD> 8<EFBFBD><EFBFBD>\<EFBFBD><EFBFBD><EFBFBD>(<EFBFBD>¸<EFBFBD><EFBFBD><EFBFBD>).
param : <EFBFBD>|<EFBFBD>T<EFBFBD>0Ѥ<EFBFBD>, <EFBFBD>|<EFBFBD>T<EFBFBD>0<EFBFBD>8<EFBFBD><EFBFBD><EFBFBD>X<EFBFBD> x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>
return : -1 <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>, -2 <EFBFBD>|<EFBFBD>T<EFBFBD>0<EFBFBD> /<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> T<EFBFBD>t<EFBFBD><EFBFBD><EFBFBD> 8<EFBFBD><EFBFBD>`<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>. 1 t<EFBFBD>t<EFBFBD> 1<EFBFBD><EFBFBD><EFBFBD>
sample :
Ȕ<EFBFBD> {%color} <EFBFBD><EFBFBD>D<EFBFBD> <EFBFBD><EFBFBD>D<EFBFBD>i<EFBFBD>Ȳ<EFBFBD><EFBFBD>. |<EFBFBD><EFBFBD><EFBFBD> 8<EFBFBD><EFBFBD><EFBFBD>D<EFBFBD> ̹<EFBFBD><EFBFBD>L<EFBFBD>.
api_npc_SetParamString("{%color}, math.random(2) ); t<><74><EFBFBD><EFBFBD><EFBFBD><<3C>\<EFBFBD> ̹䴴<CCB9><00><><EFBFBD>.
1@<EFBFBD> TalkParamTable.xls <EFBFBD><EFBFBD> 1 : h<EFBFBD><EFBFBD>, 2: ӑ<EFBFBD> 0<EFBFBD>\<EFBFBD> 0<EFBFBD>]<EFBFBD> <EFBFBD><EFBFBD>ňǴ<EFBFBD>|<EFBFBD>\<EFBFBD><EFBFBD><EFBFBD>.
<EFBFBD><EFBFBD>X<EFBFBD>: api_npc_SetParamString <<EFBFBD>\<EFBFBD> 8<EFBFBD><EFBFBD>\<EFBFBD> <EFBFBD>|<EFBFBD>T<EFBFBD>0є<EFBFBD> api_npc_NextTalk 8֜<EFBFBD><EFBFBD><EFBFBD> clear <EFBFBD><EFBFBD><EFBFBD>\<EFBFBD> api_npc_NextTalk 8֜<EFBFBD><EFBFBD><EFBFBD><EFBFBD> 8<EFBFBD><EFBFBD>\<EFBFBD><EFBFBD><EFBFBD>.
*/
int api_npc_SetParamString(CDNGameRoom *pRoom, UINT nUserObjectID, const char* szParamKey, int nParamID);
/*
desc : <EFBFBD><EFBFBD><EFBFBD> <EFBFBD>|<EFBFBD>T<EFBFBD>0<EFBFBD>|<EFBFBD> 8<EFBFBD><EFBFBD>\<EFBFBD><EFBFBD><EFBFBD>(<EFBFBD><EFBFBD>).
param : <EFBFBD>|<EFBFBD>T<EFBFBD>0Ѥ<EFBFBD>, <EFBFBD><EFBFBD><EFBFBD>
return : -1 <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>, -2 <EFBFBD>|<EFBFBD>T<EFBFBD>0<EFBFBD> /<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> T<EFBFBD>t<EFBFBD><EFBFBD><EFBFBD> 8<EFBFBD><EFBFBD>`<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>. 1 t<EFBFBD>t<EFBFBD> 1<EFBFBD><EFBFBD><EFBFBD>
sample :
Ȕ<EFBFBD> {%age} <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>´Ŕ<EFBFBD>. |<EFBFBD><EFBFBD><EFBFBD> 8<EFBFBD><EFBFBD><EFBFBD>D<EFBFBD> ̹<EFBFBD><EFBFBD>L<EFBFBD>.
api_npc_SetParamInt("{%age}, math.random(30)+40 ); t<><74><EFBFBD><EFBFBD><EFBFBD><<3C>\<EFBFBD> ̹䴴<CCB9><00><><EFBFBD>.
<EFBFBD><EFBFBD>X<EFBFBD>: api_npc_SetParamInt <<EFBFBD>\<EFBFBD> 8<EFBFBD><EFBFBD>\<EFBFBD> <EFBFBD>|<EFBFBD>T<EFBFBD>0є<EFBFBD> api_npc_NextTalk 8֜<EFBFBD><EFBFBD><EFBFBD> clear <EFBFBD><EFBFBD><EFBFBD>\<EFBFBD> api_npc_NextTalk 8֜<EFBFBD><EFBFBD><EFBFBD><EFBFBD> 8<EFBFBD><EFBFBD>\<EFBFBD><EFBFBD><EFBFBD>.
*/
int api_npc_SetParamInt(CDNGameRoom *pRoom, UINT nUserObjectID, const char* szParamKey, int nValue);
/*
desc : \<EFBFBD><EFBFBD><EFBFBD>|<EFBFBD> <EFBFBD><EFBFBD>4<EFBFBD><EFBFBD><EFBFBD>.
param : \<EFBFBD><EFBFBD><EFBFBD> <EFBFBD>¸<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ȯD<EFBFBD> <EFBFBD>t<EFBFBD> \n D<EFBFBD> <EFBFBD><EFBFBD>h<EFBFBD>`Ճ<EFBFBD>.
return : void
*/
void api_log_AddLog(CDNGameRoom *pRoom, const char* szLog);
/*
desc : <EFBFBD><EFBFBD><EFBFBD>Ō<EFBFBD> \<EFBFBD><EFBFBD><EFBFBD>|<EFBFBD> <EFBFBD><EFBFBD>4<EFBFBD><EFBFBD><EFBFBD>. <EFBFBD><EFBFBD>D<EFBFBD><EFBFBD>T<EFBFBD>8<EFBFBD><EFBFBD><EFBFBD>\<EFBFBD> ȡ<EFBFBD>t<EFBFBD> <EFBFBD>.
param : \<EFBFBD><EFBFBD><EFBFBD> <EFBFBD>¸<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ȯD<EFBFBD> <EFBFBD>t<EFBFBD> \n D<EFBFBD> <EFBFBD><EFBFBD>h<EFBFBD>`Ճ<EFBFBD>.
return : void
*/
void api_log_UserLog(CDNGameRoom *pRoom, UINT nUserObjectID, const char* szLog);
/*
desc : <EFBFBD><EFBFBD><EFBFBD>Ō<EFBFBD> Ф¸<EFBFBD> <EFBFBD>(<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>|<EFBFBD> D<EFBFBD><EFBFBD><<EFBFBD>\<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
param :
return : void
*/
void api_quest_DumpQuest(CDNGameRoom *pRoom, UINT nUserObjectID);
/*
desc : <EFBFBD><EFBFBD><EFBFBD>Ō<EFBFBD> Ф¸<EFBFBD>|<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> \<EFBFBD><EFBFBD><EFBFBD>.
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, Ф¸<EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, Ф¸<EFBFBD> <EFBFBD>Ѕ<EFBFBD> QuestType_SubQuest = 1, QuestType_MainQuest = 2,
return : 1 : 1<EFBFBD><EFBFBD><EFBFBD>, -1 : <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>, -2 : <EFBFBD><EFBFBD><EFBFBD> Ф¸<EFBFBD>|<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> J<EFBFBD>L<EFBFBD>
*/
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 : <EFBFBD><EFBFBD><EFBFBD>Ō<EFBFBD> Ф¸<EFBFBD>|<EFBFBD> D<EFBFBD≯ <EFBFBD>¨<EFBFBD><EFBFBD><EFBFBD>.
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, Ф¸<EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, ֬<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ǔ<EFBFBD> Ф¸<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ɸƃ<EFBFBD>x<EFBFBD><EFBFBD><EFBFBD> (H<EFBFBD><EFBFBD>ɰ<EFBFBD>t<EFBFBD> <EFBFBD><EFBFBD>t<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>̹ <EFBFBD><EFBFBD><EFBFBD> <EFBFBD>¨<EFBFBD><EFBFBD><EFBFBD>.)
return : -1 <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>, -2 Ф¸<EFBFBD><EFBFBD> <EFBFBD>ɉ<EFBFBD><EFBFBD>t<EFBFBD> D<EFBFBD>ز
*/
int api_quest_CompleteQuest(CDNGameRoom *pRoom, UINT nUserObjectID, int nQuestID, bool bDelPlayList);
/*
desc : <EFBFBD><EFBFBD><EFBFBD>Ō<EFBFBD> Ф¸<EFBFBD>|<EFBFBD> D<EFBFBD≯<EFBFBD><EFBFBD>]<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD>¨<EFBFBD><EFBFBD><EFBFBD>. ( DB <EFBFBD><EFBFBD> 0<EFBFBD>]<EFBFBD>!! )
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, Ф¸<EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>
return : -1 <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>, -2 Ф¸<EFBFBD><EFBFBD> <EFBFBD>ɉ<EFBFBD><EFBFBD>t<EFBFBD> D<EFBFBD>ز
*/
int api_quest_MarkingCompleteQuest(CDNGameRoom *pRoom, UINT nUserObjectID, int nQuestID);
/*
desc : D<EFBFBD≯<EFBFBD><EFBFBD>]<EFBFBD><EFBFBD><EFBFBD> D<EFBFBD≯ȹ<EFBFBD><EFBFBD>t<EFBFBD> <EFBFBD><EFBFBD>ňǔ<EFBFBD> Ф¸<EFBFBD>x<EFBFBD><EFBFBD><EFBFBD>?
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, Ф¸<EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>
return : -1 <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>, 1 t<EFBFBD>t<EFBFBD> D<EFBFBD≯ȹ<EFBFBD><EFBFBD><EFBFBD> Ф¸<EFBFBD>, 0 t<EFBFBD>t<EFBFBD> D<EFBFBD≯ȹ<EFBFBD><EFBFBD> H<EFBFBD>(<EFBFBD>
*/
int api_quest_IsMarkingCompleteQuest(CDNGameRoom *pRoom, UINT nUserObjectID, int nQuestID);
/*
desc : <EFBFBD><EFBFBD><EFBFBD> Ф¸<EFBFBD>|<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ǔ<EFBFBD><EFBFBD><EFBFBD> U<EFBFBD>x<EFBFBD>\<EFBFBD><EFBFBD><EFBFBD>.
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, Ф¸<EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>
return : -1 <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>, -2 <EFBFBD><EFBFBD><EFBFBD> Ф¸<EFBFBD>|<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> J<EFBFBD>L<EFBFBD>, -1 <EFBFBD><EFBFBD><EFBFBD><EFBFBD> l<EFBFBD>t<EFBFBD> Ф¸<EFBFBD>|<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD> ( Ф¸<EFBFBD> <EFBFBD><EFBFBD>]<EFBFBD>D<EFBFBD> <EFBFBD><EFBFBD>4<EFBFBD> )
*/
int api_quest_UserHasQuest(CDNGameRoom *pRoom, UINT nUserObjectID, int nQuestID);
/*
desc : <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>X<EFBFBD> Ф¸<EFBFBD>|<EFBFBD> <EFBFBD>ɉ<EFBFBD><EFBFBD>x<EFBFBD><EFBFBD><EFBFBD> U<EFBFBD>x<EFBFBD>\<EFBFBD><EFBFBD><EFBFBD>.
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, Ф¸<EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>
return : -1 <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>, <EFBFBD><EFBFBD>x<EFBFBD><EFBFBD><EFBFBD> ֬<EFBFBD> <EFBFBD>ɉ<EFBFBD><EFBFBD>x<EFBFBD> Ф¸<EFBFBD> /<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>4<EFBFBD>..
*/
int api_quest_GetPlayingQuestCnt(CDNGameRoom *pRoom, UINT nUserObjectID);
/*
desc : npc x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>|<EFBFBD> <EFBFBD><EFBFBD>4<EFBFBD>\<EFBFBD><EFBFBD><EFBFBD>.
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, NpcObjId ( npc x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>@<EFBFBD> npcobject x<EFBFBD>q<EFBFBD><EFBFBD>”<EFBFBD> <EFBFBD><EFBFBD>x<EFBFBD> <EFBFBD><EFBFBD>. )
return : -1 <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>, -2 npc |<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>, <EFBFBD><EFBFBD>x<EFBFBD><EFBFBD>Ŕ<EFBFBD> npcx<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>
*/
int api_npc_GetNpcIndex(CDNGameRoom *pRoom, UINT nUserObjectID, UINT nNpcObjID);
/*
desc : <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ǔ<EFBFBD> Ф¸<EFBFBD>X<EFBFBD> <EFBFBD><EFBFBD>]<EFBFBD>, <EFBFBD><EFBFBD> <EFBFBD><EFBFBD>]<EFBFBD>D<EFBFBD> 8<EFBFBD><EFBFBD>\<EFBFBD><EFBFBD><EFBFBD>.
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, Ф¸<EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD> <EFBFBD><EFBFBD>]<EFBFBD>
return : -1 => <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD> -2 => <EFBFBD><EFBFBD><EFBFBD> Ф¸<EFBFBD>|<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> J<EFBFBD>L<EFBFBD>. -3 <EFBFBD><EFBFBD> <EFBFBD><EFBFBD>]<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>|<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>Ũ<EFBFBD>. 1<EFBFBD><EFBFBD><EFBFBD>|<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1D<EFBFBD> <EFBFBD><EFBFBD>4<EFBFBD>
*/
int api_quest_SetQuestStepAndJournalStep(CDNGameRoom *pRoom, UINT nUserObjectID, int nQuestID, short nQuestStep, int nJournalStep);
/*
desc : <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ǔ<EFBFBD> Ф¸<EFBFBD>X<EFBFBD> Ф¸<EFBFBD> <EFBFBD><EFBFBD>]<EFBFBD>D<EFBFBD> 8<EFBFBD><EFBFBD>\<EFBFBD><EFBFBD><EFBFBD>.
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, Ф¸<EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, Ф¸<EFBFBD> <EFBFBD><EFBFBD>]<EFBFBD>
return : -1 => <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD> -2 => <EFBFBD><EFBFBD><EFBFBD> Ф¸<EFBFBD>|<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> J<EFBFBD>L<EFBFBD>. 1<EFBFBD><EFBFBD><EFBFBD>|<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1D<EFBFBD> <EFBFBD><EFBFBD>4<EFBFBD>
*/
int api_quest_SetQuestStep(CDNGameRoom *pRoom, UINT nUserObjectID, int nQuestID, short nQuestStep);
/*
desc : <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ǔ<EFBFBD> Ф¸<EFBFBD>X<EFBFBD> Ф¸<EFBFBD> <EFBFBD><EFBFBD>]<EFBFBD>D<EFBFBD> <EFBFBD>Ŕ<EFBFBD><EFBFBD><EFBFBD>.
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, Ф¸<EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>
return : -1 => <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD> -2 => <EFBFBD><EFBFBD><EFBFBD> Ф¸<EFBFBD>|<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> J<EFBFBD>L<EFBFBD>., -1 <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> ֬<EFBFBD> Ф¸<EFBFBD>X<EFBFBD> <EFBFBD><EFBFBD>]<EFBFBD>
*/
int api_quest_GetQuestStep(CDNGameRoom *pRoom, UINT nUserObjectID, int nQuestID);
/*
desc : <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ǔ<EFBFBD> Ф¸<EFBFBD>X<EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD>]<EFBFBD>D<EFBFBD> 8<EFBFBD><EFBFBD>\<EFBFBD><EFBFBD><EFBFBD>.
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, Ф¸<EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD> <EFBFBD><EFBFBD>]<EFBFBD>
return : -1 => <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD> -2 => <EFBFBD><EFBFBD><EFBFBD> Ф¸<EFBFBD>|<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> J<EFBFBD>L<EFBFBD>. -3 <EFBFBD><EFBFBD> <EFBFBD><EFBFBD>]<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>|<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>Ũ<EFBFBD>. 1<EFBFBD><EFBFBD><EFBFBD>|<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1D<EFBFBD> <EFBFBD><EFBFBD>4<EFBFBD>
*/
int api_quest_SetJournalStep(CDNGameRoom *pRoom, UINT nUserObjectID, int nQuestID, int nJournalStep);
/*
desc : <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ǔ<EFBFBD> Ф¸<EFBFBD>X<EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD>]<EFBFBD>D<EFBFBD> <EFBFBD>Ŕ<EFBFBD><EFBFBD><EFBFBD>.
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, Ф¸<EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>
return : -1 => <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD> -2 => <EFBFBD><EFBFBD><EFBFBD> Ф¸<EFBFBD>|<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> J<EFBFBD>L<EFBFBD>., -1 <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> ֬<EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD>]<EFBFBD>
*/
int api_quest_GetJournalStep(CDNGameRoom *pRoom, UINT nUserObjectID, int nQuestID);
/*
desc : <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ǔ<EFBFBD> Ф¸<EFBFBD>X<EFBFBD> T<EFBFBD><EFBFBD><EFBFBD>X<EFBFBD> <EFBFBD><EFBFBD><EFBFBD> x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>D<EFBFBD> 8<EFBFBD><EFBFBD>\<EFBFBD><EFBFBD><EFBFBD>.
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, T<EFBFBD><EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, T<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
return : -1 => <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>. -2 => <EFBFBD><EFBFBD><EFBFBD> Ф¸<EFBFBD>|<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> J<EFBFBD>L<EFBFBD>. -3 T<EFBFBD><EFBFBD><EFBFBD> x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>|<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>Ũ<EFBFBD>. 1<EFBFBD><EFBFBD><EFBFBD>|<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1D<EFBFBD> <EFBFBD><EFBFBD>4<EFBFBD>
*/
int api_quest_SetQuestMemo(CDNGameRoom *pRoom, UINT nUserObjectID, int nQuestID, char nMemoIndex, int iVal);
/*
desc : <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ǔ<EFBFBD> Ф¸<EFBFBD>X<EFBFBD> T<EFBFBD><EFBFBD><EFBFBD>X<EFBFBD> <EFBFBD><EFBFBD><EFBFBD> x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>X<EFBFBD> <EFBFBD>D<EFBFBD> <EFBFBD>Ŕ<EFBFBD><EFBFBD><EFBFBD>.
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, T<EFBFBD><EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>
return : -1 => <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>. -2 => <EFBFBD><EFBFBD><EFBFBD> Ф¸<EFBFBD>|<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> J<EFBFBD>L<EFBFBD>. -3 T<EFBFBD><EFBFBD><EFBFBD> x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>|<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>Ũ<EFBFBD>. -1 <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> T<EFBFBD><EFBFBD><EFBFBD> x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>X<EFBFBD> <EFBFBD>
*/
int api_quest_GetQuestMemo(CDNGameRoom *pRoom, UINT nUserObjectID, int nQuestID, char nMemoIndex);
/*
desc : <EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD> <EFBFBD><EFBFBD>p<EFBFBD><EFBFBD><EFBFBD>, D<EFBFBD>t<EFBFBD>\<EFBFBD> <EFBFBD>Ŕ<EFBFBD> /<EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>|<EFBFBD> 8<EFBFBD><EFBFBD><EFBFBD> h<EFBFBD><EFBFBD> t<EFBFBD><EFBFBD><EFBFBD>.
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>,
Ф¸<EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>,
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 8<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>o<EFBFBD>(0<EFBFBD><EFBFBD>0<EFBFBD> 4L<EFBFBD><EFBFBD><EFBFBD> 5<EFBFBD>X<EFBFBD> 8<EFBFBD>Ӭ<EFBFBD>o<EFBFBD>t<EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>) ,
<EFBFBD><EFBFBD>`<EFBFBD> <EFBFBD>Ѕ<EFBFBD>( CountingType_MyMonsterKill = 1, CountingType_AllMonsterKill = 2, CountingType_Item = 3, CountingType_SymbolItem = 4),
<EFBFBD><EFBFBD>`<EFBFBD> <EFBFBD><EFBFBD>X<EFBFBD> x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>,
<EFBFBD><EFBFBD>`<EFBFBD> /<EFBFBD><EFBFBD>
return : -1 => <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD> -2 => <EFBFBD><EFBFBD><EFBFBD> Ф¸<EFBFBD>|<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> J<EFBFBD>L<EFBFBD>. -3 => <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>8<EFBFBD>Ӭ<EFBFBD>o<EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> -4 => <EFBFBD><EFBFBD><EFBFBD>Ѕ<EFBFBD> or <EFBFBD>П<EFBFBD>tδƸ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>
example:
api_quest_SetCountingInfo( <EFBFBD><EFBFBD>D<EFBFBD>t<EFBFBD><EFBFBD>, Ф¸<EFBFBD>D<EFBFBD>t<EFBFBD><EFBFBD>, 0, CountingType_MyMonsterKill, 10001, 10);
api_quest_SetCountingInfo( <EFBFBD><EFBFBD>D<EFBFBD>t<EFBFBD><EFBFBD>, Ф¸<EFBFBD>D<EFBFBD>t<EFBFBD><EFBFBD>, 1, CountingType_MyMonsterKill, 10002, 5);
api_quest_SetCountingInfo( <EFBFBD><EFBFBD>D<EFBFBD>t<EFBFBD><EFBFBD>, Ф¸<EFBFBD>D<EFBFBD>t<EFBFBD><EFBFBD>, 2, CountingType_MyMonsterKill, 10003, 20);
api_quest_SetCountingInfo( <EFBFBD><EFBFBD>D<EFBFBD>t<EFBFBD><EFBFBD>, Ф¸<EFBFBD>D<EFBFBD>t<EFBFBD><EFBFBD>, 3, Item, 1001, 5);
api_quest_SetCountingInfo( <EFBFBD><EFBFBD>D<EFBFBD>t<EFBFBD><EFBFBD>, Ф¸<EFBFBD>D<EFBFBD>t<EFBFBD><EFBFBD>, 4, Item, 1002, 1);
<EFBFBD>@<EFBFBD> <EFBFBD>t<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 8֜<EFBFBD> t<EFBFBD>,<EFBFBD>D<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> 5<EFBFBD>X<EFBFBD> <EFBFBD><EFBFBD> p<EFBFBD>t<EFBFBD>t<EFBFBD> 8<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>.
<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>X<EFBFBD> ;<EFBFBD>@<EFBFBD> 0<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>o<EFBFBD><EFBFBD><EFBFBD> 10001<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD>|<EFBFBD> 10ȹ<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><<EFBFBD>t<EFBFBD> p<EFBFBD>t<EFBFBD>t<EFBFBD> ̹q<EFBFBD>\<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 8<EFBFBD><EFBFBD>\<EFBFBD><EFBFBD><EFBFBD>.
<EFBFBD>@<EFBFBD><EFBFBD>t<EFBFBD> 5<EFBFBD>X<EFBFBD> <EFBFBD><EFBFBD>o<EFBFBD><EFBFBD><EFBFBD> 10001<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD> 10ȹ<EFBFBD><EFBFBD>, 10002<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD> 5ȹ<EFBFBD><EFBFBD>, 10003<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD> 20ȹ<EFBFBD><EFBFBD>, 1001<EFBFBD><EFBFBD> D<EFBFBD>t<EFBFBD>\<EFBFBD> 5<EFBFBD>, 1002<EFBFBD><EFBFBD> D<EFBFBD>t<EFBFBD>\<EFBFBD> 1<EFBFBD> |<EFBFBD><EFBFBD><EFBFBD> 8<EFBFBD><EFBFBD> X<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD> 5<EFBFBD>X<EFBFBD> p<EFBFBD>t<EFBFBD>D<EFBFBD> ̹q<EFBFBD><EFBFBD> <EFBFBD>t<EFBFBD>. Ф¸<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>X<EFBFBD> OnComplete() h<EFBFBD><EFBFBD>|<EFBFBD> 8֜<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>.
*** <EFBFBD><EFBFBD> /<EFBFBD>”<EFBFBD> \<EFBFBD><EFBFBD> 30000 <EFBFBD>t<EFBFBD><EFBFBD><EFBFBD>.
*/
int api_quest_SetCountingInfo(CDNGameRoom *pRoom, UINT nUserObjectID, int nQuestID, int nSlot, int nCountingType, int nCountingIndex, int nTargetCnt);
/*
desc : 8<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>|<EFBFBD> tЬ<EFBFBD><EFBFBD><EFBFBD> \<EFBFBD><EFBFBD><EFBFBD>.
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, Ф¸<EFBFBD> x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>
return : -1 => <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD> -2 => Ф¸<EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>,
*/
int api_quest_ClearCountingInfo(CDNGameRoom *pRoom, UINT nUserObjectID, int nQuestID);
/*
desc : 8<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>t<EFBFBD> <EFBFBD><EFBFBD>P<EFBFBD> D<EFBFBD≯ <EFBFBD><EFBFBD>Ŕ<EFBFBD><EFBFBD><EFBFBD> U<EFBFBD>x<EFBFBD>\<EFBFBD><EFBFBD><EFBFBD>.
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, D<EFBFBD>t<EFBFBD>\<EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, D<EFBFBD>t<EFBFBD>\<EFBFBD> tδƸ<EFBFBD>
return : -1 => <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD> -2 => Ф¸<EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>, -3t<EFBFBD>t<EFBFBD> D<EFBFBD≯ H<EFBFBD>(<EFBFBD>, 1 t<EFBFBD>t<EFBFBD> <EFBFBD><EFBFBD>P<EFBFBD> D<EFBFBD≯
*/
int api_quest_IsAllCompleteCounting(CDNGameRoom *pRoom, UINT nUserObjectID, int nQuestID);
/*
desc : <EFBFBD><EFBFBD><EFBFBD>Ō<EFBFBD> D<EFBFBD>t<EFBFBD>\<EFBFBD>D<EFBFBD> #<EFBFBD>D<EFBFBD>̹\<EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD>ǔ<EFBFBD><EFBFBD><EFBFBD> U<EFBFBD>x<EFBFBD>\<EFBFBD><EFBFBD><EFBFBD>.
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, D<EFBFBD>t<EFBFBD>\<EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, D<EFBFBD>t<EFBFBD>\<EFBFBD> tδƸ<EFBFBD>
return : -1 => <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD> -2 => D<EFBFBD>t<EFBFBD>\<EFBFBD>D<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>, -3 <EFBFBD> <EFBFBD><EFBFBD>q<EFBFBD>
*/
int api_user_CheckInvenForAddItem(CDNGameRoom *pRoom, UINT nUserObjectID, int nItemIndex, int nItemCnt);
/*
desc : <EFBFBD><EFBFBD><EFBFBD>Ō<EFBFBD> Ф¸<EFBFBD> D<EFBFBD>t<EFBFBD>\<EFBFBD> <EFBFBD><EFBFBD>]<EFBFBD>D<EFBFBD> #<EFBFBD>D<EFBFBD>̹\<EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD>ǔ<EFBFBD><EFBFBD><EFBFBD> U<EFBFBD>x<EFBFBD>\<EFBFBD><EFBFBD><EFBFBD>.
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, Ф¸<EFBFBD> D<EFBFBD>t<EFBFBD>\<EFBFBD> <EFBFBD><EFBFBD>]<EFBFBD> (<EFBFBD><EFBFBD>D<EFBFBD>L<EFBFBD>t<EFBFBD><EFBFBD>, [<\<EFBFBD><EFBFBD><EFBFBD><EFBFBD>>]{Ф¸<EFBFBD> D<EFBFBD>t<EFBFBD>\<EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, Ф¸<EFBFBD> D<EFBFBD>t<EFBFBD>\<EFBFBD> tδƸ<EFBFBD>} <EFBFBD> \<EFBFBD> <EFBFBD><<EFBFBD>\<EFBFBD> <\<EFBFBD><EFBFBD><EFBFBD><EFBFBD> (֬<EFBFBD> 10<EFBFBD>)> ̹|<EFBFBD> <EFBFBD>)
return : -1 => <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD> -2 => D<EFBFBD>t<EFBFBD>\<EFBFBD>D<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>, -3 <EFBFBD> <EFBFBD><EFBFBD>q<EFBFBD>
example :
function grandmother_OnTalk(userObjID, npcObjID, npc_talk_index, npc_talk_target, questID)
local TableItem =
{
{ 1001, 10 }, -- D<EFBFBD>t<EFBFBD>\<EFBFBD> x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD> (1001), D<EFBFBD>t<EFBFBD>\<EFBFBD> <EFBFBD><EFBFBD> (10)
{ 1002, 1 }, -- D<EFBFBD>t<EFBFBD>\<EFBFBD> x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD> (1002), D<EFBFBD>t<EFBFBD>\<EFBFBD> <EFBFBD><EFBFBD> (1)
{ 1003, 5 }, -- D<EFBFBD>t<EFBFBD>\<EFBFBD> x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD> (1003), D<EFBFBD>t<EFBFBD>\<EFBFBD> <EFBFBD><EFBFBD> (5)
};
if (api_user_CheckInvenForAddItemList(userObjID, TableParam) == 1) then
-- 1<EFBFBD><EFBFBD><EFBFBD>
else
-- <EFBFBD><EFBFBD>(<EFBFBD>
end
end
*/
int api_user_CheckInvenForAddItemList(CDNGameRoom *pRoom, UINT nUserObjectID, lua_tinker::table ItemTable);
/*
desc : <EFBFBD><EFBFBD><EFBFBD>Ō<EFBFBD> D<EFBFBD>t<EFBFBD>\<EFBFBD>D<EFBFBD> <EFBFBD><EFBFBD> <EFBFBD>\<EFBFBD><EFBFBD><EFBFBD>.
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, D<EFBFBD>t<EFBFBD>\<EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, D<EFBFBD>t<EFBFBD>\<EFBFBD> tδƸ<EFBFBD>, Ф¸<EFBFBD> D<EFBFBD>t<EFBFBD><EFBFBD>
return : -1 => <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD> -2 => D<EFBFBD>t<EFBFBD>\<EFBFBD>D<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>, -3 <EFBFBD> <EFBFBD><EFBFBD>q<EFBFBD>
*/
int api_user_AddItem(CDNGameRoom *pRoom, UINT nUserObjectID, int nItemIndex, int nItemCnt, int nQuestID);
/*
desc : <EFBFBD><EFBFBD><EFBFBD>Ō<EFBFBD><EFBFBD> D<EFBFBD>t<EFBFBD>\<EFBFBD>D<EFBFBD> <EFBFBD>ɴ<EFBFBD><EFBFBD><EFBFBD>.
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, D<EFBFBD>t<EFBFBD>\<EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, D<EFBFBD>t<EFBFBD>\<EFBFBD> tδƸ<EFBFBD>, Ф¸<EFBFBD> D<EFBFBD>t<EFBFBD><EFBFBD>
return : -1 => <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD> -2 => D<EFBFBD>t<EFBFBD>\<EFBFBD>D<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>, -3 D<EFBFBD>t<EFBFBD>\<EFBFBD> /<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>q<EFBFBD>
*/
int api_user_DelItem(CDNGameRoom *pRoom, UINT nUserObjectID, int nItemIndex, int nItemCnt, int nQuestID);
/*
desc : <EFBFBD><EFBFBD><EFBFBD>Ō<EFBFBD><EFBFBD> D<EFBFBD>t<EFBFBD>\<EFBFBD>D<EFBFBD> <EFBFBD><EFBFBD>P<EFBFBD> <EFBFBD>ɴ<EFBFBD><EFBFBD><EFBFBD>.
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, D<EFBFBD>t<EFBFBD>\<EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>
return : -1 => <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD> -2 => D<EFBFBD>t<EFBFBD>\<EFBFBD>D<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>
*/
int api_user_AllDelItem(CDNGameRoom *pRoom, UINT nUserObjectID, int nItemIndex);
/*
desc : <EFBFBD><EFBFBD><EFBFBD> D<EFBFBD>t<EFBFBD>\<EFBFBD>D<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ǔ<EFBFBD><EFBFBD><EFBFBD> U<EFBFBD>x<EFBFBD>\<EFBFBD><EFBFBD><EFBFBD>.
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, D<EFBFBD>t<EFBFBD>\<EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, D<EFBFBD>t<EFBFBD>\<EFBFBD> tδƸ<EFBFBD>
return : -1 => <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD> -2 => D<EFBFBD>t<EFBFBD>\<EFBFBD>D<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>, -3 D<EFBFBD>t<EFBFBD>\<EFBFBD> /<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>q<EFBFBD>, 0 <EFBFBD><EFBFBD><EFBFBD><EFBFBD> l<EFBFBD>t<EFBFBD> true ( /<EFBFBD><EFBFBD>|<EFBFBD> <EFBFBD><EFBFBD>4<EFBFBD> )
*/
int api_user_HasItem(CDNGameRoom *pRoom, UINT nUserObjectID, int nItemIndex, int nItemCnt);
/*
desc : <EFBFBD><EFBFBD>X<EFBFBD> <EFBFBD><EFBFBD><EFBFBD> ID |<EFBFBD> <EFBFBD>Ŕ<EFBFBD><EFBFBD><EFBFBD>.
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>
return : -1 => <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>, <EFBFBD><EFBFBD><EFBFBD> ClasssID
*/
int api_user_GetUserClassID(CDNGameRoom *pRoom, UINT nUserObjectID);
/*
desc : <EFBFBD><EFBFBD>X<EFBFBD> Job ID |<EFBFBD> <EFBFBD>Ŕ<EFBFBD><EFBFBD><EFBFBD>.
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>
return : -1 => <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>, <EFBFBD><EFBFBD><EFBFBD> Job ID
*/
int api_user_GetUserJobID(CDNGameRoom *pRoom, UINT nUserObjectID);
/*
desc : <EFBFBD><EFBFBD>X<EFBFBD> levelD<EFBFBD> <EFBFBD>Ŕ<EFBFBD><EFBFBD><EFBFBD>.
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>
return : -1 => <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>, <EFBFBD><EFBFBD><EFBFBD> Level
*/
int api_user_GetUserLevel(CDNGameRoom *pRoom, UINT nUserObjectID);
/*
desc : <EFBFBD><EFBFBD> <EFBFBD><EFBFBD>Ѭ<EFBFBD>X<EFBFBD> H<EFBFBD>x<EFBFBD><EFBFBD>|<EFBFBD> <EFBFBD>Ŕ<EFBFBD><EFBFBD><EFBFBD>.
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>
return : -1 => <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>, <EFBFBD><EFBFBD><EFBFBD> H<EFBFBD>x<EFBFBD><EFBFBD>
*/
int api_user_GetUserInvenBlankCount(CDNGameRoom *pRoom, UINT nUserObjectID);
/*
desc : <EFBFBD><EFBFBD> Ф¸<EFBFBD> <EFBFBD><EFBFBD>Ѭ<EFBFBD>X<EFBFBD> H<EFBFBD>x<EFBFBD><EFBFBD>|<EFBFBD> <EFBFBD>Ŕ<EFBFBD><EFBFBD><EFBFBD>.
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>
return : -1 => <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>, <EFBFBD><EFBFBD><EFBFBD> H<EFBFBD>x<EFBFBD><EFBFBD>
*/
int api_quest_GetUserQuestInvenBlankCount(CDNGameRoom *pRoom, UINT nUserObjectID);
/*
desc : <EFBFBD><EFBFBD><EFBFBD>Ō<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>X<EFBFBD>|<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>\<EFBFBD><EFBFBD><EFBFBD>.
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD><EFBFBD><EFBFBD>X<EFBFBD>
return : -1 => <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>, 1t<EFBFBD>t<EFBFBD> 1<EFBFBD><EFBFBD><EFBFBD>
*/
int api_user_AddExp(CDNGameRoom *pRoom, UINT nUserObjectID, int nQuestID, int nAddExp);
/*
desc : <EFBFBD><EFBFBD><EFBFBD>Ō<EFBFBD> ȳD<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>\<EFBFBD><EFBFBD><EFBFBD>.
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, ȳ
return : -1 => <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>, 1t<EFBFBD>t<EFBFBD> 1<EFBFBD><EFBFBD><EFBFBD>
*/
int api_user_AddCoin(CDNGameRoom *pRoom, UINT nUserObjectID, int nAddCoin, int nQuestID);
/*
desc : <EFBFBD><EFBFBD><EFBFBD>Ō<EFBFBD> ٳ<EFBFBD><EFBFBD><EFBFBD>D<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>¨<EFBFBD><EFBFBD><EFBFBD>.
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD>,<EFBFBD>L<EFBFBD>t<EFBFBD><EFBFBD>ID
return : -1 => <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>, 1t<EFBFBD>t<EFBFBD> 1<EFBFBD><EFBFBD><EFBFBD>
*/
int api_user_PlayCutScene(CDNGameRoom *pRoom, UINT nUserObjectID, UINT nNpcObjectID, int nCutSceneTableID, bool bIgnoreFadeIn);
/*
desc : <EFBFBD><EFBFBD><EFBFBD>Ō<EFBFBD> =<EFBFBD><EFBFBD><EFBFBD>|<EFBFBD> <EFBFBD><EFBFBD>|<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>.
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>
return : -1 => <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>, 1t<EFBFBD>t<EFBFBD> 1<EFBFBD><EFBFBD><EFBFBD>
*/
int api_ui_OpenWareHouse(CDNGameRoom *pRoom, UINT nUserObjectID, int iItemID=0 );
/*
desc : <EFBFBD><EFBFBD><EFBFBD>Ō<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>|<EFBFBD> <EFBFBD><EFBFBD>|<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>.
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD><EFBFBD> ID
return : -1 => <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>, -2 t<EFBFBD> <EFBFBD><EFBFBD>t<EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>. 1t<EFBFBD>t<EFBFBD> 1<EFBFBD><EFBFBD><EFBFBD>
*/
int api_ui_OpenShop(CDNGameRoom *pRoom, UINT nUserObjectID, int nShopID, Shop::Type::eCode Type = Shop::Type::Normal);
/*
desc : <EFBFBD><EFBFBD><EFBFBD>Ō<EFBFBD> <EFBFBD>¬<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>|<EFBFBD> <EFBFBD><EFBFBD>|<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>.
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, <EFBFBD>¬<EFBFBD> <EFBFBD><EFBFBD><EFBFBD> ID
return : -1 => <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>, -2 t<EFBFBD> <EFBFBD><EFBFBD>t<EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>. 1t<EFBFBD>t<EFBFBD> 1<EFBFBD><EFBFBD><EFBFBD>
*/
int api_ui_OpenSkillShop(CDNGameRoom *pRoom, UINT nUserObjectID, int nSkillShopID);
/*
desc : <EFBFBD><EFBFBD><EFBFBD>Ō<EFBFBD> 4<EFBFBD>x<EFBFBD><EFBFBD><EFBFBD><EFBFBD>D<EFBFBD> <EFBFBD><EFBFBD>|<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>.
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>
return : -1 => <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>, -2 t<EFBFBD> <EFBFBD><EFBFBD>t<EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>. 1t<EFBFBD>t<EFBFBD> 1<EFBFBD><EFBFBD><EFBFBD>
*/
int api_ui_OpenMarket(CDNGameRoom *pRoom, UINT nUserObjectID);
/*
desc : <EFBFBD><EFBFBD><EFBFBD>Ō<EFBFBD> 8<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>%<EFBFBD> i<EFBFBD>1<EFBFBD> =<EFBFBD>D<EFBFBD> <EFBFBD><EFBFBD>|<EFBFBD><EFBFBD><EFBFBD> \<EFBFBD><EFBFBD><EFBFBD>.
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>
return : -1 => <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>, 1t<EFBFBD>t<EFBFBD> 1<EFBFBD><EFBFBD><EFBFBD>
*/
int api_ui_OpenCompoundEmblem(CDNGameRoom *pRoom, UINT nUserObjectID);
/*
desc : <EFBFBD><EFBFBD><EFBFBD>Ō<EFBFBD> <EFBFBD><EFBFBD>%<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>t<EFBFBD>ܴ =<EFBFBD>D<EFBFBD> <EFBFBD><EFBFBD>|<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>.
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>
return : -1 => <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>, 1t<EFBFBD>t<EFBFBD> 1<EFBFBD><EFBFBD><EFBFBD>
*/
int api_ui_OpenUpgradeJewel(CDNGameRoom *pRoom, UINT nUserObjectID);
/*
desc : <EFBFBD><EFBFBD><EFBFBD>Ō<EFBFBD> <EFBFBD>Ƹ<EFBFBD>h<EFBFBD>D<EFBFBD> <EFBFBD><EFBFBD>|<EFBFBD><EFBFBD><EFBFBD> <EFBFBD>¨<EFBFBD><EFBFBD><EFBFBD>.
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>
return : -1 => <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>, 1t<EFBFBD>t<EFBFBD> 1<EFBFBD><EFBFBD><EFBFBD>
*/
int api_ui_OpenMailBox(CDNGameRoom *pRoom, UINT nUserObjectID);
/*
desc : <EFBFBD><EFBFBD><EFBFBD>Ō<EFBFBD> <EFBFBD><EFBFBD>t<EFBFBD>=<EFBFBD>D<EFBFBD> <EFBFBD><EFBFBD>|<EFBFBD><EFBFBD><EFBFBD> <EFBFBD>¨<EFBFBD><EFBFBD><EFBFBD>.
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>
return : -1 => <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>, 1t<EFBFBD>t<EFBFBD> 1<EFBFBD><EFBFBD><EFBFBD>
*/
int api_ui_OpenDisjointItem(CDNGameRoom *pRoom, UINT nUserObjectID);
/*
desc : <EFBFBD><EFBFBD><EFBFBD>Ō<EFBFBD> D<EFBFBD>t<EFBFBD>\<EFBFBD> i<EFBFBD>1<EFBFBD>=<EFBFBD>D<EFBFBD> <EFBFBD><EFBFBD>|<EFBFBD><EFBFBD><EFBFBD> <EFBFBD>¨<EFBFBD><EFBFBD><EFBFBD>.
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, D<EFBFBD>t<EFBFBD>\<EFBFBD> i<EFBFBD>1<EFBFBD> <EFBFBD><EFBFBD><EFBFBD> ID
return : -1 => <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>, 1t<EFBFBD>t<EFBFBD> 1<EFBFBD><EFBFBD><EFBFBD>
*/
int api_ui_OpenCompoundItem(CDNGameRoom *pRoom, UINT nUserObjectID, int nCompoundShopID);
int api_ui_OpenCompound2Item(CDNGameRoom *pRoom, UINT nUserObjectID, int nCompoundShopID, int iItemID/*=0*/ );
/*
desc : <EFBFBD><EFBFBD><EFBFBD>Ō<EFBFBD> <EFBFBD><EFBFBD>l<EFBFBD> D<EFBFBD>t<EFBFBD>\<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>D<EFBFBD> <EFBFBD><EFBFBD>|<EFBFBD><EFBFBD><EFBFBD> <EFBFBD>¨<EFBFBD><EFBFBD><EFBFBD>.
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>
return : -1 => <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>, 1t<EFBFBD>t<EFBFBD> 1<EFBFBD><EFBFBD><EFBFBD>
*/
int api_ui_OpenCashShop(CDNGameRoom *pRoom, UINT nUserObjectID);
/*
desc : <EFBFBD><EFBFBD><EFBFBD>Ō<EFBFBD> 8<EFBFBD>ܴ <EFBFBD><EFBFBD><EFBFBD> UI <EFBFBD>T<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>|<EFBFBD> <EFBFBD><EFBFBD>|<EFBFBD><EFBFBD><EFBFBD> <EFBFBD>¨<EFBFBD><EFBFBD><EFBFBD>.
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, 8<EFBFBD>ܴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>8<EFBFBD>
return : -1 => <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>, 1t<EFBFBD>t<EFBFBD> 1<EFBFBD><EFBFBD><EFBFBD>
8<EFBFBD>ܴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>8<EFBFBD>>
0 : 8<EFBFBD>ܴ=<EFBFBD>$<EFBFBD>
1 : 8<EFBFBD>ܴtհ<EFBFBD>
2 : 8<EFBFBD>ܴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
3 : 8<EFBFBD>ܴ<EFBFBD><EFBFBD><EFBFBD>
4 : 8<EFBFBD>ܴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
int api_ui_OpenGuildMgrBox(CDNGameRoom *pRoom, UINT nUserObjectID, int nGuildMgrNo);
/*
desc : |<EFBFBD><EFBFBD><EFBFBD> <EFBFBD>`<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>\<EFBFBD><EFBFBD><EFBFBD>|<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
param : <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD>`<EFBFBD><EFBFBD><EFBFBD> x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>
return : -1 => <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>, -2 t<EFBFBD> <EFBFBD><EFBFBD>t<EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>. 1t<EFBFBD>t<EFBFBD> 1<EFBFBD><EFBFBD><EFBFBD>, -3 t<EFBFBD>t<EFBFBD> <EFBFBD> <EFBFBD>x<EFBFBD><EFBFBD><EFBFBD> x<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>..
*/
int api_ui_OpenGacha_JP(CDNGameRoom *pRoom, UINT nUserObjectID, int nGachaShopID);
/*
desc : NPC <EFBFBD><<EFBFBD>X<EFBFBD>0<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>\<EFBFBD><EFBFBD><EFBFBD>|<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
param : <EFBFBD>T<EFBFBD><EFBFBD>x<EFBFBD> Npc ID
return : -1 => <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>. 1 t<EFBFBD>t<EFBFBD> 1<EFBFBD><EFBFBD><EFBFBD>.
*/
int api_ui_OpenGiveNpcPresent(CDNGameRoom* pRoom, UINT nUserObjectID, int nNpcID);
/*
desc : <EFBFBD><EFBFBD><EFBFBD>Ō<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>=<EFBFBD><EFBFBD><EFBFBD>|<EFBFBD> <EFBFBD><EFBFBD>|<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>.
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>
return : -1 => <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>, 1t<EFBFBD>t<EFBFBD> 1<EFBFBD><EFBFBD><EFBFBD>
*/
int api_ui_OpenFarmWareHouse(CDNGameRoom *pRoom, UINT nUserObjectID);
#if defined(PRE_ADD_OPEN_QUEST_TEXTURE_DIALOG)
/*
desc : <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>\<EFBFBD><EFBFBD><EFBFBD>|<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, <EFBFBD>|<EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, T<EFBFBD>t<EFBFBD><EFBFBD><EFBFBD><EFBFBD>X<EFBFBD> <EFBFBD>X<EFBFBD>, <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>, t<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>Y<EFBFBD><EFBFBD>,
return : -1 => <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>, 1t<EFBFBD>t<EFBFBD> 1<EFBFBD><EFBFBD><EFBFBD>
*/
int api_ui_OpenTextureDialog(CDNGameRoom* pRoom, UINT nUserObjectID, int nFileIndex, float fX, float fY, int nPos, int nTime, int nDialogIndex, bool bAutoCloseDialog);
/*
desc : <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>\<EFBFBD><EFBFBD><EFBFBD>|<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>.
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD><EFBFBD>\<EFBFBD><EFBFBD><EFBFBD> ID
return : -1 => <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>, 1t<EFBFBD>t<EFBFBD> 1<EFBFBD><EFBFBD><EFBFBD>
*/
int api_ui_CloseTextureDialog(CDNGameRoom* pRoom, UINT nUserObjectID, int nDlgID);
#endif
/*
desc : <EFBFBD><EFBFBD><EFBFBD>Ō<EFBFBD> T<EFBFBD>8<EFBFBD><EFBFBD><EFBFBD>|<EFBFBD> <EFBFBD><EFBFBD>%<EFBFBD><EFBFBD> \<EFBFBD><EFBFBD><EFBFBD>.
param : nType @<EFBFBD> T<EFBFBD>8<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>%<EFBFBD> <EFBFBD>Ѕ<EFBFBD>,
CHATTYPE_NORMAL => 1, // |<EFBFBD><EFBFBD><EFBFBD>x<EFBFBD> <EFBFBD>T<EFBFBD>
CHATTYPE_PARTY => 2, // <EFBFBD><EFBFBD><EFBFBD> <EFBFBD>T<EFBFBD>
CHATTYPE_PRIVATE => 3, // ӭ<EFBFBD><EFBFBD>й
CHATTYPE_GUILD => 4, // 8<EFBFBD>ܴ <EFBFBD>T<EFBFBD>
CHATTYPE_CHANNEL => 5, // p<EFBFBD><EFBFBD><EFBFBD>/D<EFBFBD><EFBFBD> <EFBFBD>T<EFBFBD>
CHATTYPE_SYSTEM => 6, // <EFBFBD>¤<EFBFBD>\<EFBFBD> T<EFBFBD>8<EFBFBD><EFBFBD><EFBFBD>
\<EFBFBD><EFBFBD><EFBFBD> <EFBFBD>¸<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ȯD<EFBFBD> <EFBFBD>t<EFBFBD> \n D<EFBFBD> <EFBFBD><EFBFBD>h<EFBFBD>`Ճ<EFBFBD>.
return : -1 => <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>, -2 <EFBFBD>Ѕ<EFBFBD>t<EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD> -3 T<EFBFBD>8<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>4<EFBFBD> @<EFBFBD>
*/
int api_user_UserMessage(CDNGameRoom *pRoom, UINT nUserObjectID, int nType, int nBaseStringIdx, lua_tinker::table ParamTable);
/*
desc : <EFBFBD><EFBFBD><EFBFBD>Ō<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>D<EFBFBD>t<EFBFBD>\<EFBFBD>D<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>\<EFBFBD><EFBFBD><EFBFBD>.
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD><EFBFBD><EFBFBD>D<EFBFBD>t<EFBFBD>\<EFBFBD>D<EFBFBD>t<EFBFBD><EFBFBD>, /<EFBFBD><EFBFBD>
return : -1 => <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>, -2t<EFBFBD> <EFBFBD><EFBFBD>(<EFBFBD> 1t<EFBFBD>t<EFBFBD> 1<EFBFBD><EFBFBD><EFBFBD>
*/
int api_quest_AddSymbolItem(CDNGameRoom *pRoom, UINT nUserObjectID, int nItemID, short wCount);
/*
desc : <EFBFBD><EFBFBD><EFBFBD>Ō<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>D<EFBFBD>t<EFBFBD>\<EFBFBD>D<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>\<EFBFBD><EFBFBD><EFBFBD>.
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD><EFBFBD><EFBFBD>D<EFBFBD>t<EFBFBD>\<EFBFBD>D<EFBFBD>t<EFBFBD><EFBFBD>, /<EFBFBD><EFBFBD>
return : -1 => <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>, -2 t<EFBFBD> <EFBFBD><EFBFBD>(<EFBFBD>, 1t<EFBFBD>t<EFBFBD> 1<EFBFBD><EFBFBD><EFBFBD>
*/
int api_quest_DelSymbolItem(CDNGameRoom *pRoom, UINT nUserObjectID, int nItemID, short wCount);
/*
desc : <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> D<EFBFBD>t<EFBFBD>\<EFBFBD>D<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ǔ<EFBFBD><EFBFBD><EFBFBD> U<EFBFBD>x<EFBFBD>\<EFBFBD><EFBFBD><EFBFBD>.
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, D<EFBFBD>t<EFBFBD>\<EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, D<EFBFBD>t<EFBFBD>\<EFBFBD> tδƸ<EFBFBD>
return : -1 => <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD> -2 => D<EFBFBD>t<EFBFBD>\<EFBFBD>D<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>, -3 D<EFBFBD>t<EFBFBD>\<EFBFBD> /<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>q<EFBFBD>, 0 <EFBFBD><EFBFBD><EFBFBD><EFBFBD> l<EFBFBD>t<EFBFBD> true ( /<EFBFBD><EFBFBD>|<EFBFBD> <EFBFBD><EFBFBD>4<EFBFBD> )
*/
int api_quest_HasSymbolItem(CDNGameRoom *pRoom, UINT nUserObjectID, int nItemIndex, int nItemCnt);
/*
desc : <EFBFBD><EFBFBD><EFBFBD>Ō<EFBFBD> Ф¸<EFBFBD> D<EFBFBD>t<EFBFBD>\<EFBFBD>D<EFBFBD> #<EFBFBD>D<EFBFBD>̹\<EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD>ǔ<EFBFBD><EFBFBD><EFBFBD> U<EFBFBD>x<EFBFBD>\<EFBFBD><EFBFBD><EFBFBD>.
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, Ф¸<EFBFBD> D<EFBFBD>t<EFBFBD>\<EFBFBD> x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, Ф¸<EFBFBD> D<EFBFBD>t<EFBFBD>\<EFBFBD> tδƸ<EFBFBD>
return : -1 => <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD> -2 => D<EFBFBD>t<EFBFBD>\<EFBFBD>D<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>, -3 <EFBFBD> <EFBFBD><EFBFBD>q<EFBFBD>
*/
int api_quest_CheckQuestInvenForAddItem(CDNGameRoom *pRoom, UINT nUserObjectID, int nItemIndex, int nItemCnt);
/*
desc : <EFBFBD><EFBFBD><EFBFBD>Ō<EFBFBD> Ф¸<EFBFBD> D<EFBFBD>t<EFBFBD>\<EFBFBD> <EFBFBD><EFBFBD>]<EFBFBD>D<EFBFBD> #<EFBFBD>D<EFBFBD>̹\<EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD>ǔ<EFBFBD><EFBFBD><EFBFBD> U<EFBFBD>x<EFBFBD>\<EFBFBD><EFBFBD><EFBFBD>.
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, Ф¸<EFBFBD> D<EFBFBD>t<EFBFBD>\<EFBFBD> <EFBFBD><EFBFBD>]<EFBFBD> (<EFBFBD><EFBFBD>D<EFBFBD>L<EFBFBD>t<EFBFBD><EFBFBD>, [<\<EFBFBD><EFBFBD><EFBFBD><EFBFBD>>]{Ф¸<EFBFBD> D<EFBFBD>t<EFBFBD>\<EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, Ф¸<EFBFBD> D<EFBFBD>t<EFBFBD>\<EFBFBD> tδƸ<EFBFBD>} <EFBFBD> \<EFBFBD> <EFBFBD><<EFBFBD>\<EFBFBD> <\<EFBFBD><EFBFBD><EFBFBD><EFBFBD> (֬<EFBFBD> 10<EFBFBD>)> ̹|<EFBFBD> <EFBFBD>)
return : -1 => <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD> -2 => D<EFBFBD>t<EFBFBD>\<EFBFBD>D<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>, -3 <EFBFBD> <EFBFBD><EFBFBD>q<EFBFBD>
example :
function grandmother_OnTalk(userObjID, npcObjID, npc_talk_index, npc_talk_target, questID)
local TableItem =
{
{ 1001, 10 }, -- D<EFBFBD>t<EFBFBD>\<EFBFBD> x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD> (1001), D<EFBFBD>t<EFBFBD>\<EFBFBD> <EFBFBD><EFBFBD> (10)
{ 1002, 1 }, -- D<EFBFBD>t<EFBFBD>\<EFBFBD> x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD> (1002), D<EFBFBD>t<EFBFBD>\<EFBFBD> <EFBFBD><EFBFBD> (1)
{ 1003, 5 }, -- D<EFBFBD>t<EFBFBD>\<EFBFBD> x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD> (1003), D<EFBFBD>t<EFBFBD>\<EFBFBD> <EFBFBD><EFBFBD> (5)
};
if (api_quest_CheckQuestInvenForAddItemList(userObjID, TableParam) == 1) then
-- 1<EFBFBD><EFBFBD><EFBFBD>
else
-- <EFBFBD><EFBFBD>(<EFBFBD>
end
end
*/
int api_quest_CheckQuestInvenForAddItemList(CDNGameRoom *pRoom, UINT nUserObjectID, lua_tinker::table ItemTable);
/*
desc : <EFBFBD><EFBFBD><EFBFBD>Ō<EFBFBD> Ф¸<EFBFBD> D<EFBFBD>t<EFBFBD>\<EFBFBD>D<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>\<EFBFBD><EFBFBD><EFBFBD>.
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, Ф¸<EFBFBD>D<EFBFBD>t<EFBFBD>\<EFBFBD>D<EFBFBD>t<EFBFBD><EFBFBD>, /<EFBFBD><EFBFBD>, Ф¸<EFBFBD> D<EFBFBD>t<EFBFBD><EFBFBD>
return : -1 => <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>, -2t<EFBFBD> <EFBFBD><EFBFBD>(<EFBFBD> 1t<EFBFBD>t<EFBFBD> 1<EFBFBD><EFBFBD><EFBFBD>
*/
int api_quest_AddQuestItem(CDNGameRoom *pRoom, UINT nUserObjectID, int nItemID, short wCount, int nQuestID);
/*
desc : <EFBFBD><EFBFBD><EFBFBD>Ō<EFBFBD> Ф¸<EFBFBD> D<EFBFBD>t<EFBFBD>\<EFBFBD>D<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>\<EFBFBD><EFBFBD><EFBFBD>.
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, Ф¸<EFBFBD>D<EFBFBD>t<EFBFBD>\<EFBFBD>D<EFBFBD>t<EFBFBD><EFBFBD>, /<EFBFBD><EFBFBD>, Ф¸<EFBFBD> D<EFBFBD>t<EFBFBD><EFBFBD>
return : -1 => <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>, -2 t<EFBFBD> <EFBFBD><EFBFBD>(<EFBFBD>, 1t<EFBFBD>t<EFBFBD> 1<EFBFBD><EFBFBD><EFBFBD>
*/
int api_quest_DelQuestItem(CDNGameRoom *pRoom, UINT nUserObjectID, int nItemID, short wCount, int nQuestID);
/*
desc : <EFBFBD><EFBFBD><EFBFBD>Ō<EFBFBD> Ф¸<EFBFBD> D<EFBFBD>t<EFBFBD>\<EFBFBD>D<EFBFBD> <EFBFBD><EFBFBD>P<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>\<EFBFBD><EFBFBD><EFBFBD>.
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, Ф¸<EFBFBD>D<EFBFBD>t<EFBFBD>\<EFBFBD>D<EFBFBD>t<EFBFBD><EFBFBD>
return : -1 => <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>, -2 t<EFBFBD> <EFBFBD><EFBFBD>(<EFBFBD>, 1t<EFBFBD>t<EFBFBD> 1<EFBFBD><EFBFBD><EFBFBD>
*/
int api_quest_AllDelQuestItem(CDNGameRoom *pRoom, UINT nUserObjectID, int nItemID );
/*
desc : <EFBFBD><EFBFBD><EFBFBD> Ф¸<EFBFBD> D<EFBFBD>t<EFBFBD>\<EFBFBD>D<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ǔ<EFBFBD><EFBFBD><EFBFBD> U<EFBFBD>x<EFBFBD>\<EFBFBD><EFBFBD><EFBFBD>.
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, D<EFBFBD>t<EFBFBD>\<EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, D<EFBFBD>t<EFBFBD>\<EFBFBD> tδƸ<EFBFBD>
return : -1 => <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD> -2 => D<EFBFBD>t<EFBFBD>\<EFBFBD>D<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>, -3 D<EFBFBD>t<EFBFBD>\<EFBFBD> /<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>q<EFBFBD>, 0 <EFBFBD><EFBFBD><EFBFBD><EFBFBD> l<EFBFBD>t<EFBFBD> true ( /<EFBFBD><EFBFBD>|<EFBFBD> <EFBFBD><EFBFBD>4<EFBFBD> )
*/
int api_quest_HasQuestItem(CDNGameRoom *pRoom, UINT nUserObjectID, int nItemIndex, int nItemCnt);
/*
desc : <EFBFBD><EFBFBD><EFBFBD>Ō<EFBFBD> 8<EFBFBD>ܴ <EFBFBD><EFBFBD>1<EFBFBD>=<EFBFBD>D<EFBFBD> D<EFBFBD><EFBFBD><EFBFBD>|<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>.
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>
return : -1 => <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>, 1t<EFBFBD>t<EFBFBD> 1<EFBFBD><EFBFBD><EFBFBD>
*/
int api_ui_OpenGuildCreate(CDNGameRoom *pRoom, UINT nUserObjectID);
/*
desc : <EFBFBD><EFBFBD><EFBFBD>Ō<EFBFBD> Ф¸<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>=<EFBFBD>D<EFBFBD> D<EFBFBD><EFBFBD><EFBFBD>|<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>.
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD><EFBFBD><EFBFBD>L<EFBFBD>t<EFBFBD><EFBFBD>, bActivate <EFBFBD> true t<EFBFBD> <EFBFBD><EFBFBD>|<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> t<EFBFBD>t<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ij<EFBFBD><EFBFBD> false\<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
return : -1 => <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>, 1t<EFBFBD>t<EFBFBD> 1<EFBFBD><EFBFBD><EFBFBD>
*/
int api_ui_OpenQuestReward(CDNGameRoom *pRoom, UINT nUserObjectID, int nRewardTableIndex, bool bActivate);
/*
desc : <EFBFBD><EFBFBD><EFBFBD>Ō<EFBFBD> Ф¸<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>D<EFBFBD> \<EFBFBD><EFBFBD><EFBFBD>.
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD><EFBFBD><EFBFBD>L<EFBFBD>t<EFBFBD><EFBFBD>, Ф¸<EFBFBD> D<EFBFBD>t<EFBFBD><EFBFBD>, <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>lЈ<EFBFBD>8<EFBFBD>
return : -1 => <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>, -2 <EFBFBD><EFBFBD>D<EFBFBD>t<EFBFBD>\<EFBFBD><EFBFBD><EFBFBD><EFBFBD> $<EFBFBD>X<EFBFBD>, -3 <EFBFBD> <EFBFBD><EFBFBD>q<EFBFBD>, -4 t<EFBFBD>t<EFBFBD> L<EFBFBD>t<EFBFBD><EFBFBD>D<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>, -5 <EFBFBD><EFBFBD><EFBFBD><EFBFBD> p<EFBFBD>t<EFBFBD> <EFBFBD><EFBFBD>l<EFBFBD> $<EFBFBD>X<EFBFBD>, 1 t<EFBFBD>t<EFBFBD> 1<EFBFBD><EFBFBD><EFBFBD>
*/
int api_quest_RewardQuestUser(CDNGameRoom *pRoom, UINT nUserObjectID, int nRewardTableIndext, int nQuestID, int nRewardCheck);
/*
desc : t<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>X<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>|<EFBFBD> <EFBFBD><EFBFBD>4<EFBFBD>\<EFBFBD><EFBFBD><EFBFBD>.
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>
return : -1 => <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>, <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<EFBFBD><EFBFBD>X<EFBFBD> !!!> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> J<EFBFBD>@<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>Ɛ<EFBFBD>ij 1 D<EFBFBD> <EFBFBD>X<EFBFBD>)
*/
int api_user_GetPartymemberCount(CDNGameRoom *pRoom, UINT nUserObjectID);
/*
desc : t<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>x<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>l<EFBFBD>\<EFBFBD><EFBFBD><EFBFBD>.
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>
return : -1 => <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>, 0 => <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> J<EFBFBD><EFBFBD><EFBFBD>ň<EFBFBD>L<EFBFBD>, 1 => <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ň<EFBFBD>L<EFBFBD>
*/
int api_user_IsPartymember(CDNGameRoom *pRoom, UINT nUserObjectID);
/*
desc : <EFBFBD><EFBFBD>|<EFBFBD> t<EFBFBD>ٳ<EFBFBD>¨<EFBFBD><EFBFBD><EFBFBD>.
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, t<EFBFBD>ٳ`<EFBFBD> <EFBFBD><EFBFBD> x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, t<EFBFBD>ٳ`<EFBFBD> <EFBFBD><EFBFBD><EFBFBD> x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>
return : -1 => <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>, -2 <EFBFBD>Ŕ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
void api_user_ChangeMap(CDNGameRoom *pRoom, UINT nUserObjectID, int nMapIndex, int nGateNo);
/*
desc : t<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>X<EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>t<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>t<EFBFBD>ij|<EFBFBD> l<EFBFBD>h<EFBFBD>
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>
return : 0 ~ 4 => X<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>t<EFBFBD>ij (0:l<EFBFBD><EFBFBD><EFBFBD> / 1:<EFBFBD><EFBFBD><EFBFBD><EFBFBD> / 2:<EFBFBD><EFBFBD>$<EFBFBD><EFBFBD><EFBFBD> / 3:ȹ<EFBFBD><EFBFBD>0<EFBFBD> : 4:<EFBFBD><EFBFBD>D<EFBFBD><EFBFBD><EFBFBD>), <EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD>(<EFBFBD> (0<EFBFBD><EFBFBD><EFBFBD> -1)
*/
int api_user_GetStageConstructionLevel(CDNGameRoom *pRoom, UINT nUserObjectID);
/*
desc : t<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>X<EFBFBD> ֬<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>8<EFBFBD>|<EFBFBD> l<EFBFBD>h<EFBFBD>
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>
return : <EFBFBD><EFBFBD><EFBFBD><EFBFBD>8<EFBFBD> (1 t<EFBFBD><EFBFBD><EFBFBD>), <EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD>(<EFBFBD> ? (0 t<EFBFBD>X<EFBFBD>)
*/
int api_user_GetMapIndex(CDNGameRoom *pRoom, UINT nUserObjectID);
/*
desc : t<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>X<EFBFBD> \<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>t<EFBFBD><EFBFBD><EFBFBD> D<EFBFBD≯ <EFBFBD><EFBFBD>l<EFBFBD>|<EFBFBD> l<EFBFBD>h<EFBFBD>
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>
return : <EFBFBD><EFBFBD>L<EFBFBD>t<EFBFBD><EFBFBD><EFBFBD> D<EFBFBD≯ <EFBFBD><EFBFBD>l<EFBFBD> (SSS : 0 / SS : 1 / S : 2 / A : 3 / B : 4 / C : 5 / D : 6), <EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD>(<EFBFBD> ? (0<EFBFBD><EFBFBD><EFBFBD> -1)
*/
int api_user_GetLastStageClearRank(CDNGameRoom *pRoom, UINT nUserObjectID);
/*
desc : <EFBFBD><EFBFBD>X<EFBFBD> ֬<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>D<EFBFBD> U<EFBFBD>x<EFBFBD>\<EFBFBD><EFBFBD><EFBFBD>.
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD>l<EFBFBD>`<EFBFBD> <EFBFBD>
return : -1 => <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD> <EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>, -2 => <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>t<EFBFBD> <EFBFBD><EFBFBD>q<EFBFBD>h<EFBFBD>, 1 => <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>t<EFBFBD> <EFBFBD>̈́<EFBFBD>h<EFBFBD>
*/
int api_user_EnoughCoin(CDNGameRoom *pRoom, UINT nUserObjectID, int nCoin );
/*
desc : <EFBFBD><EFBFBD>X<EFBFBD> ֬<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>D<EFBFBD> U<EFBFBD>x<EFBFBD>\<EFBFBD><EFBFBD><EFBFBD>.
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>
return : -1 => <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>, 0 t<EFBFBD><EFBFBD><EFBFBD> => ֬<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
int api_user_GetCoin(CDNGameRoom *pRoom, UINT nUserObjectID);
/*
desc : <EFBFBD><EFBFBD><EFBFBD>Ō<EFBFBD> ȳD<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>\<EFBFBD><EFBFBD><EFBFBD>.
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, ȳ (0 <EFBFBD><EFBFBD><EFBFBD>)
return : -1 => <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>, 1 => 1<EFBFBD><EFBFBD><EFBFBD>
*/
int api_user_DelCoin(CDNGameRoom *pRoom, UINT nUserObjectID, int nDelCoin);
/*
desc : <EFBFBD><EFBFBD>X<EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>X<EFBFBD> <EFBFBD><EFBFBD>ݴ <EFBFBD>ŀ<EFBFBD>|<EFBFBD> <EFBFBD>X<EFBFBD>
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD>X<EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD> (MISSIONMAX (֬<EFBFBD> 5000 <EFBFBD>! 0 ~ 4999))
return : -1 => <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>, 0 => t<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>X<EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>, 1 <EFBFBD><EFBFBD>h<EFBFBD> t<EFBFBD>x<EFBFBD> => t<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>X<EFBFBD> <EFBFBD>
*/
int api_user_IsMissionGained(CDNGameRoom *pRoom, UINT nUserObjectID, int nMissionIndex);
/*
desc : <EFBFBD><EFBFBD>X<EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>X<EFBFBD> D<EFBFBD≯ <EFBFBD>ŀ<EFBFBD>|<EFBFBD> <EFBFBD>X<EFBFBD>
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD>X<EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD> (MISSIONMAX (֬<EFBFBD> 5000 <EFBFBD>! 0 ~ 4999))
return : -1 => <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>, 0 => t<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>X<EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>, 1 <EFBFBD><EFBFBD>h<EFBFBD> t<EFBFBD>x<EFBFBD> => t<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>X<EFBFBD> <EFBFBD>
*/
int api_user_IsMissionAchieved(CDNGameRoom *pRoom, UINT nUserObjectID, int nMissionIndex);
/*
desc : <EFBFBD><EFBFBD><EFBFBD> =<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> D<EFBFBD>t<EFBFBD>\<EFBFBD>D<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ǔ<EFBFBD><EFBFBD><EFBFBD> U<EFBFBD>x<EFBFBD>\<EFBFBD><EFBFBD><EFBFBD>.
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, D<EFBFBD>t<EFBFBD>\<EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, D<EFBFBD>t<EFBFBD>\<EFBFBD> tδƸ<EFBFBD>
return : -1 => <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD> -2 => D<EFBFBD>t<EFBFBD>\<EFBFBD>D<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>, -3 D<EFBFBD>t<EFBFBD>\<EFBFBD> /<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>q<EFBFBD>, 0 <EFBFBD><EFBFBD><EFBFBD><EFBFBD> l<EFBFBD>t<EFBFBD> true ( /<EFBFBD><EFBFBD>|<EFBFBD> <EFBFBD><EFBFBD>4<EFBFBD> )
*/
int api_user_HasItemWarehouse(CDNGameRoom *pRoom, UINT nUserObjectID, int nItemIndex, int nItemCnt);
/*
desc : <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>D<EFBFBD><EFBFBD><EFBFBD> D<EFBFBD>t<EFBFBD>\<EFBFBD>D<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ǔ<EFBFBD><EFBFBD><EFBFBD> U<EFBFBD>x<EFBFBD>\<EFBFBD><EFBFBD><EFBFBD>.
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, D<EFBFBD>t<EFBFBD>\<EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>
return : -1 => <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD> -2 => D<EFBFBD>t<EFBFBD>\<EFBFBD>D<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>, 1 <EFBFBD><EFBFBD>h<EFBFBD> <EFBFBD><EFBFBD>x<EFBFBD> true
*/
int api_user_HasItemEquip(CDNGameRoom *pRoom, UINT nUserObjectID, int nItemIndex);
/*
desc : <EFBFBD><EFBFBD>X<EFBFBD> ֬<EFBFBD> 8<EFBFBD>ܴ <EFBFBD><EFBFBD> <EFBFBD>D<EFBFBD> <EFBFBD>X<EFBFBD>
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>
return : 0 : 8<EFBFBD>ܴ <EFBFBD><EFBFBD>L<EFBFBD> / 1 : 8<EFBFBD>ܴ<EFBFBD><EFBFBD> / 2 : <EFBFBD><EFBFBD>8<EFBFBD>ܴ<EFBFBD><EFBFBD> / 3 : <EFBFBD><EFBFBD><EFBFBD>8<EFBFBD>ܴ<EFBFBD><EFBFBD> / 4 : |<EFBFBD><EFBFBD>8<EFBFBD>ܴ<EFBFBD><EFBFBD> / 5 : <EFBFBD>…<EFBFBD>8<EFBFBD>ܴ<EFBFBD><EFBFBD>
*/
int api_guild_GetGuildMemberRole(CDNGameRoom *pRoom, UINT nUserObjectID);
/*
desc : <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ǔ<EFBFBD> Ф¸<EFBFBD>X<EFBFBD> T<EFBFBD><EFBFBD><EFBFBD>X<EFBFBD> <EFBFBD><EFBFBD><EFBFBD> x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>D<EFBFBD> 1 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>´<EFBFBD>
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, Ф¸҈<EFBFBD>8<EFBFBD>, T<EFBFBD><EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>
return : <EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ф¸<EFBFBD> T<EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<EFBFBD><EFBFBD><EFBFBD><EFBFBD>|<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŕ<EFBFBD> LONG_MIN <EFBFBD>X<EFBFBD>)
*/
int api_quest_IncQuestMemo(CDNGameRoom *pRoom, UINT nUserObjectID, int nQuestID, char nMemoIndex);
/*
desc : <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ǔ<EFBFBD> Ф¸<EFBFBD>X<EFBFBD> T<EFBFBD><EFBFBD><EFBFBD>X<EFBFBD> <EFBFBD><EFBFBD><EFBFBD> x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>D<EFBFBD> 1 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>´<EFBFBD>
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, Ф¸҈<EFBFBD>8<EFBFBD>, T<EFBFBD><EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>
return : <EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ф¸<EFBFBD> T<EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<EFBFBD><EFBFBD><EFBFBD><EFBFBD>|<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŕ<EFBFBD> LONG_MAX <EFBFBD>X<EFBFBD>)
*/
int api_quest_DecQuestMemo(CDNGameRoom *pRoom, UINT nUserObjectID, int nQuestID, char nMemoIndex);
/*
desc : <EFBFBD><EFBFBD><EFBFBD>Ō<EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>D<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
return : -1 : <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD> / -2 : <EFBFBD>Ŕ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>8ք<EFBFBD> / -3 : <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> p<EFBFBD>t<EFBFBD><EFBFBD><EFBFBD> / 0 : t<EFBFBD><EFBFBD><EFBFBD> <EFBFBD>@<EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>ń<EFBFBD> / 1 : <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1<EFBFBD><EFBFBD><EFBFBD>
*/
int api_user_SetUserJobID(CDNGameRoom *pRoom, UINT nUserObjectID, int nJobID);
/*
desc : <EFBFBD><EFBFBD>X<EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>t<EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> Ĭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ǔ<EFBFBD><EFBFBD><EFBFBD> U<EFBFBD>x<EFBFBD>
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
return : -1 : <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD> / 0 : <EFBFBD>@<EFBFBD> Ĭ<EFBFBD><EFBFBD>t<EFBFBD> D<EFBFBD>ز / 1 : <EFBFBD>@<EFBFBD> Ĭ<EFBFBD><EFBFBD>t<EFBFBD> ޹L<EFBFBD>
*/
int api_user_IsJobInSameLine(CDNGameRoom *pRoom, UINT nUserObjectID, int nBaseJobID);
/*
desc : <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>l<EFBFBD> D<EFBFBD>t<EFBFBD>\<EFBFBD>D<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ǔ<EFBFBD><EFBFBD><EFBFBD> U<EFBFBD>x<EFBFBD>\<EFBFBD><EFBFBD><EFBFBD>.
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD>l<EFBFBD>D<EFBFBD>t<EFBFBD>\<EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, D<EFBFBD>t<EFBFBD>\<EFBFBD> tδƸ<EFBFBD>
return : -1 => <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD> -2 => D<EFBFBD>t<EFBFBD>\<EFBFBD>D<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>, -3 D<EFBFBD>t<EFBFBD>\<EFBFBD> /<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>q<EFBFBD>, 0 <EFBFBD><EFBFBD><EFBFBD><EFBFBD> l<EFBFBD>t<EFBFBD> true ( /<EFBFBD><EFBFBD>|<EFBFBD> <EFBFBD><EFBFBD>4<EFBFBD> )
*/
int api_user_HasCashItem(CDNGameRoom *pRoom, UINT nUserObjectID, int nItemIndex, int nItemCnt);
/*
desc : <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>D<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>l<EFBFBD> D<EFBFBD>t<EFBFBD>\<EFBFBD>D<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ǔ<EFBFBD><EFBFBD><EFBFBD> U<EFBFBD>x<EFBFBD>\<EFBFBD><EFBFBD><EFBFBD>.
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD>l<EFBFBD>D<EFBFBD>t<EFBFBD>\<EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>
return : -1 => <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD> -2 => D<EFBFBD>t<EFBFBD>\<EFBFBD>D<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>, 1 <EFBFBD><EFBFBD>h<EFBFBD> <EFBFBD><EFBFBD>x<EFBFBD> true
*/
int api_user_HasCashItemEquip(CDNGameRoom *pRoom, UINT nUserObjectID, int nItemIndex);
/*
desc : <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD>Ѕ<EFBFBD>, ID <EFBFBD><EFBFBD> <EFBFBD>t<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>X<EFBFBD>\<EFBFBD> <EFBFBD><EFBFBD>D<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>¨<EFBFBD><EFBFBD><EFBFBD>.
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>,
Ф¸<EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>,
<EFBFBD><EFBFBD>`<EFBFBD> <EFBFBD>Ѕ<EFBFBD> (CountingType_MyMonsterKill = 1, CountingType_AllMonsterKill = 2, CountingType_Item = 3),
<EFBFBD><EFBFBD>`<EFBFBD> <EFBFBD><EFBFBD>X<EFBFBD> x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD> (D<EFBFBD>t<EFBFBD>\<EFBFBD> ID, <EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD> ID <EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
return : -1 => <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>, 1 => 1<EFBFBD><EFBFBD><EFBFBD>
*/
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 : |<EFBFBD>|<EFBFBD> Ф¸<EFBFBD> 0<EFBFBD><EFBFBD><<EFBFBD>\<EFBFBD> ֬<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>|<EFBFBD> <EFBFBD>Ŵ<EFBFBD>(<EFBFBD><EFBFBD><EFBFBD>.
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>
return : -1 => <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>, 1 => 1<EFBFBD><EFBFBD><EFBFBD>
*/
int api_quest_GetDailyQuestDay(CDNGameRoom *pRoom, UINT nUserObjectID);
#endif // #if defined(PRE_ADD_DAILYQUESTDATEAPI_01) && defined(PRE_ADD_QUEST_DAILYCHECK_01)
/*
desc : <EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ɉ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD> \<EFBFBD><EFBFBD> Ф¸<EFBFBD> <EFBFBD><EFBFBD><EFBFBD> ij<EFBFBD><EFBFBD>X<EFBFBD>Ɣ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ŀ<EFBFBD>|<EFBFBD> <EFBFBD>X<EFBFBD>\<EFBFBD><EFBFBD><EFBFBD>.
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, Ф¸<EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>
return : -1 : <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>, 1 : \<EFBFBD><EFBFBD> Ф¸<EFBFBD> <EFBFBD><EFBFBD><EFBFBD> ij<EFBFBD><EFBFBD> h<EFBFBD>, <EFBFBD><EFBFBD>x<EFBFBD> : D<EFBFBD>ز
*/
int api_quest_IsPlayingQuestMaximum(CDNGameRoom *pRoom, UINT nUserObjectID);
/*
desc : <EFBFBD><EFBFBD><EFBFBD> Ф¸<EFBFBD>|<EFBFBD> <EFBFBD><EFBFBD> D<EFBFBD≯ <EFBFBD>¨<EFBFBD><EFBFBD><EFBFBD>. (<EFBFBD>ɉ<EFBFBD> <EFBFBD>t<EFBFBD> D<EFBFBD>̲ Ф¸Ҕ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>X<EFBFBD><EFBFBD><EFBFBD> D<EFBFBD≯)
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, Ф¸<EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, Ф¸<EFBFBD> T<EFBFBD>ܴ (0:|<EFBFBD><EFBFBD> / 1:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>), ȹ<EFBFBD><EFBFBD><EFBFBD>ŀ<EFBFBD> (1:ȹ<EFBFBD><EFBFBD>/0:H<EFBFBD>h<EFBFBD>), <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ŀ<EFBFBD> (1:<EFBFBD><EFBFBD><EFBFBD>/0:J<EFBFBD>h<EFBFBD>), <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ŀ<EFBFBD> (1:<EFBFBD><EFBFBD><EFBFBD>/0:H<EFBFBD>h<EFBFBD>)
return : -1 : <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>, 1 : \<EFBFBD><EFBFBD> Ф¸<EFBFBD> <EFBFBD><EFBFBD><EFBFBD> ij<EFBFBD><EFBFBD> h<EFBFBD>, <EFBFBD><EFBFBD>x<EFBFBD> : D<EFBFBD>ز
*/
int api_quest_ForceCompleteQuest(CDNGameRoom *pRoom, UINT nUserObjectID, int nQuestID, int nQuestCode, int bDoMark, int bDoDelete, int bDoRepeat);
/*
desc : <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>Ɛ<EFBFBD>X<EFBFBD> <EFBFBD>X<EFBFBD>|<EFBFBD> t<EFBFBD>ٳ <EFBFBD>¨<EFBFBD><EFBFBD><EFBFBD>.
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, X <EFBFBD><EFBFBD>\<EFBFBD>, Y <EFBFBD><EFBFBD>\<EFBFBD>, Z <EFBFBD><EFBFBD>\<EFBFBD>
return : -1 : <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>, 1 1<EFBFBD><EFBFBD><EFBFBD>
*/
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 8<EFBFBD>X<EFBFBD>Point |<EFBFBD> <EFBFBD>Ŵ<EFBFBD>(<EFBFBD><EFBFBD><EFBFBD>.
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, NpcID
return : -1 => <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>, -2 => <EFBFBD>¤<EFBFBD>\<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>x<EFBFBD> => <EFBFBD><EFBFBD>4<EFBFBD><EFBFBD>
*/
int api_npc_GetFavorPoint( CDNGameRoom *pRoom, UINT uiUserObjectID, int iNpcID );
/*
desc : NPC E<EFBFBD>X<EFBFBD>Point |<EFBFBD> <EFBFBD>Ŵ<EFBFBD>(<EFBFBD><EFBFBD><EFBFBD>.
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, NpcID
return : -1 => <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>, -2 => <EFBFBD>¤<EFBFBD>\<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>x<EFBFBD> => <EFBFBD><EFBFBD>4<EFBFBD><EFBFBD>
*/
int api_npc_GetMalicePoint( CDNGameRoom *pRoom, UINT uiUserObjectID, int iNpcID );
/*
desc : NPC 8<EFBFBD>X<EFBFBD>Percent |<EFBFBD> <EFBFBD>Ŵ<EFBFBD>(<EFBFBD><EFBFBD><EFBFBD>.
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, NpcID
return : -1 => <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>, -2 => <EFBFBD>¤<EFBFBD>\<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>x<EFBFBD> => <EFBFBD><EFBFBD>4<EFBFBD><EFBFBD>
*/
int api_npc_GetFavorPercent( CDNGameRoom *pRoom, UINT uiUserObjectID, int iNpcID );
/*
desc : NPC E<EFBFBD>X<EFBFBD>Percent |<EFBFBD> <EFBFBD>Ŵ<EFBFBD>(<EFBFBD><EFBFBD><EFBFBD>.
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, NpcID
return : -1 => <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>, -2 => <EFBFBD>¤<EFBFBD>\<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>x<EFBFBD> => <EFBFBD><EFBFBD>4<EFBFBD><EFBFBD>
*/
int api_npc_GetMalicePercent( CDNGameRoom *pRoom, UINT uiUserObjectID, int iNpcID );
/*
desc : NPC 8<EFBFBD>X<EFBFBD>Point |<EFBFBD> <EFBFBD><EFBFBD>\<EFBFBD><EFBFBD><EFBFBD>.
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, NpcID, <EFBFBD><EFBFBD><EFBFBD>(- #<EFBFBD><<EFBFBD>t<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>h<EFBFBD>)
return : -1 => <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>, -2 => <EFBFBD>¤<EFBFBD>\<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>x<EFBFBD> => <EFBFBD><EFBFBD>4<EFBFBD><EFBFBD>
*/
int api_npc_AddFavorPoint( CDNGameRoom *pRoom, UINT uiUserObjectID, int iNpcID, int val );
/*
desc : NPC E<EFBFBD>X<EFBFBD>Point |<EFBFBD> <EFBFBD><EFBFBD>\<EFBFBD><EFBFBD><EFBFBD>.
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, NpcID, <EFBFBD><EFBFBD><EFBFBD>(- #<EFBFBD><<EFBFBD>t<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>h<EFBFBD>)
return : -1 => <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>, -2 => <EFBFBD>¤<EFBFBD>\<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>x<EFBFBD> => <EFBFBD><EFBFBD>4<EFBFBD><EFBFBD>
*/
int api_npc_AddMalicePoint( CDNGameRoom *pRoom, UINT uiUserObjectID, int iNpcID, int val );
/*
desc : NPC <EFBFBD>Ō<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>\<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>|<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>\<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>|<EFBFBD><EFBFBD><EFBFBD> t<EFBFBD>|<EFBFBD>tǸŸ<EFBFBD><EFBFBD>Ō<EFBFBD> <EFBFBD>ƭ<EFBFBD>.
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, NpcID
return : -1 => <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>, -2 => <EFBFBD>¤<EFBFBD>\<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>x<EFBFBD> => <EFBFBD><EFBFBD>4<EFBFBD><EFBFBD>
*/
int api_npc_SendSelectedPresent( CDNGameRoom* pRoom, UINT uiUserObjectID, int iNpcID );
/*
desc : NPC <EFBFBD>Ō<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>\<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>|<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>\<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>|<EFBFBD><EFBFBD><EFBFBD> t<EFBFBD>|<EFBFBD>tǸŸ<EFBFBD><EFBFBD>Ō<EFBFBD> <EFBFBD>ƭ<EFBFBD>.
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, NpcID
return : -1 => <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>, -2 => <EFBFBD>¤<EFBFBD>\<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>x<EFBFBD> => <EFBFBD><EFBFBD>4<EFBFBD><EFBFBD>
*/
int api_npc_Rage( CDNGameRoom* pRoom, UINT uiUserObjectID, int iNpcID );
/*
desc : NPC <EFBFBD>Ō<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>\<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>|<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>\<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>|<EFBFBD><EFBFBD><EFBFBD> t<EFBFBD>|<EFBFBD>tǸŸ<EFBFBD><EFBFBD>Ō<EFBFBD> <EFBFBD>ƭ<EFBFBD>.
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, NpcID
return : -1 => <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>, -2 => <EFBFBD>¤<EFBFBD>\<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>x<EFBFBD> => <EFBFBD><EFBFBD>4<EFBFBD><EFBFBD>
*/
int api_npc_Disappoint( CDNGameRoom* pRoom, UINT uiUserObjectID, int iNpcID );
/*
desc : <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>Ɛ<EFBFBD>X<EFBFBD> ȴ<EFBFBD> <EFBFBD>¬<EFBFBD>D<EFBFBD> <EFBFBD><EFBFBD>K<EFBFBD><EFBFBD>¨<EFBFBD><EFBFBD><EFBFBD>.
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>
return : -1 : <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>, 1 : 1<EFBFBD><EFBFBD><EFBFBD>
*/
int api_user_ResetSkill(CDNGameRoom *pRoom, UINT nUserObjectID);
/*
desc : <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>Ɛ<EFBFBD>|<EFBFBD> 2(<EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD>¬<EFBFBD>D<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>`<EFBFBD> <EFBFBD> <EFBFBD>ǔ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>\<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>\<EFBFBD> ̹<EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>
return : -1 : <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>, 1 : 1<EFBFBD><EFBFBD><EFBFBD>
*/
int api_user_SetSecondJobSkill( CDNGameRoom *pRoom, UINT nUserObjectID, int iSecondChangeJobID );
/*
desc : <EFBFBD><EFBFBD><EFBFBD><EFBFBD>\<EFBFBD> 2(<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>D<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>`<EFBFBD> <EFBFBD> <EFBFBD>ǔ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>\<EFBFBD> ̹<EFBFBD>T<EFBFBD> <EFBFBD><EFBFBD>|<EFBFBD> <EFBFBD>Ƙ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>\<EFBFBD> ̳$<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
t<EFBFBD> api |<EFBFBD> 8֜<EFBFBD>X<EFBFBD><EFBFBD><EFBFBD> J<EFBFBD>D<EFBFBD>ij <EFBFBD><EFBFBD>D<EFBFBD> t<EFBFBD>ٳt<EFBFBD>ij <EFBFBD><EFBFBD>K<EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>
return : -1 : <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>, 1 : 1<EFBFBD><EFBFBD><EFBFBD>
*/
int api_user_ClearSecondJobSkill( CDNGameRoom *pRoom, UINT nUserObjectID );
/*
desc : <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>D<EFBFBD> D<EFBFBD>t<EFBFBD>\<EFBFBD>D<EFBFBD> ¬<EFBFBD>X<EFBFBD><EFBFBD><EFBFBD>, ¬<EFBFBD>D<EFBFBD><EFBFBD><EFBFBD>D<EFBFBD> (<EFBFBD><EFBFBD>i<EFBFBD>Ȳ<EFBFBD><EFBFBD>.
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>, ȴ<EFBFBD>¬<EFBFBD> <EFBFBD>4<EFBFBD>(1-ȴ<EFBFBD>¬<EFBFBD>, 0-<EFBFBD><EFBFBD>)<EFBFBD>\<EFBFBD>D<EFBFBD>t<EFBFBD>\<EFBFBD>)
return : -1 : <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD> / 0 : ¬<EFBFBD>`<EFBFBD> D<EFBFBD>t<EFBFBD>\<EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD> / 1 : <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>q<EFBFBD> / 2 : D<EFBFBD>t<EFBFBD>\<EFBFBD> ¬<EFBFBD> D<EFBFBD≯
*/
int api_user_RepairItem(CDNGameRoom *pRoom, UINT nUserObjectID, int iAllRepair);
/*
desc : D<EFBFBD>t<EFBFBD>\<EFBFBD>X<EFBFBD> <EFBFBD>T<EFBFBD><EFBFBD>D<EFBFBD> <EFBFBD><EFBFBD>x<EFBFBD> D<EFBFBD>t<EFBFBD>\<EFBFBD><<EFBFBD>\<EFBFBD> t<EFBFBD>ٳ<EFBFBD>µ<EFBFBD>Ȳ<EFBFBD><EFBFBD>.
param : <EFBFBD><EFBFBD>x<EFBFBD>q<EFBFBD><EFBFBD><EFBFBD>
return : -1 : <EFBFBD><EFBFBD>|<EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>, 1t<EFBFBD>t<EFBFBD> 1<EFBFBD><EFBFBD><EFBFBD>
*/
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 <EFBFBD><EFBFBD> NPC |<EFBFBD> <EFBFBD><EFBFBD>1<EFBFBD>\<EFBFBD><EFBFBD><EFBFBD>.
param : <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> id , npc id
return : -1 => <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>, 1t<EFBFBD>t<EFBFBD> 1<EFBFBD><EFBFBD><EFBFBD>
*/
int api_trigger_GenerationNpc(CDNGameRoom *pRoom, int nEventAreaHandle, int nNpcTableID);
/*
desc : EventArea <EFBFBD><EFBFBD> NPC |<EFBFBD> <EFBFBD>p<EFBFBD>\<EFBFBD><EFBFBD><EFBFBD>.
param : <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> id
return : -1 => <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ><EFBFBD>D<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>L<EFBFBD>, 1t<EFBFBD>t<EFBFBD> 1<EFBFBD><EFBFBD><EFBFBD>
*/
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 : <EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>X<EFBFBD> x<EFBFBD><EFBFBD><EFBFBD>D<EFBFBD> <EFBFBD><EFBFBD>l<EFBFBD>
[Interger1] <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>X<EFBFBD> x<EFBFBD><EFBFBD><EFBFBD>D<EFBFBD> <EFBFBD>X<EFBFBD>
param : <EFBFBD><EFBFBD><EFBFBD><EFBFBD>(Interger1)1 <EFBFBD>Ƭ<EFBFBD><EFBFBD><EFBFBD> 2 D<EFBFBD><EFBFBD><EFBFBD>, 3 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 4 <EFBFBD><EFBFBD><EFBFBD> 5 D<EFBFBD>t<EFBFBD>p<EFBFBD><EFBFBD><EFBFBD> 6 |ά<EFBFBD>
return : <EFBFBD><EFBFBD>Ҵ<EFBFBD> [Interger1] <EFBFBD><EFBFBD><EFBFBD>X<EFBFBD> x<EFBFBD><EFBFBD><EFBFBD>
*/
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 ); // <EFBFBD><EFBFBD>L<EFBFBD>t<EFBFBD><EFBFBD><EFBFBD> D<EFBFBD>t<EFBFBD>\<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>Ɵ<EFBFBD><EFBFBD> <EFBFBD>\<EFBFBD>
//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);