|
You last visited: Today at 06:28
Advertisement
[D2NT] Public Botten for Dummies
Discussion on [D2NT] Public Botten for Dummies within the Diablo 2 forum part of the Other Online Games category.
04/12/2011, 22:24
|
#1471
|
elite*gold: 139
Join Date: Oct 2006
Posts: 12,058
Received Thanks: 24,258
|
Quote:
Originally Posted by L4V3y
mein neuster leechfighter sagt nur "initializin game" und dann "exiting game" oben in der zeile nachdem er gejoined ist und wartet dann aufs ng  gibts dafür bekannte auslöser/behebungen? handelt sich um den warcry/bo-barb
|
Der häufigste Auslöser dafür ist, dass der User vergessen hat die // vorm Leechscript zu entfernen, oder den falschen Bottype ausgewählt hat.
@pennywise-1: Liegt wahrscheinlich daran, dass irgendwer die Einladung nicht annimmt.
|
|
|
04/13/2011, 10:23
|
#1472
|
elite*gold: 0
Join Date: Sep 2009
Posts: 189
Received Thanks: 12
|
Erst mal haste ganz toll gemacht lanara!
Ein paar Fragen:
Im Channel macht der Leecher desöfteren /f list abruf (wenn ich die var lengt erhöhe, macht er es umso häufiger. Problem ist nur wenn man zu oft die /f list abruft kann man auch nen bann bekommen)
Also kann ich das so einstellen das er das nur alle 20 sek macht? würd mir ja garnichts ausmachen wenn der leecher etwas später game joint.
2.
Der leecher, ohne eni läuft immer total sinnlos im cs ruhm, liegt das dann an der pickit?
Im baalrun würd ich den leecher gerne wo anders hinstellen ist das möglich?
3.
Wenn ich Dia+Baal run einstelle
dann cleant er zwar cs aber killt nicht diablo weil er da nen "fail" bekommt. Kann ich also einstellen das er 5-10 sek wartet bevor der ausm cs raus geht um zu baal zu gehen?
4.
Nach der letzten Welle im Baalrun, bleibt er entweder vor dem Portal zu Baal stehen,
oder wenn er mal durch gehen sollte bleibt er direkt danach im Welt Stein Turm beim Portal ausgang.
Und ganz Allgemein:
Wenn ich die var lenght wären des runnens veränder übernimmt er das nicht oder? weil er zeigt immer noch "ng in 10seks" an anstatt wie ich wollte in 20 oder 30 sek.
Vielen dank an dich!
edit:
Also ist eigentlich mein Problem nur, die ZEIT er soll einfach etwas länger warten.. 7.5~ sek reichen evtl schon.
|
|
|
04/13/2011, 10:52
|
#1473
|
elite*gold: 139
Join Date: Oct 2006
Posts: 12,058
Received Thanks: 24,258
|
Quote:
Originally Posted by sie-leben!
Im Channel macht der Leecher desöfteren /f list abruf (wenn ich die var lengt erhöhe, macht er es umso häufiger. Problem ist nur wenn man zu oft die /f list abruft kann man auch nen bann bekommen)
Also kann ich das so einstellen das er das nur alle 20 sek macht? würd mir ja garnichts ausmachen wenn der leecher etwas später game joint.
|
Die markierte Zeile in der NTBot.ntj einfügen:
Code:
DebugInOOG('Locating the leader : '+leaderAccountName);
[COLOR="Red"]Delay(6000);[/COLOR]
Say('/f l');
Quote:
Originally Posted by sie-leben!
2.
Der leecher, ohne eni läuft immer total sinnlos im cs ruhm, liegt das dann an der pickit?
Im baalrun würd ich den leecher gerne wo anders hinstellen ist das möglich?
|
Nein das liegt daran, dass er keine Eni hat. Um den Leecher bei Baal umzustellen einfach die Koordinaten in der NTBaalLeech.ntj ändern (kann man IG mit Pos1 nachschaun):
Code:
NTM_MoveTo(me.areaid, [COLOR="Red"]15118[/COLOR], [COLOR="Red"]5002[/COLOR]);
Quote:
Originally Posted by sie-leben!
3.
Wenn ich Dia+Baal run einstelle
dann cleant er zwar cs aber killt nicht diablo weil er da nen "fail" bekommt. Kann ich also einstellen das er 5-10 sek wartet bevor der ausm cs raus geht um zu baal zu gehen?
|
Kannst ein Delay davor einfügen, damit er wartet.
Quote:
Originally Posted by sie-leben!
4.
Nach der letzten Welle im Baalrun, bleibt er entweder vor dem Portal zu Baal stehen,
oder wenn er mal durch gehen sollte bleibt er direkt danach im Welt Stein Turm beim Portal ausgang.
|
Wenn er davor stehen bleibt liegt das daran, dass er keine Enigma hat, dann schafft er es ab und zu nicht reinzugehen. Dass er dann drin stehen bleibt ist normal, warum sollte er denn zu Baal laufen?
Quote:
Originally Posted by sie-leben!
Und ganz Allgemein:
Wenn ich die var lenght wären des runnens veränder übernimmt er das nicht oder? weil er zeigt immer noch "ng in 10seks" an anstatt wie ich wollte in 20 oder 30 sek.
|
Von welcher " var length" sprichst du?
|
|
|
04/13/2011, 11:57
|
#1474
|
elite*gold: 0
Join Date: Sep 2009
Posts: 189
Received Thanks: 12
|
So richtig?
PHP Code:
DebugInOOG('Locating the leader : '+leaderAccountName); Delay(6000); Say('/f l'); Delay(1500);
Quote:
Originally Posted by lanara
Nein das liegt daran, dass er keine Eni hat. Um den Leecher bei Baal umzustellen einfach die Koordinaten in der NTBaalLeech.ntj ändern (kann man IG mit Pos1 nachschaun):
|
Du meinst in die "NTBaalLeechFight.ntj" (er soll ja mit Fighten  )
IG mit Pos1 ? was war das noch  ?
...naja ich kann ja einfach mal die zahlen aus dem leecher script probieren.
Quote:
Originally Posted by lanara
Kannst ein Delay davor einfügen, damit er wartet.
|
... Ich probiers ^^
Quote:
Originally Posted by lanara
Wenn er davor stehen bleibt liegt das daran, dass er keine Enigma hat, dann schafft er es ab und zu nicht reinzugehen. Dass er dann drin stehen bleibt ist normal, warum sollte er denn zu Baal laufen?
|
naja baal drop grabben..
Quote:
Originally Posted by lanara
Von welcher "var length" sprichst du?
|
Diese: "var gameMinLength" also bevor er den nächsten run auf macht.
Ist es möglich, den leecher im diarun nur leechen zu lassen also "3" und im baalrun leechen+fight also "2" ?
Ich weiß letzten endes sollte er Eni nutzen...
Wo war noch der Thread mit "Dummgelaufenen sachen?" da poste ich mal...
edit:
Achso, und ich würde gerne ausstellen das er bei der dritten Welle (baalrun) rechts in die Ecke Teleportiert. Find ich nehmlich nicht so gut für die Leecher. (also in open runs)
NTConfig_FreeSpace = 4; // Sind weniger als X Spalten frei, werden die Items gestasht.
Also irgendwie funktioniert das nicht ganz...
Hab auch schon mit "= 20" ausprobiert, sobald der eine Sache aufhebt macht er tp town, oder liegt das daran wenn er ein Siegel abeschlossen hat(cs) das er dann automatisch alles identet was er gedropt bekommen hat?
Ich würde gerne warten bis nur noch 8 slots frei sind (also z.b 1 x stangenwaffe frei) und erst dann town gehen zum identen..
Oh noch etwas:
Wie kann ich einstellen, dass er nach 10 Runs so 2-3 Min im Channel wartet?
Oder hast du eine andere Idee, wenn er nur Dia oder Baal run macht mit einem Key.
Das mit "gameMinLength =" erhöhen bringt mir da nichts hatte die letzten tage damit sehr probleme.
Wäre also bei mir jedenfalls von Vorteil, wenn man nach 10 Runs kurze Pause macht und das am besten im letzten game und noch mal im channel dann erwähnt, mit z.B. "I make a breake for 5 minutes" oder sowas...
danke dir
Noch ne' Frage:
Die Leute die diesen Bot als Public benutzt haben wurden davon welche Gebannt? also das einer der Joiner in game blizz ne mail geschickt hat, "Hey der bottet, überprüft den mal..."
Gabs da schon was?
|
|
|
04/13/2011, 13:19
|
#1475
|
elite*gold: 0
Join Date: May 2008
Posts: 788
Received Thanks: 58
|
Wie kann ichs einstellen das ein Char verzögert connectet ?
|
|
|
04/13/2011, 13:37
|
#1476
|
elite*gold: 0
Join Date: Sep 2009
Posts: 189
Received Thanks: 12
|
Also für leecher:
Im Ordner Script in der Datei NTbottleech
"Wenn ihr nur mit einem Key botted, dann solltet ihr außerdem im Ordner \scripts die Datei NTBot.ntj öffnen und den Wert von "gameMinLength" auf mindestens 180000 erhöhen, damit es keinen Realmdown gibt, wenn der Bot mal chicked oder Joinbug hat. Alle weiteren Einstellungen in dieser Datei werden unter "1.4 - Channel Announcements" erklärt."
|
|
|
04/13/2011, 13:58
|
#1477
|
elite*gold: 0
Join Date: Jan 2009
Posts: 7,310
Received Thanks: 2,205
|
Quote:
Originally Posted by BlackManta
Wie kann ichs einstellen das ein Char verzögert connectet ? 
|
siehe oben den post von lanara
da war die gleiche frage..
|
|
|
04/13/2011, 14:08
|
#1478
|
elite*gold: 139
Join Date: Oct 2006
Posts: 12,058
Received Thanks: 24,258
|
Quote:
Originally Posted by sie-leben!
Wall of Text
So richtig?
PHP Code:
DebugInOOG('Locating the leader : '+leaderAccountName);
Delay(6000);
Say('/f l');
Delay(1500);
Du meinst in die "NTBaalLeechFight.ntj" (er soll ja mit Fighten  )
IG mit Pos1 ? was war das noch  ?
...naja ich kann ja einfach mal die zahlen aus dem leecher script probieren.
... Ich probiers ^^
naja baal drop grabben..
Diese: "var gameMinLength" also bevor er den nächsten run auf macht.
Ist es möglich, den leecher im diarun nur leechen zu lassen also "3" und im baalrun leechen+fight also "2" ?
Ich weiß letzten endes sollte er Eni nutzen...
Wo war noch der Thread mit "Dummgelaufenen sachen?" da poste ich mal...
edit:
Achso, und ich würde gerne ausstellen das er bei der dritten Welle (baalrun) rechts in die Ecke Teleportiert. Find ich nehmlich nicht so gut für die Leecher. (also in open runs)
NTConfig_FreeSpace = 4; // Sind weniger als X Spalten frei, werden die Items gestasht.
Also irgendwie funktioniert das nicht ganz...
Hab auch schon mit "= 20" ausprobiert, sobald der eine Sache aufhebt macht er tp town, oder liegt das daran wenn er ein Siegel abeschlossen hat(cs) das er dann automatisch alles identet was er gedropt bekommen hat?
Ich würde gerne warten bis nur noch 8 slots frei sind (also z.b 1 x stangenwaffe frei) und erst dann town gehen zum identen..
Hm noch etwas:
Der leecher folgt dem leader anscheinend in jedes tp, auch ins schenk tp nachdem er da fertig ist(leader), daraufhin steht er da nur noch rum(leecher) versucht halt was zu killen (bei schenk).
danke dir
Noch ne' Frage:
Die Leute die diesen Bot als Public benutzt haben wurden davon welche Gebannt? also das einer der Joiner in game blizz ne mail geschickt hat, "Hey der bottet, überprüft den mal..."
Gabs da schon was?
|
1. Ja, richtig.
2. Mal auf die Tastatur schaun, Zwischen PageUp und Einfg, über Ende.
3. Ich blick bei dir nichtmehr ganz durch, ob du jetzt Leecher oder Leechfighter bist.
4. gameMinLength gibt nicht an, wie lang er im Channel warten soll, außer das Spiel war kürzer als die gameMinLength vorgibt.
5. Ja, aber dann muss der Dia Leader auch die Leech Funktion aktiviert haben.
6. " NT_CheckHydraInt();" in der NTBaal.ntj auskommentieren.
7. Sind weniger als X Spalten frei, werden die Items gestasht. Wenn du das auf 20 stellst ist es klar, dass er immer stashen rennt, sobald er etwas aufhebt.
8. Dann stell halt eine Message ein, bei der er das TP joinen soll.
9. Bans kann es immer geben, gerade beim Public botten.
10. Poste deine Fragen entweder einzeln, oder nummeriere sie, so macht das wenig Spaß auf deinen Post zu antworten.
|
|
|
04/13/2011, 14:15
|
#1479
|
elite*gold: 0
Join Date: May 2008
Posts: 788
Received Thanks: 58
|
Quote:
Originally Posted by kal_el
siehe oben den post von lanara
da war die gleiche frage..
|
Wo denn ? <,<
Finde da nichts
|
|
|
04/13/2011, 14:44
|
#1480
|
elite*gold: 0
Join Date: Feb 2011
Posts: 5
Received Thanks: 0
|
es kommt mittlerweile sehr oft ...
diablo 2 hat ein problem fesgestellt und muss beendet werden
dan bleibt d2 stehen und ich muss per hand die fehlermeldung schliessen und dan läuft d2 wieder weiter bis die meldung wieder kommt -.-
|
|
|
04/13/2011, 15:01
|
#1481
|
elite*gold: 139
Join Date: Oct 2006
Posts: 12,058
Received Thanks: 24,258
|
Quote:
Originally Posted by pennywise-1
es kommt mittlerweile sehr oft ...
diablo 2 hat ein problem fesgestellt und muss beendet werden
dan bleibt d2 stehen und ich muss per hand die fehlermeldung schliessen und dan läuft d2 wieder weiter bis die meldung wieder kommt -.-
|
Versuchs mal mit dieser NTBot.ntj:
Code:
var channelUsers = new Array();
//###################################################################
//###########################Einstellungen###########################
//###################################################################
// Wenn ihr nur einen Key benutzt, dann diesen Wert mindestens auf 180000 setzen, damit ihr keine realmdowns bekommt
var gameMinLength = 10000;
var joinChatAfterLogin = false; // true = Bot geht in den Chat, um .login/Announces zu machen
var joinChannelInChat = "OP MyBaal"; // Wenn der Bot in keinen bestimmten Channel soll, dann nichts eintragen
var channelLogin = true; // true = Bot schreibt .login nachdem er eingeloggt ist
channelUsers.push("Account Name"); // Hier deinen Account Name eintragen
channelUsers.push("Char Name"); // Hier deinen Char Name eintragen
// %game --> "gamename-"
// %counter --> number of the next game
// %time --> time in seconds till game creation
// %password --> game password
var gameAnnouncement = "Next Game: %game%counter in %time seconds."; // Wenn keine NG message im Chat geposted werden soll, dann nichts eintragen
//----------------------------------------------------------------------------------------------------------------------------------------------------------
//###################################################################
//##############################Delays###############################
//###################################################################
// realm delays (minutes)
var unableToConnectRetry = 2;
var realmDownRetry = 60;
var disconnectedRetry = 2;
var cdkeyInUseRetry = 2;
// interface delays (milliseconds)
var connectingToBnetTimeout = 20000;
var characterScreenTimeout = 10000;
var pleaseWaitTimeout = 10000;
var createGameThreshold = 10000;
var createGameThresholdRandom = 2500;
var createGameTimeout = 15000;
var waitInLineTimeout = 60000;
var characterSelectDelay = 1000;
var loginDelay = 1000;
var clickDelay = 1000;
var textDelay = 1000;
var clickDelayRandom = 500;
var textDelayRandom = 500;
var gameDoesNotExistDelayMin = 600000;
var gameDoesNotExistDelayMax = 900000;
var gameDoesNotExistTimeout = 30000;
var gameAnnouncementDelay = 5000;
var gameAnnouncementDelayRandom = 500;
var waitBeforeEnterChatMin = 1000;
var waitBeforeEnterChatMax = 2000;
var waitInChatBeforeActionsMin = 2000;
var waitInChatBeforeActionsMax = 3000;
//###################################################################
//###################################################################
//###############DO NOT CHANGE 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 chatActionsDone = false;
var lastGameFailed = false;
var joinedChannel = false;
var justJoined = true;
var joinRandomChannel = false;
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(Load("NTBot/NTBotGame.ntj"))
{
_ingame = true;
if(me.playtype > 0)
sendEventToOOG(D2NT_MGR_INGAME, "In Game [IP:" + me.gameserverip.split(".")[3] + "]", 0);
else
sendEventToOOG(D2NT_MGR_INGAME, "In Game", 0);
lastGameStatus = 2; // in game successful
}
}
Delay(1000);
}
else
{
if(_ingame)
{
_ingame = false;
sendEventToOOG(D2NT_MGR_READY, "", 0);
}
locationAction(controlData.getLocation());
Delay(500);
}
}
}
function locationAction(location)
{
switch(location.id)
{
case 3: // Lobby Chat
if(justJoined)
{
justJoined = false;
if(isChannelUser(me.account, me.charname))
{
for(var i = 0; i < 3; i++)
{
SetStatusText("ÿc2Chat actions enabled!");
Delay(150);
SetStatusText("");
Delay(150);
}
}
else
{
for(var i = 0; i < 3; i++)
{
SetStatusText("ÿc1Chat actions disabled!");
Delay(150);
SetStatusText("");
Delay(150);
}
}
}
if(!chatActionsDone && isChannelUser(me.account, me.charname))
{
chatActionsDone = true;
Delay(Random(waitInChatBeforeActionsMin, waitInChatBeforeActionsMax));
if(!joinedChannel && (joinRandomChannel || joinChannelInChat != ""))
{
var rndChannel = getRandomString(Random(3,10));
SetStatusText("ÿc8Joining Channel " + (joinRandomChannel ? rndChannel : joinChannelInChat) );
Delay(1000);
Say("/join " + (joinRandomChannel ? rndChannel : joinChannelInChat));
joinedChannel = true;
Delay(1000);
if(channelLogin)
{
SetStatusText("ÿc8Channel Login...");
Say(".login");
Delay(1000);
}
}
}
case 1: // Lobby
if(location.id == 1 && joinChatAfterLogin)
{
Delay(Random(waitBeforeEnterChatMin, waitBeforeEnterChatMax));
controlData.click(controlData.controls.lobby.button.enterChat);
break;
}
if(GetTickCount() > nextGameMake)
{
var _control;
lastGameFailed = false;
switch(lastGameStatus)
{
case 0:
_control = controlData.get(controlData.controls.lobby.button.create);
if(_control && _control.pressed)
{
controlData.click(controlData.controls.lobby.button.join);
Delay(500);
}
controlData.click(controlData.controls.lobby.button.create);
nextGameMake = GetTickCount() + createGameTimeout; // set our timeout
sendEventToOOG(D2NT_MGR_PRINT_STATUS, location.name, 0);
break;
case 1: // game failed, rollover to reset timer
inGameAt = GetTickCount();
lastGameFailed = true;
Delay(5000);
case 2:
outputGameLength();
lastGameStatus = 0;
setNextGameMake();
if(lastGameFailed)
{
SetStatusText("ÿc1Failed to join!");
sendEventToOOG(D2NT_MGR_PRINT_LOG, "ÿE00000Game " + ((getGameCounter(me.gamename, true)) ? ("(" + getGameCounter(me.gamename, true) + ")") : "") + " creation failed!", 0)
Delay(2500);
}
sendEventToOOG(D2NT_MGR_PRINT_STATUS, location.name, 0);
break;
}
}
else
{
if(joinChannelInChat && gameAnnouncement && me.gamename && isChannelUser(me.account, me.charname))
{
var tempDelay = (gameAnnouncementDelay > 5000) ? gameAnnouncementDelay : 5000 +
(gameAnnouncementDelayRandom > 500) ? Random(0, gameAnnouncementDelayRandom) : 500;
var gameText = gameAnnouncement;
gameText = gameText.replace("%password", me.gamepassword);
gameText = gameText.replace("%game", getGameName(me.gamename));
gameText = gameText.replace("%counter", getGameCounter(me.gamename, false));
gameText = gameText.replace("%time", parseInt((nextGameMake - GetTickCount() - tempDelay)/1000+3.0));
if(parseInt((nextGameMake - GetTickCount() - tempDelay)/1000+3.0) > 5)
{
Delay(tempDelay);
Say(gameText);
}
}
timeoutDelay(nextGameMake-GetTickCount(), location, true);
}
break;
case 2: // Waiting In Line
if(GetTickCount()-lastGameMade > waitInLineTimeout)
controlData.click(controlData.controls.lobby.inLine.button.cancel);
break;
case 4: // Create Game
if(!controlData.get(controlData.controls.lobby.create.editBox.gameName))
{
controlData.click(controlData.controls.lobby.button.join);
Delay (500);
controlData.click(controlData.controls.lobby.button.create);
Delay (500);
}
sendEventToOOG(D2NT_MGR_CREATE_GAME, location.name, 0);
locationTimeout(5000, location);
lastGameMade = GetTickCount();
lastGameStatus = 1; // pending creation
break;
case 5: // Join Game
break;
case 6: // Ladder
break;
case 7: // Channel List
break;
case 8: // Main Menu
if(controlData.getCurrentRealmIndex() == me.gatewayid)
{
outputGameLength();
controlData.click(controlData.gameTypes[me.playtype]);
}
else
controlData.click(controlData.controls.mainMenu.button.gateway);
break;
case 9: // Login
sendEventToOOG(D2NT_MGR_PRINT_STATUS, location.name, 0);
Delay(loginDelay);
controlData.setText(controlData.controls.login.editBox.accountName, me.account);
sendEventToOOG(D2NT_MGR_LOGIN, location.name, 0);
locationTimeout(5000, location);
break;
case 10: // Login Error (this is a fatal error, so stop)
sendEventToOOG(D2NT_MGR_RESTART, location.name, 10);
Delay(3500);
break;
case 11: // Unable To Connect
timeoutDelay(unableToConnectRetry*60*1000, location)
controlData.click(controlData.controls.login.unableToConnect.button.ok);
break;
case 12: // Character Select
var _time, _control;
sendEventToOOG(D2NT_MGR_PRINT_STATUS, location.name, 0);
for(_time = 0 ; _time < characterScreenTimeout ; _time += 500)
{
_control = controlData.get(controlData.controls.characterSelect.textBox.characterInfo[me.charloc]);
if(_control && _control.GetText() != undefined)
break;
Delay(500);
}
if(_time < characterScreenTimeout)
{
Delay(characterSelectDelay);
controlData.click(controlData.controls.characterSelect.textBox.characters[me.charloc], 0, 0, 1);
controlData.click(controlData.controls.characterSelect.textBox.characterInfo[me.charloc], 0, 0, 1);
// reset last game made, so it doesnt make a game immediately
inGameAt = 0;
setNextGameMake();
}
else
{
controlData.click(controlData.controls.characterSelect.button.exit);
timeoutDelay(realmDownRetry*60*1000, location);
}
break;
case 13: // Realm Down - Character Select screen
controlData.click(controlData.controls.characterSelect.button.exit);
timeoutDelay(realmDownRetry*60*1000, location);
break;
case 14: // Character Select - Disconnected
timeoutDelay(disconnectedRetry*60*1000, location);
controlData.click(controlData.controls.characterSelect.disconnected.button.ok);
break;
case 15: // New Character
break;
case 16: // Character Select - Please Wait popup
if(!locationTimeout(pleaseWaitTimeout, location))
controlData.click(controlData.controls.characterSelect.pleaseWait.button.cancel);
break;
case 17: // Lobby - Lost Connection - just click okay, since we're toast anyway
controlData.click(controlData.controls.lobby.lostConnection.button.ok);
break;
case 18: // D2 Splash
controlData.click(controlData.controls.d2Splash.textBox.copyright);
break;
case 19: // Login - Cdkey In Use
timeoutDelay(cdkeyInUseRetry*60*1000, location);
controlData.click(controlData.controls.login.cdkeyInUse.button.ok);
break;
case 20: // Single Player - Select Difficulty
controlData.click(controlData.singlePlayerDifficulties[me.diff]);
break;
case 21: // Main Menu - Connecting
if(!locationTimeout(connectingToBnetTimeout, location))
controlData.click(controlData.controls.mainMenu.connecting.button.cancel);
break;
case 22: // Login - Invalid Cdkey (classic or xpac)
sendEventToOOG(D2NT_MGR_RESTART, location.name, 3600);
Delay(3500);
break;
case 23: // Character Select - Connecting
if(!locationTimeout(characterScreenTimeout, location))
controlData.click(controlData.controls.characterSelect.button.exit);
break;
case 24: // Server Down - not much to do but wait..
break;
case 25: // Lobby - Please Wait
if(!locationTimeout(pleaseWaitTimeout, location))
controlData.click(controlData.controls.lobby.pleaseWait.button.cancel);
if(!locationTimeout(pleaseWaitTimeout, location))
sendEventToOOG(D2NT_MGR_RESTART, location.name, 60);
break;
case 26: // Lobby - Game Name Exists
sendEventToOOG(D2NT_MGR_PRINT_LOG, "ÿE00000Game already exists", 0);
SetStatusText("ÿc1Game akready exists!");
inGameAt = 0;
lastGameStatus = 0;
setNextGameMake();
locationTimeout(15000, location);
break;
case 27: // Gateway Select
controlData.clickRealmEntry(me.gatewayid);
controlData.click(controlData.controls.gateway.button.ok);
break;
case 28: // Lobby - Game Does Not Exist
inGameAt = Random(gameDoesNotExistDelayMin, gameDoesNotExistDelayMax);
lastGameStatus = 0;
setNextGameMake();
locationTimeout(gameDoesNotExistTimeout, location);
break;
}
}
function sendEventToOOG(locationId, statusString, pendingTime)
{
return SendCopyData("D2NT Manager", null, (locationId<<16)|pendingTime, statusString);
}
function setNextGameMake()
{
lastGameMade = GetTickCount();
nextGameMake = lastGameMade + createGameThreshold + Random(0-createGameThresholdRandom, createGameThresholdRandom) + inGameAt;
inGameAt = 0;
chatActionsDone = false;
}
function outputGameLength()
{
if(inGameAt)
{
duration = GetTickCount() - inGameAt;
inGameAt = (duration < gameMinLength ? gameMinLength - duration : 0);
}
}
function locationTimeout(time, location)
{
endtime = GetTickCount() + time;
while(controlData.getLocation().id == location.id && endtime > GetTickCount())
{
sendEventToOOG(D2NT_MGR_PRINT_STATUS, location.name + " (" + parseInt((endtime-GetTickCount())/1000) + "s)", 0);
Delay(500);
}
return (controlData.getLocation().id != location.id);
}
function timeoutDelay(time, location, showNextGameStatus)
{
if(arguments.length < 3)
showNextGameStatus = false;
endtime = GetTickCount() + time;
while(endtime > GetTickCount())
{
sendEventToOOG(D2NT_MGR_PRINT_STATUS, location.name + " (" + parseInt((endtime-GetTickCount())/1000) + "s)", 0);
if(showNextGameStatus)
{
if(lastGameFailed && parseInt((endtime-GetTickCount())/1000) > 30)
{
if(parseInt((endtime-GetTickCount())/1000) % 30 == 0)
{
SetStatusText("ÿc1Last game failed!");
Delay(5000);
}
if(me.gamename && getGameCounter(me.gamename, false))
SetStatusText("ÿc8Next game: " + getGameName(me.gamename) + getGameCounter(me.gamename, false) + " (" + parseInt((endtime-GetTickCount())/1000) + "s)");
else
SetStatusText("ÿc8Game creation pending... (" + parseInt((endtime-GetTickCount())/1000) + "s)");
}
else if(parseInt((endtime-GetTickCount())/1000) >= 0)
{
if(me.gamename && getGameCounter(me.gamename, false))
SetStatusText("ÿc8Next game: " + getGameName(me.gamename) + getGameCounter(me.gamename, false) + " (" + parseInt((endtime-GetTickCount())/1000) + "s)");
else
SetStatusText("ÿc8Game creation pending... (" + parseInt((endtime-GetTickCount())/1000) + "s)");
}
if(me.ingame)
endtime = GetTickCount();
}
Delay(1000);
}
if(showNextGameStatus)
SetStatusText("ÿc8Creating game...");
}
function getRandomString(_length)
{
_retString = "";
_charSet = "0123456789abcdefghijklmnopqrstuvwxyz";
while(_length--)
{
_retString += _charSet.charAt(Random(0, _charSet.length-1));
Delay(1);
}
return _retString;
}
function getGameName(lastGameString)
{
if(!lastGameString)
return "";
else
return (lastGameString.substr(0, lastGameString.lastIndexOf('-')+1));
}
function getGameCounter(lastGameString, simple)
{
var myCount, countString;
if(!lastGameString)
return "-1";
else
{
countString = lastGameString.slice(lastGameString.lastIndexOf('-')+1);
switch(countString)
{
case "08":
myCount = 9;
break;
case "09":
myCount = 10;
break;
default:
myCount = parseInt(countString) + 1;
break;
}
if(!simple)
{
if(myCount <= 9)
return ('0' + myCount);
}
return myCount;
}
}
function isChannelUser(accountname, charname)
{
for(var i = 0; i < channelUsers.length; i++)
{
if(accountname.toLowerCase() == channelUsers[i].toLowerCase() || charname.toLowerCase() == channelUsers[i].toLowerCase())
return true;
}
return false;
}
|
|
|
04/13/2011, 16:59
|
#1482
|
elite*gold: 0
Join Date: Jan 2009
Posts: 7,310
Received Thanks: 2,205
|
Quote:
Originally Posted by BlackManta
Wo denn ? <,<
Finde da nichts
|
Quote:
Die markierte Zeile in der NTBot.ntj einfügen:
Code:
DebugInOOG('Locating the leader : '+leaderAccountName);
Delay(6000);
Say('/f l');
|
.
|
|
|
04/13/2011, 17:19
|
#1483
|
elite*gold: 0
Join Date: Feb 2011
Posts: 5
Received Thanks: 0
|
Die markierte Zeile in der NTBot.ntj einfügen:
Code:
DebugInOOG('Locating the leader : '+leaderAccountName);
Delay(6000);
Say('/f l');
wo den genau einfügen??
|
|
|
04/13/2011, 19:23
|
#1484
|
elite*gold: 0
Join Date: Mar 2010
Posts: 356
Received Thanks: 2
|
ich hab nen poisen necro ... wie stelle ich eind as eher neher zu den gegner telt ... weil er die am bildrand ja auch angreift und soweit reicht die nova nicht
|
|
|
04/14/2011, 14:42
|
#1485
|
elite*gold: 0
Join Date: Feb 2011
Posts: 163
Received Thanks: 14
|
sorry ne dumme Frage, hab den neuen sternenloopers aber finde diesen Teil in der char config nicht
//################################################## #################
//#########################BotType festlegen#########################
//################################################## #################
NTConfig_BotType = 1;
// 1 = Leader
// 2 = Co-Leecher
// 3 = Leecher
|
|
|
 |
|
Similar Threads
|
[D2NT] How to do Public
07/04/2011 - Diablo 2 - 51 Replies
Also da ich gefragt wurde ob ich das nicht machen könnte, habe ich mir gedacht da ich grade nichts zu tuen habe, wieso den eigentlich nicht.
Falls jemand Maphack im Fullwindow spielen will:
http://img824.imageshack.us/img824/1725/66387846. png
Hacken Raus nehmen.
CREADITS TO:
Sternlooper
TheBluebird
Muddy_Waters
|
D2Nt Public Pickit
10/18/2010 - Diablo 2 - 4 Replies
Der Bot ist super aber er pickt einfach sachen viel zu langsame zb small charms. Da sind normale Spieler schneller. Kann man das einstellen das er sachen sofort beim droppen pickt??
|
Classic botten mit D2nt
07/09/2010 - Diablo 2 Programming - 2 Replies
Huhu :) ich möchte classic anfangen und wollte mal fragen ob es tolle d2nt classic scripts gibt, bzw. was ich ändern muss oder ob es auch non enigma scripts gibt für paladin oder so^^
Gibt aufjeden ein THX :)
Und eine Pickit für Classic wäre auch nice^^
Oder gibs andere Classic bots ?
|
Public Baal mit D2NT
04/13/2009 - Diablo 2 - 3 Replies
könnt ihr mir vll sagen was ich machen muss um mit den bot public baals runs zu machen wäre echt cool in dern config auf true stellen ist mir klar aber wie stell ich game name und sowas alles ein und brauch ich dafür nicht wieder eine config datei wäre echt cool wenn ihr mir helfen könntet ;)
|
All times are GMT +1. The time now is 06:29.
|
|