forked from metin2/server
261 lines
13 KiB
Plaintext
261 lines
13 KiB
Plaintext
|
quest new_quest_premium_lv4 begin
|
|||
|
-- General notes for changes on 08Oct09, Arne
|
|||
|
-- Fixes according to mantis 0028608
|
|||
|
-- Unified the quest title to gameforge.new_quest_premium_lv4._40_qSetTitle, setting it as title for all dialogue boxes and chat triggers
|
|||
|
-- Added several say_title elements to keep text coloring more consistent
|
|||
|
-- Added send_letters. Important: Only when the send_letter is issued BEFORE the q.set_title will it allow to set unified quest title with varying letters as send_letter seems to overwrite q.set_title
|
|||
|
-- Changed variable scope, adding new_quest_premium_lv4_* prefix -> ususal fix for global variable scope issue
|
|||
|
-- made some loca edits according to mantis 0033359
|
|||
|
state start begin
|
|||
|
when login or levelup with pc.get_level() >= 4 begin
|
|||
|
set_state(information)
|
|||
|
end
|
|||
|
end
|
|||
|
-------------- the trade wants to know, why her lover doesn't visit her anymore ---- --------------------------------------------------
|
|||
|
state information begin
|
|||
|
when login or enter begin
|
|||
|
local v=find_npc_by_vnum(9003) -- Gemischtwarenh<6E>ndlerin
|
|||
|
if 0==v then
|
|||
|
else
|
|||
|
target.vid("__TARGET__", v, gameforge.new_quest_premium_lv4._10_targetVid)
|
|||
|
end
|
|||
|
end
|
|||
|
when __TARGET__.target.click begin
|
|||
|
target.delete("__TARGET__")
|
|||
|
say_title(gameforge.new_quest_premium_lv4._40_qSetTitle) -- yellow text headline
|
|||
|
say(gameforge.new_quest_premium_lv4._30_say )
|
|||
|
set_state(ask_trader)
|
|||
|
end
|
|||
|
end
|
|||
|
-------------- player asks the weapon_trader why he doesn't visit the trader anymore, and gets the quest to farm items for the weapon_trader ------------------------------------------------------
|
|||
|
state ask_trader begin
|
|||
|
when enter or login begin
|
|||
|
--send_letter(gameforge.new_quest_premium_lv4._35_qSetTitle)--added08Oct09by Arne, Reason: no letter
|
|||
|
send_letter(gameforge.new_quest_premium_lv4._40_qSetTitle)--added08Oct09by Arne, Reason: no letter
|
|||
|
pc.setqf("amountYang", 500)
|
|||
|
pc.setqf("amountXp", 1000)
|
|||
|
pc.setqf("neededAmountDrop1", 2)
|
|||
|
pc.setqf("neededAmountDrop2", 1)
|
|||
|
pc.setqf("dropProb1", 40)
|
|||
|
pc.setqf("mob1",104) -- Blau-Wolf
|
|||
|
pc.setqf("drop1", 50705) -- lilac
|
|||
|
pc.setqf("drop2", 30177) -- Vielfarbtrank
|
|||
|
pc.setqf("new_quest_premium_lv4_collect_count_1", 0) --Arne08Oct09, needed initializing
|
|||
|
q.start()
|
|||
|
q.set_title(gameforge.new_quest_premium_lv4._40_qSetTitle)
|
|||
|
local v=find_npc_by_vnum(9001) -- Waffenh<6E>ndler
|
|||
|
if 0==v then
|
|||
|
else
|
|||
|
target.vid("__TARGET2__", v, gameforge.new_quest_premium_lv4._50_targetVid)
|
|||
|
end
|
|||
|
end
|
|||
|
when __TARGET2__.target.click begin
|
|||
|
target.delete("__TARGET2__")
|
|||
|
say_title(gameforge.new_quest_premium_lv4._40_qSetTitle) -- yellow text headline
|
|||
|
say(gameforge.new_quest_premium_lv4._70_say)
|
|||
|
wait()
|
|||
|
say(gameforge.new_quest_premium_lv4._80_say)
|
|||
|
wait()
|
|||
|
say(gameforge.new_quest_premium_lv4._90_say)
|
|||
|
say_reward(string.format("%s x", pc.getqf("neededAmountDrop1")))
|
|||
|
say_item_vnum(pc.getqf("drop1")) -- icon of item
|
|||
|
say_reward(gameforge.new_quest_premium_lv4._100_say_reward)
|
|||
|
say(mob_name(pc.getqf("mob1")))
|
|||
|
set_state(hunting)
|
|||
|
end
|
|||
|
when info or button begin
|
|||
|
say_title(gameforge.new_quest_premium_lv4._40_qSetTitle)
|
|||
|
say(gameforge.new_quest_premium_lv4._110_say)
|
|||
|
end
|
|||
|
end
|
|||
|
-------------- the player has to kill alpha wolves to get lilac ------------------------------------------------------
|
|||
|
state hunting begin
|
|||
|
when enter begin
|
|||
|
--send_letter(gameforge.new_quest_premium_lv4._45_qSetTitle) --added08Oct09by Arne, Reason: no letter
|
|||
|
send_letter(gameforge.new_quest_premium_lv4._40_qSetTitle) --added08Oct09by Arne, Reason: no letter
|
|||
|
q.start()
|
|||
|
q.set_title(gameforge.new_quest_premium_lv4._40_qSetTitle)
|
|||
|
end
|
|||
|
-------------- Flieder ------------------------------------------------------
|
|||
|
-- kill a 104#blue wolf
|
|||
|
when 104.kill begin
|
|||
|
if pc.getqf("new_quest_premium_lv4_collect_count_1") < pc.getqf("neededAmountDrop1") then
|
|||
|
if math.random(1,100) <= pc.getqf("dropProb1") then -- probability if s.th. drops
|
|||
|
drop = true
|
|||
|
local index =pc.getqf("new_quest_premium_lv4_collect_count_1") + 1
|
|||
|
pc.setqf("new_quest_premium_lv4_collect_count_1",index) --you got one, so you would get +1
|
|||
|
pc.give_item2(pc.getqf("drop1"))
|
|||
|
notice_multiline(gameforge.new_quest_premium_lv4._130_notice, notice) --changed 08Oct09 Arne, Reason: mantis 0033359
|
|||
|
if pc.getqf("neededAmountDrop1") == pc.getqf("new_quest_premium_lv4_collect_count_1") then
|
|||
|
notice_multiline(gameforge.new_quest_premium_lv4._140_notice, notice)
|
|||
|
q.done() --added 08Oct09, Reason: solve qest in proper state
|
|||
|
set_state(backto_trader)
|
|||
|
end
|
|||
|
else
|
|||
|
notice_multiline(gameforge.new_quest_premium_lv4._150_notice, notice)--changed 08Oct09 Arne, Reason: mantis 0033359
|
|||
|
end
|
|||
|
end
|
|||
|
end
|
|||
|
when info or button begin
|
|||
|
if pc.getqf("neededAmountDrop1") != pc.getqf("new_quest_premium_lv4_collect_count_1") then
|
|||
|
say_title(gameforge.new_quest_premium_lv4._40_qSetTitle)
|
|||
|
say(string.format(gameforge.new_quest_premium_lv4._160_say, pc.getqf("neededAmountDrop1")-pc.getqf("new_quest_premium_lv4_collect_count_1"))) --changed 08Oct09 Arne, Reason: mantis 0033359
|
|||
|
say_reward(gameforge.new_quest_premium_lv4._100_say_reward)
|
|||
|
say(mob_name(pc.getqf("mob1")))
|
|||
|
else
|
|||
|
say_title(gameforge.new_quest_premium_lv4._40_qSetTitle)
|
|||
|
say(gameforge.new_quest_premium_lv4._140_notice)
|
|||
|
end
|
|||
|
end
|
|||
|
when 9001.chat.gameforge.new_quest_premium_lv4._40_qSetTitle begin --was gameforge.new_quest_premium_lv4._350_npcChat
|
|||
|
say_title(gameforge.new_quest_premium_lv4._40_qSetTitle)
|
|||
|
say(gameforge.new_quest_premium_lv4._170_say)
|
|||
|
end
|
|||
|
|
|||
|
when 9001.chat.gameforge.new_quest_premium_lv4._100_npcChat begin
|
|||
|
setskin(NOWINDOW)
|
|||
|
npc.open_shop()
|
|||
|
end
|
|||
|
|
|||
|
end
|
|||
|
-------------- player brings lilac to the weapon_trader ------------------------------------------------------
|
|||
|
state backto_trader begin
|
|||
|
--BEGIN EDIT Added by Arne 08Oct09, Reason: no quest entry
|
|||
|
when enter or login begin
|
|||
|
--send_letter(gameforge.new_quest_premium_lv4._55_qSetTitle)
|
|||
|
send_letter(gameforge.new_quest_premium_lv4._40_qSetTitle)
|
|||
|
q.start()
|
|||
|
q.set_title(gameforge.new_quest_premium_lv4._40_qSetTitle)
|
|||
|
local v=find_npc_by_vnum(9001) -- Waffenh<6E>ndler
|
|||
|
if 0==v then
|
|||
|
else
|
|||
|
target.vid("__TARGET2__", v, gameforge.new_quest_premium_lv4._50_targetVid)
|
|||
|
end
|
|||
|
end
|
|||
|
--END EDIT
|
|||
|
|
|||
|
when 9001.chat.gameforge.new_quest_premium_lv4._40_qSetTitle begin --was gameforge.new_quest_premium_lv4._350_npcChat
|
|||
|
if pc.count_item(pc.getqf("drop1")) >= pc.getqf("neededAmountDrop1") then
|
|||
|
say_title(gameforge.new_quest_premium_lv4._40_qSetTitle)
|
|||
|
target.delete("__TARGET2__")
|
|||
|
-- say_title(item_name(new_quest_premium_lv4_drop1))
|
|||
|
say(gameforge.new_quest_premium_lv4._180_say)
|
|||
|
wait()
|
|||
|
say_title(gameforge.new_quest_premium_lv4._40_qSetTitle)
|
|||
|
say(gameforge.new_quest_premium_lv4._190_say)
|
|||
|
pc.remove_item(pc.getqf("drop1"), pc.getqf("neededAmountDrop1"))
|
|||
|
set_state(give_trader_premiumitem)
|
|||
|
else
|
|||
|
-- this happens, if the player sold or dropped needed items:
|
|||
|
say_title(gameforge.new_quest_premium_lv4._40_qSetTitle)
|
|||
|
say(gameforge.new_quest_premium_lv4._170_say)
|
|||
|
say_reward(string.format(gameforge.new_quest_premium_lv4._200_say_reward, pc.getqf("neededAmountDrop1")))
|
|||
|
say(gameforge.new_quest_premium_lv4._210_say) --changed 08Oct09 Arne, Reason: mantis 0033359
|
|||
|
pc.setqf("new_quest_premium_lv4_collect_count_1", pc.count_item(pc.getqf("drop1")))
|
|||
|
set_state(hunting)
|
|||
|
end
|
|||
|
end
|
|||
|
|
|||
|
when 9001.chat.gameforge.new_quest_premium_lv4._100_npcChat begin
|
|||
|
setskin(NOWINDOW)
|
|||
|
npc.open_shop()
|
|||
|
end
|
|||
|
|
|||
|
when info or button begin
|
|||
|
say_title(gameforge.new_quest_premium_lv4._40_qSetTitle)
|
|||
|
say(gameforge.new_quest_premium_lv4._220_say)
|
|||
|
end
|
|||
|
end
|
|||
|
-------------- player has to buy multicolorpotion in the cash shop for the weapon_trader ------------------------------------------------------
|
|||
|
state give_trader_premiumitem begin
|
|||
|
when enter or login begin -- Arne 08Oct09 changed to enter or login, Reason: would not remind player otherwise
|
|||
|
--send_letter(gameforge.new_quest_premium_lv4._65_qSetTitle)--added08Oct09by Arne, Reason: no letter
|
|||
|
send_letter(gameforge.new_quest_premium_lv4._40_qSetTitle)--added08Oct09by Arne, Reason: no letter
|
|||
|
q.start()
|
|||
|
q.set_title(gameforge.new_quest_premium_lv4._40_qSetTitle)
|
|||
|
local v=find_npc_by_vnum(9001) -- Waffenh<6E>ndler
|
|||
|
if 0==v then
|
|||
|
else
|
|||
|
target.vid("__TARGET2__", v, gameforge.new_quest_premium_lv4._50_targetVid)
|
|||
|
end
|
|||
|
end
|
|||
|
when 9001.chat.gameforge.new_quest_premium_lv4._40_qSetTitle begin --was gameforge.new_quest_premium_lv4._350_npcChat
|
|||
|
if pc.count_item(pc.getqf("drop2")) >= pc.getqf("neededAmountDrop2") then
|
|||
|
target.delete("__TARGET2__")
|
|||
|
say_title(gameforge.new_quest_premium_lv4._40_qSetTitle)
|
|||
|
say(gameforge.new_quest_premium_lv4._240_say)
|
|||
|
wait()
|
|||
|
say_title(gameforge.new_quest_premium_lv4._40_qSetTitle)
|
|||
|
say(gameforge.new_quest_premium_lv4._250_say)
|
|||
|
wait()
|
|||
|
say_title(gameforge.new_quest_premium_lv4._40_qSetTitle)
|
|||
|
say(gameforge.new_quest_premium_lv4._260_say)
|
|||
|
say_reward(string.format(gameforge.new_quest_premium_lv4._270_say_reward, pc.getqf("amountYang") ))
|
|||
|
pc.change_money(pc.getqf("amountYang") )
|
|||
|
pc.give_item2(rewardVnum)
|
|||
|
pc.remove_item(pc.getqf("drop2"), pc.getqf("neededAmountDrop2"))
|
|||
|
local v=find_npc_by_vnum(9003) -- Gemischtwarenh<6E>ndlerin
|
|||
|
if 0==v then
|
|||
|
else
|
|||
|
target.vid("__TARGET3__", v, gameforge.new_quest_premium_lv4._10_targetVid)
|
|||
|
end
|
|||
|
set_state(goto_trader_happy)
|
|||
|
else
|
|||
|
say_title(gameforge.new_quest_premium_lv4._40_qSetTitle)
|
|||
|
-- this happens, if the player sold or dropped needed items:
|
|||
|
say(gameforge.new_quest_premium_lv4._280_say) --changed 08Oct09 Arne, Reason: mantis 0033359
|
|||
|
say_reward(string.format(gameforge.new_quest_premium_lv4._290_say_reward, pc.getqf("neededAmountDrop2")))
|
|||
|
end
|
|||
|
end
|
|||
|
|
|||
|
when 9001.chat.gameforge.new_quest_premium_lv4._100_npcChat begin
|
|||
|
setskin(NOWINDOW)
|
|||
|
npc.open_shop()
|
|||
|
end
|
|||
|
|
|||
|
when info or button begin
|
|||
|
say_title(gameforge.new_quest_premium_lv4._40_qSetTitle)
|
|||
|
say(gameforge.new_quest_premium_lv4._300_say)
|
|||
|
end
|
|||
|
end
|
|||
|
-------------- player has to tell the trader, that her lover will meet her this night and everything is ok ------------------------------------------------------
|
|||
|
state goto_trader_happy begin
|
|||
|
when enter begin
|
|||
|
--send_letter(gameforge.new_quest_premium_lv4._75_qSetTitle)--added08Oct09by Arne, Reason: no letter
|
|||
|
send_letter(gameforge.new_quest_premium_lv4._40_qSetTitle)--added08Oct09by Arne, Reason: no letter
|
|||
|
q.start()
|
|||
|
q.set_title(gameforge.new_quest_premium_lv4._40_qSetTitle)
|
|||
|
end
|
|||
|
when __TARGET3__.target.click begin
|
|||
|
target.delete("__TARGET3__")
|
|||
|
say_title(gameforge.new_quest_premium_lv4._40_qSetTitle) -- yellow text headline
|
|||
|
say(gameforge.new_quest_premium_lv4._320_say)
|
|||
|
wait()
|
|||
|
say_reward(string.format(gameforge.new_quest_premium_lv4._330_say_reward, pc.getqf("amountXp")))
|
|||
|
pc.give_exp2(pc.getqf("amountXp"))
|
|||
|
set_state(__COMPLETE__)
|
|||
|
end
|
|||
|
when info or button begin
|
|||
|
say_title(gameforge.new_quest_premium_lv4._40_qSetTitle)
|
|||
|
say(gameforge.new_quest_premium_lv4._340_say)
|
|||
|
end
|
|||
|
end
|
|||
|
|
|||
|
state __COMPLETE__ begin
|
|||
|
when enter begin
|
|||
|
--attempting to set flags for cleanup
|
|||
|
pc.setqf("amountYang", 0)
|
|||
|
pc.setqf("amountXp", 0)
|
|||
|
pc.setqf("neededAmountDrop1", 0)
|
|||
|
pc.setqf("neededAmountDrop2", 0)
|
|||
|
pc.setqf("dropProb1", 0)
|
|||
|
pc.setqf("mob1",0)
|
|||
|
pc.setqf("drop1", 0)
|
|||
|
pc.setqf("drop2", 0)
|
|||
|
pc.setqf("new_quest_premium_lv4_collect_count_1", 0)
|
|||
|
end
|
|||
|
when button or info begin
|
|||
|
return
|
|||
|
end
|
|||
|
end
|
|||
|
end
|