Register for your free account! | Forgot your password?

Go Back   elitepvpers > Popular Games > Metin2 > Metin2 Private Server
You last visited: Today at 13:11

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Kleines Problem mit LUA (Quest)

Discussion on Kleines Problem mit LUA (Quest) within the Metin2 Private Server forum part of the Metin2 category.

Reply
 
Old   #1


 
シスイ's Avatar
 
elite*gold: 537
The Black Market: 134/0/0
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
Code:
/e easterspawn 1
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?
シスイ is offline  
Old 04/09/2015, 01:22   #2
 
#'.Rayzor™'s Avatar
 
elite*gold: 15
Join Date: Apr 2015
Posts: 135
Received Thanks: 97
Poste am Besten noch die Quest.
#'.Rayzor™ is offline  
Old 04/09/2015, 01:22   #3
 
elite*gold: 5
Join Date: Mar 2015
Posts: 499
Received Thanks: 376
Zeig mal die Quest.
KΛIƬӨ is offline  
Old 04/09/2015, 02:40   #4


 
シスイ's Avatar
 
elite*gold: 537
The Black Market: 134/0/0
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
シスイ is offline  
Old 04/09/2015, 03:34   #5
 
elite*gold: 5
Join Date: Mar 2015
Posts: 499
Received Thanks: 376
Quote:
Originally Posted by Yoarashi View Post
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.
KΛIƬӨ is offline  
Old 04/09/2015, 10:49   #6
 
BizepsSupportAccount's Avatar
 
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 falselast_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"60pc.get_map_index())
            
end
        end
        when easter_spawn
.server_timer begin
            local mapindex 
get_server_timer_arg()
            if 
game.get_event_flag("easterspawn") == 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(35)
            for 
1countdo
                
game.drop_item_with_ownership(number(5016050179), 1)
            
end
        end
        

        
    end
end 

Beim nächsten mal bitte diesen Thread für Fehler in Quests benutzen >
BizepsSupportAccount is offline  
Old 04/09/2015, 14:41   #7


 
シスイ's Avatar
 
elite*gold: 537
The Black Market: 134/0/0
Join Date: Mar 2015
Posts: 1,041
Received Thanks: 126
Quote:
Originally Posted by BizepsSupportAccount View Post
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 falselast_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"60pc.get_map_index())
            
end
        end
        when easter_spawn
.server_timer begin
            local mapindex 
get_server_timer_arg()
            if 
game.get_event_flag("easterspawn") == 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(35)
            for 
1countdo
                
game.drop_item_with_ownership(number(5016050179), 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
シスイ is offline  
Old 04/09/2015, 14:57   #8
 
#'.Rayzor™'s Avatar
 
elite*gold: 15
Join Date: Apr 2015
Posts: 135
Received Thanks: 97
Quote:
Originally Posted by Yoarashi View Post
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 " _ ".
#'.Rayzor™ is offline  
Old 04/09/2015, 15:10   #9

 
.yorliK's Avatar
 
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!
.yorliK is offline  
Thanks
3 Users
Old 04/09/2015, 15:12   #10
 
#'.Rayzor™'s Avatar
 
elite*gold: 15
Join Date: Apr 2015
Posts: 135
Received Thanks: 97
Quote:
Originally Posted by Kilroy. View Post
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?
#'.Rayzor™ is offline  
Reply


Similar Threads 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.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.