• [Software] DayZ Adminlog Manager 4 3
Aktuell:  

Autor: GutZuFuss Thema: [Software] DayZ Adminlog Manager  (Gelesen 10497 mal)

Offline [eXon] Simon

  • Überlebender
  • *
  • Beiträge: 5
  • Bohnen: + 0 / - 0
  • Abzeichen: 2
    Erster Beitrag
    Einjähriges Jubiläum im Forum



Mehr ...

  • Aktivität: 0%
  • Likes/Beiträge: 0%
  • Registriert: Mai 2015
Re: [Software] DayZ Adminlog Manager
« Antwort #30 am: Samstag, 13.Jun 2015 - 20:18 Uhr »
Wobei ich denke dass der "HP" - Wert noch ein Platzhalter ist. Zumindest sehe ich bei unseren logs nie eine Veränderung, steht immer auf 0.
Das andere ist eigentlich eindeutig: "S"=Shock, "B"=Blood und "H"=Health

Offline ProLife

  • Zombiejäger
  • *
  • Beiträge: 248
  • Bohnen: + 38 / - 21
  • Abzeichen: 3
    50 Beiträge
    Erster Beitrag
    Einjähriges Jubiläum im Forum



Mehr ...

  • Aktivität: 0%
  • Likes/Beiträge: 1%
  • Registriert: Okt 2014
Re: [Software] DayZ Adminlog Manager
« Antwort #31 am: Samstag, 13.Jun 2015 - 21:19 Uhr »
Morgen bekommst du von mir eine Log-Datei; darin solltest du dann alles wichtige finden

Offline GutZuFuss

  • Überlebender
  • *
  • Beiträge: 22
  • Bohnen: + 41 / - 0
  • Abzeichen: 2
    Erster Beitrag
    Einjähriges Jubiläum im Forum



Mehr ...

  • Aktivität: 0%
  • Likes/Beiträge: 1%
    • Ingame: GutZuFuss
  • Registriert: Nov 2014
    • GutZuFuss Youtube Channel
Re: [Software] DayZ Adminlog Manager
« Antwort #32 am: Sonntag, 14.Jun 2015 - 18:29 Uhr »
Jop, es sind einige neue Daten in den Log Files. Ich werde auf jeden fall erstmal einbauen das die Zeile welche einen Fehler wirft einfach überspringen wird, so das die Daten welche ohne Fehler ausgelesen werden können noch verwendet werden. Es wird dann einfach eine kleine Meldung geben das manche Daten nicht ausgelesen werden konnten und für mehr Information schreibe ich jene in einen ErrorLog.txt

Es könnte einige Zeit dauern bis das Programm mit allen Daten umgehen kann. Daher wird es vorab evtl. erst einen HotFix geben damit man das Programm weiterhin benutzen kann.

Danke schonmal an alle die ihre hilfe anbieten^^

Offline GutZuFuss

  • Überlebender
  • *
  • Beiträge: 22
  • Bohnen: + 41 / - 0
  • Abzeichen: 2
    Erster Beitrag
    Einjähriges Jubiläum im Forum



Mehr ...

  • Aktivität: 0%
  • Likes/Beiträge: 1%
    • Ingame: GutZuFuss
  • Registriert: Nov 2014
    • GutZuFuss Youtube Channel
[Software] DayZ Adminlog Manager HOTFIX
« Antwort #33 am: Montag, 15.Jun 2015 - 15:06 Uhr »
Ich habe soeben einen Hotfix für den DayZ Adminlog Manager hochgeladen. Dieser ermöglicht das Programm weiterhin zu nutzen. Jegliche unbekannte Zeile wird quasi ignoriert, wodurch natürlich nicht alle Information angezeigt werden. Es kann aber weiterhin mit den bekannten Informationen gearbeitet werden. Dies ist nur eine vorübergehende Version, damit ihr das Programm weiterhin nutzen könnt.

Es sind viele neue Information dazu gekommen, daher könnte es eine Weile dauern bis ich eine neue Version veröffentliche.

Vielen dank an: [eXon] Simon und saiboT die mir Informationen zur neuen Adminlog Datei geschickt haben.

DayZ Adminlog Manager Hotfix (1.2.2.0)

Offline Media

  • GermanDayZ VIP
  • Zombiejäger
  • *
  • Beiträge: 482
  • Bohnen: + 156 / - 16
  • Abzeichen: 3
    50 Beiträge
    Erster Beitrag
    Einjähriges Jubiläum im Forum



Mehr ...

  • Aktivität: 3%
  • Likes/Beiträge: 4%
    • Ingame: Media
  • Registriert: Nov 2014
    • Berlin Life
Re: [Software] DayZ Adminlog Manager
« Antwort #34 am: Montag, 15.Jun 2015 - 15:20 Uhr »
Was kam denn alles dazu ???
Boshaft, extrem grausam und definitv leicht Schizophren  >:D

http://static.twoday.net/oskar/images/2516163_o.gif

Offline smurfi

  • PHP-Skriptjunkie
  • Administrator
  • Legende
  • *
  • Beiträge: 1808
  • Bohnen: + 709 / - 15
  • Abzeichen: 8
    Tishina
    Spender
    500 Beiträge



Mehr ...

  • Aktivität: 0%
  • Likes/Beiträge: 19%
    • Ingame: smurfi
  • Registriert: Aug 2012
  • einfach ich
Re: [Software] DayZ Adminlog Manager
« Antwort #35 am: Dienstag, 16.Jun 2015 - 07:48 Uhr »
$actions=array(
'connect' => '" is connected (id=',
'disconnect' => ') has been disconnected',
'start_bleeding' => ') STARTS BLEEDING."',
'stop_bleeding' => ') STOPS BLEEDING."',
'kill' => ') was KILLED by ',
'hit' => ') HIT ',
'status' => ') STATUS S::',
'shot' => ') SHOT ',
'unconsciousness' => ') has fallen into unconsciousness."',
'kill_oldlog' => ') has been killed by player "',
'hard_hit' => ') has fallen into unconsciousness. HARD HIT Total S::'
);

dazu kommt noch die status-anzeige (shock/blood/healthy/healthpoints[energie])
und welches körperteil von welcher waffen getroffen wurde (HIT/SHOT)
und das obligatorische wie spielername, steamid, dis/connect

;)
« Letzte Änderung: Dienstag, 16.Jun 2015 - 07:51 Uhr von smurfi »
IF U FIND A GOOD PERSON - BE A GOOD PERSON

Offline GutZuFuss

  • Überlebender
  • *
  • Beiträge: 22
  • Bohnen: + 41 / - 0
  • Abzeichen: 2
    Erster Beitrag
    Einjähriges Jubiläum im Forum



Mehr ...

  • Aktivität: 0%
  • Likes/Beiträge: 1%
    • Ingame: GutZuFuss
  • Registriert: Nov 2014
    • GutZuFuss Youtube Channel
[Software] DayZ Adminlog Manager STATUS REPORT
« Antwort #36 am: Freitag, 19.Jun 2015 - 15:30 Uhr »
Status Report

Mit dem DayZ Update auf Version 0.57 welches am 10.06.2015 veröffentlicht wurde, wurden ebenso Änderungen an dem Adminlog (.ADM Datei) vorgenommen. Der DayZ Adminlog Manager war nicht mehr in der Lage die neuen Informationen auszulesen. Am 15.06.2015 wurde ein Hotfix veröffentlicht, der es ermöglichte weiterhin mit dem Programm zu arbeiten. Der Adminlog Manager ist momentan nicht in der Lage die neuen Informationen auszulesen, daher werden diese zuvor ignoriert. Der Status-Report ist dafür da, um euch einen Einblick in die Entwicklung des DayZ Adminlog Manager zu ermöglichen und weitere Information mit euch zu teilen.

Bild welches Weapon-Textbox, Body Part-Textbox, neue Checkbox Filter usw. anzeigt:


In Bearbeitung:
  • Neue Information Einlesen
  • Neue Information Anzeigen
  • Programmoberfläche erweitern
  • Fehlerbehebung
  • Ladebildschirm beim laden von Dateien
  • Check-for-Update Funktion

Aufbau der Adminlog Datei:
Es ist ziemlich umständlich geworden, den DayZ Adminlog Manager an die neuen Informationen anzupassen. Dies hat damit zu tun das die Daten im Adminlog keine geordnete und einheitliche Struktur haben. Die Adminlog Datei ist allgemein ziemlich schlecht aufgebaut, was das Auslesen und bearbeiten umso schwieriger macht. Außerdem wird es beim Auslesen der Daten Fehler geben, welche jedoch nichts mit dem Adminlog Manager zutun haben, sondern mit der Log-Datei ansich. Bei diesen Fehlern handelt es sich jedoch zumeist um doppelte Log Einträge.

Beispiel:
Die Connect Zeile, welche von Anfang an vorhanden ist sieht folgendermaßen aus:
00:00:00 | Player "Username" is connected (id=00000000000000000)Eine der neuen Zeilen, welche anzeigt das der Spieler anfängt zu bluten sieht so aus:
00:00:00 | "Username(uid=00000000000000000) STARTS BLEEDING."Würde die Adminlog Datei geordnet und einheitlich strukturiert sein, müsste jene Zeile so aussehen:
00:00:00 | "Username(uid=00000000000000000) STARTS BLEEDING."
Wird zu ->
00:00:00 | Player "Username" starts bleeding (id=00000000000000000)

Es geht nicht nur darum das die Adminlog Datei geordnet aufgebaut ist. Das ganze Adminlog Manager Programm musste für die neuen Zeilen mit unnötigen Arbeitsaufwand erweitert werden. z.B.: Wo zuvor der Usernamen ganz einfach erkannt wurde, indem man die Stelle zwischen den Anführungszeichen ausschneidet, musste ich nun etwas neues Programmieren um den Username zu bekommen. Dieser unnötige Aufwand kommt zu stande da der Adminlog nicht Einheitlich strukturiert ist, wobei ich mir sicher bin das es keinen Aufwand macht beim schreiben eine Struktur in den Adminlog zu bringen.

Es gibt weitere Fehler wie z.B. doppelte Zeilen:
00:00:00 | "Username1(uid=00000000000000000) was KILLED by Username2(uid=00000000000000000)."
00:00:00 | Player "Username1"(id=00000000000000000) has been killed by player "Username2"(id=00000000000000000)
Diese zwei Zeilen kommen so im Adminlog vor. Sie beinhalten die selbe Information, sind jedoch unterschiedlich aufgebaut was wiederum zwei komplexe von einander unabhängige Methoden erfordert um jede der beiden Zeilen auszulesen.

Offline smurfi

  • PHP-Skriptjunkie
  • Administrator
  • Legende
  • *
  • Beiträge: 1808
  • Bohnen: + 709 / - 15
  • Abzeichen: 8
    Tishina
    Spender
    500 Beiträge



Mehr ...

  • Aktivität: 0%
  • Likes/Beiträge: 19%
    • Ingame: smurfi
  • Registriert: Aug 2012
  • einfach ich
Re: [Software] DayZ Adminlog Manager
« Antwort #37 am: Samstag, 20.Jun 2015 - 01:15 Uhr »
kannst du nicht eine kleine db dafür anlegen?
ich habe das ganze via webfrontend mit datenbank gelöst...
dabei werden alle 2minuten neue einträge hinzugefügt (scheduler/cronjob) und via webfrontend kann man sich das dann anzeigen und filtern lassen
skype benutzt doch auch so eine kleine lokale datenbank, vielleicht solltest du mal in die richtung denken... ;)


zum einlesen der logs in die db benutze ich folgenden codeschnipsel...
Spoiler for Verborgen:
$start=microtime(true);
require('db_init.php');
$server_cnt=2;
$db=0;

$actions=array(
'connect' => '" is connected (id=',
'disconnect' => ') has been disconnected',
'start_bleeding' => ') STARTS BLEEDING."',
'stop_bleeding' => ') STOPS BLEEDING."',
'kill' => ') was KILLED by ',
'hit' => ') HIT ',
'status' => ') STATUS S::',
'shot' => ') SHOT ',
'unconsciousness' => ') has fallen into unconsciousness."',
'kill_oldlog' => ') has been killed by player "',
'hard_hit' => ') has fallen into unconsciousness. HARD HIT Total S::'
);

$af=array(' was KILLED by ',' HIT ',' SHOT ');
exec('rm -fr kill1/split; mkdir kill1/split; cd kill1/split; split -a 6 -d -l 100 ../DayZServer.ADM; cd ../..');
exec('rm -fr kill2/split; mkdir kill2/split; cd kill2/split; split -a 6 -d -l 100 ../DayZServer.ADM; cd ../..');

for($svrcnt=1;$svrcnt<=$server_cnt;$svrcnt++){
  $linecnt=1;
  $splitfiles=scandir('kill'.$svrcnt.'/split');
  asort($splitfiles);
  unset($splitfiles[0]);
  unset($splitfiles[1]);
  $lastlog=mysql_ifr("SELECT log FROM dayzlogs WHERE server='$svrcnt' ORDER BY id DESC LIMIT 1");
  $skip=true;
  $set_new_date=false;
  foreach($splitfiles as $logfile){
    $lines=file('kill'.$svrcnt.'/split/'.$logfile);
    foreach($lines as $str){
      $str=ltrim(rtrim($str));
      $insert=$name=$steamid=$guid=array();
      $aktion=$waffe=$koerperteil=$schock=$blut=$gesundheit=$energie='';
      $spieler=1;
      if(strpos($str,'dminLog started on ')){
        $str=str_replace('AdminLog started on ','',$str);
        $tmp=explode(' ',$str);
        $datum=$tmp[0];
        unset($tmp);
      } else if($str[8]==' ' && $str[9]=='|' && $str[10]==' '){
        $tmp=explode(' | ',$str);
        $zeit=$tmp[0];
        $xzeit=explode(':',$zeit);
        if($set_new_date==true && $xzeit[0]>=0 && $xzeit[0]<=4){
          $datum=date("Y-m-d",strtotime($datum)+(3600*24));
          $set_new_date=false;
        }
        if($xzeit[0]==23){
          $set_new_date=true;
        }
        $tmp[1]=str_replace(array('(uid=','"Player '),array('(id=','"'),$tmp[1]);
        $ids=explode('(id=',$tmp[1]);
        foreach($ids as $id) if(strpos($id,')')){
          $steamid[$spieler]=substr($id,0,strpos($id,')'));
          $spieler++;
        }
        $name[1]=substr($tmp[1],strpos($tmp[1],' "')+1);
        $name[1]=substr($name[1],0,strpos($name[1],'(id='));
        if($name[1][0]=='"') $name[1]=substr($name[1],1,-1);
        $name[1]=str_replace('" is connected','',$name[1]);
        foreach($actions as $short => $long) if(strpos($str,$long)) $aktion=$short;
        if($aktion=='kill_oldlog'){
          $name_tmp=explode(') has been killed by player "',$tmp[1]);
          $name[2]=substr($name_tmp[1],0,strrpos($name_tmp[1],'"'));
          if($steamid[1]==$steamid[2]) $aktion='suicide';
        }
        if($aktion=='kill'){
          $name_tmp=explode(') was KILLED by ',$tmp[1]);
          $name[2]=substr($name_tmp[1],0,strrpos($name_tmp[1],'('));
          if($steamid[1]==$steamid[2]) $aktion='suicide';
        }
        if($aktion=='hard_hit') $schock=substr($tmp[1],strrpos($tmp[1],'::')+2,-1);
        if($aktion=='hit' || $aktion=='shot'){
          $name_tmp=explode(' '.strtoupper($aktion).' ',$tmp[1]);
          $name[2]=substr($name_tmp[1],0,strrpos($name_tmp[1],'('));
          $waffe=substr($str,strpos($str,') by ')+5);
          $waffe=substr($waffe,0,strpos($waffe,' into '));
          $koerperteil=substr($str,strpos($str,' into ')+6,-2);
        }
        if($aktion=='status'){
          $stat_tmp=explode('STATUS',$tmp[1]);
          $stat_tmp2=substr($stat_tmp[1],0,-2);
          $status=explode('::',$stat_tmp2);
          $schock=substr($status[1],0,-2);
          $blut=substr($status[2],0,-2);
          $gesundheit=substr($status[3],0,-2);
          $energie=$status[4];
        }
      }
      $insert['server']=$svrcnt;
      $insert['datum']=$datum;
      $insert['zeit']=$zeit;
      $insert['spieler1']=$spieler1=$name[1];
      if($name[2]<>'') $insert['spieler2']=$name[2];
      $insert['aktion']=$aktion;
      $insert['spieler1_steamid']=$steamid1=$steamid[1];
      if($steamid[2]<>'') $insert['spieler2_steamid']=$steamid[2];
      if($waffe<>'') $insert['waffe']=$waffe;
      if($koerperteil<>'') $insert['koerperteil']=$koerperteil;
      if($schock<>'') $insert['schock']=$schock;
      if($blut<>'') $insert['blut']=$blut;
      if($gesundheit<>'') $insert['gesundheit']=$gesundheit;
      if($energie<>'') $insert['energie']=$energie;
      $insert['log']=$str;
      if($aktion<>''){
        if($skip==false) mysql_insert('dayzlogs',$insert);
      }
      if($str==$lastlog) $skip=false;
    }
  }
}
echo round((microtime(true)-$start),2).'s';
« Letzte Änderung: Samstag, 20.Jun 2015 - 01:20 Uhr von smurfi »
IF U FIND A GOOD PERSON - BE A GOOD PERSON

Offline GutZuFuss

  • Überlebender
  • *
  • Beiträge: 22
  • Bohnen: + 41 / - 0
  • Abzeichen: 2
    Erster Beitrag
    Einjähriges Jubiläum im Forum



Mehr ...

  • Aktivität: 0%
  • Likes/Beiträge: 1%
    • Ingame: GutZuFuss
  • Registriert: Nov 2014
    • GutZuFuss Youtube Channel
Re: [Software] DayZ Adminlog Manager
« Antwort #38 am: Samstag, 20.Jun 2015 - 12:14 Uhr »
kannst du nicht eine kleine db dafür anlegen?
ich habe das ganze via webfrontend mit datenbank gelöst...
dabei werden alle 2minuten neue einträge hinzugefügt (scheduler/cronjob) und via webfrontend kann man sich das dann anzeigen und filtern lassen
skype benutzt doch auch so eine kleine lokale datenbank, vielleicht solltest du mal in die richtung denken... ;)


zum einlesen der logs in die db benutze ich folgenden codeschnipsel...
Spoiler for Verborgen:
$start=microtime(true);
require('db_init.php');
$server_cnt=2;
$db=0;

$actions=array(
'connect' => '" is connected (id=',
'disconnect' => ') has been disconnected',
'start_bleeding' => ') STARTS BLEEDING."',
'stop_bleeding' => ') STOPS BLEEDING."',
'kill' => ') was KILLED by ',
'hit' => ') HIT ',
'status' => ') STATUS S::',
'shot' => ') SHOT ',
'unconsciousness' => ') has fallen into unconsciousness."',
'kill_oldlog' => ') has been killed by player "',
'hard_hit' => ') has fallen into unconsciousness. HARD HIT Total S::'
);

$af=array(' was KILLED by ',' HIT ',' SHOT ');
exec('rm -fr kill1/split; mkdir kill1/split; cd kill1/split; split -a 6 -d -l 100 ../DayZServer.ADM; cd ../..');
exec('rm -fr kill2/split; mkdir kill2/split; cd kill2/split; split -a 6 -d -l 100 ../DayZServer.ADM; cd ../..');

for($svrcnt=1;$svrcnt<=$server_cnt;$svrcnt++){
  $linecnt=1;
  $splitfiles=scandir('kill'.$svrcnt.'/split');
  asort($splitfiles);
  unset($splitfiles[0]);
  unset($splitfiles[1]);
  $lastlog=mysql_ifr("SELECT log FROM dayzlogs WHERE server='$svrcnt' ORDER BY id DESC LIMIT 1");
  $skip=true;
  $set_new_date=false;
  foreach($splitfiles as $logfile){
    $lines=file('kill'.$svrcnt.'/split/'.$logfile);
    foreach($lines as $str){
      $str=ltrim(rtrim($str));
      $insert=$name=$steamid=$guid=array();
      $aktion=$waffe=$koerperteil=$schock=$blut=$gesundheit=$energie='';
      $spieler=1;
      if(strpos($str,'dminLog started on ')){
        $str=str_replace('AdminLog started on ','',$str);
        $tmp=explode(' ',$str);
        $datum=$tmp[0];
        unset($tmp);
      } else if($str[8]==' ' && $str[9]=='|' && $str[10]==' '){
        $tmp=explode(' | ',$str);
        $zeit=$tmp[0];
        $xzeit=explode(':',$zeit);
        if($set_new_date==true && $xzeit[0]>=0 && $xzeit[0]<=4){
          $datum=date("Y-m-d",strtotime($datum)+(3600*24));
          $set_new_date=false;
        }
        if($xzeit[0]==23){
          $set_new_date=true;
        }
        $tmp[1]=str_replace(array('(uid=','"Player '),array('(id=','"'),$tmp[1]);
        $ids=explode('(id=',$tmp[1]);
        foreach($ids as $id) if(strpos($id,')')){
          $steamid[$spieler]=substr($id,0,strpos($id,')'));
          $spieler++;
        }
        $name[1]=substr($tmp[1],strpos($tmp[1],' "')+1);
        $name[1]=substr($name[1],0,strpos($name[1],'(id='));
        if($name[1][0]=='"') $name[1]=substr($name[1],1,-1);
        $name[1]=str_replace('" is connected','',$name[1]);
        foreach($actions as $short => $long) if(strpos($str,$long)) $aktion=$short;
        if($aktion=='kill_oldlog'){
          $name_tmp=explode(') has been killed by player "',$tmp[1]);
          $name[2]=substr($name_tmp[1],0,strrpos($name_tmp[1],'"'));
          if($steamid[1]==$steamid[2]) $aktion='suicide';
        }
        if($aktion=='kill'){
          $name_tmp=explode(') was KILLED by ',$tmp[1]);
          $name[2]=substr($name_tmp[1],0,strrpos($name_tmp[1],'('));
          if($steamid[1]==$steamid[2]) $aktion='suicide';
        }
        if($aktion=='hard_hit') $schock=substr($tmp[1],strrpos($tmp[1],'::')+2,-1);
        if($aktion=='hit' || $aktion=='shot'){
          $name_tmp=explode(' '.strtoupper($aktion).' ',$tmp[1]);
          $name[2]=substr($name_tmp[1],0,strrpos($name_tmp[1],'('));
          $waffe=substr($str,strpos($str,') by ')+5);
          $waffe=substr($waffe,0,strpos($waffe,' into '));
          $koerperteil=substr($str,strpos($str,' into ')+6,-2);
        }
        if($aktion=='status'){
          $stat_tmp=explode('STATUS',$tmp[1]);
          $stat_tmp2=substr($stat_tmp[1],0,-2);
          $status=explode('::',$stat_tmp2);
          $schock=substr($status[1],0,-2);
          $blut=substr($status[2],0,-2);
          $gesundheit=substr($status[3],0,-2);
          $energie=$status[4];
        }
      }
      $insert['server']=$svrcnt;
      $insert['datum']=$datum;
      $insert['zeit']=$zeit;
      $insert['spieler1']=$spieler1=$name[1];
      if($name[2]<>'') $insert['spieler2']=$name[2];
      $insert['aktion']=$aktion;
      $insert['spieler1_steamid']=$steamid1=$steamid[1];
      if($steamid[2]<>'') $insert['spieler2_steamid']=$steamid[2];
      if($waffe<>'') $insert['waffe']=$waffe;
      if($koerperteil<>'') $insert['koerperteil']=$koerperteil;
      if($schock<>'') $insert['schock']=$schock;
      if($blut<>'') $insert['blut']=$blut;
      if($gesundheit<>'') $insert['gesundheit']=$gesundheit;
      if($energie<>'') $insert['energie']=$energie;
      $insert['log']=$str;
      if($aktion<>''){
        if($skip==false) mysql_insert('dayzlogs',$insert);
      }
      if($str==$lastlog) $skip=false;
    }
  }
}
echo round((microtime(true)-$start),2).'s';

Sieht auf jedenfall schonmal ziemlich gut aus und es hört sich an, als würde deine Version mehr Funktionen bieten als mein Programm.

Ich habe mein Programm als Windows Forms Application realisiert, da ich während der Ausbildung (Fachinformatiker Anwendungsentwicklung) fast nur mit C#/Visual Studio gearbeitet habe. Dabei habe ich hauptsächlich Windows Forms Application erstellt (neben Console/WPF/...). Mit Datenbanken hatte ich auch zutun, jedoch nur kleinere Projekte bei denen ebenso eine Windows Forms Application durch SQL auf eine Datenbank zugegriffen hat. Mit Web Anwendungen hatte ich nie wirklich etwas zutun; ich habe mich einmal nur sehr kurz mit Silverlight auseinandergesetzt.

Mein Ziel war es ein Programm zu schreiben, welches die Adminlog Daten sortiert auflisted und weitere Funktion wie Filter und Suche ermöglicht. Hierfür habe ich eben auf das zurück gegriffen, was ich am besten konnte.

Sofern deine Version eines Adminlog Manager mehr Funktionen bietet (z.B. Auto-Update der Logs alle 2 min.), sollte es mein Programm evtl. ablösen/ersetzen. Es ging mir stets darum im Interesse der Community zu handeln, weshalb also nicht eine verbesserte Version benutzen^^

Offline GutZuFuss

  • Überlebender
  • *
  • Beiträge: 22
  • Bohnen: + 41 / - 0
  • Abzeichen: 2
    Erster Beitrag
    Einjähriges Jubiläum im Forum



Mehr ...

  • Aktivität: 0%
  • Likes/Beiträge: 1%
    • Ingame: GutZuFuss
  • Registriert: Nov 2014
    • GutZuFuss Youtube Channel
[Software] DayZ Adminlog Manager UPDATE 1.3.2.0
« Antwort #39 am: Mittwoch, 24.Jun 2015 - 15:56 Uhr »
Die neue Version des DayZ Adminlog Manager ist verfügbar.
DayZ Adminlog Manager Version: 1.3.2.0

Change Log:

Neu:
  • Neue Typen
    • StartsBleeding
    • StopsBleeding
    • Unconsciousness
    • Died
    • Injured
    • Status
  • Status
    • Shock
    • Blood
    • Health
    • HP
  • Neue Daten werden gelesen und angezeigt
  • Textbox Weapon
  • Textbox Body Part
  • DataGridView für Statistic
  • Cancel Option beim beenden des Programms (nur für das Dialogfenster)
  • "Waiting"-Cursor beim Laden einer Datei
  • Check For Update Funktion: Überprüft ob eine neue Version des DayZ Adminlog Manager vorhanden ist
  • Option: CheckBox auto 'Check for Update' (überprüft bei Programmstart ob eine neue Version verfügbar ist)
  • 'Check for Update' Button (Menu: Help->Update)

Änderungen:
  • Methode gelöscht die überprüft ob SteamID64 nur aus Nummern besteht
  • Type "Death" -> "Killing"

Bekannte Fehler
  • Manche Zeilen können immer noch nicht gelesen werden (beschädigte Zeilen ohne id/uid)

Download: https://www.dropbox.com/s/yvgvqh0fr1zqf08/DayZ%20Adminlog%20Manager.rar?dl=0

Offline [eXon] Simon

  • Überlebender
  • *
  • Beiträge: 5
  • Bohnen: + 0 / - 0
  • Abzeichen: 2
    Erster Beitrag
    Einjähriges Jubiläum im Forum



Mehr ...

  • Aktivität: 0%
  • Likes/Beiträge: 0%
  • Registriert: Mai 2015
Re: [Software] DayZ Adminlog Manager
« Antwort #40 am: Dienstag, 30.Jun 2015 - 13:50 Uhr »
Da hat sich beim Update wohl ein Fehler eingeschlichen.
Beim Typ "Injured" ist Name und Offender Name verkehrt herum.

Offline GutZuFuss

  • Überlebender
  • *
  • Beiträge: 22
  • Bohnen: + 41 / - 0
  • Abzeichen: 2
    Erster Beitrag
    Einjähriges Jubiläum im Forum



Mehr ...

  • Aktivität: 0%
  • Likes/Beiträge: 1%
    • Ingame: GutZuFuss
  • Registriert: Nov 2014
    • GutZuFuss Youtube Channel
Re: [Software] DayZ Adminlog Manager
« Antwort #41 am: Dienstag, 30.Jun 2015 - 19:25 Uhr »
Da hat sich beim Update wohl ein Fehler eingeschlichen.
Beim Typ "Injured" ist Name und Offender Name verkehrt herum.

Danke für das Melden dieses Fehlers. Feedback ist immer wichtig, also wenn ihr weitere Fehler findet, einfach hier eine Nachricht schreiben oder eine PM an mich!

Ich werd' den Bug eben beheben und ein Fix veröffentlichen. Somit kann auch mal getestet werden ob "Check-For-Update" funktioniert^^

Offline GutZuFuss

  • Überlebender
  • *
  • Beiträge: 22
  • Bohnen: + 41 / - 0
  • Abzeichen: 2
    Erster Beitrag
    Einjähriges Jubiläum im Forum



Mehr ...

  • Aktivität: 0%
  • Likes/Beiträge: 1%
    • Ingame: GutZuFuss
  • Registriert: Nov 2014
    • GutZuFuss Youtube Channel
[Software] DayZ Adminlog Manager HOTFIX (1.3.2.1)
« Antwort #42 am: Dienstag, 30.Jun 2015 - 20:07 Uhr »
HOTFIX 1.3.2.1

Change Log:

Fixes:
  • 'Injured' Name des Opfers wurde mit dem Namen des Täters vertauscht

DayZ Adminlog Manager 1.3.2.1

Ihr könnt mal überprüfen ob die 'Check for Update' funktion funktioniert. Einfach im Menu: Help -> Update andrücken.

Offline GutZuFuss

  • Überlebender
  • *
  • Beiträge: 22
  • Bohnen: + 41 / - 0
  • Abzeichen: 2
    Erster Beitrag
    Einjähriges Jubiläum im Forum



Mehr ...

  • Aktivität: 0%
  • Likes/Beiträge: 1%
    • Ingame: GutZuFuss
  • Registriert: Nov 2014
    • GutZuFuss Youtube Channel
Vielen Dank an alle!
« Antwort #43 am: Sonntag, 23.Apr 2017 - 15:35 Uhr »
Am November 2014 habe ich den DayZ Adminlog Manager hier veröffentlicht. Das ist nun schon sehr lange her - wie schnell doch die Zeit vergeht.
Die Weiterentwicklung sowie den Support vom DayZ Adminlog Manager habe ich nun schon seit einer ganzen Weile eingestellt. Ich hoffe dennoch dass das Programm seine Aufgabe noch erfüllt. Der Manager wurde so programmiert, das unbekannte Zeilen ignoriert werden - hat nur leider den Nachteil das neue Informationen nicht mehr angezeigt werden.

Wie dem auch sei, ich hatte das Verlangen mich hier nochmal zu melden und der Community mitzuteilen das es mir großen Spaß gemacht hat dieses Tool zu schreiben. Ich habe sehr viel positives Feedback bekommen und die Community war sehr hilfreich. Vielen dank an alle, geile Community, macht weiter so (and always be friendly) (y)  :))

An dieser Stelle möchte ich einen besonderen Dank an folgende Personen ausprechen:

Ein großer Dank geht an jede Person, die mir eine Spende hat zukommen lassen:
(Um die Privatsphäre zu schützen keine vollständigen Namen)
Mikhail N.
Roland R.
Charles H.

Danke für den Support und die Mitarbeit (zusenden von Adminlog Daten):
@saiboT
@[eXon] Simon

Ebenso großen Dank für die Unterstützung und den Support:
@r4hDex
@MaVerick[LAS]
@smurfi
@Fitch

Es ist schon ziemlich lange her und es kann sein das ich paar Personen vergessen habe. Danke an alle die mich unterstützt haben.

Offline M3ta

  • Zombie
  • *
  • Beiträge: 2
  • Bohnen: + 0 / - 0
  • Abzeichen: 1
    Erster Beitrag



Mehr ...

  • Aktivität: 0%
  • Likes/Beiträge: 0%
    • Ingame: [LF]M3ta
  • Registriert: Mai 2017
Re: [Software] DayZ Adminlog Manager
« Antwort #44 am: Dienstag, 25.Jul 2017 - 07:36 Uhr »
kannst du nicht eine kleine db dafür anlegen?
ich habe das ganze via webfrontend mit datenbank gelöst...
dabei werden alle 2minuten neue einträge hinzugefügt (scheduler/cronjob) und via webfrontend kann man sich das dann anzeigen und filtern lassen
skype benutzt doch auch so eine kleine lokale datenbank, vielleicht solltest du mal in die richtung denken... ;)


zum einlesen der logs in die db benutze ich folgenden codeschnipsel...
Spoiler for Verborgen:
$start=microtime(true);
require('db_init.php');
$server_cnt=2;
$db=0;

$actions=array(
'connect' => '" is connected (id=',
'disconnect' => ') has been disconnected',
'start_bleeding' => ') STARTS BLEEDING."',
'stop_bleeding' => ') STOPS BLEEDING."',
'kill' => ') was KILLED by ',
'hit' => ') HIT ',
'status' => ') STATUS S::',
'shot' => ') SHOT ',
'unconsciousness' => ') has fallen into unconsciousness."',
'kill_oldlog' => ') has been killed by player "',
'hard_hit' => ') has fallen into unconsciousness. HARD HIT Total S::'
);

$af=array(' was KILLED by ',' HIT ',' SHOT ');
exec('rm -fr kill1/split; mkdir kill1/split; cd kill1/split; split -a 6 -d -l 100 ../DayZServer.ADM; cd ../..');
exec('rm -fr kill2/split; mkdir kill2/split; cd kill2/split; split -a 6 -d -l 100 ../DayZServer.ADM; cd ../..');

for($svrcnt=1;$svrcnt<=$server_cnt;$svrcnt++){
  $linecnt=1;
  $splitfiles=scandir('kill'.$svrcnt.'/split');
  asort($splitfiles);
  unset($splitfiles[0]);
  unset($splitfiles[1]);
  $lastlog=mysql_ifr("SELECT log FROM dayzlogs WHERE server='$svrcnt' ORDER BY id DESC LIMIT 1");
  $skip=true;
  $set_new_date=false;
  foreach($splitfiles as $logfile){
    $lines=file('kill'.$svrcnt.'/split/'.$logfile);
    foreach($lines as $str){
      $str=ltrim(rtrim($str));
      $insert=$name=$steamid=$guid=array();
      $aktion=$waffe=$koerperteil=$schock=$blut=$gesundheit=$energie='';
      $spieler=1;
      if(strpos($str,'dminLog started on ')){
        $str=str_replace('AdminLog started on ','',$str);
        $tmp=explode(' ',$str);
        $datum=$tmp[0];
        unset($tmp);
      } else if($str[8]==' ' && $str[9]=='|' && $str[10]==' '){
        $tmp=explode(' | ',$str);
        $zeit=$tmp[0];
        $xzeit=explode(':',$zeit);
        if($set_new_date==true && $xzeit[0]>=0 && $xzeit[0]<=4){
          $datum=date("Y-m-d",strtotime($datum)+(3600*24));
          $set_new_date=false;
        }
        if($xzeit[0]==23){
          $set_new_date=true;
        }
        $tmp[1]=str_replace(array('(uid=','"Player '),array('(id=','"'),$tmp[1]);
        $ids=explode('(id=',$tmp[1]);
        foreach($ids as $id) if(strpos($id,')')){
          $steamid[$spieler]=substr($id,0,strpos($id,')'));
          $spieler++;
        }
        $name[1]=substr($tmp[1],strpos($tmp[1],' "')+1);
        $name[1]=substr($name[1],0,strpos($name[1],'(id='));
        if($name[1][0]=='"') $name[1]=substr($name[1],1,-1);
        $name[1]=str_replace('" is connected','',$name[1]);
        foreach($actions as $short => $long) if(strpos($str,$long)) $aktion=$short;
        if($aktion=='kill_oldlog'){
          $name_tmp=explode(') has been killed by player "',$tmp[1]);
          $name[2]=substr($name_tmp[1],0,strrpos($name_tmp[1],'"'));
          if($steamid[1]==$steamid[2]) $aktion='suicide';
        }
        if($aktion=='kill'){
          $name_tmp=explode(') was KILLED by ',$tmp[1]);
          $name[2]=substr($name_tmp[1],0,strrpos($name_tmp[1],'('));
          if($steamid[1]==$steamid[2]) $aktion='suicide';
        }
        if($aktion=='hard_hit') $schock=substr($tmp[1],strrpos($tmp[1],'::')+2,-1);
        if($aktion=='hit' || $aktion=='shot'){
          $name_tmp=explode(' '.strtoupper($aktion).' ',$tmp[1]);
          $name[2]=substr($name_tmp[1],0,strrpos($name_tmp[1],'('));
          $waffe=substr($str,strpos($str,') by ')+5);
          $waffe=substr($waffe,0,strpos($waffe,' into '));
          $koerperteil=substr($str,strpos($str,' into ')+6,-2);
        }
        if($aktion=='status'){
          $stat_tmp=explode('STATUS',$tmp[1]);
          $stat_tmp2=substr($stat_tmp[1],0,-2);
          $status=explode('::',$stat_tmp2);
          $schock=substr($status[1],0,-2);
          $blut=substr($status[2],0,-2);
          $gesundheit=substr($status[3],0,-2);
          $energie=$status[4];
        }
      }
      $insert['server']=$svrcnt;
      $insert['datum']=$datum;
      $insert['zeit']=$zeit;
      $insert['spieler1']=$spieler1=$name[1];
      if($name[2]<>'') $insert['spieler2']=$name[2];
      $insert['aktion']=$aktion;
      $insert['spieler1_steamid']=$steamid1=$steamid[1];
      if($steamid[2]<>'') $insert['spieler2_steamid']=$steamid[2];
      if($waffe<>'') $insert['waffe']=$waffe;
      if($koerperteil<>'') $insert['koerperteil']=$koerperteil;
      if($schock<>'') $insert['schock']=$schock;
      if($blut<>'') $insert['blut']=$blut;
      if($gesundheit<>'') $insert['gesundheit']=$gesundheit;
      if($energie<>'') $insert['energie']=$energie;
      $insert['log']=$str;
      if($aktion<>''){
        if($skip==false) mysql_insert('dayzlogs',$insert);
      }
      if($str==$lastlog) $skip=false;
    }
  }
}
echo round((microtime(true)-$start),2).'s';

Ich weis ich grab Leichen aus, und höchstwahrscheinlich gehörts nicht in den Thread, aber ich bin der Verzweiflung nahe! Wie schreibst du die DayZServer.ADM live in eine Datenbank? Google hab ich mittlerweile durchgespielt und nix gefunden bzw nur unvollständige Ansätze. Für Hilfe wäre ich sehr Dankbar!