Hi, I have a big problem with DT quest and lua.
Since I come to the DT and I'm on the fifth floor, the mob (vnum 20073) does not want to take the stamps, all is well in advance. But when I want to give a stamp, nothing happens and pops up an error in the syslog.
I give you my quest and syslog. I have a FreeBSD 8.2 x64.
PHP Code:
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?1/4n . -- 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?1/4 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 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 ?1/4fnen 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 >=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 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 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?1/4sel 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.regen_file("data/dungeon/deviltower9_regen.txt") 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("Glückwunsch!!!") d.notice("Du hast den Sensenmann getötet!!!") d.notice("Du gelangst nun in die Etage des Gemeinen Dämonenkönigs!!!") end
when devil_end_jump.timer begin d.setf("level", 7) d.jump_all(2048+590, 6656+638) d.clear_regen() d.spawn_mob(1094, 639, 658) end
when 1094.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin d.notice("Glückwunsch!!!") d.notice("Du hast den Gemeinen Dämonenkönig getötet!!!") d.notice("Du gelangst nun in die Etage des Blauen Todes!!!") d.kill_all() 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 notice_all("".. pc.get_name() .." hat den Blauen Tod bezwungen!!!") notice_all("Wir sind alle soo stolz XDDD") d.notice("Glückwunsch!!!") d.notice("Du hast den Blauen Tod getötet!!!") d.notice("Als belohnung spawnen nun alle 3 Dt-Schmiede!!!") d.check_eliminated() 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(9012, 619, 170); d.setqf("can_refine", 1) end end end
syslog
PHP Code:
Feb 23 15:12:17 :: TakeItem zzz 20073 50084 SYSERR: Feb 23 16:12:17 :: RunState: LUA_ERROR: [string "deviltower_zone"]:1: attempt to index global `item' (a number value) SYSERR: Feb 23 16:12:17 :: WriteRunningStateToSyserr: LUA_ERROR: quest deviltower_zone.start click Feb 23 15:12:20 :: TakeItem zzz 20073 50084 SYSERR: Feb 23 16:12:20 :: RunState: LUA_ERROR: [string "deviltower_zone"]:1: attempt to index global `item' (a number value) SYSERR: Feb 23 16:12:20 :: WriteRunningStateToSyserr: LUA_ERROR: quest deviltower_zone.start click
Sorry for my bad english.
Thanks for the quick response.
EDIT: I've tested on the Freebsd 7.4 and 8.2 (clean) and this same error.
Compile all quest without quest's files list // Kompilieren Sie alle Quest ohne Quest 07/17/2011 - Metin2 PServer Guides & Strategies - 3 Replies ENGLISH
Hello dear community, this is a very simple guide but at the same time useful.
How to compile ALL quest in the folder "quest" without the files list in the file "locale_list"?
Easy!
Open the file "make" and replace the content of the file with this:
for f in *.quest; do ./qc $f; done
Oki. Now set the 0777 permission to the file.
Finally open a SSH client and sign in. Write the command:
cd /game_file_folder
[Quest Problem] 04/11/2011 - Metin2 Private Server - 1 Replies Ahoi Elitepvpers.
Ich habe ein kleines Problem mit meiner Quest.
Sie Funktioniert nicht und ich finde den Fehler nicht.
Hier mal die Quest:
quest grotte2 begin
state start begin
when login or levelup with pc.level >0 begin
set_state(zone_enter)
end
[Quest Problem] 05/15/2010 - Metin2 Private Server - 3 Replies Hallo Com,
da bei mir das Starterpack leider nichtmehr kommt, wie vllt bei vielen wollte ich eine kleine Quest schreiben, dass man es durch einen NPC bekommt. Jedoch mache ich irgend etwas falsch, aber ich kommt nicht drauf was :( Vllt könnt ihr mir da mal kurz helfen
quest starterset begin
state start begin
when 20359.chat."Starterset abholen" with pc.level=1 begin
say_title("UnNamed Mt2 Team:")
say("Herzlich willkommen auf dem UnNamed Mt2 Server")
[Problem] Problem with server starting - cannot find quest index for PaxHeader 12/22/2009 - Metin2 Private Server - 1 Replies Hello!
I have this same problem as here when i'm starting my server:
http://www.elitepvpers.com/forum/metin2-pserver-di scussions-questions/307143-metin2-serverfiles-ques t-index-fehler.html
But I didn't know the answer.. how to repair this?
Greetings