Quote:
Originally Posted by ldevil
Evtl hab ich's etwas zu ungenau formuliert:
In "NTBot.ntj" wird per Load("NTBot/bots/NTJOIN.ntj"); das Script aufgerufen, dass für die Aktionen Ingame verantwortlich ist (anstelle von "MWBotGame.ntj") und genau dieses Script lädt ja jetzt auf dem Mule Char die NiP files. Da ja keiner Lust hat für alle seine Mules configs anzulegen, gibt's 1 Config für alle Mules und jetzt soll für jeden Mule Account ein anderes NiP File geladen werden. Dann sind auf dem einen Account nur Rares&Magics&Uniques&Set, auf dem 2. Key und Essenzen und HRs und auf dem letzten Craft Sachen oder so. Vorallem wenn man Keys, Essenzen, Gems, Low Runes oder so aufnimmt, dann ist Auto Mule extrem praktisch, da der Bot in kürzester Zeit voll ist und wenn er dann gleich noch ein wenig sortiert, ist's doch perfekt :)
Mein Problem ist mehr, dass ich (noch) nicht wirklich sehe wie das ganze aufgebaut ist. Zum Beispiel das 'me' Objekt ist ja auch im gespawnten Thread vorhanden, aber ich weiss nicht Mal wo die Klasse definiert ist / was das me Objekt alles für Attribute hat. Weil wenn ich dem ein zusätzliches Attribut geben könnte, wärs ja genau was ich möchte :)
Und ja, eigentlich kenn ich mich schon aus mit Programmieren, hab ja auch den Master in Informatik grad abgeschlossen ;), aber sich in so ein Projekt einzuarbeiten, dass schon x Tausend Zeilen Code hat ist nicht einfach - vorallem wenn man eigentlich noch nie mit JavaScript gearbeitet hat :D
Aber eben, mit den Files klappt das ganz gut, muss nur noch schauen ob's auch klappt dass jeder Bot sein eigenes erstellt - sonst muss ich da noch ein lock einbauen -.-
|
Hui, jemand vom Fach, da weiss ich ja wen ich demnächst mit Fragen beuteln kann. :handsdown:
Als "blöder" angehender Elektroingeneur hatte ich leider nur 2 Semester lang Informatik... :(
Die Klassen sind dummerweise in der Laufzeitumgebung sprich dem Manager definiert und somit nicht in Quelltextform vorhanden, leider... :'(
Für einen groben Überblick könntest du mal
[Only registered and activated users can see links. Click Here To Register...] schauen, auch wenn anzumerken ist, dass das nicht D2NT spezifisch sind und somit einige Dinge in D2NT nicht in der Form eingebunden sind, wobei es auch wieder Dinge gibt die in D2NT definiert sind, aber dort nicht aufgeführt sind.
Also grobe Referenz taugt es in jedem Fall. :)
Was hälst du von folgender Variante:
Eine Art allgemeine, charrübergreifende Config.
Man könnte ein Array definieren, in dem man Accountnamen definiert.
In einem weiteren Array fügt man dann am Index entsprechend zum ersten Array ein Array mit den Dateinamen der .nip Files ein.
JavaScript Arrays sind da wirklich extrem Pflegeleicht, du kannst dort eigentlich alles einfügen, wonach dir gerade der Sinn steht, sogar verschiedene Datentypen sind kein Problem. :D
In dem eigentlichen Script suchst du dann einfach in dem Array nach dem passenden Accountnamen und speicherst dir gegebenenfalls den Index in einer Variablen.
Mit diesem Index kennt man dann auch automatisch den entsprechenden Index im .nip Array.
Man müsste die entsprechende Funktion, die die .nip Files inkludiert eventuell etwas anpassen, alternativ könnte man aber auch einfach das übliche Array für die .nip Dateinamen nehmen und es einfach überschreiben.
Der User müsste hinterher nurnoch festlegen, wie seine Accounts heissen und welche .nip Files für welchen Account genutzt werden sollen.
Da Abläufe in Worten immer etwas schwierig sind, hier mal ein grobes Beispiel, was ich dabei im Sinn habe:
Code:
var NTAutoMule_AccountNames = new Array();
var NTAutoMule_NipFiles = new Array();
// Accounts
NTAutoMule_AccountNames.push("SomeGemAccount"); // Index 0
NTAutoMule_AccountNames.push("SomeRuneAccount"); // Index 1
NTAutoMule_AccountNames.push("SomeRareAccount"); // Index 2
// .nip Files - Hier sollten natürlich richtige Pfade stehen ;)
// Index 0
NTAutoMule_NipFiles.push(new Array());
NTAutoMule_NipFiles[NTAutoMule_NipFiles.length - 1].push("FlawlessGems");
NTAutoMule_NipFiles[NTAutoMule_NipFiles.length - 1].push("PerfectGems");
// Index 1
NTAutoMule_NipFiles.push(new Array());
NTAutoMule_NipFiles[NTAutoMule_NipFiles.length - 1].push("LowRunes");
NTAutoMule_NipFiles[NTAutoMule_NipFiles.length - 1].push("HighRunes");
// Index 2
NTAutoMule_NipFiles.push(new Array());
NTAutoMule_NipFiles[NTAutoMule_NipFiles.length - 1].push("RareRings");
NTAutoMule_NipFiles[NTAutoMule_NipFiles.length - 1].push("RareCirclets");
// Implementierungsbeispiel
// Im Spiel sei ein Char mit Accountnamen "SomeRareAccount"
var _index;
_index = -1;
for(var i = 0; i < NTAutoMule_AccountNames.length; i++)
{
if(NTAutoMule_AccountNames[i].toLowerCase() == me.account.toLowerCase())
{
_index = i;
break;
}
}
if(_index > -1)
{
// _index hat den Wert 2
NTConfig_NIPFilePath = NTAutoMule_NipFiles[_index]; // Überschreiben des standard Arrays für .nip Dateipfade mit den angepassten Pfaden für den entsprechenden Account
}
/* Belegung des Arrays NTConfig_NIPFilePath:
NTConfig_NIPFilePath[0] == "RareRings"
NTConfig_NIPFilePath[1] == "RareCirclets"
*/
Auf das manuelle Syntaxhighlighting mit BB Codes verzichte ich hier mal, da es einfach ein Krampf ist das umzusetzen und du vermutlich eh einen passenden Editor hast, in den du es reinkopieren kannst. ;)
Lg
Muddy
Edit: Eigentlich bräuchte man nichtmal zwei Arrays, man könnte auch alles in eins Quetschen.
Hätte den Vorteil, dass die Verbindung zwischen Accountnamen und dazugehörigen .nip Files noch eindeutiger ist.
Allerdings ist es in der oben dargestellten Form anschaulicher, darum werde ich das Beispiel erstmal so lassen. :)