[Release] Muddy's D2NT

05/13/2011 07:29 Onkarion#1891
@ Derbeth
Wenn du die Nip-Files hochlädst und mir den Link schickst, kann ich sie mal für dich überprüfen.:)
05/13/2011 08:12 Bashtour#1892
Servus , ich wollte an dieser Stelle Muddy mal nen dickes FETTES THX aussprechen hab zwar 2 Tage gebraucht um zu blicken wie das genau läuft . . .
Aber Wpscript der Hammer wie das ganze Teil einfach genial.:handsdown:

Wär ich ne Frau würd ich sagen heirate mich :p
05/13/2011 08:17 Derbeth#1893
Quote:
Originally Posted by Onkarion View Post
@ Derbeth
Wenn du die Nip-Files hochlädst und mir den Link schickst, kann ich sie mal für dich überprüfen.:)
Hast ne PM besten dank für deine Mühen :)
05/13/2011 08:47 3rr0r_84#1894
Hallöle,
hab mit der SuFu nix gefunden, ich hab einfach alle Skills auf 0 gestellt als Lightsorc, aber er castet Gewitter und Eis Rüssi nicht. Wo stell ich das ein? Kannte vorher nur Bluebird, da ging das automatisch, wenn alle Angriffe auf 0 waren. Dickes Danke schonmal :)
05/13/2011 09:08 Derbeth#1895
Quote:
Originally Posted by 3rr0r_84 View Post
Hallöle,
hab mit der SuFu nix gefunden, ich hab einfach alle Skills auf 0 gestellt als Lightsorc, aber er castet Gewitter und Eis Rüssi nicht. Wo stell ich das ein? Kannte vorher nur Bluebird, da ging das automatisch, wenn alle Angriffe auf 0 waren. Dickes Danke schonmal :)
Willkommen im Forum :)

Schau mal in deiner Config das hier nach:

Code:
	// Your precast skills can be defined in the array below. NOTE: Battle Command, Battle Orders and Shout will be cast automatically. Constants for all skill ids can be found in "scripts\libs\common\MWSkills.ntl".
	MWConfig_PrecastSkills = [MWS_CHILLING_ARMOR, MWS_THUNDER_STORM];
Warum hast du alles auf 0 bei deinen Skills?
05/13/2011 11:11 3rr0r_84#1896
Vielen Dank :) Funzt astrein jetzt.
mit 0 macht er automatisch die richtigen Skills, hab kein Prob damit, außer dass er bei immunen versucht die zu hauen ^^ is bissl nachteilhaft mit eth hoto, aber hab einfach static reingemacht, solved thx
05/13/2011 11:28 Muddy Waters#1897
So, ich antworte mal auf ein paar Sachen, wenn sich jemand sehr vergessen fühlt, bitte nochmal auf den eigenen Beitrag hinweisen. ;)

Quote:
Originally Posted by kal_el View Post
also, ich komm mit dem shrine catcher nicht ganz klar

es ist nicht useful wenn er den xp-shrine der nicht weit von diablo weg ist erst nimmt nachdem diablo tod ist :)
was mach ich falsch?
Schreine werden nach jedem Aufruf von NTA_ClearPosition() gesucht, da so einer auch nach Diablo vorkommt, ist das nicht weiter verwunderlich.
"Useful" meint in dem Fall, dass beispielsweise keine Mana Recovery Schrein benutzt wird, während der Char einen Exp oder Skill Schrein aktiv hat.
Oder das Resi Schreine nur genutzt werden, wenn der Char wirklich wenig Resis hat oder aber um einen Fluch loszuwerden. ;)

Quote:
Originally Posted by xtoa View Post
noch mal ne frage :)

[Only registered and activated users can see links. Click Here To Register...]

jmd ne idee wie man das kept oder das sold einfärben könnte ?

schon mal danke
Zu deinem Glück habe ich sämtliche Ausgaben ins Manager Log in einer einzigen Funktion zusammengelegt, sodass du dies relativ leicht anpassen kannst.

Das ist die Funktion MWI_WriteManagerLog(), die wie folgt implementiert ist:
Code:
function MWI_WriteManagerLog(item, mode, writeXML)
{
	var _output, _nipRes, _cubingRes, _syntaxString, _isEthereal;
	
	_output = "";
	_sytaxString = "";
	
	if(arguments.length < 2 || !item)
		return false;
		
	if(arguments.length < 3)
		writeXML = false;

	if(writeXML && MWConfig_UseXMLItemlog)
	{
		if(!MWI_WriteLog(item, ((mode < 3) ? 0 : 1)))
			return false;
	}
	
	switch(mode)
	{
		case 0:	// Kept
			_output += "Kept ";
			break;
		case 1: // Gambled
			_output += "Gambled ";
			break;
		case 2: // Cubed
			_output += "Cubed ";
			break;
		case 3: // Sold
			_output += "Sold ";
			break;
	}
	
	// Add the correct color
	_output += NTC_ItemQualityToMGRColor[MWC_GetItemColorInt(item)];
	
	// Add the item's name
	if(!item.name)
		return false;
		
	_output += item.name.split("\n")[0];
	
	// Add the drop location
	_output += " ÿc6(" + MWI_ReadLoc(item) + ");";
	
	// Add the item description
	if(!item.itemdesc)
		return false;
			
	_output += item.itemdesc;
	
	if(_output.indexOf("(Based on Character Level)") > -1)
		_output = _output.replace(/\(Based on Character Level\)/gi, "(Based on Character Level) [" + me.GetStat(12) + "]");

	// Add the item level
	_output += "\nÿc5Item Level: " + item.itemlevel;
		
	if(MWConfig_NipDebugMode)
	{
		_nipRes = NTIPCheckItem(item, true, true);

		_output += "\n\nÿc8Nip Debug Info:";
		
		if(_nipRes.length == 5) // Item parser returned an array of 5 elements
		{
			/* 
			Structure of the returned array:
			Index 0: check result
			Index 1: nip filepath
			Index 2: matching line number
			Index 3: matching line nip
			Index 4: matching line JavaScript
			*/			
			
			_cubingRes = NTCU_CheckItem(item, _nipRes[0]);
			
			_output += "\nÿc0Nip Result: " + ((_nipRes[0] == 0) ? "ÿBE0000" : "ÿc2") + _nipRes[0];
			_output += "\nÿc0Cubing Result: " + ((_cubingRes) ? "ÿc2" : "ÿBE0000") + _cubingRes;
			
			// Add the line that lead to the match in both Nip and JavaScript syntax
			_output += "\nÿc0Corresponding File: ÿc8" + _nipRes[1].replace(/\//gi, "ÿc3/ÿc8") + " ÿc3[ÿBE0000" + _nipRes[2] + "ÿc3]";
			
			_syntaxString = _nipRes[3].replace(/([ ]?)([<>!=\+\-\*][=><]?)([ ]?)/g, " ÿc3$2ÿc8 "); // Highlight logical operators by using another color
			_syntaxString = _syntaxString.replace(/([ ]?)([#&|][&|]?)([ ]?)/g, " ÿc2$2ÿc8 "); // Highlight logical connectives by using another color
			_syntaxString = _syntaxString.replace(/([&])([&]?)/g, "$1$2&"); // Add an additional ampersand to any ampersand ocurrence as the manger displays these incorrectly
			// Handle comments
			if(_syntaxString.indexOf("//") != -1)
			{
				_syntaxString = _syntaxString.split("//")[0] + _syntaxString.substr(_syntaxString.indexOf("//")).replace(/ÿc[0-9]/gi, "");
				_syntaxString = _syntaxString.replace(/\/\//g, "ÿ009900//"); // Change the color of comments to green
			}

			_output += "\nÿc0Matching Line Nip: ÿc8" + MWI_TrimNipString(_syntaxString, 325);;
			
			_syntaxString = _nipRes[4].replace(/([ ]?)([<>!=\+\-\*][=><]?)([ ]?)/g, " ÿc3$2ÿc9 "); // Highlight operators by using another color
			_syntaxString = _syntaxString.replace(/([ ]?)([#&|][&|]?)([ ]?)/g, " ÿc2$2ÿc9 "); // Highlight logical connectives by using another color
			_syntaxString = _syntaxString.replace(/([&])([&]?)/g, "$1$2&"); // Add an additional ampersand to any ampersand ocurrence as the manger displays these incorrectly

			_output += "\nÿc0Matching Line JavaScript: ÿc9" + MWI_TrimNipString(_syntaxString, 325);
		}
		else // Item parser returned an integer
		{
			_cubingRes = NTCU_CheckItem(item, _nipRes);
			
			_output += "\nÿc0Nip Result: " + ((_nipRes == 0) ? "ÿBE0000" : "ÿc2") + _nipRes;
			_output += "\nÿc0Cubing Result: " + ((_cubingRes) ? "ÿc2" : "ÿBE0000") + _cubingRes;
		}
	}
	
	NTC_SendLogToOOG(NTC_LOG_ITEM, _output);

	return true;
}
Interessant ist für deine Zwecke nur die switch-Anweisung ziemlich zu Beginn der Funktion.
Erweitere einfach die entsprechenden Strings durch die gewünschten D2 Farbcodes.
Soll das "Sold" also beispielsweise rot sein, würdest du "Sold " in "ÿc1Sold " umändern.

Quote:
Originally Posted by tonk1 View Post
Wie stellt man ein, dass der Bot Immune nicht als solche erkennt?
Beispiel: Hammer statt Holy Bolt bei Baal Wave 2.
Chain Lightning bei Strom Casters/Lister wenn Infinity noch nicht wirkt oder das Monster komplett immun ist.
Oder wie stellt man ein, dass der Bot auf jeden Fall die Skills verwendet, die als Immunekiller gekennzeichnet sind? Auch, wenn das Monster gegen diesen Skill immun ist.

EDIT: Zusatzinfo: Meine Light Sorc runnt Dia Hell und greift die Monster vom Vizier-Siegel erst an, sobald auch Infnity wirkt.

EDIT2: Soll heißen, der Bot skippt alle Storm Caster, wenn sie immun sind/der Merc tot ist.
Das kann man so direkt nicht einstellen. Für Holy Bolt ist das auch nicht eingestellt, sondern als Ausnahme fest einprogrammiert. Zumal das auch nur für Monster gilt, die eben in der Praxis nicht Immun sind, weil sie untot sind.

Verwendest du die im Download enthaltene Attack library oder eine aktuellere (hatte ich hier mal gepostet).
Ist in einer Attack library eine Funktion MWA_CheckMonsterResistance() definiert?

Quote:
Originally Posted by Bashtour View Post
Klappte jetzt bis zu Diablo ganz gut dann:
NTDiablo.ntj : NTA_Killmonster() failed (The Chaos Sanctuary)

Ideen?:eek:

Der killt Dia einfach nich

P.s: Achja eingestellt auf Starten am Eingang . =)

Erledigt Time länger gestellt wegen bekämpfen
Das passiert reproduzierbar? NTConfig_AttackSkill[1] ist initialisiert?

Quote:
Originally Posted by xtoa View Post
hab mal ne frage ist es möglich items unidentifiziert zu lassen ? ich verkaufe bei jsp gern große gamble packs, meistens sc's kann mir jmd helfen oder sagen was ich ändern muss damit er sc's nicht identifiziert ?

EDIT : noch ne frage : muss ich dafür jz noch iwo ausstellen das er bei cain idented ? wenn ja wie geht das :)
Das definierst du über deine .nips, indem du einfach direkt eine hinreichende Bedingung zum Aufheben lieferst, welche nur durch propertey keywords definiert wird.

Beispiel:
Code:
[Name] == SmallCharm && [Quality] == Magic
Und nein, Cain kannst du anlassen, die Funktion ist so ausgelegt, dass Cain übersprungen wird, sollte dein Char Items bei sich tragen, die unid bleiben sollen. Stell dann aber sicher, dass dein Char einen ID Tome dabei hat. ;)

LG
Muddy
05/13/2011 11:53 kal_el#1898
thy muddy wegen dem shrine.

noch eins...
wenn er bei malah identen geht, holt er sich ne rolle... dann dauerts 2-3 sek. bis er sie benützt zum identen. dachte das liegt vielleicht an den log.files, hab sie mal angemacht...ausgemacht.. wurde aber ned schneller.
kann man das irgendwie beschleunigen? ich finde da nicht wirklich ein delay dazu...
05/13/2011 12:01 Muddy Waters#1899
Quote:
Originally Posted by kal_el View Post
thy muddy wegen dem shrine.

noch eins...
wenn er bei malah identen geht, holt er sich ne rolle... dann dauerts 2-3 sek. bis er sie benützt zum identen. dachte das liegt vielleicht an den log.files, hab sie mal angemacht...ausgemacht.. wurde aber ned schneller.
kann man das irgendwie beschleunigen? ich finde da nicht wirklich ein delay dazu...
Das Identifizieren mit Schriftrollen funktioniert von Haus aus nicht richtig, die passende Unit zur Scroll wird gerne nicht gefunden und das Identifizieren geht dementsprechend in die Hose.

Wenn du dennoch Scrolls verwenden willst, passe die betroffene Funktion auf jeden Fall so an, wie [Only registered and activated users can see links. Click Here To Register...] beschrieben.

Zu den Delays kann ich so pauschal nichts sagen, ich konnte jedenfalls bei meinen Tests keine größeren Verzögerungen feststellen. :o

LG
Muddy
05/13/2011 13:35 -Nemesis1337-#1900
Quote:
Originally Posted by -Nemesis1337- View Post
Sag ma Muddy, gibts schon was gegen den Chatoverflow bug?
Sprich das Zeichenflooden?
Mich hat einer damit vor 3h rausgebugged und noch hab ich nix dagegen das die Fehlermeldung automatisch geschlossen wird :/
Bump^^
05/13/2011 14:21 Muddy Waters#1901
Das zu beheben würde Source Zugriff erfordern, ist somit nicht machbar.

Du kannst höchstens per RedVex Plugin verhindern, dass die Chat Nachrichten überhaupt ankommen, aber seitens D2NT ist da nichts zu machen. ;)

LG
Muddy
05/13/2011 16:03 kal_el#1902
identen funzt nun einwandfrei
thx
05/13/2011 17:29 Zerratul#1903
hey nach dem ich mit wenig erfolg die suchfunktion genutzt hab habe ich eine frage und hoffe ihr könnt mir weiterhelfen ...

ich hab folgendes problem ...
mein frenzy barb haut immer ins leere weil er zu weit weg steht
jetzt hab ich in der NTAttack.ntl fogendes eingefügt um die range anzupassen
Code:
case MWS_FRENZY: //frenzy
_NTA_SkillRange[i] = 3;// range der BA
break;
bloß jetzt hat sich nichts verändert :/ muss man noch etwas in die NTAttack.ntl eintragen? (blicke bei der datei als laie nicht so durch :D)

liebe grüße
Zerratul
05/13/2011 18:22 Muddy Waters#1904
Quote:
Originally Posted by Zerratul View Post
hey nach dem ich mit wenig erfolg die suchfunktion genutzt hab habe ich eine frage und hoffe ihr könnt mir weiterhelfen ...

ich hab folgendes problem ...
mein frenzy barb haut immer ins leere weil er zu weit weg steht
jetzt hab ich in der NTAttack.ntl fogendes eingefügt um die range anzupassen
Code:
case MWS_FRENZY: //frenzy
_NTA_SkillRange[i] = 3;// range der BA
break;
bloß jetzt hat sich nichts verändert :/ muss man noch etwas in die NTAttack.ntl eintragen? (blicke bei der datei als laie nicht so durch :D)

liebe grüße
Zerratul
Sieht prinzipiell schonmal nicht schlecht aus. :)

Ich weiss nicht wie das bei Frenzy von Haus aus aussieht, könnte mir aber vorstellen, dass dein Barb das derzeit mit gedrückter Shift Taste nutzt.
Wenn du das änderst, sollte es besser klappen, darum würde ich es mal wie folgt versuchen:
Code:
case MWS_FRENZY: //frenzy
	_NTA_SkillRange[i] = 3;// range der BA
	_NTA_SkillHand[i] = NTC_HAND_LEFT;
	break;
LG
Muddy
05/13/2011 18:28 Zerratul#1905
super danke das funktioniert :)