D2NT wie kaufe ich automatisch Tränke?

10/03/2010 20:37 BigKeule42#1
Ich hab das Problem, dass wenn ich zum Beispiel Mausoleum laufen lasse mit dem Bot, er nich genug Potions hat (es droppen auch nich ausreichend).
Er steht dann nur da und macht nix.
Ich denke mal es hat was mit der D2NT TheBluebird v1.1 - Bot und Anleitung\D2NT TheBluebird v1.1\D2NT\scripts\libs\common\
NTAttack.ntl zu tun.

Da steht dann sowas:



function NTA_ClearPosition(range, pickitem, safelevel)
{
var _orgx, _orgy;
var _spectype = [0x0A, 0x01, 0x01];
var _skiplist;
var _attackcount = 0;
var _target;
var _distance, _mingid, _mindistance;
var _result;

if(NTConfig_AttackSkill[1] < 1 || NTConfig_AttackSkill[3] < 1)
return false;

switch(arguments.length)
{
case 0:
range = 20;
case 1:
pickitem = false;
case 2:
safelevel = 0;
default:
if(NTConfig_CheckSelfSafe < 0x01 && NTConfig_CheckMercSafe < 0x01)
safelevel = 0;
break;
}


ich denke mal das dadurch eingestellt is, dass wenn er kein mana hat er einfach ein break macht.


Kann man das auch so einstellen dass er einfach ein portal macht in die Stadt geht und sich neue Tränke holt und danach weiter macht.
Oder liegt es an einer anderen stelle?

Bitte um Hilfe
10/03/2010 20:40 spike0#2
hä? jetzt machst du zwei gleiche threads auf? oO
10/03/2010 20:53 BigKeule42#3
nein nur der eine lässt nich gleich auf das problem schließen.

hab auch schon den rat von proezler genommen diese oxo1 hinzuzufügen, dioch jetz kauft er anch jedem benutzten trank gleich nen neuen wie kann ich das einstellen?
10/03/2010 21:37 Nightgrey#4
Ehrlich gesagt keine Ahnung warum. Ich habe es auch umgestellt, dass er Tränke kauft falls er keine mehr hat und bei mir kauft er erst wenn sie wirklich leer sind.
10/03/2010 21:44 BigKeule42#5
kannst du mir denn das script mal schicken? oder halt hier posten? vllt is ja nur ein zeichen falsch oder so ich weiss ja nich^^
10/04/2010 01:30 proezler#6
Also bei mir ist das Prob das wenn ich einstell 0x01 das er sofort nachdem er einen Trank getrunken hat in die stat geht. das nervt halt echt tierisch. kann man das nicht einstellen, dass er das nur macht wenn die Tränke wirklich alle sind?
10/04/2010 11:03 lanara#7
Quote:
Originally Posted by proezler View Post
Also bei mir ist das Prob das wenn ich einstell 0x01 das er sofort nachdem er einen Trank getrunken hat in die stat geht. das nervt halt echt tierisch. kann man das nicht einstellen, dass er das nur macht wenn die Tränke wirklich alle sind?
NTTownManager.ntl:
Code:
function NTTMGR_CheckSafe(selfmask, mercmask)
{
    if(((selfmask&0x01) && [COLOR="Red"]NTTM_CheckBelt()[/COLOR]) || ((mercmask&0x01) && NTT_CheckMerc()) || NTTMGR_CheckCurse(selfmask, mercmask))
        return NTTMGR_VisitTown();

    return true;
}
Das rote ändern und folgende Funktion darunter einfügen:

Code:
function NTTM_CheckBelt()
{
    var _needpotions = false;
    var _NTT_BeltColNeeded = new Array(4);
    _NTT_BeltColNeeded[0] = 0;
    _NTT_BeltColNeeded[1] = 0;
    _NTT_BeltColNeeded[2] = 0;
    _NTT_BeltColNeeded[3] = 0;
    
    var _NTT_BeltSize = NTC_GetBeltSize();
    var _numhppots = 0;
    var _numhpcols = 0;
    var _nummppots = 0;
    var _nummpcols = 0;

    for(var i = 0 ; i < 4 ; i++)
    {
        _NTT_BeltColNeeded[i] = NTT_GetNeededPotionsColInt(NTConfig_BeltColType[i], i);
        if(NTConfig_BeltColType[i] == "hp")
        {
            _numhppots += _NTT_BeltColNeeded[i];
            _numhpcols++;
        }
        
        if(NTConfig_BeltColType[i] == "mp")
        {
            _nummppots += _NTT_BeltColNeeded[i];
            _nummpcols++;
        }
    }
    if(_numhppots - (_NTT_BeltSize * _numhpcols) == 0)
        _needpotions = true;
    if(_nummppots - (_NTT_BeltSize * _nummpcols) == 0)
        _needpotions = true;
        
    return _needpotions;
}
Kurz getestet und bei mir geht er nurnoch in die Stadt, wenn er wirklich alle Potions verbraucht hat.
10/06/2010 11:22 Evil Knievel#8
Mhh, ich krieg dauernd die Meldung "NTTM_CheckBelt() not defiened". Ich hab die Funktion "function NTTM_CheckBelt()" wie folgt eingefügt:

HTML Code:
function NTTMGR_CheckSafe(selfmask, mercmask)
{
	if(((selfmask&0x01) && NTM_CheckBelt()) || ((mercmask&0x01) && NTT_CheckMerc()) || NTTMGR_CheckCurse(selfmask, mercmask))
		return NTTMGR_VisitTown();
	return true;
}

function NTTM_CheckBelt()
{
    var _needpotions = false;
    var _NTT_BeltColNeeded = new Array(4);
    _NTT_BeltColNeeded[0] = 0;
    _NTT_BeltColNeeded[1] = 0;
    _NTT_BeltColNeeded[2] = 0;
    _NTT_BeltColNeeded[3] = 0;
    
    var _NTT_BeltSize = NTC_GetBeltSize();
    var _numhppots = 0;
    var _numhpcols = 0;
    var _nummppots = 0;
    var _nummpcols = 0;

    for(var i = 0 ; i < 4 ; i++)
    {
        _NTT_BeltColNeeded[i] = NTT_GetNeededPotionsColInt(NTConfig_BeltColType[i], i);
        if(NTConfig_BeltColType[i] == "hp")
        {
            _numhppots += _NTT_BeltColNeeded[i];
            _numhpcols++;
        }
        
        if(NTConfig_BeltColType[i] == "mp")
        {
            _nummppots += _NTT_BeltColNeeded[i];
            _nummpcols++;
        }
    }
    if(_numhppots - (_NTT_BeltSize * _numhpcols) == 0)
        _needpotions = true;
    if(_nummppots - (_NTT_BeltSize * _nummpcols) == 0)
        _needpotions = true;
        
    return _needpotions;
}
Oder muss die "function NTTM_CheckBelt()" mit in die {}-Klammern von "function NTTMGR_CheckSafe(selfmask, mercmask)
{...}" ??
10/06/2010 11:37 RezChams#9
Insight ;)
10/06/2010 11:41 lanara#10
Quote:
Originally Posted by Evil Knievel View Post
Mhh, ich krieg dauernd die Meldung "NTTM_CheckBelt() not defiened". Ich hab die Funktion "function NTTM_CheckBelt()" wie folgt eingefügt:

HTML Code:
function NTTMGR_CheckSafe(selfmask, mercmask)
{
	if(((selfmask&0x01) && NTM_CheckBelt()) || ((mercmask&0x01) && NTT_CheckMerc()) || NTTMGR_CheckCurse(selfmask, mercmask))
		return NTTMGR_VisitTown();
	return true;
}
Oder muss die "function NTTM_CheckBelt()" mit in die {}-Klammern von "function NTTMGR_CheckSafe(selfmask, mercmask)
{...}" ??
Nein, passt so. Allerdings hast du in der CheckSafe immernoch NTM_CheckBelt stehen.
10/06/2010 11:45 Evil Knievel#11
Funktioniert auch nicht. Hab die Funktion "function NTTM_CheckBelt()" in die Funktion "function NTTMGR_CheckSafe(selfmask, mercmask)" geschrieben, geht aber nicht. Weder mit "return true;" vor noch hinter "function NTTM_CheckBelt()"

HTML Code:
function NTTMGR_CheckSafe(selfmask, mercmask)
{
    if(((selfmask&0x01) && NTM_CheckBelt()) || ((mercmask&0x01) && NTT_CheckMerc()) || NTTMGR_CheckCurse(selfmask, mercmask))
        return NTTMGR_VisitTown();

    return true;

function NTTM_CheckBelt()
{
    var _needpotions = false;
    var _NTT_BeltColNeeded = new Array(4);
    _NTT_BeltColNeeded[0] = 0;
    _NTT_BeltColNeeded[1] = 0;
    _NTT_BeltColNeeded[2] = 0;
    _NTT_BeltColNeeded[3] = 0;
    
    var _NTT_BeltSize = NTC_GetBeltSize();
    var _numhppots = 0;
    var _numhpcols = 0;
    var _nummppots = 0;
    var _nummpcols = 0;

    for(var i = 0 ; i < 4 ; i++)
    {
        _NTT_BeltColNeeded[i] = NTT_GetNeededPotionsColInt(NTConfig_BeltColType[i], i);
        if(NTConfig_BeltColType[i] == "hp")
        {
            _numhppots += _NTT_BeltColNeeded[i];
            _numhpcols++;
        }
        
        if(NTConfig_BeltColType[i] == "mp")
        {
            _nummppots += _NTT_BeltColNeeded[i];
            _nummpcols++;
        }
    }
    if(_numhppots - (_NTT_BeltSize * _numhpcols) == 0)
        _needpotions = true;
    if(_nummppots - (_NTT_BeltSize * _nummpcols) == 0)
        _needpotions = true;
        
    return _needpotions;
}

}
@lanara: Hattest du doch auch so in deiner Beschreibung gesagt. Hab aus NTTT_CheckBelt() --> NTTM_CheckBelt() gemacht.

€: Wie gay. Hab n "T" zuviel gehabt ~~ "NTTT_CheckBelt()" >.<
10/06/2010 11:54 lanara#12
Du hast es in der Checksafe einfach falsch eingetragen.

Code:
function NTTMGR_CheckSafe(selfmask, mercmask)
{
    if(((selfmask&0x01) && [COLOR="Red"][SIZE="5"]NTM[/SIZE][/COLOR]_CheckBelt()) || ((mercmask&0x01) && NTT_CheckMerc()) || NTTMGR_CheckCurse(selfmask, mercmask))
        return NTTMGR_VisitTown();

    return true;
}
10/06/2010 11:59 Evil Knievel#13
Quote:
Originally Posted by lanara View Post
Du hast es in der Checksafe einfach falsch eingetragen.

Code:
function NTTMGR_CheckSafe(selfmask, mercmask)
{
    if(((selfmask&0x01) && [COLOR="Red"][SIZE="5"]NTM[/SIZE][/COLOR]_CheckBelt()) || ((mercmask&0x01) && NTT_CheckMerc()) || NTTMGR_CheckCurse(selfmask, mercmask))
        return NTTMGR_VisitTown();

    return true;
}
Jopp ^^, hab schon gesehen. Danke schön.
10/07/2010 10:58 Evil Knievel#14
Noch mal ne Frage zur function NTTM_CheckBelt(). Der Bot geht ja anscheinend wirklich nur dann in die Stadt, wenn der komplette Gürtel leer ist. In meinen ersten beiden Reihen sind Heil-Pots, in den letzten beiden sind Mana-Pots. Wenn die ersten beiden Reihen leer sind, aber noch Mana-Pots vorhanden sind, geht also nicht in die Stadt und kauft neue Heilpots. Kann ich dass ändern, in dem ich folgendes mache:

HTML Code:
    var _needpotions = false;
    var _NTT_BeltColNeeded = new Array(4);
    _NTT_BeltColNeeded[0] = 0;
    _NTT_BeltColNeeded[1] = 2;
    _NTT_BeltColNeeded[2] = 0;
    _NTT_BeltColNeeded[3] = 2;
Ich will also, dass er in die Stadt geht, sobald weniger als 2 Heil- und Mana-Pots vorhanden sind.
10/07/2010 19:02 lanara#15
Quote:
Originally Posted by Evil Knievel View Post
Noch mal ne Frage zur function NTTM_CheckBelt(). Der Bot geht ja anscheinend wirklich nur dann in die Stadt, wenn der komplette Gürtel leer ist. In meinen ersten beiden Reihen sind Heil-Pots, in den letzten beiden sind Mana-Pots. Wenn die ersten beiden Reihen leer sind, aber noch Mana-Pots vorhanden sind, geht also nicht in die Stadt und kauft neue Heilpots. Kann ich dass ändern, in dem ich folgendes mache:

HTML Code:
    var _needpotions = false;
    var _NTT_BeltColNeeded = new Array(4);
    _NTT_BeltColNeeded[0] = 0;
    _NTT_BeltColNeeded[1] = 2;
    _NTT_BeltColNeeded[2] = 0;
    _NTT_BeltColNeeded[3] = 2;
Ich will also, dass er in die Stadt geht, sobald weniger als 2 Heil- und Mana-Pots vorhanden sind.
Ähm nein, das müsstest du hier ändern:
Code:
    if(_numhppots - (_NTT_BeltSize * _numhpcols) [COLOR="Red"]>= -2[/COLOR])
        _needpotions = true;
    if(_nummppots - (_NTT_BeltSize * _nummpcols) [COLOR="Red"]>= -2[/COLOR])
        _needpotions = true;
Dann geht er, wenn er nurnoch 2 oder weniger von den jeweiligen Pots hat.