Register for your free account! | Forgot your password?

Go Back   elitepvpers Other Online Games Diablo 2
You last visited: Today at 22:23

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

Advertisement



leach problem d2 etal

Discussion on leach problem d2 etal within the Diablo 2 forum part of the Other Online Games category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Apr 2013
Posts: 2
Received Thanks: 0
Question leach problem d2 etal

Hello !

I have some problems with my leacher

Everything does well except when my leacher wants to join (the problem only occurs sometimes)

When the leacher quit after a good game , it wants to do a /f l thats not the problem but its bussy with typing a /f l and for some reason it wants to join a game while it's doing that

So he wants to join while he's doing a /f l and then says the game does not exist couse he types wrong stuff in the join line , but after 2-8 times trying its finally good

and second

couse he has joining problems , it comes so late its misses the first tp in chaos, and i'm even doing andariel befor he(leader) starts the chaos run

my leader is about 20-40 secs in game before my leacher joins

Can someon e help me please !

tnx already !

Jason
blueberry-kush is offline  
Old   #2

 
elite*gold: 315
The Black Market: 219/2/4
Join Date: Jul 2008
Posts: 3,284
Received Thanks: 1,133
First of all, next time please ask your question in the etal-thread here:

I noticed the same problem so far, but found a way. Download the latest Etal here:


Edit the Leechstarter v2.3.ntj (its placed in D2NT\scripts)

This is my config:
Code:
// credit for this goes to D2od who knows way more than I do 
// revised on 1-2-11 by stairbuilder  Credit for mod goes to Justin.Killen and I was pointed to it by fellgar
// will now join game only when leader sends message from game.  must use NTLeaderStarter2 with this or will not join game
// commented out the /f l line, but can be uncommented if you wich
// added white screen of death fix and also some print txt for testing 2-17-11 stairbuilder
// added stagger leech joining 9-25-11 by stair
// added single /f l try to enter games for switching keys and missing the game join message 9-25-11 by stair
// added a while loop and manager print if a bad cd key is used or bad account or password stair 9-25-11
// added gameDoesNotExistDelay and txt file joining.  Must use updated leader entry point for the txt joining
// not doing all this ^^^ for an ego trip, just so I know what I have added to this one, lmao
// added 3 new config options tryLeaderGame1x, retryLeaderGame, tryLeaderGame1x 12-22-2011
// changed where the game count increase is called to right when bot enters chat instead of waiting for game name.  Saves a second or 2 credit for this goes to stib 1-21-12
// fixed /f l delay to only apply after the first /f l 1-21-12
// added fastJoin option.  read comments next to setting below 1/22/12

// =============================================================================
// Leader Account settings
// =============================================================================
var leaderAccountName = "Account"; 
var leaderName = "Leader";
// =============================================================================

// Leecher game entry delays use to stagger when leechers join game...
// [characterName, delay in milliseconds]...just leave these as they are if you don't want to 
// use them
// =============================================================================
var leecher1 = ["characterName", 100];
var leecher2 = ["characterName", 750];
var leecher3 = ["characterName", 1250];
var leecher4 = ["characterName", 2000];

//==============================================================================
// join options
//==============================================================================
var useFL = true;  				// set true if you wish your leecher to use /f l to join games.  useFL MUST be set to 0 for this to work
var useFLCount = 0;				// this is seperate from the above setting allows you to use /f l to join, but will only spam /f l the set number of times.  set to 0 to disable
var delayFL = 3000;				// milliseconds before the bot will use the /f l command in loby
var reEnterSameGame = false;		// set to false to keep the bot from using /f l to re enter same game also must be set to false if you don't want bot to re enter same game for txt joining
var useTextFileJoin = false;  	// use txt file communication between leader and leecher to join games
var gameDoesNotExistDelay = 10;	// time to idle before trying if leader's game does not exist.  In seconds.
var tryLeaderGame1x = true;		// will only try to enter the game one time.  Good for when leader drops before leecher gets in.
var retryLeaderGame = 0;			// nuber of times you would like to try joining leaders game.  Note tryLeaderGame1x = true bypasses this and the delay below
var retryLeaderGameDelay = 10;	// time in seconds to delay between retrying to enter leaders game
var fastJoin = true;				// this has preconfigured delays for easy switching.  Gets you leecher in game in about 3 seconds.  THIS MAY CAUSE JOIN PROBLEMS FOR SOME USERS!!!!!

// =============================================================================
// Game password (leave blank if none)
// =============================================================================
var gamepassword = "";

// =============================================================================
// UseCDKeyChangeTrick :
// if true, the follow bot will say his gamename/gamepwd (set in the OOG) in chat before each game
//          in order to increment his number of runs (to switch CDKeys after xx runs)
// if false, the follow bot will never change his CDKey
// =============================================================================
var UseCDKeyChangeTrick = true;

// =============================================================================
// Debug : set to true if you are experiencing problems with your JoinBot
// it will log in your OOG the lobby chat actions
// =============================================================================
var Debug = false;

////////////////////////////////////////////////////////////////////////////////
// Lobby chat settings :
////////////////////////////////////////////////////////////////////////////////

// Set to true to join the chat after each game (needed for JoinBot)
var joinChatAfterGame    = true;

// Message said when you first enter the chat
var firstJoinMessage     = "";

// Message said after each game
var chatMessageAfterGame = "";

// if this is true, will join a random channel, otherwise it will use the channel below..
var joinRandomChannel    = false;
// Name of the channel you want to join (leave blank if you want to stay in the default channel)
var joinChannelInChat    = "";


////////////////////////////////////////////////////////////////////////////////
// Delays:
////////////////////////////////////////////////////////////////////////////////

// Minimum game length, waits in the lobby if last game was too short
// I recommend to keep a value > 300000 (milliseconds) to avoid bnet temporary ban
var gameMinLength        = 420000;

// realm delays (minutes)
var unableToConnectRetry       = 20;
var realmDownRetry             = 480;
var disconnectedRetry          = 5;
var cdkeyInUseRetry            = 0;
if(fastJoin) { 
	// interface delays (milliseconds)
	var connectingToBnetTimeout    = 20000;
	var characterScreenTimeout     = 10000;
	var pleaseWaitTimeout          = 10000;
	var createGameThreshold        = 10000;
	var createGameThresholdRandom  = 1000;
	var createGameTimeout          = 15000;
	var waitInLineTimeout          = 15000;
	var characterSelectDelay       = 1000;
	var loginDelay                 = 1000;
	var clickDelay                 = 0;
	var textDelay                  = 0;
	var clickDelayRandom           = 0;
	var textDelayRandom            = 0;
	var gameDoesNotExistDelayMin   = 600000; // this not for leech configuration. Look for gameDoesNotExistDelay above
	var gameDoesNotExistDelayMax   = 900000; // this not for leech configuration. Look for gameDoesNotExistDelay above
	var gameDoesNotExistTimeout    = 30000;
	var waitBeforeEnterChatMin     = 1000;
	var waitBeforeEnterChatMax     = 2000;
	var waitInChatBeforeActionsMin = 2000;
	var waitInChatBeforeActionsMax = 3000;
} else {
	var connectingToBnetTimeout    = 20000;
	var characterScreenTimeout     = 10000;
	var pleaseWaitTimeout          = 10000;
	var createGameThreshold        = 10000;
	var createGameThresholdRandom  = 1000;
	var createGameTimeout          = 15000;
	var waitInLineTimeout          = 15000;
	var characterSelectDelay       = 1000;
	var loginDelay                 = 1000;
	var clickDelay                 = 500;
	var textDelay                  = 500;
	var clickDelayRandom           = 500;
	var textDelayRandom            = 500;
	var gameDoesNotExistDelayMin   = 600000; // this not for leech configuration. Look for gameDoesNotExistDelay above
	var gameDoesNotExistDelayMax   = 900000; // this not for leech configuration. Look for gameDoesNotExistDelay above
	var gameDoesNotExistTimeout    = 30000;
	var waitBeforeEnterChatMin     = 1000;
	var waitBeforeEnterChatMax     = 2000;
	var waitInChatBeforeActionsMin = 2000;
	var waitInChatBeforeActionsMax = 3000;
}


// Only for JoinBot (friend list delay, milliseconds)
var LeaderOfflineDelay         = 30000;
var LeaderInChatDelay          = 10000;
var GameIsFullDelay            = 30000;

////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
// DO NOT 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 chatActionsDone   = false;
var lastGameFailed     = false;
var sayChatMsgAfterGame = false;

Include("libs/controlInfo.ntl");
Include("libs/common/NTColorConverter.ntl");

var controlData = new controlInfo();

var increaseGameCount = true;
var firstTimeFl = true;
var retryLeaderGameCount = 0;
var lastGame = "";
var retryFL = 0;
var game = '';
var _gamename = "";
var _gamepassword = "";
var _leaderOfflineTick = -LeaderOfflineDelay;
var _leaderInChatTick = -LeaderInChatDelay;
var _GameIsFullTick = -GameIsFullDelay;

function NTMain()
{
    Delay(1000);

    var _ingame = false;

    controlData.clickDelay = clickDelay;
    controlData.textDelay = textDelay;
    controlData.clickDelayRandom = clickDelayRandom;
    controlData.textDelayRandom = textDelayRandom;
    while(1)
    {
        if(me.ingame)
        {
            _gamename = me.gamename;
            _gamepassword = me.gamepassword;

            if(!inGameAt)
                inGameAt = GetTickCount();

            if(!_ingame)
            {
                RunGC(); // run garbage collector between each game

                if(Load("NTBot/NTBotGame.ntj"))
                {
                    if(!reEnterSameGame) { NT_File("logs/messagecomands/"+me.charname+"-lastgame.txt", 1, me.gamename); }	// writes current game for comparing to new game to join next time in lobby	
									
					retryFL = 0; // sets the counter back to 0 upon game entry.
					_ingame = true;
					retryLeaderGameCount = 0;
					firstTimeFl = true;
					increaseGameCount = 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)
            {
				My_ExitGame_Check(); // out of korean modded d2nt fixes white screen of death
				_ingame = false;
                sayChatMsgAfterGame = true;

                sendEventToOOG(D2NT_MGR_READY, "", 0);
            }

            locationAction(controlData.getLocation());

            Delay(500);
        }
    }
}

function locationAction(location)
{
    switch(location.id)
    {
    case 3: // Lobby Chat
        sendEventToOOG(D2NT_MGR_PRINT_STATUS, location.name, 0);
		//LogPrintSimple(me.account + "MyAccountTest.txt", me.account + " / " + me.charname) // this is to check for 2nd account login
		if (UseCDKeyChangeTrick && increaseGameCount) {
			sendEventToOOG(D2NT_MGR_CREATE_GAME, location.name, 0);
			increaseGameCount = false;
			Delay(1000);
		}
        if(!chatActionsDone)
        {  
			Delay(Random(waitInChatBeforeActionsMin, waitInChatBeforeActionsMax));

            if(joinRandomChannel || joinChannelInChat != "")
            {
                Say("/join " + (joinRandomChannel ? getRandomString(Random(3,10)) : joinChannelInChat));
                Delay(1000);
            }

            if(firstJoinMessage)
            {
                Say(firstJoinMessage);
                Delay(200);
            }

            chatActionsDone = true;
        }

        if (chatMessageAfterGame && _gamename != "" && sayChatMsgAfterGame == true)
        {
            Say(chatMessageAfterGame);
            sayChatMsgAfterGame = false;
            Delay(200);
        }

        game = '';
		if(useTextFileJoin) {
			NT_RetrievenextGame(); //read message from txt file and set game and gamepassword vars from that 
		} 
		else {
			if(useFL || useFLCount > 0) {
				var _tick = GetTickCount();
				if ((_leaderOfflineTick < 0 || (_leaderOfflineTick + LeaderOfflineDelay) < _tick) // maybe play with this so it skips it for 30 seconds
				 && (_leaderInChatTick < 0 || (_leaderInChatTick + LeaderInChatDelay) < _tick)
				 && (_GameIsFullTick < 0 || (_GameIsFullTick + GameIsFullDelay) < _tick))
				{
					Delay(500);			
					DebugInOOG('Locating the leader : '+leaderAccountName);
					if(useFLCount > 0 && retryFL < useFLCount) {
						
						if(!firstTimeFl) {
							Delay(delayFL);
						} else {
							firstTimeFl = false;
						}
					
						Say('/f l');
						retryFL++;
					}
					else if(useFL) {
						if(!firstTimeFl) {
							Delay(delayFL);
						} else {
							firstTimeFl = false;
						}
						Say('/f l');
					}
					
				}
			}

			if(chat = controlData.get(controlData.controls.lobby.chat.textBox.channelText))
			{
				var found_leader = false;
				lines = chat.GetText();
				if(!lines) { break; }
				for (var line_id = lines.length - 1; line_id > -1; line_id--)
				{
					if (found_leader) // useless... :/
						break;

					if (lines[line_id].substring(0,1) == " ")
						continue;

					// retrieving the whole message
					var msg = lines[line_id].replace(/^\s+|\s+$/, "");
					var msglines = 1;
					while (lines[line_id+msglines] != undefined && lines[line_id+msglines].substring(0,2) == "  ")
					{
						msg += " " + lines[line_id+msglines].replace(/^\s+|\s+$/, "");
						msglines++;
					}
					if (msg.lastIndexOf(leaderName) >= 0)
						DebugInOOG("yc8found him :;"+msg);

					// checking if the msg is a friendly whisper
					if (msg.lastIndexOf(leaderName + ' (*' +leaderAccountName+')') > -1 || msg.lastIndexOf(leaderName + '@' + GateWayToName() + ' (*' +leaderAccountName+')') > -1)              
				   // if (msg.lastIndexOf(leaderName + ' (*' +leaderAccountName+')') > -1) // need to modify this and then add another to handle the "@USWest
					{																	// should be just a matter of leaderName + '@' and then register the 2nd line as game name
						 var regGameNameWhispered=/^.*in_new_game\s+(.*)$/gi; // replaced below with this to join on mesage upon entering game
						//var regGameNameWhispered=/^.*(game|partie|spiel|partita|partida).*(nomm[^\s]*|called|chiamata)\s*([\w\s-]*\w)\s*\.\s*$/gi;
						if (msg.match(regGameNameWhispered))
							game = msg.replace(regGameNameWhispered, "$1"); // replaced below with this to join on mesage upon entering game
							//game = msg.replace(regGameNameWhispered, "$3");

						if (game != '')
						{
							found_leader = true;
							break;
						}
					}

					// checking if the msg is from the friend list
					if (msg.lastIndexOf(': '+leaderAccountName+',') > -1)
					{
						found_leader = true;
						var regOffline=/^.*(offline|desconectado).*$/gi;
						var regInChat=/^.*(channel|canale?)\s*([\w\s-]*\w)\.?\s*$/gi;
						var regGameName=/^.*(game|partie|spiel|partita|partida)\s*([\w\s-]*\w)\s*\(priv[^\)]*\)\.\s*$/gi;

						if (msg.match(regOffline)
							&& (_leaderOfflineTick < 0 || (_leaderOfflineTick + LeaderOfflineDelay) < _tick))
						{
							DebugInOOG('Leader is offline, delay '+Math.round(LeaderOfflineDelay/1000)+' sec for next /f l.');
							_leaderOfflineTick = GetTickCount();
						}
						else if (msg.match(regInChat)
								&& (_leaderInChatTick < 0 || (_leaderInChatTick + LeaderInChatDelay) < _tick))
						{
							DebugInOOG('Leader is in the chat "'+msg.replace(regInChat, "$2")+'", delay '+Math.round(LeaderInChatDelay/1000)+' sec for next /f l.');
							_leaderInChatTick = GetTickCount();
						}
						else if (msg.match(regGameName)
								&& ((_leaderOfflineTick < 0 || (_leaderOfflineTick + LeaderOfflineDelay) < _tick)
									&& (_leaderInChatTick < 0 || (_leaderInChatTick + LeaderInChatDelay) < _tick)))
						{
							game = msg.replace(regGameName, "$2");
						}
						else if ((_leaderInChatTick < 0 || (_leaderInChatTick + LeaderInChatDelay) < _tick)
								&& (_leaderOfflineTick < 0 || (_leaderOfflineTick + LeaderOfflineDelay) < _tick))
						{
							// unhandled line, supposelly "In Realm"
							DebugInOOG('The leader was in the the lobby but not in chat, delay '+Math.round(LeaderInChatDelay/1000)+' sec for next /f l.');
							_leaderInChatTick = GetTickCount();
						}

						break;
					}
				}

				if (found_leader == false)
					DebugInOOG('I couldn\'t find the leader in my friend list!');
			}
			else
			{
				DebugInOOG('I can\'t read the chat!');
				//DebugInOOG('You probably haven\'t added the lobby chat controlinfo coordinates!');
				Delay(30000);
			}
		}
		if(!reEnterSameGame) { // added to check game name.  If same as last game then don't re enter.
			NT_RetrieveLastGame();
			//Delay(250);
			if(lastGame == game) {
				game = "";
			}
		}
		if (game!="")
		{
			DebugInOOG('Leader is in the game "' + game + '"');
			controlData.click(controlData.controls.lobby.button.join);
			Delay(100);
		}
		
        break;

    case 1:    // Lobby
		if(location.id == 1 && joinChatAfterGame)
        {
			//LogPrintSimple(me.account + "MyAccountTest.txt", me.account + " / " + me.charname) // this is to check for 2nd account login            
			Delay(Random(waitBeforeEnterChatMin, waitBeforeEnterChatMax));
            controlData.click(controlData.controls.lobby.button.enterChat);

			break;
			
        }
        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);
            break;
        }

        sendEventToOOG(D2NT_MGR_CREATE_GAME, location.name, 0);

        locationTimeout(5000, location);

        lastGameMade = GetTickCount();
        lastGameStatus = 1; // pending creation
        break;  case 5: // Join Game
    if (game)
    {
		if(retryLeaderGameCount > 0 && retryLeaderGameDelay > 0) {
			Delay(retryLeaderGameDelay * 1000);
		}
		controlData.setText( controlData.controls.lobby.join.editBox.gameName, game);
        Delay (100);
        controlData.setText( controlData.controls.lobby.join.editBox.password, gamepassword);
		//SendCopyData("D2NT Manager", null, 9<<16, "-- Debug : " + COLOR_1 +me.charname);
		if(leecher1[0] == me.charname){
			Delay(leecher1[1]);
		}
		else if(leecher2[0] == me.charname){
			Delay(leecher2[1]);
		}
		else if(leecher3[0] == me.charname){
			Delay(leecher3[1]);
		}
		else if(leecher4[0] == me.charname){
			Delay(leecher4[1]);
		}		
		else{
			Delay(100);
		}
		if(tryLeaderGame1x && retryLeaderGame <= 0) {	
			NT_File("logs/messagecomands/"+me.charname+"-lastgame.txt", 1, game); // writes current game for comparing to new game to join next time in lobby	
			game = "";
		}
		if(retryLeaderGame > 0 && !tryLeaderGame1x && retryLeaderGameCount < retryLeaderGame) { // increases the leadergamecount
			retryLeaderGameCount++;
		}
		if(retryLeaderGame > 0 && !tryLeaderGame1x && retryLeaderGameCount >= retryLeaderGame) { // sets game name to "" because we have made as many attempts as configured to join
			game = "";
		}
		controlData.click(controlData.controls.lobby.join.button.joinGame);
		RunGC(); // run garbage collector between each game
        locationTimeout(5000, location);
        lastGameStatus = 1; // pending join
    }
    else
    {
        DebugInOOG('No game to join : cancelling');
        me.Cancel(1);
        Delay(1000);
    }
	
    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_PRINT_LOG, COLOR_1 + "Bad Account or PW Entered.......Idling", 0);
		while(1) { Delay(500); }        
		//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_PRINT_LOG, COLOR_1 + "Bad CD Key...........Idling", 0);
		while(1) { Delay(500); }
		//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);
        break;

    case 26: // Lobby - Game Name Exists
        sendEventToOOG(D2NT_MGR_PRINT_LOG, "yE00000Game already exists", 0);

        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
        sendEventToOOG(D2NT_MGR_PRINT_LOG, COLOR_1 + "Leader's game does not exist...........Idling", 0);
		Delay(gameDoesNotExistDelay*1000);
		inGameAt = Random(gameDoesNotExistDelayMin, gameDoesNotExistDelayMax);
        lastGameStatus = 0;
        setNextGameMake();

        locationTimeout(gameDoesNotExistTimeout, location);
        break;
    default:
        DebugInOOG("Unhandled location : "+location.id);
        break;
    }
    DebugInOOG("Location : "+location.id);
}

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)
{
    endtime = GetTickCount() + time;

    while(endtime > GetTickCount())
    {
        sendEventToOOG(D2NT_MGR_PRINT_STATUS, location.name + " (" + parseInt((endtime-GetTickCount())/1000) + "s)", 0);
        Delay(1000);
    }
}

function getRandomString(_length)
{
    _retString = "";
    _charSet = "0123456789abcdefghijklmnopqrstuvwxyz";

    while(_length--)
    {
        _retString += _charSet.charAt(Random(0, _charSet.length-1));
        Delay(1);
    }

    return _retString;
}
function DebugInOOG(logString)
{
    if (Debug)
        return SendCopyData("D2NT Manager", null, 9<<16, "-- Debug : " + logString);
    else
        return false;
}

function My_ExitGame_Check()
{
    for (var i = 0; i < 40; i++)
    {
        if (controlData.getLocation().id != undefined)
            break;

        if (i > 38)
        {
            LogPrintSimple(me.account + " StarterTest.txt", "White Screen of Death: Restarting")
			sendEventToOOG(D2NT_MGR_PRINT_LOG, COLOR_1 + "White Screen of Death: Restarting", 0);
            sendEventToOOG(D2NT_MGR_RESTART, "", 5);
            My_Delay(); // make sure and add this also
        }

        Delay(500);
    }
}

function My_Delay(retry)
{
    if (arguments.length < 1)
        retry = 20;

    while (retry-- > 0)
        Delay(1000);
}

function LogPrintSimple(filepath, mesg){ 

	var _filepath = filepath;
	var _mesg = mesg;
	
	var date = new Date().toLocaleFormat("<%a, %b %d, %H:%M>");
	var logfile = FileOpen(_filepath, 2); // opens file 
	if(!logfile)
		var logfile = FileOpen(_filepath, 1); // if file not there then creates it

	logfile.WriteLine(date + " " + _mesg );
	logfile.Close();
}

function GateWayToName(){
        switch(me.gatewayid){
                case 0: return 'USWest';
                case 1: return 'USEast';
                case 2: return 'Asia';
                case 3: return 'Europe';
                default: return 'ugly'; // not sure how asia1, asia2, etc work so adding this for now   
        }
}				
// modes 0 = read only, 1 = overwrite the file, 2 = add to file
function NT_File(path, mode, msg, delay) { //big thanks to all the koreans out there
    var _msg  = "";
    var _line = "";
    var _fileHandle;
    var _isFileCheck = false;

    if (arguments.length < 3) { msg   = ""; }
    if (arguments.length < 4) { delay = (mode > 0) ? 5 : 2; }

    while (delay--) {
        if (mode == 2 && !_isFileCheck) {
            _fileHandle = FileOpen(path, 0);
            if (!_fileHandle)
                _fileHandle = FileOpen(path, 1);

            if (_fileHandle)
                _fileHandle.Close();

            _isFileCheck = true;
        }

        _fileHandle = FileOpen(path, mode);
        if (_fileHandle)
            break;

        if (delay)
            Delay(200);
    }

    if (_fileHandle) {
        if (mode == 0) {
            while (!_fileHandle.eof) {
                _line = _fileHandle.ReadLine();
                if (_line || !_fileHandle.eof)
                    _msg += _line + msg;
            }
        }
        else if (msg)
            _fileHandle.WriteLine(msg);

        _fileHandle.Close();
    }

    return _msg;
}

function NT_RetrieveLastGame() {
	var grabLastGame = FileOpen("logs/messagecomands/"+me.charname+"-lastgame.txt", 0); // open file in read only
	if(!grabLastGame){
		var grabLastGame = FileOpen("logs/messagecomands/"+me.charname+"-lastgame.txt", 1); // because the file doesn't exist create it
	}
	if(grabLastGame){ 
		lastGame = grabLastGame.ReadLine(); //retrieve the line and set the lastGame variable to it so we can check it against the game we may want to join
		grabLastGame.Close();		
	}
	return;
}

function NT_RetrievenextGame() { // to retrieve game and pw
	var grabLine;
	var grabNextGame = FileOpen("logs/messagecomands/"+leaderName+"-nextgame.txt", 0); // open file in read only
	if(!grabNextGame){
		var grabNextGame = FileOpen("logs/messagecomands/"+leaderName+"-nextgame.txt", 1); // because the file doesn't exist create it
	}
	if(grabNextGame){ 
		grabLine = grabNextGame.ReadLine(); //retrieve the line and set the nextGame variable to it so we can check it against the game we may want to join
		game = grabLine.substring(0, grabLine.indexOf('/')); //extracting game name from beginning of line to the "/"
		gamepassword = grabLine.substring(grabLine.indexOf('/') + 1, grabLine.length); //Parse after symbol till end of line.	
		grabNextGame.Close();	
	}
	return;
}
// so now we need to add code to get the next game and pw as well as check it against the last game
Use Leechstarter v2.3.ntj as entry point in d2nt manager profile and it should work.
Gt-Kingz is offline  
Thanks
1 User
Old   #3
 
elite*gold: 0
Join Date: Apr 2013
Posts: 2
Received Thanks: 0
thanks !

Next time i will post it in the supposed thread

I'm new so this is my first post !
blueberry-kush is offline  
Reply

Tags
d2etal, joinproblem, leacher problem, takes to long to join


Similar Threads Similar Threads
Diablo 2 Etal Bot problem
03/28/2013 - Diablo 2 - 0 Replies
Alles funktioniert wunderbar, nur an jedem ende eines games sagt er mir bzw. schreibt er selber ins game: Etal running Underground! dann leaved er komplett diablo 2... iwas kann da nicht stimmen, weil wenn dass so weitergeht krieg ich nen timeban. würde mir bitte jemand helfen? vielen dank!
D2NT Etal Problem
12/23/2012 - Diablo 2 - 6 Replies
Okay Ive tried my best to see if I could fix this without posting on the forums...Ive looked up related topics to mine with google... But all I can seem to find is people that need to check the name of there bot name So the error I keep getting is http://i.imgur.com/QrPYv.png But before anyone says check your Bot Config name and case sensitive etc I didn't even make the Config the bot automatically made it for me http://i.imgur.com/vhG7b.png I just set it up how I wanted it var...
LOL Etal Problem
04/26/2012 - League of Legends - 7 Replies
Ich habe heute LoL Etal auf VM Workstation aufgesetzt, soweit sogut, klappte alles wunderbar, geupdatet, gut ist. Aber dann schaue ich, Er startet zwar das Game und loggt sich ein, aber manchmal chillt er dann einfach rum und macht nichts, startet das youtube video unten in der Ecke oder öffnet den iexplorer... Manchmal startet er auch einfach immer wieder neu.... Wollte einfach mal die Meister um Rat fragen hehe... Habe alles wie in diesem Tut gemacht:...
Problem mit D2 Etal bot.
12/13/2011 - Diablo 2 - 2 Replies
Hallo, Ich habe mal eine Frage. Wenn mein D2nt Etal bot sich in ein Spiel einklinkt dann kommt nur "Carefull buddy. Running Etal without Spending the Proper Time Configuring. Ich benutze zum ersten mal Etal sonst habe ich nur D2nt Bluebird benutzt.
[D2NT] Etal Problem
11/08/2011 - Diablo 2 - 0 Replies
Guten Abend, ich habe ein Problem mit dem Etal, und zwar ich habe 3 Bots am Laufen. 2 Gingen noch gut da sind die immer gut ins Nächste Game gejoint. Nur nun klappt nur noch 1ner gut. Die andere 2 machen 1 Game, nach dem Fertigen Run gehen sie Raus und oben in der Leiste steht dann: Next Game 300 Seconds. Mhm und das nach jedem Game. Heißt eig Botte ich nur mit 1 Char die anderen Stehen mehr in der Lobby als alles andere. Ich habe nichts umgestellt. Weißt jemand woran das liegt?



All times are GMT +2. The time now is 22:23.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.