[Release] Muddy's D2NT

05/25/2011 10:18 TheCrazy11#2071
Quote:
Originally Posted by DeathFromHeaven View Post
mir ist gerade was sehr seltsames passiert:

wollte wie von Gruener Apfel beschrieben mir mal die Leechscripte mit einbauen.

Hab mir also 2 Bot-scripte im "bots" Ordner erstellt und den von Gruener apfel genannten Inhalt eingefügt. ebenso mit dem Entrypoint und in der Charconfig. Nach einem Manager-Restart, kommt D2 aber nicht mal mehr über den Loading screen hinaus -.-
Passiert mir nicht zum ersten Mal. Also hab ich nur die beiden Bot-Scripte im "bots" Ordner wieder gelöscht und nach nem Manager-Restart funzte alles wie gehabt :)

Kann mir wer jetzt bitte erklären wieso das so ist? Ich kann mir absolut keine eigenen Scripte einfügen :( egal was drin steht, D2 bleibt beim Loading-screen stehen, "klickt" sich also nicht durch den Splash-Screen oder versucht überhaupt sich einzuloggen oder irgendwas :(
Quote:
Originally Posted by GruenerApfel View Post
war das nur bei den von mir geposteten scripten so, oder is das generell der fall ?

weil n fehler beim copy pasten habe ich eigentlich nicht gemacht und was vergessen habe ich, denke ich, auch net
Das kann vorkommen, wenn die Scripte nicht in [code]-Tags gepackt sind, dann verarbeitet PHP bzw. die Datenbanksprache (z.B. SQL, Perl) teilweise Formatierungen.
Besonders der Teil, wo der Gamename rausgelesen wird, ist sehr anfällig dafür.
Vergleiche folgende Variablen: regOffline, regInChat und regGameName

Um das zu vermeiden entweder in [code]-Tags posten oder die Dateien an den Post anhängen!


Quote:
Originally Posted by DeathFromHeaven View Post
Nein, das ist Allgemein so, wenn ich eine neue Datei im "bots"-Ordner anlege, egal mit welchem Namen, und auch egal mit welchem Inhalt :(
Das kommt mir komisch vor, die Scripte im Ordner bots werden erst aufgerufen, wenn der Char in einem Spiel ist, da scheint bei deinen Entrypoints was nicht zu stimmen.
Lösche mal alle deine Entrypoints und lade dir die aktuellen vom 1. Post.
Eventuell auch die Dateien direkt im Ordner NTBot wie MWBotGame.ntj und eventuell NTMule.ntj oder andere.


Quote:
Originally Posted by letsid View Post
Ich habe die Snagit ersetzt und dann kam ein fehler:
Zeile 88 in der NTBotGame.ntl
Hast du schon die aktuellste Version von Muddy's?!?
Die NTBotGame.ntl hat Muddy nämlich komplett durch MWBotGame.ntl ersetzt, die NTBotGame.ntl gehört deshalb nicht zu Muddy's Bot!
Wird nicht benötigt und ist auch nicht kompatibel zu Muddy's Bot.
05/25/2011 10:53 GruenerApfel#2072
Quote:
Originally Posted by TheCrazy11 View Post
Das kann vorkommen, wenn die Scripte nicht in [code]-Tags gepackt sind, dann verarbeitet PHP bzw. die Datenbanksprache (z.B. SQL, Perl) teilweise Formatierungen.
Besonders der Teil, wo der Gamename rausgelesen wird, ist sehr anfällig dafür.
Vergleiche folgende Variablen: regOffline, regInChat und regGameName

Um das zu vermeiden entweder in [code]-Tags posten oder die Dateien an den Post anhängen!
ah okay danke ;), dann gleich nochmal richtig...

also der entrypoint wäre:

Code:
//###################################################################
//###########################Einstellungen###########################
//###################################################################
	
var leaderAccountName          = "";
var leaderName                 = "";
var gamepassword               = "";
var JoinGameAgain              = false; // wenn der Bot nach chicken oder disconnect ins selbe Spiel nochmal gehen soll, auf true stellen

var UseCDKeyChangeTrick        = false; // Wenn der LeechBot mehrere CD Keys nutzen soll, dann auf true stellen.

var joinRandomChannel          = false;
var joinChannelInChat          = "";
var firstJoinMessage           = ""; // Soll der leechbot etwas sagen, wenn er in den Chat kommt, dann hier eintragen
var chatMessageAfterGame       = ""; // Soll der leechbot etwas sagen, wenn er aus dem Spiel kommt, dann hier eintragen

//###################################################################
//##############################Delays###############################
//###################################################################

var gameMinLength              = 180000;

// realm delays (minutes)
var unableToConnectRetry       = 2;
var realmDownRetry             = 60;
var disconnectedRetry          = 2;
var cdkeyInUseRetry            = 2;

// interface delays (milliseconds)
var connectingToBnetTimeout    = 20000;
var characterScreenTimeout     = 10000;
var pleaseWaitTimeout          = 10000;
var createGameThreshold        = 10000;
var createGameThresholdRandom  = 1000;
var createGameTimeout          = 15000;
var waitInLineTimeout          = 15000;
var characterSelectDelay       = 1000;
var loginDelay                 = 1000;
var clickDelay                 = 500;
var textDelay                  = 500;
var clickDelayRandom           = 500;
var textDelayRandom            = 500;
var gameDoesNotExistDelayMin   = 600000;
var gameDoesNotExistDelayMax   = 900000;
var gameDoesNotExistTimeout    = 30000;
var waitBeforeEnterChatMin     = 1000;
var waitBeforeEnterChatMax     = 2000;
var waitInChatBeforeActionsMin = 2000;
var waitInChatBeforeActionsMax = 3000;

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

//###################################################################
//###################################################################
//###############DO NOT CHANGE ANYTHING BELOW THIS###################
//###################################################################
//###################################################################

//D2NT Manager Command

const D2NT_MGR_LOADING = 1;
const D2NT_MGR_READY = 2;
const D2NT_MGR_LOGIN = 3;
const D2NT_MGR_CREATE_GAME = 4;
const D2NT_MGR_INGAME = 5;
const D2NT_MGR_RESTART = 6;
const D2NT_MGR_CHICKEN = 7;
const D2NT_MGR_PRINT_STATUS = 8;
const D2NT_MGR_PRINT_LOG = 9;

var lastGameMade     = GetTickCount();
var lastGameStatus     = 0;
var nextGameMake     = 0;
var inGameAt       = 0;
var chatActionsDone   = false;
var lastGameFailed     = false;
var sayChatMsgAfterGame = false;

Include("libs/controlInfo.ntl");

var controlData = new controlInfo();

var samegame = '';
var oldgame = '';
var game = '';
var _gamename = "";
var _gamepassword = "";
var _leaderOfflineTick = -LeaderOfflineDelay;
var _leaderInChatTick = -LeaderInChatDelay;
var _GameIsFullTick = -GameIsFullDelay;
var Debug = false;
var joinChatAfterGame    = true;


function NTMain()
{
    Delay(1000);

    var _ingame = false;

    controlData.clickDelay = clickDelay;
    controlData.textDelay = textDelay;
    controlData.clickDelayRandom = clickDelayRandom;
    controlData.textDelayRandom = textDelayRandom;

    while(1)
    {
        if(me.ingame)
        {
            _gamename = me.gamename;
            _gamepassword = me.gamepassword;

            if(!inGameAt)
                inGameAt = GetTickCount();

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

                if(Load("NTBot/MWBotGame.ntj"))
                {
                    _ingame = true;

                    if(me.playtype > 0)
                        sendEventToOOG(D2NT_MGR_INGAME, "In Game[IP:" + me.gameserverip.split(".")[3] + "]", 0);
                    else
                        sendEventToOOG(D2NT_MGR_INGAME, "In Game", 0);

                    lastGameStatus = 2; // in game successful

                    // To exit game as soon as the leader quits
                    //Load("NTBot/NTCheckLeader.ntj");
                    // to party only the leader
                    //Load("NTBot/tools/NTTools_AutoPartyJoinFriendGames.ntj");
                }
            }

            Delay(1000);
        }
        else
        {
            if(_ingame)
            {
                _ingame = false;
                sayChatMsgAfterGame = true;

                sendEventToOOG(D2NT_MGR_READY, "", 0);
            }

            locationAction(controlData.getLocation());

            Delay(500);
        }
    }
}

function locationAction(location)
{
    switch(location.id)
    {
    case 3: // Lobby Chat
        sendEventToOOG(D2NT_MGR_PRINT_STATUS, location.name, 0);

        if(!chatActionsDone)
        {  
            Delay(Random(waitInChatBeforeActionsMin, waitInChatBeforeActionsMax));

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

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

            chatActionsDone = true;
        }

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

        game = '';

        var _tick = GetTickCount();
        if ((_leaderOfflineTick < 0 || (_leaderOfflineTick + LeaderOfflineDelay) < _tick)
         && (_leaderInChatTick < 0 || (_leaderInChatTick + LeaderInChatDelay) < _tick)
         && (_GameIsFullTick < 0 || (_GameIsFullTick + GameIsFullDelay) < _tick))
        {
            DebugInOOG('Locating the leader : '+leaderAccountName);
            Say('/f l');
            Delay(1500);
        }

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

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

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

                // checking if the msg is a friendly whisper
                if (msg.lastIndexOf(leaderName + ' (*' +leaderAccountName+')') > -1)
                {
                    var regGameNameWhispered=/^.*(game|partie|spiel|partita|partida).*(nomm[^\s]*|called|chiamata)\s*([\w\s-]*\w)\s*\.\s*$/gi;
                    if (msg.match(regGameNameWhispered))
                        game = msg.replace(regGameNameWhispered, "$3");

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

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

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

                    break;
                }
            }

            if (found_leader == false)
                DebugInOOG('I couldn\'t find the leader in my friend list!');

            if (game!="")
            {
                DebugInOOG('Leader is in the game "' + game + '"');
                //controlData.click(controlData.controls.lobby.button.join);
                //Delay(100);
								if(!JoinGameAgain)
								{
									if (game != samegame)
									{
									  if (UseCDKeyChangeTrick)
										{
											// increasing the number of runs in the OOG (for CDKey switch)
											// Problem : the gamename/gamepassword set in your OOG will be typed in the lobbyChat
											// this may output a red message in the lobby chat if you have a password set (not a real problem)
											// I recommend to set a gamename like "Run" and no gamepassword in your OOG. -> this will output "Run-01", "Run-02", etc in lobby chat before joining games
											sendEventToOOG(D2NT_MGR_CREATE_GAME, location.name, 0);
											Delay(1000);
										}

										controlData.click(controlData.controls.lobby.button.join);
										Delay (200);
										
									}
									else
										Delay(30000);
								}
								else
								{
								  if (UseCDKeyChangeTrick)
									{
										// increasing the number of runs in the OOG (for CDKey switch)
										// Problem : the gamename/gamepassword set in your OOG will be typed in the lobbyChat
										// this may output a red message in the lobby chat if you have a password set (not a real problem)
										// I recommend to set a gamename like "Run" and no gamepassword in your OOG. -> this will output "Run-01", "Run-02", etc in lobby chat before joining games
										sendEventToOOG(D2NT_MGR_CREATE_GAME, location.name, 0);
										Delay(1000);
									}

									controlData.click(controlData.controls.lobby.button.join);
									Delay (200);
								}
        
							}

        }
        else
        {
            DebugInOOG('I can\'t read the chat!');
            //DebugInOOG('You probably haven\'t added the lobby chat controlinfo coordinates!');
            Delay(30000);
        }
        
        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;
        }
        break;

    case 2: // Waiting In Line
        if(GetTickCount()-lastGameMade > waitInLineTimeout)
            controlData.click(controlData.controls.lobby.inLine.button.cancel);
        break;

    case 4: // Create Game
        if(!controlData.get(controlData.controls.lobby.create.editBox.gameName))
        {
            controlData.click(controlData.controls.lobby.button.join);
            Delay (500);
            controlData.click(controlData.controls.lobby.button.create);
            Delay (500);
            break;
        }

        sendEventToOOG(D2NT_MGR_CREATE_GAME, location.name, 0);

        locationTimeout(5000, location);

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

  case 5: // Join Game
    if (game)
    {
        controlData.setText( controlData.controls.lobby.join.editBox.gameName, game);
        Delay (100);
        controlData.setText( controlData.controls.lobby.join.editBox.password, gamepassword);
        Delay (100);
        controlData.click(controlData.controls.lobby.join.button.joinGame);
        RunGC(); // run garbage collector between each game
        locationTimeout(5000, location);
        lastGameStatus = 1; // pending join
    }
    else
    {
        DebugInOOG('No game to join : cancelling');
        me.Cancel(1);
        Delay(1000);
    }
    break;

    case 6: // Ladder
        break;

    case 7: // Channel List
        break;

    case 8: // Main Menu
        if(controlData.getCurrentRealmIndex() == me.gatewayid)
        {
            outputGameLength();
            controlData.click(controlData.gameTypes[me.playtype]);
        }
        else
            controlData.click(controlData.controls.mainMenu.button.gateway);
        break;

    case 9: // Login
        sendEventToOOG(D2NT_MGR_PRINT_STATUS, location.name, 0);
        Delay(loginDelay);

        controlData.setText(controlData.controls.login.editBox.accountName, me.account);

        sendEventToOOG(D2NT_MGR_LOGIN, location.name, 0);

        locationTimeout(5000, location);
        break;

    case 10: // Login Error (this is a fatal error, so stop)
        sendEventToOOG(D2NT_MGR_RESTART, location.name, 10);
        Delay(3500);
        break;

    case 11: // Unable To Connect
        timeoutDelay(unableToConnectRetry*60*1000, location)
        controlData.click(controlData.controls.login.unableToConnect.button.ok);
        break;

    case 12: // Character Select
        var _time, _control;

        sendEventToOOG(D2NT_MGR_PRINT_STATUS, location.name, 0);

        for(_time = 0 ; _time < characterScreenTimeout ; _time += 500)
        {
            _control = controlData.get(controlData.controls.characterSelect.textBox.characterInfo[me.charloc]);
            if(_control && _control.GetText() != undefined)
                break;

            Delay(500);
        }

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

            controlData.click(controlData.controls.characterSelect.textBox.characters[me.charloc], 0, 0, 1);
            controlData.click(controlData.controls.characterSelect.textBox.characterInfo[me.charloc], 0, 0, 1);

            // reset last game made, so it doesnt make a game immediately
            inGameAt = 0;
            setNextGameMake();
        }
        else
        {
            controlData.click(controlData.controls.characterSelect.button.exit);
            timeoutDelay(realmDownRetry*60*1000, location);
        }
        break;

    case 13: // Realm Down - Character Select screen
        controlData.click(controlData.controls.characterSelect.button.exit);
        timeoutDelay(realmDownRetry*60*1000, location);
        break;

    case 14: // Character Select - Disconnected
        timeoutDelay(disconnectedRetry*60*1000, location);
        controlData.click(controlData.controls.characterSelect.disconnected.button.ok);
        break;

    case 15: // New Character
        break;    

    case 16: // Character Select - Please Wait popup
        if(!locationTimeout(pleaseWaitTimeout, location))
            controlData.click(controlData.controls.characterSelect.pleaseWait.button.cancel);
        break;

    case 17: // Lobby - Lost Connection - just click okay, since we're toast anyway
        controlData.click(controlData.controls.lobby.lostConnection.button.ok);
        break;

    case 18: // D2 Splash
        controlData.click(controlData.controls.d2Splash.textBox.copyright);
        break;

    case 19: // Login - Cdkey In Use
        timeoutDelay(cdkeyInUseRetry*60*1000, location);
        controlData.click(controlData.controls.login.cdkeyInUse.button.ok);
        break;

    case 20: // Single Player - Select Difficulty
        controlData.click(controlData.singlePlayerDifficulties[me.diff]);
        break;

    case 21: // Main Menu - Connecting
        if(!locationTimeout(connectingToBnetTimeout, location))
            controlData.click(controlData.controls.mainMenu.connecting.button.cancel);
        break;

    case 22: // Login - Invalid Cdkey (classic or xpac)
        sendEventToOOG(D2NT_MGR_RESTART, location.name, 3600);
        Delay(3500);
        break;    

    case 23: // Character Select - Connecting
        if(!locationTimeout(characterScreenTimeout, location))
            controlData.click(controlData.controls.characterSelect.button.exit);
        break;

    case 24: // Server Down - not much to do but wait..
        break;

    case 25: // Lobby - Please Wait
        if(!locationTimeout(pleaseWaitTimeout, location))
            controlData.click(controlData.controls.lobby.pleaseWait.button.cancel);
        break;

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

        inGameAt = 0;
        lastGameStatus = 0;
        setNextGameMake();

        locationTimeout(15000, location);
        break;

    case 27: // Gateway Select
        controlData.clickRealmEntry(me.gatewayid);
        controlData.click(controlData.controls.gateway.button.ok);
        break;

    case 28: // Lobby - Game Does Not Exist
        inGameAt = Random(gameDoesNotExistDelayMin, gameDoesNotExistDelayMax);
        lastGameStatus = 0;
        setNextGameMake();

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

function sendEventToOOG(locationId, statusString, pendingTime)
{
    return SendCopyData("D2NT Manager", null, (locationId<<16)|pendingTime, statusString);
}

function setNextGameMake()
{
    lastGameMade = GetTickCount();
    nextGameMake = lastGameMade + createGameThreshold + Random(0-createGameThresholdRandom, createGameThresholdRandom) + inGameAt;
    inGameAt = 0;
    chatActionsDone = false;
}

function outputGameLength()
{
    if(inGameAt)
    {
        duration = GetTickCount() - inGameAt;

        inGameAt = (duration < gameMinLength ? gameMinLength - duration : 0);
    }
}

function locationTimeout(time, location)
{
    endtime = GetTickCount() + time;

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

    return (controlData.getLocation().id != location.id);
}

function timeoutDelay(time, location)
{
    endtime = GetTickCount() + time;

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

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

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

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

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

	NTA_Initialize();

	RegisterEvent(EVENT_GAMEMSG, NT_GameMsgEvents);

	if(!NTTM_CheckAct())
	{
		NTC_SendMsgToScript("MWBotGame.ntj", "NTTM_CheckAct()");
		return;
	}

	if(me.areaid != 109)
	{
		if(!NTTM_TownMove("waypoint"))
		{
			NTC_SendMsgToScript("MWBotGame.ntj", "NTTM_TownMove()");
			return;
		}

		if(!NTM_TakeWaypoint(109))
		{
			NTC_SendMsgToScript("MWBotGame.ntj", "NTM_TakeWaypoint()");
			return;
		}
	}

	NTTMGR_TownManager();

	NTTM_TownMove("portalspot");

	for(i = 0; i <= 200; i++)
	{
		if(NTC_InMyParty(NTConfig_Leader))
			break;

		Delay(200);
	}   

	while(me.areaid == 109 && NTC_InMyParty(NTConfig_Leader))
	{
		if(NTConfig_LeechTPMsg == "")
			NTM_UsePortal("BluePortal", 131, NTConfig_Leader); // 50

		Delay(2000);
	}
	
	NTM_MoveTo(me.areaid, 15118, 5002);
	NTP_DoPrecast(true);

	while(NTC_InMyParty(NTConfig_Leader) && NTC_FindUnit(NTC_UNIT_MONSTER, 543))
		Delay(500);

	var _portal = NTC_FindUnit(NTC_UNIT_OBJECT, 563, 2);

	if(!_portal)
	{
		NTC_SendMsgToScript("MWBotGame.ntj", "NTC_FindUnit()");
			return;
	}
	
	NTM_MoveTo(me.areaid, 15095, 5028);
	NTM_MoveTo(me.areaid, 15092, 5010);
		
	if(!NTM_UsePortal("Portal", 132, null, _portal))
	{
		NTC_SendMsgToScript("MWBotGame.ntj", "NTM_UsePortal()");
		return;
	}

	var _baal = NTC_FindUnit(NTC_UNIT_MONSTER, 544);

	while(NTC_InMyParty(NTConfig_Leader) && NTA_IsValidMonster(_baal))
		Delay(2500);

	Delay(2000);

	NTC_SendMsgToScript("MWBotGame.ntj", "SCRIPT_END");
}

function NT_GameMsgEvents(msg, type)
{
	if(type == 0 && msg.indexOf(NTConfig_Leader) != -1 && msg.indexOf(NTConfig_LeechTPMsg) != -1 && NTConfig_LeechTPMsg != "")
	{
		while(me.areaid == 109)
		{
			NTM_UsePortal("BluePortal", 131, NTConfig_Leader);	
		}
	}
}
das baalleechfightscript

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

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

   NTA_Initialize(); 
   
   RegisterEvent(EVENT_GAMEMSG, NT_GameMsgEvents);

   if(!NTTM_CheckAct())
   {
      NTC_SendMsgToScript("MWBotGame.ntj", "NTTM_CheckAct()");
      return;
   }

   if(me.areaid != 109)
   {
   if(!NTTM_TownMove("waypoint"))
   {
      NTC_SendMsgToScript("MWBotGame.ntj", "NTTM_TownMove()");
      return;
   }

   if(!NTM_TakeWaypoint(109))
   {
      NTC_SendMsgToScript("MWBotGame.ntj", "NTM_TakeWaypoint()");
      return;
   }
   }
       
   NTTMGR_TownManager();

if(NTConfig_precast)
{
   NTM_TakeWaypoint(129)
   NTP_DoPrecast(true);
   Delay(500)
   NTM_TakeWaypoint(109)
}   

   
   NTTM_TownMove("portalspot");

   for(i = 0; i <= 100; i++)
   {
      if(NTC_InMyParty(NTConfig_Leader))
         break;

      Delay(200);
   }

   while(me.areaid == 109 && NTC_InMyParty(NTConfig_Leader))
   {
			if(NTConfig_CoLeechTPMsg == "")
				NTM_UsePortal("BluePortal", 131, NTConfig_Leader); // 50
      Delay(1000);
       
   }
if(!NTConfig_precast)
	NTM_MakeTP();
	NTP_DoPrecast(true);
	NTA_ClearPosition(20, true, 2);
if(NTConfig_precast)
	NTA_ClearPosition(20, true, 2);
	NTM_MakeTP();


   while(NTC_InMyParty(NTConfig_Leader))
   {
   
   NT_ClearThroneInt();

   while(1)
   {
      if(me.classid == NTC_CHAR_CLASS_PALADIN || me.classid == NTC_CHAR_CLASS_BARBARIAN)
         NTM_MoveTo(me.areaid, 15092, 5028);
      else
         NTM_MoveTo(me.areaid, 15089, 5010);

      if(me.GetState(2))
         NTC_PutSkill(109, NTC_HAND_RIGHT);

      for(i = 0 ; i < 6 ; i++)
      {
         _wave = NT_ThroneCheckInt();
         if(_wave > 0)
            break;

         NTC_Delay(500);
      }

      _starttick = GetTickCount();

      while(_wave == 0)
      {
         if(!NT_ThronePreAttackInt())
            NTC_Delay(200);

         if(GetTickCount()-_starttick > 15000)
         {
            NT_ClearThroneInt();

            _starttick = GetTickCount();
         }

         _wave = NT_ThroneCheckInt();
      }

      switch(_wave)
      {
      case 1: 
         NTA_ClearPosition(40, true, 2); 
         NTP_DoPrecast(true); 
         break; 
      case 2: 
         NTM_MoveTo(me.areaid, me.x, me.y-1); 
         NTA_ClearPosition(40, true); 
         NTTMGR_CheckSafe(NTConfig_CheckSelfSafe, NTConfig_CheckMercSafe); 
         break; 
      case 3: 
         NTM_MoveTo(me.areaid, me.x, me.y-1); 
         NTA_ClearPosition(40, true, 2); 
         NTSI_PickItems();
         NT_CheckHydraInt(); 
         break; 
      case 4: 
         NTM_MoveTo(me.areaid, me.x, me.y-1); 
         NTA_ClearPosition(40, true, 2); 
         break; 
      case 5: 
         NTM_MoveTo(me.areaid, me.x, me.y-1); 
         NTA_ClearPosition(40, true, 2); 
         break;
      default:
         NTA_ClearPosition(40, true, 1);
         break;
      }

      if(_wave == 5)
         break;
   }

   if(NTConfig_KillBaal)
   {
      var _portal;

      if(!NTTMGR_CheckSafe(NTConfig_CheckSelfSafe, NTConfig_CheckMercSafe))
      {
         NTC_SendMsgToScript("MWBotGame.ntj", "NTTMGR_CheckSafe()");
         return;
      }

      NTM_MoveTo(me.areaid, 15092, 5010);

      NTP_DoPrecast(true);

      while(NTC_FindUnit(NTC_UNIT_MONSTER, 543))
         NTC_Delay(500);

      _portal = NTC_FindUnit(NTC_UNIT_OBJECT, 563, 1);

      if(!_portal)
      {
         NTC_SendMsgToScript("MWBotGame.ntj", "NTC_FindUnit()");
         return;
      }

      if(!NTM_UsePortal("Portal", 132, null, _portal))
      {
         NTC_SendMsgToScript("MWBotGame.ntj", "NTM_UsePortal()");
         return;
      }

      NTM_MoveTo(me.areaid, 15138, 5916);
			NTA_Initialize()
			
      if(!NTA_KillMonster(544))
      {
         NTC_SendMsgToScript("MWBotGame.ntj", "NTA_KillMonster()");
         return;
      }

      NTSI_PickItems();
   }

   }

   NTC_SendMsgToScript("MWBotGame.ntj", "SCRIPT_END");

}


// Internal function
function NT_ClearThroneInt()
{
	var _attackpos = [15112, 5068, 15085, 5065, 15114, 5045, 15114, 5012, 15095, 5024, 15078, 5013, 15092, 5040];

	for(var i = 0 ; i < _attackpos.length ; i += 2)
	{
		NTM_MoveTo(me.areaid, _attackpos[i], _attackpos[i+1]);

		NTA_ClearPosition(30, true, 2);
	}
	NTM_MoveTo(me.areaid, 15093, 5041);
	NTA_ClearPosition(50, true, 2);
}

function NT_ThroneCheckInt()
{
	var _monster;

	if(!NTC_FindUnit(NTC_UNIT_MONSTER, 543))
		return 5;

	_monster = NTC_FindUnit(NTC_UNIT_MONSTER);

	if(_monster)
	{
		do
		{
			if(NTA_IsValidMonster(_monster))
			{
				if(_monster.classid == 23 || _monster.classid == 62)
					return 1;

				if(_monster.classid == 105 || _monster.classid == 381)
					return 2;

				if(_monster.classid == 557)
					return 3;

				if(_monster.classid == 558)
					return 4;

				if(_monster.classid == 571)
					return 5;
			}
		} while(_monster.GetNext());
	}

	return 0;
}

function NT_ThronePreAttackInt()
{
	if(me.classid == NTC_CHAR_CLASS_SORCERESS)
	{
		if(NTConfig_AttackSkill[3] == 56 || NTConfig_AttackSkill[3] == 59)
			return NTC_CastSkill(NTConfig_AttackSkill[3], 0, 15092, 5028);
	}
	else if(me.classid == NTC_CHAR_CLASS_PALADIN)
	{
		if(NTConfig_AttackSkill[3] == 112)
		{
			if(NTConfig_AttackSkill[4] > 0)
				NTC_PutSkill(NTConfig_AttackSkill[4], NTC_HAND_RIGHT);

			return NTC_CastSkill(NTConfig_AttackSkill[3], 2);
		}
	}
	return false;
}

function NT_CheckHydraInt()
{
	var _hydra1, _hydra2, _hydra3;

	_hydra1 = NTC_FindUnit(NTC_UNIT_MONSTER, 351);
	_hydra2 = NTC_FindUnit(NTC_UNIT_MONSTER, 352);
	_hydra3 = NTC_FindUnit(NTC_UNIT_MONSTER, 353);

	if((_hydra1 && _hydra1.GetStat(172) != 2 && _hydra1.GetState(105))
		|| (_hydra2 && _hydra2.GetStat(172) != 2 && _hydra2.GetState(105))
		|| (_hydra3 && _hydra3.GetStat(172) != 2 && _hydra3.GetState(105)))
	{
		NTM_MoveTo(me.areaid, 15118, 5002);

		if(me.GetState(2))
			NTC_PutSkill(109, NTC_HAND_RIGHT);

		NTC_PingDelay(5000);
	}
}

function NT_GameMsgEvents(msg, type)
{
	if(type == 0 && msg.indexOf(NTConfig_Leader) != -1 && msg.indexOf(NTConfig_CoLeechTPMsg) != -1 && NTConfig_CoLeechTPMsg != "")
	{
		while(me.areaid == 109)
		{
			NTM_UsePortal("BluePortal", 131, NTConfig_Leader);	
		}
	}
}
das dialeechfightscript
- hier is zu beachten das die leecher syncron zum run mitlaufen müssen, vorher andy killen und dann den run joinen is also net... da sobald die leechfighter net in der nähe der siegel sind wenn diese geöffnet werden sich mehr oder weniger aufhängen(zu ~90%), müsste man bei gelegenheit mal ne bedingung reinschreiben das nach 5 versuchen oder so zum nächsten siegel gegangen wird .... demnächst :p

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

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

	NTA_Initialize();

	if(!NTTM_CheckAct())
	{
		NTC_SendMsgToScript("MWBotGame.ntj", "NTTM_CheckAct()");
		return;
	}
	
	if(me.areaid != 103)
	{
		if(!NTTM_TownMove("waypoint"))
		{
			NTC_SendMsgToScript("MWBotGame.ntj", "NTTM_TownMove()");
			return;
		}

		if(!NTM_TakeWaypoint(103))
		{
			NTC_SendMsgToScript("MWBotGame.ntj", "NTM_TakeWaypoint()");
			return;
		}
	}


	NTTMGR_TownManager();

   NTTM_TownMove("portalspot");

   for(i = 0; i <= 100; i++)
   {
      if(NTC_InMyParty(NTConfig_Leader))
         break;

      Delay(200);
   }   

   while(me.areaid == 103 && NTC_InMyParty(NTConfig_Leader))
   {
		if(NT_GetLeader(NTConfig_Leader).areaid >= 129)
		{
			NTC_SendMsgToScript("MWBotGame.ntj", "SCRIPT_END");
			return;
		}
		NTM_UsePortal("BluePortal", 108, NTConfig_Leader); // 50
		Delay(1000);
       
   }
		
		NTP_DoPrecast(true);
		NTA_ClearPosition(10, true);
		NTM_MoveTo(me.areaid, 7792, 5291);
		NTA_ClearPosition(20, true);
		NTM_MoveTo(me.areaid, 7792, 5291);
		NTA_ClearPosition(30, true);

		
		if(!NT_OpenSealsInt())
		{
			NTC_SendMsgToScript("MWBotGame.ntj", "NT_OpenSealsInt()");
			return;
		}
	
		if(NTConfig_PublicMode)
			Say(NTConfig_KillDiaMsg);

		NTM_MoveTo(me.areaid, 7792, 5292);
		NTP_DoPrecast(true);
		NTC_FindUnit(NTC_UNIT_MONSTER, 243, 100);


		NTA_KillMonster(243);
		NTSI_PickItems();
		Say(NTConfig_DiaNxtGame);
		NTC_SendMsgToScript("MWBotGame.ntj", "SCRIPT_END");


// Internal function
function NT_OpenSealsInt()
{
	var i, _unit;
	var _result;

	_unit = GetPresetUnits(me.areaid, NTC_UNIT_OBJECT);

	if(!_unit)
		return false;

	_result = false;

	for(i = 0 ; i < _unit.length ; i++)
	{
		if(_unit[i].id == 396)
		{
			if(_unit[i].roomy*5 + _unit[i].y == 5275)
				_result = NT_OpenVizierSealInt(1);
			else
				_result = NT_OpenVizierSealInt(2);

			break;
		}
	}

	if(!_result)
		return false;
		
	NTA_ClearPosition(30, true, 2);
	NTP_DoPrecast(false);

	_result = false;

	for(i = 0 ; i < _unit.length ; i++)
	{
		if(_unit[i].id == 394)
		{
			if(_unit[i].roomx*5 + _unit[i].x == 7773)
				_result = NT_OpenDeSeisSealInt(1);
			else
				_result = NT_OpenDeSeisSealInt(2);

			break;
		}
	}

	if(!_result)
		return false;

	NTA_ClearPosition(30, true, 2);
	NTP_DoPrecast(true);

	_result = false;

	for(i = 0 ; i < _unit.length ; i++)
	{
		if(_unit[i].id == 392)
		{
			if(_unit[i].roomx*5 + _unit[i].x == 7893)
				_result = NT_OpenVenomSealInt(1);
			else
				_result = NT_OpenVenomSealInt(2);

			break;
		}
	}

	return _result;
}

function NT_OpenVizierSealInt(type)
{

var _monstername = GetLocaleString(2851);
var i, n;

	var i, n;
	var _attackpos = [7740, 5300, 7792, 5291, 7740, 5280, 7720, 5280, 7720, 5300];
	

	for(i = 0 ; i < _attackpos.length ; i += 2)
	{
		NTM_MoveTo(me.areaid, _attackpos[i], _attackpos[i+1]);

		NTA_ClearPosition(25, true, 2);
	}
	
	NTM_MoveTo(me.areaid, 7735, 5291);
	NTA_ClearPosition(40, true, 2);

	for(i = 0 ; i < 3 ; i++)
	{
		if(type == 1)
		{
			NTM_MoveTo(me.areaid, 7695, 5293);
			NTA_ClearPosition(25, true, 2);
			NTM_MoveTo(me.areaid, 7664, 5314);
			NTA_ClearPosition(25, true, 2);
			NTM_MoveTo(me.areaid, 7673, 5293);
			NTA_ClearPosition(25, true, 2);
			NTM_MoveTo(me.areaid, 7662, 5276);
			NTA_ClearPosition(25, true, 2);
			NTM_MoveTo(me.areaid, 7676, 5294);
			NTA_ClearPosition(60, true, 2);	
			
			if(me.classid == NTC_CHAR_CLASS_PALADIN)
				NTM_MoveTo(me.areaid, 7678, 5292);
		}
		else
		{
			NTM_MoveTo(me.areaid, 7695, 5316);
			NTA_ClearPosition(25, true, 2);
			NTM_MoveTo(me.areaid, 7664, 5314);
			NTA_ClearPosition(25, true, 2);
			NTM_MoveTo(me.areaid, 7654, 5281);
			NTA_ClearPosition(25, true, 2);
			NTM_MoveTo(me.areaid, 7695, 5316);
			NTA_ClearPosition(60, true, 2);
			
			if(me.classid == NTC_CHAR_CLASS_PALADIN)
				NTM_MoveTo(me.areaid, 7676, 5320);
		}

		for(n = 0 ; n < 10 ; n++)
		{
			NTC_Delay(200);

			if(NTA_KillMonster(_monstername))
			{
				NTA_ClearPosition(40);
				NTSI_PickItems();

				return NTM_MoveTo(me.areaid, 7792, 5291);
			}
		}
	}
	return false;
}

function NT_OpenDeSeisSealInt(type)
{
	var i, n;
	var _monstername = GetLocaleString(2852);

	var _attackpos = [7780, 5255, 7800, 5255, 7800, 5235, 7780, 5235, 7774, 5214];
	var _monstername = GetLocaleString(2852);

	for(i = 0 ; i < _attackpos.length ; i += 2)
	{
		NTM_MoveTo(me.areaid, _attackpos[i], _attackpos[i+1]);

		NTA_ClearPosition(25, true, 2);
	}
	
	NTM_MoveTo(me.areaid, 7790, 5244);
	NTA_ClearPosition(40, true, 2);


	for(i = 0 ; i < 3 ; i++)
	{
		if(type == 1)
		{
			NTM_MoveTo(me.areaid, 7773, 5194);
			NTA_ClearPosition(25, true, 2);
			NTM_MoveTo(me.areaid, 7813, 5188);
			NTA_ClearPosition(25, true, 2);
			NTM_MoveTo(me.areaid, 7809, 5155);
			NTA_ClearPosition(25, true, 2);
			NTM_MoveTo(me.areaid, 7777, 5155);
			NTA_ClearPosition(60, true, 2);			
			
			if(me.classid == NTC_CHAR_CLASS_PALADIN)
				NTM_MoveTo(me.areaid, 7768, 5206);
			else
				NTM_MoveTo(me.areaid, 7774, 5220);
		}
		else
		{
			NTM_MoveTo(me.areaid, 7810, 5202);
			NTA_ClearPosition(25, true, 2);
			NTM_MoveTo(me.areaid, 7774, 5180);
			NTA_ClearPosition(25, true, 2);
			NTM_MoveTo(me.areaid, 7785, 5153);
			NTA_ClearPosition(25, true, 2);
			NTM_MoveTo(me.areaid, 7809, 5154);
			NTA_ClearPosition(60, true, 2);			
			
			if(me.classid == NTC_CHAR_CLASS_PALADIN)
				NTM_MoveTo(me.areaid, 7773, 5178);
			else
				NTM_MoveTo(me.areaid, 7788, 5192);
		}

		for(n = 0 ; n < 10 ; n++)
		{
			NTC_Delay(200);

			if(NTA_KillMonster(_monstername))
			{
				NTA_ClearPosition(40);
				NTSI_PickItems();

		NTP_DoPrecast(false);
		return NTM_MoveTo(me.areaid, 7792, 5291);
			}
		}
	}
	return false;
}

function NT_OpenVenomSealInt(type)
{
	var i, n;
	var _monstername = GetLocaleString(2853);

	var _attackpos = [7835, 5280, 7835, 5300, 7855, 5300, 7855, 5280];
	

	for(i = 0 ; i < _attackpos.length ; i += 2)
	{
		NTM_MoveTo(me.areaid, _attackpos[i], _attackpos[i+1]);

		NTA_ClearPosition(25, true, 2);
	}
	
	NTM_MoveTo(me.areaid, 7843, 5292);
	NTA_ClearPosition(40, true, 2);
	
	for(i = 0 ; i < 3 ; i++)
	{
		if(type == 1)
		{
			NTM_MoveTo(me.areaid, 7871, 5293);
			NTA_ClearPosition(25, true, 2);
			NTM_MoveTo(me.areaid, 7893, 5307);
			NTA_ClearPosition(25, true, 2);
			NTM_MoveTo(me.areaid, 7912, 5280);
			NTA_ClearPosition(25, true, 2);
			NTM_MoveTo(me.areaid, 7931, 5293);
			NTA_ClearPosition(25, true, 2);
			NTM_MoveTo(me.areaid, 7908, 5293);
			NTA_ClearPosition(60, true, 2);
			
			if(me.classid == NTC_CHAR_CLASS_PALADIN)
				NTM_MoveTo(me.areaid, 7892, 5298);
		}
		else
		{
			NTM_MoveTo(me.areaid, 7893, 5274);
			NTA_ClearPosition(25, true, 2);
			NTM_MoveTo(me.areaid, 7927, 5280);
			NTA_ClearPosition(25, true, 2);
			NTM_MoveTo(me.areaid, 7930, 5308);
			NTA_ClearPosition(25, true, 2);
			NTM_MoveTo(me.areaid, 7929, 5294);
			NTA_ClearPosition(60, true, 2);
			
			if(me.classid == NTC_CHAR_CLASS_PALADIN)
				NTM_MoveTo(me.areaid, 7927, 5275);
		}

		for(n = 0 ; n < 10 ; n++)
		{
			NTC_Delay(200);

			if(NTA_KillMonster(_monstername))
			{
				NTSI_PickItems();
				NTA_ClearPosition(40, true, 2);
			}


			
			if(NTC_PutSkill(124, NTC_HAND_RIGHT))
				NTC_PingDelay(1000);
		}
		return true;
	}
	return false;
}

function NT_GetLeader(_name)  
{
				_player = GetPlayerUnit();

				if(_player)
				{
					while(_player.GetNext())
					{
					if(_player.name == _name) 
						{ return _player; }
					}
				}
}
}

und dann noch für die charconfig

Code:
NTConfig_Leader = "" // Name vom Leader-Char, Groß- und Kleinschreibung beachten!
MWConfig_Script.push(["name der datei", 5]); 
NTConfig_KillBaal = true; NTConfig_precast = true;
NTConfig_CoLeechTPMsg = ""; // Bei dieser Message vom Leader geht der Bot ins TP. Wenn er jederzeit rein gehen soll, leer lassen.
NTConfig_KillDiaMsg = "Dia" ; NTConfig_DiaNxtGame = "Ng" ;
sry nochmal für die unannehmlichkeiten letzte nacht, war schon spät :(
jetzt sollte es aber, sofern richtig eingebunden, funzen ;)
05/25/2011 11:32 letsid#2073
Quote:
Quote:
Zitat von letsid Beitrag anzeigen
Ich habe die Snagit ersetzt und dann kam ein fehler:
Zeile 88 in der NTBotGame.ntl
Hast du schon die aktuellste Version von Muddy's?!?
Die NTBotGame.ntl hat Muddy nämlich komplett durch MWBotGame.ntl ersetzt, die NTBotGame.ntl gehört deshalb nicht zu Muddy's Bot!
Wird nicht benötigt und ist auch nicht kompatibel zu Muddy's Bot.
sorry ich meine natürlich die MWBOTGAME.ntj
05/25/2011 11:41 TheCrazy11#2074
Quote:
Originally Posted by letsid View Post
sorry ich meine natürlich die MWBOTGAME.ntj
Steht da folgendes?
Code:
NTSI_LoadNIPFiles("NTBot/item_configs");
Dann hast du einen Syntaxfehler in deinen Nip-Files.
Um den zu finden, benütze das Nip-Check-Addon von Muddy, das beim 1. Post angehängt ist.

Wenn in der Zeile was anderes steht, dann poste die Zeile bitte ([code]-Tags!).
05/25/2011 11:44 GruenerApfel#2075
Quote:
Originally Posted by TheCrazy11 View Post
Steht da folgendes?
Code:
NTSI_LoadNIPFiles("NTBot/item_configs");
Dann hast du einen Syntaxfehler in deinen Nip-Files.
Um den zu finden, benütze das Nip-Check-Addon von Muddy, das beim 1. Post angehängt ist.

Wenn in der Zeile was anderes steht, dann poste die Zeile bitte ([code]-Tags!).
enterder das ... oder es handelt sich um [Only registered and activated users can see links. Click Here To Register...]
05/25/2011 12:08 letsid#2076
Hmpf.
Sorry und danke habe einen Typo drin gehabt.
05/25/2011 14:15 letsid#2077
Ich habe die AKT3 Visit Asheara funktion leicht abgeändert, da es öfters dazu kam , dass Asheara zwar besucht hat, der Merc aber nicht gerezzt wurde und der bot danach gleich wieder in die stadt ist um es nochmals zu versuchen (ist mir auch schon 3 mal hintereinander passiert):

Quote:
Originally Posted by letsid View Post
ORGINAL:
Hier wird zuerst Trash verkauft und dann der merc gerezzt
Code:
function NTTMGR_VisitAsheara()
{
	var _npc;

	if(MWConfig_ShowOverheadStatus)
		MWC_PrintOverheadStatus("Visiting Asheara...");
	
	NTTM_TownMove("asheara");

	_npc = NTC_FindUnit(NTC_UNIT_NPC, NTC_NPC_ID_ASHEARA, 5);

	if(_npc)
	{
		if(NTT_DoInteract(_npc))
		{
			if(_MWTMGR_SellTrash)
			{
				if(NTT_DoTrade(_npc))
				{
					MWTMGR_SellTrashItems(_npc);
					me.Cancel(1);
				}
			}
			
[COLOR="Red"]			NTT_ReviveMerc();
			me.Cancel(1);[/COLOR]
		}
	}
}

Verändert:
Hier wird erst der merc gerezzt und dann trash verkauft, Vorteil, Trash verkaufen funkt vll nicht aber er rezzt den Merc auf jedenfall.
Da der bot eh in der TOWN ist, verkauft er davor schon bei ormus

Code:
NTTMGR_VisitAsheara()
{
	var _npc;

	if(MWConfig_ShowOverheadStatus)
		MWC_PrintOverheadStatus("Visiting Asheara...");
	
	NTTM_TownMove("asheara");

	_npc = NTC_FindUnit(NTC_UNIT_NPC, NTC_NPC_ID_ASHEARA, 5);

	if(_npc)
	{
		if(NTT_DoInteract(_npc))
		{
[COLOR="Red"]			NTT_ReviveMerc();
			me.Cancel(1);[/COLOR]
			if(_MWTMGR_SellTrash)
			{
				if(NTT_DoTrade(_npc))
				{
					MWTMGR_SellTrashItems(_npc);
					me.Cancel(1);
				}
			}
			

		}
	}
}


Jeden ~20igsten (+- 10) run zeigt mein Baba ein komisches verhalten:
NTTravincal.ntj: NTM_MoveTo() failed (Travinval)

Habe den Waypoint, und eigentlich ist alles okay. nur ab und an kommt das halt.
05/25/2011 14:29 TheCrazy11#2078
Benützt du Fastmod?
Durch zu hohe frw-Werte kann es zu einem Desync kommen, das heißt, dass dein Spielbildschirm und das Game auf dem Server nicht mehr synchron sind. So steht dein Char bei dir z.B. beim WP, auf dem Server aber noch auf dem Weg dahin, somit kann er aber den WP nicht benützen, da er nicht in der Reichweite steht.
Kommt bei meinen Bots auch hin und wieder vor, vor allem bei längeren Geh- bzw. Rennstrecken.

Beim Fastmod einfach den frw-Wert verringern oder einfach auf 0 stellen, ein Barb hat meist eh genug frw durch seinen Skill.
05/25/2011 14:37 letsid#2079
frw steht auf 0
05/25/2011 14:47 TheCrazy11#2080
Dann ist das ein normales Desync, da kann man nicht viel dagegen tun, eventuell ein paar Delays erhöhen.
05/25/2011 18:43 Rondo80#2081
Quote:
Originally Posted by GruenerApfel View Post
ah okay danke ;), dann gleich nochmal richtig...

also der entrypoint wäre:

Code:
//###################################################################
//###########################Einstellungen###########################
//###################################################################
	
var leaderAccountName          = "";
var leaderName                 = "";
var gamepassword               = "";
var JoinGameAgain              = false; // wenn der Bot nach chicken oder disconnect ins selbe Spiel nochmal gehen soll, auf true stellen

var UseCDKeyChangeTrick        = false; // Wenn der LeechBot mehrere CD Keys nutzen soll, dann auf true stellen.

var joinRandomChannel          = false;
var joinChannelInChat          = "";
var firstJoinMessage           = ""; // Soll der leechbot etwas sagen, wenn er in den Chat kommt, dann hier eintragen
var chatMessageAfterGame       = ""; // Soll der leechbot etwas sagen, wenn er aus dem Spiel kommt, dann hier eintragen

//###################################################################
//##############################Delays###############################
//###################################################################

var gameMinLength              = 180000;

// realm delays (minutes)
var unableToConnectRetry       = 2;
var realmDownRetry             = 60;
var disconnectedRetry          = 2;
var cdkeyInUseRetry            = 2;

// interface delays (milliseconds)
var connectingToBnetTimeout    = 20000;
var characterScreenTimeout     = 10000;
var pleaseWaitTimeout          = 10000;
var createGameThreshold        = 10000;
var createGameThresholdRandom  = 1000;
var createGameTimeout          = 15000;
var waitInLineTimeout          = 15000;
var characterSelectDelay       = 1000;
var loginDelay                 = 1000;
var clickDelay                 = 500;
var textDelay                  = 500;
var clickDelayRandom           = 500;
var textDelayRandom            = 500;
var gameDoesNotExistDelayMin   = 600000;
var gameDoesNotExistDelayMax   = 900000;
var gameDoesNotExistTimeout    = 30000;
var waitBeforeEnterChatMin     = 1000;
var waitBeforeEnterChatMax     = 2000;
var waitInChatBeforeActionsMin = 2000;
var waitInChatBeforeActionsMax = 3000;

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

//###################################################################
//###################################################################
//###############DO NOT CHANGE ANYTHING BELOW THIS###################
//###################################################################
//###################################################################

//D2NT Manager Command

const D2NT_MGR_LOADING = 1;
const D2NT_MGR_READY = 2;
const D2NT_MGR_LOGIN = 3;
const D2NT_MGR_CREATE_GAME = 4;
const D2NT_MGR_INGAME = 5;
const D2NT_MGR_RESTART = 6;
const D2NT_MGR_CHICKEN = 7;
const D2NT_MGR_PRINT_STATUS = 8;
const D2NT_MGR_PRINT_LOG = 9;

var lastGameMade     = GetTickCount();
var lastGameStatus     = 0;
var nextGameMake     = 0;
var inGameAt       = 0;
var chatActionsDone   = false;
var lastGameFailed     = false;
var sayChatMsgAfterGame = false;

Include("libs/controlInfo.ntl");

var controlData = new controlInfo();

var samegame = '';
var oldgame = '';
var game = '';
var _gamename = "";
var _gamepassword = "";
var _leaderOfflineTick = -LeaderOfflineDelay;
var _leaderInChatTick = -LeaderInChatDelay;
var _GameIsFullTick = -GameIsFullDelay;
var Debug = false;
var joinChatAfterGame    = true;


function NTMain()
{
    Delay(1000);

    var _ingame = false;

    controlData.clickDelay = clickDelay;
    controlData.textDelay = textDelay;
    controlData.clickDelayRandom = clickDelayRandom;
    controlData.textDelayRandom = textDelayRandom;

    while(1)
    {
        if(me.ingame)
        {
            _gamename = me.gamename;
            _gamepassword = me.gamepassword;

            if(!inGameAt)
                inGameAt = GetTickCount();

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

                if(Load("NTBot/MWBotGame.ntj"))
                {
                    _ingame = true;

                    if(me.playtype > 0)
                        sendEventToOOG(D2NT_MGR_INGAME, "In Game[IP:" + me.gameserverip.split(".")[3] + "]", 0);
                    else
                        sendEventToOOG(D2NT_MGR_INGAME, "In Game", 0);

                    lastGameStatus = 2; // in game successful

                    // To exit game as soon as the leader quits
                    //Load("NTBot/NTCheckLeader.ntj");
                    // to party only the leader
                    //Load("NTBot/tools/NTTools_AutoPartyJoinFriendGames.ntj");
                }
            }

            Delay(1000);
        }
        else
        {
            if(_ingame)
            {
                _ingame = false;
                sayChatMsgAfterGame = true;

                sendEventToOOG(D2NT_MGR_READY, "", 0);
            }

            locationAction(controlData.getLocation());

            Delay(500);
        }
    }
}

function locationAction(location)
{
    switch(location.id)
    {
    case 3: // Lobby Chat
        sendEventToOOG(D2NT_MGR_PRINT_STATUS, location.name, 0);

        if(!chatActionsDone)
        {  
            Delay(Random(waitInChatBeforeActionsMin, waitInChatBeforeActionsMax));

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

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

            chatActionsDone = true;
        }

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

        game = '';

        var _tick = GetTickCount();
        if ((_leaderOfflineTick < 0 || (_leaderOfflineTick + LeaderOfflineDelay) < _tick)
         && (_leaderInChatTick < 0 || (_leaderInChatTick + LeaderInChatDelay) < _tick)
         && (_GameIsFullTick < 0 || (_GameIsFullTick + GameIsFullDelay) < _tick))
        {
            DebugInOOG('Locating the leader : '+leaderAccountName);
            Say('/f l');
            Delay(1500);
        }

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

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

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

                // checking if the msg is a friendly whisper
                if (msg.lastIndexOf(leaderName + ' (*' +leaderAccountName+')') > -1)
                {
                    var regGameNameWhispered=/^.*(game|partie|spiel|partita|partida).*(nomm[^\s]*|called|chiamata)\s*([\w\s-]*\w)\s*\.\s*$/gi;
                    if (msg.match(regGameNameWhispered))
                        game = msg.replace(regGameNameWhispered, "$3");

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

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

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

                    break;
                }
            }

            if (found_leader == false)
                DebugInOOG('I couldn\'t find the leader in my friend list!');

            if (game!="")
            {
                DebugInOOG('Leader is in the game "' + game + '"');
                //controlData.click(controlData.controls.lobby.button.join);
                //Delay(100);
								if(!JoinGameAgain)
								{
									if (game != samegame)
									{
									  if (UseCDKeyChangeTrick)
										{
											// increasing the number of runs in the OOG (for CDKey switch)
											// Problem : the gamename/gamepassword set in your OOG will be typed in the lobbyChat
											// this may output a red message in the lobby chat if you have a password set (not a real problem)
											// I recommend to set a gamename like "Run" and no gamepassword in your OOG. -> this will output "Run-01", "Run-02", etc in lobby chat before joining games
											sendEventToOOG(D2NT_MGR_CREATE_GAME, location.name, 0);
											Delay(1000);
										}

										controlData.click(controlData.controls.lobby.button.join);
										Delay (200);
										
									}
									else
										Delay(30000);
								}
								else
								{
								  if (UseCDKeyChangeTrick)
									{
										// increasing the number of runs in the OOG (for CDKey switch)
										// Problem : the gamename/gamepassword set in your OOG will be typed in the lobbyChat
										// this may output a red message in the lobby chat if you have a password set (not a real problem)
										// I recommend to set a gamename like "Run" and no gamepassword in your OOG. -> this will output "Run-01", "Run-02", etc in lobby chat before joining games
										sendEventToOOG(D2NT_MGR_CREATE_GAME, location.name, 0);
										Delay(1000);
									}

									controlData.click(controlData.controls.lobby.button.join);
									Delay (200);
								}
        
							}

        }
        else
        {
            DebugInOOG('I can\'t read the chat!');
            //DebugInOOG('You probably haven\'t added the lobby chat controlinfo coordinates!');
            Delay(30000);
        }
        
        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;
        }
        break;

    case 2: // Waiting In Line
        if(GetTickCount()-lastGameMade > waitInLineTimeout)
            controlData.click(controlData.controls.lobby.inLine.button.cancel);
        break;

    case 4: // Create Game
        if(!controlData.get(controlData.controls.lobby.create.editBox.gameName))
        {
            controlData.click(controlData.controls.lobby.button.join);
            Delay (500);
            controlData.click(controlData.controls.lobby.button.create);
            Delay (500);
            break;
        }

        sendEventToOOG(D2NT_MGR_CREATE_GAME, location.name, 0);

        locationTimeout(5000, location);

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

  case 5: // Join Game
    if (game)
    {
        controlData.setText( controlData.controls.lobby.join.editBox.gameName, game);
        Delay (100);
        controlData.setText( controlData.controls.lobby.join.editBox.password, gamepassword);
        Delay (100);
        controlData.click(controlData.controls.lobby.join.button.joinGame);
        RunGC(); // run garbage collector between each game
        locationTimeout(5000, location);
        lastGameStatus = 1; // pending join
    }
    else
    {
        DebugInOOG('No game to join : cancelling');
        me.Cancel(1);
        Delay(1000);
    }
    break;

    case 6: // Ladder
        break;

    case 7: // Channel List
        break;

    case 8: // Main Menu
        if(controlData.getCurrentRealmIndex() == me.gatewayid)
        {
            outputGameLength();
            controlData.click(controlData.gameTypes[me.playtype]);
        }
        else
            controlData.click(controlData.controls.mainMenu.button.gateway);
        break;

    case 9: // Login
        sendEventToOOG(D2NT_MGR_PRINT_STATUS, location.name, 0);
        Delay(loginDelay);

        controlData.setText(controlData.controls.login.editBox.accountName, me.account);

        sendEventToOOG(D2NT_MGR_LOGIN, location.name, 0);

        locationTimeout(5000, location);
        break;

    case 10: // Login Error (this is a fatal error, so stop)
        sendEventToOOG(D2NT_MGR_RESTART, location.name, 10);
        Delay(3500);
        break;

    case 11: // Unable To Connect
        timeoutDelay(unableToConnectRetry*60*1000, location)
        controlData.click(controlData.controls.login.unableToConnect.button.ok);
        break;

    case 12: // Character Select
        var _time, _control;

        sendEventToOOG(D2NT_MGR_PRINT_STATUS, location.name, 0);

        for(_time = 0 ; _time < characterScreenTimeout ; _time += 500)
        {
            _control = controlData.get(controlData.controls.characterSelect.textBox.characterInfo[me.charloc]);
            if(_control && _control.GetText() != undefined)
                break;

            Delay(500);
        }

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

            controlData.click(controlData.controls.characterSelect.textBox.characters[me.charloc], 0, 0, 1);
            controlData.click(controlData.controls.characterSelect.textBox.characterInfo[me.charloc], 0, 0, 1);

            // reset last game made, so it doesnt make a game immediately
            inGameAt = 0;
            setNextGameMake();
        }
        else
        {
            controlData.click(controlData.controls.characterSelect.button.exit);
            timeoutDelay(realmDownRetry*60*1000, location);
        }
        break;

    case 13: // Realm Down - Character Select screen
        controlData.click(controlData.controls.characterSelect.button.exit);
        timeoutDelay(realmDownRetry*60*1000, location);
        break;

    case 14: // Character Select - Disconnected
        timeoutDelay(disconnectedRetry*60*1000, location);
        controlData.click(controlData.controls.characterSelect.disconnected.button.ok);
        break;

    case 15: // New Character
        break;    

    case 16: // Character Select - Please Wait popup
        if(!locationTimeout(pleaseWaitTimeout, location))
            controlData.click(controlData.controls.characterSelect.pleaseWait.button.cancel);
        break;

    case 17: // Lobby - Lost Connection - just click okay, since we're toast anyway
        controlData.click(controlData.controls.lobby.lostConnection.button.ok);
        break;

    case 18: // D2 Splash
        controlData.click(controlData.controls.d2Splash.textBox.copyright);
        break;

    case 19: // Login - Cdkey In Use
        timeoutDelay(cdkeyInUseRetry*60*1000, location);
        controlData.click(controlData.controls.login.cdkeyInUse.button.ok);
        break;

    case 20: // Single Player - Select Difficulty
        controlData.click(controlData.singlePlayerDifficulties[me.diff]);
        break;

    case 21: // Main Menu - Connecting
        if(!locationTimeout(connectingToBnetTimeout, location))
            controlData.click(controlData.controls.mainMenu.connecting.button.cancel);
        break;

    case 22: // Login - Invalid Cdkey (classic or xpac)
        sendEventToOOG(D2NT_MGR_RESTART, location.name, 3600);
        Delay(3500);
        break;    

    case 23: // Character Select - Connecting
        if(!locationTimeout(characterScreenTimeout, location))
            controlData.click(controlData.controls.characterSelect.button.exit);
        break;

    case 24: // Server Down - not much to do but wait..
        break;

    case 25: // Lobby - Please Wait
        if(!locationTimeout(pleaseWaitTimeout, location))
            controlData.click(controlData.controls.lobby.pleaseWait.button.cancel);
        break;

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

        inGameAt = 0;
        lastGameStatus = 0;
        setNextGameMake();

        locationTimeout(15000, location);
        break;

    case 27: // Gateway Select
        controlData.clickRealmEntry(me.gatewayid);
        controlData.click(controlData.controls.gateway.button.ok);
        break;

    case 28: // Lobby - Game Does Not Exist
        inGameAt = Random(gameDoesNotExistDelayMin, gameDoesNotExistDelayMax);
        lastGameStatus = 0;
        setNextGameMake();

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

function sendEventToOOG(locationId, statusString, pendingTime)
{
    return SendCopyData("D2NT Manager", null, (locationId<<16)|pendingTime, statusString);
}

function setNextGameMake()
{
    lastGameMade = GetTickCount();
    nextGameMake = lastGameMade + createGameThreshold + Random(0-createGameThresholdRandom, createGameThresholdRandom) + inGameAt;
    inGameAt = 0;
    chatActionsDone = false;
}

function outputGameLength()
{
    if(inGameAt)
    {
        duration = GetTickCount() - inGameAt;

        inGameAt = (duration < gameMinLength ? gameMinLength - duration : 0);
    }
}

function locationTimeout(time, location)
{
    endtime = GetTickCount() + time;

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

    return (controlData.getLocation().id != location.id);
}

function timeoutDelay(time, location)
{
    endtime = GetTickCount() + time;

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

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

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

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

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

	NTA_Initialize();

	RegisterEvent(EVENT_GAMEMSG, NT_GameMsgEvents);

	if(!NTTM_CheckAct())
	{
		NTC_SendMsgToScript("MWBotGame.ntj", "NTTM_CheckAct()");
		return;
	}

	if(me.areaid != 109)
	{
		if(!NTTM_TownMove("waypoint"))
		{
			NTC_SendMsgToScript("MWBotGame.ntj", "NTTM_TownMove()");
			return;
		}

		if(!NTM_TakeWaypoint(109))
		{
			NTC_SendMsgToScript("MWBotGame.ntj", "NTM_TakeWaypoint()");
			return;
		}
	}

	NTTMGR_TownManager();

	NTTM_TownMove("portalspot");

	for(i = 0; i <= 200; i++)
	{
		if(NTC_InMyParty(NTConfig_Leader))
			break;

		Delay(200);
	}   

	while(me.areaid == 109 && NTC_InMyParty(NTConfig_Leader))
	{
		if(NTConfig_LeechTPMsg == "")
			NTM_UsePortal("BluePortal", 131, NTConfig_Leader); // 50

		Delay(2000);
	}
	
	NTM_MoveTo(me.areaid, 15118, 5002);
	NTP_DoPrecast(true);

	while(NTC_InMyParty(NTConfig_Leader) && NTC_FindUnit(NTC_UNIT_MONSTER, 543))
		Delay(500);

	var _portal = NTC_FindUnit(NTC_UNIT_OBJECT, 563, 2);

	if(!_portal)
	{
		NTC_SendMsgToScript("MWBotGame.ntj", "NTC_FindUnit()");
			return;
	}
	
	NTM_MoveTo(me.areaid, 15095, 5028);
	NTM_MoveTo(me.areaid, 15092, 5010);
		
	if(!NTM_UsePortal("Portal", 132, null, _portal))
	{
		NTC_SendMsgToScript("MWBotGame.ntj", "NTM_UsePortal()");
		return;
	}

	var _baal = NTC_FindUnit(NTC_UNIT_MONSTER, 544);

	while(NTC_InMyParty(NTConfig_Leader) && NTA_IsValidMonster(_baal))
		Delay(2500);

	Delay(2000);

	NTC_SendMsgToScript("MWBotGame.ntj", "SCRIPT_END");
}

function NT_GameMsgEvents(msg, type)
{
	if(type == 0 && msg.indexOf(NTConfig_Leader) != -1 && msg.indexOf(NTConfig_LeechTPMsg) != -1 && NTConfig_LeechTPMsg != "")
	{
		while(me.areaid == 109)
		{
			NTM_UsePortal("BluePortal", 131, NTConfig_Leader);	
		}
	}
}
das baalleechfightscript

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

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

   NTA_Initialize(); 
   
   RegisterEvent(EVENT_GAMEMSG, NT_GameMsgEvents);

   if(!NTTM_CheckAct())
   {
      NTC_SendMsgToScript("MWBotGame.ntj", "NTTM_CheckAct()");
      return;
   }

   if(me.areaid != 109)
   {
   if(!NTTM_TownMove("waypoint"))
   {
      NTC_SendMsgToScript("MWBotGame.ntj", "NTTM_TownMove()");
      return;
   }

   if(!NTM_TakeWaypoint(109))
   {
      NTC_SendMsgToScript("MWBotGame.ntj", "NTM_TakeWaypoint()");
      return;
   }
   }
       
   NTTMGR_TownManager();

if(NTConfig_precast)
{
   NTM_TakeWaypoint(129)
   NTP_DoPrecast(true);
   Delay(500)
   NTM_TakeWaypoint(109)
}   

   
   NTTM_TownMove("portalspot");

   for(i = 0; i <= 100; i++)
   {
      if(NTC_InMyParty(NTConfig_Leader))
         break;

      Delay(200);
   }

   while(me.areaid == 109 && NTC_InMyParty(NTConfig_Leader))
   {
			if(NTConfig_CoLeechTPMsg == "")
				NTM_UsePortal("BluePortal", 131, NTConfig_Leader); // 50
      Delay(1000);
       
   }
if(!NTConfig_precast)
	NTM_MakeTP();
	NTP_DoPrecast(true);
	NTA_ClearPosition(20, true, 2);
if(NTConfig_precast)
	NTA_ClearPosition(20, true, 2);
	NTM_MakeTP();


   while(NTC_InMyParty(NTConfig_Leader))
   {
   
   NT_ClearThroneInt();

   while(1)
   {
      if(me.classid == NTC_CHAR_CLASS_PALADIN || me.classid == NTC_CHAR_CLASS_BARBARIAN)
         NTM_MoveTo(me.areaid, 15092, 5028);
      else
         NTM_MoveTo(me.areaid, 15089, 5010);

      if(me.GetState(2))
         NTC_PutSkill(109, NTC_HAND_RIGHT);

      for(i = 0 ; i < 6 ; i++)
      {
         _wave = NT_ThroneCheckInt();
         if(_wave > 0)
            break;

         NTC_Delay(500);
      }

      _starttick = GetTickCount();

      while(_wave == 0)
      {
         if(!NT_ThronePreAttackInt())
            NTC_Delay(200);

         if(GetTickCount()-_starttick > 15000)
         {
            NT_ClearThroneInt();

            _starttick = GetTickCount();
         }

         _wave = NT_ThroneCheckInt();
      }

      switch(_wave)
      {
      case 1: 
         NTA_ClearPosition(40, true, 2); 
         NTP_DoPrecast(true); 
         break; 
      case 2: 
         NTM_MoveTo(me.areaid, me.x, me.y-1); 
         NTA_ClearPosition(40, true); 
         NTTMGR_CheckSafe(NTConfig_CheckSelfSafe, NTConfig_CheckMercSafe); 
         break; 
      case 3: 
         NTM_MoveTo(me.areaid, me.x, me.y-1); 
         NTA_ClearPosition(40, true, 2); 
         NTSI_PickItems();
         NT_CheckHydraInt(); 
         break; 
      case 4: 
         NTM_MoveTo(me.areaid, me.x, me.y-1); 
         NTA_ClearPosition(40, true, 2); 
         break; 
      case 5: 
         NTM_MoveTo(me.areaid, me.x, me.y-1); 
         NTA_ClearPosition(40, true, 2); 
         break;
      default:
         NTA_ClearPosition(40, true, 1);
         break;
      }

      if(_wave == 5)
         break;
   }

   if(NTConfig_KillBaal)
   {
      var _portal;

      if(!NTTMGR_CheckSafe(NTConfig_CheckSelfSafe, NTConfig_CheckMercSafe))
      {
         NTC_SendMsgToScript("MWBotGame.ntj", "NTTMGR_CheckSafe()");
         return;
      }

      NTM_MoveTo(me.areaid, 15092, 5010);

      NTP_DoPrecast(true);

      while(NTC_FindUnit(NTC_UNIT_MONSTER, 543))
         NTC_Delay(500);

      _portal = NTC_FindUnit(NTC_UNIT_OBJECT, 563, 1);

      if(!_portal)
      {
         NTC_SendMsgToScript("MWBotGame.ntj", "NTC_FindUnit()");
         return;
      }

      if(!NTM_UsePortal("Portal", 132, null, _portal))
      {
         NTC_SendMsgToScript("MWBotGame.ntj", "NTM_UsePortal()");
         return;
      }

      NTM_MoveTo(me.areaid, 15138, 5916);
			NTA_Initialize()
			
      if(!NTA_KillMonster(544))
      {
         NTC_SendMsgToScript("MWBotGame.ntj", "NTA_KillMonster()");
         return;
      }

      NTSI_PickItems();
   }

   }

   NTC_SendMsgToScript("MWBotGame.ntj", "SCRIPT_END");

}


// Internal function
function NT_ClearThroneInt()
{
	var _attackpos = [15112, 5068, 15085, 5065, 15114, 5045, 15114, 5012, 15095, 5024, 15078, 5013, 15092, 5040];

	for(var i = 0 ; i < _attackpos.length ; i += 2)
	{
		NTM_MoveTo(me.areaid, _attackpos[i], _attackpos[i+1]);

		NTA_ClearPosition(30, true, 2);
	}
	NTM_MoveTo(me.areaid, 15093, 5041);
	NTA_ClearPosition(50, true, 2);
}

function NT_ThroneCheckInt()
{
	var _monster;

	if(!NTC_FindUnit(NTC_UNIT_MONSTER, 543))
		return 5;

	_monster = NTC_FindUnit(NTC_UNIT_MONSTER);

	if(_monster)
	{
		do
		{
			if(NTA_IsValidMonster(_monster))
			{
				if(_monster.classid == 23 || _monster.classid == 62)
					return 1;

				if(_monster.classid == 105 || _monster.classid == 381)
					return 2;

				if(_monster.classid == 557)
					return 3;

				if(_monster.classid == 558)
					return 4;

				if(_monster.classid == 571)
					return 5;
			}
		} while(_monster.GetNext());
	}

	return 0;
}

function NT_ThronePreAttackInt()
{
	if(me.classid == NTC_CHAR_CLASS_SORCERESS)
	{
		if(NTConfig_AttackSkill[3] == 56 || NTConfig_AttackSkill[3] == 59)
			return NTC_CastSkill(NTConfig_AttackSkill[3], 0, 15092, 5028);
	}
	else if(me.classid == NTC_CHAR_CLASS_PALADIN)
	{
		if(NTConfig_AttackSkill[3] == 112)
		{
			if(NTConfig_AttackSkill[4] > 0)
				NTC_PutSkill(NTConfig_AttackSkill[4], NTC_HAND_RIGHT);

			return NTC_CastSkill(NTConfig_AttackSkill[3], 2);
		}
	}
	return false;
}

function NT_CheckHydraInt()
{
	var _hydra1, _hydra2, _hydra3;

	_hydra1 = NTC_FindUnit(NTC_UNIT_MONSTER, 351);
	_hydra2 = NTC_FindUnit(NTC_UNIT_MONSTER, 352);
	_hydra3 = NTC_FindUnit(NTC_UNIT_MONSTER, 353);

	if((_hydra1 && _hydra1.GetStat(172) != 2 && _hydra1.GetState(105))
		|| (_hydra2 && _hydra2.GetStat(172) != 2 && _hydra2.GetState(105))
		|| (_hydra3 && _hydra3.GetStat(172) != 2 && _hydra3.GetState(105)))
	{
		NTM_MoveTo(me.areaid, 15118, 5002);

		if(me.GetState(2))
			NTC_PutSkill(109, NTC_HAND_RIGHT);

		NTC_PingDelay(5000);
	}
}

function NT_GameMsgEvents(msg, type)
{
	if(type == 0 && msg.indexOf(NTConfig_Leader) != -1 && msg.indexOf(NTConfig_CoLeechTPMsg) != -1 && NTConfig_CoLeechTPMsg != "")
	{
		while(me.areaid == 109)
		{
			NTM_UsePortal("BluePortal", 131, NTConfig_Leader);	
		}
	}
}
das dialeechfightscript
- hier is zu beachten das die leecher syncron zum run mitlaufen müssen, vorher andy killen und dann den run joinen is also net... da sobald die leechfighter net in der nähe der siegel sind wenn diese geöffnet werden sich mehr oder weniger aufhängen(zu ~90%), müsste man bei gelegenheit mal ne bedingung reinschreiben das nach 5 versuchen oder so zum nächsten siegel gegangen wird .... demnächst :p

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

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

	NTA_Initialize();

	if(!NTTM_CheckAct())
	{
		NTC_SendMsgToScript("MWBotGame.ntj", "NTTM_CheckAct()");
		return;
	}
	
	if(me.areaid != 103)
	{
		if(!NTTM_TownMove("waypoint"))
		{
			NTC_SendMsgToScript("MWBotGame.ntj", "NTTM_TownMove()");
			return;
		}

		if(!NTM_TakeWaypoint(103))
		{
			NTC_SendMsgToScript("MWBotGame.ntj", "NTM_TakeWaypoint()");
			return;
		}
	}


	NTTMGR_TownManager();

   NTTM_TownMove("portalspot");

   for(i = 0; i <= 100; i++)
   {
      if(NTC_InMyParty(NTConfig_Leader))
         break;

      Delay(200);
   }   

   while(me.areaid == 103 && NTC_InMyParty(NTConfig_Leader))
   {
		if(NT_GetLeader(NTConfig_Leader).areaid >= 129)
		{
			NTC_SendMsgToScript("MWBotGame.ntj", "SCRIPT_END");
			return;
		}
		NTM_UsePortal("BluePortal", 108, NTConfig_Leader); // 50
		Delay(1000);
       
   }
		
		NTP_DoPrecast(true);
		NTA_ClearPosition(10, true);
		NTM_MoveTo(me.areaid, 7792, 5291);
		NTA_ClearPosition(20, true);
		NTM_MoveTo(me.areaid, 7792, 5291);
		NTA_ClearPosition(30, true);

		
		if(!NT_OpenSealsInt())
		{
			NTC_SendMsgToScript("MWBotGame.ntj", "NT_OpenSealsInt()");
			return;
		}
	
		if(NTConfig_PublicMode)
			Say(NTConfig_KillDiaMsg);

		NTM_MoveTo(me.areaid, 7792, 5292);
		NTP_DoPrecast(true);
		NTC_FindUnit(NTC_UNIT_MONSTER, 243, 100);


		NTA_KillMonster(243);
		NTSI_PickItems();
		Say(NTConfig_DiaNxtGame);
		NTC_SendMsgToScript("MWBotGame.ntj", "SCRIPT_END");


// Internal function
function NT_OpenSealsInt()
{
	var i, _unit;
	var _result;

	_unit = GetPresetUnits(me.areaid, NTC_UNIT_OBJECT);

	if(!_unit)
		return false;

	_result = false;

	for(i = 0 ; i < _unit.length ; i++)
	{
		if(_unit[i].id == 396)
		{
			if(_unit[i].roomy*5 + _unit[i].y == 5275)
				_result = NT_OpenVizierSealInt(1);
			else
				_result = NT_OpenVizierSealInt(2);

			break;
		}
	}

	if(!_result)
		return false;
		
	NTA_ClearPosition(30, true, 2);
	NTP_DoPrecast(false);

	_result = false;

	for(i = 0 ; i < _unit.length ; i++)
	{
		if(_unit[i].id == 394)
		{
			if(_unit[i].roomx*5 + _unit[i].x == 7773)
				_result = NT_OpenDeSeisSealInt(1);
			else
				_result = NT_OpenDeSeisSealInt(2);

			break;
		}
	}

	if(!_result)
		return false;

	NTA_ClearPosition(30, true, 2);
	NTP_DoPrecast(true);

	_result = false;

	for(i = 0 ; i < _unit.length ; i++)
	{
		if(_unit[i].id == 392)
		{
			if(_unit[i].roomx*5 + _unit[i].x == 7893)
				_result = NT_OpenVenomSealInt(1);
			else
				_result = NT_OpenVenomSealInt(2);

			break;
		}
	}

	return _result;
}

function NT_OpenVizierSealInt(type)
{

var _monstername = GetLocaleString(2851);
var i, n;

	var i, n;
	var _attackpos = [7740, 5300, 7792, 5291, 7740, 5280, 7720, 5280, 7720, 5300];
	

	for(i = 0 ; i < _attackpos.length ; i += 2)
	{
		NTM_MoveTo(me.areaid, _attackpos[i], _attackpos[i+1]);

		NTA_ClearPosition(25, true, 2);
	}
	
	NTM_MoveTo(me.areaid, 7735, 5291);
	NTA_ClearPosition(40, true, 2);

	for(i = 0 ; i < 3 ; i++)
	{
		if(type == 1)
		{
			NTM_MoveTo(me.areaid, 7695, 5293);
			NTA_ClearPosition(25, true, 2);
			NTM_MoveTo(me.areaid, 7664, 5314);
			NTA_ClearPosition(25, true, 2);
			NTM_MoveTo(me.areaid, 7673, 5293);
			NTA_ClearPosition(25, true, 2);
			NTM_MoveTo(me.areaid, 7662, 5276);
			NTA_ClearPosition(25, true, 2);
			NTM_MoveTo(me.areaid, 7676, 5294);
			NTA_ClearPosition(60, true, 2);	
			
			if(me.classid == NTC_CHAR_CLASS_PALADIN)
				NTM_MoveTo(me.areaid, 7678, 5292);
		}
		else
		{
			NTM_MoveTo(me.areaid, 7695, 5316);
			NTA_ClearPosition(25, true, 2);
			NTM_MoveTo(me.areaid, 7664, 5314);
			NTA_ClearPosition(25, true, 2);
			NTM_MoveTo(me.areaid, 7654, 5281);
			NTA_ClearPosition(25, true, 2);
			NTM_MoveTo(me.areaid, 7695, 5316);
			NTA_ClearPosition(60, true, 2);
			
			if(me.classid == NTC_CHAR_CLASS_PALADIN)
				NTM_MoveTo(me.areaid, 7676, 5320);
		}

		for(n = 0 ; n < 10 ; n++)
		{
			NTC_Delay(200);

			if(NTA_KillMonster(_monstername))
			{
				NTA_ClearPosition(40);
				NTSI_PickItems();

				return NTM_MoveTo(me.areaid, 7792, 5291);
			}
		}
	}
	return false;
}

function NT_OpenDeSeisSealInt(type)
{
	var i, n;
	var _monstername = GetLocaleString(2852);

	var _attackpos = [7780, 5255, 7800, 5255, 7800, 5235, 7780, 5235, 7774, 5214];
	var _monstername = GetLocaleString(2852);

	for(i = 0 ; i < _attackpos.length ; i += 2)
	{
		NTM_MoveTo(me.areaid, _attackpos[i], _attackpos[i+1]);

		NTA_ClearPosition(25, true, 2);
	}
	
	NTM_MoveTo(me.areaid, 7790, 5244);
	NTA_ClearPosition(40, true, 2);


	for(i = 0 ; i < 3 ; i++)
	{
		if(type == 1)
		{
			NTM_MoveTo(me.areaid, 7773, 5194);
			NTA_ClearPosition(25, true, 2);
			NTM_MoveTo(me.areaid, 7813, 5188);
			NTA_ClearPosition(25, true, 2);
			NTM_MoveTo(me.areaid, 7809, 5155);
			NTA_ClearPosition(25, true, 2);
			NTM_MoveTo(me.areaid, 7777, 5155);
			NTA_ClearPosition(60, true, 2);			
			
			if(me.classid == NTC_CHAR_CLASS_PALADIN)
				NTM_MoveTo(me.areaid, 7768, 5206);
			else
				NTM_MoveTo(me.areaid, 7774, 5220);
		}
		else
		{
			NTM_MoveTo(me.areaid, 7810, 5202);
			NTA_ClearPosition(25, true, 2);
			NTM_MoveTo(me.areaid, 7774, 5180);
			NTA_ClearPosition(25, true, 2);
			NTM_MoveTo(me.areaid, 7785, 5153);
			NTA_ClearPosition(25, true, 2);
			NTM_MoveTo(me.areaid, 7809, 5154);
			NTA_ClearPosition(60, true, 2);			
			
			if(me.classid == NTC_CHAR_CLASS_PALADIN)
				NTM_MoveTo(me.areaid, 7773, 5178);
			else
				NTM_MoveTo(me.areaid, 7788, 5192);
		}

		for(n = 0 ; n < 10 ; n++)
		{
			NTC_Delay(200);

			if(NTA_KillMonster(_monstername))
			{
				NTA_ClearPosition(40);
				NTSI_PickItems();

		NTP_DoPrecast(false);
		return NTM_MoveTo(me.areaid, 7792, 5291);
			}
		}
	}
	return false;
}

function NT_OpenVenomSealInt(type)
{
	var i, n;
	var _monstername = GetLocaleString(2853);

	var _attackpos = [7835, 5280, 7835, 5300, 7855, 5300, 7855, 5280];
	

	for(i = 0 ; i < _attackpos.length ; i += 2)
	{
		NTM_MoveTo(me.areaid, _attackpos[i], _attackpos[i+1]);

		NTA_ClearPosition(25, true, 2);
	}
	
	NTM_MoveTo(me.areaid, 7843, 5292);
	NTA_ClearPosition(40, true, 2);
	
	for(i = 0 ; i < 3 ; i++)
	{
		if(type == 1)
		{
			NTM_MoveTo(me.areaid, 7871, 5293);
			NTA_ClearPosition(25, true, 2);
			NTM_MoveTo(me.areaid, 7893, 5307);
			NTA_ClearPosition(25, true, 2);
			NTM_MoveTo(me.areaid, 7912, 5280);
			NTA_ClearPosition(25, true, 2);
			NTM_MoveTo(me.areaid, 7931, 5293);
			NTA_ClearPosition(25, true, 2);
			NTM_MoveTo(me.areaid, 7908, 5293);
			NTA_ClearPosition(60, true, 2);
			
			if(me.classid == NTC_CHAR_CLASS_PALADIN)
				NTM_MoveTo(me.areaid, 7892, 5298);
		}
		else
		{
			NTM_MoveTo(me.areaid, 7893, 5274);
			NTA_ClearPosition(25, true, 2);
			NTM_MoveTo(me.areaid, 7927, 5280);
			NTA_ClearPosition(25, true, 2);
			NTM_MoveTo(me.areaid, 7930, 5308);
			NTA_ClearPosition(25, true, 2);
			NTM_MoveTo(me.areaid, 7929, 5294);
			NTA_ClearPosition(60, true, 2);
			
			if(me.classid == NTC_CHAR_CLASS_PALADIN)
				NTM_MoveTo(me.areaid, 7927, 5275);
		}

		for(n = 0 ; n < 10 ; n++)
		{
			NTC_Delay(200);

			if(NTA_KillMonster(_monstername))
			{
				NTSI_PickItems();
				NTA_ClearPosition(40, true, 2);
			}


			
			if(NTC_PutSkill(124, NTC_HAND_RIGHT))
				NTC_PingDelay(1000);
		}
		return true;
	}
	return false;
}

function NT_GetLeader(_name)  
{
				_player = GetPlayerUnit();

				if(_player)
				{
					while(_player.GetNext())
					{
					if(_player.name == _name) 
						{ return _player; }
					}
				}
}
}

und dann noch für die charconfig

Code:
NTConfig_Leader = "" // Name vom Leader-Char, Groß- und Kleinschreibung beachten!
MWConfig_Script.push(["name der datei", 5]); 
NTConfig_KillBaal = true; NTConfig_precast = true;
NTConfig_CoLeechTPMsg = ""; // Bei dieser Message vom Leader geht der Bot ins TP. Wenn er jederzeit rein gehen soll, leer lassen.
NTConfig_KillDiaMsg = "Dia" ; NTConfig_DiaNxtGame = "Ng" ;
sry nochmal für die unannehmlichkeiten letzte nacht, war schon spät :(
jetzt sollte es aber, sofern richtig eingebunden, funzen ;)
Danke dir, also Errors sind soweit keine mehr drin, nur hat meine Sorc jetzt das Problem das sie entweder viel zu spät oder gar nicht das Game joint. Wenn ich das mit dem D2NT aus Public Botten für Anfänger vergleiche, auf dem im Moment mein Leechfighter läuft, dann spammt dieser im Vergleich zu deinem Script permanent /f l um dann zu joinen, bei deinem Script macht er das nur ab und zu und somit joint er entweder gar nicht wenn es zu spät is oder halt ab und zu wenn der Leader gerade in dem Moment auch created.
Jetzt ist die Frage ob er das auch bei dir macht oder ob er bei dir ganz normal die ganze Zeit /f l macht um dann zu joinen, weil dann fehlt wohl noch nen teil :(
05/25/2011 18:56 TheCrazy11#2082
Er scheint den Leader nicht zu finden...
Hast du Account und Charnamen richtig geschrieben?
Haben sich Leader & Leecher auf der /f l?
Diablo ist auf Englisch?

Wenn beides ja, dann setz die Variable Debug mal auf true in der NTBotLeech.ntj und schreib dann die Meldungen hier rein.
05/25/2011 22:39 GruenerApfel#2083
Quote:
Originally Posted by Rondo80 View Post
Danke dir, also Errors sind soweit keine mehr drin, nur hat meine Sorc jetzt das Problem das sie entweder viel zu spät oder gar nicht das Game joint. Wenn ich das mit dem D2NT aus Public Botten für Anfänger vergleiche, auf dem im Moment mein Leechfighter läuft, dann spammt dieser im Vergleich zu deinem Script permanent /f l um dann zu joinen, bei deinem Script macht er das nur ab und zu und somit joint er entweder gar nicht wenn es zu spät is oder halt ab und zu wenn der Leader gerade in dem Moment auch created.
Jetzt ist die Frage ob er das auch bei dir macht oder ob er bei dir ganz normal die ganze Zeit /f l macht um dann zu joinen, weil dann fehlt wohl noch nen teil :(
dann sind dort die delay knapper gesetzt ... einfach die zeit für /f l knapper bemessen, aber vorsicht zu viel und vor allem zu schnell gespammtes verschafft dir ne 10 minuten auszeit!
weiß nich mit wievielen chars du joinst aber bedenke das was bei 2 chars vielleicht noch geht bei 3 oder 4 schon zum tempbann führen kann ;)
05/26/2011 00:32 Rondo80#2084
So also ohne was geändert zu haben macht er jetzt immer regelmäßig /f l um den Leader zu finden, keine Ahnung warum das vorher nicht geklappt hat. Nun hab ich aber andere nicht reproduzierbare Dinge die mir auffallen. Wenn der Leader created und der Leecher dabei is zu joinen dann kommt ne cryptische buchstaben abfolge im chat, diese wird aber nicht abgeschickt sonder abgebrochen dann kommt sowas wie /f lqw was er auch nicht abschickt, erst dann geht er ins dazu über das Game zu joinen. Klappt beim ersten mal auch :) aber beim zweiten run gabs nen Game does not exist als er joinen wollte obwohl der Leader schon länger im Game war und dann hat er die /f lqw abgeschickt und halt die Meldung bekommen das das kein zulässiger Befehlt is, logisch! Darauf den Run schafft er wieder das joinen aber dann gibts wieder nen Error und diesmal noch komischer, und zwar das er keine Hardcore Games joinen kann häääää???? und wieder die cryptische fl chatnachricht die nicht existiert. Hab die Quellcodes 1zu1 übernommen, somit ist das sehr komisch.
Ach ja in der baalleechfight gibts auch noch nen kleinen Error der aber nicht weiter stört da es passiert sobald Baal tot is, habs als Bild angehangen

Mal schauen ob einer von euch nen Plan hat was da los is :)
05/26/2011 10:41 GruenerApfel#2085
Quote:
Originally Posted by Rondo80 View Post
So also ohne was geändert zu haben macht er jetzt immer regelmäßig /f l um den Leader zu finden, keine Ahnung warum das vorher nicht geklappt hat. Nun hab ich aber andere nicht reproduzierbare Dinge die mir auffallen. Wenn der Leader created und der Leecher dabei is zu joinen dann kommt ne cryptische buchstaben abfolge im chat, diese wird aber nicht abgeschickt sonder abgebrochen dann kommt sowas wie /f lqw was er auch nicht abschickt, erst dann geht er ins dazu über das Game zu joinen. Klappt beim ersten mal auch :) aber beim zweiten run gabs nen Game does not exist als er joinen wollte obwohl der Leader schon länger im Game war und dann hat er die /f lqw abgeschickt und halt die Meldung bekommen das das kein zulässiger Befehlt is, logisch! Darauf den Run schafft er wieder das joinen aber dann gibts wieder nen Error und diesmal noch komischer, und zwar das er keine Hardcore Games joinen kann häääää???? und wieder die cryptische fl chatnachricht die nicht existiert. Hab die Quellcodes 1zu1 übernommen, somit ist das sehr komisch.
Ach ja in der baalleechfight gibts auch noch nen kleinen Error der aber nicht weiter stört da es passiert sobald Baal tot is, habs als Bild angehangen

Mal schauen ob einer von euch nen Plan hat was da los is :)
hast du ggf bei den chars noch random games eingestellt ? ... also bei spielname und pw ? .... gib dort mal feste werte vor, auch wenns n leecher ist
und schalt eventuell joingameagain auf true