Register for your free account! | Forgot your password?

You last visited: Today at 19:46

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[D2NT] Followscript

Discussion on [D2NT] Followscript within the Diablo 2 Programming forum part of the Diablo 2 category.

Reply
 
Old   #1
 
flusen's Avatar
 
elite*gold: 0
Join Date: May 2010
Posts: 15
Received Thanks: 11
[D2NT] Followscript

moin,
vor einiger Zeit kam ich mal auf den Trichter nen kleines Followscript für den D2NT zu schreiben.
Das Ergebnis ist zwar noch lange nicht Perfekt/Ausgereift, aber nachdem es meinen Wünschen genügt, habe ich leider noch nicht wieder daran weitergearbeitet.
Daher dachte ich mir, bevor es in der Versenkung verschwindet kann der ein oder andere von euch evtl. noch nutzen daraus ziehen oder mir neuen Ansporn durch Verbesserungsvorschläge usw geben!

Was kann/macht es überhaupt:
- Folgt dem Leader in den entsprechenden Akt
- führt die üblichen Stadtätigkeiten aus (kaufen, verkaufen, etc)
- wartet dort auf TP (und nimmt es auch nur wenn Portal- & Leaderarea übereinstimmen)
- rennt dem Leader hinterher
- kämpft Unterwegs mit (über Variable steuerbar)
- sammelt ein (über Variable steuerbar)
- folgt durch Portale/Stairs
- geht wieder in die Stad und wartet wenn es den Leader "aus den Augen" verliert

Installation:
- Script im Anhang runterladen und in ...\scripts\NTBot\bots\ speichern
- in die Charconfig NTConfig_Script.push("NTFollow.ntj"); einfügen

Konfiguration:
- in der Charconfig public auf true setzen
- in der NTFollow.ntj folgende Werte anpassen:
Code:
 var _fight = true; // true=mitkämpfen - false=nur hinterher rennen
   var _pick = true; // true=items & co aufsammeln - false=nichts aufsammeln 
   NTConfig_Leader = ""; // Name des Leader-Chars
Zu Beachten:
- Will man z.B. einen neuen Char folgen lassen (level1) sollte man in der Charconfig den Merc auf false setzen und dem Char am besten ne Hand voll Gold hinwerfen sowie nen TpFolianten kaufen - sonst rennt der nur wie blöd durch die Gegend inner Stadt
- Bei Chars ohne Eni/Teleport muss man entweder den "Orginal" D2nt3.0 nutzen oder die Enibugprüfung an-/abschaltbar haben (siehe weiter unten)

Probleme:
- Areawechsel die nicht über Portal/Stair gehen (also zB Flammenfluss->CS) schafft er nicht.
- Wenn der Leader z.B. durch´s rote Portal nach Tristram geht und sich ganz schnell verkrümelt, so das der Bot einen verliert, geht er ständig durch´s Portal in der Hoffnung man würde auf der andern Seite warten...
- Er folgt bis zum Umfallen bzw Chicken (soll heissen er geht Unterwegs nicht in die Stadt um ggf. Tränke nachzukaufen).

Enibugprüfung bzw. Teleport an-/abschaltbar machen:
Credits hierfür gehen an hdin84!

Dies ist nur dann Notwendig, wenn ihr z.B. den Bluebird oder eine andere Modifikation
des D2NT nutzt, in der die Enibugmeldung im Manager kommt bei Chars die keine Eni tragen
bzw. nicht Telen können.
Wer den Orginal D2NT nutzt braucht dies nicht für das Script zu machen, ich würde es allerdings empfehlen - hierdurch hat man die Prüfung auf den Enibug nämlich auch gleich dabei!

- Öffnet eure ...\scripts\libs\common\NTMove.ntl
und ersetzt die Funktion NTM_MoveTo hiermit:
Code:
function NTM_MoveTo(areaid, x, y, retry, clearpath)
{
var i, n;
var _teleport;
var _path;
var _retry = 0;

if(x == me.x && y == me.y)
return true;

if(arguments.length < 4)
retry = 3;

if(arguments.length < 5)
clearpath = false;

if(NTC_InTown() || NTConfig_Leech)
_teleport = false;
else
_teleport = true;

if(NTC_GetSkillLevel(54) < 1 && !NTConfig_Leech)
{
ExitGame();
SendCopyData("D2NT Manager", null, 7<<16, "ÿE00000Enigmabug- quit game");
}
_path = GetPath(areaid, me.x, me.y, x, y, _teleport);

if(!_path)
return false;

for(i = 0 ; i < _path.length ; i++)
{
for(n = 0 ; n < 2 ; n++)
{
if(_teleport)
{
if(NTM_TeleportTo(_path[i][0]+Random(-n, n), _path[i][1]+Random(-n, n)))
break;
}
else
{
if(NTC_InTown() || NTConfig_Leech) {
if(NTM_WalkTo(_path[i][0], _path[i][1]))
break;
}

}
}

if(n < 2)
{
if(clearpath)
{
if(!NTA_ClearPosition(20, true, 2))
return false;

NTP_DoPrecast(false);

NTM_MoveTo(me.areaid, _path[i][0], _path[i][1], 1);
}
}
else if(_retry < retry)
{
_path = GetPath(areaid, me.x, me.y, x, y, _teleport);

if(!_path)
return false;

i = -1;
_retry++;
}
else
return false;
}

return true;
}
- jetzt geht ihr in die ...\scripts\NTBot\char_configs\NTConfig.ntl
und fügt das hinzu:
Code:
var NTConfig_Leech;
- zuletzt müsst ihr jetzt noch in eure Charconfiguration folgendes einfügen
(für unseren Fall hier am besten über das NTConfig_Script.push("NTFollow.ntj")):
Code:
NTConfig_Leech = false; // Teleport und Enibugprüfung an(true)/aus(false)
So... hoffe ich hab nix vergessen & is einigermaßen Verständlich das ganze!
Ansonsten warte ich auf eure Kritik, Fehlermeldungen, etc. & werde dann sehen was ich machen kann

gruss, flusen
Attached Files
File Type: rar NTFollow.rar (1.3 KB, 130 views)
flusen is offline  
Thanks
8 Users
Old 07/14/2010, 15:50   #2
 
sternenlooper's Avatar
 
elite*gold: 0
Join Date: Apr 2010
Posts: 1,675
Received Thanks: 789
Quote:
Originally Posted by flusen View Post
moin,
vor einiger Zeit kam ich mal auf den Trichter nen kleines Followscript für den D2NT zu schreiben.
Das Ergebnis ist zwar noch lange nicht Perfekt/Ausgereift, aber nachdem es meinen Wünschen genügt, habe ich leider noch nicht wieder daran weitergearbeitet.
Daher dachte ich mir, bevor es in der Versenkung verschwindet kann der ein oder andere von euch evtl. noch nutzen daraus ziehen oder mir neuen Ansporn durch Verbesserungsvorschläge usw geben!

Was kann/macht es überhaupt:
- Folgt dem Leader in den entsprechenden Akt
- führt die üblichen Stadtätigkeiten aus (kaufen, verkaufen, etc)
- wartet dort auf TP (und nimmt es auch nur wenn Portal- & Leaderarea übereinstimmen)
- rennt dem Leader hinterher
- kämpft Unterwegs mit (über Variable steuerbar)
- sammelt ein (über Variable steuerbar)
- folgt durch Portale/Stairs
- geht wieder in die Stad und wartet wenn es den Leader "aus den Augen" verliert

Installation:
- Script im Anhang runterladen und in ...\scripts\NTBot\bots\ speichern
- in die Charconfig NTConfig_Script.push("NTFollow.ntj"); einfügen

Konfiguration:
- in der NTFollow.ntj folgende Werte anpassen:
Code:
 var _fight = true; // true=mitkämpfen - false=nur hinterher rennen
   var _pick = true; // true=items & co aufsammeln - false=nichts aufsammeln 
   NTConfig_Leader = ""; // Name des Leader-Chars
Zu Beachten:
- Will man z.B. einen neuen Char folgen lassen (level1) sollte man in der Charconfig den Merc auf false setzen und dem Char am besten ne Hand voll Gold hinwerfen sowie nen TpFolianten kaufen - sonst rennt der nur wie blöd durch die Gegend inner Stadt
- Bei Chars ohne Eni/Teleport muss man entweder den "Orginal" D2nt3.0 nutzen oder die Enibugprüfung an-/abschaltbar haben

Probleme:
- Areawechsel die nicht über Portal/Stair gehen (also zB Flammenfluss->CS) schafft er nicht.
- Wenn der Leader z.B. durch´s rote Portal nach Tristram geht und sich ganz schnell verkrümelt, so das der Bot einen verliert, geht er ständig durch´s Portal in der Hoffnung man würde auf der andern Seite warten...
- Er folgt bis zum Umfallen bzw Chicken (soll heissen er geht Unterwegs nicht in die Stadt um ggf. Tränke nachzukaufen).

So... hoffe ich hab nix vergessen & is einigermaßen Verständlich das ganze!
Ansonsten warte ich auf eure Kritik, Fehlermeldungen, etc. & werde dann sehen was ich machen kann

gruss, flusen
thx gibt es imemr für nette ideen ^^
hier eine frage die mir spontan durch den kopf geht! habe dich zwar auch in "meinem" threat gefragt aber hier gehört es besser hin :P

Quote:
habe mir gerade mal durchgelesen was dein kleines script so kann ^^
wenn du dich mal umschaust es gibt auch script von hdin! ein cs leecher ohne kampf und eni script!

wie hast du es ind einem script eigentlich geregelt bei zb blue seinem bot! dort kann man enilos garnicht einstellen (über char config)! wie verhidnerst du es bei ihm den enibug auszulösen!
ok die frage würde wohl besser in deinen threat passen ^^
edit:
habe mal in deins cript geschaut und eines fällt mir halbwegs negativ auf!
Quote:
// warten auf Party
while(!NTC_InMyParty(NTConfig_Leader)) {
Delay(500);
}
das würde bedeuten das der leecher wartet bis die party erstellt ist egal ob der leader überhaupt noch im spiel ist doer nicht! o.O
wäre da ein counter nicht besser als eine endlosschleife?

ausserdem warum lässt du alles in dem script einstellen?
bedenke das einige nutzer hier nicht gerade das verständniss für sowas besitzen!

den ntconfig_leader befehl gibt es schon bei fast jedem bot dazu! also einfach ausnutzen und einbinden!
und die anderen beiden variablen alssen sich auch einfach in die charconfig mit einbauen!

eine lösung für das enibug problem ist ebenfals nicht enthalten wie ich sehen konnte!
dazu msüstest du den move befehl einfach neu einfügen und als neue funktion benennen! ......

trotzdem schöne arbeit
sternenlooper is offline  
Old 07/14/2010, 16:02   #3
Administrator
 
Muddy Waters's Avatar
 
elite*gold: 41364
Join Date: Jan 2010
Posts: 22,729
Received Thanks: 12,624
Quote:
Originally Posted by flusen View Post
moin,
vor einiger Zeit kam ich mal auf den Trichter nen kleines Followscript für den D2NT zu schreiben.
Das Ergebnis ist zwar noch lange nicht Perfekt/Ausgereift, aber nachdem es meinen Wünschen genügt, habe ich leider noch nicht wieder daran weitergearbeitet.
Daher dachte ich mir, bevor es in der Versenkung verschwindet kann der ein oder andere von euch evtl. noch nutzen daraus ziehen oder mir neuen Ansporn durch Verbesserungsvorschläge usw geben!

Was kann/macht es überhaupt:
- Folgt dem Leader in den entsprechenden Akt
- führt die üblichen Stadtätigkeiten aus (kaufen, verkaufen, etc)
- wartet dort auf TP (und nimmt es auch nur wenn Portal- & Leaderarea übereinstimmen)
- rennt dem Leader hinterher
- kämpft Unterwegs mit (über Variable steuerbar)
- sammelt ein (über Variable steuerbar)
- folgt durch Portale/Stairs
- geht wieder in die Stad und wartet wenn es den Leader "aus den Augen" verliert

Installation:
- Script im Anhang runterladen und in ...\scripts\NTBot\bots\ speichern
- in die Charconfig NTConfig_Script.push("NTFollow.ntj"); einfügen

Konfiguration:
- in der NTFollow.ntj folgende Werte anpassen:
Code:
 var _fight = true; // true=mitkämpfen - false=nur hinterher rennen
   var _pick = true; // true=items & co aufsammeln - false=nichts aufsammeln 
   NTConfig_Leader = ""; // Name des Leader-Chars
Zu Beachten:
- Will man z.B. einen neuen Char folgen lassen (level1) sollte man in der Charconfig den Merc auf false setzen und dem Char am besten ne Hand voll Gold hinwerfen sowie nen TpFolianten kaufen - sonst rennt der nur wie blöd durch die Gegend inner Stadt
- Bei Chars ohne Eni/Teleport muss man entweder den "Orginal" D2nt3.0 nutzen oder die Enibugprüfung an-/abschaltbar haben

Probleme:
- Areawechsel die nicht über Portal/Stair gehen (also zB Flammenfluss->CS) schafft er nicht.
- Wenn der Leader z.B. durch´s rote Portal nach Tristram geht und sich ganz schnell verkrümelt, so das der Bot einen verliert, geht er ständig durch´s Portal in der Hoffnung man würde auf der andern Seite warten...
- Er folgt bis zum Umfallen bzw Chicken (soll heissen er geht Unterwegs nicht in die Stadt um ggf. Tränke nachzukaufen).

So... hoffe ich hab nix vergessen & is einigermaßen Verständlich das ganze!
Ansonsten warte ich auf eure Kritik, Fehlermeldungen, etc. & werde dann sehen was ich machen kann

gruss, flusen
Meinen Segen hast du, auch wenn mir stilistisch ein paar Sachen missfallen und das ganze auf den ersten Blick nach Erweiterungen schreit.

Ich finds in jedem Fall toll, wenn sich Leute mal hinsetzen und versuchen etwas eigenhändig Umzusetzen, weiter so.

Ich hatte sowas auch mal angefangen. Hab das Projekt aber irgendwie auf Eis gelegt, nachdem ich festgestellt habe, dass es unheimlich viel Arbeit ist, die Ebenenverläufe jedes Akts in einem 3-4 Dimensionalen Array abzubilden. Obwohl das für Akt 1 tatsächlich hervorragend funktioniert hat.
Die Idee dabei war, dass der Bot selbstständig den Weg zu seinem Herrchen findet und zwar vom nächstbesten vorhandenen Wp aus.

Mal schauen ob ich das Projekt nochmal wieder ausgrabe, es ist definitiv verdammt viel Arbeit das ganze so umzusetzen, dass es uneingesckränkt läuft.

Lg
Muddy

P.S.: Sogar kommentiert isses! *sabber*

@Sterni
Ich verstehe die Frage nicht, auch wenn ich bestimmt die Antwort wüsste.
Muddy Waters is offline  
Old 07/14/2010, 16:14   #4
 
sternenlooper's Avatar
 
elite*gold: 0
Join Date: Apr 2010
Posts: 1,675
Received Thanks: 789
Quote:
Originally Posted by Muddy_Waters View Post
Meinen Segen hast du, auch wenn mir stilistisch ein paar Sachen missfallen und das ganze auf den ersten Blick nach Erweiterungen schreit.

Ich finds in jedem Fall toll, wenn sich Leute mal hinsetzen und versuchen etwas eigenhändig Umzusetzen, weiter so.

Ich hatte sowas auch mal angefangen. Hab das Projekt aber irgendwie auf Eis gelegt, nachdem ich festgestellt habe, dass es unheimlich viel Arbeit ist, die Ebenenverläufe jedes Akts in einem 3-4 Dimensionalen Array abzubilden. Obwohl das für Akt 1 tatsächlich hervorragend funktioniert hat.
Die Idee dabei war, dass der Bot selbstständig den Weg zu seinem Herrchen findet und zwar vom nächstbesten vorhandenen Wp aus.

Mal schauen ob ich das Projekt nochmal wieder ausgrabe, es ist definitiv verdammt viel Arbeit das ganze so umzusetzen, dass es uneingesckränkt läuft.

Lg
Muddy

P.S.: Sogar kommentiert isses! *sabber*

@Sterni
Ich verstehe die Frage nicht, auch wenn ich bestimmt die Antwort wüsste.
die antwort weiß ich selbst :P
sollte ja nur ein gedankenanstoß sein *g*

er hat hier einsc ript rein gestellt welches in jeden d2nt bot einfach eingefügt werden kann!
das problem ist das er das alles über den moveto befehl erledigt! dieses wirkt zb beim blue sofort zu einem enibug sobald ausserhalb der stadt ist und einen schritt macht!^^

oder soll dieses script nur für eni träger gedacht sein?

ps:
bist ja nur neidisch weil du es nicht vor ihm veröffentlichen konntest xD
sternenlooper is offline  
Old 07/14/2010, 16:45   #5
Administrator
 
Muddy Waters's Avatar
 
elite*gold: 41364
Join Date: Jan 2010
Posts: 22,729
Received Thanks: 12,624
Quote:
Originally Posted by sternenlooper View Post
die antwort weiß ich selbst :P
sollte ja nur ein gedankenanstoß sein *g*

er hat hier einsc ript rein gestellt welches in jeden d2nt bot einfach eingefügt werden kann!
das problem ist das er das alles über den moveto befehl erledigt! dieses wirkt zb beim blue sofort zu einem enibug sobald ausserhalb der stadt ist und einen schritt macht!^^

oder soll dieses script nur für eni träger gedacht sein?

ps:
bist ja nur neidisch weil du es nicht vor ihm veröffentlichen konntest xD
Ich würde mal annehmen, dass es nur für Eniträger gedacht ist, ansonsten hätte der persönliche Wachhund wohl ziemliche Probleme beim hinterherkommen.

Lg
Muddy

P.S.: Nicht wirklich, mein Ansatz ist auch völlig anders, dafür aber eben auch für meinen Geschmack stark unausgereift.
Muddy Waters is offline  
Old 07/14/2010, 17:04   #6
 
flusen's Avatar
 
elite*gold: 0
Join Date: May 2010
Posts: 15
Received Thanks: 11
danke erstma für eure Rückmeldungen!

Quote:
Originally Posted by sternenlooper View Post
habe mir gerade mal durchgelesen was dein kleines script so kann ^^
wenn du dich mal umschaust es gibt auch script von hdin! ein cs leecher ohne kampf und eni script!

wie hast du es ind einem script eigentlich geregelt bei zb blue seinem bot! dort kann man enilos garnicht einstellen (über char config)! wie verhidnerst du es bei ihm den enibug auszulösen!
ok die frage würde wohl besser in deinen threat passen ^^
das Script von hdin kenn ich - aber irgendwie hatte mir da der Bot zu oft am falschen TP gestanden. Und mit dem Script hier könnte ich wenn ich will das komplette CS mitleechen.
Aber an sich soll das ganze hier ja auch kein Konkurrenzscript dazu sein.
Ich habe das Script z.B. nur ganz selten zum Leechen verwendet - brauchte es Anfangs eher für "Bodyguardzwecke" bei der Hellfirequest.

Und die beste Lösung bei Bluebird wegen dem Enibug is entweder zu deinem wechseln
...oder halt nachträglich einbauen (hab jetz hier nu noch nicht geschrieben wie, weil´s doch schon ne weile her is das ich es bei mir gemacht hatte und erst wieder nachschauen muss wie XD )

Quote:
Originally Posted by sternenlooper View Post
habe mal in deins cript geschaut und eines fällt mir halbwegs negativ auf!

das würde bedeuten das der leecher wartet bis die party erstellt ist egal ob der leader überhaupt noch im spiel ist doer nicht! o.O
wäre da ein counter nicht besser als eine endlosschleife?

ausserdem warum lässt du alles in dem script einstellen?
bedenke das einige nutzer hier nicht gerade das verständniss für sowas besitzen!

den ntconfig_leader befehl gibt es schon bei fast jedem bot dazu! also einfach ausnutzen und einbinden!
und die anderen beiden variablen alssen sich auch einfach in die charconfig mit einbauen!

eine lösung für das enibug problem ist ebenfals nicht enthalten wie ich sehen konnte!
dazu msüstest du den move befehl einfach neu einfügen und als neue funktion benennen! ......

trotzdem schöne arbeit
yup - das mit dem Delay is nich wirklich glücklich so... counter hatte ich mal drin aber war auch Zeitweise mist (wegen JBs usw)! Kam auch immer drauf an ob ich über die NTBot oder die NTBotLeech gegangen bin)!
Schätze das beste wär evtl. ne Kombination von beidem!?

Mit den Variablen im Script muss ich gestehen - für mich war es mir egal & für hier hatt ich einfach nich dran gedacht
werd das aba noch ändern!

Tja und mit dem Enibug wie schon gesagt - würde eher empfehlen das über die Charconfig steuerbar zu machen als ne kopierte/geänderte Movefunktion!
Denn kann man auch schön einfach Leaderscripte erstellen bei Bedarf in denen der Leader z.B. bis Tristram Teleportet, Portal für den Follower aufmacht und ab dann auch nur noch läuft


Quote:
Originally Posted by Muddy_Waters View Post
Meinen Segen hast du, auch wenn mir stilistisch ein paar Sachen missfallen und das ganze auf den ersten Blick nach Erweiterungen schreit.

Ich finds in jedem Fall toll, wenn sich Leute mal hinsetzen und versuchen etwas eigenhändig Umzusetzen, weiter so.

Ich hatte sowas auch mal angefangen. Hab das Projekt aber irgendwie auf Eis gelegt, nachdem ich festgestellt habe, dass es unheimlich viel Arbeit ist, die Ebenenverläufe jedes Akts in einem 3-4 Dimensionalen Array abzubilden. Obwohl das für Akt 1 tatsächlich hervorragend funktioniert hat.
Die Idee dabei war, dass der Bot selbstständig den Weg zu seinem Herrchen findet und zwar vom nächstbesten vorhandenen Wp aus.

Mal schauen ob ich das Projekt nochmal wieder ausgrabe, es ist definitiv verdammt viel Arbeit das ganze so umzusetzen, dass es uneingesckränkt läuft.

Lg
Muddy

P.S.: Sogar kommentiert isses! *sabber*

@Sterni
Ich verstehe die Frage nicht, auch wenn ich bestimmt die Antwort wüsste.
Glaub ich gerne mit dem stilistischem (wobei... hättest mal die Urform sehen sollen ) falls du mir da für die Zukunft sagen kannst wie ich´s lieber besser machen soll/kann nur raus damit
Und zum Erweitern gib´s echt viel mögliches... nur keine Ahnung ob überhaupt nen Bedarf an sowas is!
Und wie du schon sagtest - wenn man das ganze richtig machen will is da echt viel Arbeit reinzustecken!
Wobei mich deine Umsetzung des ganzen sehr interessieren würde!

gruss, flusen

P.S.: Ohne Kommentare seh ich meist in meinen eigenen Sachen nich durch^^

**edit**
argh - ich schreib einfach zu langsam^^ ihr habt hier ja scho wieder was geschrieben
werd jetz aba erstma Heimfahren und heut abend nochma gucken was es hier so neues gibt...

**edit2**
Quote:
Originally Posted by sternenlooper View Post
das problem ist das er das alles über den moveto befehl erledigt! dieses wirkt zb beim blue sofort zu einem enibug sobald ausserhalb der stadt ist und einen schritt macht!^^
...deswegen hatt ich´s ja wenigstens oben dazugeschrieben, dass es mit dem Bluebird z.B. dies Problem hat :P
Und der vorhandene Moveto-Befehl is denke ich die beste Lösung. ihn zu kopieren, umzubenennen und den Teleportteil rauszunehmen oder so würde ja bedeuten zweimal mehr o weniger die gleiche Funktion drin zu haben obwohl man ja auch in die vorhandene "nur" eine weitere Abfrage einbauen müsste um das gleiche zu bewerkstelligen.
Quote:
Originally Posted by Muddy_Waters View Post
Ich würde mal annehmen, dass es nur für Eniträger gedacht ist, ansonsten hätte der persönliche Wachhund wohl ziemliche Probleme beim hinterherkommen.

Lg
Muddy

P.S.: Nicht wirklich, mein Ansatz ist auch völlig anders, dafür aber eben auch für meinen Geschmack stark unausgereift.
Primär war es für Eniträger. Ansonsten gäb es wieder soviel was es zu beachten gibt (auch wieder in Hinsicht auf die verschiedenenD2NTModversionen) das wir wieder beim Thema unausgereift sind...

Aber wie gesagt - für meine Ansprüche als ich den geschrieben hab hat´s genügt. Und hoffe ja mit genug Feedback geht das ganze evtl. mal in ne ausgereiftere Richtung (man wächst ja mit der Aufgabe). Nur die Arbeit ohne das es evtl. überhaupt einer brauch/will würd ich mir auch ungern machen
flusen is offline  
Old 04/26/2011, 21:47   #7
 
elite*gold: 0
Join Date: Mar 2011
Posts: 17
Received Thanks: 0
Ich bin mal so frei und grabe diesen doch nun etwas älteren Thread wieder aus.
Ich nutze als Ausgangsbasis den Bluebird und spiele Classic, deswegen muss ich dieses Problem lösen und kann es nicht umgehen
Leider habe ich noch nicht so viel Ahnung von der ganzen Materie, deswegen könnte es sein, dass meine Fragen/Probleme recht stupide klingen.

Ich habe mal versucht das Enigmaproblen durch die geänderte moveto zu umgehen. Leider beendet der leecher das Spiel sobald er ausserhalb der Town einen Schritt macht.
Ich habe das doch richtig verstanden, dass die dazugefügte Anleitung von flusen das Enigmaproblem auch beim Bluebird umgeht oder nicht?

Meine Vermutung ist, dass ich beim ersetzen der Funktion NTM_MoveTo was falsch gemacht habe. Der Teil, der aus der ursprünglichen Funktion NTM_MoveTo ersetzt, also erstmal gelöscht, endet doch genau an der markierten Stelle oder? Und der Rest muss meines Verständnisses nach so stehen bleiben....

Code:
function NTM_MoveTo(areaid, x, y, retry, clearpath)
{
var i, n;
var _teleport;
var _path;
var _retry = 0;

if(x == me.x && y == me.y)
return true;

if(arguments.length < 4)
retry = 3;

if(arguments.length < 5)
clearpath = false;

if(NTC_InTown() || NTC_GetSkillLevel(54) < 1)
_teleport = false;
else
_teleport = true;

_path = GetPath(areaid, me.x, me.y, x, y, _teleport);

if(!_path)
return false;

for(i = 0 ; i < _path.length ; i++)
{
for(n = 0 ; n < 2 ; n++)
{
if(_teleport)
{
if(NTM_TeleportTo(_path[i][0]+Random(-n, n), _path[i][1]+Random(-n, n)))
break;
}
else
{
if(NTC_InTown()) {
if(NTM_WalkTo(_path[i][0], _path[i][1]))
break;
}
else {
NTC_SendLogToOOG(NTC_LOG_COMMON, "ÿc8" + "Enigmabug - quit game");
ExitGame();
}
}
}

if(n < 2)
{
if(clearpath)
{
if(!NTA_ClearPosition(20, true, 2))
return false;

NTP_DoPrecast(false);

NTM_MoveTo(me.areaid, _path[i][0], _path[i][1], 1);
}
}
else if(_retry < retry)
{
_path = GetPath(areaid, me.x, me.y, x, y, _teleport);

if(!_path)
return false;

i = -1;
_retry++;
}
else
return false;
}

return true;
} 
 [COLOR="SeaGreen"]// Hier endet die Funktion denke ich.[/COLOR]
function NTM_MoveToPresetUnit(areaid, unittype, classid, offsetx, offsety, clearpath)
{
	var i, n;
	var _unit;

	if(arguments.length < 4)
	{
		offsetx = 0;
		offsety = 0;
	}
KingHigh is offline  
Old 04/27/2011, 21:53   #8
Administrator
 
Muddy Waters's Avatar
 
elite*gold: 41364
Join Date: Jan 2010
Posts: 22,729
Received Thanks: 12,624
Eigentlich wollte ich dir die Frage gestern schon beantworten, bin aber nicht mehr dazu gekommen.

Ich mache es mal kurz und schmerzlos:
Eine derart formatierte Funktion kann vielleicht die Laufzeitumgebung lesen, aber alles was zwei Beine hat und atmet wird kläglich daran scheitern. Und zwar völlig unabhängig davon, ob man in der Materie drin ist oder nicht.

Schritt 1 ist also erstmal das Herstellen eines ansprechenden Formates; eingerückt und mit grobem BBCode Syntax Highlighting versehen, sieht das dann so aus:
Code:
[B][I][Color=Navy]function[/Color][/I][/B] NTM_MoveTo(areaid, x, y, retry, clearpath)
{
	[B][I][Color=Navy]var[/Color][/I][/B] i, n;
	[B][I][Color=Navy]var[/Color][/I][/B] _teleport;
	[B][I][Color=Navy]var[/Color][/I][/B] _path;
	[B][I][Color=Navy]var[/Color][/I][/B] _retry = [Color=Red]0[/Color];

	[B][I][Color=Navy]if[/Color][/I][/B](x == me.x && y == me.y)
		[B][I][Color=Navy]return true[/Color][/I][/B];

	[B][I][Color=Navy]if[/Color][/I][/B](arguments.length < [Color=Red]4[/Color])
		retry = [Color=Red]3[/Color];

	[B][I][Color=Navy]if[/Color][/I][/B](arguments.length < [Color=Red]5[/Color])
		clearpath = [B][I][Color=Navy]false[/Color][/I][/B];

	[B][I][Color=Navy]if[/Color][/I][/B](NTC_InTown() || NTConfig_Leech)
		_teleport = [B][I][Color=Navy]false[/Color][/I][/B];
	[B][I][Color=Navy]else[/Color][/I][/B]
		_teleport = [B][I][Color=Navy]true[/Color][/I][/B];

	[B][I][Color=Navy]if[/Color][/I][/B](NTC_GetSkillLevel([Color=Red]54[/Color]) < [Color=Red]1[/Color] && !NTConfig_Leech)
	{
		ExitGame();
		SendCopyData([Color=Gray]"D2NT Manager"[/Color], null, 7<<16, [Color=Gray]"ÿE00000Enigmabug- quit game"[/Color]);
	}
	
	_path = GetPath(areaid, me.x, me.y, x, y, _teleport);

	[B][I][Color=Navy]if[/Color][/I][/B](!_path)
		[B][I][Color=Navy]return false[/Color][/I][/B];

	[B][I][Color=Navy]for[/Color][/I][/B](i = [Color=Red]0[/Color] ; i < _path.length ; i++)
	{
		[B][I][Color=Navy]for[/Color][/I][/B](n = [Color=Red]0[/Color] ; n < [Color=Red]2[/Color] ; n++)
		{
			[B][I][Color=Navy]if[/Color][/I][/B](_teleport)
			{
				[B][I][Color=Navy]if[/Color][/I][/B](NTM_TeleportTo(_path[i][[Color=Red]0[/Color]]+Ran[B][I][Color=Navy]do[/Color][/I][/B]m(-n, n), _path[i][[Color=Red]1[/Color]]+Ran[B][I][Color=Navy]do[/Color][/I][/B]m(-n, n)))
					[B][I][Color=Navy]break[/Color][/I][/B];
			}
			[B][I][Color=Navy]else if[/Color][/I][/B](NTC_InTown() || NTConfig_Leech)
			{
				[B][I][Color=Navy]if[/Color][/I][/B](NTM_WalkTo(_path[i][[Color=Red]0[/Color]], _path[i][[Color=Red]1[/Color]]))
					[B][I][Color=Navy]break[/Color][/I][/B];
			}
		}
	}

	[B][I][Color=Navy]if[/Color][/I][/B](n < [Color=Red]2[/Color])
	{
		[B][I][Color=Navy]if[/Color][/I][/B](clearpath)
		{
			[B][I][Color=Navy]if[/Color][/I][/B](!NTA_ClearPosition([Color=Red]20[/Color], [B][I][Color=Navy]true[/Color][/I][/B], [Color=Red]2[/Color]))
				[B][I][Color=Navy]return false[/Color][/I][/B];

			NTP_DoPrecast([B][I][Color=Navy]false[/Color][/I][/B]);

			NTM_MoveTo(me.areaid, _path[i][[Color=Red]0[/Color]], _path[i][[Color=Red]1[/Color]], [Color=Red]1[/Color]);
		}
	}
	[B][I][Color=Navy]else if[/Color][/I][/B](_retry < retry)
	{
		_path = GetPath(areaid, me.x, me.y, x, y, _teleport);

		[B][I][Color=Navy]if[/Color][/I][/B](!_path)
			[B][I][Color=Navy]return false[/Color][/I][/B];

		i = -[Color=Red]1[/Color];
		_retry++;
	}
	[B][I][Color=Navy]else[/Color][/I][/B]
		[B][I][Color=Navy]return false[/Color][/I][/B];

	[B][I][Color=Navy]return true[/Color][/I][/B];
}
Jetzt fällt eigentlich direkt auf, dass einige Dinge obsolet sind, zumal du ja in CL sowieso kein Teleport per Eni hat.

Die Funktion lässt sich damit wie folgt vereinfachen:
Code:
[B][I][Color=Navy]function[/Color][/I][/B] NTM_MoveTo(areaid, x, y, retry, clearpath)
{
	[B][I][Color=Navy]var[/Color][/I][/B] i, n;
	[B][I][Color=Navy]var[/Color][/I][/B] _teleport;
	[B][I][Color=Navy]var[/Color][/I][/B] _path;
	[B][I][Color=Navy]var[/Color][/I][/B] _retry = [Color=Red]0[/Color];

	[B][I][Color=Navy]if[/Color][/I][/B](x == me.x && y == me.y)
		[B][I][Color=Navy]return true[/Color][/I][/B];

	[B][I][Color=Navy]if[/Color][/I][/B](arguments.length < [Color=Red]4[/Color])
		retry = [Color=Red]3[/Color];

	[B][I][Color=Navy]if[/Color][/I][/B](arguments.length < [Color=Red]5[/Color])
		clearpath = [B][I][Color=Navy]false[/Color][/I][/B];

	[B][I][Color=Navy]if[/Color][/I][/B](NTC_InTown() || NTC_GetSkillLevel([Color=Red]54[/Color]) < [Color=Red]1[/Color])
		_teleport = [B][I][Color=Navy]false[/Color][/I][/B];
	[B][I][Color=Navy]else[/Color][/I][/B]
		_teleport = [B][I][Color=Navy]true[/Color][/I][/B];
	
	_path = GetPath(areaid, me.x, me.y, x, y, _teleport);

	[B][I][Color=Navy]if[/Color][/I][/B](!_path)
		[B][I][Color=Navy]return false[/Color][/I][/B];

	[B][I][Color=Navy]for[/Color][/I][/B](i = [Color=Red]0[/Color] ; i < _path.length ; i++)
	{
		[B][I][Color=Navy]for[/Color][/I][/B](n = [Color=Red]0[/Color] ; n < [Color=Red]2[/Color] ; n++)
		{
			[B][I][Color=Navy]if[/Color][/I][/B](_teleport)
			{
				[B][I][Color=Navy]if[/Color][/I][/B](NTM_TeleportTo(_path[i][[Color=Red]0[/Color]]+Ran[B][I][Color=Navy]do[/Color][/I][/B]m(-n, n), _path[i][[Color=Red]1[/Color]]+Ran[B][I][Color=Navy]do[/Color][/I][/B]m(-n, n)))
					[B][I][Color=Navy]break[/Color][/I][/B];
			}
			[B][I][Color=Navy]else[/Color][/I][/B]
			{
				[B][I][Color=Navy]if[/Color][/I][/B](NTM_WalkTo(_path[i][[Color=Red]0[/Color]], _path[i][[Color=Red]1[/Color]]))
					[B][I][Color=Navy]break[/Color][/I][/B];
			}
		}
	}

	[B][I][Color=Navy]if[/Color][/I][/B](n < [Color=Red]2[/Color])
	{
		[B][I][Color=Navy]if[/Color][/I][/B](clearpath)
		{
			[B][I][Color=Navy]if[/Color][/I][/B](!NTA_ClearPosition([Color=Red]20[/Color], [B][I][Color=Navy]true[/Color][/I][/B], [Color=Red]2[/Color]))
				[B][I][Color=Navy]return false[/Color][/I][/B];

			NTP_DoPrecast([B][I][Color=Navy]false[/Color][/I][/B]);

			NTM_MoveTo(me.areaid, _path[i][[Color=Red]0[/Color]], _path[i][[Color=Red]1[/Color]], [Color=Red]1[/Color]);
		}
	}
	[B][I][Color=Navy]else if[/Color][/I][/B](_retry < retry)
	{
		_path = GetPath(areaid, me.x, me.y, x, y, _teleport);

		[B][I][Color=Navy]if[/Color][/I][/B](!_path)
			[B][I][Color=Navy]return false[/Color][/I][/B];

		i = -[Color=Red]1[/Color];
		_retry++;
	}
	[B][I][Color=Navy]else[/Color][/I][/B]
		[B][I][Color=Navy]return false[/Color][/I][/B];

	[B][I][Color=Navy]return true[/Color][/I][/B];
}
Womit man eigentlich wieder Fast bei der Variante gelandet ist, wie sie auch im Vanilla D2NT zum Einsatz kommt. Aber das aus irgendwelchen modifizierten Varianten herleiten macht schließlich viel mehr Spaß, als es einfach nur stupide aus der Vanilla Version zu kopieren.

LG
Muddy
Muddy Waters is offline  
Thanks
1 User
Old 04/30/2011, 01:30   #9
 
elite*gold: 0
Join Date: Mar 2011
Posts: 17
Received Thanks: 0
.
KingHigh is offline  
Old 05/04/2011, 13:53   #10
 
elite*gold: 0
Join Date: Mar 2007
Posts: 192
Received Thanks: 55
hab den bot mal eben getestet. er rennt wie ein idiot immer zur kiste und zurück zum tp spot.
2. sollte es auch die funktion geben, dass er automatisch, wie der leechbot, ins next game folgt. wäre praktisch.
atze1990 is offline  
Old 04/18/2012, 23:15   #11
 
prrovoss's Avatar
 
elite*gold: 0
Join Date: Jul 2010
Posts: 213
Received Thanks: 36
mit dem muddys d2nt läuft das skript nicht oder? bei mri steht der follower die ganze zeit nur rum und macht nix. leader name stimmt auf jeden fall und alles andere sollte auch richtig eingestellt sein.

er lädt den leader auch zur party ein, er erkennt ihn also korrekt odeR?
prrovoss is offline  
Old 04/19/2012, 00:48   #12
 
elite*gold: 0
Join Date: Nov 2011
Posts: 95
Received Thanks: 30
also ich hatte auch einige followbots ausm netz getestet und alle für mist befunden. hab nun einen eigenen geschrieben der super funzt. er folgt sogar über areagrenzen hinweg ohne in town gehen zu müssen (außer direkt aus der town heraus, hier buggen teleport chars natürlich öfters).

es gibt sogar noch eine stelle im skript wo man attacks adden kann (bei range <= 8 macht er delay oder eben attack, bei range > 8 geht er zum leader).

war allerdings einiges an arbeit und testen, deswegen will ich das script nicht kostenlos herausgeben bzw. public machen. bei interesse einfach melden.
Aramox is offline  
Old 04/20/2012, 17:10   #13
 
elite*gold: 20
Join Date: May 2009
Posts: 3,882
Received Thanks: 438
Quote:
Originally Posted by prrovoss View Post
mit dem muddys d2nt läuft das skript nicht oder? bei mri steht der follower die ganze zeit nur rum und macht nix. leader name stimmt auf jeden fall und alles andere sollte auch richtig eingestellt sein.

er lädt den leader auch zur party ein, er erkennt ihn also korrekt odeR?
habs bei mir jetzt so hingekriegt das er mit in tps kommt und auch mir folgt (jedenfalls bei baal im thron) bzw mitfightet (hdin) allerdings musste ichselber ins tp gehen

kann man da noch eine zeile adden sodass die bots von selber ins tp gehen bzw auf befehl wie z.b. "s" (im hardcore bereich wird das als safe benutzt um ein tp als safe zu kennzeichenn) ?
Mecco-Pekko is offline  
Old 05/09/2013, 20:50   #14
 
elite*gold: 0
Join Date: Mar 2008
Posts: 117
Received Thanks: 3
bei mir wird der leader im game eingeladen in eine party und dann passiert nix mehr, wenn ich mit dem leader ein portal mache passiert auch nix.

und wie kann man mehrer follower nutzen? etwa auch das die das gleiche game joinen wie der leader?
KingPinShadow is offline  
Old 05/15/2013, 00:14   #15
 
NerDxx™'s Avatar
 
elite*gold: 0
Join Date: Mar 2010
Posts: 559
Received Thanks: 71
Quote:
Originally Posted by KingPinShadow View Post
bei mir wird der leader im game eingeladen in eine party und dann passiert nix mehr, wenn ich mit dem leader ein portal mache passiert auch nix.

und wie kann man mehrer follower nutzen? etwa auch das die das gleiche game joinen wie der leader?
NTConfig_Leader = ""; // Name des Leader-Chars
- in der Charconfig public auf true setzen

was meinst du damit ??
Code:
und wie kann man mehrer follower nutzen? etwa auch das die das gleiche game joinen wie der leader?
Um jemandem zu folgen muss man ihm joinen ..
NerDxx™ is offline  
Thanks
1 User
Reply


Similar Threads Similar Threads
d2nt leech bot einstellen... d2nt config error..
07/09/2010 - Diablo 2 Programming - 2 Replies
hey mein bot zeigt mir die ganze zeit ein error und habe die einstellungen in der anleitung genauso... was tun? habe leader acc/ char name eingetragen. beide flistet. die eine datei aus baalleech rausgeholt und umbenannt und die // weg genommen habe beim manager auch auf d2nt leech eingestelln
D2NT 3.1
06/05/2010 - Diablo 2 - 6 Replies
RapidShare: 1-CLICK Web hosting - Easy Filehosting D2NT 3.1 NTBOT 4.2 3.1 - Now, Say () function Supports Unicode String in Case of Merc's item item.itemdesc Fixed Crash Bug Fixed When calling SetStatusText () function with long String * Max Length is 39
D2NT - Modded D2NT
11/08/2009 - Diablo 2 - 9 Replies
Hey, wollte nach ner langen Pause mal wieder den Bot starten. Hatte damals den normalen D2NT, hat mir auch gut gefallen. Frage mich grad nur welchen ich mir jetzt laden soll- den D2NT oder den modded D2NT? Wo ist der Unterschied?
D2Nt
06/21/2009 - Diablo 2 - 2 Replies
Heyho Guys, habe gestern mal wieder mit d2 angefangen und direkt bis hell Rushed :) Nun hab ich d2nt angeschmissen, install etc. lief wie geschmiert.. Nur hab ich nun das Problem die soso geht zu Pindel rein portet sich 3 mal ums rote portal und schreibt pindel failt... Den bot hab ich hier aus der Botübersicht... Was mach ich falsch ? oder gibt es schon ein update für die paths ? Liebe Grüße Biggy
D2NT 1.7.2 und NTBot 3.6 , Modded D2NT 1.7.2 und NTBot 3.6 welcher ist besser?
05/23/2009 - Diablo 2 - 11 Replies
Modded D2NT 1.7.2 und NTBot 3.6 D2NT 1.7.2 und NTBot 3.6 kann mir jemand sagen welcher von denen besser ist? oder wo die unterschiede sind?



All times are GMT +2. The time now is 19:46.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.