DragonNest/Server/DNVillageServer/DNScriptAPI.h
2024-12-19 09:48:26 +08:00

1108 lines
No EOL
35 KiB
C++

#pragma once
// VillageServer Script API
// [4/1/2008 nextome]
class CDNUserBase;
int CheckInvenForQuestReward(CDNUserBase* pUser, const TQuestReward& QuestReward, const bool bSelectedArray[]);
// 모든 함수를 루아에 등록한다.
void DefAllAPIFunc(lua_State* pLuaState);
/*
desc : 다음 대사로 연결한다.
param : 유저인덱스, NPC인덱스, 토크인덱스, 토크파일이름
return : void
*/
void api_npc_NextTalk(UINT nUserObjectID, UINT nNpcObjectID, const char* szTalkIndex, const char* szTargetFile);
/*
desc : 다음 스크립트로 연결한다.
param : 유저인덱스, NPC인덱스, 토크인덱스, 토크파일이름
return : void
*/
void api_npc_NextScript(UINT nUserObjectID, UINT nNpcObjectID, const char* szTalkIndex, const char* szTargetFile);
/*
desc : 대사 파라메터를 세팅한다(스트링).
param : 파라메터키, 파라메터문자의 인덱스
return : -1 유저를 찾을수 없음, -2 파라메터 갯수가 넘어서서 더이상 세팅할수 없음. 1 이면 성공
sample :
저는 {%color} 색을 좋아합니다. 라는 문장을 만들때.
api_SetParamString("{%color}, math.random(2) ); 이런식으로 만들어준다.
1은 TalkParamTable.xls 에 1 : 빨강, 2: 파랑 따로 기록 되어있어야한다.
주의: api_SetParamString 으로 세팅한 파라메터는 api_NextTalk 호출후 clear 되므로 api_NextTalk 호출전에 세팅한다.
*/
int api_npc_SetParamString(UINT nUserObjectID, const char* szParamKey, int nParamID);
/*
desc : 대사 파라메터를 세팅한다(정수).
param : 파라메터키, 정수값
return : -1 유저를 찾을수 없음, -2 파라메터 갯수가 넘어서서 더이상 세팅할수 없음. 1 이면 성공
sample :
저는 {%age} 살쯤에 숨지고 싶어요. 라는 문장을 만들때.
api_SetParamInt("{%age}, math.random(30)+40 ); 이런식으로 만들어준다.
주의: api_SetParamInt 으로 세팅한 파라메터는 api_NextTalk 호출후 clear 되므로 api_NextTalk 호출전에 세팅한다.
*/
int api_npc_SetParamInt(UINT nUserObjectID, 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(UINT nUserObjectID, const char* szLog);
/*
desc : 유저에게 퀘스트 관련 정보를 채팅으로 보내준다.
param :
return : void
*/
void api_quest_DumpQuest(UINT nUserObjectID);
/*
desc : 유저에게 퀘스트를 부여 한다.
param : 유저인덱스, 퀘스트인덱스, 퀘스트 타입 QuestType_SubQuest = 1, QuestType_MainQuest = 2,
return : 1 : 성공, -1 : 유저를 찾을수 없음, -2 : 유저가 퀘스트를 가지고 있지 않음
*/
int api_quest_AddHuntingQuest(UINT nUserObjectID, int nQuestID, int nQuestStep, int nJournalStep, int nCountingSlot, int nCountingType, int nCountingIndex, int nTargetCnt);
int api_quest_AddQuest(UINT nUserObjectID, int nQuestID, int nQuestType);
/*
desc : 유저에게 퀘스트를 완료 시킨다.
param : 유저인덱스, 퀘스트인덱스, 현재 가지고 있는 퀘스트에서 지울것인지 (안지우면 플레이 횟수만 증가 시킨다.), 반복 가능 여부
return : 1 : 성공, -1 : 유저를 찾을수 없음, -2 : 유저가 퀘스트를 가지고 있지 않음
*/
int api_quest_CompleteQuest(UINT nUserObjectID, int nQuestID, bool bDelPlayList, bool bRepeat);
/*
desc : 유저에게 퀘스트를 완료목록에 추가 시킨다. ( DB 에 기록!! )
param : 유저인덱스, 퀘스트인덱스
return : -1 유저를 찾을수 없음, -2 퀘스트가 진행중이 아님
*/
int api_quest_MarkingCompleteQuest(UINT nUserObjectID, int nQuestID);
/*
desc : 완료목록에 완료마킹이 되어있는 퀘스트인지?
param : 유저인덱스, 퀘스트인덱스
return : -1 유저를 찾을수 없음, 1 이면 완료마킹된 퀘스트, 0 이면 완료마킹 안됨
*/
int api_quest_IsMarkingCompleteQuest(UINT nUserObjectID, int nQuestID);
/*
desc : 유저가 퀘스트를 가지고 있는지 확인한다.
param : 유저인덱스, 퀘스트인덱스
return : -1 유저를 찾을수 없음, -2 유저가 퀘스트를 가지고 있지 않음, -1 보다 크면 퀘스트를 가지고 잇음 ( 퀘스트 스텝을 리턴 )
*/
int api_quest_UserHasQuest(UINT nUserObjectID, int nQuestID);
/*
desc : 유저가 몇개의 퀘스트를 진행중인지 확인한다.
param : 유저인덱스, 퀘스트인덱스
return : -1 유저를 찾을수 없음, 그외에 현재 진행중인 퀘스트 갯수 리턴..
*/
int api_quest_GetPlayingQuestCnt(UINT nUserObjectID);
/*
desc : npc 인덱스를 리턴한다.
param : 유저인덱스, NpcObjId ( npc 인덱스와 npcobject 인덱스는 다른 것. )
return : -1 유저를 찾을수 없음, -2 npc 를 찾을수 없음, 그외에는 npc인덱스
*/
int api_npc_GetNpcIndex(UINT nUserObjectID, UINT nNpcObjID);
/*
desc : 유저가 가지고 있는 퀘스트의 스텝, 저널 스텝을 세팅한다.
param : 유저인덱스, 퀘스트인덱스, 저널 스텝
return : -1 => 유저를 찾을수 없음 -2 => 유저가 퀘스트를 가지고 있지 않음. -3 저널 스텝 범위를 벗어남. 성공일 경우 1을 리턴
*/
int api_quest_SetQuestStepAndJournalStep(UINT nUserObjectID, int nQuestID, short nQuestStep, int nJournalStep);
/*
desc : 유저가 가지고 있는 퀘스트의 퀘스트 스텝을 세팅한다.
param : 유저인덱스, 퀘스트인덱스, 퀘스트 스텝
return : -1 => 유저를 찾을수 없음 -2 => 유저가 퀘스트를 가지고 있지 않음. 성공일 경우 1을 리턴
*/
int api_quest_SetQuestStep(UINT nUserObjectID, int nQuestID, short nQuestStep);
/*
desc : 유저가 가지고 있는 퀘스트의 퀘스트 스텝을 얻는다.
param : 유저인덱스, 퀘스트인덱스
return : -1 => 유저를 찾을수 없음 -2 => 유저가 퀘스트를 가지고 있지 않음., -1 보다 큰경우 현재 퀘스트의 스텝
*/
int api_quest_GetQuestStep(UINT nUserObjectID, int nQuestID);
/*
desc : 유저가 가지고 있는 퀘스트의 저널 스텝을 세팅한다.
param : 유저인덱스, 퀘스트인덱스, 저널 스텝
return : -1 => 유저를 찾을수 없음 -2 => 유저가 퀘스트를 가지고 있지 않음. -3 저널 스텝 범위를 벗어남. 성공일 경우 1을 리턴
*/
int api_quest_SetJournalStep(UINT nUserObjectID, int nQuestID, int nJournalStep);
/*
desc : 유저가 가지고 있는 퀘스트의 저널 스텝을 얻는다.
param : 유저인덱스, 퀘스트인덱스
return : -1 => 유저를 찾을수 없음 -2 => 유저가 퀘스트를 가지고 있지 않음., -1 보다 큰경우 현재 저널 스텝
*/
int api_quest_GetJournalStep(UINT nUserObjectID, int nQuestID);
/*
desc : 유저가 가지고 있는 퀘스트의 메모의 특정 인덱스에 값을 세팅한다.
param : 유저인덱스, 퀘스트번호, 메모인덱스, 메모값
return : -1 => 유저를 찾을수 없음. -2 => 유저가 퀘스트를 가지고 있지 않음. -3 메모 인덱스 범위를 벗어남. 성공일 경우 1을 리턴
*/
int api_quest_SetQuestMemo(UINT nUserObjectID, int nQuestID, char nMemoIndex, TP_QUESTMEMO nVal);
/*
desc : 유저가 가지고 있는 퀘스트의 메모의 특정 인덱스의 값을 얻는다.
param : 유저인덱스, 퀘스트번호, 메모인덱스
return : -1 => 유저를 찾을수 없음. -2 => 유저가 퀘스트를 가지고 있지 않음. -3 메모 인덱스 범위를 벗어남. -1 보다 큰경우 특정 메모 인덱스의 값
*/
int api_quest_GetQuestMemo(UINT nUserObjectID, 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(UINT nUserObjectID, int nQuestID, int nSlot, int nCountingType, int nCountingIndex, int nTargetCnt);
/*
desc : 세팅된 카운팅 정보를 클리어 한다.
param : 유저인덱스, 퀘스트 인덱스
return : -1 => 유저를 찾을수 없음 -2 => 퀘스트를 찾을수 없음,
*/
int api_quest_ClearCountingInfo(UINT nUserObjectID, int nQuestID);
/*
desc : 세팅된 카운팅들이 모두 완료 되었는지 확인한다.
param : 유저인덱스, 아이템인덱스, 아이템 카운트
return : -1 => 유저를 찾을수 없음 -2 => 퀘스트를 찾을수 없음, -3이면 완료 안됨, 1 이면 모두 완료
*/
int api_quest_IsAllCompleteCounting(UINT nUserObjectID, int nQuestID);
/*
desc : 유저퀘스트를 캔슬시킨다.
param : 유저인덱스, 퀘스트 아이디
return : -1 => 유저를 찾을수 없음, -2면 실패 1이면 성공
*/
int api_quest_CancelQuest(UINT nUserObjectID, int nQuestID);
/*
desc : 유저에게 아이템을 넣을만한 인벤여유가 있는지 확인한다.
param : 유저인덱스, 아이템인덱스, 아이템 카운트
return : -1 => 유저를 찾을수 없음 -2 => 아이템을 찾을수 없음, -3 인벤 부족
*/
int api_user_CheckInvenForAddItem(UINT nUserObjectID, int nItemIndex, int nItemCnt);
/*
desc : 유저에게 퀘스트 아이템 목록을 넣을만한 인벤여유가 있는지 확인한다.
param : 유저인덱스, 퀘스트 아이템 목록 (루아테이블, [<최대개수>]{퀘스트 아이템인덱스, 퀘스트 아이템 카운트} 가 한 쌍으로 <최대개수 (현재 10개)> 만큼 존재)
return : -1 => 유저를 찾을수 없음 -2 => 아이템을 찾을수 없음, -3 인벤 부족
example :
function grandmother_OnTalk(userObjID, npcObjID, npc_talk_index, npc_talk_target, questID)
local TableItem =
{
{ 1001, 10 }, -- 아이템 인덱스 (1001), 아이템 개수 (10)
{ 1002, 1 }, -- 아이템 인덱스 (1002), 아이템 개수 (1)
{ 1003, 5 }, -- 아이템 인덱스 (1003), 아이템 개수 (5)
};
if (api_user_CheckInvenForAddItemList(userObjID, TableParam) == 1) then
-- 성공
else
-- 실패
end
end
*/
int api_user_CheckInvenForAddItemList(UINT nUserObjectID, lua_tinker::table ItemTable);
/*
desc : 유저에게 아이템을 지급한다.
param : 유저인덱스, 아이템인덱스, 아이템 카운트, 퀘스트 아이디
return : -1 => 유저를 찾을수 없음 -2 => 아이템을 찾을수 없음, -3 인벤 부족
*/
int api_user_AddItem(UINT nUserObjectID, int nItemIndex, int nItemCnt, int nQuestID);
/*
desc : 유저에게서 아이템을 지운다.
param : 유저인덱스, 아이템인덱스, 아이템 카운트, 퀘스트 아이디
return : -1 => 유저를 찾을수 없음 -2 => 아이템을 찾을수 없음, -3 아이템 갯수 부족
*/
int api_user_DelItem(UINT nUserObjectID, int nItemIndex, int nItemCnt, int nQuestID);
/*
desc : 유저에게서 아이템을 모두 지운다.
param : 유저인덱스, 아이템인덱스
return : -1 => 유저를 찾을수 없음 -2 => 아이템을 찾을수 없음
*/
int api_user_AllDelItem(UINT nUserObjectID, int nItemIndex);
/*
desc : 유저가 아이템을 가지고 있는지 확인한다.
param : 유저인덱스, 아이템인덱스, 아이템 카운트
return : -1 => 유저를 찾을수 없음 -2 => 아이템을 찾을수 없음, -3 아이템 갯수 부족, 0 보다 크면 true ( 갯수를 리턴 )
*/
int api_user_HasItem(UINT nUserObjectID, int nItemIndex, int nItemCnt);
/*
desc : 유저의 클래스 ID 를 얻는다.
param : 유저인덱스
return : -1 => 유저를 찾을수 없음, 그외는 ClasssID
*/
int api_user_GetUserClassID(UINT nUserObjectID);
/*
desc : 유저의 Job ID 를 얻는다.
param : 유저인덱스
return : -1 => 유저를 찾을수 없음, 그외는 Job ID
*/
int api_user_GetUserJobID(UINT nUserObjectID);
/*
desc : 유저의 level을 얻는다.
param : 유저인덱스
return : -1 => 유저를 찾을수 없음, 그외는 Level
*/
int api_user_GetUserLevel(UINT nUserObjectID);
/*
desc : 유저 인벤토리의 빈칸수를 얻는다.
param : 유저인덱스
return : -1 => 유저를 찾을수 없음, 그외는 빈칸수
*/
int api_user_GetUserInvenBlankCount(UINT nUserObjectID);
/*
desc : 유저 퀘스트 인벤토리의 빈칸수를 얻는다.
param : 유저인덱스
return : -1 => 유저를 찾을수 없음, 그외는 빈칸수
*/
int api_quest_GetUserQuestInvenBlankCount(UINT nUserObjectID);
/*
desc : 유저에게 경험치를 추가한다.
param : 유저인덱스, 경험치
return : -1 => 유저를 찾을수 없음, 1이면 성공
*/
int api_user_AddExp(UINT nUserObjectID, int nQuestID, int nAddExp);
/*
desc : 유저에게 돈을 추가한다.
param : 유저인덱스, 돈
return : -1 => 유저를 찾을수 없음, 1이면 성공
*/
int api_user_AddCoin(UINT nUserObjectID, int nAddCoin, int nQuestID);
/*
desc : 유저에게 동영상을 재생 시킨다.
param : 유저인덱스, 동영상파일이름
return : -1 => 유저를 찾을수 없음, 1이면 성공
*/
int api_user_PlayCutScene(UINT nUserObjectID, UINT nNpcObjectID, int nCutSceneTableID, bool bIgnoreFadeIn);
/*
desc : 유저에게 창고를 열라고 알린다.
param : 유저인덱스
return : -1 => 유저를 찾을수 없음, 1이면 성공
*/
int api_ui_OpenWareHouse(UINT nUserObjectID, int iItemID/*=0*/ );
/*
desc : 유저에게 상점를 열라고 알린다.
param : 유저인덱스, 상점 ID
return : -1 => 유저를 찾을수 없음, -2 면 샵이 없음. 1이면 성공
*/
int api_ui_OpenShop(UINT nUserObjectID, int nShopID, Shop::Type::eCode Type=Shop::Type::Normal );
/*
desc : 유저에게 스킬 상점를 열라고 알린다.
param : 유저인덱스, 스킬 상점 ID
return : -1 => 유저를 찾을수 없음, -2 면 샵이 없음. 1이면 성공
*/
int api_ui_OpenSkillShop(UINT nUserObjectID);
/*
desc : 유저에게 무인상점을 열라고 알린다.
param : 유저인덱스
return : -1 => 유저를 찾을수 없음, -2 면 샵이 없음. 1이면 성공
*/
int api_ui_OpenMarket(UINT nUserObjectID);
/*
desc : 유저에게 문장보옥 합성 창을 열라고 한다.
param : 유저인덱스
return : -1 => 유저를 찾을수 없음, 1이면 성공
*/
int api_ui_OpenCompoundEmblem(UINT nUserObjectID);
/*
desc : 유저에게 보옥 업그레이드 창을 열라고 알린다.
param : 유저인덱스
return : -1 => 유저를 찾을수 없음, 1이면 성공
*/
int api_ui_OpenUpgradeJewel(UINT nUserObjectID);
/*
desc : 유저에게 우편함을 열라고 시킨다.
param : 유저인덱스
return : -1 => 유저를 찾을수 없음, 1이면 성공
*/
int api_ui_OpenMailBox(UINT nUserObjectID);
/*
desc : 유저에게 문장 해제를 위해 문장차을 열라고 시킨다.
param : 유저인덱스
return : -1 => 유저를 찾을수 없음, 1이면 성공
*/
int api_ui_OpenGlyphLift(UINT nUserObjectID);
/*
desc : 유저에게 아이템 강화창을 열라고 시킨다.
param : 유저인덱스
return : -1 => 유저를 찾을수 없음, 1이면 성공
*/
int api_ui_OpenUpgradeItem(UINT nUserObjectID,int iItemID=0);
#if defined(PRE_ADD_OPEN_QUEST_TEXTURE_DIALOG)
/*
desc : 텍스쳐 다이얼로그를 연다.
param : 유저인덱스, 파일인덱스, 화면에서의 위치, 보여질 시간, 이미지 중앙점,
return : -1 => 유저를 찾을수 없음, 1이면 성공
*/
int api_ui_OpenTextureDialog(UINT nUserObjectID, int nFileIndex, float fX, float fY, int nPos, int nTime, int nDialogIndex, bool bAutoCloseDialog);
/*
desc : 텍스쳐 다이얼로그를 닫는다.
param : 유저인덱스, 다이얼로그 ID
return : -1 => 유저를 찾을수 없음, 1이면 성공
*/
int api_ui_CloseTextureDialog(UINT nUserObjectID, int nDlgID);
#endif
int api_ui_OpenDisjointItem(UINT nUserObjectID);
/*
desc : 유저에게 아이템 합성창을 열라고 시킨다.
param : 유저인덱스, 아이템 합성 상점 ID
return : -1 => 유저를 찾을수 없음, 1이면 성공
*/
int api_ui_OpenCompoundItem(UINT nUserObjectID, int nCompoundShopID);
/*
desc : 유저에게 아이템 합성창2을 열라고 시킨다.
param : 유저인덱스, 아이템 합성 상점 ID
return : -1 => 유저를 찾을수 없음, 1이면 성공
*/
int api_ui_OpenCompound2Item(UINT nUserObjectID, int nCompoundGroupID, int iItemID/*=0*/ );
/*
desc : 유저에게 캐쉬 아이템 상점을 열라고 시킨다.
param : 유저인덱스
return : -1 => 유저를 찾을수 없음, 1이면 성공
*/
int api_ui_OpenCashShop(UINT nUserObjectID);
/*
desc : 유저에게 길드 관리 UI 대화상자를 열라고 시킨다.
param : 유저인덱스, 길드관리번호
return : -1 => 유저를 찾을수 없음, 1이면 성공
길드관리번호>
0 : 길드창설
1 : 길드해산
2 : 길드탈퇴
3 : 길드포인트
4 : 길드레벨업
*/
int api_ui_OpenGuildMgrBox(UINT nUserObjectID, int nGuildMgrNo);
/*
desc : 일본 가챠폰 다이얼로그를 연다.
param : 사용될 가챠폰 인덱스
return : -1 => 유저를 찾을수 없음, -2 면 샵이 없음. 1이면 성공, -3 이면 디파인에 걸러짐..
*/
int api_ui_OpenGacha_JP( UINT nUserObjectID, int nGachaShopID );
/*
desc : NPC 선물하기 다이얼로그를 연다.
param : 대화중인 Npc ID
return : -1 => 유저를 찾을수 없음. 1 이면 성공.
*/
int api_ui_OpenGiveNpcPresent( UINT nUserObjectID, int nNpcID );
/*
desc : 다크레어랭킹게시판 다이얼로그를 연다.
param : 대화중인 Npc ID
return : -1 => 유저를 찾을수 없음. 1 이면 성공.
*/
int api_ui_OpenDarkLairRankBoard( UINT nUserObjectID, int nNpcID, int iMapIndex, int iPlayerCount );
/*
desc : PvP래더랭킹게시판 다이얼로그를 연다.
param : 대화중인 Npc ID
return : -1 => 유저를 찾을수 없음. 1 이면 성공.
*/
int api_ui_OpenPvPLadderRankBoard( UINT nUserObjectID, int nNpcID, int iPvPLadderCode );
/*
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(UINT nUserObjectID, int nType, int nBaseStringIdx, lua_tinker::table ParamTable);
/*
desc : 유저에게 심볼아이템을 추가한다.
param : 유저인덱스, 심볼아이템아이디, 갯수
return : -1 => 유저를 찾을수 없음, -2면 실패 1이면 성공
*/
int api_quest_AddSymbolItem(UINT nUserObjectID, int nItemID, short wCount);
/*
desc : 유저에게 심볼아이템을 삭제한다.
param : 유저인덱스, 심볼아이템아이디, 갯수
return : -1 => 유저를 찾을수 없음, -2 면 실패, 1이면 성공
*/
int api_quest_DelSymbolItem(UINT nUserObjectID, int nItemID, short wCount);
/*
desc : 유저가 심볼 아이템을 가지고 있는지 확인한다.
param : 유저인덱스, 아이템인덱스, 아이템 카운트
return : -1 => 유저를 찾을수 없음 -2 => 아이템을 찾을수 없음, -3 아이템 갯수 부족, 0 보다 크면 true ( 갯수를 리턴 )
*/
int api_quest_HasSymbolItem(UINT nUserObjectID, int nItemIndex, int nItemCnt);
/*
desc : 유저에게 퀘스트 아이템을 넣을만한 인벤여유가 있는지 확인한다.
param : 유저인덱스, 퀘스트 아이템 인덱스, 퀘스트 아이템 카운트
return : -1 => 유저를 찾을수 없음 -2 => 아이템을 찾을수 없음, -3 인벤 부족
*/
int api_quest_CheckQuestInvenForAddItem(UINT nUserObjectID, int nItemIndex, int nItemCnt);
/*
desc : 유저에게 퀘스트 아이템 목록을 넣을만한 인벤여유가 있는지 확인한다.
param : 유저인덱스, 퀘스트 아이템 목록 (루아테이블, [<최대개수>]{퀘스트 아이템인덱스, 퀘스트 아이템 카운트} 가 한 쌍으로 <최대개수 (현재 10개)> 만큼 존재)
return : -1 => 유저를 찾을수 없음 -2 => 아이템을 찾을수 없음, -3 인벤 부족
example :
function grandmother_OnTalk(userObjID, npcObjID, npc_talk_index, npc_talk_target, questID)
local TableItem =
{
{ 1001, 10 }, -- 아이템 인덱스 (1001), 아이템 개수 (10)
{ 1002, 1 }, -- 아이템 인덱스 (1002), 아이템 개수 (1)
{ 1003, 5 }, -- 아이템 인덱스 (1003), 아이템 개수 (5)
};
if (api_quest_CheckQuestInvenForAddItemList(userObjID, TableParam) == 1) then
-- 성공
else
-- 실패
end
end
*/
int api_quest_CheckQuestInvenForAddItemList(UINT nUserObjectID, lua_tinker::table ItemTable);
/*
desc : 유저에게 퀘스트 아이템을 추가한다.
param : 유저인덱스, 퀘스트아이템아이디, 갯수, 퀘스트 아이디
return : -1 => 유저를 찾을수 없음, -2면 실패 1이면 성공
*/
int api_quest_AddQuestItem(UINT nUserObjectID, int nItemID, short wCount, int nQuestID);
/*
desc : 유저에게 퀘스트 아이템을 삭제한다.
param : 유저인덱스, 퀘스트아이템아이디, 갯수, 퀘스트 아이디
return : -1 => 유저를 찾을수 없음, -2 면 실패, 1이면 성공
*/
int api_quest_DelQuestItem(UINT nUserObjectID, int nItemID, short wCount, int nQuestID);
/*
desc : 유저에게 퀘스트 아이템을 모두 삭제한다.
param : 유저인덱스, 퀘스트아이템아이디
return : -1 => 유저를 찾을수 없음, -2 면 실패, 1이면 성공
*/
int api_quest_AllDelQuestItem(UINT nUserObjectID, int nItemID);
/*
desc : 유저가 퀘스트 아이템을 가지고 있는지 확인한다.
param : 유저인덱스, 아이템인덱스, 아이템 카운트
return : -1 => 유저를 찾을수 없음 -2 => 아이템을 찾을수 없음, -3 아이템 갯수 부족, 0 보다 크면 true ( 갯수를 리턴 )
*/
int api_quest_HasQuestItem(UINT nUserObjectID, int nItemIndex, int nItemCnt);
/*
desc : 유저에게 길드 생성창을 띄우라고 알린다.
param : 유저인덱스
return : -1 => 유저를 찾을수 없음, 1이면 성공
*/
int api_ui_OpenGuildCreate(UINT nUserObjectID);
/*
desc : 유저에게 퀘스트 보상창을 띄우라고 알린다.
param : 유저인덱스, 보상테이블, bActivate 가 true 면 고를수 있고 이면 그냥 보는 용도는 false로 쓴다.
return : -1 => 유저를 찾을수 없음, 1이면 성공
*/
int api_ui_OpenQuestReward(UINT nUserObjectID, int nRewardTableIndex, bool bActivate);
/*
desc : 유저에게 퀘스트 보상을 한다.
param : 유저인덱스, 보상테이블, 퀘스트 아이디, 보상체크번호
return : -1 => 유저를 찾을수 없음, -2 유저아이템객체 오류, -3 인벤 부족, -4 이면 테이블을 찾을수 없음, -5 보상 조건 체크 오류, 1 이면 성공
*/
int api_quest_RewardQuestUser(UINT nUserObjectID, int nRewardTableIndext, int nQuestID, int nRewardCheck);
/*
desc : 유저를 채널이동시킨다.
param : 유저인덱스, 채널타입
return : -1 => 유저를 찾을수 없음, -2 없는 채널타입 -3 없는 채널
*/
int api_user_ChangeChannel(UINT nUserObjectID, int ChannelType );
/*
desc : 유저를 이동시킨다.
param : 유저인덱스, 이동할 맵 인덱스, 이동할 게이트 인덱스
return : -1 => 유저를 찾을수 없음, -2 없는 맵임
*/
int api_user_ChangeMap(UINT nUserObjectID, int nMapIndex, int nGateNo);
/*
desc : 해당 유저의 파티원수를 리턴한다.
param : 유저인덱스
return : -1 => 유저를 찾을수 없음, 그외는 파티원수 (주의 !!!> 파티에 가입되지 않은 사용자도 1 을 반환)
*/
int api_user_GetPartymemberCount(UINT nUserObjectID);
/*
desc : 해당 유저가 파티에 가입된 상태인지 체크한다.
param : 유저인덱스
return : -1 => 유저를 찾을수 없음, 0 => 파티에 가입 않되어있음, 1 => 파티에 가입 되어있음
*/
int api_user_IsPartymember(UINT nUserObjectID);
//blondy
/*
desc : 해당유저를 PVP로비오 안내.
param : 유저인덱스
return : 1 성공 -1 => 유저를 찾을수 없음
*/
int api_user_RequestEnterPVP( UINT nUserObjectID );
/*
desc : 해당 유저의 스테이지 난이도를 구함
param : 유저인덱스
return : 0 ~ 4 => 던전 난이도 (0:쉬움 / 1:보통 / 2:어려움 / 3:마스터 : 4:어비스), 그 외는 실패 (기본 -1)
*/
int api_user_GetStageConstructionLevel(UINT nUserObjectID);
/*
desc : 해당 유저의 현재 맵번호를 구함
param : 유저인덱스
return : 맵번호 (1 이상), 그 외는 실패 ? (0 이하)
*/
int api_user_GetMapIndex(UINT nUserObjectID);
/*
desc : 해당 유저의 최근 스테이지 완료 랭크를 구함
param : 유저인덱스
return : 스테이지 완료 랭크 (SSS : 0 / SS : 1 / S : 2 / A : 3 / B : 4 / C : 5 / D : 6), 그 외는 실패 ? (기본 -1)
*/
int api_user_GetLastStageClearRank(UINT nUserObjectID);
/*
desc : 유저의 현재 소지금을 확인한다.
param : 유저인덱스, 체크할 값
return : -1 => 유저를 찾을 수 없음, -2 => 소지금이 부족함, 1 => 소지금이 충분함
*/
int api_user_EnoughCoin(UINT nUserObjectID, int nCoin );
/*
desc : 유저의 현재 소지금을 확인한다.
param : 유저인덱스
return : -1 => 유저를 찾을수 없음, 0 이상 => 현재 소지금
*/
int api_user_GetCoin(UINT nUserObjectID);
/*
desc : 유저에게 돈을 감소한다.
param : 유저인덱스, 돈
return : -1 => 유저를 찾을수 없음, 1 => 성공
*/
int api_user_DelCoin(UINT nUserObjectID, int nDelCoin);
/*
desc : 유저의 특정 미션 취득 여부를 반환
param : 유저인덱스, 미션인덱스 (MISSIONMAX (현재 5000 → 0 ~ 4999))
return : -1 => 유저를 찾을수 없음, 0 => 해당 미션 없음, 1 포함 이외 => 해당 미션 존재
*/
int api_user_IsMissionGained(UINT nUserObjectID, int nMissionIndex);
/*
desc : 유저의 특정 미션 완료 여부를 반환
param : 유저인덱스, 미션인덱스 (MISSIONMAX (현재 5000 → 0 ~ 4999))
return : -1 => 유저를 찾을수 없음, 0 => 해당 미션 없음, 1 포함 이외 => 해당 미션 존재
*/
int api_user_IsMissionAchieved(UINT nUserObjectID, int nMissionIndex);
/*
desc : 유저가 창고에 아이템을 가지고 있는지 확인한다.
param : 유저인덱스, 아이템인덱스, 아이템 카운트
return : -1 => 유저를 찾을수 없음 -2 => 아이템을 찾을수 없음, -3 아이템 갯수 부족, 0 보다 크면 true ( 갯수를 리턴 )
*/
int api_user_HasItemWarehouse(UINT nUserObjectID, int nItemIndex, int nItemCnt);
/*
desc : 유저가 장비에 아이템을 가지고 있는지 확인한다.
param : 유저인덱스, 아이템인덱스
return : -1 => 유저를 찾을수 없음 -2 => 아이템을 찾을수 없음, 1 포함 그외 true
*/
int api_user_HasItemEquip(UINT nUserObjectID, int nItemIndex);
/*
desc : 유저의 현재 길드 직급을 반환
param : 유저인덱스
return : -1 : 유저를 찾을수 없음 / 0 : 길드 없음 / 1 : 길드장 / 2 : 부길드장 / 3 : 선임길드원 / 4 : 일반길드원 / 5 : 신입길드원
*/
int api_guild_GetGuildMemberRole(UINT nUserObjectID);
/*
desc : 유저가 가지고 있는 퀘스트의 메모의 특정 인덱스에 값을 1 증가시킴
param : 유저인덱스, 퀘스트번호, 메모인덱스
return : 증가된 퀘스트 메모값 (에러일 경우에는 LONG_MIN 반환)
*/
int api_quest_IncQuestMemo(UINT nUserObjectID, int nQuestID, char nMemoIndex);
/*
desc : 유저가 가지고 있는 퀘스트의 메모의 특정 인덱스에 값을 1 감소시킴
param : 유저인덱스, 퀘스트번호, 메모인덱스
return : 감소된 퀘스트 메모값 (에러일 경우에는 LONG_MAX 반환)
*/
int api_quest_DecQuestMemo(UINT nUserObjectID, int nQuestID, char nMemoIndex);
/*
desc : 유저에게 특정 전직 직업을 지정
param : 유저인덱스, 변경 전직 직업
return : -1 : 유저를 찾을수 없음 / -2 : 없는 전직 번호임 / -3 : 전직 불가 조건임 / 0 : 이미 같은 전직 직업임 / 1 : 전직 직업 변경 성공
*/
int api_user_SetUserJobID(UINT nUserObjectID, int nJobID);
/*
desc : 유저의 전직 직업이 특정 전직 계열에 있는지 확인
param : 유저인덱스, 선행 전직 직업
return : -1 : 유저를 찾을수 없음 / 0 : 같은 계열이 아님 / 1 : 같은 계열이 맞음
*/
int api_user_IsJobInSameLine(UINT nUserObjectID, int nBaseJobID);
/*
desc : 유저가 캐쉬 아이템을 가지고 있는지 확인한다.
param : 유저인덱스, 아이템인덱스, 아이템 카운트
return : -1 => 유저를 찾을수 없음 -2 => 아이템을 찾을수 없음, -3 아이템 갯수 부족, 0 보다 크면 true ( 갯수를 리턴 )
*/
int api_user_HasCashItem(UINT nUserObjectID, int nItemIndex, int nItemCnt);
/*
desc : 유저가 장비에 캐쉬 아이템을 가지고 있는지 확인한다.
param : 유저인덱스, 아이템인덱스
return : -1 => 유저를 찾을수 없음 -2 => 아이템을 찾을수 없음, 1 포함 그외 true
*/
int api_user_HasCashItemEquip(UINT nUserObjectID, int nItemIndex);
/*
desc : 특정 카운팅 타입, ID 에 대해서 임의로 카운팅을 증가시킨다.
param : 유저인덱스,
카운팅할 타입 (CountingType_MyMonsterKill = 1, CountingType_AllMonsterKill = 2, CountingType_Item = 3),
카운팅할 것의 인덱스 (아이템 ID, 몬스터 ID 등등)
return : -1 => 유저를 찾을수 없음, 1 => 성공
*/
int api_quest_IncCounting(UINT nUserObjectID, int nCountingType, int nCountingIndex);
/*
desc : 유저가 진행 가능 최대 퀘스트 수에 도달하였는지 여부를 반환한다.
param : 유저인덱스, 퀘스트인덱스
return : -1 : 유저를 찾을수 없음, 1 : 최대 퀘스트 수에 도달 함, 그외 : 아님
*/
int api_quest_IsPlayingQuestMaximum(UINT nUserObjectID);
/*
desc : 특정 퀘스트를 강제 완료 시킨다. (진행 중이 아닌 퀘스트는 추가하여 완료)
param : 유저인덱스, 퀘스트인덱스, 퀘스트 코드 (0:일반 / 1:시간제), 마킹여부 (1:마킹/0:안함), 삭제여부 (1:삭제/0:않함), 반복여부 (1:반복/0:안함)
return : -1 : 유저를 찾을수 없음, 1 : 최대 퀘스트 수에 도달 함, 그외 : 아님
*/
int api_quest_ForceCompleteQuest(UINT nUserObjectID, int nQuestID, int nQuestCode, int bDoMark, int bDoDelete, int bDoRepeat);
/*
desc : 스킬을 초기화한다
param : 유저인덱스, 퀘스트인덱스,
return : -1 : 유저를 찾을수 없음, -2 : 퀘스트를 찾을수 없음, -3: 이미 완료한 퀘스트임, 1 : 스킬초기화 성공
*/
int api_quest_ResetSkill(UINT nUserObjectID, int nQuestID);
/*
desc : 월드이벤트 완료스텝 알려준다.
param : 유저인덱스, 스케쥴ID
return : -1 : 에러, 0: 완료, 1 : 시작안내, 2: 수집기간, 3: 보상안내, 4: 보상기간
*/
int api_quest_GetWorldEventStep(UINT nUserObjectID, int nScheduleID);
/*
desc : 월드이벤트 완료횟수 알려준다.
param : 유저인덱스, 스케쥴ID
return : -1 : 에러, 그외 현재 카운트
*/
int api_quest_GetWorldEventCount (UINT nUserObjectID, int nScheduleID);
/*
desc : 아이템을 NPC에게 반납한후 카운트를 퀘스트에 누적한다.
param : 유저인덱스, 스케쥴ID
return : -1 : 에러, 그외 반납된 카운트
*/
int api_quest_ReturnItemToNpc (UINT nUserObjectID, int nScheduleID);
/*
desc : 아이템을 NPC에게 반납한 현재 카운트 상황을 알려준다.
param : 유저인덱스, 스케쥴ID
*/
void api_quest_OpenScoreWorldEvent (UINT nUserObjectID, int nScheduleID);
/*
desc : 특정 사용자에게 농장구역 리스트를 보여준다
param : 유저인덱스
return : -1 : 유저를 찾을수 없음, 1 성공
*/
int api_quest_OpenFarmAreaList (UINT nUserObjectID);
/*
desc : 특정 사용자의 위치를 이동 시킨다.
param : 유저인덱스, X 좌표, Y 좌표, Z 좌표
return : -1 : 유저를 찾을수 없음, 1 성공
*/
int api_user_ChangePos(UINT nUserObjectID, int nX, int nY, int nZ , int nLookX = 0, int nLookY = 0);
/*
desc : NPC 호의Point 를 얻어온다.
param : 유저인덱스, NpcID
return : -1 => 유저를 찾을수 없음, -2 => 시스템에러 그외 => 리턴값
*/
int api_npc_GetFavorPoint( UINT uiUserObjectID, int iNpcID );
/*
desc : NPC 악의Point 를 얻어온다.
param : 유저인덱스, NpcID
return : -1 => 유저를 찾을수 없음, -2 => 시스템에러 그외 => 리턴값
*/
int api_npc_GetMalicePoint( UINT uiUserObjectID, int iNpcID );
/*
desc : NPC 호의Percent 를 얻어온다.
param : 유저인덱스, NpcID
return : -1 => 유저를 찾을수 없음, -2 => 시스템에러 그외 => 리턴값
*/
int api_npc_GetFavorPercent( UINT uiUserObjectID, int iNpcID );
/*
desc : NPC 악의Percent 를 얻어온다.
param : 유저인덱스, NpcID
return : -1 => 유저를 찾을수 없음, -2 => 시스템에러 그외 => 리턴값
*/
int api_npc_GetMalicePercent( UINT uiUserObjectID, int iNpcID );
/*
desc : NPC 호의Point 를 가감한다.
param : 유저인덱스, NpcID, 가감값(- 넣으면 감소함)
return : -1 => 유저를 찾을수 없음, -2 => 시스템에러 그외 => 리턴값
*/
int api_npc_AddFavorPoint( UINT uiUserObjectID, int iNpcID, int val );
/*
desc : NPC 악의Point 를 가감한다.
param : 유저인덱스, NpcID, 가감값(- 넣으면 감소함)
return : -1 => 유저를 찾을수 없음, -2 => 시스템에러 그외 => 리턴값
*/
int api_npc_AddMalicePoint( UINT uiUserObjectID, int iNpcID, int val );
/*
desc : NPC 에게 보낼 선물 선택한 정보를 서버로 보내라고 클라이언트에게 요청.
param : 유저인덱스, NpcID
return : -1 => 유저를 찾을수 없음, -2 => 시스템에러 그외 => 리턴값
*/
int api_npc_SendSelectedPresent( UINT uiUserObjectID, int iNpcID );
/*
desc : NPC 가 분노 이펙트를 출력하도록 클라이언트에게 요청.
param : 유저인덱스, NpcID
return : -1 => 유저를 찾을수 없음, -2 => 시스템에러 그외 => 리턴값
*/
int api_npc_Rage( UINT uiUserObjectID, int iNpcID );
/*
desc : NPC 가 실망 이펙트를 출력하도록 클라이언트에게 요청.
param : 유저인덱스, NpcID
return : -1 => 유저를 찾을수 없음, -2 => 시스템에러 그외 => 리턴값
*/
int api_npc_Disappoint( UINT uiUserObjectID, int iNpcID );
/*
desc : 특정 사용자의 전체 스킬을 리셋시킨다.
param : 유저인덱스
return : -1 : 유저를 찾을수 없음, 1 : 성공
*/
int api_user_ResetSkill(UINT nUserObjectID);
/*
desc : 특정 사용자가 보조 스킬을 새롭게 배운다.
param : 유저인덱스, 보조스킬ID
return : -1 : 유저를 찾을수 없음, 1 : 성공, 0 : 실패
*/
int api_npc_CreateSecondarySkill( UINT uiObjectUserID, int iSkillID );
/*
desc : 특정 사용자가 보조 스킬을 배웠는지 체크
param : 유저인덱스, 보조스킬ID
return : -1 : 유저를 찾을수 없음, 1 : 성공, 0 : 실패
*/
int api_npc_CheckSecondarySkill( UINT uiObjectUserID, int iSkillID );
/*
desc : 유저에게 길드창고를 열라고 알린다.
param : 유저인덱스
return : -1 => 유저를 찾을 수 없음, -2=>길드원이 아님, 1=>성공
*/
int api_ui_OpenGuildWareHouse (UINT nUserObjectID);
/*
desc : 유저의 현재길드의 창고소유여부를 알려준다.
param : 유저인덱스
return : -1 : 유저를찾을수없음/ 0 : 길드창고없음/ 1 : 길드창고있음
*/
int api_guild_HasGuildWare(UINT nUserObjectID);
/*
desc : 유저에게 무비 클립 브라우저를 열라고 시킨다.
param : 유저인덱스
return : -1 => 유저를 찾을수 없음, 1이면 성공
*/
int api_ui_OpenMovieBrowser(UINT nUserObjectID);
/*
desc : 길드전 신청 여부를 알려준다.
param : 유저인덱스
return : -1 : 유저를 찾을수 없음 / 0 : 길드전 신청불가능 / 1 : 길드전 신청가능
*/
int api_guildwar_IsPreparation(UINT nUserObjectID);
/*
desc : 길드전 기간 체크.
param : 유저인덱스
return : -1 : 유저를 찾을수 없음 / eGuildWarStepType / 0 : 길드전 기간 아님 / 1 : 길드전 신청 기간 / 2 : 길드전 예선 기간 / 3 : 본선 및 보상기간
*/
int api_guildwar_GetStep(UINT nUserObjectID);
/*
desc : 길드전 예선 진행 현황 보기
param : 유저인덱스
return : return : -1 => 유저를 찾을수 없음, -2 => 예선전 기간이 아님, 0 : 성공
*/
int api_guildwar_GetTrialCurrentState(UINT nUserObjectID);
/*
desc : 길드전 예선 결과
param : 유저인덱스
return : return : -1 => 유저를 찾을수 없음, -2 => 본선 및 보상기간이 아님, -3 => 아직 예선결과 집계가 완료되지 않음, 0 : 성공
*/
int api_guildWar_GetTrialStats(UINT nUserObjectID);
/*
desc : 길드전 결승 대진표 보기
param : 유저인덱스
return : return : -1 => 유저를 찾을수 없음, -2 => 본선 및 보상기간이 아님, -3 => 대진표가 셋팅되지 않았음, 0: 성공
*/
int api_guildWar_GetMatchList(UINT nUserObjectID);
/*
desc : 길드전 인기 투표 결과
param : 유저인덱스
return : return : -1 => 유저를 찾을수 없음, -2 => 지난 인기 투표 결과 없음, -3 => 길드전이 진행중임, 0: 성공
*/
int api_guildWar_GetPopularityVote(UINT nUserObjectID);
/*
desc : 길드전 본선 유무 체크.
param : 유저인덱스
return : -1 : 유저를 찾을수 없음 / 0 : 본선 진행 안함 / 1 : 본선 진행함
*/
int api_guildWar_GetFinalProgress(UINT nUserObjectID);
/*
desc : 유저에게 브라우저를 열라고 시킨다.
param : 유저인덱스
return : -1 => 유저를 찾을수 없음, 1이면 성공
*/
int api_ui_OpenBrowser(UINT nUserObjectID, const char* szUrl, int nX, int nY, int nWidth, int nHeight);
/*
desc : 기부 창을 연다.
param :
return : -1 => 유저를 찾을수 없음. 1이면 성공.
*/
int api_ui_OpenDonation(UINT nUserObjectID);
/*
desc : 인벤토리 창을 연다.
param :
return : -1 => 유저를 찾을수 없음. 1이면 성공.
*/
int api_ui_OpenInventory(UINT nUserObjectID);
/*
desc : 유저의 PC Cafe등급
param :
return : -1 => 유저를 찾을수 없음, 0 => PC방이 아님. 나머지 PC방 등급.
*/
int api_user_GetPCCafe(UINT nUserObjectID);
/*
desc : PC방 유저에게 무기, 탈것과 같은 대여아이템을 만들어서 넣어준다.
param :
return : -1 => 유저를 찾을수 없음, 0 => 성공, 1 => 인벤이 모자름, 2 => 이미 대여아이템을 가지고 있음 3 =>
*/
int api_user_SetPCCafeItem(UINT nUserObjectID);
/*
desc : 유저가 가진 장비 아이템을 수리하고, 수리비용을 차감합니다.
param : 유저, 전체수리 유무(1-전체수리, 0-장착한아이템)
return : -1 : 유저를 찾을수 없음 / 0 : 수리할 아이템 없음 / 1 : 소지금 부족 / 2 : 아이템 수리 완료
*/
int api_user_RepairItem(UINT nUserObjectID, int iAllRepair);
/*
desc : 유저에게 강화이동창을 열라고 시킨다.
param : 유저
return : -1 => 유저를 찾을수 없음, 1이면 성공
*/
int api_ui_OpenExchangeEnchant(UINT nUserObjectID);
/*
desc : 해당 맵이 닫혀있는지 확인한다.
param : 유저, 맵 인덱스
return : 1 이면 오픈, 0 이면 클로즈
*/
int api_env_CheckCloseGateByTime(int iMapIndex);
/*
desc : 코스튬 랜덤 합성창을 연다
param : 유저
return : -1 => 유저를 찾을수 없음, 1이면 성공
*/
int api_ui_OpenCostumeRandomMix(UINT nUserObjectID);
/*
desc : 월드버프 줄수 있는지 체크
param : 버프 아이템아이디
return : -1 => 실패, 1이면 성공
*/
int api_quest_WorldBuffCheck(int nItemID);
/*
desc : 월드버프를 줌
param : 버프 아이템아이디
return :
*/
int api_quest_ApplyWorldBuff(UINT nUserObjectID, int nItemID, int nMapIdx);
#if defined(PRE_ADD_DWC)
/*
desc : DWC 팀 생성 DLg를 연다
param : 유저인덱스
return :
*/
void api_ui_OpenCreateDwcTeamDlg(UINT nUserObjectID);
#endif // PRE_ADD_DWC
int api_ui_OpenJobChange(UINT nUserObjectID);