forked from metin2/server
1
0
Fork 0
server/gamefiles/data/quest/collect_quest_lv60.quest

232 lines
6.4 KiB
Plaintext

quest collect_quest_lv60 begin
state start begin
end
state run begin
when login or levelup with pc.level >= 60 begin
set_state(information)
end
end
state information begin
when letter begin
local v = find_npc_by_vnum(20084)
if v != 0 then
target.vid("__TARGET__", v, gameforge.collect_quest_lv40._210_targetVid)
end
send_letter(gameforge.collect_quest_lv60._10_sendLetter)
end
when button or info begin
say_title(gameforge.collect_quest_lv60._20_sayTitle)
say(gameforge.collect_quest_lv60._30_say)
end
when __TARGET__.target.click or 20084.chat.gameforge.collect_quest_lv60._40_npcChat begin
target.delete("__TARGET__")
say_title(gameforge.collect_quest_lv60._50_sayTitle)
say(gameforge.collect_quest_lv60._60_say)
wait()
say_title(gameforge.collect_quest_lv60._50_sayTitle)
say(gameforge.collect_quest_lv60._70_say)
wait()
say_title(gameforge.collect_quest_lv60._50_sayTitle)
say(gameforge.collect_quest_lv60._80_say)
set_state(go_to_disciple)
pc.setqf("duration",0) -- Versuchszeit
pc.setqf("collect_count",0)--gesammte Zahl der Artikel
pc.setqf("drink_drug",0) --Wenn das Verwirrungswasser trinkt, plus 1
end
end
state go_to_disciple begin
when letter begin
send_letter(gameforge.collect_quest_lv60._90_sendLetter)
end
when button or info begin
say_title(gameforge.collect_quest_lv60._100_sayTitle)
say(gameforge.collect_quest_lv60._110_say)
say_item_vnum(30050)
say_reward(string.format(gameforge.collect_quest_lv60._110_sayReward, pc.getqf("collect_count")))
end
when 71035.use begin --DasVerwirrungswasser
if get_time() < pc.getqf("duration") then
say(gameforge.collect_quest_lv60._120_say)
return
end
if pc.getqf("drink_drug")==1 then
say(gameforge.collect_quest_lv60._130_say)
return
end
if pc.count_item(30050)==0 then
say_title(gameforge.collect_quest_lv60._140_sayTitle)
say(gameforge.collect_quest_lv60._150_say)
return
end
pc.remove_item(71035, 1)
pc.setqf("drink_drug",1)
end
when 20084.chat.gameforge.collect_quest_lv60._160_npcChat with pc.count_item(30050) >0 begin
if get_time() > pc.getqf("duration") then
if pc.count_item(30050) >0 then
say_title(gameforge.collect_quest_lv60._50_sayTitle)
say(gameforge.collect_quest_lv60._170_say)
pc.remove_item(30050, 1)
pc.setqf("duration",get_time()+60*60*22)------------------22Stunden
wait()
local pass_percent
if pc.getqf("drink_drug")==0 then
pass_percent=60
else
pass_percent=90
end
local s= number(1,100)
if s<= pass_percent then
if pc.getqf("collect_count")< 19 then --nicht mehr als 20
local index =pc.getqf("collect_count")+1
pc.setqf("collect_count",index) --Da du noch einen besorgst, macht man plus eins
say_title(gameforge.collect_quest_lv60._140_sayTitle)
say(string.format(gameforge.collect_quest_lv60._180_say, 20-pc.getqf("collect_count")))
pc.setqf("drink_drug",0) --Anfang mit dem Verwirrungswasser
return
end
say_title(gameforge.collect_quest_lv60._50_sayTitle)
say(gameforge.collect_quest_lv60._190_say)
pc.setqf("collect_count",0)
pc.setqf("drink_drug",0)
pc.setqf("duration",0)
set_state(key_item)
return
else
say_title(gameforge.collect_quest_lv60._50_sayTitle)
say(gameforge.collect_quest_lv60._200_say)
pc.setqf("drink_drug",0) --Anfang mit dem Verwirrungswasser
return
end
else
say_title(gameforge.collect_quest_lv60._50_sayTitle)
--say(string.format(gameforge.collect_quest_lv40._190_say, item_name(30050)))
say(gameforge.collect_quest_lv60._205_say)
return
end
else
say_title(gameforge.collect_quest_lv60._50_sayTitle)
say(gameforge.collect_quest_lv60._210_say)
return
end
end
end
state key_item begin
when letter begin
send_letter(gameforge.collect_quest_lv60._220_sendLetter)
if pc.count_item(30223)>0 then
local v = find_npc_by_vnum(20084)
if v != 0 then
target.vid("__TARGET__", v, gameforge.collect_quest_lv40._210_targetVid)
end
end
end
when button or info begin
if pc.count_item(30223) >0 then
say_title(gameforge.collect_quest_lv60._230_sayTitle)
say(gameforge.collect_quest_lv60._240_say)
return
end
say_title(gameforge.collect_quest_lv60._250_sayTitle)
say(gameforge.collect_quest_lv60._260_say)
say_item_vnum(30223)
say(gameforge.collect_quest_lv60._270_say)
end
when 1101.kill or 1102.kill or 1103.kill or 1104.kill or 1105.kill or 1106.kill or 1107.kill begin
local s = number(1, 500)
if s == 1 and pc.count_item(30223)==0 then
pc.give_item2(30223, 1)
send_letter(gameforge.collect_quest_lv60._280_sendLetter)
end
end
when __TARGET__.target.click or 20084.chat.gameforge.collect_quest_lv60._290_npcChat with pc.count_item(30223) > 0 begin
target.delete("__TARGET__")
if pc.count_item(30223) > 0 then
say_title(gameforge.collect_quest_lv60._50_sayTitle)
say(gameforge.collect_quest_lv60._300_say)
pc.remove_item(30223,1)
set_state(__reward)
else
say_title(gameforge.collect_herb_lv10._50_sayTitle)
--say(string.format(gameforge.collect_quest_lv30._290_say, item_name(30223)))
say(gameforge.collect_quest_lv60._305_say)
return
end
end
end
state __reward begin
when letter begin
send_letter(gameforge.collect_quest_lv60._310_sendLetter)
local v = find_npc_by_vnum(20018)
if v != 0 then
target.vid("__TARGET__", v, gameforge.collect_quest_lv30._310_targetVid)
end
end
when button or info begin
say_title(gameforge.collect_quest_lv40._300_sendLetter)
say(gameforge.collect_quest_lv60._320_say)
end
when __TARGET__.target.click or 20018.chat.gameforge.collect_quest_lv60._330_npcChat begin
target.delete("__TARGET__")
say_title(gameforge.collect_quest_lv30._340_sayTitle)
say(gameforge.collect_quest_lv60._340_say)
wait()
say_pc_name()
say(gameforge.collect_quest_lv60._350_say)
wait()
say_title(gameforge.collect_quest_lv30._340_sayTitle)
say(gameforge.collect_quest_lv60._360_say)
say_reward(gameforge.collect_quest_lv60._370_sayReward)
affect.add_collect(apply.ATT_GRADE_BONUS,50,60*60*24*365*60)--60Jahre
pc.give_item2(50112)
clear_letter()
set_quest_state("collect_quest_lv70", "run")
set_state(__complete)
end
end
state __giveup__ begin
end
state __complete begin
end
end