Register for your free account! | Forgot your password?

You last visited: Today at 10:27

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

Advertisement



Unendliche Schleife

Discussion on Unendliche Schleife within the Metin2 Private Server forum part of the Metin2 category.

Reply
 
Old   #1
 
123snake123's Avatar
 
elite*gold: 253
Join Date: Jan 2010
Posts: 465
Received Thanks: 31
Unendliche Schleife

Hey

ich suche schon seit stunden und bin am probieren eine unendliche Schleife in meine Quest einzubauen.

Code:
quest p2 begin
	state start begin
		when login begin
		
			if pc.get_map_index() == 21 and pc.count_item("27006") >= 1 then
		
				syschat("___")
				warp_to_village()
				return
			end
			
			
		end
	end
end

Der if "Block" soll alle 1-2 Sekunden wiederholt werden.

Wäre auch dankbar für kleine Tipps die mir beim nachdenken wieterhelfen^^

Mfg
123snake123 is offline  
Old 12/10/2013, 20:42   #2
 
elite*gold: 0
Join Date: Dec 2007
Posts: 61
Received Thanks: 18
wozu soll das gut sein? wenn ich den map index wechsel zählt das als login und dann wird ey neu geprüft?
Der Ehrengast is offline  
Old 12/10/2013, 20:47   #3
 
123snake123's Avatar
 
elite*gold: 253
Join Date: Jan 2010
Posts: 465
Received Thanks: 31
Aber aber auf einem andren map index ich kann´s auch so schreiben


PHP Code:
quest p2 begin
    state start begin
        when login with pc
.get_map_index() == 21 begin
        
            
if  pc.count_item("27006") >= 1 then
        
                syschat
("___")
                
warp_to_village()
                return
            
end
            
            
        end
    end
end 
123snake123 is offline  
Old 12/10/2013, 20:49   #4
 
.ProjektX²'s Avatar
 
elite*gold: 0
Join Date: Oct 2013
Posts: 194
Received Thanks: 83
guck dir mal nen loop_timer an, der macht das was du suchst.
.ProjektX² is offline  
Thanks
1 User
Old 12/10/2013, 21:01   #5
 
Ivica.Lovro's Avatar
 
elite*gold: 35
Join Date: Feb 2012
Posts: 1,965
Received Thanks: 1,632
Ich kenne mich jetzt nicht so gut mit LUA aus, aber es gibt doch bestimmt soetwas wie eine Until-Schleife?
Ivica.Lovro is offline  
Old 12/10/2013, 21:04   #6
 
elite*gold: 0
Join Date: Jan 2011
Posts: 1,296
Received Thanks: 1,295
So sollte es klappen

PHP Code:
quest p2 begin
    state start begin
        when login begin
            loop_timer
("backport"1)
        
end
        
        when backport
.timer begin
            
if pc.get_map_index() == 21 and pc.count_item(27006) >= 1 then
                syschat
("___")
                
warp_to_village()
                
clear_timer("backport")
                return
            
end
        end
    end
end 
He3o Sippel is offline  
Thanks
2 Users
Old 12/10/2013, 21:15   #7
 
123snake123's Avatar
 
elite*gold: 253
Join Date: Jan 2010
Posts: 465
Received Thanks: 31
Habe zwar nix gelernt dabei aber es funzt danke^^

Nur ein Problem
Der befehl clear_timer("backport") wir von putty nicht erkannt, habe ihn aus der quest entfernt und jetzt funzt sie.

ISt das schlimm wenn der Befehl da nicht drin ist?
123snake123 is offline  
Old 12/10/2013, 21:23   #8
 
elite*gold: 0
Join Date: Jan 2011
Posts: 1,296
Received Thanks: 1,295
Quote:
Originally Posted by 123snake123 View Post
Habe zwar nix gelernt dabei aber es funzt danke^^

Nur ein Problem
Der befehl clear_timer("backport") wir von putty nicht erkannt, habe ihn aus der quest entfernt und jetzt funzt sie.

ISt das schlimm wenn der Befehl da nicht drin ist?
Also zum lernen :

Beim Login
PHP Code:
when login begin 
wird ein timer gesetzt
PHP Code:
timer("backport"
Das ist kein gewöhnlicher timer sondern ein Loop_timer deuts. Wiederholung_timer , dieser hat den Intervall 1
PHP Code:
loop_timer("backport",1
Bedeutet das sobald man sich einloggt
PHP Code:
 when login begin 
startet die Quest den loop_timer backport mit dem Intervall 1
PHP Code:
 loop_timer("backport",1

Jetzt müssen wir noch sagen was passieren soll , wenn der Intervall von 1 "abgelaufen ist".
PHP Code:
 when backport.timer begin 
Den Rest solltest du eigt. selbst Wissen If-Abfrage etc...


Zu 2.

clear_timer("backport") solltest du eigt. drinn lassen , da das dafür zuständig ist das der Loop_timer Namens Backport gestoppt wird. Dieser hat ja einen Intervall von 1 und wird somit jede Sekunde ausgefürt = Jede Sekunde eine If-Abfrage = Unötige Server Belastung.
He3o Sippel is offline  
Thanks
1 User
Old 12/10/2013, 21:29   #9
 
123snake123's Avatar
 
elite*gold: 253
Join Date: Jan 2010
Posts: 465
Received Thanks: 31
dann funzt die quest aber nicht bei mir^^
was kann ich den dagegen tun?
123snake123 is offline  
Old 12/10/2013, 21:30   #10
 
elite*gold: 0
Join Date: Jan 2011
Posts: 1,296
Received Thanks: 1,295
Add mich in Skype : xxxrezaxxx25
He3o Sippel is offline  
Old 12/10/2013, 21:37   #11
 
123snake123's Avatar
 
elite*gold: 253
Join Date: Jan 2010
Posts: 465
Received Thanks: 31
Habe es bei mir in den functions ist der clear_timer so : cleartimer^^

jetzt geht es danke schön

ich habe ca. 15 Items zu verbieten, wenn ich da immer eingebe or pc.count_item......

wird das ja ewig lang, da gibt`s doch was um das kürzer zu machen.

Geht das mit ner Tabelle?
123snake123 is offline  
Old 12/10/2013, 21:38   #12
 
.ProjektX²'s Avatar
 
elite*gold: 0
Join Date: Oct 2013
Posts: 194
Received Thanks: 83
der looptimer ist keine belastung fuer den server, den kannste auch auf 0.01 stelle :-|
.ProjektX² is offline  
Old 12/10/2013, 21:41   #13
 
elite*gold: 0
Join Date: Jan 2011
Posts: 1,296
Received Thanks: 1,295
Quote:
Originally Posted by 123snake123 View Post
Habe es bei mir in den functions ist der clear_timer so : cleartimer^^

jetzt geht es danke schön

ich habe ca. 15 Items zu verbieten, wenn ich da immer eingebe or pc.count_item......

wird das ja ewig lang, da gibt`s doch was um das kürzer zu machen.

Geht das mit ner Tabelle?
Mit einer Tabelle oder einfach

PHP Code:
 if pc.get_map_index() == 21 and pc.count_item(27006) >= or pc.count_item(2) >= or pc.count_item(3) >= 1 then 


Quote:
Originally Posted by .ProjektX² View Post
der looptimer ist keine belastung fuer den server, den kannste auch auf 0.01 stelle :-|
Kann sein aber trotzdem schöner so zu schreiben
He3o Sippel is offline  
Reply


Similar Threads Similar Threads
Fehler suche (Anfangsprogramm) If schleife in einer If-Schleife
10/16/2013 - .NET Languages - 8 Replies
Wie mache ich eine If-Schleife in einer if-schleife? Danke^^ using System; using System.Collections.Generic; using System.Linq; using System.Text;
Quest-> Schleife in einer Schleife?
04/15/2013 - Metin2 Private Server - 3 Replies
Hallo Community, ist es möglich in einer bestehenden Schleife eine weitere einzufügen die unabhängig von der 1. schleife agiert?
10 mal Schleife, dann 5 Sekunden Pause, dann wieder 10 mal Schleife, ...
05/06/2012 - AutoIt - 6 Replies
Hallo, wie mache ich es, dass nach 10 Mal Schleife einmal Sleep (5000) gemacht wird? Danach soll die Schleife wieder aufgenommen werden. LG Zottel
while-schleife cast x | schleife ende cast y
07/26/2010 - Diablo 2 Programming - 6 Replies
ich kann nicht einschlafen und versuche gerade halbwach herauszufinden, wie ich den bot etwas casten lassen kann, um ihn anschließend nach 10-15 casts etwas anderes casten zu lassen. if(NTA_GetResistance(target, NTA_DAMAGE_PHYSICAL) >= 100) { if((target.name == "Pindleskin") && NTA_GetResistance(target, NTA_DAMAGE_PHYSICAL) >= 100) { var i =0; while(i<15) { return NTC_CastSkill(106, NTC_HAND_LEFT, target); i++;



All times are GMT +2. The time now is 10:27.


Powered by vBulletin®
Copyright ©2000 - 2024, 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 ©2024 elitepvpers All Rights Reserved.