forked from metin2/server
163 lines
5.6 KiB
Plaintext
163 lines
5.6 KiB
Plaintext
quest subquest_47 begin
|
|
|
|
state start begin
|
|
when login or levelup with pc.level >= 50 and pc.level <= 52 begin
|
|
set_state( information )
|
|
end
|
|
end
|
|
|
|
state information begin
|
|
when letter begin
|
|
local v=find_npc_by_vnum(20355)
|
|
if 0==v then
|
|
else
|
|
target.vid("__TARGET__", v, gameforge.subquest_47._10_targetVid)
|
|
end
|
|
end
|
|
when __TARGET__.target.click or 20355.chat.gameforge.subquest_47._20_npcChat with pc.level >= 50 begin
|
|
target.delete("__TARGET__")
|
|
say_title(gameforge.main_quest_lv10._30_sayTitle)
|
|
say(gameforge.subquest_47._30_say)
|
|
-- select: take quest / give up quest
|
|
local r= select(gameforge.find_brother_article._90_select, gameforge.subquest_01._60_select)
|
|
-- give up quest
|
|
if 2==r then
|
|
say(gameforge.subquest_47._40_say) -- give up yes/no
|
|
local a= select(gameforge.locale.guild.yes, gameforge.locale.guild.no)
|
|
-- dont give up
|
|
if 2==a then
|
|
say_title(gameforge.main_quest_lv10._30_sayTitle)
|
|
say(gameforge.subquest_47._50_say)
|
|
return
|
|
end
|
|
-- give up
|
|
say_title(gameforge.main_quest_lv10._30_sayTitle)
|
|
say(gameforge.subquest_47._60_say)
|
|
set_state(__GIVEUP__)
|
|
return
|
|
end
|
|
-- dont give up quest
|
|
say_title(gameforge.main_quest_lv10._30_sayTitle)
|
|
say(gameforge.subquest_47._70_say)
|
|
wait()
|
|
say_title(gameforge.main_quest_lv10._30_sayTitle)
|
|
say(gameforge.subquest_47._80_say) -- displays the riddle text
|
|
wait()
|
|
say_title(gameforge.main_quest_lv10._30_sayTitle)
|
|
say(gameforge.subquest_47._90_say)
|
|
-- select: answer question / i dont know / show again
|
|
local s= select(gameforge.subquest_47._100_select, gameforge.subquest_47._110_select, gameforge.subquest_47._115_select)
|
|
-- i dont know
|
|
if 2==s then
|
|
say(gameforge.subquest_47._120_say)
|
|
-- select: give up yes / no
|
|
local a= select(gameforge.locale.guild.yes, gameforge.locale.guild.no)
|
|
-- show riddle again
|
|
if 2==a then
|
|
say_title(gameforge.main_quest_lv10._30_sayTitle)
|
|
say(gameforge.subquest_47._130_say)
|
|
return
|
|
end
|
|
-- give up quest
|
|
say_title(gameforge.main_quest_lv10._30_sayTitle)
|
|
say(gameforge.subquest_47._140_say)
|
|
set_state(__GIVEUP__)
|
|
return
|
|
end
|
|
-- show the riddle again
|
|
if 3==s then
|
|
say_title(gameforge.main_quest_lv10._30_sayTitle)
|
|
say(gameforge.subquest_47._150_say) -- displays the riddle text again
|
|
wait()
|
|
end
|
|
say_title(gameforge.main_quest_lv10._30_sayTitle)
|
|
say(gameforge.subquest_47._160_say)
|
|
-- input answer
|
|
local answer = select( gameforge.subquest_47._302_answer_wrong, gameforge.subquest_47._304_answer_wrong, gameforge.subquest_47._301_answer_correct, gameforge.subquest_47._303_answer_wrong, gameforge.subquest_47._305_answer_dontknow)
|
|
-- input correct answer -> quest complete
|
|
if 3 == answer then
|
|
say_title(gameforge.main_quest_lv10._30_sayTitle)
|
|
say(gameforge.subquest_47._170_say)
|
|
say_reward(gameforge.subquest_47._180_sayReward)
|
|
pc.give_exp2(2300000)
|
|
clear_letter()
|
|
set_state(__COMPLETE__)
|
|
return
|
|
-- input no answer
|
|
elseif 5 == answer then
|
|
say_title(gameforge.main_quest_lv10._30_sayTitle)
|
|
say(gameforge.subquest_47._190_say)
|
|
-- select: try again / i dont know
|
|
local answer = select(gameforge.subquest_47._200_select, gameforge.subquest_47._210_select)
|
|
-- i dont know
|
|
if 2==answer then
|
|
say_title(gameforge.main_quest_lv10._30_sayTitle)
|
|
say(gameforge.subquest_47._220_say)
|
|
return
|
|
end
|
|
-- try again
|
|
say_title(gameforge.main_quest_lv10._30_sayTitle)
|
|
say(gameforge.subquest_47._230_say)
|
|
local answer = select( gameforge.subquest_47._304_answer_wrong, gameforge.subquest_47._301_answer_correct, gameforge.subquest_47._303_answer_wrong, gameforge.subquest_47._302_answer_wrong, gameforge.subquest_47._305_answer_dontknow)
|
|
-- input correct answer -> quest complete
|
|
if 2==answer then
|
|
say_title(gameforge.main_quest_lv10._30_sayTitle)
|
|
say(gameforge.subquest_47._240_say)
|
|
say_reward(gameforge.subquest_47._250_sayReward)
|
|
pc.give_exp2(2300000)
|
|
clear_letter()
|
|
set_state(__COMPLETE__)
|
|
return
|
|
-- input wrong answer
|
|
else
|
|
say_title(gameforge.main_quest_lv10._30_sayTitle)
|
|
say(gameforge.subquest_47._260_say)
|
|
return
|
|
end
|
|
-- wrong answer
|
|
else
|
|
say_title(gameforge.main_quest_lv10._30_sayTitle)
|
|
say(gameforge.subquest_47._270_say)
|
|
-- select: try again / i dont know
|
|
local a= select(gameforge.subquest_47._280_select, gameforge.subquest_47._290_select)
|
|
-- i dont know -> give up
|
|
if 2==a then
|
|
say_title(gameforge.main_quest_lv10._30_sayTitle)
|
|
say(gameforge.subquest_47._220_say)
|
|
set_state(__GIVEUP__)
|
|
return
|
|
end
|
|
-- try again
|
|
say(gameforge.subquest_47._300_say)
|
|
local answer = select( gameforge.subquest_47._301_answer_correct, gameforge.subquest_47._302_answer_wrong, gameforge.subquest_47._303_answer_wrong, gameforge.subquest_47._304_answer_wrong, gameforge.subquest_47._305_answer_dontknow)
|
|
-- correct answer
|
|
if 1==answer then
|
|
say_title(gameforge.main_quest_lv10._30_sayTitle)
|
|
say(gameforge.subquest_47._310_say)
|
|
say_reward(gameforge.subquest_47._180_sayReward)
|
|
pc.give_exp2(2300000)
|
|
say_reward(gameforge.subquest_47._320_sayReward)
|
|
pc.change_money(20000)
|
|
clear_letter()
|
|
set_state(__COMPLETE__)
|
|
return
|
|
-- no or wrong answer -> retry by clicking captain (20355.chat) again
|
|
else
|
|
say_title(gameforge.main_quest_lv10._30_sayTitle)
|
|
say(gameforge.subquest_47._330_say)
|
|
return
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
state __COMPLETE__ begin
|
|
when enter begin
|
|
q.done()
|
|
end
|
|
end
|
|
state __GIVEUP__ begin
|
|
end
|
|
end
|
|
|