elitepvpers

elitepvpers (https://www.elitepvpers.com/forum/)
-   Diablo 2 (https://www.elitepvpers.com/forum/diablo-2/)
-   -   D2NT 3.X Shopbot (https://www.elitepvpers.com/forum/diablo-2/570634-d2nt-3-x-shopbot.html)

FoGzone 05/16/2010 22:36

D2NT 3.X Shopbot
 
[Only registered and activated users can see links. Click Here To Register...]

Erstelle eine Datei names NTShopbot.ntj im Ordner D2NT\scripts\NTBot\bots\
Code:

////////////////////////////////////////////////////////////////////////////////////////////////////////////
//                                                                                                        //
//                      ShopBot Script For D2NT 2.1                                                      //
//                                                Edit BY Lamobchan    2010/1/20                          //
//                                                Change For D2NT 3.1  2010/4/27                          //
////////////////////////////////////////////////////////////////////////////////////////////////////////////
// 如果你不是很熟悉的话,请不要改动,因为现在这里没啥要设置的!
// if u don't know the javascript codes, do not edit this!
//                                                lambochan

// 下列的物品忽略...
var shop_ignoreList = "aqv,cqv,key,tbk,ibk,tsc,isc,yps,vps,wms,hp1,hp2,hp3,hp4,hp5,mp1,mp2,mp3,mp4,mp5";

// kill再生尸,不用设置
var killUndear = false;

// anya红门坐标,不必理会
var anyaTPX = 10068;
var anyaTPY = 13308;

// 发生错误的情况(用来监控是否退出)
var errorMode = -1;
var sameErrorCount = 0;

function NTMain()
{
    // 初始化
    Include("libs/common/NTCommon.ntl");
    NTC_IncludeLibs();
    NTC_IncludeConfig("NTBot/char_configs");
    NT_LoadConfig();
    NTSI_LoadNIPFiles("NTBot/item_configs");
    NTA_Initialize();
    NTTMGR_TownManager();
   

    NTC_Delay( 2000 );
    NT_Shoping_OverHead( "Now begin shoping..." );

    // shoping
    NT_Shoping();

    // over.
    NT_Shoping_Msg( "SCRIPT_END" );
}

function NT_Shoping()
{
    var npcName = new Array( "akara",  "charsi", "gheed",  /* act1 */
                            "drognan", "fara",  "elzix",  /* act2 */
                            "ormus",  "hratli", "asheara", /* act3 */
                            "jamella", "halbu" );          /* act4 */
                          // "anya",    "larzuk", "malah" ); /* act5 */
    if( !is_D2C ){ // d2x, need add act5 npc name
        npcName.push( "anya" );
        npcName.push( "larzuk" );
        npcName.push( "malah" );
    }
   
    var npcID = [NTC_NPC_ID_AKARA,    NTC_NPC_ID_CHARSI, NTC_NPC_ID_GHEED,
                NTC_NPC_ID_DROGNAN,  NTC_NPC_ID_FARA,  NTC_NPC_ID_ELZIX,
                NTC_NPC_ID_ORMUS,    NTC_NPC_ID_HRATLI, NTC_NPC_ID_ASHEARA,
                NTC_NPC_ID_JAMELLA,  NTC_NPC_ID_HALBU,
                NTC_NPC_ID_ANYA_TOWN, NTC_NPC_ID_LARZUK, NTC_NPC_ID_MALAH];
               
    var j;
    var num;
    var npc;
    var npcCount;
    var shopItems;
    var shopRush = 0;
    var buyItems = new Array();
    var showItems = new Array();


    if( shop_npcNumber.length <= 0 ){
        NT_Shoping_Msg( "have not npc list for shoping, plz check it!" );
        return;
    }
   
    for( ; ; ){
        num = 0;
        npcCount = shop_npcNumber.length;
        do{
            if( shopRush++ > 30 ){
                RunGC();
                shopRush = 0;
            }

            if( NTTMGR_CheckScrolls( 1 ) < 4 )
                NTTMGR_TownManager();

            if( !NT_Shoping_CheckACT( shop_npcNumber[num] ) ){
                NT_Shoping_Msg( "NT_Shoping_CheckACT()", 1 );
                break;
            }
           
            if( !NTTM_TownMove( npcName[shop_npcNumber[num] - 1] ) ){
                NT_Shoping_Msg( "NTTM_TownMove()", 2 );
                break;
            }
           
            npc = NTC_FindUnit( NTC_UNIT_NPC, npcID[shop_npcNumber[num] - 1], 2 );
            if( npc ){
                if( !NTT_DoInteract( npc ) ){
                    NT_Shoping_Msg( "NTT_DoInteract()", 3 );
                    break;
                }
               
                if( !NTT_DoTrade( npc ) ){
                    NT_Shoping_CancelMenu();
                    NT_Shoping_Msg( "!NTT_DoTrade()", 4 );
                    break;
                }
               
                shopItems = npc.GetItems();
                if( shopItems ){
                    for( j = 0; j < shopItems.length; ++j ){
                        if( shop_ignoreList.indexOf( shopItems[j] ) == -1 ){
                            if( NTIPCheckItem( shopItems[j] ) == 1 ){
                                buyItems.push( shopItems[j] );
                                var mark = new markItems( shopItems[j].quality, shopItems[j].name, shopItems[j].itemdesc );
                                showItems.push( mark );
                            }
                        }
                    }
                } // end if(shopItems)
               
                if( buyItems.length > 0 ){
                    for( j = 0; j < buyItems.length; ++j ){
                        if( buyItems[j].GetItemCost( 0, npcID[shop_npcNumber[num] - 1] ) > NTC_MyGold() ){
                            NT_Shoping_CancelMenu();
                            NT_Shoping_Loop( "have not money buy an item now." );
                        }
                        if( NTT_CheckSpace( buyItems[j].xsize, buyItems[j].ysize ) ){
                            if( !NTT_ShopItem( buyItems[j], npc, 2 ) ){
                                NT_Shoping_CancelMenu();
                                NT_Shoping_Loop( "have an item can not buy it." );
                            }
                        } // end if(NTT_Ch
                        else {
                            NT_Shoping_CancelMenu();
                            NTTMGR_VisitStash();
                           
                            if( !NTT_CheckSpace( buyItems[j].xsize, buyItems[j].ysize ) ){
                                NT_Shoping_Loop( "have not space save items, and have an item can not buy it." );
                            }
                           
                            if( !NTTM_TownMove( npcName[shop_npcNumber[num] - 1] ) ){
                                NT_Shoping_Loop( "have an item can not buy it." );
                            }
                           
                            if( !NTT_DoInteract( npc ) ){
                                NT_Shoping_Loop( "have an item can not buy it." );
                            }
                           
                            if( !NTT_DoTrade( npc ) ){
                                NT_Shoping_CancelMenu();
                                NT_Shoping_Loop( "have an item can not buy it." );
                            }
                           
                            if( !NTT_ShopItem( buyItems[j], npc, 2 ) ){
                                NT_Shoping_CancelMenu();
                                NT_Shoping_Loop( "have an item can not buy it." );
                            }
                        } // end else
                        NTC_SendLogToOOG( NTC_LOG_ITEM, "Buy " + NTC_ItemQualityToMGRColor[showItems[j].quality] + "[" + showItems[j].name + "] " + ";"  + showItems[j].itemdesc +
                                          " [" + npcName[shop_npcNumber[num] - 1].charAt( 0 ).toUpperCase() +
                                          npcName[shop_npcNumber[num] - 1].substring( 1 ) + "]" );

                    } // end for( j
                   
                    buyItems.length = 0;
                    showItems.length = 0;
                }
                // 关闭菜单
                NT_Shoping_CancelMenu();
            } // end if(npc)
           
            // 出城
            if( !NT_Shoping_InOutTown(shop_npcNumber[num], num ) ){
                NT_Shoping_Msg( "NT_Shoping_InOutTown()", 5 );
                break;
            }
           
            // next npc
            num++;
       
        } while( --npcCount );
       
    }
}

function NT_Shoping_InOutTown(num, count)
{
    if( shop_npcNumber.length > 1 ){                    // shop几个
        var outTown = NT_Shoping_GoNextNpc(num, count); // 看看要不要出城,因为要刷新npc必须在该act出城..
        if( !outTown )                                  // 不用。
            return true;
    }

    if( num == 12 && !anyaGoWp ){ // anya go red tp
        if( !NTTM_TownMove( "portal" ) ){
            NT_Shoping_Msg( "NTTM_TownMove()", 6 );
            return false;
        }
        if( !NT_Shoping_UsePortal( "Portal", 121 ) ){
            NT_Shoping_Msg( "NT_Shoping_UsePortal()", 7 );
            return false;
        }
       
        // kill再生尸
        if( autoClear ){
            killUndear = true;
            NTP_DoPrecast();
            // 有“吸星大法”和TP的话,先吸掉一些......
            if( NTC_GetSkillLevel( 124 ) && NTC_GetSkillLevel( 54 ) ){
                if( !NTM_MoveTo( me.areaid, 10069, 13293 ) )
                    return false;
                NTC_PutSkill( 124, NTC_HAND_RIGHT );
                NTC_PingDelay( 2000 );
               
                if( !NTM_MoveTo( me.areaid, me.x - 15, me.y - 15 ) )
                    return false;
            } // end if( NTC_Ch
           
            if( NT_Shoping_CheckUndear( 20 ) ){
                if( NTA_ClearPosition( 20 ) )
                    NTSI_PickItems();
                if( NTC_GetSkillLevel( 124 ) && NT_Shoping_CheckCorpses( 8 ) ){
                    NTC_PutSkill( 124, NTC_HAND_RIGHT );
                    NTC_PingDelay( 2000 );
                }
                NTC_PutSkill( 115, NTC_HAND_RIGHT );
            }
           
            if( !NTM_MoveTo( me.areaid, anyaTPX, anyaTPY ) )
                return false;
               
            autoClear = false;
        }
        // 门口有怪的话,必须杀光
        if( killUndear && NT_Shoping_CheckUndear( 20 ) ){
            if( NTA_ClearPosition( 20 ) )
                NTSI_PickItems();
            if( NTC_GetSkillLevel( 124 ) && NT_Shoping_CheckCorpses( 8 ) ){
                NTC_PutSkill( 124, NTC_HAND_RIGHT );
                NTC_PingDelay( 2000 );
            }
            if( !NTM_MoveTo( me.areaid, anyaTPX, anyaTPY ) )
                return false;
            NTC_PutSkill( 115, NTC_HAND_RIGHT );
        }
        // 走人回act5 town
        if( !NT_Shoping_UsePortal( "Portal", 109 ) ){
            NT_Shoping_Msg( "NT_Shoping_UsePortal()", 8 );
            return NT_Shoping_CheckACT();
        }
    } else {
        var ok = false;
        if( !NTTM_TownMove( "waypoint" ) ){
            NT_Shoping_Msg( "NTTM_TownMove()", 9 );
            return false;
        }
        switch( me.act ){
        case 1 :
            if( !NT_Shoping_TakeWaypoint( 35 ) )
                return false;
            ok = NT_Shoping_TakeWaypoint( 1 );
            break;
        case 2 :
            if( !NT_Shoping_TakeWaypoint( 48 ) ){
                return false;
            }
            ok = NT_Shoping_TakeWaypoint( 40 );
            break;
        case 3 :
            if( !NT_Shoping_TakeWaypoint( 101 ) )
                return false;
            ok = NT_Shoping_TakeWaypoint( 75 );
            break;     
        case 4 :
            if( !NT_Shoping_TakeWaypoint( 107 ) )
                return false;
            ok = NT_Shoping_TakeWaypoint( 103 );
            break;
        case 5 :
            if( !NT_Shoping_TakeWaypoint( 129 ) )
                return false;
            ok = NT_Shoping_TakeWaypoint( 109 );
            break;
        }
        if( !ok ){ // give a chance do it again..
            return NT_Shoping_CheckACT();
        }
    }
    return true;
}

function NT_Shoping_CheckMonster( target )
{
    return ( target.hp > 0 && target.mode != 0 && target.mode != 12 && GetDistance( me, target ) != -1 );
}


function NT_Shoping_CheckCorpses( range )
{
    var undear = NTC_FindUnit( NTC_UNIT_MONSTER, 438, 2 );
    if( undear ){
        do{
            if( !NT_Shoping_CheckMonster( undear ) && GetDistance( me, undear ) < range )
                return true;
        } while( undear.GetNext() );
    }
    return false;
}

function NT_Shoping_CheckUndear( range )
{
    var undear = NTC_FindUnit( NTC_UNIT_MONSTER, 438, 2 );
    if( undear ){
        do{
            if( GetDistance( me, undear ) < range )
                return true;
        } while( undear.GetNext() );
    }
    return false;
}

function NT_Shoping_Loop( str )
{
    var hi = "NTShopbot.ntj : " + str;
    NTC_SendLogToOOG( hi );
    var tempX = me.x;
    var tempY = me.y;
    for( ; ; ){
        for( var i = 0; i < 20; ++i ){
            NT_Shoping_OverHead( str );
           
            var xx = Random( -3, 3 );
            var yy = Random( -3, 3 );
           
            NTC_DoClick( NTC_CLICK_LDOWN, NTC_SHIFT_NONE, xx, yy );
            NTC_Delay(500);
           
            NTC_Delay( 3000 );
           
            NTC_DoClick( NTC_CLICK_LDOWN, NTC_SHIFT_NONE, tempX, tempY );
            NTC_Delay(500);
        }
    }
}

function NT_Shoping_Msg( str, em )
{
    errorGoQuitGame ? NTC_SendMsgToScript( "NTBotGame.ntj", str ) :
    ( NT_Shoping_CheckError( em ) ? NTC_SendMsgToScript( "NTBotGame.ntj", str ) :
    NTC_SendLogToOOG( NTC_LOG_COMMON, "ÿE00000" + str ) );
}

function NT_Shoping_CheckError( em )
{
    if( errorMode == em ){
        sameErrorCount++;
        if( sameErrorCount >= 5 )
            return true;
    } else {
        errorMode = em;
        sameErrorCount = 0;
    }
    if( em == 3 ){ // maybe mouse lock
        // don't know how to fix now....
    }
    return false;
}

function NT_Shoping_CheckACT(npcNum)
{
    var townid = [1,40,75,103,109];
    if( !NTC_InTown() ){
        if( !NT_Shoping_MakeTP( townid[me.act-1] ) )
            return false;
    }
    if( arguments.length < 1 )
        return true;

    var act = NT_Shoping_CheckNPC( npcNum );
    if( act == 0 )
        return false;

    if( act != me.act ){
        if( !NTTM_TownMove( "waypoint" ) )
            return false;
        if( !NT_Shoping_TakeWaypoint( townid[act-1] ) )
            return false;
    }
    return true;
}


function NT_Shoping_GoNextNpc(npcNum, count)
{
    var cur = NT_Shoping_CheckNPC(npcNum);
    var next = NT_Shoping_CheckNPC(shop_npcNumber[count+1]);
    return ( next == cur ? false : true ); // 相等就不用出城

}

function NT_Shoping_CheckNPC( npcNum )
{
    if( is_D2C && npcNum > 11 )
        return 0;

    switch( npcNum ){
    case 1 :
    case 2 :
    case 3 :
        return 1;
    case 4 :
    case 5 :
    case 6 :
        return 2;
    case 7 :
    case 8 :
    case 9 :
        return 3;
    case 10:
    case 11:
        return 4;
    case 12:
    case 13:
    case 14:
        return 5;
    }
    return 0;
}

function NT_Shoping_OverHead( str )
{
    Say( "!" + str );
    NTC_Delay( 200 );
}

// 函数关闭打开的菜单
function NT_Shoping_CancelMenu()
{
    var i;
    while (GetUIState(0x01) ||
          GetUIState(0x08) ||
          GetUIState(0x0C) ||
          GetUIState(0x17) ||
          GetUIState(0x19) ||
          GetUIState(0x1A) ||
          GetUIState(0x24)){
        for( i = 0; i < 40; ++i ){
            if( ( i % 20 ) == 0 )
                me.Cancel(1);

            NTC_Delay( 200 );

            if( !GetUIState(0x01) &&
                !GetUIState(0x08) &&
                !GetUIState(0x0C) &&
                !GetUIState(0x17) &&
                !GetUIState(0x19) &&
                !GetUIState(0x1A) &&
                !GetUIState(0x24)){
                NTC_PingDelay(500);
                break;
            }
        }
    }
    NTC_PingDelay( 500 );
}

function markItems( quality, name, itemdesc )
{
    this.quality = quality;
    this.name = name;
    this.itemdesc = itemdesc;
}


function NT_Shoping_TakeWaypoint( areaid )
{
    var _unit;
    if( me.areaid == areaid )
        return true;
    _unit = NTM_GetWaypointInt();
    if( !_unit )
        return false;
    if( NTC_InTown() )
        me.Cancel( 1 );
    for( var i = 0 ; i < 20 ; ++i ){
        if( ( i % 10 ) == 0 ){
            NTC_DoClick( NTC_CLICK_LDOWN, NTC_SHIFT_NONE, _unit );
        }
        NTC_Delay(200);
        if( GetUIState( 0x14 ) ){
            if( me.TakeWaypoint( areaid ) ){
                NTC_PingDelay( NTConfig_AreaDelay );
                return true;
            }
            break;
        }
    }

    return false;
}

function NT_Shoping_UsePortal( how, dest, ownername, portal )
{
    if( me.areaid == dest )
        return true;
    if( NTC_InTown() )
        me.Cancel( 1 );
    if( NT_Shoping_ChangeAreaInt( how, dest, ownername, portal ) ){
        NTC_PingDelay( NTConfig_AreaDelay );
        return true;
    }
    return false;
}

function NT_Shoping_ChangeAreaInt( how, dest, ownername, myportal )
{
    var _portal;
    var _playerportal = false;
    var _prearea;

    if( how == "BluePortal" ){
        if( !ownername )
        ownername = me.name;
        _playerportal = true;
    }

    if( arguments.length > 3 && myportal )
        _portal = myportal;
    else {
        _portal = NTM_FindCorrectPortalInt( _playerportal, ownername );
        if( _portal < 0 )
            _portal = NTM_FindPortalAreaInt( dest );
            if( _portal == -1 )
                return false;
    }
    if( !_portal )
        return false;
    _prearea = me.areaid;

    for( var i = 0 ; i < 20 ; ++i ){
        if( ( i % 5 ) == 0 ){
//            if( i == 10 )
//                NTM_MoveTo( _prearea, me.x + 6, me.y + 6 );
            NTC_DoClick(NTC_CLICK_LDOWN, NTC_SHIFT_NONE, _portal);
        }
        NTC_Delay(200);
        if( me.areaid != _prearea )
            break;
    }
    while( me.areaid == 0 )
        NTC_Delay(200);
    return ( me.areaid == dest );
}

function NT_Shoping_MakeTP(dest)
{
    var _usetp = true;
    var _portal;
    var _portalname;

    if( NTC_InTown() )
      return true;
    if( arguments.length < 1 )
        _usetp = false;
    if( !NTC_CastSkill( 220, NTC_HAND_RIGHT ) )
        return false;
    NTC_PingDelay( 500 );

    _portalname = GetLocaleString( 3226 );
    for( var i = 0 ; i <= 2 ; ++i ){
        _portal = NTC_FindUnit( NTC_UNIT_OBJECT, _portalname );
        if( _portal ){
            do{
                if( _portal.mode == 2 && NTC_CheckOwner( _portal ) ){
                    if( _usetp )
                        return NT_Shoping_UsePortal( "BluePortal", dest, me.name, _portal );

                    return true;
                }
            } while( _portal.GetNext() );
        }
        if( i < 2 )
            NTC_Delay(500);
    }
    return false;
}

Im ordner item_config nun einen Ordner shoping erstellen und eine datei shoping.nip in welche die items reinkommen die man benötigt
Dann in der Char config datei die folgende Zeile bei der Pickit Sektion reinschreiben:
Code:

NTConfig_NIPFilePath.push("shoping/shoping.nip");
Diesen Teil ganz oben in die Char config rein über
Code:

function NT_LoadConfig()
Code:

//=========================================================================================================
// base shop d2x £¨if need shop d2c, set this true £©
var is_D2C = false;

// shop npc number£¬can shop multi npc, just need push npc number uself.
var shop_npcNumber = new Array();
//shop_npcNumber.push( 1 );
shop_npcNumber.push( 4 );
//shop_npcNumber.push( 5 );
//shop_npcNumber.push( 13 );
//shop_npcNumber.push( 12 );
// Act 1: Akara(1),    Charsi(2),  Gheed(3)
// Act 2: Drognan(4),  Fara(5),    Elzix(6)
// Act 3: Ormus(7),    Hratli(8),  Asheara(9)
// Act 4: Jamella(10), Halbu(11)
// Act 5: Anya(12),    Larzuk(13), Malah(14)

// auto kill anya red tp undead
var autoClear = true;
// shop anya go wp, if u want go wp, set it to true£¬base do not go wp
var anyaGoWp = false;

// get error then £º"quit game" or "come on"£¬base is "come on"
var errorGoQuitGame = false;
//==========================================================================================================

Viel spaß damit =)

nibbelr 05/16/2010 22:48

Hamwa sowas nicht schon hier?
[Only registered and activated users can see links. Click Here To Register...]
oder was macht der anders? ^^

XxArenaxX 05/16/2010 22:55

naja, der ist mit Nt. Für Leute die mit Redvex Probleme haben sollten sicher nicht schlecht^^

toya_ger 05/16/2010 23:15

bei mir kommt nen fehler NTShopbot.ntj(54):reference is_D2c not defined

Medix 05/16/2010 23:23

hast du
Code:

//=========================================================================================================
// base shop d2x £¨if need shop d2c, set this true £©
var is_D2C = false;

// shop npc number£¬can shop multi npc, just need push npc number uself.
var shop_npcNumber = new Array();
//shop_npcNumber.push( 1 );
shop_npcNumber.push( 4 );
//shop_npcNumber.push( 5 );
//shop_npcNumber.push( 13 );
//shop_npcNumber.push( 12 );
// Act 1: Akara(1),    Charsi(2),  Gheed(3)
// Act 2: Drognan(4),  Fara(5),    Elzix(6)
// Act 3: Ormus(7),    Hratli(8),  Asheara(9)
// Act 4: Jamella(10), Halbu(11)
// Act 5: Anya(12),    Larzuk(13), Malah(14)

// auto kill anya red tp undead
var autoClear = true;
// shop anya go wp, if u want go wp, set it to true£¬base do not go wp
var anyaGoWp = false;

// get error then £º"quit game" or "come on"£¬base is "come on"
var errorGoQuitGame = false;
//===========

eingefügt dort wo s hin soll?

FoGzone 05/16/2010 23:24

Also bei mir sieht das so aus (Paladinscript!!!! bei den anderen fehlen die ersten 2 Zeilen)

Code:

var NTConfig_UseRedemptionHP;
var NTConfig_UseRedemptionMP;

var NTConfig_UseRedemptionHP;
var NTConfig_UseRedemptionMP;

//=========================================================================================================
// base shop d2x £¨if need shop d2c, set this true £©
var is_D2C = false;

// shop npc number£¬can shop multi npc, just need push npc number uself.
var shop_npcNumber = new Array();
shop_npcNumber.push( 12 );
shop_npcNumber.push( 13 );

// Act 1: Akara(1),    Charsi(2),  Gheed(3)
// Act 2: Drognan(4),  Fara(5),    Elzix(6)
// Act 3: Ormus(7),    Hratli(8),  Asheara(9)
// Act 4: Jamella(10), Halbu(11)
// Act 5: Anya(12),    Larzuk(13), Malah(14)

// auto kill anya red tp undead
var autoClear = true;
// shop anya go wp, if u want go wp, set it to true£¬base do not go wp
var anyaGoWp = false;

// get error then £º"quit game" or "come on"£¬base is "come on"
var errorGoQuitGame = false;
//==========================================================================================================

function NT_LoadConfig()
{
        //------------------------------------------------------------------------------
        // Bosseinstellungen
        //------------------------------------------------------------------------------
        //
        //..::AKT 1::.. 
        //-------------
        //NTConfig_Script.push("NTMausoleum.ntj"); NTConfig_KillBloodRaven = true;
        //NTConfig_Script.push("NTTristram.ntj"); NTConfig_KillRakanishu = true;
        //NTConfig_Script.push("NTKuhlevel.ntj"); NTConfig_KillRakanishu = true; NTConfig_ClearTristram = false; NTConfig_MooMooFarm = true;
        //NTConfig_Script.push("NTGraefin.ntj");



Der Vorteil leigt darin, dass der RedVex Shopbot nach einem Disconnect nicht wieder in ein Spiel geht und weiter shopt. Dieser hier öffnet von alleine das game etc und macht nach einem d/c weiter

toya_ger 05/16/2010 23:52

jetzt geht er schon mal hin (anya) denke mal wp habe ich net wo er normal hingehen würde

und er blättert nicht durch ... oder brauch er das nicht?

er blätter die fenster also nicht durch habe ne klaue gekauft heute nacht

spike0 05/17/2010 03:46

also bei redvex reicht es immer, wenn er anya anspricht. das fenster muss sich nicht öffnen, er sieht trotzdem, was gerade verkauft wird ^^ geht das bei d2nt auch?

und hat jemand einen vergleich, was die schnelligkeit angeht? selbst wenn es eine sekunde ist - bei 100.000 runs macht sowas schon viel aus. bei redvex macht er ~15 anya runs (^^) pro minute.

und cleart er pindle and co? hab letztens vergessen die dinger zu clearen, länger mal nicht zugeguckt, und schwupps war ich tot... ich weiß, man kann es ja auch selbst clearen, aber wenn man den über nacht laufen lässt und wegen provider-dc ein neues game automatisch erstellt wird, dann wäre automatisches clearen schon nicht schlecht ^^

Jassy_Jamez 05/17/2010 06:40

// auto kill anya red tp undead
var autoClear = true;

das sollte das machen :)

HcAndi20 05/17/2010 10:50

Ich finds nice wenn es funktioniert da mir Redvex nicht gefällt^^

mirkoregge 05/17/2010 14:35

Ist der bot auf anya voreingestellt? Wie stell ich den auf Drognan um? Ich würd halt gerne bei Drognan alp in classic nach 2/3/3 zeptern shoppen lassen
btw ist dass dann:
Prefix=Priests, Monks
Stat1=item_singleskill
stat1skilltype=BlessedHammer
Stat1Value=3
Stat2=item_singleskill
Stat2skilltype=Concentration

oder:
[Name] == MightyScepter && [Quality] == magic # [PaladinSkills] = 2 && [BlessedHammer] = 3 && [Concentration] = 3
ich find das thema zu den pickiteinstellungen für nt nicht mehr -.-

toya_ger 05/17/2010 14:58

[Name] == MightyScepter && [Quality] == magic # [PaladinSkills] = 2 && [SkillBlessedHammer] = 3 && [SkillConcentration] = 3

einfach zahl für drognan wech machen oder bei der zahl // wech und bei any hin

Nisso 05/17/2010 15:08

wtf bei mir quittet er einfach ohne fehlermeldung ohne gar nix ??

mirkoregge 05/17/2010 15:10

muss man nicht in der Char config
NTConfig_Script.push("NTShopbot.ntj");
einfügen?

Nisso 05/17/2010 16:44

chiah!

GruenerApfel 05/17/2010 17:41

Quote:

Originally Posted by mirkoregge (Post 5274105)
muss man nicht in der Char config
NTConfig_Script.push("NTShopbot.ntj");
einfügen?

sollte eigentlich klar sein... aber zur sicherheit würd ichs auch nochmal in den startpost schreiben.... find den shopbot (claw1.3) unter redvex aber deutlich schneller schon alein deswegen, weil anya immer aufn roten portal steht usw ...
aber dennoch ty :=)

btw is das normal das er zwar das tradefenster (entgegen claw1.3) aufmacht aber dann nicht zu den klauen springt ?

senfbert 05/18/2010 16:38

macht wirre sachen, deswegen .....
 
Ich fasse nochmal zusammen, damit die lösungfindung vllt etwas einfach ist:

1.) Datei namens NTShopbot.ntj in D2NT\scripts\NTBot\bots erstellt mit folgendem inhalt (1:1 kopie von hier)
Spoiler:
////////////////////////////////////////////////////////////////////////////////////////////////////////////
// //
// ShopBot Script For D2NT 2.1 //
// Edit BY Lamobchan 2010/1/20 //
// Change For D2NT 3.1 2010/4/27 //
////////////////////////////////////////////////////////////////////////////////////////////////////////////
// 如果你不是很熟悉的话,请不要改动,因为现在这里没啥要设置的!
// if u don't know the javascript codes, do not edit this!
// lambochan

// 下列的物品忽略...
var shop_ignoreList = "aqv,cqv,key,tbk,ibk,tsc,isc,yps,vps,wms,hp1,hp2,h p3,hp4,hp5,mp1,mp2,mp3,mp4,mp5";

// kill再生尸,不用设置
var killUndear = false;

// anya红门坐标,不必理会
var anyaTPX = 10068;
var anyaTPY = 13308;

// 发生错误的情况(用来监控是否退出)
var errorMode = -1;
var sameErrorCount = 0;

function NTMain()
{
// 初始化
Include("libs/common/NTCommon.ntl");
NTC_IncludeLibs();
NTC_IncludeConfig("NTBot/char_configs");
NT_LoadConfig();
NTSI_LoadNIPFiles("NTBot/item_configs");
NTA_Initialize();
NTTMGR_TownManager();


NTC_Delay( 2000 );
NT_Shoping_OverHead( "Now begin shoping..." );

// shoping
NT_Shoping();

// over.
NT_Shoping_Msg( "SCRIPT_END" );
}

function NT_Shoping()
{
var npcName = new Array( "akara", "charsi", "gheed", /* act1 */
"drognan", "fara", "elzix", /* act2 */
"ormus", "hratli", "asheara", /* act3 */
"jamella", "halbu" ); /* act4 */
// "anya", "larzuk", "malah" ); /* act5 */
if( !is_D2C ){ // d2x, need add act5 npc name
npcName.push( "anya" );
npcName.push( "larzuk" );
npcName.push( "malah" );
}

var npcID = [NTC_NPC_ID_AKARA, NTC_NPC_ID_CHARSI, NTC_NPC_ID_GHEED,
NTC_NPC_ID_DROGNAN, NTC_NPC_ID_FARA, NTC_NPC_ID_ELZIX,
NTC_NPC_ID_ORMUS, NTC_NPC_ID_HRATLI, NTC_NPC_ID_ASHEARA,
NTC_NPC_ID_JAMELLA, NTC_NPC_ID_HALBU,
NTC_NPC_ID_ANYA_TOWN, NTC_NPC_ID_LARZUK, NTC_NPC_ID_MALAH];

var j;
var num;
var npc;
var npcCount;
var shopItems;
var shopRush = 0;
var buyItems = new Array();
var showItems = new Array();


if( shop_npcNumber.length <= 0 ){
NT_Shoping_Msg( "have not npc list for shoping, plz check it!" );
return;
}

for( ; ; ){
num = 0;
npcCount = shop_npcNumber.length;
do{
if( shopRush++ > 30 ){
RunGC();
shopRush = 0;
}

if( NTTMGR_CheckScrolls( 1 ) < 4 )
NTTMGR_TownManager();

if( !NT_Shoping_CheckACT( shop_npcNumber[num] ) ){
NT_Shoping_Msg( "NT_Shoping_CheckACT()", 1 );
break;
}

if( !NTTM_TownMove( npcName[shop_npcNumber[num] - 1] ) ){
NT_Shoping_Msg( "NTTM_TownMove()", 2 );
break;
}

npc = NTC_FindUnit( NTC_UNIT_NPC, npcID[shop_npcNumber[num] - 1], 2 );
if( npc ){
if( !NTT_DoInteract( npc ) ){
NT_Shoping_Msg( "NTT_DoInteract()", 3 );
break;
}

if( !NTT_DoTrade( npc ) ){
NT_Shoping_CancelMenu();
NT_Shoping_Msg( "!NTT_DoTrade()", 4 );
break;
}

shopItems = npc.GetItems();
if( shopItems ){
for( j = 0; j < shopItems.length; ++j ){
if( shop_ignoreList.indexOf( shopItems[j] ) == -1 ){
if( NTIPCheckItem( shopItems[j] ) == 1 ){
buyItems.push( shopItems[j] );
var mark = new markItems( shopItems[j].quality, shopItems[j].name, shopItems[j].itemdesc );
showItems.push( mark );
}
}
}
} // end if(shopItems)

if( buyItems.length > 0 ){
for( j = 0; j < buyItems.length; ++j ){
if( buyItems[j].GetItemCost( 0, npcID[shop_npcNumber[num] - 1] ) > NTC_MyGold() ){
NT_Shoping_CancelMenu();
NT_Shoping_Loop( "have not money buy an item now." );
}
if( NTT_CheckSpace( buyItems[j].xsize, buyItems[j].ysize ) ){
if( !NTT_ShopItem( buyItems[j], npc, 2 ) ){
NT_Shoping_CancelMenu();
NT_Shoping_Loop( "have an item can not buy it." );
}
} // end if(NTT_Ch
else {
NT_Shoping_CancelMenu();
NTTMGR_VisitStash();

if( !NTT_CheckSpace( buyItems[j].xsize, buyItems[j].ysize ) ){
NT_Shoping_Loop( "have not space save items, and have an item can not buy it." );
}

if( !NTTM_TownMove( npcName[shop_npcNumber[num] - 1] ) ){
NT_Shoping_Loop( "have an item can not buy it." );
}

if( !NTT_DoInteract( npc ) ){
NT_Shoping_Loop( "have an item can not buy it." );
}

if( !NTT_DoTrade( npc ) ){
NT_Shoping_CancelMenu();
NT_Shoping_Loop( "have an item can not buy it." );
}

if( !NTT_ShopItem( buyItems[j], npc, 2 ) ){
NT_Shoping_CancelMenu();
NT_Shoping_Loop( "have an item can not buy it." );
}
} // end else
NTC_SendLogToOOG( NTC_LOG_ITEM, "Buy " + NTC_ItemQualityToMGRColor[showItems[j].quality] + "[" + showItems[j].name + "] " + ";" + showItems[j].itemdesc +
" [" + npcName[shop_npcNumber[num] - 1].charAt( 0 ).toUpperCase() +
npcName[shop_npcNumber[num] - 1].substring( 1 ) + "]" );

} // end for( j

buyItems.length = 0;
showItems.length = 0;
}
// 关闭菜单
NT_Shoping_CancelMenu();
} // end if(npc)

// 出城
if( !NT_Shoping_InOutTown(shop_npcNumber[num], num ) ){
NT_Shoping_Msg( "NT_Shoping_InOutTown()", 5 );
break;
}

// next npc
num++;

} while( --npcCount );

}
}

function NT_Shoping_InOutTown(num, count)
{
if( shop_npcNumber.length > 1 ){ // shop几个
var outTown = NT_Shoping_GoNextNpc(num, count); // 看看要不要出城,因为要刷新npc必须在该act出城..
if( !outTown ) // 不用。
return true;
}

if( num == 12 && !anyaGoWp ){ // anya go red tp
if( !NTTM_TownMove( "portal" ) ){
NT_Shoping_Msg( "NTTM_TownMove()", 6 );
return false;
}
if( !NT_Shoping_UsePortal( "Portal", 121 ) ){
NT_Shoping_Msg( "NT_Shoping_UsePortal()", 7 );
return false;
}

// kill再生尸
if( autoClear ){
killUndear = true;
NTP_DoPrecast();
// 有“吸星大法”和TP的话,先吸掉一些......
if( NTC_GetSkillLevel( 124 ) && NTC_GetSkillLevel( 54 ) ){
if( !NTM_MoveTo( me.areaid, 10069, 13293 ) )
return false;
NTC_PutSkill( 124, NTC_HAND_RIGHT );
NTC_PingDelay( 2000 );

if( !NTM_MoveTo( me.areaid, me.x - 15, me.y - 15 ) )
return false;
} // end if( NTC_Ch

if( NT_Shoping_CheckUndear( 20 ) ){
if( NTA_ClearPosition( 20 ) )
NTSI_PickItems();
if( NTC_GetSkillLevel( 124 ) && NT_Shoping_CheckCorpses( 8 ) ){
NTC_PutSkill( 124, NTC_HAND_RIGHT );
NTC_PingDelay( 2000 );
}
NTC_PutSkill( 115, NTC_HAND_RIGHT );
}

if( !NTM_MoveTo( me.areaid, anyaTPX, anyaTPY ) )
return false;

autoClear = false;
}
// 门口有怪的话,必须杀光
if( killUndear && NT_Shoping_CheckUndear( 20 ) ){
if( NTA_ClearPosition( 20 ) )
NTSI_PickItems();
if( NTC_GetSkillLevel( 124 ) && NT_Shoping_CheckCorpses( 8 ) ){
NTC_PutSkill( 124, NTC_HAND_RIGHT );
NTC_PingDelay( 2000 );
}
if( !NTM_MoveTo( me.areaid, anyaTPX, anyaTPY ) )
return false;
NTC_PutSkill( 115, NTC_HAND_RIGHT );
}
// 走人回act5 town
if( !NT_Shoping_UsePortal( "Portal", 109 ) ){
NT_Shoping_Msg( "NT_Shoping_UsePortal()", 8 );
return NT_Shoping_CheckACT();
}
} else {
var ok = false;
if( !NTTM_TownMove( "waypoint" ) ){
NT_Shoping_Msg( "NTTM_TownMove()", 9 );
return false;
}
switch( me.act ){
case 1 :
if( !NT_Shoping_TakeWaypoint( 35 ) )
return false;
ok = NT_Shoping_TakeWaypoint( 1 );
break;
case 2 :
if( !NT_Shoping_TakeWaypoint( 48 ) ){
return false;
}
ok = NT_Shoping_TakeWaypoint( 40 );
break;
case 3 :
if( !NT_Shoping_TakeWaypoint( 101 ) )
return false;
ok = NT_Shoping_TakeWaypoint( 75 );
break;
case 4 :
if( !NT_Shoping_TakeWaypoint( 107 ) )
return false;
ok = NT_Shoping_TakeWaypoint( 103 );
break;
case 5 :
if( !NT_Shoping_TakeWaypoint( 129 ) )
return false;
ok = NT_Shoping_TakeWaypoint( 109 );
break;
}
if( !ok ){ // give a chance do it again..
return NT_Shoping_CheckACT();
}
}
return true;
}

function NT_Shoping_CheckMonster( target )
{
return ( target.hp > 0 && target.mode != 0 && target.mode != 12 && GetDistance( me, target ) != -1 );
}


function NT_Shoping_CheckCorpses( range )
{
var undear = NTC_FindUnit( NTC_UNIT_MONSTER, 438, 2 );
if( undear ){
do{
if( !NT_Shoping_CheckMonster( undear ) && GetDistance( me, undear ) < range )
return true;
} while( undear.GetNext() );
}
return false;
}

function NT_Shoping_CheckUndear( range )
{
var undear = NTC_FindUnit( NTC_UNIT_MONSTER, 438, 2 );
if( undear ){
do{
if( GetDistance( me, undear ) < range )
return true;
} while( undear.GetNext() );
}
return false;
}

function NT_Shoping_Loop( str )
{
var hi = "NTShopbot.ntj : " + str;
NTC_SendLogToOOG( hi );
var tempX = me.x;
var tempY = me.y;
for( ; ; ){
for( var i = 0; i < 20; ++i ){
NT_Shoping_OverHead( str );

var xx = Random( -3, 3 );
var yy = Random( -3, 3 );

NTC_DoClick( NTC_CLICK_LDOWN, NTC_SHIFT_NONE, xx, yy );
NTC_Delay(500);

NTC_Delay( 3000 );

NTC_DoClick( NTC_CLICK_LDOWN, NTC_SHIFT_NONE, tempX, tempY );
NTC_Delay(500);
}
}
}

function NT_Shoping_Msg( str, em )
{
errorGoQuitGame ? NTC_SendMsgToScript( "NTBotGame.ntj", str ) :
( NT_Shoping_CheckError( em ) ? NTC_SendMsgToScript( "NTBotGame.ntj", str ) :
NTC_SendLogToOOG( NTC_LOG_COMMON, "ÿE00000" + str ) );
}

function NT_Shoping_CheckError( em )
{
if( errorMode == em ){
sameErrorCount++;
if( sameErrorCount >= 5 )
return true;
} else {
errorMode = em;
sameErrorCount = 0;
}
if( em == 3 ){ // maybe mouse lock
// don't know how to fix now....
}
return false;
}

function NT_Shoping_CheckACT(npcNum)
{
var townid = [1,40,75,103,109];
if( !NTC_InTown() ){
if( !NT_Shoping_MakeTP( townid[me.act-1] ) )
return false;
}
if( arguments.length < 1 )
return true;

var act = NT_Shoping_CheckNPC( npcNum );
if( act == 0 )
return false;

if( act != me.act ){
if( !NTTM_TownMove( "waypoint" ) )
return false;
if( !NT_Shoping_TakeWaypoint( townid[act-1] ) )
return false;
}
return true;
}


function NT_Shoping_GoNextNpc(npcNum, count)
{
var cur = NT_Shoping_CheckNPC(npcNum);
var next = NT_Shoping_CheckNPC(shop_npcNumber[count+1]);
return ( next == cur ? false : true ); // 相等就不用出城

}

function NT_Shoping_CheckNPC( npcNum )
{
if( is_D2C && npcNum > 11 )
return 0;

switch( npcNum ){
case 1 :
case 2 :
case 3 :
return 1;
case 4 :
case 5 :
case 6 :
return 2;
case 7 :
case 8 :
case 9 :
return 3;
case 10:
case 11:
return 4;
case 12:
case 13:
case 14:
return 5;
}
return 0;
}

function NT_Shoping_OverHead( str )
{
Say( "!" + str );
NTC_Delay( 200 );
}

// 函数关闭打开的菜单
function NT_Shoping_CancelMenu()
{
var i;
while (GetUIState(0x01) ||
GetUIState(0x08) ||
GetUIState(0x0C) ||
GetUIState(0x17) ||
GetUIState(0x19) ||
GetUIState(0x1A) ||
GetUIState(0x24)){
for( i = 0; i < 40; ++i ){
if( ( i % 20 ) == 0 )
me.Cancel(1);

NTC_Delay( 200 );

if( !GetUIState(0x01) &&
!GetUIState(0x08) &&
!GetUIState(0x0C) &&
!GetUIState(0x17) &&
!GetUIState(0x19) &&
!GetUIState(0x1A) &&
!GetUIState(0x24)){
NTC_PingDelay(500);
break;
}
}
}
NTC_PingDelay( 500 );
}

function markItems( quality, name, itemdesc )
{
this.quality = quality;
this.name = name;
this.itemdesc = itemdesc;
}


function NT_Shoping_TakeWaypoint( areaid )
{
var _unit;
if( me.areaid == areaid )
return true;
_unit = NTM_GetWaypointInt();
if( !_unit )
return false;
if( NTC_InTown() )
me.Cancel( 1 );
for( var i = 0 ; i < 20 ; ++i ){
if( ( i % 10 ) == 0 ){
NTC_DoClick( NTC_CLICK_LDOWN, NTC_SHIFT_NONE, _unit );
}
NTC_Delay(200);
if( GetUIState( 0x14 ) ){
if( me.TakeWaypoint( areaid ) ){
NTC_PingDelay( NTConfig_AreaDelay );
return true;
}
break;
}
}

return false;
}

function NT_Shoping_UsePortal( how, dest, ownername, portal )
{
if( me.areaid == dest )
return true;
if( NTC_InTown() )
me.Cancel( 1 );
if( NT_Shoping_ChangeAreaInt( how, dest, ownername, portal ) ){
NTC_PingDelay( NTConfig_AreaDelay );
return true;
}
return false;
}

function NT_Shoping_ChangeAreaInt( how, dest, ownername, myportal )
{
var _portal;
var _playerportal = false;
var _prearea;

if( how == "BluePortal" ){
if( !ownername )
ownername = me.name;
_playerportal = true;
}

if( arguments.length > 3 && myportal )
_portal = myportal;
else {
_portal = NTM_FindCorrectPortalInt( _playerportal, ownername );
if( _portal < 0 )
_portal = NTM_FindPortalAreaInt( dest );
if( _portal == -1 )
return false;
}
if( !_portal )
return false;
_prearea = me.areaid;

for( var i = 0 ; i < 20 ; ++i ){
if( ( i % 5 ) == 0 ){
// if( i == 10 )
// NTM_MoveTo( _prearea, me.x + 6, me.y + 6 );
NTC_DoClick(NTC_CLICK_LDOWN, NTC_SHIFT_NONE, _portal);
}
NTC_Delay(200);
if( me.areaid != _prearea )
break;
}
while( me.areaid == 0 )
NTC_Delay(200);
return ( me.areaid == dest );
}

function NT_Shoping_MakeTP(dest)
{
var _usetp = true;
var _portal;
var _portalname;

if( NTC_InTown() )
return true;
if( arguments.length < 1 )
_usetp = false;
if( !NTC_CastSkill( 220, NTC_HAND_RIGHT ) )
return false;
NTC_PingDelay( 500 );

_portalname = GetLocaleString( 3226 );
for( var i = 0 ; i <= 2 ; ++i ){
_portal = NTC_FindUnit( NTC_UNIT_OBJECT, _portalname );
if( _portal ){
do{
if( _portal.mode == 2 && NTC_CheckOwner( _portal ) ){
if( _usetp )
return NT_Shoping_UsePortal( "BluePortal", dest, me.name, _portal );

return true;
}
} while( _portal.GetNext() );
}
if( i < 2 )
NTC_Delay(500);
}
return false;
}

2.) In D2NT\scripts\NTBot\item_configs\shoping eine datei namens shoping.nip mit dem kopierten Inhalt meiner bisherigen bluebird.nip erstellt.

3.) Den restlichen code in meine charconfig eingefügt die nun so aussieht
Spoiler:
var NTConfig_UseRedemptionHP;
var NTConfig_UseRedemptionMP;



//================================================== ================================================== =====
// base shop d2x £¨if need shop d2c, set this true £©
var is_D2C = false;

// shop npc number£¬can shop multi npc, just need push npc number uself.
var shop_npcNumber = new Array();
shop_npcNumber.push( 1 );
shop_npcNumber.push( 2 );
shop_npcNumber.push( 3 );
shop_npcNumber.push( 4 );
shop_npcNumber.push( 5 );
shop_npcNumber.push( 6 );
shop_npcNumber.push( 7 );
shop_npcNumber.push( 8 );
shop_npcNumber.push( 9 );
shop_npcNumber.push( 10 );
shop_npcNumber.push( 11 );
shop_npcNumber.push( 12 );
shop_npcNumber.push( 13 );
shop_npcNumber.push( 14 );

// Act 1: Akara(1), Charsi(2), Gheed(3)
// Act 2: Drognan(4), Fara(5), Elzix(6)
// Act 3: Ormus(7), Hratli(8), Asheara(9)
// Act 4: Jamella(10), Halbu(11)
// Act 5: Anya(12), Larzuk(13), Malah(14)

// auto kill anya red tp undead
var autoClear = true;
// shop anya go wp, if u want go wp, set it to true£¬base do not go wp
var anyaGoWp = false;

// get error then £º"quit game" or "come on"£¬base is "come on"
var errorGoQuitGame = false;
//================================================== ================================================== ======









function NT_LoadConfig()
{


NTConfig_Script.push("NTShopbot.ntj");

//------------------------------------------------------------------------------
// Bosseinstellungen
//------------------------------------------------------------------------------
//
//..::AKT 1::..
//-------------
//NTConfig_Script.push("NTMausoleum.ntj"); NTConfig_KillBloodRaven = true;
//NTConfig_Script.push("NTTristram.ntj"); NTConfig_KillRakanishu = true;
//NTConfig_Script.push("NTKuhlevel.ntj"); NTConfig_KillRakanishu = true; NTConfig_ClearTristram = false; NTConfig_MooMooFarm = true;
NTConfig_Script.push("NTGraefin.ntj");
//NTConfig_Script.push("NTBaumkopf.ntj");
//NTConfig_Script.push("NTPit.ntj"); NTConfig_ClearPitLevel1 = 2; // 0 : nicht clearen, 1 : nur den Weg clearen, 2 : alles clearen
//NTConfig_Script.push("NTDas Loch.ntj"); NTConfig_ClearHoleLevel1 = 1; // 0 : nicht clearen, 1 : nur den Weg clearen, 2 : alles clearen
NTConfig_Script.push("NTAndariel.ntj");
//
//
//..::AKT 2::..
//-------------
//NTConfig_Script.push("NTRadament.ntj");
//NTConfig_Script.push("NTKaltwurm der Graeber.ntj");
//NTConfig_Script.push("NTAlte Tunnels.ntj");
// NTConfig_Script.push("NTSummoner.ntj"); NTConfig_KillFireEye = false;
NTConfig_Script.push("NTDuriel.ntj");
//
//
//..::AKT 3::..
//-------------
//NTConfig_Script.push("NTKanalisation Akt3.ntj"); NTConfig_ClearA3SewersLevel1 = 1; // 0 : don't clear, 1 : clear path only, 2 : clear all
NTConfig_Script.push("NTKurastTravel.ntj");
NTConfig_Script.push("NTTravincal.ntj");
NTConfig_Script.push("NTMephisto.ntj");
//
//
//..::AKT 4::..
//-------------
NTConfig_Script.push("NTIzual.ntj");
NTConfig_Script.push("NTDer Hoellenschmied.ntj");
//NTConfig_Script.push("NTDiablo.ntj");
NTConfig_Script.push("NTFastDiablo.ntj");
//
//
//..::AKT 5::..
//-------------
//NTConfig_Script.push("NTPindleskinWP.ntj");
NTConfig_Script.push("NTPindleskin.ntj"); NTConfig_NihlathakExtension = true;
//NTConfig_Script.push("NTNihlathak.ntj"); NTConfig_PindleskinExtension = false;
//NTConfig_Script.push("NTEldritch.ntj"); NTConfig_ShenkExtension = true; NTConfig_DacFarren = false;
//NTConfig_Script.push("NTThreshSocket.ntj");
//NTConfig_Script.push("NTFrostfluss.ntj"); NTConfig_ClearFrozenRiver = false;
//NTConfig_Script.push("NTGletscherweg.ntj"); NTConfig_ClearGlacialTrail = false;
//NTConfig_Script.push("NTEiskeller.ntj"); NTConfig_ClearIcyCellar = false;
NTConfig_Script.push("NTBaal.ntj"); NTConfig_KillBaal = true;



//------------------------------------------------------------------------------
// Rush - Bot
//------------------------------------------------------------------------------

//NTConfig_Script.push("NTRushAct1.ntj");
//NTConfig_Script.push("NTRushAct2.ntj"); NTConfig_Cube = true; NTConfig_Staff = true; NTConfig_Amu = true; NTConfig_Summoner = true;
//NTConfig_Script.push("NTRushAct3.ntj");
//NTConfig_Script.push("NTRushAct4.ntj"); NTConfig_ClearCS = false;
//NTConfig_Script.push("NTRushAct5.ntj"); NTConfig_Anya = true; NTConfig_Ancients = true;



//------------------------------------------------------------------------------
// Baal-Leech-Bot
//------------------------------------------------------------------------------

//NTConfig_Script.push("NTBaalLeech.ntj");



//------------------------------------------------------------------------------
// Positionen anzeigen
//------------------------------------------------------------------------------


//NTConfig_Script.push("NTposition.ntj");



//------------------------------------------------------------------------------
// Zeiteinstellungen
//------------------------------------------------------------------------------
me.maxgametime = 1800000; // Maximale Spielzeit für einen Run (0 = unendlich)
NTConfig_StartDelay = 500; // Zeit in Millisekunden vor dem Start
NTConfig_AreaDelay = 500; // Zeit in Millisekunden vor dem Gebietswechsel
NTConfig_SnagDelay = 1; // Zeit in Millisekunden vor dem Einsammeln von Items

//------------------------------------------------------------------------------
// Life / Mana - Einstellungen
//------------------------------------------------------------------------------

NTConfig_SkipHealLife = 90; // Unterhalb dieser % seiner Leben geht der Bot zum Heiler
NTConfig_SkipHealMana = 70; // Unterhalb dieser % seiner Mana geht der Bot zum Heiler
NTConfig_SkipHealCurses = true;// false = Flüche heilen : true = Flüche nicht heilen
NTConfig_UseMerc = true; // true = Söldner verwenden : false = keinen Söldner verwenden
NTConfig_ResetWeapon = false; // Waffe vom Söldner kurz rausnehmen und wieder reinlegen (Aura)

NTConfig_LifeThresh = 67; // Unterhalb dieser % seiner Leben trinkt der Bot einen normalen Heiltrank
NTConfig_LifeRejuvThresh = 37; // Unterhalb dieser % seiner Leben trinkt der Bot einen lila Trank
NTConfig_ManaThresh = 30; // Unterhalb dieser % seiner Mana trinkt der Bot einen normalen Manatrank
NTConfig_ManaRejuvThresh = 0; // Unterhalb dieser % seiner Mana trinkt der Bot einen lila Trank
NTConfig_LifeChicken = 20; // Unterhalb dieser % seiner Leben verlässt der Bot das Spiel
NTConfig_ManaChicken = 0; // Unterhalb dieser % seiner Mana verlässt der Bot das Spiel

NTConfig_MercLifeThresh = 80; // Unterhalb dieser % des Söldnerlebens gibt der Bot dem Söldner einen Heiltrank
NTConfig_MercRejuvThresh = 30; // Unterhalb dieser % des Söldnerlebens gibt der Bot dem Söldner einen lila Trank
NTConfig_MercChicken = 0; // Unterhalb dieser % des Söldnerlebens verlässt der Bot das Spiel

//------------------------------------------------------------------------------
// Inventar - Einstellungen
//------------------------------------------------------------------------------

NTConfig_FreeSpace = 7; // Anzahl der Kästchen im Inventar die mindestens frei sein müssen. Sind weniger Kästchen frei, geht der Bot zur Truhe.

// Die Zahlen stellen dein Inventar dar. Jede Zahl ist ein Kästchen. 0 = Der bot fässt diese items niemals an : 1 = Der Bot arbeitet mit diesen Feldern.
NTConfig_Columns[0] = [1,1,1,1,1,0,0,0,0,0];
NTConfig_Columns[1] = [1,1,1,1,1,0,0,0,0,0];
NTConfig_Columns[2] = [1,1,1,1,1,0,0,0,0,0];
NTConfig_Columns[3] = [1,1,1,1,1,0,0,0,0,0];

NTConfig_MinGoldToStash = 100000; // Maximale Goldsumme die der Bot bei sich tragen darf ohne zur Truhe zu gehen.

//------------------------------------------------------------------------------
// Gürtel - Einstellungen
//------------------------------------------------------------------------------
//
// Tragt hier ein, welche tränke in welcher Reihe des Gürtels verwendet werden sollen.
// Mögliche Arten : "hp" = Heiltrank : "mp" = Manatrank : "rv" = lila Trank.
// Versucht die Spalten zu sortieren. Z.B: Heiltrank, Manatrank, Heiltrank, Manatrank ist eine beschissene Einstellung.
// Wenn ihr lila Tränke verwendet, dann macht sie hinten in den Gürtel NICHT vorne.
// Sie MÜSSEN hinten im Gürtel sein
// Ganz coole leute schreiben rv in jede Spalte o_O
//----------------------------------------------------------------------------------------------

NTConfig_BeltColType[0] = "hp";
NTConfig_BeltColType[1] = "rv";
NTConfig_BeltColType[2] = "rv";
NTConfig_BeltColType[3] = "rv";

//------------------------------------------------------------------------------
// PickIt - Einstellungen
//------------------------------------------------------------------------------
//
// Hier könnt ihr einstellen welches Pickit verwendet wird.
// Es darf nur ein Modus ausgewählt sein!!! (normal / advance / extreme)
//-----------------------------------------------------------------------------------
//
//NTConfig_NIPFilePath.push("normal/normal.nip");
//NTConfig_NIPFilePath.push("normal/magic_rare.nip");
//NTConfig_NIPFilePath.push("normal/set.nip");
//NTConfig_NIPFilePath.push("normal/unique.nip");
//NTConfig_NIPFilePath.push("normal/craft.nip");

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

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

NTConfig_NIPFilePath.push("Bluebird.nip");

NTConfig_NIPFilePath.push("shoping/shoping.nip");

NTConfig_SnagRange = 50; // Radius in welchem der Bot überprüft ob etwas gedropt ist. 40 scheint ganz OK zu sein. Wenn ihr sehr häufig EBENEN farmt darfs denke ich auch 50 sein.

//------------------------------------------------------------------------------
// Cubing - Einstellungen
//------------------------------------------------------------------------------
NTConfig_Cubing = true; // Lasst das auf false

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

//NTConfig_CubingItem.push([NTCU_MAGIC, 420]); // Magic Tiara
//NTConfig_CubingItem.push([NTCU_MAGIC, 421]); // Magic Diadem

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

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

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

//stürzt ab //NTConfig_CubingItem.push([NTCU_CRAFT_CASTER_AMULET, 520]); // Craft Amulet

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

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

//***** Include the following, Primary item must be setted in item_configs folder *****

//NTConfig_CubingItem.push([NTCU_SOCKET_BODYARMOR, 442]); // Socket Sacred Armor

//NTConfig_CubingItem.push([NTCU_SOCKET_WEAPON, 255]); // Socket Thresher
//NTConfig_CubingItem.push([NTCU_SOCKET_WEAPON, 256]); // Socket Cryptic Axe
//NTConfig_CubingItem.push([NTCU_SOCKET_WEAPON, 257]); // Socket Great Poleaxe
//NTConfig_CubingItem.push([NTCU_SOCKET_WEAPON, 258]); // Socket Giant Thresher

//NTConfig_CubingItem.push([NTCU_UPGRADE_E_UNIQUE_WEAPON, 295]); // Titan's Revenge : Exceptional -> Elite

//NTConfig_CubingItem.push([NTCU_UPGRADE_N_UNIQUE_ARMOR, 337]); // Magefist : Normal -> Exceptional
//NTConfig_CubingItem.push([NTCU_UPGRADE_E_UNIQUE_ARMOR, 360]); // Skin of the Vipermagi : Exceptional -> Elite
//NTConfig_CubingItem.push([NTCU_UPGRADE_E_UNIQUE_ARMOR, 383]); // Magefist or Lava Gout : Exceptional -> Elite
//NTConfig_CubingItem.push([NTCU_UPGRADE_E_UNIQUE_ARMOR, 389]); // Gore Rider : Exceptional -> Elite
//NTConfig_CubingItem.push([NTCU_UPGRADE_E_UNIQUE_ARMOR, 477]); // Arreat's Face : Exceptional -> Elite
//NTConfig_CubingItem.push([NTCU_UPGRADE_E_UNIQUE_ARMOR, 481]); // Herald Of Zakarum : Exceptional -> Elite

//------------------------------------------------------------------------------
// Gamble / Glücksspiel - Einstellungen
//------------------------------------------------------------------------------
NTConfig_Gamble = true; // true = Glücksspiel machen : false = kein Glücksspiel
NTConfig_GambleStartGold = 2000000; // Wenn schon soviel Gold da ist beginnt der Bot auf mit dem Glücksspiel.
NTConfig_GambleStopGold = 800000; // Wenn nurnoch soviel Gold da ist hört der Bot auf mit dem Glücksspiel.

NTConfig_GambleItem.push(520); // Amulette
NTConfig_GambleItem.push(522); // Ringe
NTConfig_GambleItem.push(418); // Reifen
NTConfig_GambleItem.push(419); // Coronets
NTConfig_GambleItem.push(334); // Lederhandschuhe
NTConfig_GambleItem.push(335); // Schwere Handschuhe
NTConfig_GambleItem.push(336); // Lettenhandschuhe
NTConfig_GambleItem.push(337); // Leichte Handschuhe
NTConfig_GambleItem.push(338); // Handschuhe?

//------------------------------------------------------------------------------
// Ein paar allgemeine Einstellungen
//------------------------------------------------------------------------------
NTConfig_PublicMode = true; // Auf true setzen, wenn du mit diesem Bot öffentliche Spiele / public games machen willst
NTConfig_CheckCloneDiablo = true; // Auf true setzten, wenn du in dem Game warten willst, wenn die Nachricht "Diablo Walks the Earth" erscheint.
NTConfig_OpenChest = true; // true = Truhen öffnen : false = Truhen zulassen
me.quitonhostile = false; // Auf true setzen, wenn du public Games machst und möchtest, dass der Bot das Spiel direkt verlässt, wenn Bot-Jäger auftauchen

//------------------------------------------------------------------------------
// Angriffs - Einstellungen
//------------------------------------------------------------------------------
NTConfig_AttackSkill[0] = 0; // Anfangsskill (wird nur EIN mal gecastet) 0 = keinen
NTConfig_AttackSkill[1] = 112; // Welcher Skill soll beim Angriff gegen Bosse aktiv sein? 0 = keiner
NTConfig_AttackSkill[2] = 113; // Welche Aura soll beim Angriff gegen Bosse aktiv sein? 0 = keine
NTConfig_AttackSkill[3] = 112; // Welcher Skill soll beim Angriff gegen andere Monster aktiv sein? 0 = keiner
NTConfig_AttackSkill[4] = 113; // Welche Aura soll beim Angriff gegen andere Monster aktiv sein? 0 = keine
NTConfig_AttackSkill[5] = 0; // Zweitskill, falls ein Monster immun gegen den Hauptskill ist 0 = keinen
NTConfig_AttackSkill[6] = 0; // Zweitaura.0 = keine (braucht man eigentlich nicht)
NTConfig_ClearPosition = false; // Auf true setzen, dann cleart der Bot die nahe Umgebung des Bosses.

NTConfig_UseRedemptionHP = 80; // Unterhalb dieser % seiner Leben setzt der Bot "Rücknahme" ein. 0 = ausgeschaltet
NTConfig_UseRedemptionMP = 60; // Unterhalb dieser % seiner Mana setzt der Bot "Rücknahme" ein. 0 = ausgeschaltet

//------------------------------------------------------------------------------
// Das hier einfach so lassen. Finger weg!
//------------------------------------------------------------------------------

// Check self safe in field (NOT in town). Set to 0 if you won't
// 0x01 : Potion, 0x02 : Poison, 0x04 : Amplify Damage, 0x08 : Weaken, 0x10 : Iron Maiden, 0x20 : Decrepify, 0x40 : Lower Resist
NTConfig_CheckSelfSafe = 0x04|0x40;
// Check merc's safe in field (NOT in town). Set to 0 if you won't
// 0x01 : Death, 0x02 : Poison, 0x04 : Amplify Damage, 0x08 : Weaken, 0x10 : Iron Maiden, 0x20 : Decrepify, 0x40 : Lower Resist
NTConfig_CheckMercSafe = 0x01|0x04|0x10|0x40;


}

4. Und was macht der gute nun. er geht ins spiel, schreibt, dass shoppen los geht und rennt los. er geht schön der reihe nach alle npc ab, kauft bei denen die heiltränke haben genau soviel tränke wie im tradefenster angezeigt werden und bei die anderen klickt er nur kurz an, macht nichts und geht weiter. irgendwann ist das inv mit heil und manatränken voll und dann kommt die entsprechende fehlermeldung: "have not space save items, and have an item ca not buy it".

danke schonmal fürs behilflich sein!

FoGzone 05/18/2010 17:44

Quote:

Originally Posted by senfbert (Post 5287490)
Ich fasse nochmal zusammen, damit die lösungfindung vllt etwas einfach ist:

1.) Datei namens NTShopbot.ntj in D2NT\scripts\NTBot\bots erstellt mit folgendem inhalt (1:1 kopie von hier)
Spoiler:
////////////////////////////////////////////////////////////////////////////////////////////////////////////
// //
// ShopBot Script For D2NT 2.1 //
// Edit BY Lamobchan 2010/1/20 //
// Change For D2NT 3.1 2010/4/27 //
////////////////////////////////////////////////////////////////////////////////////////////////////////////
// 如果你不是很熟悉的话,请不要改动,因为现在这里没啥要设置的!
// if u don't know the javascript codes, do not edit this!
// lambochan

// 下列的物品忽略...
var shop_ignoreList = "aqv,cqv,key,tbk,ibk,tsc,isc,yps,vps,wms,hp1,hp2,h p3,hp4,hp5,mp1,mp2,mp3,mp4,mp5";

// kill再生尸,不用设置
var killUndear = false;

// anya红门坐标,不必理会
var anyaTPX = 10068;
var anyaTPY = 13308;

// 发生错误的情况(用来监控是否退出)
var errorMode = -1;
var sameErrorCount = 0;

function NTMain()
{
// 初始化
Include("libs/common/NTCommon.ntl");
NTC_IncludeLibs();
NTC_IncludeConfig("NTBot/char_configs");
NT_LoadConfig();
NTSI_LoadNIPFiles("NTBot/item_configs");
NTA_Initialize();
NTTMGR_TownManager();


NTC_Delay( 2000 );
NT_Shoping_OverHead( "Now begin shoping..." );

// shoping
NT_Shoping();

// over.
NT_Shoping_Msg( "SCRIPT_END" );
}

function NT_Shoping()
{
var npcName = new Array( "akara", "charsi", "gheed", /* act1 */
"drognan", "fara", "elzix", /* act2 */
"ormus", "hratli", "asheara", /* act3 */
"jamella", "halbu" ); /* act4 */
// "anya", "larzuk", "malah" ); /* act5 */
if( !is_D2C ){ // d2x, need add act5 npc name
npcName.push( "anya" );
npcName.push( "larzuk" );
npcName.push( "malah" );
}

var npcID = [NTC_NPC_ID_AKARA, NTC_NPC_ID_CHARSI, NTC_NPC_ID_GHEED,
NTC_NPC_ID_DROGNAN, NTC_NPC_ID_FARA, NTC_NPC_ID_ELZIX,
NTC_NPC_ID_ORMUS, NTC_NPC_ID_HRATLI, NTC_NPC_ID_ASHEARA,
NTC_NPC_ID_JAMELLA, NTC_NPC_ID_HALBU,
NTC_NPC_ID_ANYA_TOWN, NTC_NPC_ID_LARZUK, NTC_NPC_ID_MALAH];

var j;
var num;
var npc;
var npcCount;
var shopItems;
var shopRush = 0;
var buyItems = new Array();
var showItems = new Array();


if( shop_npcNumber.length <= 0 ){
NT_Shoping_Msg( "have not npc list for shoping, plz check it!" );
return;
}

for( ; ; ){
num = 0;
npcCount = shop_npcNumber.length;
do{
if( shopRush++ > 30 ){
RunGC();
shopRush = 0;
}

if( NTTMGR_CheckScrolls( 1 ) < 4 )
NTTMGR_TownManager();

if( !NT_Shoping_CheckACT( shop_npcNumber[num] ) ){
NT_Shoping_Msg( "NT_Shoping_CheckACT()", 1 );
break;
}

if( !NTTM_TownMove( npcName[shop_npcNumber[num] - 1] ) ){
NT_Shoping_Msg( "NTTM_TownMove()", 2 );
break;
}

npc = NTC_FindUnit( NTC_UNIT_NPC, npcID[shop_npcNumber[num] - 1], 2 );
if( npc ){
if( !NTT_DoInteract( npc ) ){
NT_Shoping_Msg( "NTT_DoInteract()", 3 );
break;
}

if( !NTT_DoTrade( npc ) ){
NT_Shoping_CancelMenu();
NT_Shoping_Msg( "!NTT_DoTrade()", 4 );
break;
}

shopItems = npc.GetItems();
if( shopItems ){
for( j = 0; j < shopItems.length; ++j ){
if( shop_ignoreList.indexOf( shopItems[j] ) == -1 ){
if( NTIPCheckItem( shopItems[j] ) == 1 ){
buyItems.push( shopItems[j] );
var mark = new markItems( shopItems[j].quality, shopItems[j].name, shopItems[j].itemdesc );
showItems.push( mark );
}
}
}
} // end if(shopItems)

if( buyItems.length > 0 ){
for( j = 0; j < buyItems.length; ++j ){
if( buyItems[j].GetItemCost( 0, npcID[shop_npcNumber[num] - 1] ) > NTC_MyGold() ){
NT_Shoping_CancelMenu();
NT_Shoping_Loop( "have not money buy an item now." );
}
if( NTT_CheckSpace( buyItems[j].xsize, buyItems[j].ysize ) ){
if( !NTT_ShopItem( buyItems[j], npc, 2 ) ){
NT_Shoping_CancelMenu();
NT_Shoping_Loop( "have an item can not buy it." );
}
} // end if(NTT_Ch
else {
NT_Shoping_CancelMenu();
NTTMGR_VisitStash();

if( !NTT_CheckSpace( buyItems[j].xsize, buyItems[j].ysize ) ){
NT_Shoping_Loop( "have not space save items, and have an item can not buy it." );
}

if( !NTTM_TownMove( npcName[shop_npcNumber[num] - 1] ) ){
NT_Shoping_Loop( "have an item can not buy it." );
}

if( !NTT_DoInteract( npc ) ){
NT_Shoping_Loop( "have an item can not buy it." );
}

if( !NTT_DoTrade( npc ) ){
NT_Shoping_CancelMenu();
NT_Shoping_Loop( "have an item can not buy it." );
}

if( !NTT_ShopItem( buyItems[j], npc, 2 ) ){
NT_Shoping_CancelMenu();
NT_Shoping_Loop( "have an item can not buy it." );
}
} // end else
NTC_SendLogToOOG( NTC_LOG_ITEM, "Buy " + NTC_ItemQualityToMGRColor[showItems[j].quality] + "[" + showItems[j].name + "] " + ";" + showItems[j].itemdesc +
" [" + npcName[shop_npcNumber[num] - 1].charAt( 0 ).toUpperCase() +
npcName[shop_npcNumber[num] - 1].substring( 1 ) + "]" );

} // end for( j

buyItems.length = 0;
showItems.length = 0;
}
// 关闭菜单
NT_Shoping_CancelMenu();
} // end if(npc)

// 出城
if( !NT_Shoping_InOutTown(shop_npcNumber[num], num ) ){
NT_Shoping_Msg( "NT_Shoping_InOutTown()", 5 );
break;
}

// next npc
num++;

} while( --npcCount );

}
}

function NT_Shoping_InOutTown(num, count)
{
if( shop_npcNumber.length > 1 ){ // shop几个
var outTown = NT_Shoping_GoNextNpc(num, count); // 看看要不要出城,因为要刷新npc必须在该act出城..
if( !outTown ) // 不用。
return true;
}

if( num == 12 && !anyaGoWp ){ // anya go red tp
if( !NTTM_TownMove( "portal" ) ){
NT_Shoping_Msg( "NTTM_TownMove()", 6 );
return false;
}
if( !NT_Shoping_UsePortal( "Portal", 121 ) ){
NT_Shoping_Msg( "NT_Shoping_UsePortal()", 7 );
return false;
}

// kill再生尸
if( autoClear ){
killUndear = true;
NTP_DoPrecast();
// 有“吸星大法”和TP的话,先吸掉一些......
if( NTC_GetSkillLevel( 124 ) && NTC_GetSkillLevel( 54 ) ){
if( !NTM_MoveTo( me.areaid, 10069, 13293 ) )
return false;
NTC_PutSkill( 124, NTC_HAND_RIGHT );
NTC_PingDelay( 2000 );

if( !NTM_MoveTo( me.areaid, me.x - 15, me.y - 15 ) )
return false;
} // end if( NTC_Ch

if( NT_Shoping_CheckUndear( 20 ) ){
if( NTA_ClearPosition( 20 ) )
NTSI_PickItems();
if( NTC_GetSkillLevel( 124 ) && NT_Shoping_CheckCorpses( 8 ) ){
NTC_PutSkill( 124, NTC_HAND_RIGHT );
NTC_PingDelay( 2000 );
}
NTC_PutSkill( 115, NTC_HAND_RIGHT );
}

if( !NTM_MoveTo( me.areaid, anyaTPX, anyaTPY ) )
return false;

autoClear = false;
}
// 门口有怪的话,必须杀光
if( killUndear && NT_Shoping_CheckUndear( 20 ) ){
if( NTA_ClearPosition( 20 ) )
NTSI_PickItems();
if( NTC_GetSkillLevel( 124 ) && NT_Shoping_CheckCorpses( 8 ) ){
NTC_PutSkill( 124, NTC_HAND_RIGHT );
NTC_PingDelay( 2000 );
}
if( !NTM_MoveTo( me.areaid, anyaTPX, anyaTPY ) )
return false;
NTC_PutSkill( 115, NTC_HAND_RIGHT );
}
// 走人回act5 town
if( !NT_Shoping_UsePortal( "Portal", 109 ) ){
NT_Shoping_Msg( "NT_Shoping_UsePortal()", 8 );
return NT_Shoping_CheckACT();
}
} else {
var ok = false;
if( !NTTM_TownMove( "waypoint" ) ){
NT_Shoping_Msg( "NTTM_TownMove()", 9 );
return false;
}
switch( me.act ){
case 1 :
if( !NT_Shoping_TakeWaypoint( 35 ) )
return false;
ok = NT_Shoping_TakeWaypoint( 1 );
break;
case 2 :
if( !NT_Shoping_TakeWaypoint( 48 ) ){
return false;
}
ok = NT_Shoping_TakeWaypoint( 40 );
break;
case 3 :
if( !NT_Shoping_TakeWaypoint( 101 ) )
return false;
ok = NT_Shoping_TakeWaypoint( 75 );
break;
case 4 :
if( !NT_Shoping_TakeWaypoint( 107 ) )
return false;
ok = NT_Shoping_TakeWaypoint( 103 );
break;
case 5 :
if( !NT_Shoping_TakeWaypoint( 129 ) )
return false;
ok = NT_Shoping_TakeWaypoint( 109 );
break;
}
if( !ok ){ // give a chance do it again..
return NT_Shoping_CheckACT();
}
}
return true;
}

function NT_Shoping_CheckMonster( target )
{
return ( target.hp > 0 && target.mode != 0 && target.mode != 12 && GetDistance( me, target ) != -1 );
}


function NT_Shoping_CheckCorpses( range )
{
var undear = NTC_FindUnit( NTC_UNIT_MONSTER, 438, 2 );
if( undear ){
do{
if( !NT_Shoping_CheckMonster( undear ) && GetDistance( me, undear ) < range )
return true;
} while( undear.GetNext() );
}
return false;
}

function NT_Shoping_CheckUndear( range )
{
var undear = NTC_FindUnit( NTC_UNIT_MONSTER, 438, 2 );
if( undear ){
do{
if( GetDistance( me, undear ) < range )
return true;
} while( undear.GetNext() );
}
return false;
}

function NT_Shoping_Loop( str )
{
var hi = "NTShopbot.ntj : " + str;
NTC_SendLogToOOG( hi );
var tempX = me.x;
var tempY = me.y;
for( ; ; ){
for( var i = 0; i < 20; ++i ){
NT_Shoping_OverHead( str );

var xx = Random( -3, 3 );
var yy = Random( -3, 3 );

NTC_DoClick( NTC_CLICK_LDOWN, NTC_SHIFT_NONE, xx, yy );
NTC_Delay(500);

NTC_Delay( 3000 );

NTC_DoClick( NTC_CLICK_LDOWN, NTC_SHIFT_NONE, tempX, tempY );
NTC_Delay(500);
}
}
}

function NT_Shoping_Msg( str, em )
{
errorGoQuitGame ? NTC_SendMsgToScript( "NTBotGame.ntj", str ) :
( NT_Shoping_CheckError( em ) ? NTC_SendMsgToScript( "NTBotGame.ntj", str ) :
NTC_SendLogToOOG( NTC_LOG_COMMON, "ÿE00000" + str ) );
}

function NT_Shoping_CheckError( em )
{
if( errorMode == em ){
sameErrorCount++;
if( sameErrorCount >= 5 )
return true;
} else {
errorMode = em;
sameErrorCount = 0;
}
if( em == 3 ){ // maybe mouse lock
// don't know how to fix now....
}
return false;
}

function NT_Shoping_CheckACT(npcNum)
{
var townid = [1,40,75,103,109];
if( !NTC_InTown() ){
if( !NT_Shoping_MakeTP( townid[me.act-1] ) )
return false;
}
if( arguments.length < 1 )
return true;

var act = NT_Shoping_CheckNPC( npcNum );
if( act == 0 )
return false;

if( act != me.act ){
if( !NTTM_TownMove( "waypoint" ) )
return false;
if( !NT_Shoping_TakeWaypoint( townid[act-1] ) )
return false;
}
return true;
}


function NT_Shoping_GoNextNpc(npcNum, count)
{
var cur = NT_Shoping_CheckNPC(npcNum);
var next = NT_Shoping_CheckNPC(shop_npcNumber[count+1]);
return ( next == cur ? false : true ); // 相等就不用出城

}

function NT_Shoping_CheckNPC( npcNum )
{
if( is_D2C && npcNum > 11 )
return 0;

switch( npcNum ){
case 1 :
case 2 :
case 3 :
return 1;
case 4 :
case 5 :
case 6 :
return 2;
case 7 :
case 8 :
case 9 :
return 3;
case 10:
case 11:
return 4;
case 12:
case 13:
case 14:
return 5;
}
return 0;
}

function NT_Shoping_OverHead( str )
{
Say( "!" + str );
NTC_Delay( 200 );
}

// 函数关闭打开的菜单
function NT_Shoping_CancelMenu()
{
var i;
while (GetUIState(0x01) ||
GetUIState(0x08) ||
GetUIState(0x0C) ||
GetUIState(0x17) ||
GetUIState(0x19) ||
GetUIState(0x1A) ||
GetUIState(0x24)){
for( i = 0; i < 40; ++i ){
if( ( i % 20 ) == 0 )
me.Cancel(1);

NTC_Delay( 200 );

if( !GetUIState(0x01) &&
!GetUIState(0x08) &&
!GetUIState(0x0C) &&
!GetUIState(0x17) &&
!GetUIState(0x19) &&
!GetUIState(0x1A) &&
!GetUIState(0x24)){
NTC_PingDelay(500);
break;
}
}
}
NTC_PingDelay( 500 );
}

function markItems( quality, name, itemdesc )
{
this.quality = quality;
this.name = name;
this.itemdesc = itemdesc;
}


function NT_Shoping_TakeWaypoint( areaid )
{
var _unit;
if( me.areaid == areaid )
return true;
_unit = NTM_GetWaypointInt();
if( !_unit )
return false;
if( NTC_InTown() )
me.Cancel( 1 );
for( var i = 0 ; i < 20 ; ++i ){
if( ( i % 10 ) == 0 ){
NTC_DoClick( NTC_CLICK_LDOWN, NTC_SHIFT_NONE, _unit );
}
NTC_Delay(200);
if( GetUIState( 0x14 ) ){
if( me.TakeWaypoint( areaid ) ){
NTC_PingDelay( NTConfig_AreaDelay );
return true;
}
break;
}
}

return false;
}

function NT_Shoping_UsePortal( how, dest, ownername, portal )
{
if( me.areaid == dest )
return true;
if( NTC_InTown() )
me.Cancel( 1 );
if( NT_Shoping_ChangeAreaInt( how, dest, ownername, portal ) ){
NTC_PingDelay( NTConfig_AreaDelay );
return true;
}
return false;
}

function NT_Shoping_ChangeAreaInt( how, dest, ownername, myportal )
{
var _portal;
var _playerportal = false;
var _prearea;

if( how == "BluePortal" ){
if( !ownername )
ownername = me.name;
_playerportal = true;
}

if( arguments.length > 3 && myportal )
_portal = myportal;
else {
_portal = NTM_FindCorrectPortalInt( _playerportal, ownername );
if( _portal < 0 )
_portal = NTM_FindPortalAreaInt( dest );
if( _portal == -1 )
return false;
}
if( !_portal )
return false;
_prearea = me.areaid;

for( var i = 0 ; i < 20 ; ++i ){
if( ( i % 5 ) == 0 ){
// if( i == 10 )
// NTM_MoveTo( _prearea, me.x + 6, me.y + 6 );
NTC_DoClick(NTC_CLICK_LDOWN, NTC_SHIFT_NONE, _portal);
}
NTC_Delay(200);
if( me.areaid != _prearea )
break;
}
while( me.areaid == 0 )
NTC_Delay(200);
return ( me.areaid == dest );
}

function NT_Shoping_MakeTP(dest)
{
var _usetp = true;
var _portal;
var _portalname;

if( NTC_InTown() )
return true;
if( arguments.length < 1 )
_usetp = false;
if( !NTC_CastSkill( 220, NTC_HAND_RIGHT ) )
return false;
NTC_PingDelay( 500 );

_portalname = GetLocaleString( 3226 );
for( var i = 0 ; i <= 2 ; ++i ){
_portal = NTC_FindUnit( NTC_UNIT_OBJECT, _portalname );
if( _portal ){
do{
if( _portal.mode == 2 && NTC_CheckOwner( _portal ) ){
if( _usetp )
return NT_Shoping_UsePortal( "BluePortal", dest, me.name, _portal );

return true;
}
} while( _portal.GetNext() );
}
if( i < 2 )
NTC_Delay(500);
}
return false;
}

2.) In D2NT\scripts\NTBot\item_configs\shoping eine datei namens shoping.nip mit dem kopierten Inhalt meiner bisherigen bluebird.nip erstellt.

3.) Den restlichen code in meine charconfig eingefügt die nun so aussieht
Spoiler:
var NTConfig_UseRedemptionHP;
var NTConfig_UseRedemptionMP;



//================================================== ================================================== =====
// base shop d2x £¨if need shop d2c, set this true £©
var is_D2C = false;

// shop npc number£¬can shop multi npc, just need push npc number uself.
var shop_npcNumber = new Array();
shop_npcNumber.push( 1 );
shop_npcNumber.push( 2 );
shop_npcNumber.push( 3 );
shop_npcNumber.push( 4 );
shop_npcNumber.push( 5 );
shop_npcNumber.push( 6 );
shop_npcNumber.push( 7 );
shop_npcNumber.push( 8 );
shop_npcNumber.push( 9 );
shop_npcNumber.push( 10 );
shop_npcNumber.push( 11 );
shop_npcNumber.push( 12 );
shop_npcNumber.push( 13 );
shop_npcNumber.push( 14 );

// Act 1: Akara(1), Charsi(2), Gheed(3)
// Act 2: Drognan(4), Fara(5), Elzix(6)
// Act 3: Ormus(7), Hratli(8), Asheara(9)
// Act 4: Jamella(10), Halbu(11)
// Act 5: Anya(12), Larzuk(13), Malah(14)

// auto kill anya red tp undead
var autoClear = true;
// shop anya go wp, if u want go wp, set it to true£¬base do not go wp
var anyaGoWp = false;

// get error then £º"quit game" or "come on"£¬base is "come on"
var errorGoQuitGame = false;
//================================================== ================================================== ======









function NT_LoadConfig()
{


NTConfig_Script.push("NTShopbot.ntj");

//------------------------------------------------------------------------------
// Bosseinstellungen
//------------------------------------------------------------------------------
//
//..::AKT 1::..
//-------------
//NTConfig_Script.push("NTMausoleum.ntj"); NTConfig_KillBloodRaven = true;
//NTConfig_Script.push("NTTristram.ntj"); NTConfig_KillRakanishu = true;
//NTConfig_Script.push("NTKuhlevel.ntj"); NTConfig_KillRakanishu = true; NTConfig_ClearTristram = false; NTConfig_MooMooFarm = true;
NTConfig_Script.push("NTGraefin.ntj");
//NTConfig_Script.push("NTBaumkopf.ntj");
//NTConfig_Script.push("NTPit.ntj"); NTConfig_ClearPitLevel1 = 2; // 0 : nicht clearen, 1 : nur den Weg clearen, 2 : alles clearen
//NTConfig_Script.push("NTDas Loch.ntj"); NTConfig_ClearHoleLevel1 = 1; // 0 : nicht clearen, 1 : nur den Weg clearen, 2 : alles clearen
NTConfig_Script.push("NTAndariel.ntj");
//
//
//..::AKT 2::..
//-------------
//NTConfig_Script.push("NTRadament.ntj");
//NTConfig_Script.push("NTKaltwurm der Graeber.ntj");
//NTConfig_Script.push("NTAlte Tunnels.ntj");
// NTConfig_Script.push("NTSummoner.ntj"); NTConfig_KillFireEye = false;
NTConfig_Script.push("NTDuriel.ntj");
//
//
//..::AKT 3::..
//-------------
//NTConfig_Script.push("NTKanalisation Akt3.ntj"); NTConfig_ClearA3SewersLevel1 = 1; // 0 : don't clear, 1 : clear path only, 2 : clear all
NTConfig_Script.push("NTKurastTravel.ntj");
NTConfig_Script.push("NTTravincal.ntj");
NTConfig_Script.push("NTMephisto.ntj");
//
//
//..::AKT 4::..
//-------------
NTConfig_Script.push("NTIzual.ntj");
NTConfig_Script.push("NTDer Hoellenschmied.ntj");
//NTConfig_Script.push("NTDiablo.ntj");
NTConfig_Script.push("NTFastDiablo.ntj");
//
//
//..::AKT 5::..
//-------------
//NTConfig_Script.push("NTPindleskinWP.ntj");
NTConfig_Script.push("NTPindleskin.ntj"); NTConfig_NihlathakExtension = true;
//NTConfig_Script.push("NTNihlathak.ntj"); NTConfig_PindleskinExtension = false;
//NTConfig_Script.push("NTEldritch.ntj"); NTConfig_ShenkExtension = true; NTConfig_DacFarren = false;
//NTConfig_Script.push("NTThreshSocket.ntj");
//NTConfig_Script.push("NTFrostfluss.ntj"); NTConfig_ClearFrozenRiver = false;
//NTConfig_Script.push("NTGletscherweg.ntj"); NTConfig_ClearGlacialTrail = false;
//NTConfig_Script.push("NTEiskeller.ntj"); NTConfig_ClearIcyCellar = false;
NTConfig_Script.push("NTBaal.ntj"); NTConfig_KillBaal = true;



//------------------------------------------------------------------------------
// Rush - Bot
//------------------------------------------------------------------------------

//NTConfig_Script.push("NTRushAct1.ntj");
//NTConfig_Script.push("NTRushAct2.ntj"); NTConfig_Cube = true; NTConfig_Staff = true; NTConfig_Amu = true; NTConfig_Summoner = true;
//NTConfig_Script.push("NTRushAct3.ntj");
//NTConfig_Script.push("NTRushAct4.ntj"); NTConfig_ClearCS = false;
//NTConfig_Script.push("NTRushAct5.ntj"); NTConfig_Anya = true; NTConfig_Ancients = true;



//------------------------------------------------------------------------------
// Baal-Leech-Bot
//------------------------------------------------------------------------------

//NTConfig_Script.push("NTBaalLeech.ntj");



//------------------------------------------------------------------------------
// Positionen anzeigen
//------------------------------------------------------------------------------


//NTConfig_Script.push("NTposition.ntj");



//------------------------------------------------------------------------------
// Zeiteinstellungen
//------------------------------------------------------------------------------
me.maxgametime = 1800000; // Maximale Spielzeit für einen Run (0 = unendlich)
NTConfig_StartDelay = 500; // Zeit in Millisekunden vor dem Start
NTConfig_AreaDelay = 500; // Zeit in Millisekunden vor dem Gebietswechsel
NTConfig_SnagDelay = 1; // Zeit in Millisekunden vor dem Einsammeln von Items

//------------------------------------------------------------------------------
// Life / Mana - Einstellungen
//------------------------------------------------------------------------------

NTConfig_SkipHealLife = 90; // Unterhalb dieser % seiner Leben geht der Bot zum Heiler
NTConfig_SkipHealMana = 70; // Unterhalb dieser % seiner Mana geht der Bot zum Heiler
NTConfig_SkipHealCurses = true;// false = Flüche heilen : true = Flüche nicht heilen
NTConfig_UseMerc = true; // true = Söldner verwenden : false = keinen Söldner verwenden
NTConfig_ResetWeapon = false; // Waffe vom Söldner kurz rausnehmen und wieder reinlegen (Aura)

NTConfig_LifeThresh = 67; // Unterhalb dieser % seiner Leben trinkt der Bot einen normalen Heiltrank
NTConfig_LifeRejuvThresh = 37; // Unterhalb dieser % seiner Leben trinkt der Bot einen lila Trank
NTConfig_ManaThresh = 30; // Unterhalb dieser % seiner Mana trinkt der Bot einen normalen Manatrank
NTConfig_ManaRejuvThresh = 0; // Unterhalb dieser % seiner Mana trinkt der Bot einen lila Trank
NTConfig_LifeChicken = 20; // Unterhalb dieser % seiner Leben verlässt der Bot das Spiel
NTConfig_ManaChicken = 0; // Unterhalb dieser % seiner Mana verlässt der Bot das Spiel

NTConfig_MercLifeThresh = 80; // Unterhalb dieser % des Söldnerlebens gibt der Bot dem Söldner einen Heiltrank
NTConfig_MercRejuvThresh = 30; // Unterhalb dieser % des Söldnerlebens gibt der Bot dem Söldner einen lila Trank
NTConfig_MercChicken = 0; // Unterhalb dieser % des Söldnerlebens verlässt der Bot das Spiel

//------------------------------------------------------------------------------
// Inventar - Einstellungen
//------------------------------------------------------------------------------

NTConfig_FreeSpace = 7; // Anzahl der Kästchen im Inventar die mindestens frei sein müssen. Sind weniger Kästchen frei, geht der Bot zur Truhe.

// Die Zahlen stellen dein Inventar dar. Jede Zahl ist ein Kästchen. 0 = Der bot fässt diese items niemals an : 1 = Der Bot arbeitet mit diesen Feldern.
NTConfig_Columns[0] = [1,1,1,1,1,0,0,0,0,0];
NTConfig_Columns[1] = [1,1,1,1,1,0,0,0,0,0];
NTConfig_Columns[2] = [1,1,1,1,1,0,0,0,0,0];
NTConfig_Columns[3] = [1,1,1,1,1,0,0,0,0,0];

NTConfig_MinGoldToStash = 100000; // Maximale Goldsumme die der Bot bei sich tragen darf ohne zur Truhe zu gehen.

//------------------------------------------------------------------------------
// Gürtel - Einstellungen
//------------------------------------------------------------------------------
//
// Tragt hier ein, welche tränke in welcher Reihe des Gürtels verwendet werden sollen.
// Mögliche Arten : "hp" = Heiltrank : "mp" = Manatrank : "rv" = lila Trank.
// Versucht die Spalten zu sortieren. Z.B: Heiltrank, Manatrank, Heiltrank, Manatrank ist eine beschissene Einstellung.
// Wenn ihr lila Tränke verwendet, dann macht sie hinten in den Gürtel NICHT vorne.
// Sie MÜSSEN hinten im Gürtel sein
// Ganz coole leute schreiben rv in jede Spalte o_O
//----------------------------------------------------------------------------------------------

NTConfig_BeltColType[0] = "hp";
NTConfig_BeltColType[1] = "rv";
NTConfig_BeltColType[2] = "rv";
NTConfig_BeltColType[3] = "rv";

//------------------------------------------------------------------------------
// PickIt - Einstellungen
//------------------------------------------------------------------------------
//
// Hier könnt ihr einstellen welches Pickit verwendet wird.
// Es darf nur ein Modus ausgewählt sein!!! (normal / advance / extreme)
//-----------------------------------------------------------------------------------
//
//NTConfig_NIPFilePath.push("normal/normal.nip");
//NTConfig_NIPFilePath.push("normal/magic_rare.nip");
//NTConfig_NIPFilePath.push("normal/set.nip");
//NTConfig_NIPFilePath.push("normal/unique.nip");
//NTConfig_NIPFilePath.push("normal/craft.nip");

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

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

NTConfig_NIPFilePath.push("Bluebird.nip");

NTConfig_NIPFilePath.push("shoping/shoping.nip");

NTConfig_SnagRange = 50; // Radius in welchem der Bot überprüft ob etwas gedropt ist. 40 scheint ganz OK zu sein. Wenn ihr sehr häufig EBENEN farmt darfs denke ich auch 50 sein.

//------------------------------------------------------------------------------
// Cubing - Einstellungen
//------------------------------------------------------------------------------
NTConfig_Cubing = true; // Lasst das auf false

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

//NTConfig_CubingItem.push([NTCU_MAGIC, 420]); // Magic Tiara
//NTConfig_CubingItem.push([NTCU_MAGIC, 421]); // Magic Diadem

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

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

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

//stürzt ab //NTConfig_CubingItem.push([NTCU_CRAFT_CASTER_AMULET, 520]); // Craft Amulet

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

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

//***** Include the following, Primary item must be setted in item_configs folder *****

//NTConfig_CubingItem.push([NTCU_SOCKET_BODYARMOR, 442]); // Socket Sacred Armor

//NTConfig_CubingItem.push([NTCU_SOCKET_WEAPON, 255]); // Socket Thresher
//NTConfig_CubingItem.push([NTCU_SOCKET_WEAPON, 256]); // Socket Cryptic Axe
//NTConfig_CubingItem.push([NTCU_SOCKET_WEAPON, 257]); // Socket Great Poleaxe
//NTConfig_CubingItem.push([NTCU_SOCKET_WEAPON, 258]); // Socket Giant Thresher

//NTConfig_CubingItem.push([NTCU_UPGRADE_E_UNIQUE_WEAPON, 295]); // Titan's Revenge : Exceptional -> Elite

//NTConfig_CubingItem.push([NTCU_UPGRADE_N_UNIQUE_ARMOR, 337]); // Magefist : Normal -> Exceptional
//NTConfig_CubingItem.push([NTCU_UPGRADE_E_UNIQUE_ARMOR, 360]); // Skin of the Vipermagi : Exceptional -> Elite
//NTConfig_CubingItem.push([NTCU_UPGRADE_E_UNIQUE_ARMOR, 383]); // Magefist or Lava Gout : Exceptional -> Elite
//NTConfig_CubingItem.push([NTCU_UPGRADE_E_UNIQUE_ARMOR, 389]); // Gore Rider : Exceptional -> Elite
//NTConfig_CubingItem.push([NTCU_UPGRADE_E_UNIQUE_ARMOR, 477]); // Arreat's Face : Exceptional -> Elite
//NTConfig_CubingItem.push([NTCU_UPGRADE_E_UNIQUE_ARMOR, 481]); // Herald Of Zakarum : Exceptional -> Elite

//------------------------------------------------------------------------------
// Gamble / Glücksspiel - Einstellungen
//------------------------------------------------------------------------------
NTConfig_Gamble = true; // true = Glücksspiel machen : false = kein Glücksspiel
NTConfig_GambleStartGold = 2000000; // Wenn schon soviel Gold da ist beginnt der Bot auf mit dem Glücksspiel.
NTConfig_GambleStopGold = 800000; // Wenn nurnoch soviel Gold da ist hört der Bot auf mit dem Glücksspiel.

NTConfig_GambleItem.push(520); // Amulette
NTConfig_GambleItem.push(522); // Ringe
NTConfig_GambleItem.push(418); // Reifen
NTConfig_GambleItem.push(419); // Coronets
NTConfig_GambleItem.push(334); // Lederhandschuhe
NTConfig_GambleItem.push(335); // Schwere Handschuhe
NTConfig_GambleItem.push(336); // Lettenhandschuhe
NTConfig_GambleItem.push(337); // Leichte Handschuhe
NTConfig_GambleItem.push(338); // Handschuhe?

//------------------------------------------------------------------------------
// Ein paar allgemeine Einstellungen
//------------------------------------------------------------------------------
NTConfig_PublicMode = true; // Auf true setzen, wenn du mit diesem Bot öffentliche Spiele / public games machen willst
NTConfig_CheckCloneDiablo = true; // Auf true setzten, wenn du in dem Game warten willst, wenn die Nachricht "Diablo Walks the Earth" erscheint.
NTConfig_OpenChest = true; // true = Truhen öffnen : false = Truhen zulassen
me.quitonhostile = false; // Auf true setzen, wenn du public Games machst und möchtest, dass der Bot das Spiel direkt verlässt, wenn Bot-Jäger auftauchen

//------------------------------------------------------------------------------
// Angriffs - Einstellungen
//------------------------------------------------------------------------------
NTConfig_AttackSkill[0] = 0; // Anfangsskill (wird nur EIN mal gecastet) 0 = keinen
NTConfig_AttackSkill[1] = 112; // Welcher Skill soll beim Angriff gegen Bosse aktiv sein? 0 = keiner
NTConfig_AttackSkill[2] = 113; // Welche Aura soll beim Angriff gegen Bosse aktiv sein? 0 = keine
NTConfig_AttackSkill[3] = 112; // Welcher Skill soll beim Angriff gegen andere Monster aktiv sein? 0 = keiner
NTConfig_AttackSkill[4] = 113; // Welche Aura soll beim Angriff gegen andere Monster aktiv sein? 0 = keine
NTConfig_AttackSkill[5] = 0; // Zweitskill, falls ein Monster immun gegen den Hauptskill ist 0 = keinen
NTConfig_AttackSkill[6] = 0; // Zweitaura.0 = keine (braucht man eigentlich nicht)
NTConfig_ClearPosition = false; // Auf true setzen, dann cleart der Bot die nahe Umgebung des Bosses.

NTConfig_UseRedemptionHP = 80; // Unterhalb dieser % seiner Leben setzt der Bot "Rücknahme" ein. 0 = ausgeschaltet
NTConfig_UseRedemptionMP = 60; // Unterhalb dieser % seiner Mana setzt der Bot "Rücknahme" ein. 0 = ausgeschaltet

//------------------------------------------------------------------------------
// Das hier einfach so lassen. Finger weg!
//------------------------------------------------------------------------------

// Check self safe in field (NOT in town). Set to 0 if you won't
// 0x01 : Potion, 0x02 : Poison, 0x04 : Amplify Damage, 0x08 : Weaken, 0x10 : Iron Maiden, 0x20 : Decrepify, 0x40 : Lower Resist
NTConfig_CheckSelfSafe = 0x04|0x40;
// Check merc's safe in field (NOT in town). Set to 0 if you won't
// 0x01 : Death, 0x02 : Poison, 0x04 : Amplify Damage, 0x08 : Weaken, 0x10 : Iron Maiden, 0x20 : Decrepify, 0x40 : Lower Resist
NTConfig_CheckMercSafe = 0x01|0x04|0x10|0x40;


}

4. Und was macht der gute nun. er geht ins spiel, schreibt, dass shoppen los geht und rennt los. er geht schön der reihe nach alle npc ab, kauft bei denen die heiltränke haben genau soviel tränke wie im tradefenster angezeigt werden und bei die anderen klickt er nur kurz an, macht nichts und geht weiter. irgendwann ist das inv mit heil und manatränken voll und dann kommt die entsprechende fehlermeldung: "have not space save items, and have an item ca not buy it".

danke schonmal fürs behilflich sein!

warum kauft der bei dir Heiltränke?
Hast du deine andere pickit nicht deaktiviert? Wobei das eig kein problem sein sollte, da der bot immer nur so viel tränke kauft wie er braucht.
Bei mir funktioniert der einwandfrei (bis auf das, dass er sau langsam is)


Das ist ganz normal, dass er nicht die einzelnen fenster durchgeht, da er alle auf einmal scannt

senfbert 05/18/2010 18:06

ja das weiß ich ja eben nicht warum er die heiltränke kauft :)
ich hab beide pickits drin, wobei die identisch sind. und bei mir ist er sogar sehr flott unterwegs, aber das hilft ja alles nix wenn er sich das inv mit tränken vollballert und dann nix mehr aufnehmen kann :(

deswegen hab ich hier ja extra alles so genau gepostet damit man da einen fehler hoffentlich finden kann!!

ifobi 05/18/2010 18:31

// ##### Potions #######################
[Name] == GreaterHealingPotion
[Name] == SuperHealingPotion
[Name] == GreaterManaPotion
[Name] == SuperManaPotion
[Name] == RejuvenationPotion
[Name] == FullRejuvenationPotion



aktivier nur deine shopping pickit, und entferne darin diese Einträge. ( // davor sollte auch funktionieren)

gna 05/18/2010 18:42

der is ja soo viel geiler als redvex danke dir (:

Inventar voll und er wartet sobald er wieder was kaufen kann wohahahhaha
i like

/E ne gescheite nip wäre noch toll!

evtl setz ich mich nacher auch einfach selber rann

--> jeweler sacred armor of defiance was will man denn damit ?
hab das nichtmal ansatzweise in pickit drin und kauft sowas trozdem :(

senfbert 05/18/2010 18:46

ah danke soweit schon mal!
 
daran lag es!

also er dreht jetzt tapfer sein runde, quatscht jeden an und geht dann wieder weiter. kontrollieren kann ich das ja nicht ob er alle reiter im tradefenster durchschaut, aber wird schon so sein?

senfbert 05/18/2010 19:55

was mich aber eher noch interessieren würde... kann man nicht einstellen, dass er seine runde dreht, dann ganz normal nen run macht und dann ab in ein neues game?? nicht, dass ihm tatsächlich mal das geld ausgeht oder so n mist, mal abgesehen davon ist es sonst ja auch eintönig :)

gna 05/18/2010 20:05

wenn ihm das geld ausgeht und was kaufen kann bleibter stehn und spamt dasn mit !no money to shop and item to shop oder so

das macht ihn 10x besser als redvex ^^

imho könntest auch ne max gametime von 20 mins machen paar runs vor den shopbotschreiben dann dürfts auch gen

senfbert 05/18/2010 20:23

stimmt, guter ansatz!
also den run macht er jetzt auch so wie ich es möchte, allerdings scheißt er auf die maxgametime und läuft einfach tapfer weiter .... die ist doch in millisekunden angegeben, oder?

also

me.maxgametime = 60000

= nach einer minute müsste er n neues game anfangen!? (nur zum testen)

toya_ger 05/18/2010 20:26

max game time = sec nächst mal sufu benutzen oder anleitung von BB lesen


edit :hier noch ne pickit

Code:

//----- Handschuhe -----
[Type] == Gloves && [Quality] == magic # [IAS] == 20 && [JavelinandSpearSkillTab] == 3
[Name] == VampireboneGloves && [Quality] == magic # [IAS] == 20 && [JavelinandSpearSkillTab] == 3
[Name] == Vambraces && [Quality] == magic # [IAS] == 20 && [JavelinandSpearSkillTab] == 3
[Name] == CrusaderGauntlets && [Quality] == magic # [IAS] == 20 && [JavelinandSpearSkillTab] == 3
[Name] == Vampirebone Gloves && [Quality] == magic # [IAS] == 20 && [JavelinandSpearSkillTab] == 3
[Name] == Vambraces && [Quality] == magic # [IAS] == 20 && [JavelinandSpearSkillTab] == 3
[Name] == CrusaderGauntlets && [Quality] == magic # [IAS] == 20 && [JavelinandSpearSkillTab] == 3

//----- Rüstungen -----
[Type] == Armor && [Quality] == Magic && ([Class] == Normal || [Class] == Exceptional) # [MaxHP] <= 80 && [MaxHP] >= 60 && [Sockets] == 3
[Type] == Armor && [Quality] == Magic && [Flag] != ethereal # [Sockets] == 4 && ([MaxHP] >= 60 || [FHR] == 24)

//----- Schilde ----
[Type] == Shield && [Class] == elite && [Quality] == Magic && [Flag] != ethereal # [Sockets] >= 3 && [FBR] == 30
//[Type] == Shield && [Quality] == Magic && [Flag] != ethereal # [Sockets] >= 3 && [FBR] == 30
[Type] == Shield && [Quality] == Magic && [Flag] != ethereal # [Sockets] >= 3 && [MaxHP] >= 60

//----- Assasinen Claws -----
[Type] == HandToHand && [Quality] == Magic # [AssassinSkills] == 2 && [SkillLightningSentry] == 3
[Type] == HandToHand && [Quality] == Magic # [TrapsSkillTab] == 3 && [SkillLightningSentry] == 3

[Type] == HandToHand && [Quality] == Magic # [AssassinSkills] == 2 && [SkillVenom] == 3
[Type] == HandToHand && [Quality] == Magic # [ShadowDisciplinesSkillTab] == 3 && [SkillVenom] == 3

[Type] == HandToHand && [Quality] == Magic # [AssassinSkills] == 2 && [SkillFade] == 3
[Type] == HandToHand && [Quality] == Magic # [ShadowDisciplinesSkillTab] == 3 && [SkillFade] == 3

[Type] == HandToHand && [Quality] == Magic # [AssassinSkills] == 2 && [SkillShadowMaster] == 3 && [SkillWeaponBlock] == 3
[Type] == HandToHand && [Quality] == Magic # [ShadowDisciplinesSkillTab] == 3 && [SkillShadowMaster] == 3 && [SkillWeaponBlock] == 3


Ortus2 05/18/2010 20:49

welche händler klappert ihr ab?
kleiner tipp macht gamble aus -.-

spike0 05/18/2010 21:11

wie schlägt sich der bot nun in vergleich zu redex, was die geschwindigkeit angeht? klingt alles voll toll, aber wenn er weniger, als 15mal/minute anya besuchen kann (so oft macht er's bei mir mit redvex), dann lohnt es sich einfach nicht. richtig tolle items shoppt man nach xxx.. k runs, und da rechnet sich der schnellere bot einfach besser ;)

Ortus2 05/18/2010 21:14

würde ca ein händler alle 15sec Oo
aber dafür kackt der bot net alle halbe stunde ab

spike0 05/18/2010 21:23

240 pro stunde? -.-
da bleib ich lieber bei 900 pro stunde - ich hatte bis jetzt nicht wirklich probleme mit dem redvex bot. es ist bis jetzt nie abgestürzt und hat mir schon ein paar schöne sachen geholt ^^

schade eigentlich, sonst wäre das ding hier ja ziemlich perfekt :/

toya_ger 05/18/2010 22:37

anya alle 3 sec also 20x pro min (mit rv fast mod frw 255)

tip: -15gheeds und den bogen -15preis

vorteile is ganz klar das er stash wenn mal 1 in std game wechselt

FoGzone 05/19/2010 00:47

also so wie es gerade aussieht, bekomme ich demnächst ein komplett neues script, was eine mischung aus verschiedenen scripten ist.

Vorteile:
Schnelligkeit von RedVex
Created von alleine games
...

ein Freund schreibt es mir gerade =)

senfbert 05/19/2010 01:00

ich hab des jetzige zwar zum laufen gebracht, aber bin weiterhin auf neuerungen gespannt :)

Ortus2 05/19/2010 09:52

die erste nacht mit akara war umsonst :p

4ndi87 05/19/2010 13:18

Großes Dankeschön erstmal ! Cooler up !
Hat denn schon jemand was gutes damit gefunden ?! Wie groß sind die Chancen ?
Ich mache gerade nur Anya, macht das Sinn ? Charsie hat doch eigentlich viel mehr Items im Angebot.

toya_ger 05/19/2010 13:29

ich mache auch nur anya! anya geht wohl am schnellsten hat klauen gloves bo speere rüstungen schilde also alles was man so brauch

bo speere / weiße Necrostäbe(norm Drognan) bin ich grade am testen (mit farbe wegen style etc) poste ich dann noch

heute nacht habe ich gefunden 3 lp 3sox 60-80 life eine gt 2assa 3 ls

aber man kann auch 6 ls 40 ias + noch modes finden also kann schon sehr wertvoll werden
ob sich das alo für dich lohnt musst du selber endscheiden

edit: wenn ich noch was in der pickit vergessen habe bitte sagen ^^ das man da mal ne komplette hat

Lordy15 05/19/2010 13:38

so hab mal meine 4 sorcs eingestellt auf shopen^^......
Vorteil:
mehrere Bots
läuft stabiler

Nachteil:
langsamer als Redvex.....

irgendwie is mein redvex teil immer nach nen paar stunden abgekackt,
werd jetzt den shopbot mal arbeiten lassen und mal schauen was dabei rauskommt

10-12runs/pro Minute NTBot
15runs/pro min Redvex

edit:
nach 5min

3/20er gloves
4sox 70life armor

4ndi87 05/19/2010 14:31

Und shoppen soll er auch in Hell oder ???

@Toya, ich glaube übrigens, dass der 1. Rüstungstyp in deiner Pickit nichts wert ist. Korrigiere mich, wenn ich mich täusche, aber du suchst dabei nach 3 sox Rüstungen, dessen Life sich zwischen 60 und 80 befindet.

toya_ger 05/19/2010 14:35

low lvl(30) duele habe das schon etwas verfeinert jetzt kauft er nur noch LP/MP in dem bereich

Code:

//----- Helme -----
[Type] == helm && [Class] == elite && [Quality] >= magic # [Defense] >= 300 && [itemtohitpercentperlevel] >= 1
[Type] == helm && [Quality] == magic # ([MaxHp] >= 40 || [FHR] == 10) && [Sockets] == 3

//----- Handschuhe -----
[Type] == Gloves && [Quality] == magic # [IAS] == 20 && [JavelinandSpearSkillTab] == 3
[Name] == VampireboneGloves && [Quality] == magic # [IAS] == 20 && [JavelinandSpearSkillTab] == 3
[Name] == Vambraces && [Quality] == magic # [IAS] == 20 && [JavelinandSpearSkillTab] == 3
[Name] == CrusaderGauntlets && [Quality] == magic # [IAS] == 20 && [JavelinandSpearSkillTab] == 3
[Name] == Vampirebone Gloves && [Quality] == magic # [IAS] == 20 && [JavelinandSpearSkillTab] == 3
[Name] == Vambraces && [Quality] == magic # [IAS] == 20 && [JavelinandSpearSkillTab] == 3
[Name] == CrusaderGauntlets && [Quality] == magic # [IAS] == 20 && [JavelinandSpearSkillTab] == 3

//----- Rüstungen -----
[name] == ancientarmor && [quality] == magic # [sockets] == 4 && [maxhp] >= 90
//[name] == ancientarmor && [quality] == magic # [sockets] == 4 && [fhr] == 24
[name] == archonplate && [quality] == magic # [sockets] == 4 && [maxhp] >= 90
[name] == archonplate && [quality] == magic # [sockets] == 4 && [fhr] == 24
[name] == lightplate && [quality] == magic # [sockets] == 3 && [MaxHP] <= 80 && [MaxHP] >= 60 && [itemlevelreq] <= 30
[name] == mageplate && [quality] == magic # [sockets] == 3 && [MaxHP] <= 80 && [MaxHP] >= 60 && [itemlevelreq] <= 30

//----- Schilde ----
[Type] == Shield && [Class] == elite && [Quality] == Magic && [Flag] != ethereal # [Sockets] >= 3 && [FBR] == 30
//[Type] == Shield && [Quality] == Magic && [Flag] != ethereal # [Sockets] >= 3 && [FBR] == 30
[Type] == Shield && [Quality] == Magic && [Flag] != ethereal # [Sockets] >= 3 && [MaxHP] >= 60

//----- NecroStäbe -----
[Name] == BoneWand && [Quality] <= superior # [SkillBoneSpear] == 3 && [SkillLowerResist] >= 1
[Name] == BoneWand && [Quality] <= superior # [SkillBoneSpirit] == 3 && [SkillLowerResist] >= 1

[Name] == GrimWand && [Quality] <= superior # [SkillBoneSpear] == 3 && [SkillLowerResist] >= 1
[Name] == GrimWand && [Quality] <= superior # [SkillBoneSpirit] == 3 && [SkillLowerResist] >= 1

[Name] == BoneWand && [Quality] <= superior # [SkillBoneSpear] == 3 && [SkillRevive] >= 1
[Name] == BoneWand && [Quality] <= superior # [SkillBoneSpirit] == 3 && [SkillRevive] >= 1
[Name] == GrimWand && [Quality] <= superior # [SkillBoneSpear] == 3 && [SkillRevive] >= 1
[Name] == GrimWand && [Quality] <= superior # [SkillBoneSpirit] == 3 && [SkillRevive] >= 1

[Name] == BoneWand && [Quality] <= superior # [SkillBoneSpear] == 3 && [SkillClayGolem] >= 1
[Name] == BoneWand && [Quality] <= superior # [SkillBoneSpirit] == 3 && [SkillClayGolem] >= 1
[Name] == GrimWand && [Quality] <= superior # [SkillBoneSpear] == 3 && [SkillClayGolem] >= 1
[Name] == GrimWand && [Quality] <= superior # [SkillBoneSpirit] == 3 && [SkillClayGolem] >= 1

[Name] == BoneWand && [Quality] <= superior # [SkillBoneSpear] == 3 && [SkillDecrepify] >= 1
[Name] == BoneWand && [Quality] <= superior # [SkillBoneSpirit] == 3 && [SkillDecrepify] >= 1
[Name] == GrimWand && [Quality] <= superior # [SkillBoneSpear] == 3 && [SkillDecrepify] >= 1
[Name] == GrimWand && [Quality] <= superior # [SkillBoneSpirit] == 3 && [SkillDecrepify] >= 1

[Name] == BoneWand && [Quality] <= superior # [SkillBoneSpirit] == 3 && [SkillBoneSpear] >= 3
[Name] == GrimWand && [Quality] <= superior # [SkillBoneSpirit] == 3 && [SkillBoneSpear] >= 3

//----- SorcStäbe -----
[Name] == GnarledStaff && [Quality] <= superior # [SkillEnergyShield] == 3 && [SkillChillingArmor] >= 1
[Name] == Battle Staff && [Quality] <= superior # [SkillEnergyShield] == 3 && [SkillChillingArmor] >= 1

[Name] == GnarledStaff && [Quality] <= superior # [SkillEnergyShield] == 3 && [SkillEnchant] >= 1
[Name] == Battle Staff && [Quality] <= superior # [SkillEnergyShield] == 3 && [SkillEnchant] >= 1

[Name] == GnarledStaff && [Quality] <= superior # [SkillEnergyShield] == 3 && [SkillEnchant] >= 1
[Name] == Battle Staff && [Quality] <= superior # [SkillEnergyShield] == 3 && [SkillEnchant] >= 1

//----- Assasinen Claws -----
[Type] == HandToHand && [Quality] == Magic # [AssassinSkills] == 2 && [SkillLightningSentry] == 3
[Type] == HandToHand && [Quality] == Magic # [TrapsSkillTab] == 3 && [SkillLightningSentry] == 3

[Type] == HandToHand && [Quality] == Magic # [AssassinSkills] == 2 && [SkillVenom] == 3
[Type] == HandToHand && [Quality] == Magic # [ShadowDisciplinesSkillTab] == 3 && [SkillVenom] == 3

[Type] == HandToHand && [Quality] == Magic # [AssassinSkills] == 2 && [SkillFade] == 3
[Type] == HandToHand && [Quality] == Magic # [ShadowDisciplinesSkillTab] == 3 && [SkillFade] == 3

[Type] == HandToHand && [Quality] == Magic # [AssassinSkills] == 2 && [SkillShadowMaster] == 3 && [SkillWeaponBlock] == 3
[Type] == HandToHand && [Quality] == Magic # [ShadowDisciplinesSkillTab] == 3 && [SkillShadowMaster] == 3 && [SkillWeaponBlock] == 3

[Type] == HandToHand && [Quality] == Magic # [IAS] >= 20 && [AssassinSkills]+[TrapsSkillTab]+[SkillLightningSentry] >= 3
[Type] == HandToHand && [Quality] == Magic # [AssassinSkills]+[TrapsSkillTab]+[SkillLightningSentry] >= 5

[Type] == HandToHand && [Class] >= exceptional && [Quality] == Magic # [ItemToHitPerLevel] >= 1 && [AssassinSkills]+[TrapsSkillTab]+[SkillLightningSentry] >= 3
[Type] == HandToHand && [Class] == elite && [Quality] == Magic # [ItemToHitPerLevel] >= 1 && [IAS] >= 20

([Type] == handtohand || [Type] == assassinclaw || [Type] == assassinitem || [Type] == katars) && [Quality] >= magic # [SkillLightningSentry]+[trapsskilltab] >= 5
([Type] == handtohand || [Type] == assassinclaw || [Type] == assassinitem || [Type] == katars) && [Quality] >= magic # [SkillLightningSentry] >= 3 && ([trapsskilltab] >= 3 || [assassinskills] >= 2)

([Type] == handtohand || [Type] == assassinclaw || [Type] == assassinitem || [Type] == katars) && [Quality] == Magic # [AssassinSkills] == 2 && [SkillLightningSentry] == 3
([Type] == handtohand || [Type] == assassinclaw || [Type] == assassinitem || [Type] == katars)  && [Quality] == Magic # [TrapsSkillTab] == 3 && [SkillLightningSentry] == 3

([Type] == handtohand || [Type] == assassinclaw || [Type] == assassinitem || [Type] == katars)  && [Quality] == Magic # [AssassinSkills] == 2 && [SkillVenom] == 3
([Type] == handtohand || [Type] == assassinclaw || [Type] == assassinitem || [Type] == katars)  && [Quality] == Magic # [ShadowDisciplinesSkillTab] == 3 && [SkillVenom] == 3

([Type] == handtohand || [Type] == assassinclaw || [Type] == assassinitem || [Type] == katars)  && [Quality] == Magic # [AssassinSkills] == 2 && [SkillFade] == 3
([Type] == handtohand || [Type] == assassinclaw || [Type] == assassinitem || [Type] == katars)  && [Quality] == Magic # [ShadowDisciplinesSkillTab] == 3 && [SkillFade] == 3

([Type] == handtohand || [Type] == assassinclaw || [Type] == assassinitem || [Type] == katars)  && [Quality] == Magic # [AssassinSkills] == 2 && [SkillShadowMaster] == 3 && [SkillWeaponBlock] == 3
([Type] == handtohand || [Type] == assassinclaw || [Type] == assassinitem || [Type] == katars)  && [Quality] == Magic # [ShadowDisciplinesSkillTab] == 3 && [SkillShadowMaster] == 3 && [SkillWeaponBlock] == 3

([Type] == handtohand || [Type] == assassinclaw || [Type] == assassinitem || [Type] == katars)  && [Quality] == Magic # [IAS] >= 20 && [AssassinSkills]+[TrapsSkillTab]+[SkillLightningSentry] >= 3
([Type] == handtohand || [Type] == assassinclaw || [Type] == assassinitem || [Type] == katars)  && [Quality] == Magic # [AssassinSkills]+[TrapsSkillTab]+[SkillLightningSentry] >= 5

([Type] == handtohand || [Type] == assassinclaw || [Type] == assassinitem || [Type] == katars)  && [Class] >= exceptional && [Quality] == Magic # [ItemToHitPerLevel] >= 1 && [AssassinSkills]+[TrapsSkillTab]+[SkillLightningSentry] >= 3
([Type] == handtohand || [Type] == assassinclaw || [Type] == assassinitem || [Type] == katars)  && [Class] == elite && [Quality] == Magic # [ItemToHitPerLevel] >= 1 && [IAS] >= 20


//----- Paladine Zepter -----
[Type] == scepter && [Quality] == magic # ( [PaladinSkills] == 2 || [PaliCombatSkillTab] >= 2 ) && [SkillFistOfTheHeavens]+[SkillConviction] >= 5 &&  [Sockets] >= 3
[Type] == scepter && [Quality] == magic # [fcr] >=10 && ( [PaladinSkills] == 2 || [PaliCombatSkillTab] >= 2 ) && [SkillBlessedHammer]+[SkillConcentration] >= 5
//[Type] == scepter && [Quality] == magic # ( [PaladinSkills] == 2 || [PaliCombatSkillTab] >= 2 ) && [SkillBlessedHammer]+[SkillConcentration] >= 5

//----- Bo Speer -----
//[Name] == Throwing Spear && [Quality] == Magic # [WarCriesSkillTab] >= 3 && [maxdamage] >= 11 //Schwarz
//[Name] == Throwing Spear && [Quality] == Magic # [WarCriesSkillTab] >= 3 && ( [LifeLeech] >= 6 || [ManaLeech] >= 6 ) //Rot
//[Name] == Throwing Spear && [Quality] == Magic # [WarCriesSkillTab] >= 3 && [IAS] >= 40 // Gelb
//[Name] == Throwing Spear && [Quality] == Magic # [WarCriesSkillTab] >= 3 && [coldmindam] >= 2 // Blau
//[Name] == Throwing Spear && [Quality] == Magic # [WarCriesSkillTab] >= 3 && [PoisonMindam] >= 50 // Grün
//[Name] == Throwing Spear && [Quality] == Magic # [WarCriesSkillTab] >= 3

//[Name] == Glaive && [Quality] == Magic # [WarCriesSkillTab] >= 3 && [maxdamage] >= 11 //Schwarz
//[Name] == Glaive && [Quality] == Magic # [WarCriesSkillTab] >= 3 && ( [LifeLeech] >= 6 || [ManaLeech] >= 6 ) //Rot
//[Name] == Glaive && [Quality] == Magic # [WarCriesSkillTab] >= 3 && [IAS] >= 40 // Gelb
//[Name] == Glaive && [Quality] == Magic # [WarCriesSkillTab] >= 3 && [coldmindam] >= 2 // Blau
//[Name] == Glaive && [Quality] == Magic # [WarCriesSkillTab] >= 3 && [PoisonMindam] >= 50 // Grün
//[Name] == Glaive && [Quality] == Magic # [WarCriesSkillTab] >= 3


hoffe das mit den farben stimmt soweit

Necro/Sorc Stäbe sind mit absicht weiß (Normal Act2 Drognan)

spike0 05/19/2010 14:50

das mit den mehreren bots spricht natürlich für diese lösung! ich werd's mal ein paar tage mit 3 bots laufen lassen, bind da echt mal gespannt ^^


All times are GMT +2. The time now is 21:16.

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