Programm für Spiel-Protokoll

Hier kann alles rund um Freewar diskutiert werden.
Benutzeravatar
Count Ypsilon
Kriechlapf
Beiträge: 52
Registriert: 5. Jun 2006, 23:23

Programm für Spiel-Protokoll

Beitrag von Count Ypsilon » 13. Okt 2006, 01:31

Hallo,

eigentlich wollte ich nur auf mein hübsches neues Avatar-Bild hinweisen (siehe links). Captain Future rulez!

Ich habe ein Skript gemacht, mit dem man alles, was man im Freewar tut, mitprotokollieren kann - jede Bewegung, jede Transaktion, jeden Brief, und so weiter.

Für skeptische Gemüter gleich vorweg die Beruhigung: Es ist 100% AGB-konform, es erfordert keinerlei Eingriffe in den Browser, verändert nicht die Benutzeroberfläche, ruft keine Daten vom Server ab, usw. usw. usw.

Das Funktionsprinzip beruht darauf, dass der TCP-Datenstrom zwischen dem eigenen Rechner und dem Freewar-Server mitgeschnitten und analysiert wird. Es ist quasi so, als würde man während der ganzen Sitzung eine Videokamera auf den Bildschirm richten und später aufschreiben, was alles passiert ist (nur dass es weniger Arbeit macht). Das Skript "sieht" genau alles, was man selbst auch sieht, nicht mehr und nicht weniger, aber es hat ein präziseres Gedächtnis.

Das Skript ist derzeit noch in den Anfängen, es gibt sicher vieles, was es noch nicht kann (um aussagefähige Logs zu erzeugen, muss das Skript viel über Freewar "wissen"). Aber so Sachen wie Briefe und Geldtransaktionen mitloggen (wann hab ich welches NPC gekillt, welches Drop hab ich dabei bekommen usw.) geht schon gut. Besonders viel Spass macht mir eine Funktion, die ich eingebaut habe, mit der ich im laufenden Betrieb beim Jagen in der Gruppe immer sehen kann, welches Gruppenmitglied schon wieviel Geld "eingespielt" hat - das spornt einen richtig an ;-)

Leider hat das Skript noch nicht ansatzweise einen Zustand erreicht, in dem man es einem Noob in die Hand geben könnte - es geht einstweilen nur unter Linux und erfordert die Installation einiger Perl-Module sowie zumindest rudimentäre Kenntnisse davon, was "tcpdump" ist und was das macht. Alle, die das nicht haben, jetzt bitte nicht weiterlesen (für Euch gibt es hoffentlich auch irgendwann mal eine fertige, leicht bedienbare Version des ganzen!)

Die anderen sind herzlich eingeladen, sich auf dieser Seite hier eingehend über das Skript zu informieren, es herunterzuladen, auszuprobieren, und zu verbessern:

http://www.remote-island.org/101912/gamelog/

Wenn das alles mal richtig gut funktioniert, wird das Skript sicher auch für Mods eine willkommene Hilfe werden, weil es dann auch alle erhaltenen und versandten Mod-Briefe protokolliert - wer, wann, was, an wen - und den Schrei-, Feld- und Flüster-Chat gleich mit.

Besonders freuen würde mich natürlich, wenn sich ein paar Leute mit den notwendigen Kenntnissen so für die Sache interessieren, dass sie mithelfen, das Skript zu perfektionieren. Gerade Mod-Aktivitäten, aber auch PvP-Kämpfe, sind zwei Sachen, die in meinem Spiel-Alltag eher selten vorkommen und die daher noch unzureichend abgedeckt sind. Auch einiges andere fehlt noch (z.B. Shops). Wenn man das richtig implementiert, könnten die Shop-Preis-Aktualisierer mit dem Skript im Schlepptau in Nullkommanix die aktuellen Prozente eines Shops bestimmen und protokollieren... bestimmt gibt es noch 1000 weitere Einsatzmöglichkeiten.

Viel Spass
Y.

Sorbobert
Teidam
Beiträge: 133
Registriert: 11. Okt 2006, 22:28

Beitrag von Sorbobert » 13. Okt 2006, 01:33

nettes programm...hätte mir zu meiner aktiven zeit (gestern noch...) sicher weitergeholfen :(

Benutzeravatar
Mheatus
Feuervogel
Beiträge: 4093
Registriert: 23. Jun 2005, 19:27
Wohnort: FFM
Kontaktdaten:

Beitrag von Mheatus » 13. Okt 2006, 01:35

Ein solch ähnliches Skript wird bereits von einem anderen User entwickelt, insbesondere für den Gebrauch der Moderatorenarbeit ;)

Was bei deiner Seite klar fehlt ist eine einfache , klare Anweisung, wie man es bedient.. *gg* Läuft das überhaupt auf einem Windows-PC ?

Benutzeravatar
Drosan
Gelbbart-Yeti
Beiträge: 2476
Registriert: 17. Mär 2006, 08:38
Wohnort: FreewarTools.com
Kontaktdaten:

Beitrag von Drosan » 13. Okt 2006, 07:44

Mheatus hat geschrieben:Was bei deiner Seite klar fehlt ist eine einfache , klare Anweisung, wie man es bedient.. *gg* Läuft das überhaupt auf einem Windows-PC ?
Count Y hat geschrieben: Leider hat das Skript noch nicht ansatzweise einen Zustand erreicht, in dem man es einem Noob in die Hand geben könnte - es geht einstweilen nur unter Linux und erfordert die Installation einiger Perl-Module sowie zumindest rudimentäre Kenntnisse davon, was "tcpdump" ist und was das macht.
Du könntest es ja mit cygwin versuchen :)

Berion dS
Gründer und einziger Mitarbeiter der Stiftung Obi Test
[17:20:06] <tanine> Hiermit, Obi, ernenne ich dich zu meinem persönlichen Privatmasseur. Du bist der einzige, der Hand an meine Schultern legen darf.
[17:20:39] <Obraka> *total stolz guck*

larsibär
Wächter des Vulkans
Beiträge: 316
Registriert: 24. Aug 2006, 23:16

Beitrag von larsibär » 13. Okt 2006, 09:50

müßte theoretisch auch unter windows zum laufen zu bekommen sein ...
die meisten module gibt es als source code oder auch für windows ...
praktisch ... ojeee ^^
also wenn du es laufen haben willst count, dann musst du dich nen bißl
bemühen und je nach wissensstand viiiiel lesen ^^

Benutzeravatar
Count Ypsilon
Kriechlapf
Beiträge: 52
Registriert: 5. Jun 2006, 23:23

Beitrag von Count Ypsilon » 13. Okt 2006, 10:51

larsibär hat geschrieben:müßte theoretisch auch unter windows zum laufen zu bekommen sein ...
die meisten module gibt es als source code oder auch für windows ...
praktisch ... ojeee ^^
also wenn du es laufen haben willst count, dann musst du dich nen bißl
bemühen und je nach wissensstand viiiiel lesen ^^
Das Problem ist vermutlich weniger das zum Laufen kriegen, als vielmehr die Tatsache, dass ein Windows-User ein schönes Windows-Programm erwarten wird und kein Kommandozeilen-Tool... und sowas kann ich nicht ;-)

Was das zum-Laufen-kriegen anbetrifft, so wäre es unter Windows vermutlich einfacher, das ganze als Proxy zu designen, d.h. man stellt in seinem Browser als Proxy sowas wie "127.0.0.1:1234" ein, und auf dem Port lauscht dann das Programm, das die Anfragen alle an den Freewar-Server durchreicht und die Antworten vom Server an den Browser (und dabei eben alles protokolliert).

Der Grund, warum ich das nicht gemacht habe, ist, dass ich damit ganz streng genommen ein Programm erschaffe, dass anstelle des Browsers die Requests an den Freewar-Server schickt - auch wenn es sie nur durchreicht! - und damit die AGB verletze. Klingt albern, ist albern, aber ich wollte halt nicht, dass mir irgendein Spinner, dem meine Nase nicht gefällt, an den Karren fahren kann. Daher die tcpdump-basierende Lösung.

Y.

Estron Dekal
Gelbbart-Yeti
Beiträge: 2153
Registriert: 4. Apr 2006, 18:49
Kontaktdaten:

Beitrag von Estron Dekal » 13. Okt 2006, 11:31

...Bahnhof? Naja. ich hoffe mal, dass es das auch mal für normalsterbliche (Windows-)Spieler geben wird... Übrigens, hübsches Avatar-Bild *mit der Captain-Future-DVD-Box winkt*

DarkLord
Teidam
Beiträge: 163
Registriert: 10. Dez 2003, 13:55

Beitrag von DarkLord » 13. Okt 2006, 17:46

Ich habe ein Skript gemacht, mit dem man alles, was man im Freewar tut, mitprotokollieren kann - jede Bewegung, jede Transaktion, jeden Brief, und so weiter.
Hmm netter Ansatz

Ich fände so ein Script eher gut um die Aktionen der Spieler auf Seite der Admins auszuwerten.

Schnipsel eines selbstgeschriebenen Programms rumwerf
Programmiersprache Java

Code: Alles auswählen

public class WorldSay extends AktiondesUser
{
  private String line = null; // private also nur von dieser Klasse zu ändern
  public WorldSay()
  {
     // Konstruktor bleibt leer
  }
  public boolean istVerantwortlich()
  {
    if (super().istVerantwortlich != true)
    {
      return false;
      // ruft die Java-Klasse AktiondesUsers auf
      // diese ist nicht explizit beschrieben 
      // sollte aber abstrakt sein
    }

    line = Analyse.getLine()
    // die Analyse klasse geht eine datei durch Linie für Linie
    if (line.indexOf("Auf der ganzen Welt zu hören")!=-1)
    // das ist ein Suchstring
    {
       return true;
     }
     
     return false;
   }

   public void addToDatabase()
   {
      int start = line.indexOf("Auf der ganzen Welt zu hören")+1
      int end = line.indexOf(":")+1;
      line = line.substring(start,ende);
      Database database = new Database(); 
      // Database wäre eine Klasse
      // Diese baut die Verbindung auf zur Datenbank
      // MySQL / Access / Oracle ... ist eigentlich egal 
      database.setDatabaseEntry(line);
      // Methode in der Klasse Database
      // Eintrag ist sicher ausbau fähig (User , sessionid, tag , Zeit, ...)
   }
}
Damit kann man alles mitloggen ohne großen Aufwand

:twisted:

Vorraussetzungen sind
-> Auf dem Server muß der Jdk installiert sein
-> besser J2EE

Benutzeravatar
damh
großer Laubbär
Beiträge: 2591
Registriert: 15. Mär 2005, 01:10

Beitrag von damh » 13. Okt 2006, 18:03

Hi!
Ich habe gerade das Skript zum Großteil gelesen und bin ziemlich positiv überrascht wie einfach man manche Sachen mit Perl lösen kann *fg*
Ich bin die oben genannte Person, die soetwas ähnliches programmiert. Viele Lösungen sind fast identisch und bei einigen sieht man auch, dass einfach auf andere Sichten/Dinge Wert gelegt wurde.
Vielleicht lässt sich ja eine Kooperation hinbekommen bzw. gegenseitige Ideenhilfe. Machbar ist mit den Logs ziemlich viel, aber jeden intressieren andere Dinge ;)

Ich finde den Ansatz mit tcpdump sehr intressant. Ich habe trotzdem bei mir einen Proxy auf JAVA 1.5 Basis genommen. Sinn der Sache sollte sein, dass Browser und Betriebssystem mehr oder minder egal sind.
Gruß damh

Benutzeravatar
Count Ypsilon
Kriechlapf
Beiträge: 52
Registriert: 5. Jun 2006, 23:23

Beitrag von Count Ypsilon » 14. Okt 2006, 01:23

[quote="DarkLord"]
Schnipsel eines selbstgeschriebenen Programms rumwerf
Programmiersprache Java
[/quote]

Darklord, dafuer brauchst Du weder jdk, noch j2ee, noch eine Datenbank. Nimmst Du zum Unkrautjäten auch einen Hydraulikbagger? Da reicht ein "wget" und ein Shell-Skript. Sowas hab ich schonmal gemacht, nicht nur fuer Worldsay, sondern fuer den kompletten Schrei-Chat auf Basis des von aussen zugaenglichen Schrei-Chat-Links, aber man hats mir untersagt (u.a. weil es die Persoenlichkeitsrechte der so mitgeloggten User verletzten koennte). Hm, fuer ausschliesslich-Worldsay koennte man es vielleicht machen, Worldsay hat ja keine Persoenlichkeit ;-)

Y.

larsibär
Wächter des Vulkans
Beiträge: 316
Registriert: 24. Aug 2006, 23:16

Beitrag von larsibär » 14. Okt 2006, 02:13

Count Ypsilon hat geschrieben:
DarkLord hat geschrieben: Schnipsel eines selbstgeschriebenen Programms rumwerf
Programmiersprache Java
Darklord, dafuer brauchst Du weder jdk, noch j2ee, noch eine Datenbank. Nimmst Du zum Unkrautjäten auch einen Hydraulikbagger? Da reicht ein "wget" und ein Shell-Skript. Sowas hab ich schonmal gemacht, nicht nur fuer Worldsay, sondern fuer den kompletten Schrei-Chat auf Basis des von aussen zugaenglichen Schrei-Chat-Links, aber man hats mir untersagt (u.a. weil es die Persoenlichkeitsrechte der so mitgeloggten User verletzten koennte). Hm, fuer ausschliesslich-Worldsay koennte man es vielleicht machen, Worldsay hat ja keine Persoenlichkeit ;-)

Y.
Korrigiere mich wenn ich mich irre, aber deine Idee mit wget verstößt gegen die AGBs weil du Freewar mit was anderem als deinem Browser aufrufst.

Die Idee von Ihm mit dem TCPDUMP war ja nur zu gucken was da durch die Leitung fließt und damit also keine eigenen Aufrufe zu generieren.

Benutzeravatar
Drosan
Gelbbart-Yeti
Beiträge: 2476
Registriert: 17. Mär 2006, 08:38
Wohnort: FreewarTools.com
Kontaktdaten:

Beitrag von Drosan » 14. Okt 2006, 08:30

larsibär hat geschrieben:
Count Ypsilon hat geschrieben: Da reicht ein "wget" und ein Shell-Skript. Sowas hab ich schonmal gemacht, nicht nur fuer Worldsay, sondern fuer den kompletten Schrei-Chat auf Basis des von aussen zugaenglichen Schrei-Chat-Links, aber man hats mir untersagt (u.a. weil es die Persoenlichkeitsrechte der so mitgeloggten User verletzten koennte). Hm, fuer ausschliesslich-Worldsay koennte man es vielleicht machen, Worldsay hat ja keine Persoenlichkeit ;-)

Y.
Korrigiere mich wenn ich mich irre, aber deine Idee mit wget verstößt gegen die AGBs weil du Freewar mit was anderem als deinem Browser aufrufst.
Genau, und jetzt lies nochmal den fett markierten Teil

Berion dS
Gründer und einziger Mitarbeiter der Stiftung Obi Test
[17:20:06] <tanine> Hiermit, Obi, ernenne ich dich zu meinem persönlichen Privatmasseur. Du bist der einzige, der Hand an meine Schultern legen darf.
[17:20:39] <Obraka> *total stolz guck*

Benutzeravatar
fireburn
Zauberer der Bergwiesen
Beiträge: 670
Registriert: 12. Nov 2003, 20:08
Wohnort: Oz
Kontaktdaten:

Beitrag von fireburn » 14. Okt 2006, 13:11

Cool, genau so ein Tool wollte ich auch mal machen, allerdings nicht über den Datenstrom, sondern über die Browsercontrols, die permanent ausgelesen werden. Halt ein Tracker der alles protokolliert und Statistiken erstellt usw. :) Das geht allerdings beim Firefox nicht (man müsste also mit IE zocken), daher hab ichs sein gelassen.

Würde dein tool gerne testen, hab nur grad kein Linux hier. :(
Porte das doch nach windows. Mit den winpcap Treibern kann man ja auch die Leitungen "abhören".

Genial ist sowas auch für Dinge wie: "Auf wieviel NPCs kommt im Durchschnitt eine Amulett-Aktivierung und wieviele Amulett Aktivierungen habe ich insgesamt?", dann müsste man nicht alles manuell mit ner Strichliste machen.

Ahja, irgendwer hat hier cygwin vorgeschlagen, aber dort gibt es doch nur Textbrowser?! Wie soll man freewar in einem Textbrowser spielen? Es geht nicht, habs schonmal probiert. ;)
Rape is no laughing matter unless you're raping a clown.

Benutzeravatar
kaot
Vulkandämon
Beiträge: 7254
Registriert: 19. Jan 2005, 23:42
Kontaktdaten:

Beitrag von kaot » 14. Okt 2006, 16:50

Alle, die das nicht haben, jetzt bitte nicht weiterlesen (für Euch gibt es hoffentlich auch irgendwann mal eine fertige, leicht bedienbare Version des ganzen!)
genau hier gestoppt... klingt sehr witzig, würde mich als "Testnoob" für ne allgemein verständliche Version zur Verfügung stellen ;)
Bazinga!

larsibär
Wächter des Vulkans
Beiträge: 316
Registriert: 24. Aug 2006, 23:16

Beitrag von larsibär » 14. Okt 2006, 17:50

Drosan hat geschrieben:aber man hats mir untersagt (u.a. weil es die Persoenlichkeitsrechte der so mitgeloggten User verletzten koennte).

Genau, und jetzt lies nochmal den fett markierten Teil

Berion dS
und du bitte die angegebene begründung von count y dahinter ...
dann weißt du meinen kommentar vielleicht als "das hat auch die AGBs verletzt und konnte deswegen untersagt werden, im gegensatz zu dem tool hier" zu verstehen ;-)

Gesperrt

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 13 Gäste