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...)






