Author Topic: automule  (Read 685 times)

Offline ThePINGASmachine

  • PK Novice
  • ***
  • Posts: 209
  • Reputation 0
  • F U C K ETAL - IT SUX !
    • View Profile
Re: automule
« Reply #15 on: November 15, 2011, 02:44:49 AM »
in house is how we do things ;)

or that .. cuz we can all laugh at the failure youve done ^^
-PINGAS !

Offline cooptheking03

  • D2NT Specialist
  • Big Boss Man
  • PureKaoz HeRo
  • *******
  • Posts: 1656
  • Reputation 4
  • I Run This Chizz
    • View Profile
Re: automule
« Reply #16 on: November 15, 2011, 02:46:05 AM »
I do fail quite a bit! lol
I Do Not Do Support Via PM.
I Can Help Xfer Anycore/Anyrealm/Anytime.
PM me here or on JSP : TheAmazingShac0

Offline ThePINGASmachine

  • PK Novice
  • ***
  • Posts: 209
  • Reputation 0
  • F U C K ETAL - IT SUX !
    • View Profile
Re: automule
« Reply #17 on: November 15, 2011, 02:47:02 AM »
I do fail quite a bit! lol

doesnt matter, my leechbot failed way more you did ;p
-PINGAS !

Offline xiamsammyx

  • Newbie
  • *
  • Posts: 25
  • Reputation 0
  • I <3 PureKaoz.com
    • View Profile
Re: automule
« Reply #18 on: November 15, 2011, 11:40:51 AM »
Here is the NTBotC file... passwords have been changed obviously to protect me, but they were right when I tried to run it.

The only things I changed were the account name/ password and game name / password like I said, and some chat settings.

Code: [Select]
//---------------------------------------------------
// Pure Kaoz CoopMod 3.1 Core Coding By Etal Team
// Channel Announce Coded By Etal Team
// Modded By Cooptheking03@PureKaoz.com
// Use this if you want to automule and announce
// If you want to announce only use NTBot.ntj
// Only 1 main runner can use the automule function currently
// If your running 2 main MF bots and set both to automule it will screw up
//---------------------------------------------------
// Delay Settings - General
//---------------------------------------------------
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      = 15000;    // time in milliseconds to wait between making games
var createGameThresholdRandom   = 2000;     // time in milliseconds to randomly add +/- to the game create time
var createGameTimeout      = 45000;    // time in milliseconds to register a failed to create game
var waitInLineTimeout      = 60000;    // time in milliseconds to wait in lines for a create game (60 second default)
var characterSelectDelay    = 1000;     // time in milliseconds to wait before selecting a character on the char screen
var loginDelay          = 1000;     // time in milliseconds to wait before submitting login information
var clickDelay          = 1000;      // wait X milliseconds before next action after a click event
var textDelay          = 1000;      // wait X milliseconds before next action after inserting text into a textbox
var clickDelayRandom      = 1000;      // random amount of time to add to a click
var textDelayRandom      = 1000;      // 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 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;
var waitBeforeNextLineChatMin = 500; // Minimum ammount of time to add after each text line
var waitBeforeNextLineChatMax = 1500; // Maximum ammount of time to add after each text line
//---------------------------------------------------
// Channel Settings
//---------------------------------------------------
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 Sinatra"; // Channel you want your bot to join, leave blank to not join a private channel
//---------------------------------------------------
// Messages To Say Upon Enterting Channel
// First Setting Is For Logging Into A Bot That Tracks Games
// The Rest Are Optional Say Lines. If You Want To Use
// Put What You Want To Say Within the "   "
//---------------------------------------------------
var chatMessageOnJoin = ""; // Chat Message to say Login command for channel bot will only be sent once
var chatMessageAfterGame1 = ""; // Optional chat message Line #1 to say after each game on Channel
var chatMessageAfterGame2 = ""; // Optional chat message Line #2 to say after each game on Channel
var chatMessageAfterGame3 = ""; // Optional chat message Line #3 to say after each game on Channel
var chatMessageAfterGame4 = ""; // Optional chat message Line #4 to say after each game on Channel
var chatMessageAfterGame5 = ""; // Optional chat message Line #5 to say after each game on Channel

//---------------------------------------------------
// Announce Game/Password/Time Til Next Game Settings
// saygamename Must Be Set To True For Any Of These To Work
// You Cannot Have A - In Your Gamename. It Will Make Bot Freak.
// Does Not Announce First Game
//---------------------------------------------------
var saygamename = false; // Must be true for any of the game message settings to work
var nextgamemessage = "Next Game Is"; // This will come before your next game name eg "New game is"
var saypassword = true; // This will togle if the bot says your game pw
var saytime = true; // This will togle if the bot says how much time till creation
var timemessage = "In About"; // This will come after your pw and befor the time eg. "in about" xx seconds say time MUST be true for this to be used
//---------------------------------------------------
// Character Amount Allowed In Game/Char Level Difference
//---------------------------------------------------
var characterdiff        =  "99"; //use this to keep those pesky spam bots out of the f'ing game
//note you must manually hit the check box the first time for this to work
var maxNumberOfPlayersss = "8"; //use this to set the maximum number of players allowed in your game
//---------------------------------------------------
//-------------------------------------------------------------------
// Automule Settings - Must Have Automule = true; In Character Configuration
//-------------------------------------------------------------------
var MuleAccount = "Sinatra3"; // Name to the mule account
var MulePassword = "my password"; // Password to mule account
var MuleCharLocation = 1; //  0, 1  these are mule positions
//  2, 3
//  4, 5
//  6, 7
var MuleGame = "xaq"; // Name of the game you want to mule in
var MuleGamePassword = "password"; // Password of the game you want to mule in

// 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 alreadyLoggedIn = false;
var lastGameMade = GetTickCount();
var lastGameStatus = 0;
var nextGameMake = 0;
var inGameAt = 0;
var chatActionsDone = false;
var lastGameFailed = false;
var zxetay = false;
var tempDelay = Random(waitBeforeNextLineChatMin, waitBeforeNextLineChatMax);
var gameInfo = "";
var bugignor = true;

Include("libs/controlInfo.ntl");
Include("libs/common/NTCommon.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(!alreadyLoggedIn){
    alreadyLoggedIn = true;
if (chatMessageOnJoin.length > 0){
Say(chatMessageOnJoin);
}
}
Delay(500);
chatActionsDone = true;
}
}

if(GetTickCount() > nextGameMake)
{

lastGameFailed = false;

switch(lastGameStatus)
{
case 0:
password = (me.gamepassword);
game = (getGameName(me.gamename));
counter = (getGameCounter(me.gamename, false));
time = (parseInt((nextGameMake - GetTickCount() - tempDelay)/1000+3.0));
if (saygamename){{
gameInfo += nextgamemessage + " " + game + counter;
}
if (saypassword){
gameInfo += "//" + password
}
if (saytime){
gameInfo += " " + timemessage + " " + time + " seconds"
}
}
if(joinChatAfterGame){
if(chatMessageAfterGame1.length > 0){
Say(chatMessageAfterGame1);
if(chatMessageAfterGame1.length > 0){
Delay(tempDelay);
}
}
if(chatMessageAfterGame2.length > 0){
Say(chatMessageAfterGame2);
if(chatMessageAfterGame2.length > 0){
Delay(tempDelay);
}
}
if(chatMessageAfterGame3.length > 0){
Say(chatMessageAfterGame3);
if(chatMessageAfterGame3.length > 0){
Delay(tempDelay);
}
}
if(chatMessageAfterGame4.length > 0){
Say(chatMessageAfterGame4);
if(chatMessageAfterGame4.length > 0){
Delay(tempDelay);
}
}
if(chatMessageAfterGame5.length > 0){
Say(chatMessageAfterGame5);
if(chatMessageAfterGame5.length > 0){
Delay(tempDelay);
}
}
if(saygamename) {
if(bugignor){
bugignor = false;
gameInfo = "";
}
else{
Say(gameInfo)
Delay(tempDelay)
gameInfo = "";
}
}
}
controlData.click(controlData.controls.lobby.button.create);
//controlData.click(controlData.controls.lobby.create.button.useCharacterDifference);//checks the use character diff box...does this every time so no go
controlData.setText(controlData.controls.lobby.create.editBox.characterDifference,(characterdiff)); //level restriction
controlData.setText(controlData.controls.lobby.create.editBox.maxNumberOfPlayers, (maxNumberOfPlayersss)); //max players
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;


break;

case 1:   // Lobby

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

if(GetTickCount() > nextGameMake)
{
var _control;

lastGameFailed = false;

switch(lastGameStatus)
{
case 0:
_control = controlData.get(controlData.controls.lobby.button.create);
if(_control && _control.pressed)
{
controlData.click(controlData.controls.lobby.button.join);
Delay(500);
}

controlData.click(controlData.controls.lobby.button.create);
nextGameMake = GetTickCount() + createGameTimeout; // set our timeout
sendEventToOOG(D2NT_MGR_PRINT_STATUS, location.name, 0);
break;
case 1: // game failed, rollover to reset timer
inGameAt = GetTickCount(); // 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

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

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


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

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

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

for(jn = 0; jn <= 3; jn++)
{
controlData.setText( controlData.controls.lobby.join.editBox.gameName, MuleGame);
Delay (2000);
controlData.setText( controlData.controls.lobby.join.editBox.password, MuleGamePassword);
Delay (2000);
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);
}

for(jn = 0; jn <= 3; jn++)
{
controlData.setText( controlData.controls.lobby.join.editBox.gameName, MuleGame);
Delay (2000);
controlData.setText( controlData.controls.lobby.join.editBox.password, MuleGamePassword);
Delay (2000);
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 getGameName(lastGameString)
{
   if(!lastGameString)
      return "";
   else
      return (lastGameString.split("-")[0] + "-");
}

function getGameCounter(lastGameString, simple)
{
   var myCount;
   if(!lastGameString)
      return "-1";
   else
   {
      switch(lastGameString.split("-")[1])
      {
         case "08":
            myCount = 9;
            break;
         case "09":
            myCount = 10;
            break;
case "99":
myCount = 00;
break;
         default:
            myCount = parseInt(lastGameString.split("-")[1]) + 1;
            break;
      }
      if(!simple)
      {
         if(myCount <= 9)
            return ('0' + myCount);
      }
      return myCount;
   }
}


function NT_ScriptMsgEvents1(msg)
{



switch(msg)
{


case "MULE":

ExitGame();
NTC_SendLogToOOG(NTC_LOG_COMMON, "Log on Mule Account");
NTC_Delay(2000);
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/NTJOINC.ntj");
break;
}
}


break;


case "MULE_START":

Delay(5000);
while(1)

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

zxetay = true;

break;



case "MULE_FULL":

ExitGame();
NTC_SendLogToOOG(NTC_LOG_COMMON, "Log on next Mule char because current Mulechar is full!");
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/NTJOINC.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;

}

}


Offline xiamsammyx

  • Newbie
  • *
  • Posts: 25
  • Reputation 0
  • I <3 PureKaoz.com
    • View Profile
Re: automule
« Reply #19 on: November 15, 2011, 11:44:17 AM »
and char config... I did have the automule set to true, I just have it as false at the moment because it wasnt working and I'm still running...
Code: [Select]
var NTConfig_CastStatic;
var is_D2C = false; // false = Your Running Expansion Character, true = Your Running A Classic Character
// You Can Select Multiple NPCs
var shop_npcNumber = new Array();
//shop_npcNumber.push( 1 ); // Akara
//shop_npcNumber.push( 2 ); // Charsi
//shop_npcNumber.push( 3 ); // Gheed
//shop_npcNumber.push( 4 ); // Drognan
//shop_npcNumber.push( 5 ); // Fara
//shop_npcNumber.push( 6 ); // Elzix
//shop_npcNumber.push( 7 ); // Ormus
//shop_npcNumber.push( 8 ); // Hratli
//shop_npcNumber.push( 9 ); // Asheara
//shop_npcNumber.push( 10 ); // Jamella
//shop_npcNumber.push( 11 ); // Halbu
//shop_npcNumber.push( 12 ); // Anya
//shop_npcNumber.push( 13 ); // Larzuk
//shop_npcNumber.push( 14 ); // Malah

var autoClear = false; // true = Clear Anya's Red Portal, false = Do Not Clear
var anyaGoWp = true; // true = Use Anya WP, false = Do Not Use Anya WP. If you do not have the WP it will error and 'crash/restart'.
var errorGoQuitGame = false; //If You Recieve Error, Quit Or Don't Quit

function NT_LoadConfig()
{
//-----------------------------------------------------
//Shop Botting: Wrote By Lamobchan
//-----------------------------------------------------
//NTConfig_Script.push("NTShopbot.ntj");
//-----------------------------------------------------
// Nip Check - This Checks Your Pickits For Errors
// Only use If Your Getting Errors After Editing Pickit Files Or
// Your Recieving ItemParser(60/64)
//-----------------------------------------------------
//NTConfig_Script.push("NipCheck.ntj");
//-----------------------------------------------------
// Enchanter Settings
// All Other Scripts must be disabled
// Leech/Boss Selection
//-----------------------------------------------------
//NTConfig_Script.push("Enchanter.ntj");
//-----------------------------------------------------
// Leech Settings
// Remove the // In front of this If Your Leeching Someone
// Put Your Leaders Character Name Within the Quotes It Is Case Sensitive
// If Not Leeching Someone Else Leave The // There
//-----------------------------------------------------
//NTConfig_Leader = "" // Your Leader name - CaSe sensitive
//---------------------------------------------------------------
//Shrine Catcher Settings - Unknown Author
//---------------------------------------------------------------
MyConfig_CatchExperienceShrine = true; // hits exp shrines.
MyConfig_CatchGemShrine        = false; // hits gem shrines.
MyConfig_CatchSkillShrine = false; // hits skill shrines.
MyConfig_CatchArmorShrine = false; // hits armor shrines.
MyConfig_CatchResistShrine = false; // hits resist shrines.
//-----------------------------------------------------
//These Settings Are For Getting Bos From Your Barb Follower
//-----------------------------------------------------
//NTConfig_Script.push("NTMephistoBo.ntj"); //Use This In Conjuction with BoMeph To Have Your Barb Follower Bo You Before Heading To Mephisto
//NTConfig_Script.push("NTBaalBo.ntj"); NTConfig_KillBaal = true; //Use This In Conjuction with BoBaal To Have Your Barb Follower Bo You Before Heading To Throne
//NTConfig_Script.push("NTMephistoBoSkip.ntj"); //Use This In Conjuction With BoMeph To Have Your Barb Follower Bo You, Then You Can Start Your Run Normally
//-----------------------------------------------------
//Leecher Scripts For The Various Bosses
//-----------------------------------------------------
//NTConfig_Script.push("NTCowLeech.ntj");
//NTConfig_Script.push("NTBaalLeechFight.ntj"); NTConfig_KillBaal = true; // Baal Leech Fight
  //NTConfig_Script.push("NTDiabloLeechFight.ntj"); // Diablo Leech Fight
//NTConfig_Script.push("NTBaalLeech.ntj"); // Baal leech (just stand whereever the tp is at)
//NTConfig_Script.push("DiabloLeechFightNoSeals.ntj"); // This is for following if you do not want to click seals (helps prevent erroring on leader)
//-----------------------------------------------------
// Leave When Leader Leaves Settings
// If You Want To Leave When Leader Leaves (NTConfig_CheckLeader = true;)
// Open File Located Scripts/NTBot/Tools : NTTools_CheckTheLeader
// Make Sure To Add Your Leaders Name Instead Of The XXXX
//-----------------------------------------------------
NTConfig_CheckLeader = false; // true = checking for leader, false = not checking for leader
NTConfig_FinishCurrentScript = false; // true = finish current script before leaveing, false = leave immediately
NTConfig_RetryScript = false; // true = retry script you left last game in the middle of, false = start a new

//-----------------------------------------------------
// Automule Settings
// Must Have The Settings Configured In NTBot.ntj
//-----------------------------------------------------
NTConfig_AutoMule = false; // true = mule, false = not mule

//-----------------------------------------------------
// Chaos Configurations
// Do Not Put // In Front Of These. Ever
//-----------------------------------------------------
NTConfig_SealOrder = ['w', 'n', 'e']; //seal order, w = west (vizier), n = north (de seis), e = east (venom)
NTConfig_FastMode = 0; // 1 = open seals and kill bosses only (a little more dangerous), 0 = use the follow settings
NTConfig_SkipRegularMonsters = 0; // 1 = skip regular monsters, 0 = kill all monsters
NTConfig_ClearFromFront = 1; // 1 = clear from entrance, 0 clear from star
NTConfig_OpenHiddenStashes = 0; // 0 = dont open hidden stashes, 1 = do. If running fast mode it will not do this
NTConfig_MakeTP = 1; // 1 = maketp(for leechers), 0 = dont make tps
NTConfig_WaitAndBO = 1; // 1 = wait to bo, 0 = dont wait or you dont have a CTA
NTConfig_BOWait = 2; // Time in seconds to wait to BO
//-------------------------------------------------
// Chaos Say Message Settings
// Do Not Put // In Front Of These. Ever
// ""  Means It Will Say Nothing "XXX" Means It'll Say Your Message Between Them
//-------------------------------------------------
DiabloSafeMsg = "The TP should be safe for all." //What leader says so leechbot will enter
DiabloEndMsg = "Diablo was Ez."; //Diablo Death Msg
DiabloDontHitSealMsg = "Dont click the seals. Thats my job and the economy is tough." //Message to say if you want to tell people do not click seals (front message)
DiabloDontHitSealStarMsg = "" //Say A message to remind people dont click seals(star message)
DiabloBOMsg = "Doing my shouts" //Message to announce you'll be bo'ing
DiabloSafeMsgFollower = "" //Message Follower says when they clear the area at entrance after entering tp
DiabloDontHitSealMsgFollower = "Dont click the seals. Thats leaders job and the economy is tough." //Message Follower says to tell people do not click seals (front message)
DiabloDontHitSealStarMsgFollower = "" //Say A Message To remind people dont click seals (star message)
EnterTPForLeechingDiabloMsg = "" //Put the message here that you want your leecher to enter on. must have EXACTLY what the leader says to work
//-------------------------------------------------
// Baal Say Message Configuration (Leader Only)
// Change The Messages For What The Bot Says During Your Baal Runs
// Core Of Count Monsters By Etal Team
//-------------------------------------------------
NTCountMonstersThrone = true; // true=count+say the numbers of monsters in throne   false = don't
BaalKillerMsg = "Dirty TP up." //What To Say When TP Is For Killers
BaalSafeMsg = "Safe TP up." //What To Say When TP Is Safe
BaalKillMsg = "Killing Baal" //What To Say When All Waves Are Done
BaalDeathMsg = "Popping Eldrich and Shenk off quick then NG." //What To Say When You Kill Baal
BaalSpecialTPMsg = "This Is For Leechers. Move To The Top Right Corner To Leech XP." //What To Say When You Open Special TP
EnterTPForLeechFightingBaalMsg = "" //Put the message here that you want your leechfighter to enter on. must have EXACTLY what the leader says to work
EnterTPForLeechingBaalMsg = "" //Put the message here that you want your leeching to enter on. must have EXACTLY what the leader says to work
//------------------------------------------------------------------------------
// Boss configuration
//------------------------------------------------------------------------------
//////Act 1 Bosses///////
//NTConfig_Script.push("NTCow.ntj");
Config_KillRakanishuCows = true;
Config_TristExtension = false;
//NTConfig_Script.push("NTBishibosh.ntj");
//NTConfig_Script.push("NTBoneAsh.ntj");
Config_BoneAshClear = [false, 0x01]; //false: Don't Clear/true: Clear Room
//NTConfig_Script.push("NTCorpsefire.ntj");
Config_CorpsefireClear = [0, 0x01]; //0: Disabled/ 1: Clear Path/ 2: Clear All
//NTConfig_Script.push("NTTheSmith.ntj");
//NTConfig_Script.push("NTPitSpawnFoulDog.ntj");
//NTConfig_Script.push("NTColdcrow.ntj");
Config_ColdcrowClearLevel1 = [false, 0x01]; //false: Don't Clear/true: Clear All
Config_ColdcrowClearLevel2 = [false, 0x01]; //false: Don't Clear/true: Clear All
//NTConfig_Script.push("NTAndariel.ntj");
NTConfig_Script.push("NTCountess.ntj");
//NTConfig_Script.push("NTTreehead.ntj");
//NTConfig_Script.push("NTPit.ntj"); NTConfig_ClearPitLevel1 = 0; // 0 : don't clear, 1 : clear path only, 2 : clear all
//NTConfig_Script.push("NTMausoleum.ntj"); NTConfig_KillBloodRaven = true;
//NTConfig_Script.push("NTBloodRavenOnly.ntj");
//NTConfig_Script.push("NTHole.ntj"); NTConfig_ClearHoleLevel1 = 1; // 0 : don't clear, 1 : clear path only, 2 : clear all
//NTConfig_Script.push("NTTristram.ntj"); NTConfig_KillRakanishu = true;
//NTConfig_Script.push("NTTristramSpecial.ntj"); NTConfig_KillRakanishuSpecial = true;

//////Act 2 Bosses///////
//NTConfig_Script.push("NTBeetleburst.ntj");
//NTConfig_Script.push("NTDarkElder.ntj"); // Remember this guy is "magic immune" so hammers do not do this well
//NTConfig_Script.push("NTFangskin.ntj");
//NTConfig_Script.push("NTStonyTomb.ntj");
Config_StonyTombClearLevel1 = [0, 0x01]; // 0=disabled, 1=clear path only, 2=clear all
        Config_StonyTombClearLevel2 = [false, 0x01]; // false: Don't Clear/true: Clear Path
//NTConfig_Script.push("NTClearHalls.ntj");
Config_HallsClear = [false, false, 1, 0x01]; //First 2 options are for lvl 2 and 3 of halls, true=clear, false=no clear //1=clear path only, 2 clear entire level
//NTConfig_Script.push("NTDuriel.ntj");
Config_ClearStaffRoom = false;
//NTConfig_Script.push("NTAncientTunnels.ntj");
//NTConfig_Script.push("NTColdworm.ntj");
//NTConfig_Script.push("NTRadament.ntj");
//NTConfig_Script.push("NTTombFollowFriendly.ntj"); //To Do Public Tombs To Level Others
NTConfig_ClearChestPosition = true; //true = clear monsters around chest, false = don't
NTConfig_ClearTombs = true; // Opens Tp And Proceeds To Clear Tombs Slowly So Leechers Can Gain Exp
//NTConfig_Script.push("NTSummoner.ntj"); NTConfig_KillFireEye = false;

//////Act 3 Bosses///////
NTConfig_Script.push("NTMephisto.ntj");
//NTConfig_Script.push("NTTravincal.ntj");
//NTConfig_Script.push("NTKurastTravel.ntj");
//NTConfig_Script.push("NTStormtree.ntj");
//NTConfig_Script.push("NTFlayerDungeon.ntj");
Config_FlayerDungeonClear = [false, false, false, 1, 0x01];  //First 3 options are for lvl 1 2 and 3 of flayerdungeon, true=clear, false=no clear //1=clear path only, 2 clear entire level
  //NTConfig_Script.push("NTSszarkTheBurning.ntj");
Config_SszarkTheBurningClear = false; //false=dont clear room, true=clear room

//////Act 4 Bosses///////
//NTConfig_Script.push("NTHephasto.ntj");
//NTConfig_Script.push("NTIzual.ntj");
//NTConfig_Script.push("NTDiablo.ntj");

//////Act 5 Bosses///////
//NTConfig_Script.push("NTBaalSpecial.ntj"); NTConfig_KillBaal = true; //Teleports to top left to opena safe tp for leechers
NTConfig_Script.push("NTBaal.ntj"); NTConfig_KillBaal = true;
//NTConfig_Script.push("NTPindleskin.ntj"); NTConfig_NihlathakExtension = false;
NTConfig_Script.push("NTEldritch.ntj"); NTConfig_ShenkExtension = true;
//NTConfig_Script.push("NTThreshSocket.ntj");
//NTConfig_Script.push("NTAbbadon.ntj");
ClearAbaddon = 0; //0 = Don't clear level, 1 = Do clear level
ClearAbaddonChest = true;
//NTConfig_Script.push("NTInfernalPit.ntj");
ClearInfernalPit = 0; //0 = Don't clear level, 1 = Clear path, 2 = Do clear level
OpenUrn = true;
//NTConfig_Script.push("NTFrozenRiver.ntj"); NTConfig_ClearFrozenRiver = false;
//NTConfig_Script.push("NTGlacialTrail.ntj"); NTConfig_ClearGlacialTrail = false;
//NTConfig_Script.push("NTIcyCellar.ntj"); NTConfig_ClearIcyCellar = false;
//NTConfig_Script.push("NTNihlathak.ntj"); NTConfig_PindleskinExtension = false;
ViperCheck = true; //true = if vipers exit game, false = do not skip if vipers are found

//------------------------------------------------------------------------------
// Max Game Time/Game Delays
//------------------------------------------------------------------------------
me.maxgametime = 1800; // time in seconds, maximum game length (0 is infinite)
NTConfig_StartDelay = 0; // Delay time in milliseconds to start;
NTConfig_AreaDelay = 100; // Delay time in milliseconds to change area;
NTConfig_SnagDelay = 50; // Delay time in milliseconds to wait before starting picking items

//------------------------------------------------------------------------------
// Skip Checks/Merc Options/Potion Usage/Chicken Threshholds
//------------------------------------------------------------------------------
NTConfig_SkipHealLife = 95; // If you have more than this percent of life, you won't go to a healer
NTConfig_SkipHealMana = 30; // If you have more than this percent of mana, you won't go to a healer
NTConfig_UseMerc = true; // Set to true if you use a mercenary, will revive merc at a reviver npc.
NTConfig_ResetWeapon = false; // Set to true to reset weapon when reviving merc

NTConfig_LifeThresh = 90; // Drink a normal potion if under this percent of life.
NTConfig_LifeRejuvThresh = 65; // Drink a rejuvenation potion if under this percent of life.
NTConfig_ManaThresh = 10; // Drink a normal potion if under this percent of mana.
NTConfig_ManaRejuvThresh = 0; // Drink a rejuvenation potion if under this percent of mana.
NTConfig_LifeChicken = 45; // This is your chicken life percent. If you go below this life total, exit game.
NTConfig_ManaChicken = 0; // This is your chicken mana percent. If you go below this mana total, exit game.

NTConfig_MercLifeThresh = 70; // This is the threshold to use a life potion on your merc in percent.
NTConfig_MercRejuvThresh = 15; // This is the threshold to use a rejuv potion on your merc in percent.
NTConfig_MercChicken = 0; // This is your mercs chicken life percent. If he goes below this, exit game.

//------------------------------------------------------------------------------
//Inventory Usage
//------------------------------------------------------------------------------
NTConfig_FreeSpace = 4; // Number of free columns. If less full columns are free stashing is set.

// The numbers correspond to your inventory. Set 0 to keep whatever is there, 1 to stash it.
NTConfig_Columns[0] = [1,1,1,1,0,0,0,0,0,0];
NTConfig_Columns[1] = [1,1,1,1,0,0,0,0,0,0];
NTConfig_Columns[2] = [1,1,1,1,0,0,0,0,0,0];
NTConfig_Columns[3] = [1,1,1,1,0,0,0,0,0,0];

NTConfig_MinGoldToStash = 50000; // Maximum gold amount carried before going to stash

//----------------------------------------------------------------------------------------------
// Type of potion used in each belt column
// Available types : "hp" = health | "mp" = mana | "rv" = rejuv. Can use other potion types too.
// Keep equal types at adjacent columns. First HP then MP and then HP again is a bad choice.
// Keep HP and MP at the beginning of the belt (in case you want to use rejuv and other types).
// Rejuvenations MUST, I REPEAT MUST be at the end of the belt (last x columns).
// To use rejuvenations only, put "rv" in all columns.
//----------------------------------------------------------------------------------------------
NTConfig_BeltColType[0] = "hp";
NTConfig_BeltColType[1] = "mp";
NTConfig_BeltColType[2] = "rv";
NTConfig_BeltColType[3] = "rv";

//-----------------------------------------------------------------------------------
// SnagIt configuration
// Select one group only (normal / advance / extreme)
//-----------------------------------------------------------------------------------
//NTConfig_NIPFilePath.push("normal/normal.nip");
//NTConfig_NIPFilePath.push("normal/magic_rare.nip");
//NTConfig_NIPFilePath.push("normal/set.nip");
//NTConfig_NIPFilePath.push("normal/unique.nip");
//NTConfig_NIPFilePath.push("normal/craft.nip");

//NTConfig_NIPFilePath.push("advance/normal.nip");
//NTConfig_NIPFilePath.push("advance/magic_rare.nip");
//NTConfig_NIPFilePath.push("advance/set.nip");
//NTConfig_NIPFilePath.push("advance/unique.nip");
//NTConfig_NIPFilePath.push("advance/craft.nip");

//NTConfig_NIPFilePath.push("extreme/normal.nip");
//NTConfig_NIPFilePath.push("extreme/magic_rare.nip");
//NTConfig_NIPFilePath.push("extreme/set.nip");
//NTConfig_NIPFilePath.push("extreme/unique.nip");
//NTConfig_NIPFilePath.push("extreme/craft.nip");
//NTConfig_NIPFilePath.push("Early.nip");
//NTConfig_NIPFilePath.push("shoping/shoping.nip");
      NTConfig_NIPFilePath.push("warpickit1.nip");

NTConfig_SnagRange = 90; // Radius to check for dropped items. 40 is a good number here
//------------------------------------------------------------------------------
// Cubing configuration
//------------------------------------------------------------------------------
NTConfig_Cubing = false; // Enable cubing

NTConfig_CubingItem.push([NTCU_GEM, 560]); // Flawless Amethyst
NTConfig_CubingItem.push([NTCU_GEM, 565]); // Flawless Topaz
NTConfig_CubingItem.push([NTCU_GEM, 570]); // Flawless Saphire
NTConfig_CubingItem.push([NTCU_GEM, 575]); // Flawless Emerald
NTConfig_CubingItem.push([NTCU_GEM, 580]); // Flawless Ruby
NTConfig_CubingItem.push([NTCU_GEM, 585]); // Flawless Diamond
NTConfig_CubingItem.push([NTCU_GEM, 600]); // Flawless Skull

//NTConfig_CubingItem.push([NTCU_MAGIC, 420]); // Magic Tiara
//NTConfig_CubingItem.push([NTCU_MAGIC, 421]); // Magic Diadem
//NTConfig_CubingItem.push([NTCU_MAGIC, 285]); // Maiden Javelin - iLevel 71
//NTConfig_CubingItem.push([NTCU_MAGIC, 295]); // Ceremonial Javelin - iLevel 77
//NTConfig_CubingItem.push([NTCU_MAGIC, 305]); // Matriarchal Javelin - iLevel 80

//NTConfig_CubingItem.push([NTCU_MAGIC_CHARM, 603]); // Magic Small Charm
//NTConfig_CubingItem.push([NTCU_MAGIC_CHARM, 605]); // Magic Grand Charm

//NTConfig_CubingItem.push([NTCU_CRAFT_HITPOWER_GLOVES, 382]); // Craft Heavy Bracers
//NTConfig_CubingItem.push([NTCU_CRAFT_HITPOWER_GLOVES, 452]); // Craft Vambraces

//NTConfig_CubingItem.push([NTCU_CRAFT_BLOOD_HELM, 354]); // Craft Casque
//NTConfig_CubingItem.push([NTCU_CRAFT_BLOOD_HELM, 424]); // Craft Armet
//NTConfig_CubingItem.push([NTCU_CRAFT_BLOOD_BOOTS, 388]); // Craft Battle Boots
//NTConfig_CubingItem.push([NTCU_CRAFT_BLOOD_BOOTS, 458]); // Craft Mirrored Boots
//NTConfig_CubingItem.push([NTCU_CRAFT_BLOOD_GLOVES, 381]); // Craft Sharkskin Gloves
//NTConfig_CubingItem.push([NTCU_CRAFT_BLOOD_GLOVES, 451]); // Craft Vampirebone Gloves
//NTConfig_CubingItem.push([NTCU_CRAFT_BLOOD_BELT, 392]); // Craft Mesh Belt
//NTConfig_CubingItem.push([NTCU_CRAFT_BLOOD_BELT, 462]); // Craft Mithril Coil
//NTConfig_CubingItem.push([NTCU_CRAFT_BLOOD_AMULET, 520]); // Craft Amulet
//NTConfig_CubingItem.push([NTCU_CRAFT_BLOOD_RING, 522]); // Craft Ring

//NTConfig_CubingItem.push([NTCU_CRAFT_CASTER_AMULET, 520]); // Craft Amulet
//NTConfig_CubingItem.push([NTCU_CRAFT_CASTER_BOOTS, 385]); // CASTER Demonhide Boots
//NTConfig_CubingItem.push([NTCU_CRAFT_CASTER_BOOTS, 455]); // CASTER Wyrmhide Boots
//NTConfig_CubingItem.push([NTCU_CRAFT_CASTER_BELT, 461]); // CASTER Vampirefang Belt
//NTConfig_CubingItem.push([NTCU_CRAFT_CASTER_BELT, 391]); // CASTER Sharkskin Belt

//NTConfig_CubingItem.push([NTCU_CRAFT_SAFETY_SHIELD, 447]); // Craft Monarch
//NTConfig_CubingItem.push([NTCU_CRAFT_SAFETY_AMULET, 520]); // Craft Amulet

//NTConfig_CubingItem.push([NTCU_ESSENSE, 0]); // Token Of Absolution

//NTConfig_CubingItem.push([NTCU_RUNE_THUL, 562]);
//NTConfig_CubingItem.push([NTCU_RUNE_AMN, 557]);
//NTConfig_CubingItem.push([NTCU_RUNE_SOL, 567]);
//NTConfig_CubingItem.push([NTCU_RUNE_SHAEL, 577]);
//NTConfig_CubingItem.push([NTCU_RUNE_DOL, 572]);
//NTConfig_CubingItem.push([NTCU_RUNE_HEL, 582]);
//NTConfig_CubingItem.push([NTCU_RUNE_IO, 563]);
//NTConfig_CubingItem.push([NTCU_RUNE_LUM, 558]);
//NTConfig_CubingItem.push([NTCU_RUNE_KO, 568]);
//NTConfig_CubingItem.push([NTCU_RUNE_FAL, 578]);
//NTConfig_CubingItem.push([NTCU_RUNE_LEM, 573]);
//NTConfig_CubingItem.push([NTCU_RUNE_PUL, 583]);
//NTConfig_CubingItem.push([NTCU_RUNE_UM, 564]);
//NTConfig_CubingItem.push([NTCU_RUNE_MAL, 559]);
//NTConfig_CubingItem.push([NTCU_RUNE_IST, 569]);
//NTConfig_CubingItem.push([NTCU_RUNE_GUL, 579]);
//NTConfig_CubingItem.push([NTCU_RUNE_VEX, 574]);
//NTConfig_CubingItem.push([NTCU_RUNE_OHM, 584]);
//NTConfig_CubingItem.push([NTCU_RUNE_LO, 565]);
//NTConfig_CubingItem.push([NTCU_RUNE_SUR, 560]);
//NTConfig_CubingItem.push([NTCU_RUNE_BER, 570]);
//NTConfig_CubingItem.push([NTCU_RUNE_JAH, 580]);
//NTConfig_CubingItem.push([NTCU_RUNE_CHAM, 575]);

//***** Include the following, Primary item must be setted in item_configs folder *****
//NTConfig_CubingItem.push([NTCU_SOCKET_BODYARMOR, 436]); // Socket Great Hauberk
//NTConfig_CubingItem.push([NTCU_SOCKET_BODYARMOR, 435]); // Socket Boneweave
//NTConfig_CubingItem.push([NTCU_SOCKET_BODYARMOR, 443]); // Socket Archon Plate
//NTConfig_CubingItem.push([NTCU_SOCKET_BODYARMOR, 438]); // Socket Hellforge Plate
//NTConfig_CubingItem.push([NTCU_SOCKET_BODYARMOR, 439]); // Socket Kraken Shell
//NTConfig_CubingItem.push([NTCU_SOCKET_BODYARMOR, 442]); // Socket Sacred Armor

//NTConfig_CubingItem.push([NTCU_SOCKET_WEAPON, 254]); // Socket Colossus Voulge
//NTConfig_CubingItem.push([NTCU_SOCKET_WEAPON, 255]); // Socket Thresher
//NTConfig_CubingItem.push([NTCU_SOCKET_WEAPON, 256]); // Socket Cryptic Axe
//NTConfig_CubingItem.push([NTCU_SOCKET_WEAPON, 257]); // Socket Great Poleaxe
//NTConfig_CubingItem.push([NTCU_SOCKET_WEAPON, 258]); // Socket Giant Thresher
//NTConfig_CubingItem.push([NTCU_SOCKET_WEAPON, 29]); // Socket Crystal Sword

//NTConfig_CubingItem.push([NTCU_SOCKET_SHIELD, 447]); // Socket Monarch

//NTConfig_CubingItem.push([NTCU_UPGRADE_E_UNIQUE_WEAPON, 148]); // HONE SUNDAN : Exceptional -> Elite
//NTConfig_CubingItem.push([NTCU_UPGRADE_E_UNIQUE_WEAPON, 157]); // RIBCRACKER : Exceptional -> Elite
//NTConfig_CubingItem.push([NTCU_UPGRADE_E_UNIQUE_WEAPON, 103]); // SUICIDE BRANCH : Exceptional -> Elite
//NTConfig_CubingItem.push([NTCU_UPGRADE_E_UNIQUE_WEAPON, 295]); // TITANS'S REVENGE : Exceptional -> Elite

//NTConfig_CubingItem.push([NTCU_UPGRADE_N_UNIQUE_ARMOR, 335]); // BLOODFIST : Normal -> Exceptional
//NTConfig_CubingItem.push([NTCU_UPGRADE_E_UNIQUE_ARMOR, 381]); // BLOODFIST or GRAVEPALM: Exceptional -> Elite
//NTConfig_CubingItem.push([NTCU_UPGRADE_N_UNIQUE_ARMOR, 337]); // MAGEFIST : Normal -> Exceptional
//NTConfig_CubingItem.push([NTCU_UPGRADE_E_UNIQUE_ARMOR, 383]); // MAGEFIST or LAVA GOUT : Exceptional -> Elite
//NTConfig_CubingItem.push([NTCU_UPGRADE_N_UNIQUE_ARMOR, 339]); // HOTSPUR: Normal -> Exceptional
//NTConfig_CubingItem.push([NTCU_UPGRADE_E_UNIQUE_ARMOR, 385]); // HOTSPUR or INFERNOSTRIDE : Exeptional -> Elite
//NTConfig_CubingItem.push([NTCU_UPGRADE_E_UNIQUE_ARMOR, 385]); // WATERWALK : Exeptional -> Elite
//NTConfig_CubingItem.push([NTCU_UPGRADE_E_UNIQUE_ARMOR, 389]); // GORE RIDER : Exceptional -> Elite
//NTConfig_CubingItem.push([NTCU_UPGRADE_E_UNIQUE_ARMOR, 360]); // SKIN OF THE VIPERMAGI : Exceptional -> Elite
//NTConfig_CubingItem.push([NTCU_UPGRADE_E_UNIQUE_ARMOR, 365]); // SHAFTSTOP : Exeptional -> Elite
//NTConfig_CubingItem.push([NTCU_UPGRADE_E_UNIQUE_ARMOR, 420]); // KIRA'S GUARDIAN : Exeptional -> Elite
//NTConfig_CubingItem.push([NTCU_UPGRADE_E_UNIQUE_ARMOR, 477]); // ARREAT'S FACE : Exceptional -> Elite
//NTConfig_CubingItem.push([NTCU_UPGRADE_E_UNIQUE_ARMOR, 487]); // HOMUNCULUS : Exceptional -> Elite
//NTConfig_CubingItem.push([NTCU_UPGRADE_E_UNIQUE_ARMOR, 481]); // HERALD OF ZAKARUM : Exceptional -> Elite

//------------------------------------------------------------------------------
// Gamble configuration
// To specify what items to gamble, adjust the array with the desired item codes
//------------------------------------------------------------------------------
NTConfig_Gamble = true; // Enable gambling
NTConfig_GambleStartGold = 1000000; // Gold amount to start the gambling
NTConfig_GambleStopGold = 600000; // Gold amount to stop the gambling

NTConfig_GambleItem.push(520); // Amulets
NTConfig_GambleItem.push(522); // Rings
NTConfig_GambleItem.push(418); // Circlets
NTConfig_GambleItem.push(419); // Coronets
//NTConfig_GambleItem.push(334); // Leather Gloves
//NTConfig_GambleItem.push(335); // Heavy Gloves
//NTConfig_GambleItem.push(336); // Chain Gloves
//NTConfig_GambleItem.push(337); // Light Gauntlets
//NTConfig_GambleItem.push(338); // Gauntlets
//-----------------------------------------------------------------------------
// XML Item Logging - Thanks to several people listed in .txt file
// These settings are used to have an enhanced experience for logging items
// sold/bought/picked up/etc. Make sure to goto location scripts/logs and remove
// the XXXX from the .txt file and change it to your character's name (exactly)
// This will negate all first time run errors.
//------------------------------------------------------------------------------
NTConfig_UseXMLItemlog = true; // true = logs all items into a .txt file for easy reading, false = does not log items in a .txt file
NTConfig_LogSoldItems = true; // true = adds all items sold to the d2nt manager's log, false = does not add items sold to the d2nt manager's log
NTConfig_LogSoldItems = [4,5,6,7]; // 4= magic, 5 = set, 6 = rare, 7 = unique
//------------------------------------------------------------------------------
// General configuration
//------------------------------------------------------------------------------
NTConfig_CheckForSojs = true;
NTConfig_PublicMode = true;
NTConfig_CheckCloneDiablo = true; // Set to true if you want to wait in game after notifying "Diablo Walks the Earth" msg.
NTConfig_OpenChest = true; // Set to true to open chest
me.quitonhostile = false; // Leave When Hostiled Out Of Town
NTConfig_LeaveWhenHostiled = false;  // Leave When Hostiled In Town
CheckForPassword = false; // true = checks to see if the password is entered like it should be
// ^^ If CheckForPassword = true and your trying to play open games it will leave game immediately. so turn to false 
//------------------------------------------------------------------------------
// Attack configuration - There should be no zeros after editing
//------------------------------------------------------------------------------
NTConfig_AttackSkill[0] = 0; // First Spell To Cast In Combat
NTConfig_AttackSkill[1] = 49; // Primary Timed Spell To Cast Against Bosses (Blizzard/Orb/Meteor/Etc)
NTConfig_AttackSkill[2] = 53; // Primary Untimed Spell To Cast Against Bosses (Glacial Spike/Fireball/Etc)
NTConfig_AttackSkill[3] = 53; // Primary Timed Spell To Cast Against Non Boss Mobs (Blizzard/Orb/Meteor/Etc)
NTConfig_AttackSkill[4] = 49; // Primary Untimed Spell To Cast Against Non Boss Mobs (Glacial Spike/Fireball/Etc)
NTConfig_AttackSkill[5] = 49; // Primary Timed Spell To Cast If Immune To Main Spell (Blizzard/Orb/Meteor/Etc)
NTConfig_AttackSkill[6] = 53; // Primary Untimed Spell To Cast If Immune To Main Spell (Glacial Spike/Fireball/Etc)
NTConfig_ClearPosition = true; // Set to true if you want to clear area after killing boss.

//Still Working On The Dancing
//Ported From Etal, Thank them for the main coding
NTConfig_UseColdOnDury = false;
NTConfig_UseOrb = false;
NTConfig_UseBlizz = false;
NTConfig_ChainLightOnLightImmunes = true; // set to true to use chain lighning on light immunes
NTConfig_DancingSorc = true; // use advance attack script
NTConfig_AttackJump = 5; // number of attacks before sorc tele's
NTConfig_DanceStartHp = 86;  // set percent of hp if below that sorc will tele around instead of sitting and getting ass whooped
// set to 0 to disable 101 to always tele
NTConfig_DanceStartMp = 45; // set percent of mp if below that sorc will tele around instead of sitting and getting ass whooped
// set to 0 to disable 101 to always tele

//--------------------------------------------------
// Check Safe Section
// This Is The Settings To Town If You/Your Merc Gets A Curse/Dies/Runs Out Of Potions
//--------------------------------------------------
// Check self safe in field (NOT in town). Set to 0 if you won't
// 0x01 : Potion, 0x02 : Poison, 0x04 : Amplify Damage, 0x08 : Weaken, 0x10 : Iron Maiden, 0x20 : Decrepify, 0x40 : Lower Resist
NTConfig_CheckSelfSafe = 0x04|0x40; //If you do not wish to Check For Anything Change To 0;
// Check merc's safe in field (NOT in town). Set to 0 if you won't
// 0x01 : Death, 0x02 : Poison, 0x04 : Amplify Damage, 0x08 : Weaken, 0x10 : Iron Maiden, 0x20 : Decrepify, 0x40 : Lower Resist
NTConfig_CheckMercSafe = 0x01|0x04|0x10|0x40; //If you do not wish to Check For Anything Change To 0;


NTConfig_CastStatic = 60; // Cast Static Field Only On Bosses
}

Offline xiamsammyx

  • Newbie
  • *
  • Posts: 25
  • Reputation 0
  • I <3 PureKaoz.com
    • View Profile
Re: automule
« Reply #20 on: November 16, 2011, 10:47:19 PM »
OK so I got it to initiate the muling process just fine and the mule joins the game fine, but then I get this error. Is it because I chose the mule to be a sin?
Do I have to set up a character config for the mule?


Offline cooptheking03

  • D2NT Specialist
  • Big Boss Man
  • PureKaoz HeRo
  • *******
  • Posts: 1656
  • Reputation 4
  • I Run This Chizz
    • View Profile
Re: automule
« Reply #21 on: November 16, 2011, 10:57:13 PM »
that is exactly what i failed :)
Mine used barb/necro/druid just fine...i never had a sin mule mate. Didnt know it would cause this :(
Any chance you can make that mule one of the above and test again?
I Do Not Do Support Via PM.
I Can Help Xfer Anycore/Anyrealm/Anytime.
PM me here or on JSP : TheAmazingShac0

Offline xiamsammyx

  • Newbie
  • *
  • Posts: 25
  • Reputation 0
  • I <3 PureKaoz.com
    • View Profile
Re: automule
« Reply #22 on: November 17, 2011, 04:06:15 PM »
that is exactly what i failed :)
Mine used barb/necro/druid just fine...i never had a sin mule mate. Didnt know it would cause this :(
Any chance you can make that mule one of the above and test again?

Will do and let you know.

Offline AlCapwn

  • Newbie
  • *
  • Posts: 11
  • Reputation 0
  • PureKaoz da baws!
    • View Profile
Re: automule
« Reply #23 on: November 18, 2011, 11:16:38 PM »
I posted in wrong topic and i spammed the remove button and it somehow doesnt remove my post.
« Last Edit: November 18, 2011, 11:36:46 PM by AlCapwn »
Looking for leechers to my Hammerdin and Light Soso chaos/baals EU SCL. - pm me here or widop@d2jsp for info.