forked from metin2/server
1
0
Fork 0
server/gamefiles/locale/english/quest/new_quest_lv54.quest

245 lines
9.9 KiB
Plaintext
Raw Normal View History

quest new_quest_lv54 begin
state start begin
when login or levelup with pc.get_level() >= 54 begin
set_state(information)
end
end
-------------- the captain needs supplies from the trader, but she can't sell enough potions ------------------------------------------------------
state information begin
when login or enter begin
local v=find_npc_by_vnum(20355) -- Hauptmann
if 0==v then
else
target.vid("__TARGET__", v, gameforge.new_quest_lv54._010_target)
end
end
when 20355.chat.gameforge.new_quest_lv54._020_say_title begin
target.delete("__TARGET__")
say_title(gameforge.new_quest_lv54._056_say_title) -- yellow text headline
say(gameforge.new_quest_lv54._030_say) -- white font text
say(gameforge.new_quest_lv54._031_say_reward)
local doquest = select(gameforge.new_quest_lv54._032_select, gameforge.subquest_12._50_select, gameforge.new_quest_lv75._290_2_select)
if doquest ==1 then
set_state(ask_trader)
elseif doquest == 3 then
say(gameforge.subquest_06._60_say)
local abortquest = select(gameforge.subquest_06._70_select, gameforge.subquest_06._80_select)
if abortquest == 1 then
set_state(__GIVEUP__)
else
say_title(gameforge.new_quest_lv54._056_say_title) -- yellow text headline
say(gameforge.subquest_11._80_say)
return
end
else
say_title(gameforge.new_quest_lv54._056_say_title) -- yellow text headline
say(gameforge.subquest_11._80_say)
return
end
end
end
-------------- player has to ask her why there are too less potions ------------------------------------------------------
state ask_trader begin
when enter or login begin
send_letter(gameforge.new_quest_lv54._020_say_title)
q.start()
q.set_title(gameforge.new_quest_lv54._020_say_title)
local v=find_npc_by_vnum(9003) --Gemischtwarenh<6E>ndlerin
if 0==v then
else
target.vid("__TARGET2__", v, gameforge.new_quest_lv54._050_target)
end
end
when 9003.chat.gameforge.new_quest_lv54._020_say_title begin
target.delete("__TARGET2__")
say_title(gameforge.new_quest_lv54._040_say_title) -- yellow text headline
say(gameforge.new_quest_lv54._051_say)
wait()
say_title(gameforge.new_quest_lv54._040_say_title)
say(gameforge.new_quest_lv54._052_say)
--say_reward(gameforge.new_quest_lv54._053_say_reward)
q.done()
set_state(ask_captain)
end
when info or button begin
say_title(gameforge.new_quest_lv54._020_say_title)
say(gameforge.new_quest_lv54._054_say)
say("")
say(string.format(gameforge.new_quest_lv54._055_say, get_map_name_by_number(1)))
end
end
-------------- player has to ask the captain to secure trading routes for the traders to guarantee supplies ------------------------------------------------------
state ask_captain begin
when login or enter begin
send_letter(gameforge.new_quest_lv54._020_say_title)
q.start()
q.set_title(gameforge.new_quest_lv54._020_say_title)
local v=find_npc_by_vnum(20355) -- Hauptmann
if 0==v then
else
target.vid("__TARGET3__", v, gameforge.new_quest_lv54._010_target)
end
end
when 20355.chat.gameforge.new_quest_lv54._020_say_title begin
target.delete("__TARGET3__")
say_title(gameforge.new_quest_lv54._056_say_title) -- yellow text headline
say(gameforge.new_quest_lv54._060_say) -- white font text
wait()
say_title(gameforge.new_quest_lv54._056_say_title)
say(gameforge.new_quest_lv54._061_say)
say(gameforge.new_quest_lv54._062_say_reward)
q.done()
set_state(ask_yangshin)
end
when info or button begin
say_title(gameforge.new_quest_lv54._020_say_title)
say(gameforge.new_quest_lv54._064_say)
say("")
say(string.format(gameforge.new_quest_lv54._065_say, get_map_name_by_number(1)))
end
end
-------------- the player has to ask yang-shin to kill the tigers, because only hunters are allowed to kill animals ------------------------------------------------------
state ask_yangshin begin
when login or enter begin
new_quest_lv54_neededAmountDrop1 = 20
new_quest_lv54_mob1 = 144 -- haunted white tiger
new_quest_lv54_drop1 = 30176 -- white tiger skin
send_letter(gameforge.new_quest_lv54._020_say_title)
q.start()
q.set_title(gameforge.new_quest_lv54._020_say_title)
local v=find_npc_by_vnum(20019) -- Yang Shin
if 0==v then
else
target.vid("__TARGET4__", v, gameforge.new_quest_lv54._070_target)
end
end
when 20019.chat.gameforge.new_quest_lv54._020_say_title begin
target.delete("__TARGET4__")
say_title(gameforge.new_quest_lv54._077_say_title) -- yellow text headline
say(gameforge.new_quest_lv54._071_say)
wait()
say_title(gameforge.new_quest_lv54._077_say_title)
say(gameforge.new_quest_lv54._072_say)
say("")
say(gameforge.new_quest_lv54._073_say)
wait()
say(gameforge.new_quest_lv54._074_say )
say_reward(string.format("%s x", new_quest_lv54_neededAmountDrop1))
say_item_vnum(new_quest_lv54_drop1) -- icon of item
say_reward(gameforge.new_quest_lv54._075_say )
say(mob_name(new_quest_lv54_mob1))
q.done()
set_state(hunting)
end
when info or button begin
say_title(gameforge.new_quest_lv54._020_say_title)
say(gameforge.new_quest_lv54._076_say)
say("")
say(string.format(gameforge.new_quest_lv54._078_say, get_map_name_by_number(3)))
end
end
-------------- yang-shin wants the player to hunt tigers for him, because they have too less hunters to kill all the agressive animals ------------------------------------------------------
state hunting begin
when enter or login begin
new_quest_lv54_neededAmountDrop1 = 20
new_quest_lv54_dropProb1 = 6
new_quest_lv54_mob1 = 144 -- haunted white tiger
new_quest_lv54_drop1 = 30176 -- white tiger skin
send_letter(gameforge.new_quest_lv54._020_say_title)
q.start()
q.set_title(gameforge.new_quest_lv54._020_say_title)
end
-------------- tiger skin ------------------------------------------------------
-- kill a 144#haunted white tiger
when 144.kill begin
if pc.getqf("collect_count_1") < new_quest_lv54_neededAmountDrop1 then
if math.random(1,100) <= new_quest_lv54_dropProb1 then -- probability if s.th. drops
local index =pc.getqf("collect_count_1") + 1
pc.setqf("collect_count_1",index) --you got one, so you would get +1
pc.give_item2(new_quest_lv54_drop1)
if new_quest_lv54_neededAmountDrop1 == pc.getqf("collect_count_1") then
notice_multiline(gameforge.new_quest_lv54._082_notice, notice)
-- you have all, so remove collected Amount
pc.setqf("collect_count_1",index - new_quest_lv54_neededAmountDrop1)
q.done()
set_state(backto_yangshin)
else
notice(string.format(gameforge.new_quest_lv54._081_notice, new_quest_lv54_neededAmountDrop1-pc.getqf("collect_count_1")))
end
else
notice_multiline(gameforge.new_quest_lv54._083_notice, notice)
end
end
end
when info or button begin
say_title(gameforge.new_quest_lv54._020_say_title)
say(gameforge.new_quest_lv54._085_say)
if new_quest_lv54_neededAmountDrop1 != pc.getqf("collect_count_1") then
say("")
say_reward(string.format(gameforge.new_quest_lv54._084_say, new_quest_lv54_neededAmountDrop1-pc.getqf("collect_count_1")))
else
notice_multiline(gameforge.new_quest_lv54._082_notice, notice)
end
end
when 20019.chat.gameforge.new_quest_lv54._020_say_title begin
say_title(gameforge.new_quest_lv54._077_say_title)
say(gameforge.new_quest_lv54._091_say)
end
end
-------------- player brings tiger skin to yang shin, too proove he killed them and wants the promised tiger-shield for his efforts ------------------------------------------------------
state backto_yangshin begin
when enter or login begin
new_quest_lv54_amountYang = 125000
new_quest_lv54_amountXp = 3750000
new_quest_lv54_rewardVnum = 13083
new_quest_lv54_neededAmountDrop1 = 20
new_quest_lv54_drop1 = 30176 -- white tiger skin
send_letter(gameforge.new_quest_lv54._020_say_title)
q.start()
q.set_title(gameforge.new_quest_lv54._020_say_title)
end
when 20019.chat.gameforge.new_quest_lv54._020_say_title begin
say_title(gameforge.new_quest_lv54._077_say_title)
if pc.count_item(new_quest_lv54_drop1) >= new_quest_lv54_neededAmountDrop1 then
say(gameforge.new_quest_lv54._092_say)
say(gameforge.new_quest_lv54._093_say )
wait()
say_title(gameforge.new_quest_lv54._077_say_title)
say(gameforge.new_quest_lv54._094_say )
say(gameforge.new_quest_lv54._095_say_reward)
say_title(gameforge.new_quest_lv54._096_say)
say_reward(string.format(gameforge.new_quest_lv54._101_say_reward, new_quest_lv54_amountXp))
say_reward(string.format(gameforge.new_quest_lv54._102_say_reward, new_quest_lv54_amountYang))
say_reward(string.format(gameforge.new_quest_lv54._097_say_reward, item_name(new_quest_lv54_rewardVnum)))
pc.change_money(new_quest_lv54_amountYang)
pc.give_exp2(new_quest_lv54_amountXp)
pc.give_item2(new_quest_lv54_rewardVnum)
pc.remove_item(new_quest_lv54_drop1, pc.count_item(new_quest_lv54_drop1))
q.done()
set_state(__COMPLETE__)
else
-- this happens, if the player sold or dropped needed items:
say(gameforge.new_quest_lv54._098_say)
say_reward(string.format(gameforge.new_quest_lv54._099_say_reward, new_quest_lv54_neededAmountDrop1))
pc.setqf("collect_count_1", pc.count_item(new_quest_lv54_drop1))
q.done()
set_state(hunting)
end
end
when info or button begin
say_title(gameforge.new_quest_lv54._020_say_title)
say(gameforge.new_quest_lv54._100_say)
say("")
say(string.format(gameforge.new_quest_lv54._078_say, get_map_name_by_number(3)))
end
end
------ give up ------------------------------------------------------------------------------------------------------
state __GIVEUP__ begin
end
------ complete ------------------------------------------------------------------------------------------------------
state __COMPLETE__ begin
end
end