Register for your free account! | Forgot your password?

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

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

Advertisement



Ein Paar Fragen zu muddys d2nt

Discussion on Ein Paar Fragen zu muddys d2nt within the Diablo 2 Programming forum part of the Diablo 2 category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Nov 2011
Posts: 7
Received Thanks: 2
Ein Paar Fragen zu muddys d2nt

Hallo, hoffe es ist im richtigen unter Forum.

zu meinen Fragen:

1. Wie bzw wo kann ich beeinflussen, was ingame beim starten eines bot scripts gemacht wird? (will bei einem speziellen script nicht, dass die chars erstmal kaufen/verkaufen/truhe besuchen/etc gehen, sondern direkt an den zielort des scripts)

2. Wie benutze ich die funktion NT_GameMsgEvents(msg, type)
wenn ich auf eine bestimmte nachricht von einem bestimmten char eine bestimmte Aktion ausführen lassen will?
(als Bsp. was passiert hier?)
Code:
	if(type == 0 && _msg.indexOf(NTConfig_Leader.toLowerCase()) > -1 && MWConfig_Announcements.BaalTpSafe && _msg.indexOf(MWConfig_Announcements.BaalTpSafe.toLowerCase()))
3. Situation EntryPoint = NTBotLeech.ntj
In welcher Datei bzw an welcher Stelle steht die Anweisung, dass der Leechende Char direkt nach dem verlassen des Leaders das game verlässt?
€: bin über die Antwort zu Nr. 3 gestolpert
Soweit erstmal
hoffe ihr könnt mir helfen
Grüße
Aion2k11 is offline  
Old 11/21/2011, 15:09   #2
 
vony's Avatar
 
elite*gold: 94
Join Date: Nov 2011
Posts: 329
Received Thanks: 499
zu 2. ist der code sowieso falsch er müsste so aussehen

Code:
if(type == 0 && _msg.indexOf(NTConfig_Leader.toLowerCase()) > -1 && MWConfig_Announcements.BaalTpSafe && _msg.indexOf(MWConfig_Announcements.BaalTpSafe.toLowerCase()) > -1)
fehlte der > -1 check am ende
vony is offline  
Old 11/21/2011, 15:29   #3
 
elite*gold: 0
Join Date: Nov 2011
Posts: 7
Received Thanks: 2
danke für den hinweis wobei ich die direkt aus der NTBaalLeech.ntj kopiert hatte und ich kann mich nicht dran entsinnen, in der datei was verändert zu haben.
Aion2k11 is offline  
Old 11/21/2011, 15:41   #4
 
vony's Avatar
 
elite*gold: 94
Join Date: Nov 2011
Posts: 329
Received Thanks: 499
Ist auch ein Fehler im Script ansich.
vony is offline  
Old 11/21/2011, 15:50   #5
 
elite*gold: 0
Join Date: Nov 2011
Posts: 7
Received Thanks: 2
I see.
auskennen tust du dich aber nicht genug, um mir sagen zu können, wie ich so eine abfrage gestalten muss bzw was die einzelnen befehle bewirken?
Aion2k11 is offline  
Old 11/21/2011, 20:06   #6
Administrator
 
Muddy Waters's Avatar
 
elite*gold: 41624
Join Date: Jan 2010
Posts: 22,728
Received Thanks: 12,654
1.
Du müsstest die NTTMGR_TownManager() Aufrufe entfernen bzw. auskommentieren. Sinnvoll ist dies allerdings nicht.

2.
Da passiert gar nichts, da du dort lediglich die Bedingung einer if-Anweisung gepostet hast. "Passieren" tut das, was im nachfolgenden Anweisungsblock respektive der nachfolgenden Zeile steht.

Um die ganze Zeile zu verstehen, braucht du ein bisschen Grundwissen im Bereich logischer Verknüpfungen. Auch solltest du wissen, was eine Kurzschlussauswertung ist - weniger der Begriff ist von interesse, mehr das, was er meint, nämlich dass die Auswertung boolscher Ausdrücke frühzeitig abgebrochen wird, wenn ein gesamtausdruck schon nach dem Auswerten eines Teilausdrucks eindeutig definiert ist. Klingt zunächst mal schwierig, ist es aber nicht, denn es meint ganz einfach folgendes:
Code:
var _thisIsFalse = false && true;
var _thisIsTrue = true || false;
Bei beiden Ausdrücken wird der jeweils zweite Ausdruck nicht ausgewertet werden.

Genau das gilt auch für die von dir genannte Bedingung. Die Handler Funktion bekommt als Argumente type und msg übergeben. type ist hierbei ein Objekt vom Typ number, welches den Typ der Nachricht beschreibt (Chat Nachricht, Server Nachricht, etc.), msg ist ein Objekt vom Typ string, welches die eigentliche Nachricht beinhaltet.

Kommen wir auf den Ausdurck zurück, der da war:
Code:
(type == 0 && _msg.indexOf(NTConfig_Leader.toLowerCase()) > -1 && MWConfig_Announcements.BaalTpSafe && _msg.indexOf(MWConfig_Announcements.BaalTpSafe.toLowerCase()) > -1)
Es wird also zunächst überprüft, ob type den Wert 0 hat, was nichts anderes heißt, dass gerade irgendein Spieler im Chatgeschrieben hat.
Ist das nicht der Fall, wird wie Auswertung schon abgebrochen (vgl. Kurzschlussauswertung) und - falls vorhanden in den else-Zweig gesprungen.

Wir nehmen jetzt der Einfachheit mal an, dass der Ausdruck true werden soll.
type ist demnach gerade 0, _msg ist hier vermutlich der in irgendeiner Form formatierte Parameter (gewöhn dir an, Quellcode immer mit genügend Kontext zu posten), NTConfig_Leader eine Variable vom Typ string, die den Namen des Leaders beinhaltet, MWConfig_Announcements.BaalTpSafe ebenfalls ein Member vom Typ string, der die in der globalen Config festgelegte Nachricht bei sicherem TP beinhaltet.

Wann wird der Ausdruck also true?
Im Prinzip ganz einfach, gerade dann, wenn type identisch 0 ist UND die Nachricht (also der String _msg bzw. msg) den Namen des Leaders beinhaltet UND eine Nachricht bei sicherem TP definiert ist UND die Nachricht bei sicherem TP enthalten ist. Sind alle 3 Bedingungen erfüllt, wird der im Anweisungsblock stehende Code ausgeführt.

Sofern die if-Anweisung keinen else-Zweig hat, kannst du diese übrigens durch 4 verschachtelte if-Anweisungen ersetzen, die zusammen eine äquivalente Funktion erfüllen.

Das sähe dann so aus:
Code:
if(type == 0 && _msg.indexOf(NTConfig_Leader.toLowerCase()) > -1 && MWConfig_Announcements.BaalTpSafe && _msg.indexOf(MWConfig_Announcements.BaalTpSafe.toLowerCase()) > -1)
{
	// Do somethin...
}
// Erfüllt dieselbe Funktion wie:
if(type == 0)
{
	if(_msg.indexOf(NTConfig_Leader.toLowerCase()) > -1)
	{
		if(MWConfig_Announcements.BaalTpSafe)
		{
			if(_msg.indexOf(MWConfig_Announcements.BaalTpSafe.toLowerCase()) > -1)
			{
				// Do somethin...
			}
		}
	}
}
Ich weiß, dass gerade diese logischen Sachen am Anfang schwer sind, aber je mehr du dich damit befasst, desto leichter wird das und desto weniger muss man überhaupt noch darüber nachdenken...da passiert es dann auch schonmal, dass man eine -1 vergisst.

3.
Hast du ja schon selbst gefunden.

LG
Muddy
Muddy Waters is offline  
Thanks
4 Users
Old 11/22/2011, 02:22   #7
 
D2_sid's Avatar
 
elite*gold: 0
Join Date: May 2009
Posts: 329
Received Thanks: 91
Aber wie du schon gesagt hast, interessant ist eigentlich, was danach passiert. Man könnte also diese Funktion (Sorry falls Funktion das falsche Wort ist - kenne ich eigentlich gar nicht aus) benutzen, um danach ein anderes Script auszuführen. Denn die Werte sind bis hier hin ja alle schon bestimmt.
D2_sid is offline  
Old 11/22/2011, 13:11   #8
 
elite*gold: 0
Join Date: Nov 2011
Posts: 7
Received Thanks: 2
Danke für die Antworten ging ja fix

zu 1. Auch wenns generell nicht sinnvoll seien mag, diese Funktion nicht aufzurufen, allerdings läufts nun gut, das sich meine chars am anfang eines games versammeln und sich nen bo vom barb abholen, ohne das dies ewig dauert hab ich mir gestern einen abgebrochen, bis das endlich lief, dass gewartet wird auf die anderen chars und erst dann gebo'ed wird. perfekt isses allerdings immer noch nicht - falls nen char wieder weggeht vom sammel wp wird dies nicht registriert. aber auch das werd ich wohl noch hinbekommen.

zu 2. Danke für die ausführliche veranschaulichung. Denke aber auch, ich hab meine Frage nicht genau genug formuliert. Den if satz hab ich soweit noch erkannt - wär auch schlimm wenn nicht Was ich eigt wissen wollte, war, was die einzelnen Bedingungen Bedeuten - sollte ich nun mindestens ansatzweise wissen. Werde später nochmal testen, eine abgeänderte Variante davon zum laufen zu bekommen.

nochn feedback zu 3. Durchs abschalten bzw verändern des Verlassens freezen nun bisher keine D2's mehr ein. (MPM war für mich keine Option, da Win XP..)

Grüße
Aion2k11 is offline  
Reply


Similar Threads Similar Threads
Help With Muddys d2nt please
11/16/2011 - Diablo 2 - 1 Replies
Hi, I can run my bot fine but when I want to do baal runs I cannot figure out how to make it a certain game name and no password. Can you help?
D2NT Muddys d2nt problem x,x
11/06/2011 - Diablo 2 - 1 Replies
hi leute habe muddys d2nt schon ca seid 3 tagen mir wurde gesagt ich soll mir ihre FAQ etc... durchlesen habe ich bion nicht schlauer geworden habe alles eingestellt nur wenn der bot game aufmacht kommt ingame lagg und er macht nix? wenn bot auf pause ist gibts kein lagg ??
Muddys D2NT
11/03/2011 - Diablo 2 Programming - 2 Replies
kann man den wieder unclosen? oder ansonsten nochma neu öffnen das topic
D2NT - Ein paar Probleme und Fragen
04/26/2010 - Diablo 2 - 5 Replies
1.) Am Ende meiner config steht "NTConfig_UseRedemptionHP = 80;" und dennoch setzt er Rücknahme nur äußerst selten ein und schon gar nicht bei 80%, woran kann das liegen? 2.) Gibt es irgendwo eine kurze und bündige Anleitung wie man die Pickits selber editieren und/oder erstellen kann 2.1.) was lautet der Befehl für magic javelins x zu javelin and speer skill und xx ias ? oder gibt es da noch sinnvolle genauere unterteilungen? Vielen Dank schon mal für jede Antwort! P.S: SuFu...
D2NT Baalbot + paar weitere Fragen
03/29/2010 - Diablo 2 - 8 Replies
Nu läuft bei mir alles mit dem Bot, feintuning steht jetzt aber an. 1. Wie sieht das aus mit TP rollen ... werden die automatisch gekauft? 2. Ich habe das Baal modul mit drin, allerdings noch keinmal erfolgreich. Der Grund ist folgender (habe blizz sorc). Mein char teleportiert sich immer genau dahin, wo die gegner erscheinen bei den einzelnen Wellen. Anfangs lag es daran das ich static noch an hatte, jetzt wos aus ist, tele die sich immer noch da rein. damit kommt es früher oder später...



All times are GMT +1. The time now is 20:23.


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.