[Release] Muddy's D2NT

04/01/2011 17:45 getgoodson#1051
Quote:
Originally Posted by Muddy_Waters View Post
Alles klar, Super Chests in dem Sinne (also solche die auch so aussehen als wären sie super) sind das dann wohl nicht, was auch erklärt, warum sie in meinem Script nicht enthalten sind. :)

Du kannst einfach dein Mephisto Script durch den Inhalt der [Code]-Box ersetzen.

Lg
Muddy
Ich werde nochmal nachlesen, wie das genau in Unter Kurast war. Wenn ich Belege dafür hab, dass droprate besser ist, lass ich dirs zukommen.

ok, meph läuft. Er nimmt jetzt auch brav den Rüstungsständer mit, jedoch nur den rechts. Kann der linke auch noch mit? :)
04/01/2011 18:29 DeathFromHeaven#1052
was mir gerade beim zuschauen auffällt: meiner trinkt verhältnismäßig oft seine Pots nicht -.-
eigentlich so gut wie gar nicht wenn ich zuschaue :(
Einstellungen sehen so aus:
Code:
NTConfig_LifeThresh = 75;		// Drink a normal potion if under this percent of life.
	NTConfig_LifeRejuvThresh = 50;	// Drink a rejuvenation potion if under this percent of life.
	NTConfig_ManaThresh = 30;		// Drink a normal potion if under this percent of mana.
	NTConfig_ManaRejuvThresh = 0;	// Drink a rejuvenation potion if under this percent of mana.
	
	NTConfig_MercLifeThresh = 60;	// This is the threshold to use a life potion on your merc in percent.
	NTConfig_MercRejuvThresh = 30;	// This is the threshold to use a rejuv potion on your merc in percent.
was ist da los?

edit: na gut er trinkt sie doch, aber kann es sein, dass das Delay dazwischen relativ hoch ist? er trinkt einen doch es dauert ne halbe Ewigkeit bis er den nächsten trinkt...
muss wohl besseres Equip her^^

edit2: das mit dem aus dem Ordner nehmen, also den Unterordner umgehen hat noch nicht geholfen... Problem bleibt bestehen... welche Funktion/welcher Aufruf ist denn dafür zuständig? dann kann ich selbst mal nachgucken^^
04/01/2011 18:43 Shrimps in Bierteig#1053
was mir mal aufgefallen ist, bei den grundeinstellungen der soso war bei mir

NTConfig_LifeRejuvThresh = 30
und chicken war ebenfalls auf 30 eingestellt^^ hatte daher anfangst irgendwie viele chickens.

Würd aber das weng runterstellen evt. Halt das dein life tresh bei 67 nimmst und rejuv bei 37 und chicken bei 30. So hab ich das eingestellt und es läuft prima ;) Und meine sorc hat ziemlichen crapgear an. Musst aber sonst selbst mal weng schaun, welche einstellungen für dich gut sind und bisschen austesten, wann er genau welche tränke trinken sollte.
04/01/2011 19:15 Muddy Waters#1054
Quote:
Originally Posted by getgoodson View Post
Ich werde nochmal nachlesen, wie das genau in Unter Kurast war. Wenn ich Belege dafür hab, dass droprate besser ist, lass ich dirs zukommen.

ok, meph läuft. Er nimmt jetzt auch brav den Rüstungsständer mit, jedoch nur den rechts. Kann der linke auch noch mit? :)
Faulheit meinerseits... :o

Versuch es mal so:

Quote:
Originally Posted by DeathFromHeaven View Post
was mir gerade beim zuschauen auffällt: meiner trinkt verhältnismäßig oft seine Pots nicht -.-
eigentlich so gut wie gar nicht wenn ich zuschaue :(
Einstellungen sehen so aus:
Code:
NTConfig_LifeThresh = 75;		// Drink a normal potion if under this percent of life.
	NTConfig_LifeRejuvThresh = 50;	// Drink a rejuvenation potion if under this percent of life.
	NTConfig_ManaThresh = 30;		// Drink a normal potion if under this percent of mana.
	NTConfig_ManaRejuvThresh = 0;	// Drink a rejuvenation potion if under this percent of mana.
	
	NTConfig_MercLifeThresh = 60;	// This is the threshold to use a life potion on your merc in percent.
	NTConfig_MercRejuvThresh = 30;	// This is the threshold to use a rejuv potion on your merc in percent.
was ist da los?

edit: na gut er trinkt sie doch, aber kann es sein, dass das Delay dazwischen relativ hoch ist? er trinkt einen doch es dauert ne halbe Ewigkeit bis er den nächsten trinkt...
muss wohl besseres Equip her^^

edit2: das mit dem aus dem Ordner nehmen, also den Unterordner umgehen hat noch nicht geholfen... Problem bleibt bestehen... welche Funktion/welcher Aufruf ist denn dafür zuständig? dann kann ich selbst mal nachgucken^^
Das mit den Tränken werde ich mal nachvollziehen. Da ich den Tools Thread zum Großteil neu geschrieben habe, kann es durchaus sein, dass sich Fehler eingeschlichen haben.

Zu deinem anderen Problem:
Bitte poste mal das betreffende Script, würde da gerne mal reinschauen. :)

Quote:
Originally Posted by Shrims View Post
was mir mal aufgefallen ist, bei den grundeinstellungen der soso war bei mir

NTConfig_LifeRejuvThresh = 30
und chicken war ebenfalls auf 30 eingestellt^^ hatte daher anfangst irgendwie viele chickens.

Würd aber das weng runterstellen evt. Halt das dein life tresh bei 67 nimmst und rejuv bei 37 und chicken bei 30. So hab ich das eingestellt und es läuft prima ;) Und meine sorc hat ziemlichen crapgear an. Musst aber sonst selbst mal weng schaun, welche einstellungen für dich gut sind und bisschen austesten, wann er genau welche tränke trinken sollte.
Also bei mir ist es in der Default Config anders, aber ich kann mich natürlich irren.

Ansonsten habe ich das natürlich mit völliger Absicht eingebaut, um sicherzustellen, dass man beim Einstellen mitdenkt. :D

Meine Sorcs laufen mittlerweile auch halbwegs, auch wenn das aus meiner Sicht zum Großteil auf FastMod in Verbindung mit meinem Ausweichalgorithmus zurückgeht. :)

Lg
Muddy
04/01/2011 19:48 getgoodson#1055
Quote:
Originally Posted by Muddy_Waters View Post
Faulheit meinerseits... :o

Versuch es mal so:



Lg
Muddy
hehe, jetzt telt er zu beiden ständern, klickt sie aber nicht an :)
gleich haben wirs! :)
04/01/2011 21:49 Aceridos#1056
Huhu,
deine Lösung bezüglich Mausoleum scheint zu funktionieren(nicht das ich daran gezweifelt hätte :p)

Muss aber gleich mit nem anderen Problem nerven :(
Habe nun mal Duriel hinzugefügt und eingestellt und naja, die ersten 3 Runs liefen problemlos, bis ich eben wiederkam und folgendes vorfinde
[Only registered and activated users can see links. Click Here To Register...]

Hab den Code mal direkt hier drin
Code:
function NTIPCheckItem(item, checkQuantity, nipDebug)
{
	var i;
	var _identified;
	var _result = 0;
	var _quantity, _quantityString, _replacedCheckListItem, _specs;

	_identified = item.itemflag & 0x10;
	
	if(arguments.length < 2)
		checkQuantity = false;
	if(arguments.length < 3)
		nipDebug = false;
	
	for(i = 0 ; i < _NTIP_CheckList.length ; i++)
	{
		if(_NTIP_CheckList[i][0].length > 0)
		{
			if(_NTIP_CheckList[i][0].indexOf("maxquantity") == -1)
			{	
				if(eval(_NTIP_CheckList[i][0]))
				{
					if(_NTIP_CheckList[i][1].length > 0)
					{
						[color=red]if(eval(_NTIP_CheckList[i][1]))[/color]
						{
							if(nipDebug)
								return new Array(1, _NTIP_CheckList[i][2], _NTIP_CheckList[i][3], _NTIP_CheckList[i][4], _NTIP_CheckList[i][0] + " && " + _NTIP_CheckList[i][1]);

							return 1;
						}
						else if(!_identified && _result == 0)
							_result = -1;
					}
					else
					{
						if(nipDebug)
							return new Array(1, _NTIP_CheckList[i][2], _NTIP_CheckList[i][3], _NTIP_CheckList[i][4], _NTIP_CheckList[i][0]);

						return 1;
					}
				}
			}
			else
			{
				// Extract the quantity from the string and cast it to integer
				_quantityString = _NTIP_CheckList[i][0].split("&&")[0];
				
				for(var n = 0; n < _quantityString.length; n++)
				{
					if(!isNaN(_quantityString.charAt(n)))
					{
						_quantity = parseInt(_quantityString.substring(n, _quantityString.length));
						break;
					}
				}
	
				// Remove the quantity definition from the nip string in JavaScript Syntax
				_replacedCheckListItem = _NTIP_CheckList[i][0].replace(/maxquantity==\d+&&/gi,"");
				
				if(eval(_replacedCheckListItem))
				{
					if(_NTIP_CheckList[i][1].length > 0)
					{
						if(eval(_NTIP_CheckList[i][1]) && (!checkQuantity || MWIPCheckItemQuantity(_quantity, _replacedCheckListItem + "&&" + _NTIP_CheckList[i][1], item.gid)))
						{
							if(nipDebug)
								return new Array(1, _NTIP_CheckList[i][2], _NTIP_CheckList[i][3], _NTIP_CheckList[i][4], _replacedCheckListItem + " && " + _NTIP_CheckList[i][1]);
						
							return 1;
						}
						else if(!_identified && _result == 0)
							_result = -1;
						else
							_result = 3;
					}
					else if(!checkQuantity || MWIPCheckItemQuantity(_quantity, _replacedCheckListItem, item.gid))
					{
						if(nipDebug)
							return new Array(1, _NTIP_CheckList[i][2], _NTIP_CheckList[i][3], _NTIP_CheckList[i][4], _replacedCheckListItem);
						
						return 1;
					}
					else
						_result = 3;
				}
			}
		}
		else if(_NTIP_CheckList[i][1].length > 0)
		{
			if(eval(_NTIP_CheckList[i][1]))
				return 1;
			else if(!_identified && _result == 0)
				_result = -1;
		}
	}
	
	return _result;
}
Hoffe man sieht den roten Bereich, das ist Zeile 96(Als Orientierungshilfe, falls du es dir nicht eh Lokal öffnest). Ich hab versucht mal drüberzuschaun, aber natürlich fällt mir nichts auf^^

Der Bot stand wieder da und hat nichts gemacht, weil er sich auf Pause gestellt hat
Er läuft gerade wieder an, mal schaun ob das öfters kommt

Falls du mal Zeit hast, würd ich mich freuen :p

Grüße

/edit: Per Google hab ich nichts gefunden, scheint also noch nicht so oft vorgekommen zu sein
Den Klammerfehler im Cowscript hab ich zumindest so gefunden :p
04/01/2011 22:17 Muddy Waters#1057
@getgoodson

Ich habe es mal in deinen Beitrag reineditiert.

Ich vermute ich habe die beiden Seiten genau vertauscht, schau mal ob es so funktioniert. ;)

@Aceridos

Ich meine mich dazu schonmal geäußert zu haben.

An dieser Stelle wird ein JavaScript Ausdruck evaluiert, der aus einer Zeile in deinen .nip Files generiert wurde.

Dieser JavaScript Ausdruck ist aber offensichtlich syntaktisch falsch, was auf einen Fehler in einen .nip Files deutet.

Scheint irgendwie öfter vorzukommen, ich denke ich setze mal eine Funktion zur automatischen Überprüfung der .nip Files mit auf meine ToDo List.
Sowas sollte angesichts meiner Vorarbeit eigentlich schnell gemacht sein. :)

Für den Moment müsstest du aber wohl suchen - welche Zeile falsch ist, ist so nämlich nicht ersichtlich. ;)

Lg
Muddy
04/01/2011 22:59 Aceridos#1058
Also ist z.b. ein Item gedropt, welches in den Nipfiles falsch eingefügt wurde? Deswegen kam dann der Fehler? Frag mich nur warum der Fehler nicht schon z.b. gestern auftaucht :)

Ich schau aber mal die Files durch oder mach nen Test mit sternenlooper, der hat ja glaub ich so ein Check der Nipfiles drin und außer dem MaxQuantity nutzt ihr die gleichen Syntaxe, wenn nicht werd ichs eh merken :p

Danke dir
04/01/2011 23:31 Muddy Waters#1059
Quote:
Originally Posted by Aceridos View Post
Also ist z.b. ein Item gedropt, welches in den Nipfiles falsch eingefügt wurde? Deswegen kam dann der Fehler? Frag mich nur warum der Fehler nicht schon z.b. gestern auftaucht :)

Ich schau aber mal die Files durch oder mach nen Test mit sternenlooper, der hat ja glaub ich so ein Check der Nipfiles drin und außer dem MaxQuantity nutzt ihr die gleichen Syntaxe, wenn nicht werd ichs eh merken :p

Danke dir
Ja, im Grunde siehst du das schon richtig.

Man muss sich nur anschauen, wie der Abgleich stattfindet.

Geht auch ein bisschen in die Grundlagen der Logik, wobei die Begriffe "hinreichend" und "notwendig" interessant sind.

Hier nochmal das Ziel des Abgleichs:
Das Auffinden einer Zeile, die das Aufheben eines Item rechtfertigt.

Man sollte sich auch nochmal vor Augen führen, dass sich eine Zeile in zwei Abschnitte unterteilt, in .nip Syntax gekennzeichnet durch das #.


Dass nun der erste Abschnitt einer solchen Zeile zu einer Übereinstimmung führt, ist notwendige Bedingung dafür, dass der Zweite Teil überhaupt überprüft wird.

Ausserdem gilt:
Dass Auffinden der ersten Zeile, die zu einer kompletten Übereinstimmung führt, ist hinreichende Bedingung dafür, dass die Funktion abgebrochen wird und keine weiteren Zeilen überprüft werden.
(Denn eine solche Übereinstimmung ist nicht mehr steigerungsfähig)

Aus obiger Betrachtung ergeben sich zwei Möglichkeiten, die dazu führen, dass die Fehlermeldung erst bei einem gewissen Item auftaucht:
  1. Der Fehler befindet sich im Abschnitt hinter dem # (wahrscheinlich)
  2. Der Fehler befindet sich am Anfang einer Zeile, die aber so weit hinten liegt, dass sie nie erreicht wird (unwahrscheinlich)

Solltest also in erster Linie immer nach dem # schauen, alles andere ist nicht wahrscheinlich.

Lg
Muddy
04/02/2011 00:16 Aceridos#1060
Da fällts mir auch wieder ein... ich hab die Pickit im Sternenlooper editiert und dann wieder zurückkopiert, da war dann auch die geänderte [MaxMana] (deine version) = [MaxMP] (sternenlooper) enthalten wegen der Sternenlooper beim chestrun testen rumgemeckert hat

War bei den Rare Circlets oder Diademen gestanden, evtl auch bei den Crafts

Sollte den Fehler also haben, ich schau aber nochmal zur Sicherheit, welche Variable du verwendest, nicht das ich 2 Unterschiedliche habe und die eigentlich richtige in eine falsche umwandle :p

Dankeschön

P.S. Bist du eigentlich Lehrer o.ä.?
Diese Geduld und die Fähigkeit den Sachverhalt so gut zu beschreiben bzw. die Dinge zu erklären. Find ich irgendwie beeindruckend :top:

/e: Variablen natürlich vertauscht haha :D
04/02/2011 15:31 DeathFromHeaven#1061
so hab festgestellt, dass es manchmal funktioniert und manchmal nicht... auch so, dass es bei einem script nicht funktionierte aber beim nächsten schon und bei dem danach wieder nicht...

hier mal ein script:

und ein weiteres:

ansonsten sieht die Restart-Quote bei Chestruns auch auf Hell ganz gut aus, aber nur mal probeweise Mauso laufen lassen schon siehts wieder schlechter aus :( also da muss was in dem script sein.
Kann es vlt sein, dass es mit "clearlevel" zu tun haben könnte? nur so ne Vermutung, da es ja nur bei großflächigen Gebieten vorkommt, wo wesentlich mehr als nur ein Mob abgearbeitet wird^^
04/02/2011 15:40 WeeDling#1062
Hey ^^

ich hab meine soso jetz auf blizzard gemacht..läuft super nur hab ich noch ein paar schwierigkeiten bei den attacken..

zur zeit sieht es so aus im der config

Code:
	// Specify your attack skills below. NOTE: Constants for all skill ids can be found in "scripts\libs\common\MWSkills.ntl".
	NTConfig_AttackSkill[0] = MWS_ICE_BLAST;		// This skill is used once whenever attacking a new target. Set to 0 to deactivate.
	NTConfig_AttackSkill[1] = MWS_BLIZZARD; 	// Primary skill to bosses.
	NTConfig_AttackSkill[2] = MWS_ICE_BLAST;	// Primary untimed skill to boss. Set to 0 to deactivate.
	NTConfig_AttackSkill[3] = MWS_BLIZZARD;	// Primary skill to others.
	NTConfig_AttackSkill[4] = MWS_BLIZZARD;	// Primary untimed skill to others. Set to 0 to deactivate.
	NTConfig_AttackSkill[5] = MWS_BLIZZARD;		// Secondary skill in case monster is immune to primary skill. Set to 0 to deactivate.
	NTConfig_AttackSkill[6] = MWS_ICE_BLAST;	// Secondary untimed skill. Set to 0 to deactivate.
	NTConfig_AttackSkill[7] = MWS_ICE_BLAST;	// Alternative untimed skill which is used if the target is immune to your untimed skill - mostly useful for FB/FO/Meteor sorcs or other sorcs that are using the same untimed skills. Set to 0 to deactivate.



d.h er greift allerdings viel zu häufig mit blizzard an un macht fast nichts mit Iceblast...

egal wie ich es drehe und wende xD entweder greift er hauptsächlich mit blizzard an un verwendet FAST kein iceblast...oder umgekehrt..
aber ich möchte das er einmal blizzard casted dann paar mal iceblast dann wieder blizzard usw usw..


wie mach ich das :>?
04/02/2011 16:41 gery68#1063
Hallo!

Habe ein Problem mit Soso bei Gräfin.
Wenn ich auf Alp Gräfin mache funktioniert der neue Bot ganz normal.
Wenn ich auf Hell Gräfin bote kommt Fehlermeldung:

NTCountess.ntj : NTA_KillMonster() failed (Tower Cellar Level5)

Woran könnte das liegen.Verwende Muddys 1.2

Danke im Voraus
Gery
04/02/2011 16:42 getgoodson#1064
Quote:
Originally Posted by WeeDling View Post
Hey ^^

ich hab meine soso jetz auf blizzard gemacht..läuft super nur hab ich noch ein paar schwierigkeiten bei den attacken..

zur zeit sieht es so aus im der config

Code:
	// Specify your attack skills below. NOTE: Constants for all skill ids can be found in "scripts\libs\common\MWSkills.ntl".
	NTConfig_AttackSkill[0] = MWS_ICE_BLAST;		// This skill is used once whenever attacking a new target. Set to 0 to deactivate.
	NTConfig_AttackSkill[1] = MWS_BLIZZARD; 	// Primary skill to bosses.
	NTConfig_AttackSkill[2] = MWS_ICE_BLAST;	// Primary untimed skill to boss. Set to 0 to deactivate.
	NTConfig_AttackSkill[3] = MWS_BLIZZARD;	// Primary skill to others.
	NTConfig_AttackSkill[4] = MWS_BLIZZARD;	// Primary untimed skill to others. Set to 0 to deactivate.
	NTConfig_AttackSkill[5] = MWS_BLIZZARD;		// Secondary skill in case monster is immune to primary skill. Set to 0 to deactivate.
	NTConfig_AttackSkill[6] = MWS_ICE_BLAST;	// Secondary untimed skill. Set to 0 to deactivate.
	NTConfig_AttackSkill[7] = MWS_ICE_BLAST;	// Alternative untimed skill which is used if the target is immune to your untimed skill - mostly useful for FB/FO/Meteor sorcs or other sorcs that are using the same untimed skills. Set to 0 to deactivate.



d.h er greift allerdings viel zu häufig mit blizzard an un macht fast nichts mit Iceblast...

egal wie ich es drehe und wende xD entweder greift er hauptsächlich mit blizzard an un verwendet FAST kein iceblast...oder umgekehrt..
aber ich möchte das er einmal blizzard casted dann paar mal iceblast dann wieder blizzard usw usw..


wie mach ich das :>?
Code:
// Specify your attack skills below. NOTE: Constants for all skill ids can be found in "scripts\libs\common\MWSkills.ntl".
	NTConfig_AttackSkill[0] = 0;		// This skill is used once whenever attacking a new target. Set to 0 to deactivate.
	NTConfig_AttackSkill[1] = MWS_BLIZZARD;	// Primary skill to bosses.
	NTConfig_AttackSkill[2] = MWS_GLACIAL_SPIKE;	// Primary untimed skill to boss. Set to 0 to deactivate.
	NTConfig_AttackSkill[3] = MWS_BLIZZARD;	// Primary skill to others.
	NTConfig_AttackSkill[4] = MWS_GLACIAL_SPIKE;	// Primary untimed skill to others. Set to 0 to deactivate.
	NTConfig_AttackSkill[5] = 0;		// Secondary skill in case monster is immune to primary skill. Set to 0 to deactivate.
	NTConfig_AttackSkill[6] = 0;	// Secondary untimed skill. Set to 0 to deactivate.
	NTConfig_AttackSkill[7] = MWS_ICE_BLAST;	// Alternative untimed skill which is used if the target is immune to your untimed skill - mostly useful for FB/FO/Meteor sorcs or other sorcs that are using the same untimed skills. Set to 0 to deactivate.
versuchs mal so (ist meine und bin sehr zufrieden damit). blizzard ist halt kein guter untimed skill (feuerball, eisstoss etc bieten sich da an)

ich hab übrigends glacial spike genommen, weil es normale monster freezt...kannst aber überall wo glacial spike steht auch eisstoss reinschreiben..
04/02/2011 17:07 Muddy Waters#1065
@Aceridos

Nein, ich bin zwar Student, aber mit Pädagogik habe ich absolut nichts am Hut.

Ich bin einfach generell geduldig im Umgang mit Menschen und teile gerne mein Wissen, sofern denn vorhanden. :)

@DeathFromHeaven

So direkt fällt mir nichts auf.

Was mir aber auffällt, ist, dass das relativ schlampig programmiert ist.
Teilweise schlecht eingerückt, undeklarierte Laufvariablen, fehlende Semikola.

Es würde mich daher nicht wundern, wenn die Bot Scripte für sich Fehler enthalten. :rolleyes:

Auch wenn das nicht deine Probleme erklärt, daher bin ich mit dieser Erklärung irgendwie noch etwas unzufrieden.

Und natürlich ist das mit dem Mausoleum möglich, ich muss aber sagen, dass meine Sorcs auch beide diese Ebene säubern und derzeit liege ich bei weniger als 1 Restart auf 30 Runs.

@WeeDling

Siehe getgoodson, so sieht es aus. :)

Solltest aber bedenken, dass Glacial Spike kein klassischer untimed Skill ist, ein gewisses Cast Delay ist vorhanden, in Verbindung mit Blizzard funktioniert das aber dennoch recht gut.

@gery68

Könnte es vielleicht damit zusammenhängen, dass die Dame auf Hell grundsätzlich Feuer- und Kälteimmun ist?

Dass der normale Angriff dann in die Hose geht ist verständlich, man könnte es eventuell über die selbst definierte Immunität lösen. Allerdings bin ich unsicher, ob das mit der derzeit veröffentlichten Version so möglich ist, ich meine ich habe es für meine neuen Ladder Sorcs etwas angepasst.

Lg
Muddy