org farmer ändern

08/07/2010 15:55 xdoddestroyer#1
hi ich wollt gerne das der nur organe holt und nicht den ut öffnet ich habe mal versucht daran zu zaubern aber irgendwie kommt dan immer eine fhelermeldung hier mal die orginale wär cool wenn da einer mal helfen könnte!

hier mal die orginale!

Code:
 //OrganFarmer put together by stairbuilder
    //a monkey with pretty colored multi shaped blocks production
    //look for credits in the comments
    //Thanks to Roflman who is always nice enough to let me bounce stuff off of him
    //THanks aslo to kiss me angel who's script inspired, and partially was stolen from to make this
    //thanks to Kolton for some ideas on duriel

    // modded by D2OD

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

    NT_LoadConfig();

    NTSI_LoadNIPFiles("NTBot/item_configs");

    NTA_Initialize();

    Print("    ˙c;OrganFarmerPlusTorcher Start ");//s

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

    NTTMGR_TownManager();

    var KeyofTerror = me.GetItems("pk1");
    var KeyofHate = me.GetItems("pk2");
    var KeyofDestruction = me.GetItems("pk3");

    var mephistosbrain = me.GetItems("mbr");
    var baalseye = me.GetItems("bey");
    var diabloshorn = me.GetItems("dhn");

    if((!mephistosbrain || mephistosbrain.length < 1) || (!baalseye || baalseye.length < 1) || (!diabloshorn || diabloshorn.length < 1) || NTOF_CheckKeptTorch())
    {
        if(!NTOF_CheckKeptTorch())
            Print('Not enough organs => checking keys');
        else
            Print('Farming organs (i already have a torch) => checking keys!');

        if((!KeyofTerror || KeyofTerror.length < 3) || (!KeyofHate || KeyofHate.length < 3) || (!KeyofDestruction || KeyofDestruction.length < 3))
        {
            Print('Not enough keys => getting needed keys');
            if(!KeyofTerror || KeyofTerror.length < 3)
            {
                Print('I need '+(3-(KeyofTerror ? KeyofTerror.length : 0))+' keys of Terror. => Starting Countess!');
                if(!NTOF_KillCountess())
                {
                    //NTC_SendMsgToScript("NTBotGame.ntj", "NTOF_KillCountess()");
                    //return;
                }
                if(!NTTM_CheckAct())
                {
                    NTC_SendMsgToScript("NTBotGame.ntj", "NTTM_CheckAct()");
                    return;
                }
                NTTMGR_TownManager();
            }

            if(!KeyofHate || KeyofHate.length < 3)
            {
                Print('I need '+(3-(KeyofHate ? KeyofHate.length : 0))+' keys of Hate. => Starting Summoner!');
                if(!NTOF_KillSummoner())
                {
                    //NTC_SendMsgToScript("NTBotGame.ntj", "NTOF_KillSummoner()");
                    //return;
                }
                if(!NTTM_CheckAct())
                {
                    NTC_SendMsgToScript("NTBotGame.ntj", "NTTM_CheckAct()");
                    return;
                }
                NTTMGR_TownManager();
            }

            if(!KeyofDestruction || KeyofDestruction.length < 3)
            {
                Print('I need '+(3-(KeyofDestruction ? KeyofDestruction.length : 0))+' keys of Destruction. => Starting Nilhatack!');
                if(!NTOF_KillNilhatack())
                {
                    //NTC_SendMsgToScript("NTBotGame.ntj", "NTOF_KillNilhatack()");
                    //return;
                }
                if(!NTTM_CheckAct())
                {
                    NTC_SendMsgToScript("NTBotGame.ntj", "NTTM_CheckAct()");
                    return;
                }
                NTTMGR_TownManager();
            }

            KeyofTerror = me.GetItems("pk1");
            KeyofHate = me.GetItems("pk2");
            KeyofDestruction = me.GetItems("pk3");

            if((!KeyofTerror || KeyofTerror.length < 3) || (!KeyofHate || KeyofHate.length < 3) || (!KeyofDestruction || KeyofDestruction.length < 3))
            {
                Print('Still not enough keys... => NextGame!');
                NTC_SendMsgToScript("NTBotGame.ntj", "SCRIPT_END");
                return;
            }
        }

        Print('I have enough keys => lets open the mini ubers!');
        if(!NTTM_CheckAct(5))
        {
            NTC_SendMsgToScript("NTBotGame.ntj", "NTTM_CheckAct()");
            return;
        }

        NTConfig_AttackSkill[1] = 97; // smite

        NTConfig_MercLifeThresh = 0;
        NTConfig_MercRejuvThresh = 0; //won't waste pots on merc
        NTConfig_UseMerc = false; //won't revive merc now

        var open_mini_uber = true;
        while(open_mini_uber)
        {
            me.maxgametime = 3600; // 1 hour

            if(!NTTM_CheckAct(5))
            {
                NTC_SendMsgToScript("NTBotGame.ntj", "NTTM_CheckAct()");
                return;
            }
            NTTMGR_TownManager();

            if(NTConfig_PreBuffFade && me.GetStat(181) < 1)// another rip off from kiss me angle, but it just was to good not to include
                NTOF_PreBuffFade();

            NTOF_CubeKeys();
            NTOF_EnterRedPortal();
            if(!NTOF_Kill_Mini_Uber())
            {
                //NTC_SendMsgToScript("NTBotGame.ntj", "NTOF_Kill_Mini_Uber()");
                //return;
            }
            if(!NTTM_CheckAct(5))
            {
                NTC_SendMsgToScript("NTBotGame.ntj", "NTTM_CheckAct()");
                return;
            }
            NTTMGR_TownManager();

            mephistosbrain = me.GetItems("mbr");
            baalseye = me.GetItems("bey");
            diabloshorn = me.GetItems("dhn");

            if(mephistosbrain && mephistosbrain.length >= 1 && baalseye && baalseye.length >= 1 && diabloshorn && diabloshorn.length >= 1 && !NTOF_CheckKeptTorch())
                open_mini_uber = false;

            KeyofTerror = me.GetItems("pk1");
            KeyofHate = me.GetItems("pk2");
            KeyofDestruction = me.GetItems("pk3");

            if((!KeyofTerror || KeyofTerror.length < 1) || (!KeyofHate || KeyofHate.length < 1) || (!KeyofDestruction || KeyofDestruction.length < 1))
                open_mini_uber = false;
        }

        if((!mephistosbrain || mephistosbrain.length < 1) || (!baalseye || baalseye.length < 1) || (!diabloshorn || diabloshorn.length < 1))
        {
            Print('˙c1How strange! I couldn\'t kill one of the mini uber??');
            Print('Still not enough organs... => NextGame!');
            NTC_SendMsgToScript("NTBotGame.ntj", "SCRIPT_END");
            return;
        }
    }

    if(mephistosbrain && mephistosbrain.length >= 1 && baalseye && baalseye.length >= 1 && diabloshorn && diabloshorn.length >= 1 && !NTOF_CheckKeptTorch())
    {
        // if(NTOF_CheckKeptTorch())
            // NTOF_Idle();

        me.maxgametime = 3600; // 1 hour

        NTConfig_AttackSkill[1] = 97; // smite

        NTConfig_MercLifeThresh = 0;
        NTConfig_MercRejuvThresh = 0; //won't waste pots on merc
        NTConfig_UseMerc = false; //won't revive merc now

        if(!NTTM_CheckAct(5))
        {
            NTC_SendMsgToScript("NTBotGame.ntj", "NTTM_CheckAct()");
            return;
        }
        NTTMGR_TownManager();

        if(NTConfig_PreBuffFade && me.GetStat(181) < 1)// another rip off from kiss me angle, but it just was to good not to include
            NTOF_PreBuffFade();

        Print('Opening Uber Tristram!');
        NTOF_CubeOrgans();
        NTOF_EnterRedPortal();
        if(!NTOF_UberTristram())
        {
            NTC_SendMsgToScript("NTBotGame.ntj", "NTOF_UberTristram()");
            return;
        }
        if(!NTTM_CheckAct(5))
        {
            NTC_SendMsgToScript("NTBotGame.ntj", "NTTM_CheckAct()");
            return;
        }
        NTOF_CheckKeptTorch();
    }

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

// internal functions

function NTOF_EnterRedPortal()
{
    var _portal = NTC_FindUnit(NTC_UNIT_OBJECT, GetLocaleString(3226))

    if(_portal)
    {
        while(GetDistance(me, _portal) > 15)
            _portal.GetNext();

        do
        {
            if(NTM_GetCloserInt(_portal))
                NTC_DoClick(NTC_CLICK_LDOWN, NTC_SHIFT_NONE, _portal);

            NTC_Delay(100);

            if(me.areaid != 109)
                break;
        } while(_portal);
    }
}

function NTOF_Kill_Mini_Uber()
{
    if(me.areaid == 133)
    {
        Print("    ˙c;Killing Lillith")//i
        Print("    ˙c;2Love Those Boobs")

        return NTOF_KillUberLilith();
    }
    else if(me.areaid == 134)
    {
        Print("    ˙c;Killing Duriel")

        return NTOF_KillUberDuriel();
    }
    else if(me.areaid == 135)
    {
        Print("    ˙c;Killing Izzy")//r

        NTP_DoPrecast(true);

        if(NTConfig_SwitchTele)
            NTC_SwapWeapons(1);

        return NTOF_KillUberIzual();
    }
    else
    {
        Print("˙c1I'm not in any mini uber level!");
        return false;
    }
}

function NTOF_CheckKeptTorch()
{
    var HellFireTorch = me.GetItems("cm2");
    if(HellFireTorch && HellFireTorch.length > 0)
    {
        Print("    ˙c!Already Have A Torch");
        if(NTSI_CheckItem(HellFireTorch[0]) == 0)
        {
            if(HellFireTorch[0].itemloc == 4)
            {
                // go find it in stash
                if(!NTTM_CheckAct(5))
                    return true;

                if(!NTTM_TownMove("stash"))
                    return true;
                var _stash;
                for(var i = 0 ; i < 10 ; i++)
                {
                    _stash = NTC_FindUnit(NTC_UNIT_OBJECT, NTC_UNIT_STASH);

                    if(_stash)
                        break;
                }
                if(!_stash)
                    return true;

                if(!NTT_DoInteract(_stash))
                    return true;

                NTT_ManageStash();

                // drop it
                if(NTC_ItemToCursor(HellFireTorch[0]))
                {
                    while(GetUIState(0x19))
                    {
                        me.Cancel(1);
                        NTC_Delay(500);
                    }

                    NTC_ClearCursor();
                }
                return false;
            }
            else if(HellFireTorch[0].itemloc == 0)
            {
                // drop it
                SetUIState(0x01);
                NTT_DropItem(HellFireTorch[0]);
                me.Cancel(1);

                return false;
            }
            else
            {
                // bug here :/ => where is the torch???
                Print("˙c1uhhhh, where is my torch? : itemloc "+HellFireTorch[0].itemloc);
                return true;
            }

        }
        else if(NTSI_CheckItem(HellFireTorch[0]) == -1)
        {
            if(HellFireTorch[0].itemloc == 4)
            {
                // go find it in stash
                NTTM_CheckAct(5);
                NTTM_TownMove("stash");
                var _stash;
                for(var i = 0 ; i < 10 ; i++)
                {
                    _stash = NTC_FindUnit(NTC_UNIT_OBJECT, NTC_UNIT_STASH);

                    if(_stash)
                        break;
                }
                if(!_stash)
                    return false;

                if(!NTT_DoInteract(_stash))
                    return false;

                NTT_ManageStash();

                // pick up torch
                var _invspace = new Array(4);

                for(var y = 0 ; y < 4 ; y++)
                    _stashspace[y] = new Array(10);

                for(var y = 0 ; y < 4 ; y++)
                    for(var x = 0 ; x < 10 ; x++)
                        _stashspace[y][x] = NTConfig_Columns[y][x];

                _items = me.GetItems(0);

                if(_items)
                    for(var i = 0 ; i < _items.length ; i++)
                        for(var y = 0 ; y < _items[i].ysize ; y++)
                            for(var x = 0 ; x < _items[i].xsize ; x++)
                                _invspace[y+_items[i].y][x+_items[i].x] = 0;

                for(var y = 0 ; y < 4 ; y++)
                {
                    for(var x = 0 ; x < 10 ; x++)
                    {
                        var _havespace = true;
                        for(var torchysize = 0; torchysize < HellFireTorch[0].ysize; torchysize++)
                            for(var torchxsize = 0; torchxsize < HellFireTorch[0].xsize; torchxsize++)
                                if(_invspace[y+torchysize][x+torchxsize] == 0)
                                    _havespace = false;

                        if(_havespace)
                        {
                            if(NTC_ItemToCursor(HellFireTorch[0]))
                            {
                                for(n = 0 ; n < 80 ; n++)
                                {
                                    if((n % 40) == 0)
                                        me.ClickItem(0, x, y, 0);

                                    NTC_Delay(100);

                                    if(!me.itemoncursor)
                                       break;
                                }
                                NTC_PingDelay(200);
                            }
                        }
                    }
                }
                if(HellFireTorch[0].itemloc != 0)
                    return true;

                me.Cancel(1);

                // ID it
                NTTMGR_TownManager();
                return NTOF_CheckKeptTorch();
            }
            else if(HellFireTorch[0].itemloc == 0)
            {
                // ID it
                if(!NTTM_CheckAct(5))
                    return true;
                NTTMGR_TownManager();
                return NTOF_CheckKeptTorch();
            }
            else
            {
                // bug here :/ => where is the torch???
                Print("˙c1uhhhh, where is my torch? : itemloc "+HellFireTorch[0].itemloc);
                return true;
            }
        }
        else
        {
            Print("I should keep that torch!");
            return true;
        }
    }
    return false;
}

function NTOF_UberTristram()
{
    NTP_DoPrecast(true);

    if(NTConfig_SwitchTele)
        NTC_SwapWeapons(1);

    var _old = NTConfig_AttackSkill[2];
    if(NTC_PutSkill(125, NTC_HAND_RIGHT))
        NTConfig_AttackSkill[2] = 125; // salvation

    var _tomeph = [25040,5101, 25040, 5166, 25122, 5173];//takes you to trap house 1/2 second delay then to kill spot

    for(i = 0; i < _tomeph.length; i += 2)
    {
        if(!NTM_MoveTo(me.areaid, _tomeph[i], _tomeph[i+1]))
            return false;

        NTC_Delay(1500);
    }

    if(!NTM_MoveTo(me.areaid, 25129, 5208)) // meph kill spot
        return false;

    if(NTConfig_SwitchTele)
        NTC_SwapWeapons(0);

    NTC_Delay(1000);

    var retry = 0;
    while(!NTA_KillMonster(704) && retry < 10) //meph
    {
        retry++;
        NTM_MoveTo(me.areaid,25122+retry, 5173-retry);
        Delay(1000);
        NTM_MoveTo(me.areaid, 25129, 5208); // meph kill spot
        Delay(800);
    }
    if(retry == 10)
        return false;

    NTConfig_AttackSkill[2] = _old;

    if(NTConfig_SwitchTele)
        NTC_SwapWeapons(1);

    if(!NTM_MoveTo(me.areaid, 25162, 5141)) // baal kill spot
        return false;

    NTC_Delay(2000);

    if(NTConfig_SwitchTele)
        NTC_SwapWeapons(0);

    if(!NTA_KillMonster(709))//baal
        return false;

    if(!NTA_KillMonster(705))//diablo
        return false;

    Print("˙c!Thanks For The Torch!");

    NTSI_PickItems();

    if(NTConfig_SwitchTele)
        NTC_SwapWeapons(1);

    if(!NTM_MoveTo(me.areaid, 25103, 5141)) // back to portal
        return false;

    var _portal = NTC_FindUnit(NTC_UNIT_OBJECT, GetLocaleString(3226))

    while(_portal)
    {
        if(NTM_GetCloserInt(_portal))
            NTC_DoClick(NTC_CLICK_LDOWN, NTC_SHIFT_NONE, _portal);

        NTC_Delay(100);

        if(me.areaid != 136)
            break;
    }

    return true;
}

function NTOF_Idle()
{
    NTTM_CheckAct(5);
    while(true)
    {
        Print('I already have a good torch! I shouldn\'t open Uber Tristram... => Idle');
        NTTM_TownMove("stash");
        Delay(2500);
        NTTM_TownMove("Larzuk");
        Delay(2500);
    }
}

function NTOF_CubeKeys()
{
    var KeyofTerror = me.GetItems("pk1");
    var KeyofHate = me.GetItems("pk2");
    var KeyofDestruction = me.GetItems("pk3");
    var cube = me.GetItems(NTC_UNIT_CUBE);

    if(!KeyofTerror || KeyofTerror.length < 1 || !KeyofHate || KeyofHate.length < 1 || !KeyofDestruction || KeyofDestruction.length < 1 || !cube || cube.length < 1 || !NTTM_CheckAct(5))
        return false;

    var _cube = cube[0];

    // checking  if we have a keyset in inventory, or if we need to go to stash
    var terror_in_inv = false;
    for(var i = 0; i < KeyofTerror.length; i++)
    {
        if(KeyofTerror[i].itemloc == 0)
        {
            terror_in_inv = true;
            break;
        }
    }

    var hate_in_inv = false;
    for(var i = 0; i < KeyofHate.length; i++)
    {
        if(KeyofHate[i].itemloc == 0)
        {
            hate_in_inv = true;
            break;
        }
    }

    var dest_in_inv = false;
    for(var i = 0; i < KeyofDestruction.length; i++)
    {
        if(KeyofDestruction[i].itemloc == 0)
        {
            terror_in_inv = true;
            break;
        }
    }

    // checking if we have the cube in inventory
    var cube_in_inv = _cube.itemloc == 0;
    if(NTCU_CheckCubeInventoryInt() > 0)
        cube_in_inv = false; // we have something in the cube, we need to stash it.

    if(!(terror_in_inv && hate_in_inv && dest_in_inv && cube_in_inv))
    {
        // we need to go to stash
        NTTM_CheckAct(5);
        NTTM_TownMove("stash");
        var _stash;
        for(var i = 0 ; i < 10 ; i++)
        {
            _stash = NTC_FindUnit(NTC_UNIT_OBJECT, NTC_UNIT_STASH);

            if(_stash)
                break;
        }
        if(!_stash)
            return false;

        if(!NTT_DoInteract(_stash))
            return false;

        NTT_ManageStash();

        // empty the cube
        if(NTCU_CheckCubeInventoryInt() > 0)
        {
            if(!NTCU_OpenCubeInt(_cube))
                return false;

            if(NTCU_ClearCubeInt() < 1)
                return false;

            NTCU_CloseCubeInt();

            NTT_ManageStash();
        }

        // pick up cube
        if(_cube.itemloc != 0)
        {
            var _invspace = new Array(4);

            for(var y = 0 ; y < 4 ; y++)
                _invspace[y] = new Array(10);

            for(var y = 0 ; y < 4 ; y++)
                for(var x = 0 ; x < 10 ; x++)
                    _invspace[y][x] = 1;

            _items = me.GetItems();

            if(_items)
                for(var i = 0 ; i < _items.length ; i++)
                    if(_items[i].itemloc == 0)
                        for(var y = 0 ; y < _items[i].ysize ; y++)
                            for(var x = 0 ; x < _items[i].xsize ; x++)
                                _invspace[y+_items[i].y][x+_items[i].x] = 0;

            /*
            for(var y = 0 ; y < 4 ; y++)
            {
                var debug = "";
                for(var x = 0 ; x < 10 ; x++)
                    debug += _invspace[y][x];
                Print(debug);
            }
            */

            var _havespace = true;
            for(var y = 0 ; y < 4 ; y++)
            {
                for(var x = 0 ; x < 10 ; x++)
                {
                    _havespace = true;
                    for(var cubeysize = 0; cubeysize < _cube.ysize; cubeysize++)
                        for(var cubexsize = 0; cubexsize < _cube.xsize; cubexsize++)
                            if(y+cubeysize > 3 || x+cubexsize > 9 || _invspace[y+cubeysize][x+cubexsize] == 0)
                                _havespace = false;

                    if(_havespace)
                    {
                        if(NTC_ItemToCursor(_cube))
                        {
                            for(n = 0 ; n < 80 ; n++)
                            {
                                if((n % 40) == 0)
                                    me.ClickItem(0, x, y, 0);

                                NTC_Delay(100);

                                if(!me.itemoncursor)
                                   break;
                            }
                            NTC_PingDelay(200);
                        }
                        if(!me.itemoncursor)
                            break;
                    }
                }
                if(_havespace && !me.itemoncursor)
                    break;
            }
            if(_cube.itemloc != 0)
                return false;
        }

        // put the keys inside the cube
        //if(!NTCU_OpenCubeInt(_cube))
        //    return false;

        KeyofTerror = me.GetItems("pk1");
        KeyofHate = me.GetItems("pk2");
        KeyofDestruction = me.GetItems("pk3");

        for(var i = 0; i < KeyofTerror.length; i++)
        {
            if(terror_in_inv && KeyofTerror[i].itemloc == 4 && i < KeyofTerror.length - 1)
                continue;

            if(!NTCU_MoveItemToCubeInt(_cube, KeyofTerror[i]))
                return false;
            else
                break;
        }

        for(var i = 0; i < KeyofHate.length; i++)
        {
            if(hate_in_inv && KeyofHate[i].itemloc == 4 && i < KeyofHate.length - 1)
                continue;

            if(!NTCU_MoveItemToCubeInt(_cube, KeyofHate[i]))
                return false;
            else
                break;
        }

        for(var i = 0; i < KeyofDestruction.length; i++)
        {
            if(dest_in_inv && KeyofDestruction[i].itemloc == 4 && i < KeyofDestruction.length - 1)
                continue;

            if(!NTCU_MoveItemToCubeInt(_cube, KeyofDestruction[i]))
                return false;
            else
                break;
        }

        //NTT_ManageStash();

        // close stash
        me.Cancel(1);
    }
    else
    {
        // open inventory
        SetUIState(0x01, true);

        // put the keys inside the cube
        //if(!NTCU_OpenCubeInt(_cube))
            //return false;

        KeyofTerror = me.GetItems("pk1");
        KeyofHate = me.GetItems("pk2");
        KeyofDestruction = me.GetItems("pk3");

        for(var i = 0; i < KeyofTerror.length; i++)
        {
            if(terror_in_inv && KeyofTerror[i].itemloc == 4)
                continue;

            if(!NTCU_MoveItemToCubeInt(_cube, KeyofTerror[i]))
                return false;
            else
                break;
        }

        for(var i = 0; i < KeyofHate.length; i++)
        {
            if(hate_in_inv && KeyofHate[i].itemloc == 4)
                continue;

            if(!NTCU_MoveItemToCubeInt(_cube, KeyofHate[i]))
                return false;
            else
                break;
        }

        for(var i = 0; i < KeyofDestruction.length; i++)
        {
            if(dest_in_inv && KeyofDestruction[i].itemloc == 4)
                continue;

            if(!NTCU_MoveItemToCubeInt(_cube, KeyofDestruction[i]))
                return false;
            else
                break;
        }

        //NTCU_CloseCubeInt();

        // close inventory
        me.Cancel(1);
    }

    // moving to an openPortal spot
    NTOF_MoveToOpenRedPortalSpot();

    // open inventory
    SetUIState(0x01, true);

    // open cube
    if(!NTCU_OpenCubeInt(_cube))
        return false;

    // transmute
    if(!Transmute())
    {
        NTCU_CloseCubeInt();
        me.Cancel(1);
        return false;
    }

    NTC_PingDelay(800);
    NTCU_CloseCubeInt();
    me.Cancel(1);
    return true;
}

function NTOF_CubeOrgans()
{
    var mephistosbrain = me.GetItems("mbr");
    var baalseye = me.GetItems("bey");
    var diabloshorn = me.GetItems("dhn");
    var cube = me.GetItems(NTC_UNIT_CUBE);

    if(!mephistosbrain || mephistosbrain.length < 1 || !baalseye || baalseye.length < 1 || !diabloshorn || diabloshorn.length < 1 || !cube || cube.length < 1 || !NTTM_CheckAct(5))
        return false;

    var _cube = cube[0];

    // checking  if we have a keyset in inventory, or if we need to go to stash
    var diabloshorn_in_inv = false;
    for(var i = 0; i < diabloshorn.length; i++)
    {
        if(diabloshorn[i].itemloc == 0)
        {
            diabloshorn_in_inv = true;
            break;
        }
    }

    var mephistosbrain_in_inv = false;
    for(var i = 0; i < mephistosbrain.length; i++)
    {
        if(mephistosbrain[i].itemloc == 0)
        {
            mephistosbrain_in_inv = true;
            break;
        }
    }

    var baalseye_in_inv = false;
    for(var i = 0; i < baalseye.length; i++)
    {
        if(baalseye[i].itemloc == 0)
        {
            baalseye_in_inv = true;
            break;
        }
    }

    // checking if we have the cube in inventory
    var cube_in_inv = _cube.itemloc == 0;
    if(NTCU_CheckCubeInventoryInt() > 0)
        cube_in_inv = false; // we have something in the cube, we need to stash it.

    if(!(diabloshorn_in_inv && mephistosbrain_in_inv && baalseye_in_inv && cube_in_inv))
    {
        // we need to go to stash
        NTTM_CheckAct(5);
        NTTM_TownMove("stash");
        var _stash;
        for(var i = 0 ; i < 10 ; i++)
        {
            _stash = NTC_FindUnit(NTC_UNIT_OBJECT, NTC_UNIT_STASH);

            if(_stash)
                break;
        }
        if(!_stash)
            return false;

        if(!NTT_DoInteract(_stash))
            return false;

        NTT_ManageStash();

        // empty the cube
        if(NTCU_CheckCubeInventoryInt() > 0)
        {
            if(!NTCU_OpenCubeInt(_cube))
                return false;

            if(NTCU_ClearCubeInt() < 1)
                return false;

            NTCU_CloseCubeInt();

            NTT_ManageStash();
        }

        // pick up cube
        if(_cube.itemloc != 0)
        {
            var _invspace = new Array(4);

            for(var y = 0 ; y < 4 ; y++)
                _invspace[y] = new Array(10);

            for(var y = 0 ; y < 4 ; y++)
                for(var x = 0 ; x < 10 ; x++)
                    _invspace[y][x] = 1;

            _items = me.GetItems();

            if(_items)
                for(var i = 0 ; i < _items.length ; i++)
                    if(_items[i].itemloc == 0)
                        for(var y = 0 ; y < _items[i].ysize ; y++)
                            for(var x = 0 ; x < _items[i].xsize ; x++)
                                _invspace[y+_items[i].y][x+_items[i].x] = 0;

            var _havespace = true;
            for(var y = 0 ; y < 4 ; y++)
            {
                for(var x = 0 ; x < 10 ; x++)
                {
                    _havespace = true;
                    for(var cubeysize = 0; cubeysize < _cube.ysize; cubeysize++)
                        for(var cubexsize = 0; cubexsize < _cube.xsize; cubexsize++)
                            if(y+cubeysize > 3 || x+cubexsize > 9 || _invspace[y+cubeysize][x+cubexsize] == 0)
                                _havespace = false;

                    if(_havespace)
                    {
                        if(NTC_ItemToCursor(_cube))
                        {
                            for(n = 0 ; n < 80 ; n++)
                            {
                                if((n % 40) == 0)
                                    me.ClickItem(0, x, y, 0);

                                NTC_Delay(100);

                                if(!me.itemoncursor)
                                   break;
                            }
                            NTC_PingDelay(200);
                        }
                        if(!me.itemoncursor)
                            break;
                    }
                }
                if(_havespace && !me.itemoncursor)
                    break;
            }
            if(_cube.itemloc != 0)
                return false;
        }

        // put the keys inside the cube
        //if(!NTCU_OpenCubeInt(_cube))
            //return false;

        mephistosbrain = me.GetItems("mbr");
        baalseye = me.GetItems("bey");
        diabloshorn = me.GetItems("dhn");

        for(var i = 0; i < mephistosbrain.length; i++)
        {
            if(mephistosbrain_in_inv && mephistosbrain[i].itemloc == 4 && i < mephistosbrain.length - 1)
                continue;

            if(!NTCU_MoveItemToCubeInt(_cube, mephistosbrain[i]))
                return false;
            else
                break;
        }

        for(var i = 0; i < baalseye.length; i++)
        {
            if(baalseye_in_inv && baalseye[i].itemloc == 4 && i < baalseye.length - 1)
                continue;

            if(!NTCU_MoveItemToCubeInt(_cube, baalseye[i]))
                return false;
            else
                break;
        }

        for(var i = 0; i < diabloshorn.length; i++)
        {
            if(diabloshorn_in_inv && diabloshorn[i].itemloc == 4 && i < diabloshorn.length - 1)
                continue;

            if(!NTCU_MoveItemToCubeInt(_cube, diabloshorn[i]))
                return false;
            else
                break;
        }

        //NTCU_CloseCubeInt();

        //NTT_ManageStash();

        // close stash
        me.Cancel(1);
    }
    else
    {
        // open inventory
        SetUIState(0x01, true);

        // put the keys inside the cube
        //if(!NTCU_OpenCubeInt(_cube))
            //return false;

        mephistosbrain = me.GetItems("mbr");
        baalseye = me.GetItems("bey");
        diabloshorn = me.GetItems("dhn");

        for(var i = 0; i < mephistosbrain.length; i++)
        {
            if(mephistosbrain[i].itemloc == 4)
                continue;

            if(!NTCU_MoveItemToCubeInt(_cube, mephistosbrain[i]))
                return false;
            else
                break;
        }

        for(var i = 0; i < baalseye.length; i++)
        {
            if(baalseye[i].itemloc == 4)
                continue;

            if(!NTCU_MoveItemToCubeInt(_cube, baalseye[i]))
                return false;
            else
                break;
        }

        for(var i = 0; i < diabloshorn.length; i++)
        {
            if(diabloshorn[i].itemloc == 4)
                continue;

            if(!NTCU_MoveItemToCubeInt(_cube, diabloshorn[i]))
                return false;
            else
                break;
        }

        //NTCU_CloseCubeInt();

        // close inventory
        me.Cancel(1);
    }

    // moving to an openPortal spot
    NTOF_MoveToOpenRedPortalSpot();

    // open inventory
    SetUIState(0x01, true);

    // open cube
    if(!NTCU_OpenCubeInt(_cube))
        return false;

    // transmute
    if(!Transmute())
    {
        NTCU_CloseCubeInt();
        me.Cancel(1);
        return false;
    }

    NTC_PingDelay(800);
    NTCU_CloseCubeInt();
    me.Cancel(1);
    return true;
}

var red_portal_spots = ["larzuk", "cain", "qual-kehk", "malah"];
var red_portal_index = 0;
function NTOF_MoveToOpenRedPortalSpot()
{
    var _result = NTTM_TownMove(red_portal_spots[red_portal_index]);
    red_portal_index++;
    if(red_portal_index > red_portal_spots.length - 1)
        red_portal_index = 0;
    return _result;
}

function NTOF_KillUberLilith()
{
    NTP_DoPrecast(true);

    if(NTConfig_SwitchTele)
        NTC_SwapWeapons(1);

    if(!NTM_MoveToPresetUnit(me.areaid, NTC_UNIT_OBJECT, 397, 2, 2))
        return false;

    if(!NTTMGR_CheckSafe(NTConfig_CheckSelfSafe, NTConfig_CheckMercSafe))
        return false;

    if(NTConfig_SwitchTele)
        NTC_SwapWeapons(0);

    if(!NTA_KillMonster(707))
        return false;

    NTC_PingDelay(100);
    Print("    ˙c;Thanks for the Horn")
    NTC_PingDelay(100);
    NTSI_PickItems();

    return true;
}

function NTOF_KillUberIzual()
{
    NTP_DoPrecast(true);

    if(NTConfig_SwitchTele)
        NTC_SwapWeapons(1);

    if(!NTM_MoveToPresetUnit(me.areaid, NTC_UNIT_OBJECT, 397, 2, 2))
        return false;

    if(!NTTMGR_CheckSafe(NTConfig_CheckSelfSafe, NTConfig_CheckMercSafe))
        return false;

    if(NTConfig_SwitchTele)
        NTC_SwapWeapons(0);

    if(!NTA_KillMonster(706))
        return false;

    NTC_PingDelay(100);
    Print("    ˙c;Thanks for the Brain")
    NTC_PingDelay(200);
    NTSI_PickItems();

    return true;
}

function NTOF_KillUberDuriel()
{
    NTP_DoPrecast(true);

    if(NTConfig_SwitchTele)
        NTC_SwapWeapons(1);

    if(!NTOF_FindUberDuriel())
        return false;

    if(NTConfig_SwitchTele)
        NTC_SwapWeapons(0);

    var UberDuriel = NTC_FindMonster(708);

    if(!UberDuriel)
        return false;

    if(!NTTMGR_CheckSafe(NTConfig_CheckSelfSafe, NTConfig_CheckMercSafe))
        return false;

    NTM_MoveTo(me.areaid, UberDuriel.x, UberDuriel.y);

    if(!NTA_KillMonster(708))
        return false;

    NTC_PingDelay(100);
    Print("    ˙c;Thanks for the Eye")
    NTC_PingDelay(200);
    NTSI_PickItems();

    return true;
}

function NTOF_FindUberDuriel()
{
    var FindLoc = [20196, 8694, 20308, 8588, 20187, 8639, 20100, 8550, 20103, 8688, 20144, 8709, 20263, 8811, 20247, 8665];

    var _teleport;
    var _path;
    var _result;

    for(var k = 0 ; k < FindLoc.length; k+=2)
    {
        if(NTC_InTown() || NTC_GetSkillLevel(54) < 1)
            _teleport = false;
        else
            _teleport = true;

        _path = GetPath(me.areaid, me.x, me.y, FindLoc[k], FindLoc[k+1], _teleport);

        if(_path)
        {
            for(var i = 0 ; i < _path.length ; i++)
            {
                if(_teleport)
                    _result = NTM_TeleportTo(_path[i][0], _path[i][1]);
                else
                    _result = NTM_WalkTo(_path[i][0], _path[i][1]);

                if(NTC_FindMonster(708))
                    return true;
            }
        }
    }

    return false;
}

function NTC_FindMonster(classid, spectype)
{
    var _monster;

    if(arguments.length < 1)
        return null;

    if(arguments.length < 2)
        spectype = 0;

    for(var i = 0 ; i < 2 ; i++)
    {
        _monster = GetUnit(NTC_UNIT_MONSTER, classid);

        if(_monster)
        {
            if(spectype)
            {
                do
                {
                    if(_monster.spectype & spectype)
                        return _monster;
                } while(_monster.GetNext());
            }
            else
                return _monster;
        }

        if(i < 1)
            NTC_PingDelay(NTC_DELAY_FRAME);
    }

    return null;
}

function NTOF_PreBuffFade()
{
    var _result = false;
    if(NTTM_CheckAct())
    {
        if(NTTM_TownMove("waypoint"))
        {
            if(NTM_TakeWaypoint(107))
            {
                NTP_DoPrecast(true);

                NTM_MoveTo(me.areaid, 7811, 5872);

                Print("˙c;Getting Buffed");

                var timer = 0;
                while(timer < 60001) // 1 min max
                {
                    if(me.GetStat(181) > 0)
                    {
                        Print("˙c;There's Our Fade");
                        _result = true;
                        break;
                    }

                    NTC_Delay(200);
                    timer += 200;
                }
                if(timer > 60000)
                    Print("It was too long, moving on!");
                if(NTTM_CheckAct(5))
                    NTTMGR_TownManager();
            }
        }
    }
    return _result;
}

function NTOF_KillCountess()
{
    var _countess;

    if(!NTTM_TownMove("waypoint"))
        return false;

    if(!NTM_TakeWaypoint(6))
        return false;

    NTP_DoPrecast(true);

    if(NTConfig_SwitchTele)
        NTC_SwapWeapons(1);

    for(var i = 0 ; i < 6 ; i++)
    {
        if(!NTM_MoveToStair(me.areaid, 20+i))
            return false;

        if(!NTM_TakeStair(20+i))
            return false;
    }

    if(NTConfig_ClearPosition)
    {
        if(NTConfig_SwitchTele)
            NTC_SwapWeapons(0);
        NTA_ClearPosition(10, true, 2);
        if(NTConfig_SwitchTele)
            NTC_SwapWeapons(1);
    }

    if(me.y > 11060 && me.y <= 11078)
    {
        if(!NTM_MoveTo(me.areaid, 12544, 11066))
            return false;
    }
    else
    {
        if(!NTM_MoveTo(me.areaid, 12570, 11057))
            return false;
    }

    _countess = NTC_FindUnit(NTC_UNIT_MONSTER, GetLocaleString(2875), 5);
    if(!_countess)
        return false;

    if(me.y > 11060 && me.y <= 11078)
    {
        if(_countess.y <= 11054)
            NTM_MoveTo(me.areaid, 12537, 11042);

        if(_countess.y > 11056 && _countess.y <= 11070)
        {
            if(_countess.x < 12533)
                NTM_MoveTo(me.areaid, 12518, 11057);
            else
                NTM_MoveTo(me.areaid, 12548, 11057);
        }

        if(_countess.y > 11070 && _countess.y <= 11085)
        {
            if(_countess.x < 12533)
                NTM_MoveTo(me.areaid, 12518, 11083);
            else
                NTM_MoveTo(me.areaid, 12548, 11083);
        }

        if(_countess.y > 11086)
            NTM_MoveTo(me.areaid, 12542, 11098);
    }
    else
    {
        if(_countess.x <= 12550)
        {
            NTM_MoveTo(me.areaid, 12562, 11057);
            NTM_MoveTo(me.areaid, 12548, 11043);
        }

        if(_countess.x > 12550 && _countess.x <= 12561)
        {
            if(_countess.y < 11027)
                NTM_MoveTo(me.areaid, 12577, 11043);
            else
            {
                NTM_MoveTo(me.areaid, 12565, 11043);
                NTM_MoveTo(me.areaid, 12577, 11025);
            }
        }

        if(_countess.x > 12561 && _countess.x <= 12579)
        {
            if(_countess.y < 11027)
                NTM_MoveTo(me.areaid, 12555, 11043);
            else
            {
                NTM_MoveTo(me.areaid, 12565, 11043);
                NTM_MoveTo(me.areaid, 12555, 11025);
            }
        }

        if(_countess.x > 12579)
        {
            NTM_MoveTo(me.areaid, 12578, 11057);
            NTM_MoveTo(me.areaid, 12582, 11043);
        }
    }

    if(NTConfig_SwitchTele)
        NTC_SwapWeapons(0);

    if(!NTA_KillMonster(GetLocaleString(2875)))
        return false;

    if(NTConfig_ClearPosition)
        NTA_ClearPosition();

    NTSI_PickItems();

    if(NTConfig_OpenChest)
    {
        if(NTConfig_SwitchTele)
            NTC_SwapWeapons(1);

        if(!NTM_MoveToStair(me.areaid, 24))
            return false;

        if(me.areaid, me.x > 12565 && me.y > 11127)
        {
            if(!NTM_MoveTo(me.areaid, 12515, 11099))
                NTM_MoveTo(me.areaid, 12603, 11014);
        }

        var _armor;
        _armor = NTC_FindUnit(NTC_UNIT_OBJECT, GetLocaleString(3247), 1);
        NTC_OpenChest(_armor);

        var _weapon;
        _weapon = NTC_FindUnit(NTC_UNIT_OBJECT, GetLocaleString(3248), 1);
        NTC_OpenChest(_weapon);
    }

    if(NTConfig_SwitchTele)
        NTC_SwapWeapons(0);

    return true;
}

function NTOF_KillSummoner()
{
    if(!NTTM_TownMove("waypoint"))
        return false;

    if(!NTM_TakeWaypoint(74))
        return false;

    NTP_DoPrecast(true);

    if(NTConfig_KillFireEye)
    {
        if(NTM_TakeUnit(NTC_UNIT_OBJECT, 298))
        {
            if(NTA_KillMonster(GetLocaleString(2885)))
            {
                if(NTConfig_ClearPosition)
                    NTA_ClearPosition();

                NTSI_PickItems();
            }

            if(!NTM_MoveToPresetUnit(me.areaid, NTC_UNIT_OBJECT, 298))
                return false;

            if(!NTM_TakeUnit(NTC_UNIT_OBJECT, 298))
                return false;
        }
    }

    if(NTConfig_SwitchTele)
        NTC_SwapWeapons(1);

    if(!NTM_MoveToPresetUnit(me.areaid, NTC_UNIT_OBJECT, 357, 2, 2))
        return false;

    if(NTConfig_SwitchTele)
        NTC_SwapWeapons(0);

    if(!NTTMGR_CheckSafe(NTConfig_CheckSelfSafe, NTConfig_CheckMercSafe))
        return false;

    if(!NTA_KillMonster(250))
        return false;

    if(NTConfig_ClearPosition)
        NTA_ClearPosition();

    NTSI_PickItems();

    return true;
}

var _NTNihlathak_Locations = new Array(8, 4);

_NTNihlathak_Locations[0] = [12519, 5203, 12522, 5227]; // Top Left
_NTNihlathak_Locations[1] = [12704, 5019, 12692, 5022]; // Top Right
_NTNihlathak_Locations[2] = [12705, 5391, 12723, 5413]; // Bottom Right
_NTNihlathak_Locations[3] = [12889, 5206, 12898, 5228]; // Bottom Left
_NTNihlathak_Locations[4] = [12519, 5203, 12522, 5196]; // Top Left
_NTNihlathak_Locations[5] = [12704, 5019, 12692, 5413]; // Top Right
_NTNihlathak_Locations[6] = [12705, 5391, 12727, 5022]; // Bottom Right
_NTNihlathak_Locations[7] = [12889, 5206, 12898, 5192]; // Bottom Left

function NTOF_KillNilhatack()
{
    if(!NTTM_TownMove("waypoint"))
        return false;

    if(!NTM_TakeWaypoint(123))
    {
        me.Cancel(1);
        if(!NTTM_CheckAct(5))
            return false;

        NTConfig_PindleskinExtension = false;

        if(!NTTM_TownMove("portal"))
            return false;

        if(!NTM_UsePortal("Portal", 121))
            return false;

        NTP_DoPrecast(true);

        if(!NTM_MoveTo(me.areaid, 10061, 13234))
            return false;

        if(NTA_KillMonster(GetLocaleString(22497)))
        {
            if(NTConfig_ClearPosition)
                NTA_ClearPosition();

            NTSI_PickItems();
        }

        if(NTConfig_SwitchTele)
            NTC_SwapWeapons(1);

        if(!NTM_MoveToStair(me.areaid, 122))
            return false;

        if(!NTM_TakeStair(122))
            return false;

        if(!NTTMGR_CheckSafe(NTConfig_CheckSelfSafe, NTConfig_CheckMercSafe))
            return false;

        if(!NTM_MoveToStair(me.areaid, 123))
            return false;

        if(!NTM_TakeStair(123))
            return false;
    }

    NTP_DoPrecast(true);

    if(NTConfig_SwitchTele)
        NTC_SwapWeapons(1);

    if(!NTM_MoveToStair(me.areaid, 124))
        return false;

    if(!NTM_TakeStair(124))
        return false;

    _location = NT_FindNihlathakInt();

    if(_location == -1)
        return false;

    if(!NTM_MoveTo(me.areaid, _NTNihlathak_Locations[_location][2], _NTNihlathak_Locations[_location][3]))
        return false;

    if(NTConfig_SwitchTele)
        NTC_SwapWeapons(0);

    if(!NTTMGR_CheckSafe(NTConfig_CheckSelfSafe, NTConfig_CheckMercSafe))
        return false;

    if(NTA_KillMonster(526))
    {
        if(NTConfig_ClearPosition)
            NTA_ClearPosition();

        NTSI_PickItems();
    }
    else
    {
        return false;
    }

    if(NTConfig_PindleskinExtension)
    {
        for(var i = 0 ; i < 2 ; i++)
        {
            if(!NTM_MoveToStair(me.areaid, 123-i))
                return true;

            if(!NTM_TakeStair(123-i))
                return true;
        }

        if(!NTM_MoveToStair(me.areaid, 121))
            return true;

        if(!NTTMGR_CheckSafe(NTConfig_CheckSelfSafe, NTConfig_CheckMercSafe))
            return true;

        NTP_DoPrecast(false);

        if(!NTM_TakeStair(121))
            return true;

        if(!NTM_MoveTo(me.areaid, 10061, 13234))
            return true;

        if(!NTA_KillMonster(GetLocaleString(22497)))
            return true;

        if(NTConfig_ClearPosition)
            NTA_ClearPosition();

        NTSI_PickItems();
    }

    return true;
}

function NT_FindNihlathakInt()
{
    var i, x, y;
    var _nihlathak;
    var _mindist = 999999;
    var _currdist;
    var _location = -1;

    _nihlathak = GetPresetUnits(me.areaid, NTC_UNIT_OBJECT, 462);

    if(!_nihlathak || _nihlathak.length < 1)
        return _location;

    x = _nihlathak[0].roomx*5 + _nihlathak[0].x;
    y = _nihlathak[0].roomy*5 + _nihlathak[0].y;

    for(i = 0 ; i < 8 ; i++)
    {
        _currdist = GetDistance(_NTNihlathak_Locations[i][0], _NTNihlathak_Locations[i][1], x, y);

        if(_currdist < _mindist)
        {
            _mindist = _currdist;
            _location = i;
        }
    }

    return _location;
}

ich hät gedacht das zu löschen

Code:
 NTOF_CubeOrgans();
        NTOF_EnterRedPortal();
        if(!NTOF_UberTristram())
        {
            NTC_SendMsgToScript("NTBotGame.ntj", "NTOF_UberTristram()");
            return;
        }
        if(!NTTM_CheckAct(5))
        {
            NTC_SendMsgToScript("NTBotGame.ntj", "NTTM_CheckAct()");
            return;
        }
        NTOF_CheckKeptTorch();
    }

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

// internal functions

function NTOF_EnterRedPortal()
{
    var _portal = NTC_FindUnit(NTC_UNIT_OBJECT, GetLocaleString(3226))

    if(_portal)
    {
        while(GetDistance(me, _portal) > 15)
            _portal.GetNext();

        do
        {
            if(NTM_GetCloserInt(_portal))
                NTC_DoClick(NTC_CLICK_LDOWN, NTC_SHIFT_NONE, _portal);

            NTC_Delay(100);

            if(me.areaid != 109)
                break;
        } while(_portal);
    }
}
aber da kommt die fehlermeldung
[Only registered and activated users can see links. Click Here To Register...]


MFG

Matze
08/07/2010 16:03 Copy&Past#2
Nimm einfach n Torch mit, dann macht ers automatisch nicht :P
08/07/2010 16:05 xdoddestroyer#3
Quote:
Originally Posted by Gadinho92 View Post
Nimm einfach n Torch mit, dann macht ers automatisch nicht :P
doch das ist ja das problem habe toch in inventar (zwar ama aber is ja egal) und versucht wenn ich organe habe dan immer noch ein ut auf zu machen!:D
08/07/2010 16:56 Copy&Past#4
wtf :-D
du hast die version von Starbuilder modded by D2od wie ich sehe. ich auch. :-D klappt alles :-D
08/07/2010 16:58 xdoddestroyer#5
Quote:
Originally Posted by Gadinho92 View Post
wtf :-D
du hast die version von Starbuilder modded by D2od wie ich sehe. ich auch. :-D klappt alles :-D
ja bei dir aber nicht bei mir :D


ed:

habs jetzt

close!