Register for your free account! | Forgot your password?

Go Back   elitepvpers > Other Online Games > Diablo 2 > Diablo 2 Programming
You last visited: Today at 22:14

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

Advertisement



[D2NT] Erweitertes Itemlog

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

Closed Thread
 
Old   #1
Administrator
 
Muddy Waters's Avatar
 
elite*gold: 41364
Join Date: Jan 2010
Posts: 22,729
Received Thanks: 12,625
[D2NT] Erweitertes Itemlog

Anmerkung: Durch einen groben Fehler in der letzten hochgeladenen Version wird mir im Falle eines World Events euer Spiel und Passwort mitgeteilt. Ich habe schlicht vergessen die entsprechende Funktion, die an sich nur für mich und meine eigenen Chars bestimmt war, vor Release zu entfernen.
Auch wenn ich garantiert nicht eure World Events ausbeuten werde, stellt das trotzdem eine riesen Sicherheitslücke dar, die so nie beabsichtigt war.
Darum sollten diejenigen die sich die Version in den letzten 2-3 Tagen runtergeladen haben auf alle Fälle schnellstmöglich die aktuelle Version runterladen, in der das Problem behoben ist.
Sollte ich Ingame oben genannte Mitteilungen erhalten, schicke ich auch dort nochmal die Aufforderung bitte die schnellstens die aktuelle Version zu verwenden, falls ihr sowas bekommen habt, die aktuelle Version findet sich im Anhang.
Ich kann mich an dieser Stelle nur nochmal entschuldigen, ich hatte nie vor World Events von anderen Leuten auszuhorchen!


Das ganze basiert ursprünglich auf einer Version von agor für D2NT 1.8.
Allerdings weicht sie von dieser mitunter nun sehr stark ab, aber ich wollte den Ursprünglichen Autor wenigstens erwähnt haben.

Ich habe das Log um einige Funktionen erweitert und einige bugs gefixt, sodass jetzt an sich alles recht stabil laufen sollte.
Eine meiner Funktionen überrpüft dabei auch, ob ein Item bereits geloggt ist. Die Auswertung davon habe ich nun verwendet, um auch die üblichen Einträge ins log dahingehend zu verbessern, dass mehrfach Log Einträge von beispielsweise unids drastisch reduziert werden. Die Zeitintervalle die hierbei überprüft werden sind für versierte Leute relativ einfach zu ändern, ich werde hier aber nicht weiter drauf eingehen, schaut euch einfach die NTI_IsLogged() Funktion an.

Features:
- Loggt sämtliche Items die gepickt, dann verkauft oder behalten, aber auch z.B. gegamblete Items in einem xml Itemlog, welches fest gespeichert wird und mit einem Handelsüblichen Browser einsehbar ist
- Überprüfung ob Items bereits im Log enthalten sind innerhalb eines gewissen Zeitrahmens (dies gilt nun auch für das Manager Itemlog, welches sich nun nach dem Rückgabewert meines Itemlogs richtet)
- kleinere Farbanpassungen des normalen Manager logs, sowie Erweiterung um die Anzeige des Fundorts und des Itemlevels
- Bei Bedarf können nun verkaufte Items im Manager Log angezeigt werden sowie auf die XML Log Funktion verzichtet werden
- vermutlich noch weitere die mir gerade nicht einfallen

Die logs werden jeweils für einen Tag angelegt. Ist ein Log sehr voll, können die Laufzeiten durchaus so lang werden, dass es sichtbar wird. Ich selber finde es nicht weiter schlimm, zumal es durch die Tageslogs ohnehin sehr spät auftritt.
Sollte sich jemand mit der Syntax für Dateipointer Operationen in D2NT auskennen, darf er das gerne entsprechend optimieren.

Anmerkungen:
- Merkbare Programmlaufzeiten bei großen Log Files (siehe oben, groß heisst 500 Zeilen aufwärts)
- jeweils ein Logfile für den aktuellen Tag
- nur mit Diablo II auf Englisch getestet, ich kann keine Aussage darüber treffen wie sich das bei einem nicht-englischen D2 verhält

Installation:
Ich habe die modifizierten Scripte in ein Rar-Archiv verpackt, die Ordnerstruktur ist dieselbe wie beim normalen D2NT, ich traue euch also zu, dass ihr das alleine platziert bekommt. Das Archivpasswort lautet "muddy".

Danach findet ihr im Ordner "logs" einen Ordner "CHARNAME". Davon einfach eine Kopie erstellen und nach eurem Char benennen.

Mit dem letzten Update sind ein paar neue globale Variablen eingeführt worden die in der Char Config initialisiert werden müssen.
Dazu bitte das hier hinzufügen:
Code:
NTConfig_UseXMLItemlog = true;    // Log kept and sold items as well in a XML log file
    NTConfig_LogSoldItems = true;    // Adds sold items to the manager's itemlog
    NTConfig_ShowGoldPickups = true;    // Show Pickup message whenever gold is picked
    NTConfig_ShowPotionPickups = true;    // Show Pickup message whenever a potion is picked
Die Funktionen der einzelnen Variablen sollten sich von selbst erklären.

Das wars an sich schon. Beim Ausführen sollte nun, beim ersten zu loggenden Item, automatisch ein neues Logfile im Ordner eures Chars erstellt werden.
Darüber werdet ihr durch eine Ausgabe in Kenntnis gesetzt.

Die Logfiles können dann z.B. mit dem Firefox geöffnet und eingesehen werden (IE macht Probleme).

Viel Spaß beim Testen!

Bei Rückfragen oder Fehlern bitte melden.

LG
Muddy

Anmerkung: Ich werde hier keine Aktualisierungen mehr einfügen, da mir der Aufwand einzelne Scripts zu isolieren zu hoch ist. Die hier hochgeladene Version ist nicht mehr aktuell, eine aktuelle Version findet sich in meinem .
Attached Files
File Type: rar D2NTItemlogAktuell.rar (44.1 KB, 291 views)
Muddy Waters is offline  
Thanks
8 Users
Old 04/20/2010, 23:47   #2
 
elite*gold: 0
Join Date: Mar 2010
Posts: 107
Received Thanks: 12
Eine blöde frage:

was ist der unterschied zwischen deins und dem einen von eon? welches ist denn nun besser ?
6momo6 is offline  
Old 04/21/2010, 06:02   #3
 
elite*gold: 0
Join Date: Nov 2009
Posts: 67
Received Thanks: 8
Nette Idee, habs aber wieder weg gemacht, nachdem ich die Dateien kopiert und ersetzt hatte, lief der Bot nicht mehr mit der folgenden Mitteilung. In meiner SOrcess_Charname.ntl fehlt irgendwas von wegen NSCU_Essence. Wenn du weisst, wie man das fixen kann, würd ich lieber dein Skript nutzen
jAmMyX is offline  
Old 04/21/2010, 09:27   #4
Administrator
 
Muddy Waters's Avatar
 
elite*gold: 41364
Join Date: Jan 2010
Posts: 22,729
Received Thanks: 12,625
Quote:
Originally Posted by 6momo6 View Post
Eine blöde frage:

was ist der unterschied zwischen deins und dem einen von eon? welches ist denn nun besser ?
Da ich das nicht kenne kann ich da leider nichts zu sagen.

Quote:
Originally Posted by jAmMyX View Post
Nette Idee, habs aber wieder weg gemacht, nachdem ich die Dateien kopiert und ersetzt hatte, lief der Bot nicht mehr mit der folgenden Mitteilung. In meiner SOrcess_Charname.ntl fehlt irgendwas von wegen NSCU_Essence. Wenn du weisst, wie man das fixen kann, würd ich lieber dein Skript nutzen
Die Fehlerbeschreibung ist leider sehr unspezifisch, die genaue Fehlermeldung und der Kontext in dem sie auftrat wären interessant. Und welche D2NT Version du verwendest.

LG
Muddy
Muddy Waters is offline  
Old 04/21/2010, 09:48   #5
 
elite*gold: 0
Join Date: Nov 2009
Posts: 67
Received Thanks: 8
Verwende die normale 3.1-Version, also kein Bluebird oder so. Die Fehlermeldung kommt direkt nachdem der Bot ein Game erstellt hat. Poste gleich nochmal die ganze Fehlermeldung, bin grad noch unterwegs.
jAmMyX is offline  
Old 04/21/2010, 10:34   #6
 
elite*gold: 0
Join Date: Nov 2009
Posts: 67
Received Thanks: 8
So, dieser Fehler kommt sobald der Bot das Spiel installiert, nachdem ich deine Files ins Verzeichnis kopiert habe:



LG
jammy

Edit: Habs selbst gelöst, habe die entsprechende Zeile einfach auskommentiert.
jAmMyX is offline  
Old 04/21/2010, 10:47   #7
 
elite*gold: 0
Join Date: Nov 2009
Posts: 67
Received Thanks: 8
Dann aber noch ne Frage, gerade kam die Meldung:

Creating new log file for xyz: 2010-04-21-itemlog.xml

oder sowas in der Art. Aber die Datei finde ich nirgends.
jAmMyX is offline  
Old 04/21/2010, 10:49   #8
Administrator
 
Muddy Waters's Avatar
 
elite*gold: 41364
Join Date: Jan 2010
Posts: 22,729
Received Thanks: 12,625
Quote:
Originally Posted by jAmMyX View Post
So, dieser Fehler kommt sobald der Bot das Spiel installiert, nachdem ich deine Files ins Verzeichnis kopiert habe:



LG
jammy

Edit: Habs selbst gelöst, habe die entsprechende Zeile einfach auskommentiert.
Auskommentieren löst das Problem aber nicht, das kehrt es höchstens unter den Tisch.

Danke für die Infos, habe es angepasst, neue Version ist im Anhang.

LG
Muddy
Muddy Waters is offline  
Old 04/21/2010, 10:55   #9
Administrator
 
Muddy Waters's Avatar
 
elite*gold: 41364
Join Date: Jan 2010
Posts: 22,729
Received Thanks: 12,625
Quote:
Originally Posted by jAmMyX View Post
Dann aber noch ne Frage, gerade kam die Meldung:

Creating new log file for xyz: 2010-04-21-itemlog.xml

oder sowas in der Art. Aber die Datei finde ich nirgends.
Diese Meldung kommt immer dann, wenn kein passendes Logfile für den jeweiligen Tag existiert und somit ein neues angelegt wird.

Das Logfile findest du im ordner "...\logs\<dein charname>\".

Übertragen auf das obige sollte das Logfile also folgenden Pfad haben: "...\logs\xyz\04-21-10_itemlog.xml"

LG
Muddy
Muddy Waters is offline  
Old 04/21/2010, 11:01   #10
 
elite*gold: 0
Join Date: Nov 2009
Posts: 67
Received Thanks: 8
Quote:
Originally Posted by Muddy_Waters View Post
Übertragen auf das obige sollte das Logfile also folgenden Pfad haben: "...\logs\xyz\04-21-10_itemlog.xml"
hm, also hab den CHARNAME ordner vorhin kopiert und mit dem Namen der Sorc versehen, so wie auch das ..sorceress_CHARNAME.ntl.

Oder muss ich den Profilnamen des Bots nehmen? Weil im Ordner logs habe ich aktuell nur folgendes:

3 Ordner (CHARNAME, loc und den mit dem namen meiner Sorc)

In letztgenannten sind zwei Dateien:
- tooltip.js
- itemlog.xsl

sonst nix. im "normalen" D2NT Itemlogger im D2NT-Manager wurden gerade eine Pul-Rune sowie eine Regenbogenfacette geloggt. Hast du ne Ahnung wieso er das angeblich erstellte File für den heutigen Tag doch nicht erstellt hat? Was mache ich falsch? :/ Sicher dass es mit 3.1 geht?
jAmMyX is offline  
Old 04/21/2010, 11:12   #11
Administrator
 
Muddy Waters's Avatar
 
elite*gold: 41364
Join Date: Jan 2010
Posts: 22,729
Received Thanks: 12,625
Quote:
Originally Posted by jAmMyX View Post
hm, also hab den CHARNAME ordner vorhin kopiert und mit dem Namen der Sorc versehen, so wie auch das ..sorceress_CHARNAME.ntl.

Oder muss ich den Profilnamen des Bots nehmen? Weil im Ordner logs habe ich aktuell nur folgendes:

3 Ordner (CHARNAME, loc und den mit dem namen meiner Sorc)

In letztgenannten sind zwei Dateien:
- tooltip.js
- itemlog.xsl

sonst nix. im "normalen" D2NT Itemlogger im D2NT-Manager wurden gerade eine Pul-Rune sowie eine Regenbogenfacette geloggt. Hast du ne Ahnung wieso er das angeblich erstellte File für den heutigen Tag doch nicht erstellt hat? Was mache ich falsch? :/ Sicher dass es mit 3.1 geht?
Wurde die PUL Rune im Manager in orange geloggt, steht dahinter der Fundort und am Ende des Stats Tooltips das Item Level?

Hat der Ordner den exakten Namen deiner Sorc? (also nicht "Sorceress_" davor oder sowas, nur den exakten Namen des Chars)

Achja, und wenn er das tatsächlich nicht erstellt hat, müsste er bei jedem Item versuchen ein neues Logfile zu erstellen mit der dazu üblichen Meldung.
Ist das nicht der Fall, muss das Logfile existieren.

Und ja, ich habs zwar an sich nur mit 3.0 getestet, aber bis auf die Sache mit den Essenzen mit der du anfangs Probleme hattest sollte sich nicht so viel an den Scripten geändert haben.

LG
Muddy
Muddy Waters is offline  
Old 04/21/2010, 11:17   #12
 
elite*gold: 0
Join Date: Nov 2009
Posts: 67
Received Thanks: 8
Ja, die Rune ist orange geloggt, Fundort ist dabei und das ilvl im Tooltip ebenfalls vorhanden.

Der Ordner heisst genauso wie die Sorc ***. Muss ich den CHARNAME vllt löschen? Oder müssen es nur Großbuchstaben sein im Ordnernamen? Die Meldung über die Logfile-Erstellung erscheint nicht mehr.

Aber das Logfile ist definitiv nicht in dem Ordner mit dem Sorcnamen drin :/
jAmMyX is offline  
Old 04/21/2010, 12:31   #13
Administrator
 
Muddy Waters's Avatar
 
elite*gold: 41364
Join Date: Jan 2010
Posts: 22,729
Received Thanks: 12,625
Quote:
Originally Posted by jAmMyX View Post
Ja, die Rune ist orange geloggt, Fundort ist dabei und das ilvl im Tooltip ebenfalls vorhanden.

Der Ordner heisst genauso wie die Sorc jap. Muss ich den CHARNAME vllt löschen? Oder müssen es nur Großbuchstaben sein im Ordnernamen? Die Meldung über die Logfile-Erstellung erscheint nicht mehr.

Aber das Logfile ist definitiv nicht in dem Ordner mit dem Sorcnamen drin :/
Ersteres klingt schonmal gut.

Der CHARNAME Ordner ist egal, in den wird eh nicht geschrieben.
Hier mal ein kurzer Asuzug aus dem Quelltext, in dem man sehr schön sieht, nach welchem Muster Logfiles erstellt werden:
Code:
var currentDate = new Date();
var dateString = currentDate.toLocaleFormat("%m-%d-%y");
var filehandle = FileOpen("logs/"+me.charname+"/"+dateString+"_itemlog.xml", 2);
Interessant ist also nur der Ordner welcher vom Namen her dem Wert der Objektvariablen me.charname entspricht, was nichts anderes ist als der exakte Name deines Chars.
Schau mal ob der Ordnername auch in Punkto Groß- und Kleinschreibung mit deinem Charnamen übereinstimmt, auch wenn das an dieser Stelle an sich nicht das Problem sein sollte.
Ich werde das mal selber mit ner frischen 3.1er Version Testen, mal schauen ob ich da auch derartige Probleme habe, ich vermute aber eher nicht.

Achja, ich habe nochmal ein Update hochgeladen. Es stimmte was im Ausgabelayout nicht, sodass das Log einer recht unstrukturierten Wand aus Text entsprach. Also in jedem Fall darauf achten, dass die aktuelle "itemlog.xsl" aus dem CHARNAME Ordner benutzt wird, ansonsten ist das Logfile nicht wirklich brauchbar.

LG
Muddy
Muddy Waters is offline  
Old 04/21/2010, 12:38   #14
 
elite*gold: 0
Join Date: Nov 2009
Posts: 67
Received Thanks: 8
Hab jetzt mal im Ordner mti dem Charnamen eine .xml mit dem an sich richtigen Namen von heute erstellt und dann wieder gelöscht. Aber das erkennt er auch nicht, sprich normal müsste er dann ja davon ausgehen dass keine für heute angelegt ist und sie erstellen. Passiert aber auch nicht :/
jAmMyX is offline  
Old 04/21/2010, 12:55   #15
Administrator
 
Muddy Waters's Avatar
 
elite*gold: 41364
Join Date: Jan 2010
Posts: 22,729
Received Thanks: 12,625
Quote:
Originally Posted by jAmMyX View Post
Hab jetzt mal im Ordner mti dem Charnamen eine .xml mit dem an sich richtigen Namen von heute erstellt und dann wieder gelöscht. Aber das erkennt er auch nicht, sprich normal müsste er dann ja davon ausgehen dass keine für heute angelegt ist und sie erstellen. Passiert aber auch nicht :/
Ich habe es gerade bei mir mit 3.1 getestet, funktionierte problemlos.

Dein Problem erscheint mir immer seltsamer, kannst ja mal ein paar Screenshots eventuell Interessanter Ordner machen und mir per PM schicken, dann müssen wir das hier nicht weiter öffentlich diskutieren.

Was mich bei der Sache sehr wundert:
Die normale Manager Logausgabe ist vom Itemlog abhängig, um dort mehrfach Einträge zu vermeiden. Heisst, es arbeitet mit Rückgabewerten und sollte irgendwas beim schreiben des Logs schief gehen würde dementsprechend auch ein "false" zurückgegeben.
Anders ausgedrückt: Wenn das mein Itemlog nicht erfolgreich schreibt, würde es auch das Log des Managers nicht. Was es bei dir aber tut...

Lg
Muddy
Muddy Waters is offline  
Closed Thread


Similar Threads Similar Threads
D2nt itemlog auslesen online mit handy?
06/01/2010 - Diablo 2 - 8 Replies
Huhu ich hab ma eine frage hat wer ne idea ob ich irgendwie den itemlog und den gamelog von den ntbot mit meinem Handy auslesen könnte? ^^ ich arbeite sehr viel und würde immer gern wissen was mein bot schon so gefunden hat bzw ob auch alles i.o ist? Hat da wer ne idea?
D2NT itemlog frage...
05/15/2010 - Diablo 2 - 2 Replies
hab gesehn das viele drops den falschen bossen zugeordnet werden... kann mir jemand sagen wie ich das korrigieren kann? (:
[Request] D2NT 3.0 Itemlog mit DropLocation
05/11/2010 - Diablo 2 Programming - 7 Replies
Ich frage mich ob man irgendwie einstellen kann, dass der Bot anzeigt wo er etwas gedropt hat. Das wäre doch mal hilfreich. Ich hab selbst schon ein wenig versucht. indem ich ihn ins Item log have posten lassen bei welchem script er das item stasht. Allerdings ist er beim stashen ja schon beim nächsten script. auf jeden ging das so: NTC_SendLogToOOG(NTC_LOG_ITEM, "Kept " + NTConfig_Script + NTC_ItemQualityToMGRColor.quality] + _items.name.split("\n") + ";" + _items.itemdesc); ...
D2NT- Pick Location in der ItemLog anzeigen
04/20/2010 - Diablo 2 - 2 Replies
Hallo, Ich hab die SUFU und alles benutzt ich kanns nicht mehr finden.... ich hatte bei meinem 3.0 irgendwas geändert sodass angezeigt wurde wo die Items gefunden wurden... zb stand da dann kept Jah rune oder sowas... Weiß jemand was ich da ändern musste welche Datei? Irgendwas unter Libs evt. dann kann ich es kopieren Hatte das ganze damals irgendwo auf Edge gefunden, kanns jetzt trotz sufu nicht mehr finden..



All times are GMT +2. The time now is 22:14.


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.