[D2NT] Hot-IP Script

04/09/2010 20:14 dsbghost#1
Guten Abend!

Hier mal ein ganz nützliches Script, um nicht "trocken" nach Hot-IP's zu suchen, sondern dies während der normalen Botsequenzen zu tun.
Das D2NT-eigene Feature stoppt das Script soweit ich weiss nur bei der Meldung "Diablo wandelt auf der Erde".

1.) Neues Script erstellen
Als erstes erstellt Ihr eine neue Script-Datei mit dem Namen "NTCloneHunter.ntj" im Ordner "scripts/NTBot/bots/". Der Name des Scripts kann natürlich jeder Beliebige sein. Das Script sieht folgendermaßen aus:

Code:
function NTMain()
{
    Include("libs/common/NTCommon.ntl");
    NTC_IncludeLibs();
    NTC_IncludeConfig("NTBot/char_configs");

    NT_LoadConfig();
    NTSI_LoadNIPFiles("NTBot/item_configs");

    NTA_Initialize();

    if(!NTTM_CheckAct())
    {
        NTC_SendMsgToScript("NTBotGame.ntj", "NTTM_CheckAct()");
        return;F
    }
    
    var _hotips = [ "0", "0", "0" ]; // Hier beliebige Hot-IP's eintragen. Wenn nicht gesucht werden soll, einfach 0 eintragen.
    var _idletime = 3600000; // Wartezeit im Game bei Hot-IP Fund (in ms), bevor der Bot weiterläuft ( 3600000 ms = 1 Stunde )
    var _serverip = me.gameserverip.split(".")[3];
    var _hot = 0;
    
    for( var i = 0; i < (_hotips.length-1); i++ ) {
        if( _hotips[i] == _serverip ) {
            _hot = _serverip;
        }
    }
    if( _hot != 0 ) {
        Print( "ÿc3 >>> ÿc2HOT-IP gefunden! (ÿc8IP: " + _hot + "ÿc2)!  ÿc9Warte " + ( _idletime / 1000 ) + " Sekunden ..." );
        NTC_SendLogToOOG(NTC_LOG_COMMON, "ÿc3 >>> ÿc2HOT-IP gefunden! (ÿc8IP: " + _hot + "ÿc2)!  Game:  ÿc3" + me.gamename + "//" + me.gamepassword );
        NTC_Delay( _idletime );
    } else {
        Print( "ÿc9Keine Hot-IP gefunden." );
    }

    NTC_SendMsgToScript("NTBotGame.ntj", "SCRIPT_END");
}
2.) Script als Bot-Sequenz beim Charakter einstellen
In eure Char-Config ("NTConfig_DeineKlasse_DeinName.ntl"), wo man festlegt, welche Bosse der Bot machen soll, fügt Ihr einfach das Script hinzu:

Code:
NTConfig_Script.push("NTCloneHunter.ntj");
3.) Ablauf des Scriptes
  • Der Bot loggt sich in ein Spiel ein, wie sonst auch
  • Das Script überprüft jetzt, ob das aktuelle Spiel auf einem Server mit einer Hot-IP gehostet ist (Die Hot-IP's müssen im Script eingetragen werden)
  • Ist die IP nun eine der vorher eingetragenen, pausiert der Bot für die im Script angegebene Wartezeit und macht danach normal weiter
  • gehört die IP nicht zu den Hot-IP's, wird einfach direkt normal weitergemacht

4.) Wo bekommt man die Hot-IP's her?
Die findet man auf einigen Webseiten von Hunter-Communities oder im DClone IRC Channel. Da gibt es hier aber sicher auch Guides für. ;)

Damit habt Ihr einen eingebauten Hot-IP-Checker, und das während dem ganz normalen Botten wie sonst auch. Die Wartezeit solltet Ihr euch anpassen, da dieses Script keinen Idle-Bug durchführt (kommt vielleicht noch).

Viel Spaß beim Hunten! :)

/Edit: Damit das Script Sinn macht, sollte man die maxgametime in der Char-config auf "0" stellen, da der Bot sonst selbst bei einer Hot-IP das Spiel vorzeitig verlässt.
04/09/2010 21:47 morpheuschen666#2
mal ne Frage stimmt des mit den ganzen "YÜÜ" in dem script?
04/12/2010 03:51 playme#3
wie bekomm ich hin, dass das script bei erfolgreicher suche den gamename +pw an meine f list schickt ?

der einfachheit halber wuerd auch nur ne nachricht an die f list reichen.
gn + pass kann ja fest sein.

habs einfach mit nem say probiert, aber das muss laut fehlermeldung vorher noch definiert werden.

habs leider nich so mit dem programmieren deswegen kenn ich mich da nich so aus.
04/12/2010 11:36 dsbghost#4
Dazu kannst du das hier mal versuchen (Say muss großgeschrieben sein):

Code:
Say("/f m HOT-IP gefunden im Game " + me.gamename + "//" + me.gamepassword );
Ansonsten den Bot mal in den PublicMode stellen.
04/12/2010 12:21 playme#5
Danke ja genau so.

...naja bis auf den kleinen Schönheitsfehler das man lieber "/f m" ansatt "/f l" nutzen sollte um ne msg loszuwerden

Bei mir lag es übrigens daran das ich das "Say" klein hatte.

Danke.
04/12/2010 12:22 fK_#6
wie ich sehe wird aber me.maxgametime nicht beachet, und könnte bei dem script ein strich durch die rechung machen.
würd me.maxgametime = 0; einen effekt zeigen? ich bezweifle einfach mal, und denke das sie schon zu beginn des botstarts gesetzt werden müsste.
also wohl nur gültig, wenn keine max spiellänge gegeben (?)
04/12/2010 22:32 dsbghost#7
Quote:
Originally Posted by playme View Post
...naja bis auf den kleinen Schönheitsfehler das man lieber "/f m" ansatt "/f l" nutzen sollte um ne msg loszuwerden
Edit: Du hast Recht, ich habs geändert.

Quote:
Originally Posted by fK_ View Post
...nur gültig, wenn keine max spiellänge gegeben (?)
Ja das ganze klappt nur wenn man als maxgametime in der Char-config "0" angegeben hat. Editier ich oben mal. Danke für den Hinweis.
04/16/2010 23:37 armine89#8
wo muss ich den
Code:

NTConfig_Script.push("NTCloneHunter.ntj");

einfügen is das egal bei meinem char oder an eine bestimmte stelle
04/17/2010 20:14 dsbghost#9
Das kommt dahin wo du auch die ganzen anderen Bosse stehen hast, die der Bot machen soll. In die Gegend der Config-Datei, wo genau (also ob vor Andariel oder danach) ist eigentlich egal. Ich schreibs der Übersicht wegen einfach als erstes von den Bossen ;)
04/18/2010 15:19 testforfun#10
bei mir steht er selbst bei einer ip die nicht hot is blöd rum^^
04/18/2010 19:11 dsbghost#11
Okay das ist seltsam. Ein paar Dinge:
1.) Hast du Hotips eingegeben oder alle auf "0" gelassen?
2.) Hast du D2NT 3.0 oder 3.1? (Kann sein dass es da Unterschiede gibt; getestet wurde das Script mit 3.0)
3.) Was kommt denn für eine Meldung? Sagt er dass er eine HotIP gefundet hat und bleibt dann stehen, oder kommt die Meldung "Keine Hot-IP gefunden" ?
04/18/2010 21:23 testforfun#12
also hab 34 eingegeben 3.0 hab ich
05/04/2010 23:17 thorthor#13
Reicht das nicht, wenn man in dem script bei gefundener IP "me.maxgametime = _idletime;" setzt? Dann müsste der doch so lange im Spiel warten.
05/05/2010 12:06 vogel1#14
Kann mir einer sagen was bei mir der Fehler ist?
Hab alles os gemacht wie beschrieben in der Anleitung. Die Ip ins Script geschrieben und den Botgestartet.
Aber er startet das Script und bleibt dann einfach stehen ohne Runs zu machen oder das Game zu wechseln, obwohl es nicht die richtige Ip ist.
Achso hab 1.1 Bluebird.
05/05/2010 15:34 2Paddy#15
hab auch 1.1 blue, und bleibt nur stehen auch bei nicht hot´en ips habs eingestellt bzw getestet mit verschiedenen ips irgent was stimmt da nicht