forked from metin2/server
1
0
Fork 0
server/gamefiles/locale/english/quest/manwoo.quest

180 lines
6.0 KiB
Plaintext

quest manwoo begin
state start begin
when 9009.chat."GM: Start Fishing Event" with pc.get_gm_level() == 5 and game.get_event_flag("manwoo_start") == 0 begin
say_title("Manwoo Event")
say("Which fish should be accepted?") -- Setting which kind of fishes should the fisher man accept in the event
say("Between 27802 and 27818") -- We have fishes till 27823 but they aren't activated
local fish = input()
if fish != "" then
fish = tonumber(fish)
end
if fish >= 27802 and fish <= 27818 then -- Check if the input is a number and if it is fishable.
game.set_event_flag("manwoo_fish", fish) -- To check the fish as an eventflag
else
say("That number isn't accepted")
return
end
say_title("Manwoo Event") -- Setting the amount of fishes that would be accepted
say("How many fishes should we accept?")
local amount = input()
if amount != "" then
amount = tonumber(amount)
end
if amount > 0 then
game.set_event_flag("manwoo", amount)
else
say("That isn't a valid number")
end
say_title("Manwoo Event") -- Setting the reward for the event
say("How many different items should")
say("the player receive as a reward? Max = 4")
--
local reward_amount = select("1", "2", "3", "4", "cancel") -- how many different items a player can get, max = 4.
if s == 5 then
return
else
local i = 0
repeat
i = i + 1
game.set_event_flag("manwoo_reward_"..i, 0)
until i == 4
local current_amount = 0
local again = 1
repeat -- repeat so that the array will be filled in
say_title("Manwoo Event")
say("Please input the item vnum that will be given (Reward "..current_amount..").")
local reward_vnum = input()
say_title("Manwoo Event")
if reward_vnum == "" or reward_vnum == 0 then
say("You did not put a vnum in there")
again = select("Again", "no more items", "cancel")
if again == 2 then
current_amount = reward_amount
elseif again == 3 then
return
end
else
if item_name(reward_vnum) == nil then
say("That vnum does not exist")
wait()
else
say_item_vnum(reward_vnum)
say("")
local vnum_ok = select("ok", "type again", "cancel")
if vnum_ok == 1 then
current_amount = current_amount + 1
game.set_event_flag("manwoo_reward_"..current_amount, reward_vnum)
elseif vnum_ok == 3 then
return
end
end
end
until current_amount == reward_amount
end
say_title("Manwoo Event")
say("For how many hours should the event be on?")
local s = select("8 hours", "16 hours", "24 hours", "unlimited", "input", "cancel")
local hours = 1 -- default value
if s == 1 then
hours = 8
elseif s == 2 then
hours = 16
elseif s == 3 then
hours = 24
elseif s == 4 then
hours = 0
elseif s == 5 then
hours = tonumber(input())
if hours < 1 then
return
end
else
return
end
game.set_event_flag("manwoo_time", get_global_time()+hours*60)
game.set_event_flag("manwoo_start", 1)
return
end
when 9009.chat."GM: Stop Fish event" with pc.get_gm_level() == 5 and game.get_event_flag("manwoo_start") > 0 begin
say_title("Manwoo Event")
local s=select("stop the event", "cancel")
if s == 1 then
game.set_event_flag("manwoo_start", 0)
else
return
end
end
when 9009.chat."Psst, want to help me out?" with game.get_event_flag("manwoo_start") > 0 and game.get_event_flag("manwoo_time") >= get_global_time() begin
pc.setqf("reward", 1)
pc.setqf("time", game.get_event_flag("manwoo_time"))
say_title("Fisherman's Event")
say("Hi, do you know Octavio in the village over there?")
say("He came to me one day with a very attractive business deal.")
say("As you know, he is one of the most famous cooks in these regions,")
say("and he strives to be the best there is in every cooking mastery.")
say("He has put his attention to sushi,")
say("and he claims he needs live fish to make the tastiest sushi.")
wait()
say_title("Fisherman's Event")
say("Of course he doesn't have any time to catch them himself,")
say("so he asked me to do it for him, for some items he gets from his customers.")
say("But I'm a bit stretched at the moment with the amount he needs from me,")
say("I cannot possibly do it alone.")
say("If you help me with Octavio's order,")
say("I will give you a nice reward!")
say("Give me this fish: ")
say(game.get_event_flag("manwoo").."x: ")
say_item_vnum(game.get_event_flag("manwoo_fish"))
wait()
set_state(give_fish)
end
end
state give_fish begin
when login or enter with game.get_event_flag("manwoo_start") == 0 or pc.getqf("time") < get_global_time() begin
set_state(start)
end
when login or enter begin
say("bla")
end
when 9009.chat."About the fish..." with game.get_event_flag("manwoo_start") > 0 and game.get_event_flag("manwoo_start") > 0 and game.get_event_flag("manwoo_time") >= get_global_time() begin
say_title("Fisherman's Event")
if pc.count_item(game.get_event_flag("manwoo_fish")) < game.get_event_flag("manwoo") then
say("You don't have enough fish!")
else
say("Hey! You actually managed to do it!")
say("Thank you!")
say("And now... for the reward")
wait()
say_title("Fisherman's Event")
local current_amount = pc.getqf("reward")
local reward_vnum = game.get_event_flag("manwoo_reward_"..current_amount)
if reward_vnum == 0 or reward_vnum == "" then
local last_item_vnum = 150
say_item_vnum(last_item_vnum)
pc.give_item2(last_item_vnum)
else
if pc.enough_inventory(reward_vnum) == true then
say_item_vnum(reward_vnum)
pc.remove_item(game.get_event_flag("manwoo_fish"), game.get_event_flag("manwoo"))
pc.give_item2(reward_vnum)
pc.setqf("reward", current_amount +1)
else
say("You don't have enough space!")
say("Please, return when you have enough space!")
end
end
end
end
end
end