forked from metin2/server
245 lines
9.9 KiB
Plaintext
245 lines
9.9 KiB
Plaintext
|
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
|