Örnek
if LuaGetPlayerGender() == 0
Male kod satırı
function QNO_LV_ACCESSORY_CH_1()
QUESTID = LuaGetQuestID("QNO_LV_ACCESSORY_CH_1")
LuaSetStartCodition(2,QSC_QUEST,QSC_LEVEL,1,1)
LuaSetRaceStartCodition(QSC_RACE,COUNTRY_CHINA)
QM_CONVERSATION = 1
LuaSetStartMethod(QM_CONVERSATION,3,"NPC_LEVEL_SUPPLIES_GOODS_CH","NPC_LEVEL_SUPPLIES_GOODS_WC","NPC_LEVEL_SUPPLIES_GOODS_KT") --시작 NPC
LuaInsertMissionCompleteNpcList(3,"NPC_LEVEL_SUPPLIES_GOODS_CH","NPC_LEVEL_SUPPLIES_GOODS_WC","NPC_LEVEL_SUPPLIES_GOODS_KT") --종료 NPC
LuaQuestInsertNpc(3,"NPC_LEVEL_SUPPLIES_GOODS_CH","NPC_LEVEL_SUPPLIES_GOODS_WC","NPC_LEVEL_SUPPLIES_GOODS_KT") --사용 NPC
-- 대화 퀘스트 이면서 퀘스트 습득과 동시에 자동완료 되는 경우에는 시작NPC와 완료NPC를 동일하게 작성해야 한다.
LuaSetAchievementLimit(1)
LuaSetMissionDataSize(QUESTID,1)
LuaSetDialLogMissionData(QUESTID,0,MISSION_TYPE_DIALOG,"SN_CON_QNO_LV_ACCESSORY_CH_1_1",1,"SN_TALK_QNO_LV_ACCESSORY_CH_1_03")
InsertQuestMenuStringList("NPC_LEVEL_SUPPLIES_GOODS_CH",4,
"BASIC_MENUSTRING_GREETING","SN_NPC_LEVEL_SUPPLIES_GOODS_CH_QS",
"BASIC_MENUSTRING_ACHIEVED","SN_TALK_QNO_LV_ACCESSORY_CH_1_03",
"BASIC_MENUSTRING_ACHIEVED_NOW","SN_TALK_QNO_LV_ACCESSORY_CH_1_05",
"BASIC_MENUSTRING_INVENTORY_FULL","SN_TALK_QNO_LV_ACCESSORY_CH_1_04")
InsertQuestMenuStringList("NPC_LEVEL_SUPPLIES_GOODS_WC",4,
"BASIC_MENUSTRING_GREETING","SN_NPC_LEVEL_SUPPLIES_GOODS_WC_QS",
"BASIC_MENUSTRING_ACHIEVED","SN_TALK_QNO_LV_ACCESSORY_CH_1_03",
"BASIC_MENUSTRING_ACHIEVED_NOW","SN_TALK_QNO_LV_ACCESSORY_CH_1_05",
"BASIC_MENUSTRING_INVENTORY_FULL","SN_TALK_QNO_LV_ACCESSORY_CH_1_04")
InsertQuestMenuStringList("NPC_LEVEL_SUPPLIES_GOODS_KT",4,
"BASIC_MENUSTRING_GREETING","SN_NPC_LEVEL_SUPPLIES_GOODS_KT_QS",
"BASIC_MENUSTRING_ACHIEVED","SN_TALK_QNO_LV_ACCESSORY_CH_1_03",
"BASIC_MENUSTRING_ACHIEVED_NOW","SN_TALK_QNO_LV_ACCESSORY_CH_1_05",
"BASIC_MENUSTRING_INVENTORY_FULL","SN_TALK_QNO_LV_ACCESSORY_CH_1_04")
LuaInsertQuestFunctionStringList( 1, "CONVERSATION_SINGLE","QNO_LV_ACCESSORY_CH_1_CONVERSATION" )
LuaQuestSetAutoStart( 1, 7 ) --최소, 최대레벨 사이에 있는 캐릭터는 자동으로 퀘스트를 받을 수 있다.
LuaQuestNotStartAfterAbortQuest( 1 ) --퀘스트 포기시 다시 받기 불가
-- 이 퀘스트는 자동 종료다
LuaSetAutoComplete( QUESTID, 1 )
end
function QNO_LV_ACCESSORY_CH_1_CONVERSATION( QUESTID, EventID_Sub, NPCCodeName )
QuestStatus = LuaGetQuestStatus(QUESTID)
-- ShowMenu 함수들에서 사용해야 하는 Index. 내가 선택하고 대화를 건 NPC의 TalkHandlerIndex를 가져온다
-- TalkHandlerIndex 값이 이상하면, 대화 진행이 안되기 때문에 보상 단계 시작 또는 그외 대화가 정상적으로 이루어지지 않는다.
NPCTalkHandlerIndex = LuaQuestGetNPCTalkHandlerIndex( QUESTID, NPCCodeName )
-- -1값이면 이상한 값이기 때문에 기타 메뉴를 띄우거나 Terminate하거나 스크립트 작성자 마음대로~ 또는 퀘스트 규칙대로
if NPCTalkHandlerIndex == -1 then
-- ShowMenu를 하려했는데 이런 상황에서 어떤 스트링을 보여줘야 할 지 몰라 일단 Terminate
EventID_Sub = CONVERSATION_TERMINATE
end
if EventID_Sub == CONVERSATION_START then
if QuestStatus == QUEST_STATUS_NODATA and LuaCheckQuestAchieveCondition( QUESTID ) ~= 0 then
CurPage = CUR_PAGE_01
-- NPCTalkHandlerIndex 사용
LuaQuestShowMenuCommon(CurPage,QUESTID,"SN_TALK_QNO_LV_ACCESSORY_CH_1_05",1,2, NPCTalkHandlerIndex )
else
if (QuestStatus == QUEST_STATUS_ACHIEVING) or (QuestStatus == QUEST_STATUS_ACHIEVING_KILL_MONSTER) or (QuestStatus == QUEST_STATUS_ACHIEVED_KILL_MONSTER) then
if LuaCheckQuestAchieveCondition(QUESTID) == 0 then
--미완료
CurPage = 0
-- NPCTalkHandlerIndex 사용
LuaQuestShowMenuCommon(CurPage,QUESTID,"SN_TALK_QNO_LV_ACCESSORY_CH_1_05",0,1,NPCTalkHandlerIndex)
elseif LuaEnablePayQuestItem(QUESTID) == 0 then
CurPage = 0
LuaQuestShowMenuCommon(CurPage,QUESTID,"SN_TALK_QNO_LV_ACCESSORY_CH_1_04",0,1,NPCTalkHandlerIndex)
else --완료
LuaSetPayStep(QUESTID,1)
LuaSaveLocalQuestNow(QUESTID)
CurPage = 3
-- NPCTalkHandlerIndex 사용
LuaQuestShowRewardWindow( CurPage, QUESTID, "SN_TALK_QNO_LV_ACCESSORY_CH_1_03", NPCTalkHandlerIndex)
end
end
end
return
elseif EventID_Sub == CONVERSATION_RESPONSE then
if QuestStatus == QUEST_STATUS_NODATA then
LuaTerminateQuestMenu()
return
elseif LuaGetQuestCurPage() == 0 then
LuaTerminateQuestMenu()
return
else
if LuaGetQuestCurPage() == CUR_PAGE_03 then --퀘스트완료
if LuabSetPayQuest(QUESTID) == 1 then
LuaSendQuestEventMessage("SN_TALK_COMMON_END")
end
end
LuaGObjAppearedInSight(QUESTID)
end
return
else
LuaTerminateQuestMenu()
LuaGObjAppearedInSight(QUESTID)
end
end
end
else
Famale kod satırı
end