quest warpring begin
state start begin
when 70007.use with pc.get_level() >= 10 begin
say_title("Ring:")
say("Möchtest du zu den Neuen Monstern?")
local main_set = select("Ja","Nein")
if main_set == 2 then
return
end
if pc.get_level() <= 100 then
say_title("Ring:")
say("Hm… Mit deinem derzeitigen Level bist du noch")
say("zu schwach für die Neuen Mob´s.")
say("Komm wieder, wenn du Level 100 oder höher bist.")
return
end
local newmap = select("Zombie Map", "Wasserschlangen Map", "Abbrechen")
if newmap == 1 then
pc.warp(83200,0)
end
if newmap == 2 then
pc.warp(512300,512300)
else
return
end
end
end
end
klappt auch nicht der Inventar bleibt beim einloggen leer-.-Quote:
du musst das ja auch als komplette Quest einfügen und nicht als so halbfertigen Käse da :D
PHP Code:quest give_basic_weapon begin
state start begin
when login with pc.get_level() == 1 begin
if pc.getqf("basic_weapon") == 0 then
say_title ( "Willkommen" )
say ( "Willkommen auf dem Server Servername." )
say ( "Unsere Homepage ist http:/Homepage" )
say ( "Viel Spass auf unserem Server!" )
say ( "Euer ServerName Team." )
say ( "" )
pc . give_exp2 ( 100000 )
set_quest_state ( "levelup" , "run" )
pc . change_money ( 1000000 )
pc . give_item2 ( "27003" , 200 )
pc . give_item2 ( "27003" , 200 )
pc . give_item2 ( "27003" , 200 )
pc . give_item2 ( "27003" , 200 )
pc . give_item2 ( "27003" , 200 )
pc . give_item2 ( "27006" , 200 )
pc . give_item2 ( "27006" , 200 )
pc . give_item2 ( "71050" , 200 )
pc . give_item2 ( "72702" , 1 )
pc . give_item2 ( "50052" , 1 )
horse.set_level(11)
say_reward ( "Du wurdest level 33." )
say_reward ( "Du erhielst 1kk." )
say_reward ( "Du erhielst 1000 Rote(G)." )
say_reward ( "Du erhielst 400 Blaue(G)." )
say_reward ( "Du erhielst Items fur Laufgeschwindigkeit." )
say_reward ( "Du erhielst ein Kampfpferd." )
if pc . job == 0 then
pc . give_item2 ( "299" , 1 )
pc . give_item2 ( "3219" , 1 )
pc . give_item2 ( "11249" , 1 )
pc . give_item2 ( "12229" , 1 )
pc . give_item2 ( "13029" , 1 )
pc . give_item2 ( "14009" , 1 )
pc . give_item2 ( "15009" , 1 )
pc . give_item2 ( "16009" , 1 )
pc . give_item2 ( "17009" , 1 )
say_reward ( "Du erhielst das Kriegerset!" )
elseif pc . job == 1 then
pc . give_item2 ( "1179" , 1 )
pc . give_item2 ( "2159" , 1 )
pc . give_item2 ( "8009" , 200 )
pc . give_item2 ( "8008" , 200 )
pc . give_item2 ( "8007" , 200 )
pc . give_item2 ( "8006" , 200 )
pc . give_item2 ( "11449" , 1 )
pc . give_item2 ( "12369" , 1 )
pc . give_item2 ( "13029" , 1 )
pc . give_item2 ( "14009" , 1 )
pc . give_item2 ( "15009" , 1 )
pc . give_item2 ( "16009" , 1 )
pc . give_item2 ( "17009" , 1 )
say_reward ( "Du erhielst das Ninjaset!" )
elseif pc . job == 2 then
pc . give_item2 ( "299" , 1 )
pc . give_item2 ( "11649" , 1 )
pc . give_item2 ( "12509" , 1 )
pc . give_item2 ( "13029" , 1 )
pc . give_item2 ( "14009" , 1 )
pc . give_item2 ( "15009" , 1 )
pc . give_item2 ( "16009" , 1 )
pc . give_item2 ( "17009" , 1 )
say_reward ( "Du erhielst das Suraset!" )
elseif pc . job == 3 then
pc . give_item2 ( "5119" , 1 )
pc . give_item2 ( "7169" , 1 )
pc . give_item2 ( "11849" , 1 )
pc . give_item2 ( "12649" , 1 )
pc . give_item2 ( "13029" , 1 )
pc . give_item2 ( "14009" , 1 )
pc . give_item2 ( "15009" , 1 )
pc . give_item2 ( "16009" , 1 )
pc . give_item2 ( "17009" , 1 )
say_reward ( "Du erhielst das Schamiset!" )
end
pc.setqf("basic_weapon", 1)
set_state(__complete)
end
end
state __complete begin
end
end
--------------------------------------------------
-- Info Quest --
-- (c) Copyright by .Kay331 @ Sakarya 2 --
--------------------------------------------------
quest info_tante begin
state start begin
when 20086.chat."Info" begin
say_title("Info")
say("")
say("Hallo:")
say("Ich glaube du bist ein neuer auf diesen Server")
say("da du warscheinlich viele Fragen hast")
say("hilft dir dieser NPC")
say("")
say_reward("Möchtest du dich über diesen Server Informieren?")
local s = select("Ja, gerne", "Nein, schon ok")
if s == 2 then
say_title("Info")
say("Ok, denn nicht")
end
if s == 1 then
say_title("Info")
say("")
say_reward("Wähle eine Frage:")
say("")
local s = select("Wie bekomme ich P skills?", "Wie bekomme ich Steine?", "Bei welchem Level liegt die Levelgrenze?", "Gibt es neue Rüstungen und Waffen?", "Weiter")
if s == 1 then
say_title("Wie bekomme ich P skills?")
say("")
say("Um P skills zu bekommen musst du Seelensteine dropppen und zwar")
say("von Metinsteinen ab Lvl 40")
say("oder von den Bossen diese droppen sie im Mengen"))
end
if s == 2 then
say_title("Wie bekomme ich Steine?")
say("")
say("Diese Droppst du von Metinsteinen")
say("oder")
say("von Bossen,diese droppen eine Truhe mit Steinen")
end
if s == 3 then
say_title("Bei welchem Level liegt die Levelgrenze?")
say("")
say("Die Levelgranze auf diesem Server liegt bei Level 150")
say("")
say("Warum bis Level 150?")
say("Weil der Spielspaß dann noch mehr")
say("gesteigert wird und es nicht langweilig wird.")
end
if s == 4 then
say_title("Gibt es neue Rüstungen und Waffen?")
say("")
say("Ja,aus manchen 65er Waffen +9 kommt eine 80er Waffe,")
say("Aus einer 66er Rüstung kommt eine 80 Rüstung")
say("")
say("Um eine neue Rüstung oder Waffe herzustellen benötigt es neue Uppitems")
say("nicht nur das + der Gegenstände steigt sondern auch das Level.")
end
if s == 5 then
say_title("Info")
say("")
say_reward("Wähle eine Frage:")
say("")
local s = select("Kann man Steine uppen?", "Woher bekomm ich neue Uppitems?", "Wie bekommt man Perlen/Muscheln", "Wie sind die Bonis?", "Wie bekomme ich Bonis?", "Abbrechen")
if s == 1 then
say_title("Kann man Steine uppen?")
say("")
say("Ja, doch diese kann man nur bis +5 uppen")
say("")
say("Warum nur bis +5?")
say("Wenn sie höher gehen zerstören sie den Spielspaß und das PVP System")
end
if s == 2 then
say_title("Woher bekomm ich neue Uppitems?")
say("")
say("Diese bekommst du vom Wasserdrachen wenn du ihn besiegst")
say("")
say("Du findest ihn im Dämonenturm in der letzten Ebene")
end
if s == 3 then
say_title("Wie bekomme ich Perlen/Muscheln")
say("")
say("Muscheln droppt man als Aternativdropp")
say("diese öffnet man um somit Muscheln zu bekommen")
end
if s == 4 then
say_title("Wie sind die Bonis")
say("")
say("Die Bonis wurden angepasst auf den DE Server")
say("doch man bekommt mit höherer Warscheinlichkeit")
say("den Max. Boni")
end
if s == 5 then
say_title("Wie bekomme ich Bonis?")
say("")
say("Bonis hinzufügen und verhexen")
say("bekommst du aus jedem Metinstein ab Lvl 40")
say("")
say("Keine Sorge diese droppen sie in Mengen")
end
if s == 6 then
end end
end
end
end
end
--------------------------------------------------
-- Info Quest --
-- (c) Copyright by .Kay331 @ Sakarya 2 --
--------------------------------------------------
quest info_tante begin
state start begin
when 20086.chat."Info" begin
say_title("Info")
say("")
say("Hallo:")
say("Ich glaube du bist ein neuer auf diesen Server")
say("da du warscheinlich viele Fragen hast")
say("hilft dir dieser NPC")
say("")
say_reward("Möchtest du dich über diesen Server Informieren?")
local s = select("Ja, gerne", "Nein, schon ok")
if s == 2 then
say_title("Info")
say("Ok, denn nicht")
end
if s == 1 then
say_title("Info")
say("")
say_reward("Wähle eine Frage:")
say("")
local s = select("Wie bekomme ich P skills?", "Wie bekomme ich Steine?", "Bei welchem Level liegt die Levelgrenze?", "Gibt es neue Rüstungen und Waffen?", "Weiter")
if s == 1 then
say_title("Wie bekomme ich P skills?")
say("")
say("Um P skills zu bekommen musst du Seelensteine dropppen und zwar")
say("von Metinsteinen ab Lvl 40")
say("oder von den Bossen diese droppen sie im Mengen")
end
if s == 2 then
say_title("Wie bekomme ich Steine?")
say("")
say("Diese Droppst du von Metinsteinen")
say("oder")
say("von Bossen,diese droppen eine Truhe mit Steinen")
end
if s == 3 then
say_title("Bei welchem Level liegt die Levelgrenze?")
say("")
say("Die Levelgranze auf diesem Server liegt bei Level 150")
say("")
say("Warum bis Level 150?")
say("Weil der Spielspaß dann noch mehr")
say("gesteigert wird und es nicht langweilig wird.")
end
if s == 4 then
say_title("Gibt es neue Rüstungen und Waffen?")
say("")
say("Ja,aus manchen 65er Waffen +9 kommt eine 80er Waffe,")
say("Aus einer 66er Rüstung kommt eine 80 Rüstung")
say("")
say("Um eine neue Rüstung oder Waffe herzustellen benötigt es neue Uppitems")
say("nicht nur das + der Gegenstände steigt sondern auch das Level.")
end
if s == 5 then
say_title("Info")
say("")
say_reward("Wähle eine Frage:")
say("")
local s = select("Kann man Steine uppen?", "Woher bekomm ich neue Uppitems?", "Wie bekommt man Perlen/Muscheln", "Wie sind die Bonis?", "Wie bekomme ich Bonis?", "Abbrechen")
if s == 1 then
say_title("Kann man Steine uppen?")
say("")
say("Ja, doch diese kann man nur bis +5 uppen")
say("")
say("Warum nur bis +5?")
say("Wenn sie höher gehen zerstören sie den Spielspaß und das PVP System")
end
if s == 2 then
say_title("Woher bekomm ich neue Uppitems?")
say("")
say("Diese bekommst du vom Wasserdrachen wenn du ihn besiegst")
say("")
say("Du findest ihn im Dämonenturm in der letzten Ebene")
end
if s == 3 then
say_title("Wie bekomme ich Perlen/Muscheln")
say("")
say("Muscheln droppt man als Aternativdropp")
say("diese öffnet man um somit Muscheln zu bekommen")
end
if s == 4 then
say_title("Wie sind die Bonis")
say("")
say("Die Bonis wurden angepasst auf den DE Server")
say("doch man bekommt mit höherer Warscheinlichkeit")
say("den Max. Boni")
end
if s == 5 then
say_title("Wie bekomme ich Bonis?")
say("")
say("Bonis hinzufügen und verhexen")
say("bekommst du aus jedem Metinstein ab Lvl 40")
say("")
say("Keine Sorge diese droppen sie in Mengen")
end
if s == 6 then
end end
end
end
end
end
quest deviltower_zone begin
state start begin
when login begin
if pc.get_map_index() == 66 then
-- Nicht in einer Etage, die wieder nach drau¡¼n .
-- Layer Range
-- 1F 88 577 236 737
-- 2F 91 343 238 504
-- 3F 104 107 248 269
if pc.get_x() < 2048+88 or pc.get_y() < 6656+577 or pc.get_x() > 2048+236 or pc.get_y() > 6656+737 then
pc.warp((5376+532)*100, (512+596+4)*100, 65)
end
pc.set_warp_location(65, 5376+532, 512+596+4)
elseif pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 then
pc.set_warp_location(65, 5376+532, 512+596+4)
end
end
when deviltower_man.chat.locale.deviltower_man_chat begin
if pc.get_level() < 40 then
say(locale.deviltower_man_say_you_cant)
else
say(locale.deviltower_man_say)
local s = select(locale.deviltower_enter,locale.deviltower_no_enter)
if s == 1 then
-- warp into!
pc.warp(216500,727000)
end
end
end
when devil_stone1.kill begin
timer("devil_stone1_1", 6)
end
when devil_stone1_1.timer begin
local mapto7= pc.count_item(30302) -- Ich weiß nicht, das wahre Tilgung der die Existenz der Seele des Turms
pc.remove_item(30302,mapto7)
local boxto7= pc.count_item(30300) -- Beseitigung des unbekannten weiß nicht, ob es sich um ein Feld
pc.remove_item(30300,boxto7)
d.new_jump_all(66, special.devil_tower[1][1], special.devil_tower[1][2])
d.regen_file("data/dungeon/deviltower2_regen.txt")
d.set_warp_at_eliminate(4, d.get_map_index(), special.devil_tower[2][1], special.devil_tower[2][2], "data/dungeon/deviltower3_regen.txt")
end
--when devil_stone2.kill begin
--d.jump_all_local(special.devil_tower[2][1], special.devil_tower[2][2])
--end
when devil_stone3.kill begin
--d.jump_all_local(special.devil_tower[3][1], special.devil_tower[3][2])
--d.set_exit_all_at_eliminate(6)
--d.set_warp_at_eliminate(6, d.get_map_index(), 100, 100)
--d.set_warp_at_eliminate(4, 65, 5376+532, 512+596+4)
d.set_warp_at_eliminate(4, d.get_map_index(), special.devil_tower[3][1], special.devil_tower[3][2], "data/dungeon/deviltower4_regen.txt")
d.check_eliminated()
--d.exit_all()
end
function get_4floor_stone_pos()
local positions = {
{368, 629},
{419, 630},
{428, 653},
{422, 679},
{395, 689},
{369, 679},
{361, 658},
}
for i = 1, 6 do
local j = number(i, 7)
if i != j then
local t = positions[i];
positions[i] = positions[j];
positions[j] = t;
end
end
--for i = 1, 7 do
-- positions[i][1] = positions[i][1] * 100
-- positions[i][2] = positions[i][2] * 100
-- end
return positions
end
when 8016.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
d.setf("level", 4)
-- Reproduzieren eine gro¡¼ Anzahl von Monstern und Herstellung von wahr und falsch Steine Steine
--d.regen_file("data/dungeon/deviltower4_regen.txt")
local positions = deviltower_zone.get_4floor_stone_pos()
for i = 1, 6 do
chat(positions[i][1], positions[i][2])
d.set_unique("fake" .. i , d.spawn_mob(8017, positions[i][1], positions[i][2]))
end
chat(positions[7][1], positions[7][2])
local vid = d.spawn_mob(8017, positions[7][1], positions[7][2])
chat(vid)
d.set_unique("real", vid)
server_loop_timer('devil_stone4_update', 10, pc.get_map_index())
server_timer('devil_stone4_fail1', 5*60, pc.get_map_index())
d.notice("Hier ist der 4. Etage,");
d.notice("findet den Echten Metinstein");
d.notice("innerhalb von 15 Minuten,");
d.notice("Sonst werdet ihr vor die Tür gesetzt.");
end
when devil_stone4_fail1.server_timer begin
if d.select(get_server_timer_arg()) then
d.notice("Noch 10 Minuten!")
server_timer('devil_stone4_fail2', 5*60, get_server_timer_arg())
end
end
when devil_stone4_fail2.server_timer begin
if d.select(get_server_timer_arg()) then
d.notice("Noch 5 Minuten!")
server_timer('devil_stone4_fail', 5*60, get_server_timer_arg())
end
end
when devil_stone4_fail.server_timer begin
if d.select(get_server_timer_arg()) then
d.notice("Die Zeit ist abgelaufen")
d.exit_all()
clear_server_timer('devil_stone4_update', get_server_timer_arg())
end
end
when devil_stone4_update.server_timer begin
if d.select(get_server_timer_arg()) then
if not d.is_unique_dead("real") then
for i = 1, 6 do
if d.getf("fakedead" .. i) == 0 then
if d.unique_get_hp_perc("fake" .. i) < 50 then
d.purge_unique("fake" .. i)
d.setf("fakedead" .. i, 1)
d.notice("Ein falscher Metinstein verschwindet.");
end
end
end
else
--d.clear_regen()
--d.regen_file("data/dungeon/deviltower5_regen.txt")
server_timer("devil_stone4_end", 5, get_server_timer_arg())
d.notice("Glückwunsch Euch ist es geglückt den Echten Metinstein");
d.notice("zu finden... Auf in die nächste Etage.")
clear_server_timer('devil_stone4_fail1', get_server_timer_arg())
clear_server_timer('devil_stone4_fail2', get_server_timer_arg())
clear_server_timer('devil_stone4_fail', get_server_timer_arg())
end
else
server_timer('devil_stone4_stop_timer', 1, get_server_timer_arg())
end
end
when devil_stone4_stop_timer.server_timer begin
clear_server_timer('devil_stone4_update', get_server_timer_arg())
end
when devil_stone4_end.server_timer begin
if d.select(get_server_timer_arg()) then
d.setf("level", 5)
d.setf("stone_count", 5)
d.notice("Willkommen auf der 5.ten Etage")
d.notice("Tötet alle Monster denn manche Tragen den Schlüssel")
d.notice("für die nächste Etage mit sich")
d.notice("Öffnet alle Säulen mit hilfe der Schlüsselsteine (Ihr habt 20 Minuten Zeit)")
d.jump_all(special.devil_tower[4][1], special.devil_tower[4][2])
server_timer('devil_stone5_fail1', 5*60, get_server_timer_arg())
clear_server_timer('devil_stone4_update', get_server_timer_arg())
-- 5. Stock, weiter zu reproduzieren
d.set_regen_file("data/dungeon/deviltower5_regen.txt")
-- 5. Stock, Seal Stone Reproduktion
d.spawn_mob(20073, 421, 452)
d.spawn_mob(20073, 380, 460)
d.spawn_mob(20073, 428, 414)
d.spawn_mob(20073, 398, 392)
d.spawn_mob(20073, 359, 426)
end
end
when devil_stone5_fail1.server_timer begin
if d.select(get_server_timer_arg()) then
d.notice("Noch 15 Minuten.")
server_timer('devil_stone5_fail2', 5*60, get_server_timer_arg())
end
end
when devil_stone5_fail2.server_timer begin
if d.select(get_server_timer_arg()) then
d.notice("Noch 10 Minuten.")
server_timer('devil_stone5_fail3', 5*60, get_server_timer_arg())
end
end
when devil_stone5_fail3.server_timer begin
if d.select(get_server_timer_arg()) then
d.notice("Noch 5 Minuten.")
server_timer('devil_stone5_fail', 5*60, get_server_timer_arg())
end
end
when devil_stone5_fail.server_timer begin
if d.select(get_server_timer_arg()) then
d.notice("Die Zeit ist abgelaufen.")
d.exit_all()
end
end
--when devil_stone4.kill begin
--d.setf("level", 5)
--d.setf("stone_count", 4)
--d.clear_regen()
--d.regen_file("data/dungeon/deviltower5_regen.txt")
--d.jump_all_local(special.devil_tower[4][1], special.devil_tower[4][2])
--end
when 1062.kill with pc.in_dungeon() and d.getf("level") == 5 begin
local KILL_COUNT_FOR_DROP_KEY = 50
--if is_test_server() then
--KILL_COUNT_FOR_DROP_KEY = 1
--end
local n =d.getf("count") + 1
d.setf("count", n)
if n == KILL_COUNT_FOR_DROP_KEY then
-- Falling Tasten
game.drop_item(50084, 1)
d.setf("count", 0)
end
end
when devil_stone5.take with item.vnum == 50084 begin
npc.purge()
item.remove()
d.setf("stone_count", d.getf("stone_count") - 1)
if d.getf("stone_count") <= 0 then
d.setf("level", 6)
d.clear_regen()
d.regen_file("data/dungeon/deviltower6_regen.txt")
d.notice("Glückwunsch ihr habt alle Säulen Geöffnet")
d.notice("Ihr werdet in die nächste Etage aufsteigen.")
d.jump_all(special.devil_tower[5][1], special.devil_tower[5][2])
clear_server_timer('devil_stone5_fail1', get_server_timer_arg())
clear_server_timer('devil_stone5_fail2', get_server_timer_arg())
clear_server_timer('devil_stone5_fail3', get_server_timer_arg())
clear_server_timer('devil_stone5_fail', get_server_timer_arg())
else
d.notice("Säule entfernt... Noch "..d.getf("stone_count").."Viel Glück")
end
end
when devil_stone6.kill begin
-- Geschickt, um eine Karte, wo die Verfeinerung St.
-- Ansonsten ¡¼fnen Sie ein neues Lian Sheng
--d.jump_all(special.devil_tower[6][1], special.devil_tower[6][2])
d.kill_all()
-- d.set_warp_at_eliminate(3*60, 65, 5376+532, 512+596+4)
d.check_eliminated()
local reward_alchemist = {20074, 20075, 20076}
d.spawn_mob(reward_alchemist[number(1,3)], 425, 216);
d.setqf("can_refine", 1)
end
--------------------------------------
-- 7 D kommt man aus dem Zugriff vor dem 8. Stock
--------------------------------------
when 20074.chat."Die Oberen Stockwerke" with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
say(""..mob_name(20074).."")
say("Möchtet ihr Weiter herrauf")
say("und euer können weiterhin unter Beweiss stellen?")
say("Ich jedenfalls bleibe hier")
say("")
wait()
if pc.level >=75 then
say("Ihr seid zumindest gross genug.")
say("Doch seid ihr auch Tapfer genug?")
say("Es gibt nur eine möglichkeit das festzustellen.")
timer("devil_jump_7", 6)
return
end
say("Ihr seid leider noch nicht ")
say("gross genug um weiter aufzusteigen")
say("Übt noch ein wenig und kommt dann wieder.")
say("Viel Glück auf eurer Reise.")
say("")
wait()
pc.warp(590500, 110500)
return
end
when 20075.chat."Mit Bezug auf den oberen Turm .." with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
say(""..mob_name(20075).."")
say("Möchtet ihr Weiter herrauf")
say("und euer können weiterhin unter Beweiss stellen?")
say("Ich jedenfalls bleibe hier")
say("")
wait()
if pc.level >=40 then
say("Ihr seid zumindest gross genug.")
say("Doch seid ihr auch Tapfer genug?")
say("Es gibt nur eine möglichkeit das festzustellen.")
timer("devil_jump_7", 6)
return
end
say("Ihr seid leider noch nicht ")
say("gross genug um weiter aufzusteigen")
say("Übt noch ein wenig und kommt dann wieder.")
say("Viel Glück auf eurer Reise.")
say("")
wait()
pc.warp(590500, 110500)
return
end
when 20076.chat."Mit Bezug auf den oberen Turm .." with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
say(""..mob_name(20076).."")
say("Möchtet ihr Weiter herrauf")
say("und euer können weiterhin unter Beweiss stellen?")
say("Ich jedenfalls bleibe hier")
say("")
wait()
if pc.level >=75 then
say("Ihr seid zumindest gross genug.")
say("Doch seid ihr auch Tapfer genug?")
say("Es gibt nur eine möglichkeit das festzustellen.")
timer("devil_jump_7", 6)
return
end
say("Ihr seid leider noch nicht ")
say("gross genug um weiter aufzusteigen")
say("Übt noch ein wenig und kommt dann wieder.")
say("Viel Glück auf eurer Reise.")
say("")
wait()
pc.warp(590500, 110500)
return
end
when devil_jump_7.timer begin
d.clear_regen()
d.spawn_mob(8018, 639, 658)
d.spawn_mob(8018, 611, 637)
d.spawn_mob(8018, 596, 674)
d.spawn_mob(8018, 629, 670)
d.setf("level", 7)
d.jump_all(2048+590, 6656+638)
end
when 8018.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
local cont = d.getf("7_stone_kill") + 1
d.setf("7_stone_kill", cont)
if cont >= 4 then
d.setf("7_stone_kill", 0)
d.set_regen_file("data/dungeon/deviltower7_regen.txt")
end
end
when 8019.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
game.drop_item(30300, 1)
end
when 30300.use with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
pc.remove_item("30300", 1)
local pct = number(1,10)
if pct == 1 then
-- Fall wahr Karte
game.drop_item(30302, 1)
d.clear_regen()
else
-- Fall wahr Karte
game.drop_item(30301, 1)
end
end
when 30302.use with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
-- An der 8th Floor
say("Du wirst in die Zin Grotte teleportiert. Viel Glück.")
pc.remove_item("30302", 1)
timer("devil_jump_8", 6)
d.clear_regen()
end
--------------------------------------------
-- Von 8 F vor der Ankunft geben Sie die 9 F
--------------------------------------------
when devil_jump_8.timer begin
d.setf("level", 8)
d.jump_all(2048+590, 6656+403)
d.set_regen_file("data/dungeon/deviltower8_regen.txt")
d.spawn_mob(20366, 640, 460)
local _count= pc.count_item(30302)-- True Tilgung Dead Turm
pc.remove_item(30302,_count)
end
when 1040.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
local pct1 = number(1, 5)
if pct1 == 1 then
local pct2 = number(1, 10)
if pct2 == 1 then
-- Fall wahre Schl¡¼sel
game.drop_item(30304, 1)
else
-- Keys fiel
game.drop_item(30303, 1)
end
else
return
end
end
when 20366.take with item.vnum == 30304 begin
-- 9 F-Zeichen aufgehoben
npc.purge()
item.remove()
timer("devil_jump_9", 6)
end
---------------------------------------------
-- 9 F ein Ende, indem Sie
---------------------------------------------
when devil_jump_9.timer begin
d.setf("level", 9)
d.jump_all(2048+590, 6656+155)
d.spawn_mob(1093, 605, 178)
end
when 1093.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
d.kill_all()
timer("devil_end_jump", 10)
d.notice("Ihr habt den Sensenmann getötet")
d.notice("Ihr gelangt nun zum Blauen Tod")
timer("devil_end_jump_schmied", 10)
end
when devil_end_jump_schmied.timer begin
d.setf("level", 9)
d.jump_all(2048+590, 6656+155)
d.clear_regen()
d.spawn_mob(1095, 605, 178)
end
when 1095.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
d.notice("".. pc.get_name() .." hat den Blauen Tod bezwungen!")
d.notice("Glückwunsch!")
local reward_alchemist = {20074, 20075, 20076}
d.spawn_mob(20074, 609, 179);
d.spawn_mob(20075, 609, 172);
d.spawn_mob(20076, 609, 185);
d.spawn_mob(20094, 619, 170);
d.setqf("can_refine", 1)
when 20094.chat."Weiter nach oben" with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
say(""..mob_name(20075).."")
say("Du dachtest wohl das war es?")
say("falsch gedacht! [ENTER] ")
say("Es gibt noch ein paar Ebenen")
wait()
local s = select("Weiter nach oben", "Gleich")
wait()
if s == 1 then
say("Ihr seit echt mutig!")
say("Na dann gut festhalten")
timer("devil_end_jump_newebene", 10)
return
when devil_end_jump_newebene.timer begin
d.setf("level", 9)
d.jump_all(2048+590, 6656+155)
d.clear_regen()
d.spawn_mob(8027, 605, 178)
end
when 8027.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
game.drop_item(50125, 1)
end
when 50125.use with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
pc.remove_item("50125", 1)
local pct = number(1,10)
if pct == 1 then
-- Fall wahr Karte
game.drop_item(71130, 1)
d.clear_regen()
else
-- Fall wahr Karte
game.drop_item(71132, 1)
end
end
when 71130.use with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
-- An der 8th Floor
say("Du wirst zum Wasserdrachen teleportiert!")
pc.remove_item("71130", 1)
timer("devil_end_jump_drache", 10)
d.clear_regen()
end
when devil_end_jump_drache.timer begin
d.setf("level", 9)
d.jump_all(2048+590, 6656+155)
d.clear_regen()
d.spawn_mob(2493, 605, 178)
end
when 2493.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
notice_all("".. pc.get_name() .." hat den Wasserdrachen bezwungen!")
d.notice("Glückwunsch!")
d.spawn_mob(9012, 619, 170);
end
end
Ich kann dir jetzt nicht beim Problem der Quest helfen habe aber einen Flüchtigkeitsfehler gefunden ^^Quote:
Hier mal meine Quest
putty sagt:PHP Code:--------------------------------------------------
-- Info Quest --
-- (c) Copyright by .Kay331 @ Sakarya 2 --
--------------------------------------------------
quest info_tante begin
state start begin
when 20086.chat."Info" begin
say_title("Info")
say("")
say("Hallo:")
say("Ich glaube du bist ein neuer auf diesen Server")
say("da du warscheinlich viele Fragen hast")
say("hilft dir dieser NPC")
say("")
say_reward("Möchtest du dich über diesen Server Informieren?")
local s = select("Ja, gerne", "Nein, schon ok")
if s == 2 then
say_title("Info")
say("Ok, denn nicht")
end
if s == 1 then
say_title("Info")
say("")
say_reward("Wähle eine Frage:")
say("")
local s = select("Wie bekomme ich P skills?", "Wie bekomme ich Steine?", "Bei welchem Level liegt die Levelgrenze?", "Gibt es neue Rüstungen und Waffen?", "Weiter")
if s == 1 then
say_title("Wie bekomme ich P skills?")
say("")
say("Um P skills zu bekommen musst du Seelensteine dropppen und zwar")
say("von Metinsteinen ab Lvl 40")
say("oder von den Bossen diese droppen sie im Mengen"))
end
if s == 2 then
say_title("Wie bekomme ich Steine?")
say("")
say("Diese Droppst du von Metinsteinen")
say("oder")
say("von Bossen,diese droppen eine Truhe mit Steinen")
end
if s == 3 then
say_title("Bei welchem Level liegt die Levelgrenze?")
say("")
say("Die Levelgranze auf diesem Server liegt bei Level 150")
say("")
say("Warum bis Level 150?")
say("Weil der Spielspaß dann noch mehr")
say("gesteigert wird und es nicht langweilig wird.")
end
if s == 4 then
say_title("Gibt es neue Rüstungen und Waffen?")
say("")
say("Ja,aus manchen 65er Waffen +9 kommt eine 80er Waffe,")
say("Aus einer 66er Rüstung kommt eine 80 Rüstung")
say("")
say("Um eine neue Rüstung oder Waffe herzustellen benötigt es neue Uppitems")
say("nicht nur das + der Gegenstände steigt sondern auch das Level.")
end
if s == 5 then
say_title("Info")
say("")
say_reward("Wähle eine Frage:")
say("")
local s = select("Kann man Steine uppen?", "Woher bekomm ich neue Uppitems?", "Wie bekommt man Perlen/Muscheln", "Wie sind die Bonis?", "Wie bekomme ich Bonis?", "Abbrechen")
if s == 1 then
say_title("Kann man Steine uppen?")
say("")
say("Ja, doch diese kann man nur bis +5 uppen")
say("")
say("Warum nur bis +5?")
say("Wenn sie höher gehen zerstören sie den Spielspaß und das PVP System")
end
if s == 2 then
say_title("Woher bekomm ich neue Uppitems?")
say("")
say("Diese bekommst du vom Wasserdrachen wenn du ihn besiegst")
say("")
say("Du findest ihn im Dämonenturm in der letzten Ebene")
end
if s == 3 then
say_title("Wie bekomme ich Perlen/Muscheln")
say("")
say("Muscheln droppt man als Aternativdropp")
say("diese öffnet man um somit Muscheln zu bekommen")
end
if s == 4 then
say_title("Wie sind die Bonis")
say("")
say("Die Bonis wurden angepasst auf den DE Server")
say("doch man bekommt mit höherer Warscheinlichkeit")
say("den Max. Boni")
end
if s == 5 then
say_title("Wie bekomme ich Bonis?")
say("")
say("Bonis hinzufügen und verhexen")
say("bekommst du aus jedem Metinstein ab Lvl 40")
say("")
say("Keine Sorge diese droppen sie in Mengen")
end
if s == 6 then
end end
end
end
end
end
syntax error : [string "start"]:25: unexpected symbol near `)'
info.quest:118:Abort trap (core dumped)
Error occured on compile info.quest
quest deviltower_zone begin
state start begin
when login begin
if pc.get_map_index() == 66 then
-- Nicht in einer Etage, die wieder nach drau¡¼n .
-- Layer Range
-- 1F 88 577 236 737
-- 2F 91 343 238 504
-- 3F 104 107 248 269
if pc.get_x() < 2048+88 or pc.get_y() < 6656+577 or pc.get_x() > 2048+236 or pc.get_y() > 6656+737 then
pc.warp((5376+532)*100, (512+596+4)*100, 65)
end
pc.set_warp_location(65, 5376+532, 512+596+4)
elseif pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 then
pc.set_warp_location(65, 5376+532, 512+596+4)
end
end
when deviltower_man.chat.locale.deviltower_man_chat begin
if pc.get_level() < 40 then
say(locale.deviltower_man_say_you_cant)
else
say(locale.deviltower_man_say)
local s = select(locale.deviltower_enter,locale.deviltower_no_enter)
if s == 1 then
-- warp into!
pc.warp(216500,727000)
end
end
end
when devil_stone1.kill begin
timer("devil_stone1_1", 6)
end
when devil_stone1_1.timer begin
local mapto7= pc.count_item(30302) -- Ich weiß nicht, das wahre Tilgung der die Existenz der Seele des Turms
pc.remove_item(30302,mapto7)
local boxto7= pc.count_item(30300) -- Beseitigung des unbekannten weiß nicht, ob es sich um ein Feld
pc.remove_item(30300,boxto7)
d.new_jump_all(66, special.devil_tower[1][1], special.devil_tower[1][2])
d.regen_file("data/dungeon/deviltower2_regen.txt")
d.set_warp_at_eliminate(4, d.get_map_index(), special.devil_tower[2][1], special.devil_tower[2][2], "data/dungeon/deviltower3_regen.txt")
end
--when devil_stone2.kill begin
--d.jump_all_local(special.devil_tower[2][1], special.devil_tower[2][2])
--end
when devil_stone3.kill begin
--d.jump_all_local(special.devil_tower[3][1], special.devil_tower[3][2])
--d.set_exit_all_at_eliminate(6)
--d.set_warp_at_eliminate(6, d.get_map_index(), 100, 100)
--d.set_warp_at_eliminate(4, 65, 5376+532, 512+596+4)
d.set_warp_at_eliminate(4, d.get_map_index(), special.devil_tower[3][1], special.devil_tower[3][2], "data/dungeon/deviltower4_regen.txt")
d.check_eliminated()
--d.exit_all()
end
function get_4floor_stone_pos()
local positions = {
{368, 629},
{419, 630},
{428, 653},
{422, 679},
{395, 689},
{369, 679},
{361, 658},
}
for i = 1, 6 do
local j = number(i, 7)
if i != j then
local t = positions[i];
positions[i] = positions[j];
positions[j] = t;
end
end
--for i = 1, 7 do
-- positions[i][1] = positions[i][1] * 100
-- positions[i][2] = positions[i][2] * 100
-- end
return positions
end
when 8016.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
d.setf("level", 4)
-- Reproduzieren eine gro¡¼ Anzahl von Monstern und Herstellung von wahr und falsch Steine Steine
--d.regen_file("data/dungeon/deviltower4_regen.txt")
local positions = deviltower_zone.get_4floor_stone_pos()
for i = 1, 6 do
chat(positions[i][1], positions[i][2])
d.set_unique("fake" .. i , d.spawn_mob(8017, positions[i][1], positions[i][2]))
end
chat(positions[7][1], positions[7][2])
local vid = d.spawn_mob(8017, positions[7][1], positions[7][2])
chat(vid)
d.set_unique("real", vid)
server_loop_timer('devil_stone4_update', 10, pc.get_map_index())
server_timer('devil_stone4_fail1', 5*60, pc.get_map_index())
d.notice("Hier ist der 4. Etage,");
d.notice("findet den Echten Metinstein");
d.notice("innerhalb von 15 Minuten,");
d.notice("Sonst werdet ihr vor die Tür gesetzt.");
end
when devil_stone4_fail1.server_timer begin
if d.select(get_server_timer_arg()) then
d.notice("Noch 10 Minuten!")
server_timer('devil_stone4_fail2', 5*60, get_server_timer_arg())
end
end
when devil_stone4_fail2.server_timer begin
if d.select(get_server_timer_arg()) then
d.notice("Noch 5 Minuten!")
server_timer('devil_stone4_fail', 5*60, get_server_timer_arg())
end
end
when devil_stone4_fail.server_timer begin
if d.select(get_server_timer_arg()) then
d.notice("Die Zeit ist abgelaufen")
d.exit_all()
clear_server_timer('devil_stone4_update', get_server_timer_arg())
end
end
when devil_stone4_update.server_timer begin
if d.select(get_server_timer_arg()) then
if not d.is_unique_dead("real") then
for i = 1, 6 do
if d.getf("fakedead" .. i) == 0 then
if d.unique_get_hp_perc("fake" .. i) < 50 then
d.purge_unique("fake" .. i)
d.setf("fakedead" .. i, 1)
d.notice("Ein falscher Metinstein verschwindet.");
end
end
end
else
--d.clear_regen()
--d.regen_file("data/dungeon/deviltower5_regen.txt")
server_timer("devil_stone4_end", 5, get_server_timer_arg())
d.notice("Glückwunsch Euch ist es geglückt den Echten Metinstein");
d.notice("zu finden... Auf in die nächste Etage.")
clear_server_timer('devil_stone4_fail1', get_server_timer_arg())
clear_server_timer('devil_stone4_fail2', get_server_timer_arg())
clear_server_timer('devil_stone4_fail', get_server_timer_arg())
end
else
server_timer('devil_stone4_stop_timer', 1, get_server_timer_arg())
end
end
when devil_stone4_stop_timer.server_timer begin
clear_server_timer('devil_stone4_update', get_server_timer_arg())
end
when devil_stone4_end.server_timer begin
if d.select(get_server_timer_arg()) then
d.setf("level", 5)
d.setf("stone_count", 5)
d.notice("Willkommen auf der 5.ten Etage")
d.notice("Tötet alle Monster denn manche Tragen den Schlüssel")
d.notice("für die nächste Etage mit sich")
d.notice("Öffnet alle Säulen mit hilfe der Schlüsselsteine (Ihr habt 20 Minuten Zeit)")
d.jump_all(special.devil_tower[4][1], special.devil_tower[4][2])
server_timer('devil_stone5_fail1', 5*60, get_server_timer_arg())
clear_server_timer('devil_stone4_update', get_server_timer_arg())
-- 5. Stock, weiter zu reproduzieren
d.set_regen_file("data/dungeon/deviltower5_regen.txt")
-- 5. Stock, Seal Stone Reproduktion
d.spawn_mob(20073, 421, 452)
d.spawn_mob(20073, 380, 460)
d.spawn_mob(20073, 428, 414)
d.spawn_mob(20073, 398, 392)
d.spawn_mob(20073, 359, 426)
end
end
when devil_stone5_fail1.server_timer begin
if d.select(get_server_timer_arg()) then
d.notice("Noch 15 Minuten.")
server_timer('devil_stone5_fail2', 5*60, get_server_timer_arg())
end
end
when devil_stone5_fail2.server_timer begin
if d.select(get_server_timer_arg()) then
d.notice("Noch 10 Minuten.")
server_timer('devil_stone5_fail3', 5*60, get_server_timer_arg())
end
end
when devil_stone5_fail3.server_timer begin
if d.select(get_server_timer_arg()) then
d.notice("Noch 5 Minuten.")
server_timer('devil_stone5_fail', 5*60, get_server_timer_arg())
end
end
when devil_stone5_fail.server_timer begin
if d.select(get_server_timer_arg()) then
d.notice("Die Zeit ist abgelaufen.")
d.exit_all()
end
end
--when devil_stone4.kill begin
--d.setf("level", 5)
--d.setf("stone_count", 4)
--d.clear_regen()
--d.regen_file("data/dungeon/deviltower5_regen.txt")
--d.jump_all_local(special.devil_tower[4][1], special.devil_tower[4][2])
--end
when 1062.kill with pc.in_dungeon() and d.getf("level") == 5 begin
local KILL_COUNT_FOR_DROP_KEY = 50
--if is_test_server() then
--KILL_COUNT_FOR_DROP_KEY = 1
--end
local n =d.getf("count") + 1
d.setf("count", n)
if n == KILL_COUNT_FOR_DROP_KEY then
-- Falling Tasten
game.drop_item(50084, 1)
d.setf("count", 0)
end
end
when devil_stone5.take with item.vnum == 50084 begin
npc.purge()
item.remove()
d.setf("stone_count", d.getf("stone_count") - 1)
if d.getf("stone_count") <= 0 then
d.setf("level", 6)
d.clear_regen()
d.regen_file("data/dungeon/deviltower6_regen.txt")
d.notice("Glückwunsch ihr habt alle Säulen Geöffnet")
d.notice("Ihr werdet in die nächste Etage aufsteigen.")
d.jump_all(special.devil_tower[5][1], special.devil_tower[5][2])
clear_server_timer('devil_stone5_fail1', get_server_timer_arg())
clear_server_timer('devil_stone5_fail2', get_server_timer_arg())
clear_server_timer('devil_stone5_fail3', get_server_timer_arg())
clear_server_timer('devil_stone5_fail', get_server_timer_arg())
else
d.notice("Säule entfernt... Noch "..d.getf("stone_count").."Viel Glück")
end
end
when devil_stone6.kill begin
-- Geschickt, um eine Karte, wo die Verfeinerung St.
-- Ansonsten ¡¼fnen Sie ein neues Lian Sheng
--d.jump_all(special.devil_tower[6][1], special.devil_tower[6][2])
d.kill_all()
-- d.set_warp_at_eliminate(3*60, 65, 5376+532, 512+596+4)
d.check_eliminated()
local reward_alchemist = {20074, 20075, 20076}
d.spawn_mob(reward_alchemist[number(1,3)], 425, 216);
d.setqf("can_refine", 1)
end
--------------------------------------
-- 7 D kommt man aus dem Zugriff vor dem 8. Stock
--------------------------------------
when 20074.chat."Die Oberen Stockwerke" with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
say(""..mob_name(20074).."")
say("Möchtet ihr Weiter herrauf")
say("und euer können weiterhin unter Beweiss stellen?")
say("Ich jedenfalls bleibe hier")
say("")
wait()
if pc.level >=75 then
say("Ihr seid zumindest gross genug.")
say("Doch seid ihr auch Tapfer genug?")
say("Es gibt nur eine möglichkeit das festzustellen.")
timer("devil_jump_7", 6)
return
end
say("Ihr seid leider noch nicht ")
say("gross genug um weiter aufzusteigen")
say("Übt noch ein wenig und kommt dann wieder.")
say("Viel Glück auf eurer Reise.")
say("")
wait()
pc.warp(590500, 110500)
return
end
when 20075.chat."Mit Bezug auf den oberen Turm .." with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
say(""..mob_name(20075).."")
say("Möchtet ihr Weiter herrauf")
say("und euer können weiterhin unter Beweiss stellen?")
say("Ich jedenfalls bleibe hier")
say("")
wait()
if pc.level >=40 then
say("Ihr seid zumindest gross genug.")
say("Doch seid ihr auch Tapfer genug?")
say("Es gibt nur eine möglichkeit das festzustellen.")
timer("devil_jump_7", 6)
return
end
say("Ihr seid leider noch nicht ")
say("gross genug um weiter aufzusteigen")
say("Übt noch ein wenig und kommt dann wieder.")
say("Viel Glück auf eurer Reise.")
say("")
wait()
pc.warp(590500, 110500)
return
end
when 20076.chat."Mit Bezug auf den oberen Turm .." with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
say(""..mob_name(20076).."")
say("Möchtet ihr Weiter herrauf")
say("und euer können weiterhin unter Beweiss stellen?")
say("Ich jedenfalls bleibe hier")
say("")
wait()
if pc.level >=75 then
say("Ihr seid zumindest gross genug.")
say("Doch seid ihr auch Tapfer genug?")
say("Es gibt nur eine möglichkeit das festzustellen.")
timer("devil_jump_7", 6)
return
end
say("Ihr seid leider noch nicht ")
say("gross genug um weiter aufzusteigen")
say("Übt noch ein wenig und kommt dann wieder.")
say("Viel Glück auf eurer Reise.")
say("")
wait()
pc.warp(590500, 110500)
return
end
when devil_jump_7.timer begin
d.clear_regen()
d.spawn_mob(8018, 639, 658)
d.spawn_mob(8018, 611, 637)
d.spawn_mob(8018, 596, 674)
d.spawn_mob(8018, 629, 670)
d.setf("level", 7)
d.jump_all(2048+590, 6656+638)
end
when 8018.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
local cont = d.getf("7_stone_kill") + 1
d.setf("7_stone_kill", cont)
if cont >= 4 then
d.setf("7_stone_kill", 0)
d.set_regen_file("data/dungeon/deviltower7_regen.txt")
end
end
when 8019.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
game.drop_item(30300, 1)
end
when 30300.use with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
pc.remove_item("30300", 1)
local pct = number(1,10)
if pct == 1 then
-- Fall wahr Karte
game.drop_item(30302, 1)
d.clear_regen()
else
-- Fall wahr Karte
game.drop_item(30301, 1)
end
end
when 30302.use with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
-- An der 8th Floor
say("Du wirst in die Zin Grotte teleportiert. Viel Glück.")
pc.remove_item("30302", 1)
timer("devil_jump_8", 6)
d.clear_regen()
end
--------------------------------------------
-- Von 8 F vor der Ankunft geben Sie die 9 F
--------------------------------------------
when devil_jump_8.timer begin
d.setf("level", 8)
d.jump_all(2048+590, 6656+403)
d.set_regen_file("data/dungeon/deviltower8_regen.txt")
d.spawn_mob(20366, 640, 460)
local _count= pc.count_item(30302)-- True Tilgung Dead Turm
pc.remove_item(30302,_count)
end
when 1040.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
local pct1 = number(1, 5)
if pct1 == 1 then
local pct2 = number(1, 10)
if pct2 == 1 then
-- Fall wahre Schl¡¼sel
game.drop_item(30304, 1)
else
-- Keys fiel
game.drop_item(30303, 1)
end
else
return
end
end
when 20366.take with item.vnum == 30304 begin
-- 9 F-Zeichen aufgehoben
npc.purge()
item.remove()
timer("devil_jump_9", 6)
end
---------------------------------------------
-- 9 F ein Ende, indem Sie
---------------------------------------------
when devil_jump_9.timer begin
d.setf("level", 9)
d.jump_all(2048+590, 6656+155)
d.spawn_mob(1093, 605, 178)
end
when 1093.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
d.kill_all()
timer("devil_end_jump", 10)
d.notice("Ihr habt den Sensenmann getötet")
d.notice("Ihr gelangt nun zum Blauen Tod")
timer("devil_end_jump_schmied", 10)
end
when devil_end_jump_schmied.timer begin
d.setf("level", 9)
d.jump_all(2048+590, 6656+155)
d.clear_regen()
d.spawn_mob(1095, 605, 178)
end
when 1095.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
d.notice("".. pc.get_name() .." hat den Blauen Tod bezwungen!")
d.notice("Glückwunsch!")
local reward_alchemist = {20074, 20075, 20076}
d.spawn_mob(20074, 609, 179);
d.spawn_mob(20075, 609, 172);
d.spawn_mob(20076, 609, 185);
d.spawn_mob(20094, 619, 170);
d.setqf("can_refine", 1)
when 20094.chat."Weiter nach oben" with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
say(""..mob_name(20075).."")
say("Du dachtest wohl das war es?")
say("falsch gedacht! [ENTER] ")
say("Es gibt noch ein paar Ebenen")
wait()
local s = select("Weiter nach oben", "Gleich")
wait()
if s == 1 then
say("Ihr seit echt mutig!")
say("Na dann gut festhalten")
timer("devil_end_jump_newebene", 10)
return
elseif s == 2 then
return
end
end
when devil_end_jump_newebene.timer begin
d.setf("level", 9)
d.jump_all(2048+590, 6656+155)
d.clear_regen()
d.spawn_mob(8027, 605, 178)
end
when 8027.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
game.drop_item(50125, 1)
end
when 50125.use with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
pc.remove_item("50125", 1)
local pct = number(1,10)
if pct == 1 then
-- Fall wahr Karte
game.drop_item(71130, 1)
d.clear_regen()
else
-- Fall wahr Karte
game.drop_item(71132, 1)
end
end
when 71130.use with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
-- An der 8th Floor
say("Du wirst zum Wasserdrachen teleportiert!")
pc.remove_item("71130", 1)
timer("devil_end_jump_drache", 10)
d.clear_regen()
end
when devil_end_jump_drache.timer begin
d.setf("level", 9)
d.jump_all(2048+590, 6656+155)
d.clear_regen()
d.spawn_mob(2493, 605, 178)
end
when 2493.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
notice_all("".. pc.get_name() .." hat den Wasserdrachen bezwungen!")
d.notice("Glückwunsch!")
d.spawn_mob(9012, 619, 170);
end
end
end
syntax error : [string "startpc . in_dungeon ( ) and pc . get_map_index ( ) >= 660000 a..."]:9: unexpected symbol near `when'
deviltower_zone.quest:518:Abort trap (core dumped)
Error occured on compile deviltower_zone.quest
standard :DQuote:
Sorry für kleine Spam aber , das ist echt heftig wenn man manchmal 1 End vergisst und schon funktoniert die quest nicht echt der wahnsinn
quest deviltower_zone begin
state start begin
when login begin
if pc.get_map_index() == 66 then
-- Nicht in einer Etage, die wieder nach drau¡¼n .
-- Layer Range
-- 1F 88 577 236 737
-- 2F 91 343 238 504
-- 3F 104 107 248 269
if pc.get_x() < 2048+88 or pc.get_y() < 6656+577 or pc.get_x() > 2048+236 or pc.get_y() > 6656+737 then
pc.warp((5376+532)*100, (512+596+4)*100, 65)
end
pc.set_warp_location(65, 5376+532, 512+596+4)
elseif pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 then
pc.set_warp_location(65, 5376+532, 512+596+4)
end
end
when deviltower_man.chat.locale.deviltower_man_chat begin
if pc.get_level() < 40 then
say(locale.deviltower_man_say_you_cant)
else
say(locale.deviltower_man_say)
local s = select(locale.deviltower_enter,locale.deviltower_no_enter)
if s == 1 then
-- warp into!
pc.warp(216500,727000)
end
end
end
when devil_stone1.kill begin
timer("devil_stone1_1", 6)
end
when devil_stone1_1.timer begin
local mapto7= pc.count_item(30302) -- Ich weiß nicht, das wahre Tilgung der die Existenz der Seele des Turms
pc.remove_item(30302,mapto7)
local boxto7= pc.count_item(30300) -- Beseitigung des unbekannten weiß nicht, ob es sich um ein Feld
pc.remove_item(30300,boxto7)
d.new_jump_all(66, special.devil_tower[1][1], special.devil_tower[1][2])
d.regen_file("data/dungeon/deviltower2_regen.txt")
d.set_warp_at_eliminate(4, d.get_map_index(), special.devil_tower[2][1], special.devil_tower[2][2], "data/dungeon/deviltower3_regen.txt")
end
--when devil_stone2.kill begin
--d.jump_all_local(special.devil_tower[2][1], special.devil_tower[2][2])
--end
when devil_stone3.kill begin
--d.jump_all_local(special.devil_tower[3][1], special.devil_tower[3][2])
--d.set_exit_all_at_eliminate(6)
--d.set_warp_at_eliminate(6, d.get_map_index(), 100, 100)
--d.set_warp_at_eliminate(4, 65, 5376+532, 512+596+4)
d.set_warp_at_eliminate(4, d.get_map_index(), special.devil_tower[3][1], special.devil_tower[3][2], "data/dungeon/deviltower4_regen.txt")
d.check_eliminated()
--d.exit_all()
end
function get_4floor_stone_pos()
local positions = {
{368, 629},
{419, 630},
{428, 653},
{422, 679},
{395, 689},
{369, 679},
{361, 658},
}
for i = 1, 6 do
local j = number(i, 7)
if i != j then
local t = positions[i];
positions[i] = positions[j];
positions[j] = t;
end
end
--for i = 1, 7 do
-- positions[i][1] = positions[i][1] * 100
-- positions[i][2] = positions[i][2] * 100
-- end
return positions
end
when 8016.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
d.setf("level", 4)
-- Reproduzieren eine gro¡¼ Anzahl von Monstern und Herstellung von wahr und falsch Steine Steine
--d.regen_file("data/dungeon/deviltower4_regen.txt")
local positions = deviltower_zone.get_4floor_stone_pos()
for i = 1, 6 do
chat(positions[i][1], positions[i][2])
d.set_unique("fake" .. i , d.spawn_mob(8017, positions[i][1], positions[i][2]))
end
chat(positions[7][1], positions[7][2])
local vid = d.spawn_mob(8017, positions[7][1], positions[7][2])
chat(vid)
d.set_unique("real", vid)
server_loop_timer('devil_stone4_update', 10, pc.get_map_index())
server_timer('devil_stone4_fail1', 5*60, pc.get_map_index())
d.notice("Hier ist der 4. Etage,");
d.notice("findet den Echten Metinstein");
d.notice("innerhalb von 15 Minuten,");
d.notice("Sonst werdet ihr vor die Tür gesetzt.");
end
when devil_stone4_fail1.server_timer begin
if d.select(get_server_timer_arg()) then
d.notice("Noch 10 Minuten!")
server_timer('devil_stone4_fail2', 5*60, get_server_timer_arg())
end
end
when devil_stone4_fail2.server_timer begin
if d.select(get_server_timer_arg()) then
d.notice("Noch 5 Minuten!")
server_timer('devil_stone4_fail', 5*60, get_server_timer_arg())
end
end
when devil_stone4_fail.server_timer begin
if d.select(get_server_timer_arg()) then
d.notice("Die Zeit ist abgelaufen")
d.exit_all()
clear_server_timer('devil_stone4_update', get_server_timer_arg())
end
end
when devil_stone4_update.server_timer begin
if d.select(get_server_timer_arg()) then
if not d.is_unique_dead("real") then
for i = 1, 6 do
if d.getf("fakedead" .. i) == 0 then
if d.unique_get_hp_perc("fake" .. i) < 50 then
d.purge_unique("fake" .. i)
d.setf("fakedead" .. i, 1)
d.notice("Ein falscher Metinstein verschwindet.");
end
end
end
else
--d.clear_regen()
--d.regen_file("data/dungeon/deviltower5_regen.txt")
server_timer("devil_stone4_end", 5, get_server_timer_arg())
d.notice("Glückwunsch Euch ist es geglückt den Echten Metinstein");
d.notice("zu finden... Auf in die nächste Etage.")
clear_server_timer('devil_stone4_fail1', get_server_timer_arg())
clear_server_timer('devil_stone4_fail2', get_server_timer_arg())
clear_server_timer('devil_stone4_fail', get_server_timer_arg())
end
else
server_timer('devil_stone4_stop_timer', 1, get_server_timer_arg())
end
end
when devil_stone4_stop_timer.server_timer begin
clear_server_timer('devil_stone4_update', get_server_timer_arg())
end
when devil_stone4_end.server_timer begin
if d.select(get_server_timer_arg()) then
d.setf("level", 5)
d.setf("stone_count", 5)
d.notice("Willkommen auf der 5.ten Etage")
d.notice("Tötet alle Monster denn manche Tragen den Schlüssel")
d.notice("für die nächste Etage mit sich")
d.notice("Öffnet alle Säulen mit hilfe der Schlüsselsteine (Ihr habt 20 Minuten Zeit)")
d.jump_all(special.devil_tower[4][1], special.devil_tower[4][2])
server_timer('devil_stone5_fail1', 5*60, get_server_timer_arg())
clear_server_timer('devil_stone4_update', get_server_timer_arg())
-- 5. Stock, weiter zu reproduzieren
d.set_regen_file("data/dungeon/deviltower5_regen.txt")
-- 5. Stock, Seal Stone Reproduktion
d.spawn_mob(20073, 421, 452)
d.spawn_mob(20073, 380, 460)
d.spawn_mob(20073, 428, 414)
d.spawn_mob(20073, 398, 392)
d.spawn_mob(20073, 359, 426)
end
end
when devil_stone5_fail1.server_timer begin
if d.select(get_server_timer_arg()) then
d.notice("Noch 15 Minuten.")
server_timer('devil_stone5_fail2', 5*60, get_server_timer_arg())
end
end
when devil_stone5_fail2.server_timer begin
if d.select(get_server_timer_arg()) then
d.notice("Noch 10 Minuten.")
server_timer('devil_stone5_fail3', 5*60, get_server_timer_arg())
end
end
when devil_stone5_fail3.server_timer begin
if d.select(get_server_timer_arg()) then
d.notice("Noch 5 Minuten.")
server_timer('devil_stone5_fail', 5*60, get_server_timer_arg())
end
end
when devil_stone5_fail.server_timer begin
if d.select(get_server_timer_arg()) then
d.notice("Die Zeit ist abgelaufen.")
d.exit_all()
end
end
--when devil_stone4.kill begin
--d.setf("level", 5)
--d.setf("stone_count", 4)
--d.clear_regen()
--d.regen_file("data/dungeon/deviltower5_regen.txt")
--d.jump_all_local(special.devil_tower[4][1], special.devil_tower[4][2])
--end
when 1062.kill with pc.in_dungeon() and d.getf("level") == 5 begin
local KILL_COUNT_FOR_DROP_KEY = 50
--if is_test_server() then
--KILL_COUNT_FOR_DROP_KEY = 1
--end
local n =d.getf("count") + 1
d.setf("count", n)
if n == KILL_COUNT_FOR_DROP_KEY then
-- Falling Tasten
game.drop_item(50084, 1)
d.setf("count", 0)
end
end
when devil_stone5.take with item.vnum == 50084 begin
npc.purge()
item.remove()
d.setf("stone_count", d.getf("stone_count") - 1)
if d.getf("stone_count") <= 0 then
d.setf("level", 6)
d.clear_regen()
d.regen_file("data/dungeon/deviltower6_regen.txt")
d.notice("Glückwunsch ihr habt alle Säulen Geöffnet")
d.notice("Ihr werdet in die nächste Etage aufsteigen.")
d.jump_all(special.devil_tower[5][1], special.devil_tower[5][2])
clear_server_timer('devil_stone5_fail1', get_server_timer_arg())
clear_server_timer('devil_stone5_fail2', get_server_timer_arg())
clear_server_timer('devil_stone5_fail3', get_server_timer_arg())
clear_server_timer('devil_stone5_fail', get_server_timer_arg())
else
d.notice("Säule entfernt... Noch "..d.getf("stone_count").."Viel Glück")
end
end
when devil_stone6.kill begin
-- Geschickt, um eine Karte, wo die Verfeinerung St.
-- Ansonsten ¡¼fnen Sie ein neues Lian Sheng
--d.jump_all(special.devil_tower[6][1], special.devil_tower[6][2])
d.kill_all()
-- d.set_warp_at_eliminate(3*60, 65, 5376+532, 512+596+4)
d.check_eliminated()
local reward_alchemist = {20074, 20075, 20076}
d.spawn_mob(reward_alchemist[number(1,3)], 425, 216);
d.setqf("can_refine", 1)
end
--------------------------------------
-- 7 D kommt man aus dem Zugriff vor dem 8. Stock
--------------------------------------
when 20074.chat."Die Oberen Stockwerke" with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
say(""..mob_name(20074).."")
say("Möchtet ihr Weiter herrauf")
say("und euer können weiterhin unter Beweiss stellen?")
say("Ich jedenfalls bleibe hier")
say("")
wait()
if pc.level >=75 then
say("Ihr seid zumindest gross genug.")
say("Doch seid ihr auch Tapfer genug?")
say("Es gibt nur eine möglichkeit das festzustellen.")
timer("devil_jump_7", 6)
return
end
say("Ihr seid leider noch nicht ")
say("gross genug um weiter aufzusteigen")
say("Übt noch ein wenig und kommt dann wieder.")
say("Viel Glück auf eurer Reise.")
say("")
wait()
pc.warp(590500, 110500)
return
end
when 20075.chat."Mit Bezug auf den oberen Turm .." with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
say(""..mob_name(20075).."")
say("Möchtet ihr Weiter herrauf")
say("und euer können weiterhin unter Beweiss stellen?")
say("Ich jedenfalls bleibe hier")
say("")
wait()
if pc.level >=40 then
say("Ihr seid zumindest gross genug.")
say("Doch seid ihr auch Tapfer genug?")
say("Es gibt nur eine möglichkeit das festzustellen.")
timer("devil_jump_7", 6)
return
end
say("Ihr seid leider noch nicht ")
say("gross genug um weiter aufzusteigen")
say("Übt noch ein wenig und kommt dann wieder.")
say("Viel Glück auf eurer Reise.")
say("")
wait()
pc.warp(590500, 110500)
return
end
when 20076.chat."Mit Bezug auf den oberen Turm .." with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
say(""..mob_name(20076).."")
say("Möchtet ihr Weiter herrauf")
say("und euer können weiterhin unter Beweiss stellen?")
say("Ich jedenfalls bleibe hier")
say("")
wait()
if pc.level >=75 then
say("Ihr seid zumindest gross genug.")
say("Doch seid ihr auch Tapfer genug?")
say("Es gibt nur eine möglichkeit das festzustellen.")
timer("devil_jump_7", 6)
return
end
say("Ihr seid leider noch nicht ")
say("gross genug um weiter aufzusteigen")
say("Übt noch ein wenig und kommt dann wieder.")
say("Viel Glück auf eurer Reise.")
say("")
wait()
pc.warp(590500, 110500)
return
end
when devil_jump_7.timer begin
d.clear_regen()
d.spawn_mob(8018, 639, 658)
d.spawn_mob(8018, 611, 637)
d.spawn_mob(8018, 596, 674)
d.spawn_mob(8018, 629, 670)
d.setf("level", 7)
d.jump_all(2048+590, 6656+638)
end
when 8018.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
local cont = d.getf("7_stone_kill") + 1
d.setf("7_stone_kill", cont)
if cont >= 4 then
d.setf("7_stone_kill", 0)
d.set_regen_file("data/dungeon/deviltower7_regen.txt")
end
end
when 8019.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
game.drop_item(30300, 1)
end
when 30300.use with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
pc.remove_item("30300", 1)
local pct = number(1,10)
if pct == 1 then
-- Fall wahr Karte
game.drop_item(30302, 1)
d.clear_regen()
else
-- Fall wahr Karte
game.drop_item(30301, 1)
end
end
when 30302.use with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
-- An der 8th Floor
say("Du wirst in die Zin Grotte teleportiert. Viel Glück.")
pc.remove_item("30302", 1)
timer("devil_jump_8", 6)
d.clear_regen()
end
--------------------------------------------
-- Von 8 F vor der Ankunft geben Sie die 9 F
--------------------------------------------
when devil_jump_8.timer begin
d.setf("level", 8)
d.jump_all(2048+590, 6656+403)
d.set_regen_file("data/dungeon/deviltower8_regen.txt")
d.spawn_mob(20366, 640, 460)
local _count= pc.count_item(30302)-- True Tilgung Dead Turm
pc.remove_item(30302,_count)
end
when 1040.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
local pct1 = number(1, 5)
if pct1 == 1 then
local pct2 = number(1, 10)
if pct2 == 1 then
-- Fall wahre Schl¡¼sel
game.drop_item(30304, 1)
else
-- Keys fiel
game.drop_item(30303, 1)
end
else
return
end
end
when 20366.take with item.vnum == 30304 begin
-- 9 F-Zeichen aufgehoben
npc.purge()
item.remove()
timer("devil_jump_9", 6)
end
---------------------------------------------
-- 9 F ein Ende, indem Sie
---------------------------------------------
when devil_jump_9.timer begin
d.setf("level", 9)
d.jump_all(2048+590, 6656+155)
d.spawn_mob(1093, 605, 178)
end
when 1093.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
d.kill_all()
timer("devil_end_jump", 10)
d.notice("Ihr habt den Sensenmann getötet")
d.notice("Ihr gelangt nun zum Blauen Tod")
timer("devil_end_jump_schmied", 10)
end
when devil_end_jump_schmied.timer begin
d.setf("level", 9)
d.jump_all(2048+590, 6656+155)
d.clear_regen()
d.spawn_mob(1095, 605, 178)
end
when 1095.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
d.notice("".. pc.get_name() .." hat den Blauen Tod bezwungen!")
d.notice("Glückwunsch!")
local reward_alchemist = {20074, 20075, 20076}
d.spawn_mob(20074, 609, 179);
d.spawn_mob(20075, 609, 172);
d.spawn_mob(20076, 609, 185);
d.spawn_mob(20094, 619, 170);
d.setqf("can_refine", 1)
end
when 20094.chat."Weiter nach oben" with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
say(""..mob_name(20094).."")
say("Du dachtest wohl das war es?")
say("falsch gedacht! [ENTER] ")
say("Es gibt noch ein paar Ebenen")
say("Ich werde dir eienne Metin spawnen du")
say("musst einen Schlüssel droppen")
say("falls kein neuer Metin kommt kannst du mich nett fragen")
wait()
local s = select("Spawn mir einen", "Gleich")
wait()
if s == 1 then
say("Na dann ich werde es versuchen")
mob.spawn(8027)
return
elseif s == 2 then
return
end
end
when 8027.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
game.drop_item(50125, 1)
end
when 50125.use with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
pc.remove_item("50125", 1)
local pct = number(1,10)
if pct == 1 then
-- Fall wahr Karte
game.drop_item(71130, 1)
d.clear_regen()
else
-- Fall wahr Karte
game.drop_item(71132, 1)
end
end
when 71130.use with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
-- An der 8th Floor
say("Du wirst zum Wasserdrachen teleportiert!")
pc.remove_item("71130", 1)
timer("devil_end_jump_drache", 10)
d.clear_regen()
end
when devil_end_jump_drache.timer begin
d.setf("level", 9)
d.jump_all(2048+590, 6656+155)
d.clear_regen()
d.spawn_mob(2493, 605, 178)
end
when 2493.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
notice_all("".. pc.get_name() .." hat den Wasserdrachen bezwungen!")
d.notice("Glückwunsch!")
d.spawn_mob(9012, 619, 170);
end
end
end
when 20094.chat."Weiter nach oben" with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
say(""..mob_name(20094).."")
say("Du dachtest wohl das war es?")
say("falsch gedacht! [ENTER] ")
say("Es gibt noch ein paar Ebenen")
say("Ich werde dir eienne Metin spawnen du")
say("musst einen Schlüssel droppen")
say("falls kein neuer Metin kommt kannst du mich nett fragen")
wait()
local s = select("Spawn mir einen", "Gleich")
wait()
if s == 1 then
say("Na dann ich werde es versuchen")
mob.spawn(8027)
return
elseif s == 2 then
return
end
end