hi muddy ich hab da eine dringende frage.ich hab jetzt meinen gf-barb mit einer neuen
waffe equiped,einer eth botd warpike,zuvor hatte er 2 botd ba´s.das problem ist er killt
jetzt alles mit den ali baba schwertern,was nicht umbegingt gut ist .
zu meiner frage.wo stelle ich das ein das er mit der pike angreift?
mit sterni klappt es normal,ich will aber deinen bot nutzen.
danke und lg loki.
Man kann es von Haus aus gar nicht einstellen.
Vielleicht doch ein Knackpunkt, aber ich fand es besser Funktionen einzuführen, die die Slots nach dem verwendeten Equipment auswählen und nicht wie im standard D2NT einfach mal zum Precast einen Slowechsel durchführen, unabhängig davon ob sinnvoll oder nicht.
Dummerweise ist die Slotwechselfunktion wohl dahingehend unausgereift, dass der Zweihandschaden schlicht ignoriert wird.
Ich denke ich werde die Funktion bei Zeiten nochmal ganz neu schreiben, ist ohnehin etwas schlecht sortiert.
Ich habe die Funktion mal eben angepasst, damit sollte zumindest dein Problem gelöst sein:
hi muddy,danke für deine rasche antwort.ich hab die funktion ausgetauscht, dadurch tritt
aber ein fehler auf "type is not defined",in zeile 166 also switch(type)
vl kannst du mir dabei noch helfen. bin heute offline und schau morgen wieder rein.
lg loki
e : ok,ich hab jetzt type durch NTC_CHAR_CLASS_BARBARIAN ausgetauscht und der fehler ist weg
aber er greift noch immer mit ali baba an.ich hab auch versucht den waffen slot zu wechseln.
hi muddy,danke für deine rasche antwort.ich hab die funktion ausgetauscht, dadurch tritt
aber ein fehler auf "type is not defined",in zeile 166 also switch(type)
vl kannst du mir dabei noch helfen. bin heute offline und schau morgen wieder rein.
lg loki
e : ok,ich hab jetzt type durch NTC_CHAR_CLASS_BARBARIAN ausgetauscht und der fehler ist weg
aber er greift noch immer mit ali baba an.ich hab auch versucht den waffen slot zu wechseln.
Die zu ersetzende Funktion findest du in der NTCommon und nicht in der NTPrecast library.
Das Präfix im Namen einer Funktion - mal angenommen ihr Autor hat Wert auf einen halbwegs guten Programmierstil gelegt - verweist immer auf die library, in der die Funktion implementiert ist.
Beginnt die Funktion mit MWC bzw. NTC, heisst das, sie ist in der NTCommon library implementiert, MWL verweist auf eine Implementierung innerhalb der MWLoot library und so weiter.
Solche Präfixe nutzt man übrigens auch gerne für globale Variablen, weil dadurch der Definitionskontext direkt ersichtlich ist.
Hier einmal die alte MWP_SetBoSlot() Funktion zur Wiederherstellung, solltest du sie vor der Verunstaltung nicht zwischengespeichert haben:
Ahoi!
Ich wollt mich eben davor drücken den Konjunktiv im Perfektstamm der a,e und konsonantischer Konjugation in Latein zu lernen und dacht mir ich teil mal meine lustige Idee
Freunde whispen, wenn Item gefunden wurde. Es sei vielleicht angemerkt, dass ich nich diese Botversion benutze (sonder die Muddies-Extended) und deswegen die Functions bisschen anders heißen, es soll ja auch nur ne Idee sein :
Ich find´s immerwieder lustig, wenn meine f-list sowas wie : "Just found Ist Rune at Tower Cellar Level 5" und 9 mins später "Just found Lo Rune at Durance of Hate Level 3" liest
Ich würd mir sowas mit ner Variablen in der Charconfig vorstellen können.
Nojo, nur so ´ne Idee, falls du zu wenig Prüfungen schreiben solltest
Btw., go Muddy, go Muddy!
Don Greetings,
Zerker.jar
Edit: Das ist der "Juhu, hab´ auch ´ne Idee, wenn auch nicht so Burner" - Blues.... :P
Latein...Das musste ich mir auch mal antun, auch wenn wir uns früher mehr mit geschicktem Bescheissen durchgemogelt haben.
Das ist eine Version von mir?
Wenn ja, von wann ist die?
Das ist irgendwie alles so suboptimal...
Was sich übrigens nicht auf deine Änderungen bezieht, mehr auf die Algorithmen im allgemeinen, weil ich dort irgendwie furchtbar viele Dinge sehe, die ich schon vor Monaten sehr viel besser umgesetzt habe.
Um nochmal auf die Änderungen zurückzukommen:
Also mich würde das extrem nerven.
Aber ich denke das ist Geschmackssache, wer es haben mag, kann ja deiner Anleitung folgen.
Aber auf jeden Fall nur die Ausgaben hinzufügen und nicht diese doofen alten Funktionen kopieren.
Lg
Muddy
P.S.: Remember: most blues start with "I woke up this morning".
You might wanna check out which becomes considerably more funny the more you are into blues.
danke muddy,zwischenespeichert hab ichs nicht aber die orginale rar datei hab ich immer in in einem ordner.es klappt alles wunderbar und er nimmt jetzt die pike zum killen(412ed 12ll botd eth warpike geht um das doppelte schneller). lg loki
Wie genau funktioniert das mit dem games ansagen , wenn ich z.b. op pornobaal joine und er nach dem ersten game immer das weitere ansagen soll was genau muss ich dort eintragen in der Config??
Wie genau funktioniert das mit dem games ansagen , wenn ich z.b. op pornobaal joine und er nach dem ersten game immer das weitere ansagen soll was genau muss ich dort eintragen in der Config??
Config? Das stellst du im Entry Point ein, sprich NTBot.ntj, nicht in der Charconfig.
Was wo hingehört geht eigentlich gut aus Variablenbezeichnern und Kommentaren hervor.
Wichtig ist, dass du deinen Char- oder Accountnamen in das dafür vorgesehene Array namens ChannelUsers einfügst. Nur Chars die auf diese Weise "registiert" sind, machen auch Ausgaben im Chat.
Dass das funktioniert hat siehst du am Statustextbalken, wenn du gerade den Chat betreten hast. Dort sollte "Chat actions enabled" in grün stehen, dann wird dein Char Ausgaben im Chat machen.
Was ausgegeben werden soll kannst du dabei frei wählen, wobei einige Platzhalter zur Verfügung stehen, die automatisch durch die passenden Werte (also Spielname, Zeit bis zur Erstellung, etc.) ersetzt werden.
Auch das steht aber nochmal in den Kommentaren.
Lies dir diese erstmal in Ruhe durch und frag dann gegebenenfalls etwas konkreter, sollten dabei wider erwarten Fragen offen bleiben.
Tja... trotzdem weiß ich immer noch nicht wie ich es abändern muss , damit er immer fortlaufend das game ankündigt im channel... ich benutze übringens nicht deine d2nt version sondern die normale d2nt 3.1
Tja... trotzdem weiß ich immer noch nicht wie ich es abändern muss , damit er immer fortlaufend das game ankündigt im channel... ich benutze übringens nicht deine d2nt version sondern die normale d2nt 3.1
Och mensch...
Ich bin eigentlich sehr für eigenständiges Mitdenken und daher weder für Bildchenguides, noch für das Vorkauen von Anweisungen, die an anderer Stelle bereits erklärt werden.
Insofern läuft diese Hilfestellung jetzt als Ausnahme, zumal es noch nichtmal meine Version ist.
Ich poste mal den Beginn der NTBot.ntj und hebe dir die nötigen Änderungen entsprechend hervor:
Code:
/**
* This file was modified by
* Check the programming section for updates and further scripts
* Last Update: 01/19/2011
*/
var GameMinLength = 120000; // time in milliseconds, minimum game length, 180 seconds default (1 game/3 minutes)
var UnableToConnectRetry = 5; // time in minutes to retry connecting on connection fail (real value is +/- 1 min)
var RealmDownRetry = 15; // time in minutes to retry connecting on a realm down (default is 300 minutes)
var DisconnectedRetry = 5; // time in minutes to retry on a disconnection (usually ip ban related)
var CdKeyInUseRetry = 5; // time in minutes to retry on a cdkey in use error message (set to 0 to stop)
var ConnectingToBnetTimeout = 20000; // time in milliseconds to wait for a login to time out and click cancel and retry
var CharacterScreenTimeout = 10000; // time in milliseconds to wait for character screen to appear
var PleaseWaitTimeout = 10000; // time in milliseconds to wait for a please wait popup
var CreateGameThreshold = 20000; // time in milliseconds to wait between making games
var CreateGameThresholdRandom = 5000; // time in milliseconds to randomly add +/- to the game create time
var CreateGameTimeout = 15000; // time in milliseconds to register a failed to create game
var WaitInLineTimeout = 60000; // time in milliseconds to wait in lines for a create game (60 second default)
var CharacterSelectDelay = 1000; // time in milliseconds to wait before selecting a character on the char screen
var LoginDelay = 1000; // time in milliseconds to wait before submitting login information
var ClickDelay = 1000; // wait X milliseconds before next action after a click event
var TextDelay = 1000; // wait X milliseconds before next action after inserting text into a textbox
var ClickDelayRandom = 500; // random amount of time to add to a click
var TextDelayRandom = 500; // random amount of time to add to a text set
var GameDoesNotExistDelayMin = 600000; // how long to wait when a Game Does Not Exist occurs - minimum - default 10 minutes
var GameDoesNotExistDelayMax = 900000; // how long to wait when a Game Does Not Exist occurs - maximum - default 15 minutes
var GameDoesNotExistTimeout = 30000; // how long to wait for the dialog to disappear (default 30 seconds, don't change this)
var JoinChatAfterLogin = true; // join chat after login
var JoinRandomChannel = false; // if this is true, will join a random channel, otherwise it will use the channel below..
var JoinChannelInChat = "[COLOR=Red]OP Necro19[/COLOR]"; // leave blank not to join a private channel
var PerformChannelLogin = false; // type ".login" once after joining the channel
var ChannelUsers = new Array(); // dynamic array that holds channel users
var MaximumLocationLoops = 10; // the maximum number of loops for a single location; if this number is exceeds, the window is restarted
//---------------------------------------------------------------------------------------------------------------------------------------------------------
// Add any char/account here that is supposed to perform chat actions/game announcements or join a private channel
ChannelUsers.push("[COLOR=Red]IAmNecro19'sAwesomeCharName[/COLOR]");
// Or
ChannelUsers.push("[COLOR=Red]IAmNecro19'sAwesomeAccountName[/COLOR]");
// The following key expressions will be replaced by their actual values: %game --> "gamename-" <> %counter --> number of the next game <> %time --> time in seconds till game creation <> %password --> game password
// Note that the announcement will start after the first run, so there usually won't be any anncouncement right after login - If the gamename is undefined, the bot will try to load the backup file to announce the upcoming game properly
var GameAnnouncement = "[COLOR=Red]I am a magnificent announcement! Creating %game%counter//%password in %time seconds...[/COLOR]"; // Leave blank not to post a channel announcement
var GameAnnouncementDelay = 5000; // Wait X milliseconds before posting the announcement message (don't set this too low!)
var GameAnnouncementDelayRandom = 500; // Random amount of time to add to a to the announcement delay
var UseFileBackupTimeMax = 15; // Time in minutes that may pass since last file update - The backup File is updated at the beginning of every single game and is read everytime the name of your previous game is undefined (e.g. at restarts); Set to 0 to deactivate file backup
//----------------------------------------------------------------------------------------------------------------------------------------------------------
var WaitBeforeEnterChatMin = 1000; // min how long to wait before entering chat
var WaitBeforeEnterChatMax = 2000; // max how long to wait before entering chat
var WaitInChatBeforeActionsMin = 2000; // min how long to wait before joining channel
var WaitInChatBeforeActionsMax = 3000; // max how long to wait before joining channel
// DONT EDIT ANYTHING BELOW THIS
// D2NT Manager Command
const D2NT_MGR_LOADING = 1;
const D2NT_MGR_READY = 2;
const D2NT_MGR_LOGIN = 3;
const D2NT_MGR_CREATE_GAME = 4;
const D2NT_MGR_INGAME = 5;
const D2NT_MGR_RESTART = 6;
const D2NT_MGR_CHICKEN = 7;
const D2NT_MGR_PRINT_STATUS = 8;
const D2NT_MGR_PRINT_LOG = 9;
var LastGameMade = GetTickCount();
var LastGameStatus = 0;
var NextGameMake = 0;
var InGameAt = 0;
var LocationLoops = new Array(2);
var ChatActionsDone = false;
var LastGameFailed = false;
var JoinedChannel = false;
var JustJoined = true;
Include("libs/controlInfo.ntl");
var ControlData = new controlInfo();
function NTMain()
{
Delay(1000);
var _ingame = false;
ControlData.ClickDelay = ClickDelay;
ControlData.TextDelay = TextDelay;
ControlData.ClickDelayRandom = ClickDelayRandom;
ControlData.TextDelayRandom = TextDelayRandom;
while(1)
{
if(me.ingame)
{
if(!InGameAt)
InGameAt = GetTickCount();
if(!_ingame)
{
RunGC(); // run garbage collector between each game
if(me.gamename)
MW_WriteBackupFile(me.gamename);
if(Load("[COLOR=Red]NTBot/NTBotGame.ntj[/COLOR]"))
{
_ingame = true;
LocationLoops[1] = 0;
if(me.playtype > 0)
NT_SendEventToOOG(D2NT_MGR_INGAME, "In Game [IP:" + me.gameserverip.split(".")[3] + "]", 0);
else
NT_SendEventToOOG(D2NT_MGR_INGAME, "In Game", 0);
LastGameStatus = 2; // in game successful
}
}
Delay(1000);
}
else
{
if(_ingame)
{
_ingame = false;
NT_SendEventToOOG(D2NT_MGR_READY, "", 0);
}
NT_LocationAction(ControlData.getLocation());
Delay(500);
}
}
}
Das siehst du falsch, ein Restart kann immer auftreten, wenn es zu einem unbehandelten Ausnahmefehler kommt.
Völlig entgegen dem Sinn und Zweck von Ausnahmefehlern, ist es in diesen Fällen leider meist absolut unsicher, was genau das Problem ist, es sei denn man kennt die Rahmenbedingungen und schafft es den Fehler zu reproduzieren. In dem Fall weiss man, wo man zu suchen hat.
Ich habe das Problem beispielsweise mit meinem MF Barb, die Restartquote liegt hier etwa um den Faktor 4 höher als bei meinen anderen Chars.
Leider weiss ich bislang noch nicht genau, was Auslöser dieser Restarts ist.
Darum erstmal die Frage: Welchen Char verwendest du und wo treibt dieser sich in erster Linie rum?
Ok jetzt gehts , aber er postet es jetzt 2 mal im chat, wie stell ich um das er nur einmal sagt z.b. diabaalsx-01 in 10 seconds?
Das sollte er eigentlich auch so tun, auch wenn ich zugeben muss, das lange nicht mehr getestet zu haben.
Stell mal sicher, dass die Delays sinnvoll gewählt sind, dann sollte das eigentlich funktionieren. Ansonsten schreib ich schnell einen workaround, allerdings nur, wenn meine Tests zu ähnlichen Problemen führen.
Cows, Dia und WSK auskommentiert weil ich das Gefühl hatte dass es tendenziell bei den Runs öfter passiert. War aber ne Fehleinschätzung scheinbar
Also mit meiner laufenden Version lag ich gestern bei Orb/FB Sorc, 2xHammerdin und Summoner bei ~2 Restarts auf 30 Runs, wobei ein Spiel ~40Minuten dauert.
Insofern würde ich ausschließen, dass hier irgendwelche systematischen Fehler vorliegen, die eine erhöhte Restart Quote zur Folge haben - jedenfalls was meine laufende Version angeht, die natürlich schon wieder etwas weiter ist, als die veröffentlichte.
Nur bei meinem MF Barb habe ich noch massive Probleme mit Restarts.
Das waren gestern ~18 Restarts auf gut 30 Spiele, wobei auch hier ein Spiel 40-45Minuten dauert.
Das ist definitiv viel zu viel. Dummerweise konnte ich aber die Ursache noch nicht ermitteln, auch wenn ich die betroffenen Funktionen schon weiter optimiert habe, um beispielsweise den Zugriff auf undefinierte Objekte zu verhindern (letzteres hat immer einen Ausnahmefehler zur Folge).
Hättest du also einen Barb, wäre das Problem aus meiner Sicht nachvollziehbar gewesen. So ist es eher schwierig...
Kontrollier mal sicherheitshalber deine Char Config auf kleinere Syntaxfehler.
So Dinge wie vergessene Semikola haben gerne zur Folge, dass die Restartquote stark ansteigt.
Ansonsten bin auch leider auch etwas überfragt, würde allerdings eher nicht vermuten, dass einzelne Botskripte dies auslösen, es sei denn sie sind schlampig geschrieben und enthalten ebenfalls kleinere Syntaxfehler.
[Release] D2NT 3.1 1.13c 07/17/2016 - Diablo 2 - 91 Replies hi,
hab eben den d2nt3.1 gefunden. ein neues baba script is dabei.
release thread eon
D2NT3.1
[Realease] Muddy's Waypoint Catcher 08/21/2013 - Diablo 2 Programming - 46 Replies Moin zusammen,
hier mal die erste Release Version eines kleinen Scripts genannt Waypoint Catcher. Das ganze ist jetzt nichtmal 24h alt, dementsprechend sind vermutlich noch einige Bugs vorhanden. Hinweise dazu nehme ich gerne entgegen. ;)
Features:
- Suchen sämtlicher Wegpunkte mit Ausnahme, wobei in Akt ein durch Probleme im Jail Bereich nach dem Wegpunkt Outer Cloister abgebrochen wird
- Wahlweise auch mit TP an jedem gefundenen Wp, sodass man damit auch anderen (nicht-Bots) die...
[D2NT] Long Dia Release 05/10/2011 - Diablo 2 Programming - 28 Replies Ein kleines Script für diablo, es startet beim eingang macht ein tp cleart den weg zum star macht am star noch ein tp dann läufts wie das normale nur cleart es schöner :)
hoffe euch gefällts ich habs noch nicht wirklich getestet (2-3 runs) bugs können gerne hier gepostet werden verbesserungs vorschläge auch :D
installation:
1.)Script in den Bot ordner kopieren
2.)Script im editor oder vergleichbaren öffnen
3.) Msg´s anpassen (ist nicht schwer)
4.) in der char config die zeile...
Muddy's D2NT Help 07/29/2010 - Diablo 2 - 3 Replies hi i just started to use the bot it work's great.
how do i set up the skill's i use on my Sorc and pick up itme's?
.....
if you reply to this post please use english