Veröffentliche ich mal meine alte Version.. Ist nicht schön geschrieben.. Tut aber sein zweck
Besonderheiten:
* Spinne erhält mehr leben wenn man die Eier zerstört.
* Der Bossraum fungiert als Dungeon.
PHP Code:
--[[
-- Spiderdungeon 3 Bossroom
-- lvl 50
-- Copyright ©Zymos/Risan
]]
quest sd3_bossroom begin
state start begin
function is_sd3_bossrom()
if not pc.in_dungeon() then
return false
else
local map_index = d.get_map_index()
if map_index >= 740000 and map_index < 749000 then
return true
else
return false
end
end
end
when login with sd3_bossroom.is_sd3_bossrom() == true begin
d.jump_all(878, 6148)
if d.getf("spawn") == 0 then
d.set_regen_file("data/dungeon/spider3/sd3.txt")
mob.spawn(2094,380, 585 , 10, 1, 1)
d.setf("spawn",1)
d.setf("random",number(1,32000))
clear_server_timer('duration_end',d.get_map_index())
clear_server_timer('duration_end1',d.get_map_index())
clear_server_timer('duration_end2',d.get_map_index())
clear_server_timer('duration_end3',d.get_map_index())
clear_server_timer('exit_bossrom',d.get_map_index())
server_timer('duration_end',60*4,d.get_map_index())
server_timer('exit_bossrom', 60*21,d.get_map_index())
d.notice("Willkommen in der Bruthöhle der Spinnenbaroness. Ihr habt maximal 20 Minuten Zeit um den Run zu absolvieren.")
end
if find_var(map_variable_get("sd3_bossrom_names_group"),pc.get_name()) == false then
local count = tonumber(map_variable_get("sd3_bossrom_player_count"))
--chat("OLD COUNT"..tostring(map_variable_get("sd3_bossrom_player_count")).."")
--chat("OLD NAMES"..map_variable_get("sd3_bossrom_names_group").."")
if tostring(map_variable_get("sd3_bossrom_player_count")) == '0' then
map_variable_add("sd3_bossrom_names_group",pc.get_name())
--d.notice("HAVE 0")
else
map_variable_add("sd3_bossrom_names_group",""..map_variable_get("sd3_bossrom_names_group")..", "..pc.get_name().." ")
--d.notice("HAVE IT")
end
map_variable_add("sd3_bossrom_player_count", count +1)
end
--chat("NEW COUNT"..tostring(map_variable_get("sd3_bossrom_player_count")).."")
--chat("NEW NAMES"..map_variable_get("sd3_bossrom_names_group").."")
end
when kill with sd3_bossroom.is_sd3_bossrom() == true begin
if npc.get_race() == 2094 then
game.drop_item(30327,1)
d.notice("Die "..mob_name(2094).." wurde besiegt nun ruft mit hilfe der "..item_name(30327).." das wahre Monster herbei!")
elseif npc.get_race() == 2095 then
--d.notice("OLD SPIDER TP "..d.getf("spider_full").."")
local old_hp = d.getf("spider_full") - 10000
d.setf("spider_full",old_hp)
--d.notice("OLD SPIDER new "..d.getf("spider_full").."")
local new = 381590 + old_hp
d.unique_set_maxhp("spider"..d.getf("random"),new)
d.unique_set_hp("spider"..d.getf("random"),new)
elseif npc.get_race() == 2092 and d.is_unique_dead("spider") then --Spinnenbaroness
clear_server_timer('duration_end',d.get_map_index())
clear_server_timer('duration_end1',d.get_map_index())
clear_server_timer('duration_end2',d.get_map_index())
clear_server_timer('duration_end3',d.get_map_index())
clear_server_timer('exit_bossrom',d.get_map_index())
d.clear_regen()
d.kill_all()
notice(""..mob_name(2092).." wurde vernichtet und ihr werdet in 1 Minute hinausteleportiert.")
server_timer('exit_bossrom', 60,d.get_map_index())
d.setf("spawn",0)
notice_all("Die Spieler: "..map_variable_get("sd3_bossrom_names_group").." haben den "..mob_name(2092).." besiegt.")
mysql_query("INSERT INTO log.sd3_boss_slay_log (date_time,by_username_kill,group_count,map_index,groub_usernames) VALUES (NOW(),'"..pc.get_name().."','"..tonumber(map_variable_get("sd3_bossrom_player_count")).."','"..pc.get_map_index().."','"..map_variable_get("sd3_bossrom_names_group").."')")
variable_global_del("sd3_bossrom_names_group")
variable_global_del("sd3_bossrom_player_count")
end
end
when exit_bossrom.server_timer with d.select(get_server_timer_arg()) begin
d.exit_all()
end
when duration_end.server_timer with d.select(get_server_timer_arg()) begin
server_timer('duration_end1', 60*14,d.get_map_index())
d.notice("Euch verbleiben noch 15 Minuten")
end
when duration_end1.server_timer with d.select(get_server_timer_arg()) begin
server_timer('duration_end2', 60*9,d.get_map_index())
d.notice("Euch verbleiben noch 10 Minuten")
end
when duration_end2.server_timer with d.select(get_server_timer_arg()) begin
server_timer('duration_end3', 60*4,d.get_map_index())
d.notice("Euch verbleiben noch 5 Minuten")
end
when duration_end3.server_timer with d.select(get_server_timer_arg()) begin
server_timer('exit_bossrom', 60,d.get_map_index())
d.notice("Euch verbleibt noch 1 Minute. Bevor ihr hinausteleportiert werdet.")
end
when 30327.use with sd3_bossroom.is_sd3_bossrom() == true begin
d.regen_file("data/dungeon/spider3/sd3.txt")
local vid = d.spawn_mob(2092, 380, 585)
d.set_unique("spider"..d.getf("random"), vid)
item.remove()
d.notice("Das wahre Monster wurde herbeigerufen "..mob_name(2092).."! Vernichtet sie und ihr werdet reichlich belohnt!")
sd3_bossroom.spawn_eier()
end
when 20371.chat."Zugang zur Bruthöhle" with pc.get_level() >= 50 and pc.get_map_index() == 74 begin --Grabstein
-- if is_test_server() then
-- map_variable_add("Sd3_bossroom_duration",get_time() + 60*60)
-- d.join(74)
-- return
-- end
if party.is_leader() == false and not pc.is_gm() then
say_npc()
say("")
say("Nur der Gruppenanführer kann euch in die")
say("Bruthöhle bringen.")
say("")
return
end
if tostring(get_quest_state("sd_three")) != "668443392" then
say_npc()
say("")
say("Du hast die Quest noch nicht absorlviert")
say("Tue dies und komme anschließend wieder.")
say("")
return
end
say_npc()
say("")
say("Ohhh.")
say("Ich bekomme hier selten besuch..")
say("")
--"12345678901234567890123456789012345678901234567890"|
say("Wie ich sehe möchtest ihr die Bruthöhle")
say("der "..mob_name(2092).." betreten.")
say("Doch seit gewarnt.. Sie ist hungrig und")
say("zögert nicht euch alle zu fressen...")
say("")
wait()
say_npc()
say("")
say("Alles klar.. Ihr seit mutig!")
say("Ich bringe euch ins innere der höhle")
say("")
wait()
if tonumber(map_variable_get("Sd3_bossroom_duration")) >= get_time() then
say_npc()
say("")
say("Die höhle kann momentan noch nicht betreten werden.")
say("Probiere es später nochmal.")
say("")
local tt = tonumber(map_variable_get("Sd3_bossroom_duration")) - get_time()
say("Verbleib Zeit: "..math.ceil(tt / 60) .." Minuten.")
return
end
if pc.count_item(30324) >= 1 then
pc.remove_item(30324,1)
elseif pc.count_item(30325) >= 1 then
pc.remove_item(30325,1)
else
say_npc()
say("")
say("Ich kann euch nicht passieren lassen.")
say("Euch fehlt der "..item_name(30324).."")
say_item_vnum(30324)
return
end
map_variable_add("Sd3_bossroom_duration",get_time() + 60*60)
d.join(74)
end
function spawn_eier()
local rr = number(3,10)
d.setf("spider_full",rr*10000)
local hp = rr * 10000 + 381590
--d.notice("set hp "..hp.."")
d.unique_set_maxhp("spider"..d.getf("random"),hp)
d.unique_set_hp("spider"..d.getf("random"),hp)
for i = 1, rr,1 do
local r = number(1,5)
if r == 1 then
mob.spawn(2095,367 + number(2,15), 585 - number(1,15), 10, 1, 1)
elseif r == 2 then
mob.spawn(2095,360 + number(1,10), 580 - number(2,10), 10, 1, 1)
elseif r == 3 then
mob.spawn(2095,365 - number(3,10), 575 + number(4,10), 10, 1, 1)
elseif r == 4 then
mob.spawn(2095,370 + number(4,17), 590 - number(1,10), 10, 1, 1)
else
mob.spawn(2095,367 - number(1,15), 585 + number(3,15), 10, 1, 1)
end
end
end
end
end