forked from metin-server/m2dev-server
- Recompute new_quest_lv7_DestMapIndex in the goto_oldwomans_sister state based on the player’s empire. - Restrict the 9006.chat handler in goto_oldwomans_sister with `pc.get_map_index() == new_quest_lv7_DestMapIndex`, so the bouquet can only be delivered to the sister in the correct second village (Jayang/Bokjung/Bakra) and not to the old woman in the first village. This prevents completing the sister step by talking to the wrong 9006 NPC after briefly entering and leaving the destination map, and aligns the behavior with the intended narrative flow.
645 lines
30 KiB
Plaintext
645 lines
30 KiB
Plaintext
quest new_quest_lv7 begin
|
|
state start begin
|
|
-- Function declaration
|
|
function reward()
|
|
local div = number(1,5)
|
|
local reward = 5000
|
|
--notice(string.format("%d - reward | div =%d"), reward, div)
|
|
reward = math.floor(reward/div)
|
|
return reward
|
|
end
|
|
function reward_exp()
|
|
local div = number(1,4)
|
|
local reward_exp = 4000
|
|
--notice(string.format("%d - reward | div =%d"), reward, div)
|
|
reward_exp = math.floor(reward_exp/div)
|
|
return reward_exp
|
|
end
|
|
-- end function declaration
|
|
-- When level 7 target Octavio for new Quest-------------------------------------------------------------
|
|
when login or levelup with pc.get_level() >= 7 begin
|
|
local v=find_npc_by_vnum(20008)
|
|
if 0==v then
|
|
else
|
|
target.vid("__TARGET__", v, gameforge.new_quest_lv7._010_target)
|
|
end
|
|
end
|
|
|
|
when 20008.chat.gameforge.new_quest_lv7._020_say_title with pc.get_level() >= 7 begin
|
|
target.delete("__TARGET__")
|
|
local empire = pc.get_empire()
|
|
say_title(gameforge.new_quest_lv7._011_say_title) -- A Daughters Wedding
|
|
say(gameforge.new_quest_lv7._021_say) -- Octavio has a daughter and she is in love with a guy for a village
|
|
if empire == 1 then -- = Shinsoo
|
|
say(gameforge.new_quest_lv7._022_say) -- The guy lives in a village in the Jayang area
|
|
end
|
|
if empire == 2 then -- = Chunjo
|
|
say(gameforge.new_quest_lv7._023_say) -- The guy lives in a village in the Bokjung area
|
|
end
|
|
if empire == 3 then -- = Jinno
|
|
say(gameforge.new_quest_lv7._024_say) -- The guy lives in a village in the Bakra area
|
|
end
|
|
wait() -- next button
|
|
say_title(gameforge.new_quest_lv7._011_say_title) -- A Daughters Wedding
|
|
say(gameforge.new_quest_lv7._030_say) -- Octavio heared that she is going to marry him there
|
|
say(gameforge.new_quest_lv7._031_say) -- Go to the Old Lady and ask her to help with the preperations
|
|
local doquest = select(gameforge.subquest_06._40_select, gameforge.subquest_12._50_select, gameforge.new_quest_lv75._290_2_select)
|
|
if doquest == 1 then
|
|
set_state(ask_oldwoman) -- Quest approved
|
|
elseif doquest == 3 then -- abort permantenly
|
|
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_lv7._011_say_title) -- A Daughters Wedding
|
|
say(gameforge.subquest_11._80_say)
|
|
return
|
|
end
|
|
else
|
|
say_title(gameforge.new_quest_lv7._011_say_title) -- A Daughters Wedding
|
|
say(gameforge.subquest_11._80_say)
|
|
return
|
|
end
|
|
end
|
|
end
|
|
|
|
---- ask altefrau what to do --------------------------------------------------------------------------------
|
|
state ask_oldwoman begin
|
|
function get_old_woman_map()
|
|
local empire = pc.get_empire()
|
|
if empire == 1 then
|
|
return 1
|
|
elseif empire == 2 then
|
|
return 21
|
|
elseif empire == 3 then
|
|
return 41
|
|
end
|
|
end
|
|
function is_my_vil()
|
|
if pc.get_map_index() == new_quest_lv7.get_old_woman_map() then
|
|
return true
|
|
else
|
|
return false
|
|
end
|
|
end
|
|
|
|
when enter or login begin
|
|
new_quest_lv7_AmountNeed1 = 1
|
|
new_quest_lv7_AmountNeed2 = 1
|
|
new_quest_lv7_AmountNeed3 = 1
|
|
new_quest_lv7_mob1 = 173 -- kill a 173#Hungriger Alpha-Wolf
|
|
new_quest_lv7_mob2 = 174 -- kill a 174#Hungriger Blauwolf
|
|
new_quest_lv7_mob3 = 175 -- kill a 175#Hungriger Alpha-Blauwolf
|
|
-- Einige deser Mobs werden auch in der Level 7 Aufgabe verwendet, was dazu führt,
|
|
-- dass diese dort nicht mehr hoch zählen wenn man sie tötet.
|
|
new_quest_lv7_drop1 = 30169 -- Blutrote Blume
|
|
new_quest_lv7_drop2 = 30170 -- Orangefarbene Blume
|
|
new_quest_lv7_drop3 = 30171 -- Duftende gelbe Blume
|
|
-- BEGIN EDIT added by Arne 18Sept09, according to Mantis 0026063, REASON: No quest letter, no questbook entry
|
|
send_letter(gameforge.new_quest_lv7._020_say_title) -- A Daughters Wedding
|
|
q.start()
|
|
q.set_title(gameforge.new_quest_lv7._020_say_title) -- A Daughters Wedding
|
|
-- END EDIT
|
|
if new_quest_lv7.is_my_vil() then
|
|
local v=find_npc_by_vnum(9006) -- Old Lady
|
|
if 0==v then
|
|
else
|
|
target.vid("__TARGET2__", v, gameforge.new_quest_lv7._040_target ) -- Old Lady
|
|
end
|
|
end
|
|
end
|
|
|
|
-- BEGIN EDIT added by Arne 18Sept09, according to Mantis 0026063, REASON: No questbook button
|
|
when button or info begin
|
|
say_title(gameforge.new_quest_lv7._020_say_title) -- A Daughters Wedding
|
|
say(gameforge.new_quest_lv7._041_say) -- goto old lady and ask her to help with the preperations
|
|
say("")
|
|
-- FIX: correct map name based on player's empire
|
|
say(string.format(gameforge.new_quest_lv7._042_say, get_map_name_by_number(new_quest_lv7.get_old_woman_map()))) -- where the old lady can be found
|
|
end
|
|
--END EDIT
|
|
|
|
when 9006.chat.gameforge.new_quest_lv7._020_say_title begin
|
|
target.delete("__TARGET2__")
|
|
say_title(gameforge.new_quest_lv7._012_say_title) -- yellow text headline
|
|
say(gameforge.new_quest_lv7._051_say)
|
|
wait()
|
|
say_title(gameforge.new_quest_lv7._012_say_title) -- yellow text headline
|
|
say(gameforge.new_quest_lv7._052_say)
|
|
-- "vom Bräutigam an seine Liebste überreicht" versteht das unsere Zielgruppe?
|
|
wait()
|
|
say(gameforge.new_quest_lv7._054_say)
|
|
say_reward(string.format("%s x", new_quest_lv7_AmountNeed1))
|
|
say_item_vnum(new_quest_lv7_drop1) -- icon of item
|
|
say_reward(gameforge.new_quest_lv7._055_say)
|
|
say(mob_name(new_quest_lv7_mob1))
|
|
wait()
|
|
say(gameforge.new_quest_lv7._056_say)
|
|
say_reward(string.format("%s x", new_quest_lv7_AmountNeed2))
|
|
say_item_vnum(new_quest_lv7_drop2) -- icon of item
|
|
say_reward(gameforge.new_quest_lv7._055_say)
|
|
say(mob_name(new_quest_lv7_mob2))
|
|
wait()
|
|
say(gameforge.new_quest_lv7._056_say)
|
|
say_reward(string.format("%s x", new_quest_lv7_AmountNeed3))
|
|
say_item_vnum(new_quest_lv7_drop3) -- icon of item
|
|
say_reward(gameforge.new_quest_lv7._055_say )
|
|
say(mob_name(new_quest_lv7_mob3))
|
|
--set flags:
|
|
pc.setqf("collect_count_1",0) --Current number of items
|
|
pc.setqf("collect_count_2",0) --Current number of items
|
|
pc.setqf("collect_count_3",0) --Current number of items
|
|
wait()
|
|
say_title(gameforge.new_quest_lv7._012_say_title)
|
|
say(gameforge.new_quest_lv7._060_say)
|
|
-- Wo ist die Schwester?
|
|
q.done()
|
|
set_state(collect_flowers)
|
|
end
|
|
end
|
|
----- collect flowers -------------------------------------------------------------------------------------------------
|
|
state collect_flowers begin
|
|
-- BEGIN EDIT added by Arne 18Sept09, according to Mantis 0026063, REASON: No letter, questbook entry, button
|
|
when enter or login begin
|
|
new_quest_lv7_AmountNeed1 = 1
|
|
new_quest_lv7_AmountNeed2 = 1
|
|
new_quest_lv7_AmountNeed3 = 1
|
|
new_quest_lv7_dropProb1 = 45
|
|
new_quest_lv7_dropProb2 = 30
|
|
new_quest_lv7_dropProb3 = 15
|
|
new_quest_lv7_drop1 = 30169 -- Blutrote Blume
|
|
new_quest_lv7_drop2 = 30170 -- Orangefarbene Blume
|
|
new_quest_lv7_drop3 = 30171 -- Duftende gelbe Blume
|
|
send_letter(gameforge.new_quest_lv7._020_say_title)
|
|
q.start()
|
|
q.set_title(gameforge.new_quest_lv7._020_say_title)
|
|
|
|
-- FIX: if the player already has all flowers, go directly to return_oldwoman
|
|
if pc.count_item(new_quest_lv7_drop1) >= new_quest_lv7_AmountNeed1
|
|
and pc.count_item(new_quest_lv7_drop2) >= new_quest_lv7_AmountNeed2
|
|
and pc.count_item(new_quest_lv7_drop3) >= new_quest_lv7_AmountNeed3 then
|
|
q.done()
|
|
set_state(return_oldwoman)
|
|
return
|
|
end
|
|
end
|
|
--END EDIT
|
|
|
|
-- use when one of 173,174,175 is killed
|
|
-- collectFlag is the name of the quest flag where a amount of collected is saved
|
|
-- itemicon vnum of flower used for icon
|
|
function when_one_killed(neededAmount, dropProb, itemIcon)
|
|
if pc.count_item(itemIcon) < neededAmount then
|
|
local drop=math.random(1,100)
|
|
if drop <= dropProb then -- probability if s.th. drops
|
|
pc.give_item2(itemIcon) -- icon of item by vnum - Blutrote Blume
|
|
-- EDIT Arne 18Sept09 moved q.done Reason: removed quest from book
|
|
-- BEGIN EDIT added by Arne 18Sept09, according to Mantis 0026063, REASON: No arrow on old lady for flower return
|
|
notice_multiline(gameforge.new_quest_lv7._088_notice, notice)
|
|
if (pc.count_item(new_quest_lv7_drop3) == new_quest_lv7_AmountNeed3 and pc.count_item(new_quest_lv7_drop2) == new_quest_lv7_AmountNeed2 and pc.count_item(new_quest_lv7_drop1) == new_quest_lv7_AmountNeed1) then
|
|
return true
|
|
end
|
|
else
|
|
notice_multiline(gameforge.new_quest_lv7._082_say, notice)
|
|
end
|
|
end
|
|
|
|
-- FIX: also check completion when there is no drop or flowers came from trade
|
|
if (pc.count_item(new_quest_lv7_drop3) >= new_quest_lv7_AmountNeed3 and pc.count_item(new_quest_lv7_drop2) >= new_quest_lv7_AmountNeed2 and pc.count_item(new_quest_lv7_drop1) >= new_quest_lv7_AmountNeed1) then
|
|
return true
|
|
end
|
|
end
|
|
-------------- Blutrote Blume ------------------------------------------------------
|
|
-- kill a 173#Hungriger Alpha-Wolf
|
|
when 173.kill begin
|
|
if new_quest_lv7.when_one_killed(new_quest_lv7_AmountNeed1, new_quest_lv7_dropProb1, new_quest_lv7_drop1) then
|
|
q.done()
|
|
set_state(return_oldwoman)
|
|
end
|
|
end
|
|
-------------- Orangefarbene Blume ------------------------------------------------------
|
|
-- kill a 174#Hungriger Blauwolf
|
|
when 174.kill begin
|
|
if new_quest_lv7.when_one_killed(new_quest_lv7_AmountNeed2, new_quest_lv7_dropProb2, new_quest_lv7_drop2) then
|
|
q.done()
|
|
set_state(return_oldwoman)
|
|
end
|
|
end
|
|
-------------- Duftende gelbe Blume ------------------------------------------------------
|
|
-- kill a 175#Hungriger Alpha-Blauwolf
|
|
when 175.kill begin
|
|
if new_quest_lv7.when_one_killed(new_quest_lv7_AmountNeed3, new_quest_lv7_dropProb3, new_quest_lv7_drop3) then
|
|
q.done()
|
|
set_state(return_oldwoman)
|
|
end
|
|
end
|
|
|
|
-------------- info if a flower dropped
|
|
--EDIT Arne 18Sept09: Setting up an alternate event as I could not get the other one to work properly
|
|
when button or info begin
|
|
say_title(gameforge.new_quest_lv7._020_say_title)
|
|
say(gameforge.new_quest_lv7._092_say) -- collect flowers for the Bouquet
|
|
if pc.count_item(new_quest_lv7_drop1) < new_quest_lv7_AmountNeed1 then
|
|
say_reward(string.format(gameforge.new_quest_lv7._085_1_say_reward, new_quest_lv7_AmountNeed1 -
|
|
pc.count_item(new_quest_lv7_drop1))) -- number of red flowers missing
|
|
end
|
|
if pc.count_item(new_quest_lv7_drop2) < new_quest_lv7_AmountNeed2 then
|
|
say_reward(string.format(gameforge.new_quest_lv7._085_2_say_reward, new_quest_lv7_AmountNeed2 -
|
|
pc.count_item(new_quest_lv7_drop2))) -- number of orange flowers missing
|
|
end
|
|
if pc.count_item(new_quest_lv7_drop3) < new_quest_lv7_AmountNeed3 then
|
|
say_reward(string.format(gameforge.new_quest_lv7._085_3_say_reward, new_quest_lv7_AmountNeed3 -
|
|
pc.count_item(new_quest_lv7_drop3))) -- number of yellow flowers missing
|
|
end
|
|
end
|
|
end
|
|
|
|
|
|
state return_oldwoman begin -- BEGIN EDIT added by Arne 18Sept09, according to Mantis 0026063, state needed to set up quest
|
|
|
|
when enter or login begin
|
|
new_quest_lv7_AmountNeed1 = 1
|
|
new_quest_lv7_AmountNeed2 = 1
|
|
new_quest_lv7_AmountNeed3 = 1
|
|
new_quest_lv7_drop1 = 30169 -- Blutrote Blume
|
|
new_quest_lv7_drop2 = 30170 -- Orangefarbene Blume
|
|
new_quest_lv7_drop3 = 30171 -- Duftende gelbe Blume
|
|
local v=find_npc_by_vnum(9006)
|
|
send_letter(gameforge.new_quest_lv7._020_say_title)
|
|
q.start()
|
|
q.set_title(gameforge.new_quest_lv7._020_say_title)
|
|
if 0==v then
|
|
else
|
|
target.vid("__TARGET6__", v, gameforge.new_quest_lv7._040_target)
|
|
end
|
|
end
|
|
|
|
when button or info begin
|
|
say_title(gameforge.new_quest_lv7._020_say_title)
|
|
say(gameforge.new_quest_lv7._091_say) -- success return to old lady
|
|
say("")
|
|
-- FIX: correct map name (same logic as in ask_oldwoman)
|
|
say(string.format(gameforge.new_quest_lv7._042_say, get_map_name_by_number(new_quest_lv7.get_old_woman_map())))
|
|
end
|
|
--END EDIT
|
|
|
|
-------------- try to give old woman the flowers ---------------------
|
|
when 9006.chat.gameforge.new_quest_lv7._020_say_title begin
|
|
target.delete("__TARGET6__")
|
|
say_title(gameforge.new_quest_lv7._012_say_title)
|
|
if (pc.count_item(new_quest_lv7_drop1) < new_quest_lv7_AmountNeed1 or pc.count_item(new_quest_lv7_drop2) < new_quest_lv7_AmountNeed2 or pc.count_item(new_quest_lv7_drop3) < new_quest_lv7_AmountNeed3) then
|
|
say(gameforge.new_quest_lv7._110_say)
|
|
-- FIX: avoid negative numbers if player has more flowers than needed
|
|
say_reward(string.format(gameforge.new_quest_lv7._085_say_reward, math.max(0, new_quest_lv7_AmountNeed1 - pc.count_item(new_quest_lv7_drop1))))
|
|
say_reward(string.format(gameforge.new_quest_lv7._086_say_reward, math.max(0, new_quest_lv7_AmountNeed2 - pc.count_item(new_quest_lv7_drop2))))
|
|
say_reward(string.format(gameforge.new_quest_lv7._087_say_reward, math.max(0, new_quest_lv7_AmountNeed3 - pc.count_item(new_quest_lv7_drop3))))
|
|
say(gameforge.new_quest_lv7._081_say)
|
|
set_state(collect_flowers)
|
|
else
|
|
pc.remove_item(30169, 1)
|
|
pc.remove_item(30170, 1)
|
|
pc.remove_item(30171, 1)
|
|
pc.give_item2(30172) -- flowers
|
|
-- game.drop_item(30169, 1)
|
|
say(gameforge.new_quest_lv7._115_say)
|
|
-- hier fehlt info wie man in das reich kommt
|
|
if pc.get_empire() == 1 then -- = Shinsoo
|
|
say_reward(gameforge.new_quest_lv7._118_say_reward) -- you will find her in the village of the area Yayang
|
|
end
|
|
if pc.get_empire() == 2 then -- = Chunjo
|
|
say_reward(gameforge.new_quest_lv7._116_say_reward) -- you will find her in the village of the area Bokjung
|
|
end
|
|
if pc.get_empire() == 3 then -- = Jinno
|
|
say_reward(gameforge.new_quest_lv7._117_say_reward) -- you will find her in the village of the area Bakra
|
|
end
|
|
q.done()
|
|
set_state(find_empire)
|
|
return
|
|
end
|
|
end
|
|
end
|
|
--- go to twin sister of old woman in other kingdom---------------------------------------------------------------------------------------------------
|
|
state find_empire begin
|
|
when login or enter begin
|
|
-- BEGIN EDIT added by Arne 18Sept09, according to Mantis 0026063, REASON: No letter
|
|
send_letter(gameforge.new_quest_lv7._020_say_title)
|
|
q.start()
|
|
q.set_title(gameforge.new_quest_lv7._020_say_title)
|
|
-- END EDIT
|
|
new_quest_lv7_DestMapIndex = 99
|
|
if pc.get_empire() == 1 then -- = Shinsoo
|
|
new_quest_lv7_DestMapIndex = 3 -- = Yayang
|
|
local v=find_npc_by_vnum(10001)
|
|
if 0==v then
|
|
else
|
|
target.vid("__TARGET7__", v, gameforge.map_warp._190_select)
|
|
end
|
|
elseif pc.get_empire() == 2 then -- = Chunjo
|
|
new_quest_lv7_DestMapIndex = 23 -- = Bokjung
|
|
local v=find_npc_by_vnum(10003)
|
|
if 0==v then
|
|
else
|
|
target.vid("__TARGET7__", v, gameforge.map_warp._210_select)
|
|
end
|
|
elseif pc.get_empire() == 3 then -- = Jinno
|
|
new_quest_lv7_DestMapIndex = 43 -- = Bakra
|
|
local v=find_npc_by_vnum(10005)
|
|
if 0==v then
|
|
else
|
|
target.vid("__TARGET7__", v, gameforge.map_warp._230_select)
|
|
end
|
|
end
|
|
if pc.get_map_index() == new_quest_lv7_DestMapIndex then
|
|
target.delete("__TARGET7__")
|
|
notice_multiline(gameforge.new_quest_lv7._125_notice, notice)
|
|
local v=find_npc_by_vnum(9006)
|
|
if 0==v then
|
|
else
|
|
target.vid("__TARGET3__", v, gameforge.subquest_48._230_targetVid)
|
|
end
|
|
set_state(goto_oldwomans_sister)
|
|
end
|
|
end
|
|
|
|
when button or info begin
|
|
|
|
say_title(gameforge.new_quest_lv7._020_say_title)
|
|
say(gameforge.new_quest_lv7._131_say)
|
|
if new_quest_lv7_DestMapIndex == 3 then
|
|
say_reward(gameforge.new_quest_lv7._134_say_reward)
|
|
elseif new_quest_lv7_DestMapIndex == 23 then
|
|
say_reward(gameforge.new_quest_lv7._132_say_reward)
|
|
elseif new_quest_lv7_DestMapIndex == 43 then
|
|
say_reward(gameforge.new_quest_lv7._133_say_reward)
|
|
end
|
|
end
|
|
end
|
|
------ find the sister of the old woman in a different empire ------------------------------------------------------------------------------------------------------
|
|
state goto_oldwomans_sister begin
|
|
when enter or login begin
|
|
send_letter(gameforge.new_quest_lv7._020_say_title)
|
|
q.start()
|
|
q.set_title(gameforge.new_quest_lv7._020_say_title)
|
|
|
|
-- FIX: recompute destination map index to ensure correct map for the sister
|
|
new_quest_lv7_DestMapIndex = 99
|
|
if pc.get_empire() == 1 then -- = Shinsoo
|
|
new_quest_lv7_DestMapIndex = 3 -- = Yayang
|
|
elseif pc.get_empire() == 2 then -- = Chunjo
|
|
new_quest_lv7_DestMapIndex = 23 -- = Bokjung
|
|
elseif pc.get_empire() == 3 then -- = Jinno
|
|
new_quest_lv7_DestMapIndex = 43 -- = Bakra
|
|
end
|
|
end
|
|
|
|
when 9006.chat.gameforge.new_quest_lv7._020_say_title with pc.get_map_index() == new_quest_lv7_DestMapIndex begin
|
|
if pc.count_item(30172) >= 1 then -- has flowers in inventory
|
|
target.delete("__TARGET3__")
|
|
say_title(gameforge.new_quest_lv7._020_say_title) -- yellow
|
|
pc.remove_item(30172, pc.count_item(30172))
|
|
say_title(pc.get_name())
|
|
say(gameforge.new_quest_lv7._140_say)
|
|
say_title(gameforge.new_quest_lv7._012_say_title)
|
|
say(gameforge.new_quest_lv7._141_say)
|
|
wait()
|
|
say_title(gameforge.new_quest_lv7._012_say_title)
|
|
say(gameforge.new_quest_lv7._142_say)
|
|
q.done()
|
|
set_state(find_way_home)
|
|
return
|
|
else
|
|
target.delete("__TARGET3__")
|
|
say(gameforge.new_quest_lv7._143_say)
|
|
say(gameforge.new_quest_lv7._144_say_reward)
|
|
q.done()
|
|
set_state(ask_oldwoman)
|
|
end
|
|
end
|
|
when button or info begin
|
|
q.set_title(gameforge.new_quest_lv7._020_say_title)
|
|
say(gameforge.new_quest_lv7._145_say)
|
|
end
|
|
end
|
|
------ return to first village ------------------------------------------------------------------------------------------------------
|
|
state find_way_home begin
|
|
when login or enter begin
|
|
-- BEGIN EDIT added by Arne 18Sept09, according to Mantis 0026063, REASON: No letter
|
|
send_letter(gameforge.new_quest_lv7._020_say_title)
|
|
q.start()
|
|
q.set_title(gameforge.new_quest_lv7._020_say_title)
|
|
-- END EDIT
|
|
new_quest_lv7_HomeMapIndex = 99
|
|
if pc.get_empire() == 1 then -- = Shinsoo
|
|
new_quest_lv7_HomeMapIndex = 1 -- = Youngan
|
|
local v=find_npc_by_vnum(10002)
|
|
if 0==v then
|
|
else
|
|
target.vid("__TARGET7__", v, gameforge.map_warp._180_select)
|
|
end
|
|
elseif pc.get_empire() == 2 then -- = Chunjo
|
|
new_quest_lv7_HomeMapIndex = 21 -- = Joan
|
|
local v=find_npc_by_vnum(10004)
|
|
if 0==v then
|
|
else
|
|
target.vid("__TARGET7__", v, gameforge.map_warp._200_select)
|
|
end
|
|
elseif pc.get_empire() == 3 then -- = Jinno
|
|
new_quest_lv7_HomeMapIndex = 41 -- = Pyungmoo
|
|
local v=find_npc_by_vnum(10006)
|
|
if 0==v then
|
|
else
|
|
target.vid("__TARGET7__", v, gameforge.map_warp._220_select)
|
|
end
|
|
end
|
|
if pc.get_map_index() == new_quest_lv7_HomeMapIndex then
|
|
target.delete("__TARGET7__")
|
|
notice_multiline(gameforge.new_quest_lv7._129_say, notice)
|
|
local v=find_npc_by_vnum(20008)
|
|
if 0==v then
|
|
else
|
|
target.vid("__TARGET5__", v, gameforge.subquest_48._230_targetVid)
|
|
end
|
|
set_state(back_to_octavio)
|
|
end
|
|
end
|
|
|
|
when button or info begin
|
|
say_title(gameforge.new_quest_lv7._020_say_title)
|
|
local empire = pc.get_empire()
|
|
if empire == 1 then -- = Shinsoo
|
|
say(gameforge.new_quest_lv7._135_say)
|
|
end
|
|
if empire == 2 then -- = Chunjo
|
|
say(gameforge.new_quest_lv7._136_say)
|
|
end
|
|
if empire == 3 then -- = Jinno
|
|
say(gameforge.new_quest_lv7._137_say)
|
|
end
|
|
end
|
|
|
|
end
|
|
------ invite ocatvio to the wedding ------------------------------------------------------------------------------------------------------
|
|
state back_to_octavio begin
|
|
when enter or login begin
|
|
-- BEGIN EDIT added by Arne 18Sept09, according to Mantis 0026063, REASON: no quest, no letter
|
|
local v=find_npc_by_vnum(20008)
|
|
if 0==v then
|
|
else
|
|
target.vid("__TARGET5__", v, gameforge.new_quest_lv7._010_target)
|
|
end
|
|
-- adding empire name to octavio job
|
|
send_letter(gameforge.new_quest_lv7._020_say_title)
|
|
q.start()
|
|
q.set_title(gameforge.new_quest_lv7._020_say_title)
|
|
-- END EDIT
|
|
|
|
-- FIX: keep soup flag persistent via quest flag
|
|
if pc.getqf("soup") == 1 then
|
|
soup = true
|
|
else
|
|
soup = false
|
|
end
|
|
end
|
|
|
|
when button or info begin
|
|
say_title(gameforge.new_quest_lv7._020_say_title)
|
|
say(gameforge.new_quest_lv7._129_say)
|
|
end
|
|
|
|
|
|
when 20008.chat.gameforge.new_quest_lv7._020_say_title begin
|
|
target.delete("__TARGET5__")
|
|
say_title(gameforge.new_quest_lv7._020_say_title)
|
|
if npc.get_empire() == pc.get_empire() then
|
|
if soup then
|
|
say(gameforge.new_quest_lv7._150_say)
|
|
end
|
|
say(gameforge.new_quest_lv7._151_say)
|
|
say(gameforge.new_quest_lv7._152_say)
|
|
|
|
-- random reward
|
|
local reward=new_quest_lv7.reward()
|
|
local reward_exp=new_quest_lv7.reward_exp()
|
|
|
|
say_reward(string.format(gameforge.new_quest_lv7._154_say_reward,reward_exp))
|
|
say_reward(string.format(gameforge.new_quest_lv7._155_say_reward,reward))
|
|
|
|
-- FIX: use the same values for the actual reward
|
|
pc.give_exp2(reward_exp)
|
|
pc.change_money(reward)
|
|
|
|
pc.setqf("soup", 0) -- reset flavour flag after success
|
|
|
|
local reward_item="0"
|
|
if pc.job==0 then
|
|
local r=number(1,10)
|
|
if r==1 then
|
|
reward_item="00013"
|
|
elseif r==2 then
|
|
reward_item="00023"
|
|
elseif r==3 then
|
|
reward_item="00033"
|
|
elseif r==4 then
|
|
reward_item="00043"
|
|
elseif r==5 then
|
|
reward_item="00053"
|
|
elseif r==6 then
|
|
reward_item="03003"
|
|
elseif r==7 then
|
|
reward_item="03013"
|
|
elseif r==8 then
|
|
reward_item="03023"
|
|
elseif r==9 then
|
|
reward_item="03033"
|
|
elseif r==10 then
|
|
reward_item="03043"
|
|
end
|
|
elseif pc.job==1 then
|
|
local r=number(1,10)
|
|
if r==1 then
|
|
reward_item="01003"
|
|
elseif r==2 then
|
|
reward_item="04003"
|
|
elseif r==3 then
|
|
reward_item="01013"
|
|
elseif r==4 then
|
|
reward_item="04013"
|
|
elseif r==5 then
|
|
reward_item="01023"
|
|
elseif r==6 then
|
|
reward_item="02003"
|
|
elseif r==7 then
|
|
reward_item="02013"
|
|
elseif r==8 then
|
|
reward_item="02023"
|
|
elseif r==9 then
|
|
reward_item="02033"
|
|
elseif r==10 then
|
|
reward_item="2043"
|
|
end
|
|
elseif pc.job==2 then
|
|
local r=number(1, 6)
|
|
if r==1 then
|
|
reward_item="00013"
|
|
elseif r==2 then
|
|
reward_item="00023"
|
|
elseif r==3 then
|
|
reward_item="00033"
|
|
elseif r==4 then
|
|
reward_item="00043"
|
|
elseif r==5 then
|
|
reward_item="00053"
|
|
elseif r==6 then
|
|
reward_item="00053"
|
|
end
|
|
elseif pc.job==3 then
|
|
local r=number(1, 8)
|
|
if r==1 then
|
|
reward_item="05003"
|
|
elseif r==2 then
|
|
reward_item="05013"
|
|
elseif r==3 then
|
|
reward_item="05023"
|
|
elseif r==4 then
|
|
reward_item="07003"
|
|
elseif r==5 then
|
|
reward_item="07013"
|
|
elseif r==6 then
|
|
reward_item="07023"
|
|
elseif r==7 then
|
|
reward_item="07033"
|
|
elseif r==8 then
|
|
reward_item="07043"
|
|
end
|
|
end
|
|
if reward_item != "0" then
|
|
wait()
|
|
say_reward(gameforge.new_quest_lv7._153_say_reward)
|
|
say_item_vnum(reward_item)
|
|
pc.give_item2(reward_item,1)
|
|
end
|
|
set_state(__COMPLETE__)
|
|
else
|
|
say(gameforge.new_quest_lv7._160_say)
|
|
say(gameforge.new_quest_lv7._165_say)
|
|
soup = true
|
|
pc.setqf("soup", 1) -- FIX: remember that player talked to the wrong Octavio
|
|
end
|
|
end
|
|
end
|
|
|
|
------ give up ------------------------------------------------------------------------------------------------------
|
|
state __GIVEUP__ begin
|
|
when button or info begin
|
|
return
|
|
end
|
|
end
|
|
------ complete ------------------------------------------------------------------------------------------------------
|
|
state __COMPLETE__ begin
|
|
when button or info begin
|
|
return
|
|
end
|
|
end
|
|
end
|