D2NT Auto Mule

05/22/2010 04:24 Medix#1
edit
05/25/2010 05:11 wessi86#2
So, erstmal ein riesen Dank an dich für die Mühe.
Nach stundenlangem rumprobieren hab ich es nun geschafft es halbwegs zum laufen zu bringen. Das erste Problem bestand darin, dass er schon vor dem Mule-Vorgang einfach stehen blieb, wenn er was aufheben wollte. Auch wenn dafür noch Platz im Inventar war. Da gibt es entweder ein Problem mit dem Cubing, Gamblen, Shrine Catcher, checkCloneDiablos oder auch CheckSelf/CheckMerc. Jedenfalls ging es nachdem alles aus-, bzw. umgestellt war.

Als das nun ging hat er ein Spiel aufgemacht, brav 5 Minuten gewartet, die Sachen gedropt und ist mit dem Mule-Char wiedergekommen. Allerdings hat der nur die Truhe geöffnet, 'done' geschrieben und ist dann wieder gegangen. Ohne die Sachen vom Boden aufzuheben. Keine Ahnung wieso...

mfg
05/25/2010 07:30 Medix#3
Wie heißt denn deine Pickit?

in der Datei scripts/NTBot/Char_configs/mule/NTConfig_Mule.ntl muss die gleiche pickit wie in den anderen charconfigs aktiviert sein.


Hast du vllt. Details zu den Fehlermeldungen die kamen bevor es ging bei dir?
05/25/2010 10:39 wessi86#4
Quote:
Originally Posted by Medix View Post
Wie heißt denn deine Pickit?

in der Datei scripts/NTBot/Char_configs/mule/NTConfig_Mule.ntl muss die gleiche pickit wie in den anderen charconfigs aktiviert sein.
Shame on me, das hab ich nicht bedacht. Werde das nochmal testen. Dann schmeißt er auch bestimmt nicht mehr die Zutaten vom Cuben mit auf den Boden.

Quote:
Originally Posted by Medix View Post
Hast du vllt. Details zu den Fehlermeldungen die kamen bevor es ging bei dir?
Ne, es kamen ja keine Fehlermeldungen. Sonst hätte es auch nicht so lange gedauert. Ich werd jetzt nach und nach versuchen die o.g. Sachen wieder hinzu zu nehmen, dann wird sich der Fehler schon finden.

mfg
05/27/2010 22:05 senfbert#5
jo, also der erste testrun verlief direkt erfolgreich :)

jetzt mal zum fragenteil:
man kann da aber nicht zu fällig einstellen, dass der bestimmte itemtypen bestimmten mules oder accs zuteilt?

und zum verständnis für mich einmal kurz folgende überlegung zur nachvollziehung des bots bestätigen oder korrigieren:

1.) er erstellt ein game und zieht das so lange durch bis er merkt er kann nix mehr in die kiste packen (hört er dann auf oder macht er den run noch fertig?) udn gibt dann das signal, nächstes game wird mule game => 5 mins warten

2.) er nimmt char nr1 eins vom mule acc, joint das mule game und schaut versucht einzupacken. wohl solange bis der mule (incl des stash) voll ist, dann kommt mule nr2 dran, etc.?
05/28/2010 12:43 Medix#6
Quote:
Originally Posted by senfbert View Post
jo, also der erste testrun verlief direkt erfolgreich :)

jetzt mal zum fragenteil:
man kann da aber nicht zu fällig einstellen, dass der bestimmte itemtypen bestimmten mules oder accs zuteilt?
Ne wär aber kein problem das zu implementieren als zb alle runen auf einen char usw...

Quote:
1.) er erstellt ein game und zieht das so lange durch bis er merkt er kann nix mehr in die kiste packen (hört er dann auf oder macht er den run noch fertig?) udn gibt dann das signal, nächstes game wird mule game => 5 mins warten
richtig

Quote:
2.) er nimmt char nr1 eins vom mule acc, joint das mule game und schaut versucht einzupacken. wohl solange bis der mule (incl des stash) voll ist, dann kommt mule nr2 dran, etc.?
richtig. Du kannst auch einstellen ,dass er bei char nr2 oder 3 oder 4 anfängt :)
05/28/2010 14:06 senfbert#7
Ja das wäre noch ne feine Sache wenn man die mules zumindest grob bisl vorgeben könnte, also bspw Runen, Ringe und Amus, uniques, etc. Oder vielleicht gleich so mit variablen besetzten, dass man da Typen, Klassen oder Namen selber einsetzten kann!
Wieterhin habe ich seit Benutzung der automule das Problem, dass ich nicht mehr gamblen kann. Habe zwar parallel auch noch den Co Dia/Baal bot mit ins program aufgenommen, da aber der Fehler auch beim Leader Auftritt denke ich es kommt vom automule bzw von den dAmit übernommenen Dateien im Script Ordner.
Jedenfalls beginnt er zu gamblen, kAuft irgendein Item und wenn er es anschaut kommt die Fehlermeldung writeloc () is Not defined. Dieser fehler tritt in der nttown auf.
Würd mich freuen wenn du da nenn guten Rat für mich hast weil man Char quillt uber vor Gold!
05/28/2010 16:14 nyetram#8
Wo kann ich denn überhaupt den Account des Mulechars einstellen? ._.

€ glaub ich habs, in der NTBot.ntj

Ein tolles Feature, danke dafür. :)
05/28/2010 16:41 Muddy Waters#9
Quote:
Originally Posted by senfbert View Post
Ja das wäre noch ne feine Sache wenn man die mules zumindest grob bisl vorgeben könnte, also bspw Runen, Ringe und Amus, uniques, etc. Oder vielleicht gleich so mit variablen besetzten, dass man da Typen, Klassen oder Namen selber einsetzten kann!
Wieterhin habe ich seit Benutzung der automule das Problem, dass ich nicht mehr gamblen kann. Habe zwar parallel auch noch den Co Dia/Baal bot mit ins program aufgenommen, da aber der Fehler auch beim Leader Auftritt denke ich es kommt vom automule bzw von den dAmit übernommenen Dateien im Script Ordner.
Jedenfalls beginnt er zu gamblen, kAuft irgendein Item und wenn er es anschaut kommt die Fehlermeldung writeloc () is Not defined. Dieser fehler tritt in der nttown auf.
Würd mich freuen wenn du da nenn guten Rat für mich hast weil man Char quillt uber vor Gold!
Denke das stammt bei mir aus dem Itemlog, sofern du das nicht hast, oder es nicht mitkopiert hast, ist es absolut verständlich, dass dieser Fehler auftritt, die dort aufgerufene Funktion ist dann bei dir schlicht nicht definiert. ;)
Allerdings ist die dort verwendete Version alles andere als aktuell, sofern die Funktion tatsächlich genauso heisst wie du es schreibst.

Ich habe zwar eine aktuellere Version, ich glaube aber nicht, dass ich diese nochmal seperat veröffentliche, vielmehr wirds auf ein Komplettpaket hinauslaufen, wo alle bisherigen Änderungen von mir drin sind.
In der aktuellen Version ist dann auch eine Funktion drin, die sämtliche Items auf dem Char loggt, sowas wäre für ein Automule Feature ziemlich interessant denke ich. :)

Du könntest ja die Aufrufe entfernen, dann klappts auch wieder mit dem Gambling. Die Aufrufe findest du in der NTTown.ntl in der Funktion NTT_GambleIt(npc). ;)Lg
Muddy
05/28/2010 17:27 senfbert#10
Also ich verwende die aktuelle bluebird Version und bisher hat das itemlogging auch problemlos funktioniert! Aber lieber Stelle ich das aus statt aufs gamblen zu verzichten. Also welchen "Aufruf" soll ich denn dA nun genau entfernen und wo finde ich das komplett Paket von dir?
Mir Wäre es am liebsten wenn alles funktioniert aber zur Not mach ich erst mal beim log Abstriche!
05/28/2010 17:45 Muddy Waters#11
Quote:
Originally Posted by senfbert View Post
Also ich verwende die aktuelle bluebird Version und bisher hat das itemlogging auch problemlos funktioniert! Aber lieber Stelle ich das aus statt aufs gamblen zu verzichten. Also welchen "Aufruf" soll ich denn dA nun genau entfernen und wo finde ich das komplett Paket von dir?
Mir Wäre es am liebsten wenn alles funktioniert aber zur Not mach ich erst mal beim log Abstriche!
Mein Komplettpaket gibts noch nicht, da ich noch zuviele Baustellen habe, bei denen noch mehr oder weniger gemacht werden muss. ;)

Die dort fehlende Funktion ist nur für die Ausgabe des Fundortes zuständig, da das ansonsten bei dir funktioniert, wird sie aber nur ein Relikt sein und Medix hat nur vergessen es zu entfernen (genau das ist das Problem, wenn man Sachen zur Veröffentlichung zurechtstückeln muss).

Nach der Frage poste ich dir lieber direkt die Funktion, ansonsten kommen da nur noch weitere Fragen und wir wollen ja Medix Topic sauber halten. :)
Versuchs mal hiermit:
Code:
function NTT_GambleIt(npc)
{
    var _items, _newitem;
    
    if(!npc)
        return false;

    if(!GetUIState(0x0C))
        return false;

    _items = npc.GetItems();

    if(!_items)
        return false;

    for(var i = 0 ; i < _items.length ; i++)
    {
        if(NTC_MyGold() < NTConfig_GambleStopGold)
            return false;

        if(NTT_IsItemInGambleArrayInt(_items[i].classid))
        {
            if(NTT_CheckSpace(_items[i].xsize, _items[i].ysize))
            {
                NTT_GetOldItemsInt();

                if(NTT_ShopItem(_items[i], npc, 2))
                    _newitem = NTT_GetGambledItemInt();
                else
                    return false;

                if(_newitem)
                {
                    while(!(_newitem.itemflag&0x10))
                        NTC_Delay(100);

                    switch(NTSI_CheckItem(_newitem))
                    {
                    case 1:
                        NTC_SendLogToOOG(NTC_LOG_ITEM, "Kept " + NTC_ItemQualityToMGRColor[_newitem.quality] + _newitem.name.split("\n")[0] + ";" + _newitem.itemdesc + "\nÿc4Item Level: " + _newitem.itemlevel);
                    case 2:
                        break;
                    default:
                        NTT_ShopItem(_newitem, npc, 1);
                        break;
                    }
                }
            } 
        }
    }

    return true;
}
Lg
Muddy
05/29/2010 13:16 nyetram#12
Nachdem der Bot das Mulegame das erste Mal verlässt, wartet er unheimlich lange. Ist das so gewollt?
05/29/2010 17:00 Medix#13
sollten 20sec sein.

Hab vergessen den Delay zum ändern aber ja ist so gewollt habs nur vergessen den delay zu verkürzen.
05/30/2010 18:09 wessi86#14
So, bei mir funktionierts nun auch. Das einzige, was mir aufgefallen ist, dass er die Zutaten vom Cubing mit rausschmeißt. Der Mulechar sammelt sie dann natürlich nicht mit auf, da sie nicht in der PickIt stehen. Kann man das evtl. so ändern, dass er nur die Sachen aus der Truhe mult, die in der Pickit stehen?

mfg
05/30/2010 18:34 Medix#15
hm ja sollte sich einstellen lassen

hab nur in 2 wochen mündliche matura und lols noch nix gelernt wird langsam knapp und daher hab ich die nächsten 2 wochen keine zeit irgendwas zu ändern.
Dannach hab ich genug zeit :)