|
You last visited: Today at 13:11
Advertisement
Kleines Problem mit LUA (Quest)
Discussion on Kleines Problem mit LUA (Quest) within the Metin2 Private Server forum part of the Metin2 category.
04/09/2015, 01:15
|
#1
|
elite*gold: 537
Join Date: Mar 2015
Posts: 1,041
Received Thanks: 126
|
Kleines Problem mit LUA (Quest)
Guten Abend ^_^
Also, ich habe letztens einen Ostern Event-Quest hinzugefügt.
Wenn ich aber das Event starten möchte
kommt es zu einen Fehler; mein Server schließt sich, und dann steht in der syserr
Code:
SYSERR: Mar 31 17:17:01 :: RunState: LUA_ERROR: [string "oster_2015"]:4: attempt to index global `easterevent' (a nil value)
SYSERR: Mar 31 17:17:01 :: WriteRunningStateToSyserr: LUA_ERROR: quest oster_2015.start click
Wer könnte mir helfen?
|
|
|
04/09/2015, 01:22
|
#2
|
elite*gold: 15
Join Date: Apr 2015
Posts: 135
Received Thanks: 97
|
Poste am Besten noch die Quest.
|
|
|
04/09/2015, 01:22
|
#3
|
elite*gold: 5
Join Date: Mar 2015
Posts: 499
Received Thanks: 376
|
Zeig mal die Quest.
|
|
|
04/09/2015, 02:40
|
#4
|
elite*gold: 537
Join Date: Mar 2015
Posts: 1,041
Received Thanks: 126
|
Ich meine es ist die hier 
* Other Language und so *
Code:
quest paste_event_2015 begin
state start begin
when login with game.get_event_flag("easterspawn") != 1 begin
clear_server_timer("easter_spawn", pc.get_map_index())
end
when login with game.get_event_flag("easterspawn") == 1 begin
if easterspawn == nil then
easterspawn = {}
end
if easterspawn[pc.get_map_index()] == nil then
easterspawn[pc.get_map_index()] = {started = false, last_spawn_time = 0}
end
if easterspawn[pc.get_map_index()].started == false then
easterspawn[pc.get_map_index()].started = true
easterspawn[pc.get_map_index()].last_spawn_time = 0
clear_server_timer("easter_spawn", pc.get_map_index())
server_loop_timer("easter_spawn", 60, pc.get_map_index())
end
end
when easter_spawn.server_timer begin
local mapindex = get_server_timer_arg()
if game.get_event_flag("easterspawn") == 1 and easterspawn[mapindex].last_spawn_time + 60*30 < get_global_time() then
easterspawn[mapindex].last_spawn_time = get_global_time()
easterevent.spawn_eggs(mapindex)
end
end
function spawn_eggs(mapindex)
local regen = {
[61] = "map_n_snowm_01.txt",
[62] = "metin2_map_n_flame_01.txt",
[64] = "map_n_threeway.txt",
[65] = "metin2_map_milgyo.txt",
[67] = "metin2_map_trent.txt",
[68] = "metin2_map_trent02.txt",
[69] = "metin2_map_WL_01.txt",
[70] = "metin2_map_nusluck01.txt",
[72] = "metin2_map_skipia_dungeon_01.txt",
[73] = "metin2_map_skipia_dungeon_02.txt",
}
if regen[mapindex] == nil then
return
end
regen_in_map(mapindex, "data/event_paste/spawn_paste/"..regen[mapindex])
end
when 8042.kill or 8043.kill or 8044.kill or 8045.kill or 8046.kill or 8047.kill begin
local level = (npc.get_race() - 8042)*10 + 40
if pc.get_level() - level > 10 then
return
end
local count = number(3, 5)
for i = 1, count, 1 do
game.drop_item_with_ownership(number(50160, 50179), 1)
end
end
end
end
|
|
|
04/09/2015, 03:34
|
#5
|
elite*gold: 5
Join Date: Mar 2015
Posts: 499
Received Thanks: 376
|
Quote:
Originally Posted by Yoarashi
Ich meine es ist die hier 
* Other Language und so *
Code:
quest paste_event_2015 begin
state start begin
when login with game.get_event_flag("easterspawn") != 1 begin
clear_server_timer("easter_spawn", pc.get_map_index())
end
when login with game.get_event_flag("easterspawn") == 1 begin
if easterspawn == nil then
easterspawn = {}
end
if easterspawn[pc.get_map_index()] == nil then
easterspawn[pc.get_map_index()] = {started = false, last_spawn_time = 0}
end
if easterspawn[pc.get_map_index()].started == false then
easterspawn[pc.get_map_index()].started = true
easterspawn[pc.get_map_index()].last_spawn_time = 0
clear_server_timer("easter_spawn", pc.get_map_index())
server_loop_timer("easter_spawn", 60, pc.get_map_index())
end
end
when easter_spawn.server_timer begin
local mapindex = get_server_timer_arg()
if game.get_event_flag("easterspawn") == 1 and easterspawn[mapindex].last_spawn_time + 60*30 < get_global_time() then
easterspawn[mapindex].last_spawn_time = get_global_time()
easterevent.spawn_eggs(mapindex)
end
end
function spawn_eggs(mapindex)
local regen = {
[61] = "map_n_snowm_01.txt",
[62] = "metin2_map_n_flame_01.txt",
[64] = "map_n_threeway.txt",
[65] = "metin2_map_milgyo.txt",
[67] = "metin2_map_trent.txt",
[68] = "metin2_map_trent02.txt",
[69] = "metin2_map_WL_01.txt",
[70] = "metin2_map_nusluck01.txt",
[72] = "metin2_map_skipia_dungeon_01.txt",
[73] = "metin2_map_skipia_dungeon_02.txt",
}
if regen[mapindex] == nil then
return
end
regen_in_map(mapindex, "data/event_paste/spawn_paste/"..regen[mapindex])
end
when 8042.kill or 8043.kill or 8044.kill or 8045.kill or 8046.kill or 8047.kill begin
local level = (npc.get_race() - 8042)*10 + 40
if pc.get_level() - level > 10 then
return
end
local count = number(3, 5)
for i = 1, count, 1 do
game.drop_item_with_ownership(number(50160, 50179), 1)
end
end
end
end
|
Add mich mal auf Skype. Ich schreib dir ne neue.
Laut dem ersten Error würde ich sagen dass dir ne Function fehlt, füg die Function spawn_eggs mal in die Questlib wenns immernoch nicht geht schreib ich sie dir gerne neu.
|
|
|
04/09/2015, 10:49
|
#6
|
elite*gold: 0
Join Date: Dec 2014
Posts: 1,018
Received Thanks: 499
|
Kann kein Lua aber versuch mal diese Version:
PHP Code:
quest easterevent begin state start begin when login with game.get_event_flag("easterspawn") != 1 begin clear_server_timer("easter_spawn", pc.get_map_index()) end when login with game.get_event_flag("easterspawn") == 1 begin if easterspawn == nil then easterspawn = {} end if easterspawn[pc.get_map_index()] == nil then easterspawn[pc.get_map_index()] = {started = false, last_spawn_time = 0} end if easterspawn[pc.get_map_index()].started == false then easterspawn[pc.get_map_index()].started = true easterspawn[pc.get_map_index()].last_spawn_time = 0 clear_server_timer("easter_spawn", pc.get_map_index()) server_loop_timer("easter_spawn", 60, pc.get_map_index()) end end when easter_spawn.server_timer begin local mapindex = get_server_timer_arg() if game.get_event_flag("easterspawn") == 1 and easterspawn[mapindex].last_spawn_time + 60*30 < get_global_time() then easterspawn[mapindex].last_spawn_time = get_global_time() easterevent.spawn_eggs(mapindex) end end
function spawn_eggs(mapindex) local regen = { [61] = "map_n_snowm_01.txt", [62] = "metin2_map_n_flame_01.txt", [64] = "map_n_threeway.txt", [65] = "metin2_map_milgyo.txt", [67] = "metin2_map_trent.txt", [68] = "metin2_map_trent02.txt", [69] = "metin2_map_WL_01.txt", [70] = "metin2_map_nusluck01.txt", [72] = "metin2_map_skipia_dungeon_01.txt", [73] = "metin2_map_skipia_dungeon_02.txt", } if regen[mapindex] == nil then return end regen_in_map(mapindex, "data/event_paste/spawn_paste/"..regen[mapindex]) end when 8042.kill or 8043.kill or 8044.kill or 8045.kill or 8046.kill or 8047.kill begin local level = (npc.get_race() - 8042)*10 + 40 if pc.get_level() - level > 10 then return end local count = number(3, 5) for i = 1, count, 1 do game.drop_item_with_ownership(number(50160, 50179), 1) end end
end end
Beim nächsten mal bitte diesen Thread für Fehler in Quests benutzen >
|
|
|
04/09/2015, 14:41
|
#7
|
elite*gold: 537
Join Date: Mar 2015
Posts: 1,041
Received Thanks: 126
|
Quote:
Originally Posted by BizepsSupportAccount
Kann kein Lua aber versuch mal diese Version:
PHP Code:
quest easterevent begin
state start begin
when login with game.get_event_flag("easterspawn") != 1 begin
clear_server_timer("easter_spawn", pc.get_map_index())
end
when login with game.get_event_flag("easterspawn") == 1 begin
if easterspawn == nil then
easterspawn = {}
end
if easterspawn[pc.get_map_index()] == nil then
easterspawn[pc.get_map_index()] = {started = false, last_spawn_time = 0}
end
if easterspawn[pc.get_map_index()].started == false then
easterspawn[pc.get_map_index()].started = true
easterspawn[pc.get_map_index()].last_spawn_time = 0
clear_server_timer("easter_spawn", pc.get_map_index())
server_loop_timer("easter_spawn", 60, pc.get_map_index())
end
end
when easter_spawn.server_timer begin
local mapindex = get_server_timer_arg()
if game.get_event_flag("easterspawn") == 1 and easterspawn[mapindex].last_spawn_time + 60*30 < get_global_time() then
easterspawn[mapindex].last_spawn_time = get_global_time()
easterevent.spawn_eggs(mapindex)
end
end
function spawn_eggs(mapindex)
local regen = {
[61] = "map_n_snowm_01.txt",
[62] = "metin2_map_n_flame_01.txt",
[64] = "map_n_threeway.txt",
[65] = "metin2_map_milgyo.txt",
[67] = "metin2_map_trent.txt",
[68] = "metin2_map_trent02.txt",
[69] = "metin2_map_WL_01.txt",
[70] = "metin2_map_nusluck01.txt",
[72] = "metin2_map_skipia_dungeon_01.txt",
[73] = "metin2_map_skipia_dungeon_02.txt",
}
if regen[mapindex] == nil then
return
end
regen_in_map(mapindex, "data/event_paste/spawn_paste/"..regen[mapindex])
end
when 8042.kill or 8043.kill or 8044.kill or 8045.kill or 8046.kill or 8047.kill begin
local level = (npc.get_race() - 8042)*10 + 40
if pc.get_level() - level > 10 then
return
end
local count = number(3, 5)
for i = 1, count, 1 do
game.drop_item_with_ownership(number(50160, 50179), 1)
end
end
end
end
Beim nächsten mal bitte diesen Thread für Fehler in Quests benutzen > 
|
Ehm... nicht nöse gemeint aber du hast du die erste Zeile Verändert
Anstatt
Code:
quest paste_event_2015 begin
steht da jetzt
Code:
quest easterevent begin
|
|
|
04/09/2015, 14:57
|
#8
|
elite*gold: 15
Join Date: Apr 2015
Posts: 135
Received Thanks: 97
|
Quote:
Originally Posted by Yoarashi
Ehm... nicht nöse gemeint aber du hast du die erste Zeile Verändert
Anstatt
Code:
quest paste_event_2015 begin
steht da jetzt
Code:
quest easterevent begin

|
Das macht keinen Unterschied, da kann auch "bauernquestistso" stehen,
hauptsache kein " _ ".
|
|
|
04/09/2015, 15:10
|
#9
|
elite*gold: 0
Join Date: Nov 2011
Posts: 1,448
Received Thanks: 1,257
|
Da aber Funktionen in der Quest sind und diese in der Quest mit dem Questnamen aufgerufen werden, spielt es wohl eine Rolle wie die Quest heißt. Hier z.B. hat BizepsSupportAccount sehr schön erkannt, das die Funktion mit easterevent aufgerufen werden, heißt also die Quest hieß wohl vorher mal easterevent und wurde dann umbenannt, nur die Funktionsaufrufe nicht. Daher ist der Questname ohne viel zu ändern mit "easterevent" richtig!
|
|
|
04/09/2015, 15:12
|
#10
|
elite*gold: 15
Join Date: Apr 2015
Posts: 135
Received Thanks: 97
|
Quote:
Originally Posted by Kilroy.
Da aber Funktionen in der Quest sind und diese in der Quest mit dem Questnamen aufgerufen werden, spielt es wohl eine Rolle wie die Quest heißt. Hier z.B. hat BizepsSupportAccount sehr schön erkannt, das die Funktion mit easterevent aufgerufen werden, heißt also die Quest hieß wohl vorher mal easterevent und wurde dann umbenannt, nur die Funktionsaufrufe nicht. Daher ist der Questname ohne viel zu ändern mit "easterevent" richtig!
|
Ahh, danke, das wusst ich z.B. nicht.
Aber sonst trifft meine Aussage doch zu?
|
|
|
 |
Similar Threads
|
[HILFE] Kleines Quest Problem
07/29/2012 - Metin2 Private Server - 3 Replies
Hi comm,
ich will das die andern Spieler Erfahren wenn ein Boss gekillt wurde. Hier ein Besipiel:
quest 591_kill begin
state start begin
when 591.kill begin
notice_all(pc.get_name().. " hat den Brutalen Hauptmann getötet!")
end
end
|
Kleines Quest Problem
01/29/2012 - Metin2 Private Server - 4 Replies
Hallo liebe Com. wie man schon lesen konnte habe ich ein kleines quest problem.
Und zwar habe ich die SF von .Howan jedoch weis ich nicht wie man die quest installiation bei den 2011er Files ausführt ich denke eigentlich wie bei den 2010er /usr/... und dan sh make.sh
aber das geht nicht >.< kann es mir jemand erklären oder mir ne lösung schicken?
Danke im voraus
|
Kleines Problem.
10/17/2010 - CrossFire - 8 Replies
Hallo liebe Comunity,
ich habe ein kleines Problem, es ist kein weltbewegendes, aber es nervt auf Dauer einfach.
In jeden 2,3 Raum in den ich reinjoinen will, also auf 'Join Game' druecke, fliege ich aus dem Raum und folgende Meldung kommt; -> Siehe Bild.
Imageshack - crossfire201010150001.png
Kann mir jemand sagen, wie ich diesen beheben kann ?
Danke im vorraus ;)
|
All times are GMT +1. The time now is 13:11.
|
|