Merge pull request #20 from ErLullo/ErLullo-vecchiaccia

Update new_quest_lv7.quest
This commit is contained in:
rtw1x1
2026-01-20 23:06:27 +00:00
committed by GitHub

View File

@@ -1,6 +1,23 @@
quest new_quest_lv7 begin -- Flower items and bouquet
define ITEM_FLOWER_RED 30169 -- Red Flower
define ITEM_FLOWER_ORANGE 30170 -- Orange Flower
define ITEM_FLOWER_YELLOW 30171 -- Yellow Flower
define ITEM_BOUQUET 30172 -- Bouquet
-- Required amounts
define NEED_RED 1
define NEED_ORANGE 1
define NEED_YELLOW 1
-- Drop chances (percent)
define DROP_RED 45
define DROP_ORANGE 30
define DROP_YELLOW 15
quest new_quest_lv7 begin
state start begin state start begin
-- Function declaration -- Function declaration
function reward() function reward()
local div = number(1,5) local div = number(1,5)
local reward = 5000 local reward = 5000
@@ -8,6 +25,7 @@
reward = math.floor(reward/div) reward = math.floor(reward/div)
return reward return reward
end end
function reward_exp() function reward_exp()
local div = number(1,4) local div = number(1,4)
local reward_exp = 4000 local reward_exp = 4000
@@ -16,35 +34,37 @@
return reward_exp return reward_exp
end end
-- end function declaration -- end function declaration
-- When level 7 target Octavio for new Quest------------------------------------------------------------- -- When level 7 target Octavio for new Quest-------------------------------------------------------------
when login or levelup with pc.get_level() >= 7 begin when login or levelup with pc.get_level() >= 7 begin
local v=find_npc_by_vnum(20008) local v = find_npc_by_vnum(20008)
if 0==v then if 0 == v then
else else
target.vid("__TARGET__", v, gameforge.new_quest_lv7._010_target) target.vid("__TARGET__", v, gameforge.new_quest_lv7._010_target)
end end
end end
when 20008.chat.gameforge.new_quest_lv7._020_say_title begin when 20008.chat.gameforge.new_quest_lv7._020_say_title with pc.get_level() >= 7 begin
target.delete("__TARGET__") target.delete("__TARGET__")
local empire = pc.get_empire() local empire = pc.get_empire()
say_title(gameforge.new_quest_lv7._011_say_title) -- A Daughters Wedding 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 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 if empire == 1 then -- = Shinsoo
say(gameforge.new_quest_lv7._022_say) -- The guy lives in a village in the Jayang area say(gameforge.new_quest_lv7._022_say) -- The guy lives in a village in the Jayang area
end end
if empire == 2 then -- = Chunjo if empire == 2 then -- = Chunjo
say(gameforge.new_quest_lv7._023_say) -- The guy lives in a village in the Bokjung area say(gameforge.new_quest_lv7._023_say) -- The guy lives in a village in the Bokjung area
end end
if empire == 3 then -- = Jinno if empire == 3 then -- = Jinno
say(gameforge.new_quest_lv7._024_say) -- The guy lives in a village in the Bakra area say(gameforge.new_quest_lv7._024_say) -- The guy lives in a village in the Bakra area
end end
wait() -- next button wait() -- next button
say_title(gameforge.new_quest_lv7._011_say_title) -- A Daughters Wedding 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._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 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) local doquest = select(gameforge.subquest_06._40_select, gameforge.subquest_12._50_select, gameforge.new_quest_lv75._290_2_select)
if doquest == 1 then if doquest == 1 then
pc.setqf("soup", 0) -- hard reset flavour flag at quest start
set_state(ask_oldwoman) -- Quest approved set_state(ask_oldwoman) -- Quest approved
elseif doquest == 3 then -- abort permantenly elseif doquest == 3 then -- abort permantenly
say(gameforge.subquest_06._60_say) say(gameforge.subquest_06._60_say)
@@ -63,11 +83,12 @@
end end
end end
end end
---- ask altefrau what to do -------------------------------------------------------------------------------- ---- ask altefrau what to do --------------------------------------------------------------------------------
state ask_oldwoman begin state ask_oldwoman begin
function get_old_woman_map() function get_old_woman_map()
local empire = pc.get_empire() local empire = pc.get_empire()
if empire == 1 then if empire == 1 then
return 1 return 1
elseif empire == 2 then elseif empire == 2 then
return 21 return 21
@@ -75,6 +96,7 @@
return 41 return 41
end end
end end
function is_my_vil() function is_my_vil()
if pc.get_map_index() == new_quest_lv7.get_old_woman_map() then if pc.get_map_index() == new_quest_lv7.get_old_woman_map() then
return true return true
@@ -84,71 +106,64 @@
end end
when enter or login begin 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_mob1 = 173 -- kill a 173#Hungriger Alpha-Wolf
new_quest_lv7_mob2 = 174 -- kill a 174#Hungriger Blauwolf new_quest_lv7_mob2 = 174 -- kill a 174#Hungriger Blauwolf
new_quest_lv7_mob3 = 175 -- kill a 175#Hungriger Alpha-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, -- 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. -- 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 -- 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 send_letter(gameforge.new_quest_lv7._020_say_title) -- A Daughters Wedding
q.start() q.start()
q.set_title(gameforge.new_quest_lv7._020_say_title) -- A Daughters Wedding q.set_title(gameforge.new_quest_lv7._020_say_title) -- A Daughters Wedding
-- END EDIT -- END EDIT
if new_quest_lv7.is_my_vil() then if new_quest_lv7.is_my_vil() then
local v=find_npc_by_vnum(9006) -- Old Lady local v = find_npc_by_vnum(9006) -- Old Lady
if 0==v then if 0 == v then
else else
target.vid("__TARGET2__", v, gameforge.new_quest_lv7._040_target ) -- Old Lady target.vid("__TARGET2__", v, gameforge.new_quest_lv7._040_target ) -- Old Lady
end end
end end
end end
-- BEGIN EDIT added by Arne 18Sept09, according to Mantis 0026063, REASON: No questbook button -- BEGIN EDIT added by Arne 18Sept09, according to Mantis 0026063, REASON: No questbook button
when button or info begin when button or info begin
say_title(gameforge.new_quest_lv7._020_say_title) -- A Daughters Wedding 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(gameforge.new_quest_lv7._041_say) -- goto old lady and ask her to help with the preperations
say("") say("")
say(string.format(gameforge.new_quest_lv7._042_say, get_map_name_by_number(1))) -- where the old lady can be found -- 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
--END EDIT --END EDIT
when 9006.chat.gameforge.new_quest_lv7._020_say_title begin when 9006.chat.gameforge.new_quest_lv7._020_say_title begin
target.delete("__TARGET2__") target.delete("__TARGET2__")
say_title(gameforge.new_quest_lv7._012_say_title) -- yellow text headline say_title(gameforge.new_quest_lv7._012_say_title) -- yellow text headline
say(gameforge.new_quest_lv7._051_say) say(gameforge.new_quest_lv7._051_say)
wait() wait()
say_title(gameforge.new_quest_lv7._012_say_title) -- yellow text headline say_title(gameforge.new_quest_lv7._012_say_title) -- yellow text headline
say(gameforge.new_quest_lv7._052_say) say(gameforge.new_quest_lv7._052_say)
-- "vom Bräutigam an seine Liebste überreicht" versteht das unsere Zielgruppe? -- "vom Bräutigam an seine Liebste überreicht" versteht das unsere Zielgruppe?
wait() wait()
say(gameforge.new_quest_lv7._054_say) say(gameforge.new_quest_lv7._054_say)
say_reward(string.format("%s x", new_quest_lv7_AmountNeed1)) say_reward(string.format("%s x", NEED_RED))
say_item_vnum(new_quest_lv7_drop1) -- icon of item say_item_vnum(ITEM_FLOWER_RED) -- icon of item
say_reward(gameforge.new_quest_lv7._055_say) say_reward(gameforge.new_quest_lv7._055_say)
say(mob_name(new_quest_lv7_mob1)) say(mob_name(new_quest_lv7_mob1))
wait() wait()
say(gameforge.new_quest_lv7._056_say) say(gameforge.new_quest_lv7._056_say)
say_reward(string.format("%s x", new_quest_lv7_AmountNeed2)) say_reward(string.format("%s x", NEED_ORANGE))
say_item_vnum(new_quest_lv7_drop2) -- icon of item say_item_vnum(ITEM_FLOWER_ORANGE) -- icon of item
say_reward(gameforge.new_quest_lv7._055_say) say_reward(gameforge.new_quest_lv7._055_say)
say(mob_name(new_quest_lv7_mob2)) say(mob_name(new_quest_lv7_mob2))
wait() wait()
say(gameforge.new_quest_lv7._056_say) say(gameforge.new_quest_lv7._056_say)
say_reward(string.format("%s x", new_quest_lv7_AmountNeed3)) say_reward(string.format("%s x", NEED_YELLOW))
say_item_vnum(new_quest_lv7_drop3) -- icon of item say_item_vnum(ITEM_FLOWER_YELLOW) -- icon of item
say_reward(gameforge.new_quest_lv7._055_say ) say_reward(gameforge.new_quest_lv7._055_say )
say(mob_name(new_quest_lv7_mob3)) say(mob_name(new_quest_lv7_mob3))
--set flags: wait()
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_title(gameforge.new_quest_lv7._012_say_title)
say(gameforge.new_quest_lv7._060_say) say(gameforge.new_quest_lv7._060_say)
-- Wo ist die Schwester? -- Wo ist die Schwester?
@@ -156,23 +171,21 @@
set_state(collect_flowers) set_state(collect_flowers)
end end
end end
----- collect flowers ------------------------------------------------------------------------------------------------- ----- collect flowers -------------------------------------------------------------------------------------------------
state collect_flowers begin state collect_flowers begin
-- BEGIN EDIT added by Arne 18Sept09, according to Mantis 0026063, REASON: No letter, questbook entry, button -- BEGIN EDIT added by Arne 18Sept09, according to Mantis 0026063, REASON: No letter, questbook entry, button
when enter or login begin 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) send_letter(gameforge.new_quest_lv7._020_say_title)
q.start() q.start()
q.set_title(gameforge.new_quest_lv7._020_say_title) 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(ITEM_FLOWER_RED) >= NEED_RED and pc.count_item(ITEM_FLOWER_ORANGE) >= NEED_ORANGE and pc.count_item(ITEM_FLOWER_YELLOW) >= NEED_YELLOW then
q.done()
set_state(return_oldwoman)
return
end
end end
--END EDIT --END EDIT
@@ -181,40 +194,48 @@
-- itemicon vnum of flower used for icon -- itemicon vnum of flower used for icon
function when_one_killed(neededAmount, dropProb, itemIcon) function when_one_killed(neededAmount, dropProb, itemIcon)
if pc.count_item(itemIcon) < neededAmount then if pc.count_item(itemIcon) < neededAmount then
local drop=math.random(1,100) local drop = number(1,100)
if drop <= dropProb then -- probability if s.th. drops if drop <= dropProb then -- probability if s.th. drops
pc.give_item2(itemIcon) -- icon of item by vnum - Blutrote Blume pc.give_item2(itemIcon) -- icon of item by vnum - Blutrote Blume
-- EDIT Arne 18Sept09 moved q.done Reason: removed quest from book -- 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 -- 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) --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 if pc.count_item(ITEM_FLOWER_YELLOW) == NEED_YELLOW and pc.count_item(ITEM_FLOWER_ORANGE) == NEED_ORANGE and pc.count_item(ITEM_FLOWER_RED) == NEED_RED then
return true return true
end end
else else
notice_multiline(gameforge.new_quest_lv7._082_say, notice) --notice_multiline(gameforge.new_quest_lv7._082_say, notice)
end end
end
-- FIX: also check completion when there is no drop or flowers came from trade
if pc.count_item(ITEM_FLOWER_YELLOW) >= NEED_YELLOW and pc.count_item(ITEM_FLOWER_ORANGE) >= NEED_ORANGE and pc.count_item(ITEM_FLOWER_RED) >= NEED_RED then
return true
end end
end end
-------------- Blutrote Blume ------------------------------------------------------ -------------- Blutrote Blume ------------------------------------------------------
-- kill a 173#Hungriger Alpha-Wolf -- kill a 173#Hungriger Alpha-Wolf
when 173.kill begin when 173.kill begin
if new_quest_lv7.when_one_killed(new_quest_lv7_AmountNeed1, new_quest_lv7_dropProb1, new_quest_lv7_drop1) then if new_quest_lv7.when_one_killed(NEED_RED, DROP_RED, ITEM_FLOWER_RED) then
q.done() q.done()
set_state(return_oldwoman) set_state(return_oldwoman)
end end
end end
-------------- Orangefarbene Blume ------------------------------------------------------ -------------- Orangefarbene Blume ------------------------------------------------------
-- kill a 174#Hungriger Blauwolf -- kill a 174#Hungriger Blauwolf
when 174.kill begin when 174.kill begin
if new_quest_lv7.when_one_killed(new_quest_lv7_AmountNeed2, new_quest_lv7_dropProb2, new_quest_lv7_drop2) then if new_quest_lv7.when_one_killed(NEED_ORANGE, DROP_ORANGE, ITEM_FLOWER_ORANGE) then
q.done() q.done()
set_state(return_oldwoman) set_state(return_oldwoman)
end end
end end
-------------- Duftende gelbe Blume ------------------------------------------------------ -------------- Duftende gelbe Blume ------------------------------------------------------
-- kill a 175#Hungriger Alpha-Blauwolf -- kill a 175#Hungriger Alpha-Blauwolf
when 175.kill begin when 175.kill begin
if new_quest_lv7.when_one_killed(new_quest_lv7_AmountNeed3, new_quest_lv7_dropProb3, new_quest_lv7_drop3) then if new_quest_lv7.when_one_killed(NEED_YELLOW, DROP_YELLOW, ITEM_FLOWER_YELLOW) then
q.done() q.done()
set_state(return_oldwoman) set_state(return_oldwoman)
end end
@@ -225,38 +246,28 @@
when button or info begin when button or info begin
say_title(gameforge.new_quest_lv7._020_say_title) say_title(gameforge.new_quest_lv7._020_say_title)
say(gameforge.new_quest_lv7._092_say) -- collect flowers for the Bouquet 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 if pc.count_item(ITEM_FLOWER_RED) < NEED_RED then
say_reward(string.format(gameforge.new_quest_lv7._085_1_say_reward, new_quest_lv7_AmountNeed1 - say_reward(string.format(gameforge.new_quest_lv7._085_1_say_reward, NEED_RED - pc.count_item(ITEM_FLOWER_RED))) -- number of red flowers missing
pc.count_item(new_quest_lv7_drop1))) -- number of red flowers missing
end end
if pc.count_item(new_quest_lv7_drop2) < new_quest_lv7_AmountNeed2 then if pc.count_item(ITEM_FLOWER_ORANGE) < NEED_ORANGE then
say_reward(string.format(gameforge.new_quest_lv7._085_2_say_reward, new_quest_lv7_AmountNeed2 - say_reward(string.format(gameforge.new_quest_lv7._085_2_say_reward, NEED_ORANGE - pc.count_item(ITEM_FLOWER_ORANGE))) -- number of orange flowers missing
pc.count_item(new_quest_lv7_drop2))) -- number of orange flowers missing
end end
if pc.count_item(new_quest_lv7_drop3) < new_quest_lv7_AmountNeed3 then if pc.count_item(ITEM_FLOWER_YELLOW) < NEED_YELLOW then
say_reward(string.format(gameforge.new_quest_lv7._085_3_say_reward, new_quest_lv7_AmountNeed3 - say_reward(string.format(gameforge.new_quest_lv7._085_3_say_reward, NEED_YELLOW - pc.count_item(ITEM_FLOWER_YELLOW))) -- number of yellow flowers missing
pc.count_item(new_quest_lv7_drop3))) -- number of yellow flowers missing
end end
end end
end end
state return_oldwoman begin -- BEGIN EDIT added by Arne 18Sept09, according to Mantis 0026063, state needed to set up quest 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 when enter or login begin
new_quest_lv7_AmountNeed1 = 1 local v = find_npc_by_vnum(9006)
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) send_letter(gameforge.new_quest_lv7._020_say_title)
q.start() q.start()
q.set_title(gameforge.new_quest_lv7._020_say_title) q.set_title(gameforge.new_quest_lv7._020_say_title)
if 0==v then if 0 == v then
else else
target.vid("__TARGET6__", v, gameforge.new_quest_lv7._040_target) target.vid("__TARGET6__", v, gameforge.new_quest_lv7._040_target)
end end
end end
@@ -264,26 +275,28 @@
say_title(gameforge.new_quest_lv7._020_say_title) say_title(gameforge.new_quest_lv7._020_say_title)
say(gameforge.new_quest_lv7._091_say) -- success return to old lady say(gameforge.new_quest_lv7._091_say) -- success return to old lady
say("") say("")
say(string.format(gameforge.new_quest_lv7._042_say, get_map_name_by_number(1))) -- 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
--END EDIT --END EDIT
-------------- try to give old woman the flowers --------------------- -------------- try to give old woman the flowers ---------------------
when 9006.chat.gameforge.new_quest_lv7._020_say_title begin when 9006.chat.gameforge.new_quest_lv7._020_say_title begin
target.delete("__TARGET6__") target.delete("__TARGET6__")
say_title(gameforge.new_quest_lv7._012_say_title) 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 if pc.count_item(ITEM_FLOWER_RED) < NEED_RED or pc.count_item(ITEM_FLOWER_ORANGE) < NEED_ORANGE or pc.count_item(ITEM_FLOWER_YELLOW) < NEED_YELLOW then
say(gameforge.new_quest_lv7._110_say) say(gameforge.new_quest_lv7._110_say)
say_reward(string.format(gameforge.new_quest_lv7._085_say_reward, new_quest_lv7_AmountNeed1 - pc.count_item(new_quest_lv7_drop1))) -- FIX: avoid negative numbers if player has more flowers than needed
say_reward(string.format(gameforge.new_quest_lv7._086_say_reward, new_quest_lv7_AmountNeed2 - pc.count_item(new_quest_lv7_drop2))) say_reward(string.format(gameforge.new_quest_lv7._085_say_reward, math.max(0, NEED_RED - pc.count_item(ITEM_FLOWER_RED))))
say_reward(string.format(gameforge.new_quest_lv7._087_say_reward, new_quest_lv7_AmountNeed3 - pc.count_item(new_quest_lv7_drop3))) say_reward(string.format(gameforge.new_quest_lv7._086_say_reward, math.max(0, NEED_ORANGE - pc.count_item(ITEM_FLOWER_ORANGE))))
say_reward(string.format(gameforge.new_quest_lv7._087_say_reward, math.max(0, NEED_YELLOW - pc.count_item(ITEM_FLOWER_YELLOW))))
say(gameforge.new_quest_lv7._081_say) say(gameforge.new_quest_lv7._081_say)
set_state(collect_flowers) set_state(collect_flowers)
else else
pc.remove_item(30169, 1) pc.remove_item(ITEM_FLOWER_RED, NEED_RED)
pc.remove_item(30170, 1) pc.remove_item(ITEM_FLOWER_ORANGE, NEED_ORANGE)
pc.remove_item(30171, 1) pc.remove_item(ITEM_FLOWER_YELLOW, NEED_YELLOW)
pc.give_item2(30172) -- flowers pc.give_item2(ITEM_BOUQUET) -- flowers
-- game.drop_item(30169, 1) -- game.drop_item(30169, 1)
say(gameforge.new_quest_lv7._115_say) say(gameforge.new_quest_lv7._115_say)
-- hier fehlt info wie man in das reich kommt -- hier fehlt info wie man in das reich kommt
@@ -302,6 +315,7 @@
end end
end end
end end
--- go to twin sister of old woman in other kingdom--------------------------------------------------------------------------------------------------- --- go to twin sister of old woman in other kingdom---------------------------------------------------------------------------------------------------
state find_empire begin state find_empire begin
when login or enter begin when login or enter begin
@@ -310,34 +324,36 @@
q.start() q.start()
q.set_title(gameforge.new_quest_lv7._020_say_title) q.set_title(gameforge.new_quest_lv7._020_say_title)
-- END EDIT -- END EDIT
new_quest_lv7_DestMapIndex = 99 new_quest_lv7_DestMapIndex = 99
if pc.get_empire() == 1 then -- = Shinsoo if pc.get_empire() == 1 then -- = Shinsoo
new_quest_lv7_DestMapIndex = 3 -- = Yayang new_quest_lv7_DestMapIndex = 3 -- = Yayang
local v=find_npc_by_vnum(10001) local v = find_npc_by_vnum(10001)
if 0==v then if 0 == v then
else else
target.vid("__TARGET7__", v, gameforge.map_warp._190_select) target.vid("__TARGET7__", v, gameforge.map_warp._190_select)
end end
elseif pc.get_empire() == 2 then -- = Chunjo elseif pc.get_empire() == 2 then -- = Chunjo
new_quest_lv7_DestMapIndex = 23 -- = Bokjung new_quest_lv7_DestMapIndex = 23 -- = Bokjung
local v=find_npc_by_vnum(10003) local v = find_npc_by_vnum(10003)
if 0==v then if 0 == v then
else else
target.vid("__TARGET7__", v, gameforge.map_warp._210_select) target.vid("__TARGET7__", v, gameforge.map_warp._210_select)
end end
elseif pc.get_empire() == 3 then -- = Jinno elseif pc.get_empire() == 3 then -- = Jinno
new_quest_lv7_DestMapIndex = 43 -- = Bakra new_quest_lv7_DestMapIndex = 43 -- = Bakra
local v=find_npc_by_vnum(10005) local v = find_npc_by_vnum(10005)
if 0==v then if 0 == v then
else else
target.vid("__TARGET7__", v, gameforge.map_warp._230_select) target.vid("__TARGET7__", v, gameforge.map_warp._230_select)
end end
end end
if pc.get_map_index() == new_quest_lv7_DestMapIndex then if pc.get_map_index() == new_quest_lv7_DestMapIndex then
target.delete("__TARGET7__") target.delete("__TARGET7__")
notice_multiline(gameforge.new_quest_lv7._125_notice, notice) --notice_multiline(gameforge.new_quest_lv7._125_notice, notice)
local v=find_npc_by_vnum(9006) local v = find_npc_by_vnum(9006)
if 0==v then if 0 == v then
else else
target.vid("__TARGET3__", v, gameforge.subquest_48._230_targetVid) target.vid("__TARGET3__", v, gameforge.subquest_48._230_targetVid)
end end
@@ -346,7 +362,6 @@
end end
when button or info begin when button or info begin
say_title(gameforge.new_quest_lv7._020_say_title) say_title(gameforge.new_quest_lv7._020_say_title)
say(gameforge.new_quest_lv7._131_say) say(gameforge.new_quest_lv7._131_say)
if new_quest_lv7_DestMapIndex == 3 then if new_quest_lv7_DestMapIndex == 3 then
@@ -358,25 +373,36 @@
end end
end end
end end
------ find the sister of the old woman in a different empire ------------------------------------------------------------------------------------------------------ ------ find the sister of the old woman in a different empire ------------------------------------------------------------------------------------------------------
state goto_oldwomans_sister begin state goto_oldwomans_sister begin
when enter or login begin when enter or login begin
send_letter(gameforge.new_quest_lv7._020_say_title) send_letter(gameforge.new_quest_lv7._020_say_title)
q.start() q.start()
q.set_title(gameforge.new_quest_lv7._020_say_title) 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 end
when 9006.chat.gameforge.new_quest_lv7._020_say_title begin 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 if pc.count_item(ITEM_BOUQUET) >= 1 then -- has flowers in inventory
target.delete("__TARGET3__") target.delete("__TARGET3__")
say_title(gameforge.new_quest_lv7._020_say_title) -- yellow say_title(gameforge.new_quest_lv7._020_say_title) -- yellow
pc.remove_item(30172, pc.count_item(30172)) pc.remove_item(ITEM_BOUQUET, pc.count_item(ITEM_BOUQUET))
say_title(pc.get_name()) say_title(pc.get_name())
say(gameforge.new_quest_lv7._140_say) say(gameforge.new_quest_lv7._140_say)
say_title(gameforge.new_quest_lv7._012_say_title) say_title(gameforge.new_quest_lv7._012_say_title)
say(gameforge.new_quest_lv7._141_say) say(gameforge.new_quest_lv7._141_say)
wait() wait()
say_title(gameforge.new_quest_lv7._012_say_title) say_title(gameforge.new_quest_lv7._012_say_title)
say(gameforge.new_quest_lv7._142_say) say(gameforge.new_quest_lv7._142_say)
q.done() q.done()
set_state(find_way_home) set_state(find_way_home)
@@ -389,11 +415,13 @@
set_state(ask_oldwoman) set_state(ask_oldwoman)
end end
end end
when button or info begin when button or info begin
q.set_title(gameforge.new_quest_lv7._020_say_title) q.set_title(gameforge.new_quest_lv7._020_say_title)
say(gameforge.new_quest_lv7._145_say) say(gameforge.new_quest_lv7._145_say)
end end
end end
------ return to first village ------------------------------------------------------------------------------------------------------ ------ return to first village ------------------------------------------------------------------------------------------------------
state find_way_home begin state find_way_home begin
when login or enter begin when login or enter begin
@@ -405,31 +433,31 @@
new_quest_lv7_HomeMapIndex = 99 new_quest_lv7_HomeMapIndex = 99
if pc.get_empire() == 1 then -- = Shinsoo if pc.get_empire() == 1 then -- = Shinsoo
new_quest_lv7_HomeMapIndex = 1 -- = Youngan new_quest_lv7_HomeMapIndex = 1 -- = Youngan
local v=find_npc_by_vnum(10002) local v = find_npc_by_vnum(10002)
if 0==v then if 0 == v then
else else
target.vid("__TARGET7__", v, gameforge.map_warp._180_select) target.vid("__TARGET7__", v, gameforge.map_warp._180_select)
end end
elseif pc.get_empire() == 2 then -- = Chunjo elseif pc.get_empire() == 2 then -- = Chunjo
new_quest_lv7_HomeMapIndex = 21 -- = Joan new_quest_lv7_HomeMapIndex = 21 -- = Joan
local v=find_npc_by_vnum(10004) local v = find_npc_by_vnum(10004)
if 0==v then if 0 == v then
else else
target.vid("__TARGET7__", v, gameforge.map_warp._200_select) target.vid("__TARGET7__", v, gameforge.map_warp._200_select)
end end
elseif pc.get_empire() == 3 then -- = Jinno elseif pc.get_empire() == 3 then -- = Jinno
new_quest_lv7_HomeMapIndex = 41 -- = Pyungmoo new_quest_lv7_HomeMapIndex = 41 -- = Pyungmoo
local v=find_npc_by_vnum(10006) local v = find_npc_by_vnum(10006)
if 0==v then if 0 == v then
else else
target.vid("__TARGET7__", v, gameforge.map_warp._220_select) target.vid("__TARGET7__", v, gameforge.map_warp._220_select)
end end
end end
if pc.get_map_index() == new_quest_lv7_HomeMapIndex then if pc.get_map_index() == new_quest_lv7_HomeMapIndex then
target.delete("__TARGET7__") target.delete("__TARGET7__")
notice_multiline(gameforge.new_quest_lv7._129_say, notice) --notice_multiline(gameforge.new_quest_lv7._129_say, notice)
local v=find_npc_by_vnum(20008) local v = find_npc_by_vnum(20008)
if 0==v then if 0 == v then
else else
target.vid("__TARGET5__", v, gameforge.subquest_48._230_targetVid) target.vid("__TARGET5__", v, gameforge.subquest_48._230_targetVid)
end end
@@ -450,14 +478,14 @@
say(gameforge.new_quest_lv7._137_say) say(gameforge.new_quest_lv7._137_say)
end end
end end
end end
------ invite ocatvio to the wedding ------------------------------------------------------------------------------------------------------ ------ invite ocatvio to the wedding ------------------------------------------------------------------------------------------------------
state back_to_octavio begin state back_to_octavio begin
when enter or login begin when enter or login begin
-- BEGIN EDIT added by Arne 18Sept09, according to Mantis 0026063, REASON: no quest, no letter -- BEGIN EDIT added by Arne 18Sept09, according to Mantis 0026063, REASON: no quest, no letter
local v=find_npc_by_vnum(20008) local v = find_npc_by_vnum(20008)
if 0==v then if 0 == v then
else else
target.vid("__TARGET5__", v, gameforge.new_quest_lv7._010_target) target.vid("__TARGET5__", v, gameforge.new_quest_lv7._010_target)
end end
@@ -466,7 +494,13 @@
q.start() q.start()
q.set_title(gameforge.new_quest_lv7._020_say_title) q.set_title(gameforge.new_quest_lv7._020_say_title)
-- END EDIT -- END EDIT
soup = false
-- FIX: keep soup flag persistent via quest flag
if pc.getqf("soup") == 1 then
soup = true
else
soup = false
end
end end
when button or info begin when button or info begin
@@ -474,7 +508,6 @@
say(gameforge.new_quest_lv7._129_say) say(gameforge.new_quest_lv7._129_say)
end end
when 20008.chat.gameforge.new_quest_lv7._020_say_title begin when 20008.chat.gameforge.new_quest_lv7._020_say_title begin
target.delete("__TARGET5__") target.delete("__TARGET5__")
say_title(gameforge.new_quest_lv7._020_say_title) say_title(gameforge.new_quest_lv7._020_say_title)
@@ -486,108 +519,115 @@
say(gameforge.new_quest_lv7._152_say) say(gameforge.new_quest_lv7._152_say)
-- random reward -- random reward
local reward=new_quest_lv7.reward() local reward = new_quest_lv7.reward()
local reward_exp=new_quest_lv7.reward_exp() 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._154_say_reward, reward_exp))
say_reward(string.format(gameforge.new_quest_lv7._155_say_reward,reward)) say_reward(string.format(gameforge.new_quest_lv7._155_say_reward, reward))
pc.give_exp2(new_quest_lv7.reward_exp()) -- FIX: use the same values for the actual reward
pc.change_money(new_quest_lv7.reward()) pc.give_exp2(reward_exp)
pc.change_money(reward)
local reward_item="0" pc.setqf("soup", 0) -- reset flavour flag after success
if pc.job==0 then
local r=number(1,10) local reward_item = "0"
if r==1 then local job = pc.get_job()
reward_item="00013" if job == 0 then
elseif r==2 then local r = number(1,10)
reward_item="00023" if r == 1 then
elseif r==3 then reward_item = "00013"
reward_item="00033" elseif r == 2 then
elseif r==4 then reward_item = "00023"
reward_item="00043" elseif r == 3 then
elseif r==5 then reward_item = "00033"
reward_item="00053" elseif r == 4 then
elseif r==6 then reward_item = "00043"
reward_item="03003" elseif r == 5 then
elseif r==7 then reward_item = "00053"
reward_item="03013" elseif r == 6 then
elseif r==8 then reward_item = "03003"
reward_item="03023" elseif r == 7 then
elseif r==9 then reward_item = "03013"
reward_item="03033" elseif r == 8 then
elseif r==10 then reward_item = "03023"
reward_item="03043" elseif r == 9 then
reward_item = "03033"
elseif r == 10 then
reward_item = "03043"
end end
elseif pc.job==1 then elseif job == 1 then
local r=number(1,10) local r = number(1,10)
if r==1 then if r == 1 then
reward_item="01003" reward_item = "01003"
elseif r==2 then elseif r == 2 then
reward_item="04003" reward_item = "04003"
elseif r==3 then elseif r == 3 then
reward_item="01013" reward_item = "01013"
elseif r==4 then elseif r == 4 then
reward_item="04013" reward_item = "04013"
elseif r==5 then elseif r == 5 then
reward_item="01023" reward_item = "01023"
elseif r==6 then elseif r == 6 then
reward_item="02003" reward_item = "02003"
elseif r==7 then elseif r == 7 then
reward_item="02013" reward_item = "02013"
elseif r==8 then elseif r == 8 then
reward_item="02023" reward_item = "02023"
elseif r==9 then elseif r == 9 then
reward_item="02033" reward_item = "02033"
elseif r==10 then elseif r == 10 then
reward_item="2043" reward_item = "02043"
end end
elseif pc.job==2 then elseif job == 2 then
local r=number(1, 6) local r = number(1, 6)
if r==1 then if r == 1 then
reward_item="00013" reward_item = "00013"
elseif r==2 then elseif r == 2 then
reward_item="00023" reward_item = "00023"
elseif r==3 then elseif r == 3 then
reward_item="00033" reward_item = "00033"
elseif r==4 then elseif r == 4 then
reward_item="00043" reward_item = "00043"
elseif r==5 then elseif r == 5 then
reward_item="00053" reward_item = "00053"
elseif r==6 then elseif r == 6 then
reward_item="00053" reward_item = "00053"
end end
elseif pc.job==3 then elseif job == 3 then
local r=number(1, 8) local r = number(1, 8)
if r==1 then if r == 1 then
reward_item="05003" reward_item = "05003"
elseif r==2 then elseif r == 2 then
reward_item="05013" reward_item = "05013"
elseif r==3 then elseif r == 3 then
reward_item="05023" reward_item = "05023"
elseif r==4 then elseif r == 4 then
reward_item="07003" reward_item = "07003"
elseif r==5 then elseif r == 5 then
reward_item="07013" reward_item = "07013"
elseif r==6 then elseif r == 6 then
reward_item="07023" reward_item = "07023"
elseif r==7 then elseif r == 7 then
reward_item="07033" reward_item = "07033"
elseif r==8 then elseif r == 8 then
reward_item="07043" reward_item = "07043"
end end
end end
if reward_item != "0" then if reward_item != "0" then
wait() wait()
say_reward(gameforge.new_quest_lv7._153_say_reward) say_reward(gameforge.new_quest_lv7._153_say_reward)
say_item_vnum(reward_item) say_item_vnum(reward_item)
pc.give_item2(reward_item,1) pc.give_item2(reward_item,1)
end end
q.done()
set_state(__COMPLETE__) set_state(__COMPLETE__)
else else
say(gameforge.new_quest_lv7._160_say) say(gameforge.new_quest_lv7._160_say)
say(gameforge.new_quest_lv7._165_say) say(gameforge.new_quest_lv7._165_say)
soup = true soup = true
pc.setqf("soup", 1) -- FIX: remember that player talked to the wrong Octavio
end end
end end
end end
@@ -598,10 +638,11 @@
return return
end end
end end
------ complete ------------------------------------------------------------------------------------------------------ ------ complete ------------------------------------------------------------------------------------------------------
state __COMPLETE__ begin state __COMPLETE__ begin
when button or info begin when button or info begin
return return
end end
end end
end end