[D2NT] Public Botten for Dummies

11/14/2010 12:33 G[oz]U#556
Quote:
Originally Posted by Knixx View Post
schick mal bitte werd das ding einfach in mein puplic botten reinknallen basieren ja eh alle aufn d2nt =)
Klar, aber wie gesagt die NTBotleech hat doch nichts mit dem Geschehen ingame zu tun.
Wegen dem Problem dass der Bot vor dem BaalLeechFight nichts anderes macht würde ich den Sternenlooper nehmen.
Ich poste sie trotzdem mal. :)

EDIT:

Code:
//##############################################################################################################################
// Do Not distribute these scripts without the credits #########################################################################
//##############################################################################################################################
//Regards - Medix from http://www.************* #################################################################################
//##############################################################################################################################
var gameMinLength      = 90000;   // 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      = 180;      // time in minutes to retry connecting on a realm down (default is 120 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      = 5000;      // time in milliseconds to wait between making games
var createGameThresholdRandom   = 1000;      // 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         = 300;      // wait X milliseconds before next action after a click event
var textDelay         = 200;      // wait X milliseconds before next action after inserting text into a textbox
var clickDelayRandom      = 200;      // random amount of time to add to a click
var textDelayRandom      = 500;      // random amount of time to add to a text set
var gameDoesNotExistDelayMin   = 1000;   // how long to wait when a Game Does Not Exist occurs - minimum - default 10 minutes
var gameDoesNotExistDelayMax   = 1000;   // 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 joinChatAfterGame      = true;   // join chat after leaving a game
var joinRandomChannel      = false;      // if this is true, will join a random channel, otherwise it will use the channel below..
var joinChannelInChat      = "OP Pornobaal";      // leave blank to not join a private channel
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
var JoinFromChat = true;
//#########################################################################################################################################
//################################LEECHBOT SETTINGS########################################################################################
//#########################################################################################################################################
var leaderAccountName = "Acc-Name";   // Leader // achtet auf groß und kleinschreibung!!
var gamepassword = 'xx';      // Wenn du ein Passwort für deine Baalruns verwendest, schreibe es hier zwischen die zwei ''
var ChatFLDelay = 500 //delay between /f l in ms
var JoinGameAgain = true; // Bot joins same game again after leaving it due chicken 
//#########################################################################################################################################
//#########################################################################################################################################
//#########################################################################################################################################



// 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 chatActionsDone = false;
var lastGameFailed = false;
var zxetay = false;
var samegame = '';
var oldgame = '';
var check = 1;

Include("libs/controlInfo.ntl");
Include("libs/common/NTCommon.ntl");
//Include("joinBotSettings.ntl");
NTC_IncludeLibs();
var controlData = new controlInfo();

var game = '';

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)
			{
			if(zxetay){
							if(Load("NTBot/NTMule.ntj"))
				{
					_ingame = true;

					sendEventToOOG(D2NT_MGR_INGAME, "In Game", 0);
					lastGameStatus = 2; // in game successful
				}
			
			}
			
			else {
			
			
				if(Load("NTBot/NTBotGame.ntj"))
				{
					_ingame = true;

					sendEventToOOG(D2NT_MGR_INGAME, "In Game", 0);
					lastGameStatus = 2; // in game successful
				}
			}
}
			Delay(1000);
		}
		else
		{
			if(_ingame)
			{
				_ingame = false;

				sendEventToOOG(D2NT_MGR_READY, "", 0);
			}


			RegisterEvent(EVENT_SCRIPTMSG, NT_ScriptMsgEvents1);




			locationAction(controlData.getLocation());


			Delay(500);
		}
	}
}

function locationAction(location)
{
	switch(location.id)
	{

	case 3: // Lobby Chat
		if(!chatActionsDone)
		{
			chatActionsDone = true;
			Delay(Random(waitInChatBeforeActionsMin, waitInChatBeforeActionsMax));

			if(joinRandomChannel || joinChannelInChat != "")
			{
				Say("/join " + (joinRandomChannel ? getRandomString(Random(3,10)) : joinChannelInChat));
				Delay(1000);
				if(check == 1)
				{
					sendEventToOOG(D2NT_MGR_CREATE_GAME, location.name, 0);
					outputGameLength();
					lastGameStatus = 0;
					setNextGameMake();
					sendEventToOOG(D2NT_MGR_PRINT_STATUS, location.name, 0);
					check = check + 1;
				}
			}
		}

		if(JoinFromChat){
			game = '';
			if (joinChannelInChat)
			Delay (1200);
			//Say('Locating the leader : '+leaderAccountName);

			Say('/f l');
			Delay(ChatFLDelay);
			if(chat = controlData.get(controlData.controls.lobby.chat.textBox.channelText))
			{
				var errors = '';
				var found_leader = false;
				lines = chat.GetText();
				for (var friend = 0; friend < lines.length; friend++)
				{
					if (lines[friend].lastIndexOf(': '+leaderAccountName+',') > -1)
					{
						game = '';
						found_leader = true;
						var regOfflineEnglish=/^\d\s?:\s?(\w*)\s?,\s?offline\s*$/gi;
						var regGameNameEnglish=/^\s*(the\s)?(game\s)?([\w\s-]*\w)\s\(private\)\.\s*$/gi;
						var regGameNameFrench=/^\s*(la\s)?(partie\s)?([\w\s-]*\w)\s\(priv[^\)]*\)\.\s*$/gi;             
						var regGameNameGerman=/^\s*(Destruction\s)?(in\s)?(das\s)?(Spiel\s)?\'([\w\s-]*\w)\'\s\(privat[^\)]*\)\.\s*$/gi;

				if (lines[friend].match(regOfflineEnglish)) 
				
				{
					errors += (errors == '' ? '' : ' ') + 'leader is offline';
				//  if (joinChannelInChat)
					// Say('Leader is offline, delay 10 sec.');
				//  Delay(5000);
				} //err starts here
				if (lines[friend + 1].match(regGameNameEnglish) && lines[friend+1].substr(1, 1) != ':')
				{
					game = lines[friend + 1].replace(regGameNameEnglish, "$3");
				}
				if (!game && lines[friend + 1].match(regGameNameFrench) && lines[friend+1].substr(1, 1) != ':')
				{
					game = lines[friend + 1].replace(regGameNameFrench, "$3");
				}
			
				if (!game && lines[friend + 1].match(regGameNameGerman) && lines[friend+1].substr(1, 1) != ':')
				{
					game = lines[friend + 1].replace(regGameNameGerman, "$5");
				} 
				if (!game && lines[friend + 1].match(regGameNameFrench) && lines[friend+1].substr(1, 1) != ':')
				{
					game = lines[friend + 1].replace(regGameNameFrench, "$3");
				}
				if(!JoinGameAgain)
				{
				 if (game != '' && game != samegame)
				{
					if (joinChannelInChat)
						Delay(500);
						//Say('I found him! In the game ' + game);

					controlData.click(controlData.controls.lobby.button.join);
					Delay (200);
				}
				else
				{
					if(!errors)
					{
						errors = 'leader is not in game.';
					}
				
				}
				}
				
				else
				{
				if (game != '')
				{
					if (joinChannelInChat)
						Delay(500);
						//Say('I found him! In the game ' + game);

					controlData.click(controlData.controls.lobby.button.join);
					Delay (200);
				}
				else
				{
					if(!errors)
					{
						errors = 'leader is not in game.';
					}
				
				}
				
				}
			}
			}
			if (!found_leader && joinChannelInChat)
			{
			if (errors)
				Say('Errors : ' + errors);
			else
				Say('Elmobaal :D');
						Delay(1500);
					}
				}
				else
				{
					if (joinChannelInChat)
					Say('I can\'t read the chat!');
					Delay(1500);
				}
				
			}
			errors = '';
			if(game != '')
			samegame = game;
			break;

			
		case 1:   // Lobby
			if(location.id == 1 && joinChatAfterGame)
			{
				Delay(Random(waitBeforeEnterChatMin, waitBeforeEnterChatMax));
				controlData.click(controlData.controls.lobby.button.enterChat);
				break;
			}

			if(GetTickCount() > nextGameMake)
			{
				lastGameFailed = false;

				switch(lastGameStatus)
				{
				case 0:
					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(); // reset inGameAt, to wait how long we should have waited..
					lastGameFailed = true;
				case 2:
					outputGameLength();
					lastGameStatus = 0;
					setNextGameMake();
					sendEventToOOG(D2NT_MGR_PRINT_STATUS, location.name, 0);
					break;
				}
			}
			//else
			// timeoutDelay(nextGameMake-GetTickCount(), location);
			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);

			RunGC(); // run garbage collector between each game

			locationTimeout(5000, location);

			lastGameMade = GetTickCount();
			lastGameStatus = 1; // pending creation
			break;

		case 5: // Join Game
  		      if(!controlData.get(controlData.controls.lobby.join.editBox.gameName))
     			   {
      		      controlData.click(controlData.controls.lobby.button.create);
       		     Delay (1000);
         		   controlData.click(controlData.controls.lobby.button.join);
         		   Delay (1000);
      			  }
       			 if (game != '')
      			  {
      
       		     controlData.setText( controlData.controls.lobby.join.editBox.gameName, game);
        	    Delay (200);
         	   controlData.setText( controlData.controls.lobby.join.editBox.password, gamepassword);
           	 Delay (200);
 	           controlData.click(controlData.controls.lobby.join.button.joinGame);
	            Delay (800);
 	      controlData.click(controlData.controls.lobby.button.quit);                       
	            Delay (800);
 	           controlData.click(controlData.controls.lobby.button.join); 
	            RunGC(); // run garbage collector between each game
 	           //locationTimeout(1000, location);
 	           lastGameStatus = 1; // pending join
 		  check = 1;
 		       }
		      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
			RunGC(); // run garbage collector between each game

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

		case 26: // Lobby - Game Name Exists
			sendEventToOOG(D2NT_MGR_PRINT_LOG, "Game 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
     			 inGameAt = Random(gameDoesNotExistDelayMin, gameDoesNotExistDelayMax);
 			 controlData.click(controlData.controls.lobby.button.quit); 
     			 lastGameStatus = 0;
 			 controlData.click(controlData.controls.lobby.button.quit); 
    			  setNextGameMake();
		}
	}













	function locationActionA(location)
	{
		switch(location.id)
		{

		case 3: // Lobby Chat

			break;

			
		case 1:   // Lobby

			Delay(500);
			controlData.click(controlData.controls.lobby.button.join);
			Delay(500);
			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);

			RunGC(); // run garbage collector between each game

			locationTimeout(5000, location);

			lastGameMade = GetTickCount();
			lastGameStatus = 1; // pending creation
			break;

		case 5: // Join Game
			if(!controlData.get(controlData.controls.lobby.join.editBox.gameName))
			{
				controlData.click(controlData.controls.lobby.button.create);
				Delay (500);
				controlData.click(controlData.controls.lobby.button.join);
				Delay (500);
			}
			
			
			controlData.setText( controlData.controls.lobby.join.editBox.gameName, MuleGame);
			Delay (200);
			controlData.setText( controlData.controls.lobby.join.editBox.password, MuleGamePassword);
			Delay (200);
			controlData.click(controlData.controls.lobby.join.button.joinGame);
			RunGC(); // run garbage collector between each game
			//locationTimeout(1000, location);
			lastGameStatus = 1; // pending join
			check = 1;
			
			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, MuleAccount);
			Delay(1000)
			controlData.setText(controlData.controls.login.editBox.password, MulePassword);
			Delay(500);
			controlData.click(controlData.controls.login.button.logIn);
			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[MuleCharLocation]);
				if(_control && _control.GetText() != undefined)
				break;

				Delay(500);
			}

			if(_time < characterScreenTimeout)
			{
				Delay(characterSelectDelay);

				controlData.click(controlData.controls.characterSelect.textBox.characters[MuleCharLocation], 0, 0, 1);
				controlData.click(controlData.controls.characterSelect.textBox.characterInfo[MuleCharLocation], 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
			RunGC(); // run garbage collector between each game

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

		case 26: // Lobby - Game Name Exists
			sendEventToOOG(D2NT_MGR_PRINT_LOG, "Game 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

			controlData.click(controlData.controls.lobby.button.quit);


			//lastGameStatus = 0;
			//setNextGameMake();

			//locationTimeout(gameDoesNotExistTimeout, location);
			break;
		}
	}





	function locationActionB(location)
	{
		switch(location.id)
		{

		case 3: // Lobby Chat
			Delay(5000);
			controlData.click(controlData.controls.lobby.button.create);

			break;

			
		case 1:   // Lobby

			Delay(5000);
			controlData.click(controlData.controls.lobby.button.create);

			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);
			}
			
			controlData.setText( controlData.controls.lobby.create.editBox.gameName, MuleGame);
			Delay (200);
			controlData.setText( controlData.controls.lobby.create.editBox.password, MuleGamePassword);
			Delay (200);
			controlData.click(controlData.controls.lobby.create.button.normal);
			Delay(500);
			controlData.click(controlData.controls.lobby.create.button.createGame);
			Delay(500);	
			
			//sendEventToOOG(D2NT_MGR_CREATE_GAME, location.name, 0);

			RunGC(); // run garbage collector between each game

			locationTimeout(5000, location);

			lastGameMade = GetTickCount();
			lastGameStatus = 1; // pending creation
			break;

		case 5: // Join Game
			if(!controlData.get(controlData.controls.lobby.join.editBox.gameName))
			{
				controlData.click(controlData.controls.lobby.button.create);
				Delay (500);
				controlData.click(controlData.controls.lobby.button.join);
				Delay (500);
			}
			
			
			controlData.setText( controlData.controls.lobby.join.editBox.gameName, MuleGame);
			Delay (200);
			controlData.setText( controlData.controls.lobby.join.editBox.password, MuleGamePassword);
			Delay (200);
			controlData.click(controlData.controls.lobby.join.button.joinGame);
			RunGC(); // run garbage collector between each game
			//locationTimeout(1000, location);
			lastGameStatus = 1; // pending join
			check = 1;
			
			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, MuleAccount);
			Delay(1000)
			controlData.setText(controlData.controls.login.editBox.password, MulePassword);
			Delay(500);
			controlData.click(controlData.controls.login.button.logIn);
			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
			RunGC(); // run garbage collector between each game

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

		case 26: // Lobby - Game Name Exists
			sendEventToOOG(D2NT_MGR_PRINT_LOG, "Game 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

			controlData.click(controlData.controls.lobby.button.quit);


			//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)
	{
		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 NT_ScriptMsgEvents1(msg)
	{
		
		

		switch(msg)
		{


		case "MULE":

			ExitGame();	
			NTC_SendLogToOOG(NTC_LOG_COMMON, "Log on Mule Account");
			NTC_Delay(2000);
			//ExitGame();
			NTC_Delay(20000);
			controlData.click(controlData.controls.lobby.button.quit);
			NTC_Delay(2000);
			controlData.click(controlData.controls.characterSelect.button.exit);
			NTC_Delay(2000);

			while(1)

			{
				if(!me.ingame){
					locationActionA(controlData.getLocation());
				}
				else{
					Delay(5000);
					Load("NTBot/bots/NTJOIN.ntj");
					break;
				}
			}


			break;
			
			
		case "MULE_START":
			
			Delay(5000);
			while(1)

			{
				if(!me.ingame){
					locationActionB(controlData.getLocation());
				}
				else{
					Delay(5000);
					Load("NTBot/bots/NTMule.ntj");
					break;
				}
			}

zxetay = true;
			
			break;


			
		case "MULE_FULL":
			
			ExitGame();
			NTC_Delay(10000);
			controlData.click(controlData.controls.lobby.button.quit);
			MuleCharLocation++;
						while(1)

			{
				if(!me.ingame){
					locationActionA(controlData.getLocation());
				}
				else{
					Delay(5000);
					Load("NTBot/bots/NTJOIN.ntj");
					break;
				}
			}
			
	
	zxetay  = true;

			break;
			
			
		case "DONE":
		
		ExitGame();
		NTC_Delay(10000);
		NTC_SendLogToOOG(NTC_LOG_COMMON, "Finished Muling!");
		NTC_Delay(2000);
		controlData.click(controlData.controls.lobby.button.quit);
		NTC_Delay(2000);
		controlData.click(controlData.controls.characterSelect.button.exit);
		
		zxetay = false;
			
		}

	}
11/14/2010 12:48 Knixx#557
Quote:
Originally Posted by G[oz]U View Post
Klar, aber wie gesagt die NTBotleech hat doch nichts mit dem Geschehen ingame zu tun.
Wegen dem Problem dass der Bot vor dem BaalLeechFight nichts anderes macht würde ich den Sternenlooper nehmen.
Ich poste sie trotzdem mal. :)

EDIT:

Code:
//##############################################################################################################################
// Do Not distribute these scripts without the credits #########################################################################
//##############################################################################################################################
//Regards - Medix from http://www.************* #################################################################################
//##############################################################################################################################
var gameMinLength      = 90000;   // 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      = 180;      // time in minutes to retry connecting on a realm down (default is 120 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      = 5000;      // time in milliseconds to wait between making games
var createGameThresholdRandom   = 1000;      // 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         = 300;      // wait X milliseconds before next action after a click event
var textDelay         = 200;      // wait X milliseconds before next action after inserting text into a textbox
var clickDelayRandom      = 200;      // random amount of time to add to a click
var textDelayRandom      = 500;      // random amount of time to add to a text set
var gameDoesNotExistDelayMin   = 1000;   // how long to wait when a Game Does Not Exist occurs - minimum - default 10 minutes
var gameDoesNotExistDelayMax   = 1000;   // 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 joinChatAfterGame      = true;   // join chat after leaving a game
var joinRandomChannel      = false;      // if this is true, will join a random channel, otherwise it will use the channel below..
var joinChannelInChat      = "OP Pornobaal";      // leave blank to not join a private channel
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
var JoinFromChat = true;
//#########################################################################################################################################
//################################LEECHBOT SETTINGS########################################################################################
//#########################################################################################################################################
var leaderAccountName = "Acc-Name";   // Leader // achtet auf groß und kleinschreibung!!
var gamepassword = 'xx';      // Wenn du ein Passwort für deine Baalruns verwendest, schreibe es hier zwischen die zwei ''
var ChatFLDelay = 500 //delay between /f l in ms
var JoinGameAgain = true; // Bot joins same game again after leaving it due chicken 
//#########################################################################################################################################
//#########################################################################################################################################
//#########################################################################################################################################



// 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 chatActionsDone = false;
var lastGameFailed = false;
var zxetay = false;
var samegame = '';
var oldgame = '';
var check = 1;

Include("libs/controlInfo.ntl");
Include("libs/common/NTCommon.ntl");
//Include("joinBotSettings.ntl");
NTC_IncludeLibs();
var controlData = new controlInfo();

var game = '';

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)
			{
			if(zxetay){
							if(Load("NTBot/NTMule.ntj"))
				{
					_ingame = true;

					sendEventToOOG(D2NT_MGR_INGAME, "In Game", 0);
					lastGameStatus = 2; // in game successful
				}
			
			}
			
			else {
			
			
				if(Load("NTBot/NTBotGame.ntj"))
				{
					_ingame = true;

					sendEventToOOG(D2NT_MGR_INGAME, "In Game", 0);
					lastGameStatus = 2; // in game successful
				}
			}
}
			Delay(1000);
		}
		else
		{
			if(_ingame)
			{
				_ingame = false;

				sendEventToOOG(D2NT_MGR_READY, "", 0);
			}


			RegisterEvent(EVENT_SCRIPTMSG, NT_ScriptMsgEvents1);




			locationAction(controlData.getLocation());


			Delay(500);
		}
	}
}

function locationAction(location)
{
	switch(location.id)
	{

	case 3: // Lobby Chat
		if(!chatActionsDone)
		{
			chatActionsDone = true;
			Delay(Random(waitInChatBeforeActionsMin, waitInChatBeforeActionsMax));

			if(joinRandomChannel || joinChannelInChat != "")
			{
				Say("/join " + (joinRandomChannel ? getRandomString(Random(3,10)) : joinChannelInChat));
				Delay(1000);
				if(check == 1)
				{
					sendEventToOOG(D2NT_MGR_CREATE_GAME, location.name, 0);
					outputGameLength();
					lastGameStatus = 0;
					setNextGameMake();
					sendEventToOOG(D2NT_MGR_PRINT_STATUS, location.name, 0);
					check = check + 1;
				}
			}
		}

		if(JoinFromChat){
			game = '';
			if (joinChannelInChat)
			Delay (1200);
			//Say('Locating the leader : '+leaderAccountName);

			Say('/f l');
			Delay(ChatFLDelay);
			if(chat = controlData.get(controlData.controls.lobby.chat.textBox.channelText))
			{
				var errors = '';
				var found_leader = false;
				lines = chat.GetText();
				for (var friend = 0; friend < lines.length; friend++)
				{
					if (lines[friend].lastIndexOf(': '+leaderAccountName+',') > -1)
					{
						game = '';
						found_leader = true;
						var regOfflineEnglish=/^\d\s?:\s?(\w*)\s?,\s?offline\s*$/gi;
						var regGameNameEnglish=/^\s*(the\s)?(game\s)?([\w\s-]*\w)\s\(private\)\.\s*$/gi;
						var regGameNameFrench=/^\s*(la\s)?(partie\s)?([\w\s-]*\w)\s\(priv[^\)]*\)\.\s*$/gi;             
						var regGameNameGerman=/^\s*(Destruction\s)?(in\s)?(das\s)?(Spiel\s)?\'([\w\s-]*\w)\'\s\(privat[^\)]*\)\.\s*$/gi;

				if (lines[friend].match(regOfflineEnglish)) 
				
				{
					errors += (errors == '' ? '' : ' ') + 'leader is offline';
				//  if (joinChannelInChat)
					// Say('Leader is offline, delay 10 sec.');
				//  Delay(5000);
				} //err starts here
				if (lines[friend + 1].match(regGameNameEnglish) && lines[friend+1].substr(1, 1) != ':')
				{
					game = lines[friend + 1].replace(regGameNameEnglish, "$3");
				}
				if (!game && lines[friend + 1].match(regGameNameFrench) && lines[friend+1].substr(1, 1) != ':')
				{
					game = lines[friend + 1].replace(regGameNameFrench, "$3");
				}
			
				if (!game && lines[friend + 1].match(regGameNameGerman) && lines[friend+1].substr(1, 1) != ':')
				{
					game = lines[friend + 1].replace(regGameNameGerman, "$5");
				} 
				if (!game && lines[friend + 1].match(regGameNameFrench) && lines[friend+1].substr(1, 1) != ':')
				{
					game = lines[friend + 1].replace(regGameNameFrench, "$3");
				}
				if(!JoinGameAgain)
				{
				 if (game != '' && game != samegame)
				{
					if (joinChannelInChat)
						Delay(500);
						//Say('I found him! In the game ' + game);

					controlData.click(controlData.controls.lobby.button.join);
					Delay (200);
				}
				else
				{
					if(!errors)
					{
						errors = 'leader is not in game.';
					}
				
				}
				}
				
				else
				{
				if (game != '')
				{
					if (joinChannelInChat)
						Delay(500);
						//Say('I found him! In the game ' + game);

					controlData.click(controlData.controls.lobby.button.join);
					Delay (200);
				}
				else
				{
					if(!errors)
					{
						errors = 'leader is not in game.';
					}
				
				}
				
				}
			}
			}
			if (!found_leader && joinChannelInChat)
			{
			if (errors)
				Say('Errors : ' + errors);
			else
				Say('Elmobaal :D');
						Delay(1500);
					}
				}
				else
				{
					if (joinChannelInChat)
					Say('I can\'t read the chat!');
					Delay(1500);
				}
				
			}
			errors = '';
			if(game != '')
			samegame = game;
			break;

			
		case 1:   // Lobby
			if(location.id == 1 && joinChatAfterGame)
			{
				Delay(Random(waitBeforeEnterChatMin, waitBeforeEnterChatMax));
				controlData.click(controlData.controls.lobby.button.enterChat);
				break;
			}

			if(GetTickCount() > nextGameMake)
			{
				lastGameFailed = false;

				switch(lastGameStatus)
				{
				case 0:
					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(); // reset inGameAt, to wait how long we should have waited..
					lastGameFailed = true;
				case 2:
					outputGameLength();
					lastGameStatus = 0;
					setNextGameMake();
					sendEventToOOG(D2NT_MGR_PRINT_STATUS, location.name, 0);
					break;
				}
			}
			//else
			// timeoutDelay(nextGameMake-GetTickCount(), location);
			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);

			RunGC(); // run garbage collector between each game

			locationTimeout(5000, location);

			lastGameMade = GetTickCount();
			lastGameStatus = 1; // pending creation
			break;

		case 5: // Join Game
  		      if(!controlData.get(controlData.controls.lobby.join.editBox.gameName))
     			   {
      		      controlData.click(controlData.controls.lobby.button.create);
       		     Delay (1000);
         		   controlData.click(controlData.controls.lobby.button.join);
         		   Delay (1000);
      			  }
       			 if (game != '')
      			  {
      
       		     controlData.setText( controlData.controls.lobby.join.editBox.gameName, game);
        	    Delay (200);
         	   controlData.setText( controlData.controls.lobby.join.editBox.password, gamepassword);
           	 Delay (200);
 	           controlData.click(controlData.controls.lobby.join.button.joinGame);
	            Delay (800);
 	      controlData.click(controlData.controls.lobby.button.quit);                       
	            Delay (800);
 	           controlData.click(controlData.controls.lobby.button.join); 
	            RunGC(); // run garbage collector between each game
 	           //locationTimeout(1000, location);
 	           lastGameStatus = 1; // pending join
 		  check = 1;
 		       }
		      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
			RunGC(); // run garbage collector between each game

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

		case 26: // Lobby - Game Name Exists
			sendEventToOOG(D2NT_MGR_PRINT_LOG, "Game 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
     			 inGameAt = Random(gameDoesNotExistDelayMin, gameDoesNotExistDelayMax);
 			 controlData.click(controlData.controls.lobby.button.quit); 
     			 lastGameStatus = 0;
 			 controlData.click(controlData.controls.lobby.button.quit); 
    			  setNextGameMake();
		}
	}













	function locationActionA(location)
	{
		switch(location.id)
		{

		case 3: // Lobby Chat

			break;

			
		case 1:   // Lobby

			Delay(500);
			controlData.click(controlData.controls.lobby.button.join);
			Delay(500);
			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);

			RunGC(); // run garbage collector between each game

			locationTimeout(5000, location);

			lastGameMade = GetTickCount();
			lastGameStatus = 1; // pending creation
			break;

		case 5: // Join Game
			if(!controlData.get(controlData.controls.lobby.join.editBox.gameName))
			{
				controlData.click(controlData.controls.lobby.button.create);
				Delay (500);
				controlData.click(controlData.controls.lobby.button.join);
				Delay (500);
			}
			
			
			controlData.setText( controlData.controls.lobby.join.editBox.gameName, MuleGame);
			Delay (200);
			controlData.setText( controlData.controls.lobby.join.editBox.password, MuleGamePassword);
			Delay (200);
			controlData.click(controlData.controls.lobby.join.button.joinGame);
			RunGC(); // run garbage collector between each game
			//locationTimeout(1000, location);
			lastGameStatus = 1; // pending join
			check = 1;
			
			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, MuleAccount);
			Delay(1000)
			controlData.setText(controlData.controls.login.editBox.password, MulePassword);
			Delay(500);
			controlData.click(controlData.controls.login.button.logIn);
			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[MuleCharLocation]);
				if(_control && _control.GetText() != undefined)
				break;

				Delay(500);
			}

			if(_time < characterScreenTimeout)
			{
				Delay(characterSelectDelay);

				controlData.click(controlData.controls.characterSelect.textBox.characters[MuleCharLocation], 0, 0, 1);
				controlData.click(controlData.controls.characterSelect.textBox.characterInfo[MuleCharLocation], 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
			RunGC(); // run garbage collector between each game

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

		case 26: // Lobby - Game Name Exists
			sendEventToOOG(D2NT_MGR_PRINT_LOG, "Game 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

			controlData.click(controlData.controls.lobby.button.quit);


			//lastGameStatus = 0;
			//setNextGameMake();

			//locationTimeout(gameDoesNotExistTimeout, location);
			break;
		}
	}





	function locationActionB(location)
	{
		switch(location.id)
		{

		case 3: // Lobby Chat
			Delay(5000);
			controlData.click(controlData.controls.lobby.button.create);

			break;

			
		case 1:   // Lobby

			Delay(5000);
			controlData.click(controlData.controls.lobby.button.create);

			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);
			}
			
			controlData.setText( controlData.controls.lobby.create.editBox.gameName, MuleGame);
			Delay (200);
			controlData.setText( controlData.controls.lobby.create.editBox.password, MuleGamePassword);
			Delay (200);
			controlData.click(controlData.controls.lobby.create.button.normal);
			Delay(500);
			controlData.click(controlData.controls.lobby.create.button.createGame);
			Delay(500);	
			
			//sendEventToOOG(D2NT_MGR_CREATE_GAME, location.name, 0);

			RunGC(); // run garbage collector between each game

			locationTimeout(5000, location);

			lastGameMade = GetTickCount();
			lastGameStatus = 1; // pending creation
			break;

		case 5: // Join Game
			if(!controlData.get(controlData.controls.lobby.join.editBox.gameName))
			{
				controlData.click(controlData.controls.lobby.button.create);
				Delay (500);
				controlData.click(controlData.controls.lobby.button.join);
				Delay (500);
			}
			
			
			controlData.setText( controlData.controls.lobby.join.editBox.gameName, MuleGame);
			Delay (200);
			controlData.setText( controlData.controls.lobby.join.editBox.password, MuleGamePassword);
			Delay (200);
			controlData.click(controlData.controls.lobby.join.button.joinGame);
			RunGC(); // run garbage collector between each game
			//locationTimeout(1000, location);
			lastGameStatus = 1; // pending join
			check = 1;
			
			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, MuleAccount);
			Delay(1000)
			controlData.setText(controlData.controls.login.editBox.password, MulePassword);
			Delay(500);
			controlData.click(controlData.controls.login.button.logIn);
			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
			RunGC(); // run garbage collector between each game

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

		case 26: // Lobby - Game Name Exists
			sendEventToOOG(D2NT_MGR_PRINT_LOG, "Game 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

			controlData.click(controlData.controls.lobby.button.quit);


			//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)
	{
		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 NT_ScriptMsgEvents1(msg)
	{
		
		

		switch(msg)
		{


		case "MULE":

			ExitGame();	
			NTC_SendLogToOOG(NTC_LOG_COMMON, "Log on Mule Account");
			NTC_Delay(2000);
			//ExitGame();
			NTC_Delay(20000);
			controlData.click(controlData.controls.lobby.button.quit);
			NTC_Delay(2000);
			controlData.click(controlData.controls.characterSelect.button.exit);
			NTC_Delay(2000);

			while(1)

			{
				if(!me.ingame){
					locationActionA(controlData.getLocation());
				}
				else{
					Delay(5000);
					Load("NTBot/bots/NTJOIN.ntj");
					break;
				}
			}


			break;
			
			
		case "MULE_START":
			
			Delay(5000);
			while(1)

			{
				if(!me.ingame){
					locationActionB(controlData.getLocation());
				}
				else{
					Delay(5000);
					Load("NTBot/bots/NTMule.ntj");
					break;
				}
			}

zxetay = true;
			
			break;


			
		case "MULE_FULL":
			
			ExitGame();
			NTC_Delay(10000);
			controlData.click(controlData.controls.lobby.button.quit);
			MuleCharLocation++;
						while(1)

			{
				if(!me.ingame){
					locationActionA(controlData.getLocation());
				}
				else{
					Delay(5000);
					Load("NTBot/bots/NTJOIN.ntj");
					break;
				}
			}
			
	
	zxetay  = true;

			break;
			
			
		case "DONE":
		
		ExitGame();
		NTC_Delay(10000);
		NTC_SendLogToOOG(NTC_LOG_COMMON, "Finished Muling!");
		NTC_Delay(2000);
		controlData.click(controlData.controls.lobby.button.quit);
		NTC_Delay(2000);
		controlData.click(controlData.controls.characterSelect.button.exit);
		
		zxetay = false;
			
		}

	}
jo danke hab mir sternlooper gesaugt und mal bissel rausgeklaut

und siehe das funktioniert 1a ;)

muss nur mal sehen was passiert solte tp save message kommen wen sie noch am fighten ist ;)
11/14/2010 12:51 G[oz]U#558
Okay, na dann gl.
11/14/2010 13:18 Little-King#559
@lanara läuft auf eng natürlich und was mich total verwundert... alles läuft plötzlich :) hab nix verändert und ber leecher hoppelt nun brav mit :) evt wars ja bei beiden testläufen zufall oder das neustarten des pc´s hat die neue config erst in schwung gebracht.

naja wie auch immer wollte mich nochmal bedanken für die hilfe und natürlich auch für die gute anleitung des gesammten threats- muss auch mal gesagt werden!

wobei da fällt mir eine letzte kleine frage ein:

kann man auch min lev req anmachen bei bot runs, damit die nervigen spambots nicht joinen könnne?
11/14/2010 13:40 OxolarsoxO#560
Quote:
Originally Posted by Little-King View Post
@lanara läuft auf eng natürlich und was mich total verwundert... alles läuft plötzlich :) hab nix verändert und ber leecher hoppelt nun brav mit :) evt wars ja bei beiden testläufen zufall oder das neustarten des pc´s hat die neue config erst in schwung gebracht.

naja wie auch immer wollte mich nochmal bedanken für die hilfe und natürlich auch für die gute anleitung des gesammten threats- muss auch mal gesagt werden!

wobei da fällt mir eine letzte kleine frage ein:

kann man auch min lev req anmachen bei bot runs, damit die nervigen spambots nicht joinen könnne?
lev req hast noch nie diablo gespielt klar kann man das ingame sogar einfach bei spielen erstellen das gewünschte lvl unten eingeben das ist +/- von deim lvl ab hängig z.B du bist lvl 90 machst lvl req 5 rein kommen nur von lvl 85- 95 spieler rein
11/14/2010 14:13 G[oz]U#561
Quote:
Originally Posted by OxolarsoxO View Post
lev req hast noch nie diablo gespielt [...]
*Hust*
Aber mir die größtn noob-Fragen stellen :o
Nichts für ungut, aber wenn du Hilfe haben willst, erwartest du doch auch nicht solche Antworten. ;)

Jo einfach manuell einstellen, und nicht vergessen auch ein Spiel zu erstellen, sonst verfliegt's wieder. :)
11/14/2010 14:21 (-.(-.-).-)#562
Quote:
Originally Posted by lanara View Post
Wie schon des öfteren gesagt, gibt es bei manchen beim Dia Script diesen Bug. Da ich keine Ahnung habe wodurch er zustande kommt und er bei mir auch nicht auftritt, kann ich dazu wenig helfen.

@Knixx: Ich habe dir deine Frage eine Seite vorher schon beantwortet. Er findet das Script nicht.
falls es dir hilft, er bleibt nicht nur bei seals hängen, truhen und co, Shrines ^^
11/14/2010 15:35 dex_porter#563
Also da ich keine Lust hab hier 57 Seiten durchzu blättern hau ich meine Frage mal so dazwischen...

Also ich hab das Problem das der Bot zb. wenn nen anderer das Seal öffnet einfach nur noch rumsteht und iwann dann das game verlässt...

Könnte man da nicht was einbauen womit der bot dann die schon geöffneten Siegel überspringt und einfach mit dem nächsten Siegel fortfährt?
11/14/2010 16:18 (-.(-.-).-)#564
Quote:
Originally Posted by dex_porter View Post
Also da ich keine Lust hab hier 57 Seiten durchzu blättern hau ich meine Frage mal so dazwischen...

Also ich hab das Problem das der Bot zb. wenn nen anderer das Seal öffnet einfach nur noch rumsteht und iwann dann das game verlässt...

Könnte man da nicht was einbauen womit der bot dann die schon geöffneten Siegel überspringt und einfach mit dem nächsten Siegel fortfährt?
Welcome to D2nt! ^^
11/14/2010 20:49 Jack_Daniels2010#565
Hi,

Super erklärt und funzt auch fast Perkfekt
was mich stört ist das er bei mir nicht einsammelt kannst du mir da weiter helfen?
11/14/2010 21:17 ale-diablo#566
Quote:
Originally Posted by Jack_Daniels2010 View Post
Hi,

Super erklärt und funzt auch fast Perkfekt
was mich stört ist das er bei mir nicht einsammelt kannst du mir da weiter helfen?
in der Charconfig die pickIt aktivieren !
advance/normal/ extrem müsste es sein , weiß nicht genau ob das bei dem bot soo ist
Guck einfach mal !
11/14/2010 21:47 ditech#567
hey leute,

habt ihr auch das problem das euer leader nach ca. 40 runs

or manchmal früher

einfach "ingame" ist obwohl ich nur das fenster weiß ist .. das er da drin 2 stunden ist or länger obwohl er garnicht im ingame ist bzw channel ..

irgend ein fehler or so ..

manchmal gehts auch ohne probleme ..

könnts ihr mir helfen das dass nicht mehr passiert ?
11/14/2010 21:49 Knixx#568
Quote:
Originally Posted by ditech View Post
hey leute,

habt ihr auch das problem das euer leader nach ca. 40 runs

or manchmal früher

einfach "ingame" ist obwohl ich nur das fenster weiß ist .. das er da drin 2 stunden ist or länger obwohl er garnicht im ingame ist bzw channel ..

irgend ein fehler or so ..

manchmal gehts auch ohne probleme ..

könnts ihr mir helfen das dass nicht mehr passiert ?
is ein diablo2 error hab ich auch und noch keine lösung für gefunden

ausser per hand das d2 closen ^^
11/14/2010 21:51 ditech#569
Quote:
Originally Posted by Knixx View Post
is ein diablo2 error hab ich auch und noch keine lösung für gefunden

ausser per hand das d2 closen ^^
shit hatt keiner eine lösung gefunden ?

auch nur beim leader or ?
11/14/2010 22:09 Knixx#570
Quote:
Originally Posted by ditech View Post
shit hatt keiner eine lösung gefunden ?

auch nur beim leader or ?
jo nur beim lead ;D