Da ja nun Ostern laaange vorbei ist, habe ich mich heute entschlossen meine letzte quest hierfür zu veröffentlichen..
wurde am Ostern noch gecodet.. Voll der stress ey XD
Die regendateien befinden sich im Anhang.
Viel Spass..
mfg Zymos
Bekannte Fehler:
1.) Man kann das Ei 2 mal öffnen und dann erst in den Korb legen, lässt sich fixxen indem man einfach ne if abfrage einbaut beim reinlegen.
2.) Wenn man einen Oster-Metin zerstört spawnt sofort ein neuer nach per zufall festgelegte Kordinaten. (Ich da aktuell auch kein gescheiten fixx, eventuell geht server_timer; was anders fällt mir nicht ein...)
PHP Code:
quest easter begin
state start begin
when 90100.chat."Regen easter" begin
regen_in_map(63,"data/regen_event/easter_desert.txt") --Wüste 63
regen_in_map(64,"data/regen_event/easter_threeway.txt") --Orktal 64
regen_in_map(67,"data/regen_event/easter_trent.txt") --Geisterwald 67
regen_in_map(70,"data/regen_event/easter_nusluck.txt") --Land der Riesen 70
regen_in_map(68,"data/regen_event/easter_trent02.txt") --Roter Wald 68
regen_in_map(74,"data/regen_event/easter_naga02.txt") --Land der Verdammten 74
regen_in_map(1,"data/regen_event/easter_npc_red1.txt")
regen_in_map(21,"data/regen_event/easter_npc_yellow1.txt")
regen_in_map(41,"data/regen_event/easter_npc_blue1.txt")
say("Die Ostermetins wurde auf diesem Channel gespawnt")
say("und der Osterhase steht nun auf diesem Channel jeweilige Map1")
end
when kill with game.get_event_flag("easter_drop") == 1 begin
if pc.get_map_index() == 63 and npc.get_race() == 8045 then
local rand = number(1,3)
local m = number(8045,8045)
if rand == 1 then
mob.spawn (m, 354, 1069, 10, 1, 1)
elseif rand == 2 then
mob.spawn (m, 502, 502, 10, 1, 1)
else
mob.spawn (m, 1281, 667, 10, 1, 1)
end
elseif pc.get_map_index() == 64 and npc.get_race() == 8045 then
local rand = number(1,3)
local m = number(8045,8045)
if rand == 1 then
mob.spawn (m, 870, 811, 10, 1, 1)
elseif rand == 2 then
mob.spawn (m, 683, 803, 10, 1, 1)
else
mob.spawn (m, 619, 667, 10, 1, 1)
end
elseif pc.get_map_index() == 67 and npc.get_race() == 8046 or npc.get_race() == 8047 or npc.get_race() == 8048 then
local rand = number(1,3)
local m = number(8046,8048)
if rand == 1 then
mob.spawn (m, 179, 817, 10, 1, 1)
elseif rand == 2 then
mob.spawn (m, 366, 292, 10, 1, 1)
else
mob.spawn (m, 366, 292, 10, 1, 1)
end
elseif pc.get_map_index() == 70 and npc.get_race() == 8046 or npc.get_race() == 8047 or npc.get_race() == 8048 then
local rand = number(1,3)
local m = number(8046,8048)
if rand == 1 then
mob.spawn (m, 179, 817, 10, 1, 1)
elseif rand == 2 then
mob.spawn (m, 366, 292, 10, 1, 1)
else
mob.spawn (m, 366, 292, 10, 1, 1)
end
elseif pc.get_map_index() == 68 and npc.get_race() == 8049 or npc.get_race() == 8050 then
local rand = number(1,3)
local m = number(8046,8048)
if rand == 1 then
mob.spawn (m, 280, 590, 10, 1, 1)
elseif rand == 2 then
mob.spawn (m, 129, 684, 10, 1, 1)
else
mob.spawn (m, 339, 124, 10, 1, 1)
end
elseif pc.get_map_index() == 74 and npc.get_race() == 8050 or npc.get_race() == 8051 or npc.get_race() == 8052 or npc.get_race() == 8053 or npc.get_race() == 8054 then
local rand = number(1,9)
local m = number(8050,8054)
if rand == 1 then
mob.spawn (m,286,295, 10, 1, 1)
elseif rand == 2 then
mob.spawn (m,490,1019, 10, 1, 1)
elseif rand == 3 then
mob.spawn (m,675,735, 10, 1, 1)
elseif rand == 4 then
mob.spawn (m,519,1075, 10, 1, 1)
elseif rand == 5 then
mob.spawn (m,300,755, 10, 1, 1)
elseif rand == 6 then
mob.spawn (m,795,789, 10, 1, 1)
elseif rand == 7 then
mob.spawn (m,841,619, 10, 1, 1)
elseif rand == 8 then
mob.spawn (m,996,318, 10, 1, 1)
else
mob.spawn (m,231,316, 10, 1, 1)
end
end
end
when 30129.chat."Ich habe Ostereier gefunden!" begin
say_title(""..mob_name(30129).."")
say("")
local f = select("Ein Zauberei eintauschen","Ein Vollen Osterkorb mit Eier eintauschen","Schließen")
if f == 1 then
globa_var_add("Osterei_counta",0)
globa_var_add("Osterei_while_a",50160)
while tonumber(globa_var_get("Osterei_while_a")) <= 50179 do
globa_var_add("Osterei_counta",tonumber(globa_var_get("Osterei_counta")) + pc.count_item(tonumber(globa_var_get("Osterei_while_a"))))
globa_var_add("Osterei_while_a",tonumber(globa_var_get("Osterei_while_a")) + 1)
end
if tonumber(globa_var_get("Osterei_counta")) == 0 then
say_title(""..mob_name(30129).."")
say("")
say("Du hast kein Osterei bei dir. "..globa_var_get("Osterei_counta").."")
elseif tonumber(globa_var_get("Osterei_counta")) < 100 then
say_title(""..mob_name(30129).."")
say("")
say("Du hast weniger wie 100 Eier bei dir,")
say("komme wieder wenn du 100x oder mehr hast")
say("von einer Sorte")
else
globa_var_add("Osterei_while_b",50160)
while tonumber(globa_var_get("Osterei_while_b")) <= 50179 do
if pc.count_item(tonumber(globa_var_get("Osterei_while_b"))) >= 100 then
pc.remove_item(tonumber(globa_var_get("Osterei_while_b")),100)
pc.give_item2(71150,1)
say_title(""..mob_name(30129).."")
say("")
say_item_vnum(tonumber(globa_var_get("Osterei_while_b")))
say("Du hast mir 100x "..item_name(tonumber(globa_var_get("Osterei_while_b"))).." gebracht.")
say("Als dankeschön übergebe ich dir")
say("1x "..item_name(71150).."")
say_item_vnum(71150)
say("Frohe Ostern!!")
break
end
globa_var_add("Osterei_while_b",tonumber(globa_var_get("Osterei_while_b")) + 1)
end
end
elseif f == 2 then
globa_var_add("Osterei_counta",0)
globa_var_add("Osterei_while_a",50160)
while tonumber(globa_var_get("Osterei_while_a")) <= 50179 do
globa_var_add("Osterei_counta",tonumber(globa_var_get("Osterei_counta")) + pc.count_item(tonumber(globa_var_get("Osterei_while_a"))))
globa_var_add("Osterei_while_a",tonumber(globa_var_get("Osterei_while_a")) + 1)
end
if tonumber(globa_var_get("Osterei_counta")) == 0 then
say_title(""..mob_name(30129).."")
say("")
say("Du hast kein Osterei bei dir. "..globa_var_get("Osterei_counta").."")
elseif tonumber(globa_var_get("Osterei_counta")) < 200 then
say_title(""..mob_name(30129).."")
say("")
say("Du hast weniger wie 200 Eier bei dir,")
say("komme wieder wenn du 200 oder mehr hast")
say("von einer Sorte.")
else
globa_var_add("Osterei_while_b",50160)
while tonumber(globa_var_get("Osterei_while_b")) <= 50179 do
if pc.count_item(tonumber(globa_var_get("Osterei_while_b"))) >= 200 then
pc.remove_item(tonumber(globa_var_get("Osterei_while_b")),200)
pc.give_item2(50181,1)
say_title(""..mob_name(30129).."")
say("")
say_item_vnum(tonumber(globa_var_get("Osterei_while_b")))
say("Du hast mir 250x "..item_name(tonumber(globa_var_get("Osterei_while_b"))).." gebracht.")
say("Als dankeschön übergebe ich dir")
say("1x "..item_name(50181).."")
say_item_vnum(50181)
say("Frohe Ostern!!")
break
end
globa_var_add("Osterei_while_b",tonumber(globa_var_get("Osterei_while_b")) + 1)
end
end
else
return
end
end
when 50180.use begin
if pc.count_item(71150) == 0 then
syschat("Du brauchst Mindestens ein "..item_name(71150).." um den Korb zu füllen.")
return
end
local z = number(1,2)
pc.removeitem(50180,1)
pc.removeitem(71150,1)
if z == 1 then
chat("Du hast das "..item_name(71150).." behutsam in Korb gelegt, die Magie des "..item_name(71150).." hat es mit Eier gefüllt.")
pc.give_item2(50181,1)
end
end
when 50181.use begin
chat("Du öffnest den vollen Osterkorb")
local randi = number(1,17)
local prem_item = {
[1] = { 25041,1 }, --Magischer Stein
[2] = { 27992,1 }, --Weiße Perle
[3] = { 27993,1 }, --Blaue Perle
[4] = { 27994,1 }, --Blutrote Perle
[5] = { 72726,1 }, --Elixier der Sonne (S)
[6] = { 72730,1 }, --Elixier des Mondes (S)
[7] = { 72001,1 }, --Erfahrungsring
[8] = { 71150,2 }, --Zauber-Ei
[9] = { 50180,2 }, --Leerer Korb
[10] = { 50512,1 }, --Regenbogenstein
[11] = { 71131,1 }, --Rappen-Siegel
[12] = { 71020,25 }, --Segen des Drachen
[13] = { 80013,1 }, --Blauer Diamant
[14] = { 80014,1 }, --Grüner Diamant
[15] = { 80015,1 }, --Roter Diamant
[16] = { 80016,1 }, --Oranger Diamant
[17] = { 80017,1 }, --Violetter Diamant
}
pc.give_item2(prem_item[randi][1],prem_item[randi][2])
pc.removeitem(50181,1)
end
when 71150.use begin
if pc.getqf("next_time") >= get_time() then
syschat("Du kannst das "..item_name(71150).." nur alle 30 Minuten öffnen.")
return
end
--local randi = number(1,30)
--local normal_item = {
-- [1] = { 25041,1 }, --Magischer Stein
-- [2] = { 27992,1 }, --Weiße Perle
-- [3] = { 27993,1 }, --Blaue Perle
-- [4] = { 27994,1 }, --Blutrote Perle
-- [5] = { 50180,3 }, --Leerer Korb
-- [6] = { 50512,1 }, --Regenbogenstein
-- [7] = { 71020,5 }, --Segen des Drachen
-- [8] = { 27987,5 }, --Muschel
-- [9] = { 80021,1 }, --Regenbogen Seelenstein
-- [10] = { 80015,1 }, --Roter Diamant
-- [11] = { 80016,1 }, --Oranger Diamant
-- [12] = { 80017,1 }, --Violetter Diamant
-- [13] = { 71044,1 }, --Kritischer Kampf
-- [14] = { 71045,1 }, --Durchbohrender Kampf
-- [15] = { 80003,1 }, --Silberbarre (10kk Yang)
-- [16] = { 80004,1 }, --Silberbarre (50kk Yang)
-- [17] = { 80034,1 }, --Blauer Splitter
-- [18] = { 80036,1 }, --Grüner Splitter
-- [19] = { 80037,1 }, --Roter Splitter
-- [20] = { 80035,1 }, --Goldener Splitter
-- [21] = { 30192,1 }, --Milchsaft
-- [22] = { 30193,1 }, --Fingerknochen
-- [23] = { 30194,1 }, --Ork-Keule
--[24] = { 30195,1 }, --Quarzsand
--[25] = { 30196,1 }, --Dämonenasche
--[26] = { 30197,1 }, --Magische Samen
--[27] = { 30198,1 }, --Wasserkristall
--[28] = { 30199,1 }, --Blauer Kristall
--[29] = { 71150,2 }, --Zauber-Ei
--[30] = { 50180,3 }, --Leerer Korb
--}
--pc.give_item2(normal_item[randi][1],normal_item[randi][2])
if not pc.is_gm() then pc.setqf("next_time",get_time() + 1800) end
pc.setqf("open",pc.getqf("open") +1)
syschat("Du öffnest das Magische Zauberei. (Noch ".. 3-pc.getqf("open").." möglich)")
pc.give_item_from_special_item_group("71150")
if pc.getqf("open") >= 3 then
pc.removeitem(71150,1)
pc.setqf("open",0)
end
end
end
end
Die regendateien befinden sich im Anhang.
Viel Spass..
mfg Zymos
Bekannte Fehler:
1.) Man kann das Ei 2 mal öffnen und dann erst in den Korb legen, lässt sich fixxen indem man einfach ne if abfrage einbaut beim reinlegen.
2.) Wenn man einen Oster-Metin zerstört spawnt sofort ein neuer nach per zufall festgelegte Kordinaten. (Ich da aktuell auch kein gescheiten fixx, eventuell geht server_timer; was anders fällt mir nicht ein...)