help pls: D2NT pickit only

01/21/2012 06:23 revolutionary#1
ich versuche gerade mit dem D2NT ausschliesslich ne pickit funktion laufen zu lassen, damit während des spielens halt die items aufgehoben werden.

allerdings bekomme ich andauernd den fehler:
<D2NT error> [...]\char_configs\NTConfig_undsoweiter.ntl (4) : ReferenceError: NTConfig_NIPFilePath is not defined

kann jemand helfen?

so sieht meine NTPick.ntj aus:
Code:
function NTMain()
{
	Delay(1000);

	var _ingame = false;

	while(1)
	{
		if(me.ingame)
		{
			if(!_ingame)
			{
				RunGC();

				if(Load("NTPick/NTPickGame.ntj"))
					_ingame = true;
			}

			Delay(1000);
		}
		else
		{
			if(_ingame)
				_ingame = false;

			Delay(500);
		}
	}
}
so die ntpickgame.ntj:
Code:
function NTMain()
{
	Delay(1000);

	Include("libs/common/NTCommon.ntl");
	NTC_IncludeConfig("NTPick/char_configs");
	Include("libs/common/NTSnagit.ntl");

	NT_LoadConfig();

	NTSI_LoadNIPFiles("NTPick/item_configs");

	while(1)
	{
		if(!NTC_InTown())
		{
		NTSI_PickItems();
		NTC_Delay(200);
		}
	}
}
so die char config:
Quote:
function NT_LoadConfig()
{
NTConfig_SnagDelay = 500;
NTConfig_NIPFilePath.push("pick.nip");
NTConfig_SnagRange = 5;
}
und so die pick.ntj:
Code:
[Quality] == unique
[Quality] == rare
01/21/2012 06:50 worthless1337#2
Habe zwar von Javascript nur minimale Ahnung, aber du hast nichts von einer Deklaration/Definition a la var NTConfig_NIPFilePath erzaehlt... koennte es daran liegen?
01/21/2012 07:18 kal_el#3
Quote:
und so die pick.ntj:
die pick datei heißt nicht: pick.ntj , sondern pick.nip
eben so auch wie der pfad
NTConfig_NIPFilePath.push("pick.nip");

Quote:
<D2NT error> [...]\char_configs\NTConfig_undsoweiter.ntl (4)
und so weiter wäre interessant gewesen
denke mal das war
Quote:
NTConfig_NIPFilePath.push("pick.nip");
wie oberhalb beschrieben
01/21/2012 07:28 revolutionary#4
das mit der "pick.ntj" war nur n schreibfehler hier im thread, die datei ist bei mir richtig benannt. was genau meinst du worthless, hab wahrscheinlich noch weniger ahnung : )


hier noch die charconfig:
Quote:
function NT_LoadConfig()
{
NTConfig_SnagDelay = 500;
NTConfig_NIPFilePath.push("pick/pick.nip");
NTConfig_SnagRange = 5;
}
und die .nip befindet sich im ordner NTPick/item_configs/pick/


das undsoweiter ist die charconfig: NTConfig_Necromancer_MeinName.ntl . die wird ja auch richtig geladen.
01/21/2012 11:01 Muddy Waters#5
Quote:
Originally Posted by worthless1337 View Post
Habe zwar von Javascript nur minimale Ahnung, aber du hast nichts von einer Deklaration/Definition a la var NTConfig_NIPFilePath erzaehlt... koennte es daran liegen?
So ist es, die Fehlermeldung sagt hier eigentlich relativ genau, was Sache ist. Wenn man sie denn liest und zu interpretieren weiß.

Wenn dort nun steht:
Quote:
<D2NT error> [...]\char_configs\NTConfig_undsoweiter.ntl (4) : ReferenceError: NTConfig_NIPFilePath is not defined
Dann schaut man sich zunächst mal an, was denn genau in dieser Zeile steht und das ist doch in diesem Fall gerade:
Code:
NTConfig_NIPFilePath.push("pick/pick.nip");
Jetzt muss man nurnoch die Beschreibung richtig interpretieren. In diesem Fall sagt diese eindeutig, dass NTConfig_NIPFilePath nicht definiert wurde, also den Wert undefined hat.
Und das ist in dem Fall schlecht, verwendest du die Variable doch wie ein Objekt vom Typ Array, indem du die push() Methode aufrufst, welche nur für solche Objekte definiert ist, aber eben definitiv nicht für undefinierte Variablen.

Was hier fehlt ist demnach die Deklarierung der genannten Variable, aber vor allem auch die Initialisierung mit einem Array Objekt. Also gerade solche eine Zeile:
Code:
var NTConfig_NIPFilePath = new Array();
Bei den anderen Configs gibt es dafür eine extra Datei, in der genau das erledigt wird und welche dann jeweils vor dem Laden der eigentlichen Config inkludiert wird, sodass sämtliche dort deklarierte Variablen im laufenden Kontext definiert sind.
Besagte Datei findet sich unter folgendem relativen Pfad: "../scripts/NTBot/char_configs/NTConfig.ntl"

Es ist nicht ersichtlich, dass du bei dir eine solche Deklarierungsliste einbindest und ich denke mal genau darin liegt hier das Problem. ;)
01/21/2012 18:39 revolutionary#6
hey, danke, das hat in der tat den fehler behoben!

allerdings hebt er einfach nix auf. kannste vllt nochmal drüberschauen woran das liegen köntne?
danke für die hilfe
01/22/2012 11:29 Muddy Waters#7
Irgendwelche Fehlermeldungen? Was mich derzeit stört ist, dass du lediglich zwei libraries einbindest. Sofern du die NTSI_PickItems nicht gerade neugeschrieben hast, wird das nicht gut gehen, weil die NTSnagIt library auch noch Abhängigkeiten zu anderen libraries enthält und eben nicht nur NTCommon.

Ansonsten empfiehlt es sich debug Ausgaben einzufügen und so genau nachzuvollziehen, was dort eigentlich passiert.
01/22/2012 18:23 revolutionary#8
danke für die antwort.
wie und welche libraries muss ich denn noch einbinden? und wie komm ich an die debug ausgaben : )