Register for your free account! | Forgot your password?

Go Back   elitepvpers > Other Online Games > Diablo 2 > Diablo 2 Programming
You last visited: Today at 14:39

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

Advertisement



D2NT Need expert help w/ function

Discussion on D2NT Need expert help w/ function within the Diablo 2 Programming forum part of the Diablo 2 category.

Closed Thread
 
Old   #1
 
elite*gold: 0
Join Date: Dec 2010
Posts: 152
Received Thanks: 23
Question D2NT Need expert help w/ function

German: Ich deklarier eine Variable und will sie in einer Funktion verwenden

NTTest.nt
Code:
function NTMain()
{
	Include("libs/common/NTCommon.ntl");
	NTC_IncludeLibs();
	NTC_IncludeConfig("NTBot/char_configs");
	NT_LoadConfig();
	NTA_Initialize();
	
	me.maxgametime = 0;
	var _test = "hallo"; // <-- die variable


	NT_Hallo(); // <-- funktionsaufruf
	
	while(true)
	{
		Delay(500);
	}
	
	NTC_SendMsgToScript("MWBotGame.ntj", "SCRIPT_END");
}

function NT_Hallo() // <-- funktion
{
	Print(_test); // <-- hier wird _test verwendet
}
und bekomme folgenden Error: <D2NT Error> C:\Users\tonk\Desktop\D2NT 3.1\Muddy's\scripts\NTBot\bots\NTTest.ntj (28): ReferenceError: _test is not defined.
Warum bekomme ich diese Fehlermeldung?

English: In the above script I try to access the variable _test via the function NT_Hallo(), however on running the script it leads to an error: <D2NT Error> C:\Users\tonk\Desktop\D2NT 3.1\Muddy's\scripts\NTBot\bots\NTTest.ntj (28): ReferenceError: _test is not defined. Why does the error occur?
tonk1 is offline  
Old 05/26/2013, 17:30   #2
 
elite*gold: 0
Join Date: Sep 2010
Posts: 21
Received Thanks: 9
Das funktioniert nicht, weil die Variable lokal für die Funktion NTMain() ist, ergo außerhalb derer nicht zugreifbar ist.
Schöner wäre es die Variable als Argument an die Funktion zu übergeben. Inetwa so:
Code:
function NTMain()
{
	Include("libs/common/NTCommon.ntl");
	NTC_IncludeLibs();
	NTC_IncludeConfig("NTBot/char_configs");
	NT_LoadConfig();
	NTA_Initialize();
	
	me.maxgametime = 0;
	var _test = "hallo"; // <-- die variable


	NT_Hallo(_test); // <-- funktionsaufruf mit Variable als Argument
	
	while(true)
	{
		Delay(500);
	}
	
	NTC_SendMsgToScript("MWBotGame.ntj", "SCRIPT_END");
}

function NT_Hallo(msg) // <-- funktion
{
	Print(msg);
}
bishibosh is offline  
Thanks
2 Users
Old 05/27/2013, 01:33   #3
 
elite*gold: 0
Join Date: Dec 2010
Posts: 152
Received Thanks: 23
Quote:
Originally Posted by bishibosh View Post
Das funktioniert nicht, weil die Variable lokal für die Funktion NTMain() ist, ergo außerhalb derer nicht zugreifbar ist.
Schöner wäre es die Variable als Argument an die Funktion zu übergeben. Inetwa so:
Code:
function NTMain()
{
	Include("libs/common/NTCommon.ntl");
	NTC_IncludeLibs();
	NTC_IncludeConfig("NTBot/char_configs");
	NT_LoadConfig();
	NTA_Initialize();
	
	me.maxgametime = 0;
	var _test = "hallo"; // <-- die variable


	NT_Hallo(_test); // <-- funktionsaufruf mit Variable als Argument
	
	while(true)
	{
		Delay(500);
	}
	
	NTC_SendMsgToScript("MWBotGame.ntj", "SCRIPT_END");
}

function NT_Hallo(msg) // <-- funktion
{
	Print(msg);
}
Nach alternativen Lösungen hatte ich gar nicht gefragt? Du denkst ja echt an alles.
Jedenfalls hatte ich das vorher schon so gemacht, mich aber gewundert, warum ich mit der in der Fragestellung genannten Methode nichts anfangen konnte.
Nachdem ich deinen Beitrag gelesen hab ist die Antwort wie der Blitz zu mir gekommen. Vielen Dank.

Für alle die Lösung zur Fragestellung: Es geht nur auf dem Weg, wie bishibosh dargestellt hat.
Auf die Variablen der Funktion NTMain haben andere Funktionen nur mithilfe von Parameterübergabe Zugriff.


Kann geschlossen werden.
t/c
tonk1 is offline  
Old 05/28/2013, 11:04   #4
Administrator
 
Muddy Waters's Avatar
 
elite*gold: 41624
Join Date: Jan 2010
Posts: 22,728
Received Thanks: 12,654
Quote:
Originally Posted by tonk1 View Post
Für alle die Lösung zur Fragestellung: Es geht nur auf dem Weg, wie bishibosh dargestellt hat.
Auf die Variablen der Funktion NTMain haben andere Funktionen nur mithilfe von Parameterübergabe Zugriff.
Der Vollständigkeit halber muss ich widersprechen: Man könnte die Variable auch global deklarieren, dafür gibt es sogar zwei Möglichkeiten:
  1. Implizit, durch Weglassen des var-Statements - die Variable kann dann auch innerhalb einer Funktion (z.B. NTMain) deklariert werden und wäre trotzdem im globalen Kontext definiert:
  2. Explizit, durch Deklarierung mit var-Statement im globalen Kontext (d.h. außerhalb von NTMain):

Allerdings sollte man auf globale Variablen weitestgehend verzichten, sofern es auch andere Lösungswege gibt - die zuvor genannte Variante mit der lokalen Variable und Übergabe als Parameter ist also sauberer und daher in diesem Fall vorzuziehen.

#closed
Muddy Waters is offline  
Closed Thread

Tags
d2nt, function, funktion


Similar Threads Similar Threads
Muddy's D2NT mit 1.13d D2NT.dll + Neuer D2NT Etal
01/06/2012 - Diablo 2 - 474 Replies
Damit hier mal langsam Ruhe einkehrt lade ich jetzt den Muddy's D"NT mit der D2NT.dll für 1.13d hoch. Die Grundlage ist die Rev3 vom Bot. Hier ist ganz klar zu sagen, dass der Dank für den Bot an Muddy_Waters geht Das hier ist kein Fragethread. Ich habe selber keine Ahnung wie mögliche Bugs, die von der neuen dll kommen gefixt werden können. Wenn ihr Bugs entdeckt und diese fixxen könnt dürft ihr gerne das ganze posten. So kann man schnell für Probleme Lösungen finden. Bei anderen...
D2nt (3.1) mit mudys d2nt.dll hdin macht baaluns nicht fertig
11/10/2011 - Diablo 2 - 12 Replies
wie im topic beschrieben seitdem ich die neue dll verwende(n muss) macht mein hdin beim baalrun nachdem er lister der Quäler besiegt hat einfach das spiel zu und d2nt startet neu meine soso macht den ganz normal fertig und killt auch baal? jemand anderes auch so ein problm und ggf ne Lösung?
[VIP-function] ToxicSYS [VIP-function]
08/14/2010 - WarRock Hacks, Bots, Cheats & Exploits - 1 Replies
heeeey E-pvpers :pimp: this is a new hack by TSYS Status : UNDETECTED Functions (VIDEO) : YouTube - WarRock - Bikini event VIP hack
d2nt leech bot einstellen... d2nt config error..
07/09/2010 - Diablo 2 Programming - 2 Replies
hey mein bot zeigt mir die ganze zeit ein error und habe die einstellungen in der anleitung genauso... was tun? habe leader acc/ char name eingetragen. beide flistet. die eine datei aus baalleech rausgeholt und umbenannt und die // weg genommen habe beim manager auch auf d2nt leech eingestelln



All times are GMT +1. The time now is 14:39.


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.