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 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("") say(string.format(gameforge.new_quest_lv7._042_say, get_map_name_by_number(1))) -- 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) 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 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("") say(string.format(gameforge.new_quest_lv7._042_say, get_map_name_by_number(1))) 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) say_reward(string.format(gameforge.new_quest_lv7._085_say_reward, new_quest_lv7_AmountNeed1 - pc.count_item(new_quest_lv7_drop1))) 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._087_say_reward, 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) end when 9006.chat.gameforge.new_quest_lv7._020_say_title 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 soup = false 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)) pc.give_exp2(new_quest_lv7.reward_exp()) pc.change_money(new_quest_lv7.reward()) 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 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