Vollständige Version anzeigen : Ausschreibung: Programmierer gesucht
Ja, wir geben es zu: Wir wissen nicht weiter :cry:
Wir möchten auch so einen netten Replay Parser wie das UF ihn hat!
Und deswegen suchen wir einen Programmierer mit C++ und php Kenntnis der uns auf der Basis eines, zur Verfügung stehenden, Generals Tools (liegt in C++ vor und gibt die Replaydaten in einer HTML Datei aus, Sourcecode enthalten) (http://www.cncnz.com/files/count/click.php?id=502) so etwas für TW (und natürlich KW) umschreibt.
Dabei ist es ausreichend wenn die gefundenen Infos einfach nur ausgegeben werden (also keine wirklich Umsetzung in die HTML Ausgabe).
Benötigte Infos wie folgt:
Spiel
Spielversion*
Spielart (ranked/unranked)
Voip*
Dauer
Mapname[offiziell/inoffiziell]
Spieler(x)[Nick,Army,Team,1vs1Rank*,2vs2Rank*]
Spieler(y)[Nick,Army,Team,1vs1Rank*,2vs2Rank*]
Spieler(z)....
...
*: Nice to have
Das Ganze soll natürlich nicht nur für Ruhm und Ehre sein.... wir würden ein Fanset, bestehend aus T-Shirt, Cap, Pin und Nod-Ring dafür herausrücken, alternativ - aber dann später - eine KW Ausgabe.
Das Adminteam (und vermutlich alle User) würde sich sehr freuen... ;)
MyersGer
08-01-2008, 15:44
Hm... nur auslesen und in ne DB schreiben?
Mir reicht prinzipiell sogar die reine Ausgabe in HTML, unformatiert, alles andere kann ich dann selber ;)
Von mir aus auch direkt ein eine DB Tabelle geschrieben, dann hol ich sie mir da wieder raus....
MyersGer
08-01-2008, 15:47
Na, ich würd's ja in ner Tabelle speichern. Da kann man vielleicht sogar Doppeleinträge verhindern, falls ein Replay 2 mal hochgeladen wird.
Der_Mosch
08-01-2008, 17:55
Hab so was noch nie gemacht, aber ich würds gerne mal ausprobieren (so schwer kanns ja nicht sein). Hat jemand ne Dateistruktur für die TW-Replays oder muss ich da selber suchen?
Nur das, was im Link für das Generals Tool angegeben ist.
Da ist, im Ordner /src auch so weit aufgeschlüsselt, wie es dem Progger damals bekannt war, was in den Binaries drin steht (für Generals).
Für TW sieht das, was ich so verglichen habe, nicht viel anders aus.
@Mosch, die Daten, die Sven haben möchte, kann man sogar mit dem normalen Editor von Windows auslesen. Die stehen da so drin. Nur eben wie das Match ausgeht, liegt im Verborgenen, weil TW das alles runterrechnet in den Replays.
Den Spielerrang kann man auch einfach wieder von Gamespy abrufen. :)
Der_Mosch
08-01-2008, 19:27
Ich hab mir gerade ein paar Replays besorgt und fummel daran jetzt mal rum.
OMG, Sven hat ja im ersten Post einen LINK! :D Ich glaub, die Woche kann ich knicken, ich merk gar nichts :D
MyersGer
08-01-2008, 21:04
Die Dateistruktur ist leicht unterschiedlich zu der von Generals. Aber das tut nicht wirklich weh. Das Auslesen an sich ist kein Ding, was nervt sind die dynamischen längen der Strings (z.B. Nickname) und ein fehlender vernünftiger Header.
Eigentlich bräuchtest du das ja eher als PHP, damit man das direkt beim Hochladen auslesen kann, oder Sven?
MyersGer
10-01-2008, 09:49
Hm ja wenn ich mehr Zeit hätte, würde ich das gerne für euch machen. Aber ich habe selber ein paar Baustellen offen.
kann mir wer ein paar Files schicken? Dann schau ich mir die mal an und wenns wirklich so einfach ist wie ich denke...
Sind oben im ersten Posting verlinkt ;)
MyersGer
10-01-2008, 21:18
kann mir wer ein paar Files schicken? Dann schau ich mir die mal an und wenns wirklich so einfach ist wie ich denke...
Musst nur darauf achten, dass die Strings in Unicode sind!
@Sven, ich meinte eigentlich ein oder zwei Replay Dateien ;
http://www.cncforen.de/forumdisplay.php?f=515
Bedien dich ;)
Zum Vergleich ein Generals Replay
gersultan
11-01-2008, 14:47
@Sven, ich meinte eigentlich ein oder zwei Replay Dateien ;
oder hier: http://www.cnc-community.de/articles/read.php?article_id=1349 :) (achtung custom-maps)
Chrissyx
12-01-2008, 04:15
Ich hab mich mal rangesetzt und eine erste lauffähige Version findet ihr hier:
http://www.chrissyx.com/beta/twrr/index.php
Im Moment wird unterstützt:
Dateiname
Dateigröße
Spielname
Mapname
Mapdateiname
Nicks aller Spieler
Spielversion
Wird noch ausgebaut, hab heute abend nicht mehr geschafft.
Wenn sich jemand ganz gut mit der C&C3 Replay Struktur auskennt (ist ja dann doch etwas anders als bei Generals), bitte melden!
Known bugs: Kommentator Eintrag im Replay wird als Spieler gelistet, Erkennung von Zuschauern fehlt (resultiert in Warnung, theoretisch :rolleyes: )
Bis dahin könnt ihr schon mal testen und rumspielen und bei Interesse kann ich die Version auch zum Download anbieten. Und ja, Quellcode ist dokumentiert (deutsch / englisch). ;)
So, n8! :sleep:
gersultan
12-01-2008, 05:13
Known bugs: Kommentator Eintrag im Replay wird als Spieler gelistet,
meinst du damit:
Spieler 5: post Commentator? Ich hab diese Angabe obwohl kein Commentator vorhanden war ;)
Chrissyx
13-01-2008, 05:52
Ja, das mein ich. In jedem Replay ist komischerweise ein Kommentatoreintrag vorhanden, unabhängig davon, ob tatsächlich kommentiert wurde oder nicht. Dieser wird dann einfach mitausgelesen und angezeigt. Ich bräuchte daher mal ein Replay, welches wirklich ein Kommentar mit dabei hat, so dass ich dann mal eine Erkennung einbauen kann. ;)
Jedenfalls hab ich weiter programmiert und nun wird folgendes unterstützt:
Dateiname
Dateigröße
Spielname
Mapname
Mapdateiname
Spielversion
sowie durchnummeriert Details über alle Spieler. Bei menschlichen:
Nick
Farbe
Partei
Position auf der Karte
Team
Clan Tag
Bei Computern:
Schwierigkeitsgrad
Farbe
Partei
Position auf der Karte
Team
Handicap
KI Persönlichkeit
Damit kann man schon was anfangen. :D
Was noch fehlt, ist die Unterstützung für Zuschauer (erkannt werden sie inzwischen) und, wie bereits erwähnt, die Sache mit den Kommentatoren. Dafür brauch ich dann auch passende Replays. :yes:
Probleme hab ich auch noch mit dem Datum, ich hab keine Ahnung, an welcher Stelle das im Replay steht. :ka:
Known bugs: "Kommentator-Leiche" wird immer angezeigt, Versionsnummer kann in seltenen Fällen falsch ausgelesen werden
Wer Bugs findet oder sonst was los werden will, immer her damit. ;)
http://www.chrissyx.com/beta/twrr/index.php
RedBasti
13-01-2008, 10:04
Das funzt doch so weit schon mal sehr gut. :thx:
Was mir gerade bei einem Replay mit Beobachter aufgefallen ist, dass der Beobachter nicht als solcher ausgelesen wurde.
http://www.gamer-oase.de/files/cnc-com/CML-Replays/CML-Derksen15-Altaire-odiablo-Napoleon1977.CNC3Replay
War als Beo dabei, Partei steht aber hier auf zufällig.
Chrissyx
13-01-2008, 18:33
Ah gut, jetzt konnte ich auch Unterstützung für Zuschauer einbauen. :)
http://www.chrissyx.com/beta/twrr/index.php
Neu ist außerdem auch die Erkennung vom Spieltyp, ob Automatch oder Eigenes Match.
Wegen der "Kommentator-Leiche" hab ich wohl eine Lösung gefunden, wäre interessant zu wissen, wie sich das mit echten Kommentar-Replays verhält. Bis dahin sollten nur die tatsächlichen Beteiligten angezeigt werden. :yes:
Known bugs: Kommentatoren könnten ignoriert werden, Versionsnummer kann in seltenen Fällen falsch ausgelesen werden
Als nächstes kommen Angaben zu den Regeln, also wieviel Startgeld, Spielgeschwindigkeit oder Kisten an/aus. Hoffentlich irgendwann auch mal das Datum. :rolleyes:
So, ich hab mir einfach mal erlaubt das ding zu testen, und ein Replay hochzuladen.
Hochladen geht bereits, doch wo kann man nun das ding verlinken, bzw runterladen?
http://www.chrissyx.com/beta/twrr/index.php
Der steht nun oben so im Browserfenster. (Firefox)
Datei: Langes game.CNC3Replay
Größe: 1472 KB
Spielname: Zivilisation 21
Mapname: Riverside Rumble
Mapfilename: data/maps/official/map_mp_2_simon
Spieler 1: Z21|Matze_I, Farbe: Rot, Partei: Nod, Position: Zufällig, Team: -, Clan: Z-21
Spieler 2: Soifz, Farbe: Grün, Partei: Scrin, Position: Zufällig, Team: -, Clan: Z-21
Spieltyp: Eigenes Match
Version: 1.9
Zurück (http://www.chrissyx.com/beta/twrr/index.php)
Chrissyx
13-01-2008, 19:22
Die Replays werden nicht auf dem Server gespeichert, es werden nur Infos ausgelesen und entsprechend angezeigt:
Dabei ist es ausreichend wenn die gefundenen Infos einfach nur ausgegeben werden (also keine wirklich Umsetzung in die HTML Ausgabe).
Sollte das Script dann später seinen Weg hier ins Forum finden, sind die angehängten Replays natürlich downloadbar wie gewohnt - nur das es dann zusätzliche Details gibt. ;)
Sehr gute Arbeit bis jetzt Chrissyx - gefällt mir so bereits sehr gut. :thx: ;)
gersultan
13-01-2008, 21:18
aktuell bin ich sehr begeistert :gf::thx::)
Chrissyx
14-01-2008, 04:37
So, Spielgeschwindigkeit, Startgeld und Zufallskisten ein/aus ist nun auch drin. Ich hab schon einen Verdacht, was ranked/unranked, battlecasted und VoIP bedeuten könnte und werd die Tage mal passende Replays sammeln.
Wegen dem Datum hab ich fast das Gefühl, es ist gar keins vorhanden? :ka: Da wird wohl immer das Dateidatum genommen...
Die Kommentator Sache hab ich auch nochmal umgebaut, da ich mindestens ein Replay gefunden hab, wo das so nicht funktionierte und Spieler verschluckt wurden. Ich hoffe mal, jetzt geht's und ein Replay mit Kommentar zum Testen wäre immer noch eine dolle Sache. :D
Known bugs: Kommentatoren könnten ignoriert werden, Versionsnummer kann in seltenen Fällen falsch ausgelesen werden
http://www.chrissyx.com/beta/twrr/index.php
Sehr schön bis jetzt :thx: ;)
ist es möglich das php-skript einsehen zu dürfen? Gerne auch als PM ;)
Chrissyx
14-01-2008, 22:53
Und heute präsentiere ich euch die vorerst letzte Version: Ich hab im wesentlichen Unterstützung für die Spielart eingebaut, d.h. Angaben über online/offline Spiel, ranked/unranked, 1v1/2v2 normal und 1v1/2v2 Clan. Weiterhin, ob das Spiel "geBattleCasted" wurde und VoIP aktiviert ja/nein; wobei ich mir bei VoIP nicht ganz sicher bin und deswegen noch mit ? versehen ist. => Bitte ausprobieren, ob das so passt!
Tests mit kommentierten Replays sahen soweit gut aus, so dass "echte" Kommentatoren wohl nicht ignoriert werden, ergo dürfte der "Kommentator-Leiche"-Bug auch Geschichte sein. Genau so gefixt ist nun das mögliche falsche auslesen der Versionsnummer, was übrigens auch in sehr seltenen Fällen auf den sogenannten INI String zutreffen konnte und nur noch Datenmüll produzierte. :D Beide Verfahren neu programmiert und bis jetzt hab ich kein falsches Ergebnis bekommen. :)
Unterm Strich sieht's nun so aus:
Dateiname
Dateigröße
Spielname
Mapname
Mapdateiname
Spielgeschwindigkeit
Startgeld
VoIP (Ja/Nein)
BattleCasted (Ja/Nein)
Zufallskisten (Ja/Nein)
Spieltyp (Automatch/Eigenes Match)
Spielversion
sowie Details über die Spielart:
Online/Offline
Ranked/Unranked
1 vs. 1/2 vs. 2
1 vs. 1 Clan/2 vs. 2 Clan
und durchnummeriert Details über alle Spieler: Bei menschlichen:
Nick
Farbe
Partei
Position auf der Karte
Team
Clan Tag
Bei Computern:
Schwierigkeitsgrad
Farbe
Partei
Position auf der Karte
Team
Handicap
KI Persönlichkeit
Known bugs: Offline LAN Spiele könnten in ein "UNBEKANNT" bei der Spielart-Anzeige resultieren, das müsste mit passenden Replays getestet werden.
Zum Thema Datum sieht's unverändert aus, da kann ich höchstens das Dateidatum anbieten? Die Dauer des Replays scheint auch nicht so in "Klartext" vorhanden zu sein und ich hab momentan keine Ahnung, wie man das berechnen könnte. Angabe über den Rang eines Spielers ist wohl ebenfalls nicht im Replay vorhanden, aber das könnte man über die EA Seite beziehen à la Profile Poller von cc3.xtrapas.de. Zwar gibt es noch eine Menge weiterer Werte, die ich bisher noch nicht zuordnen konnte, aber Datum, Dauer und Rang war wohl nicht dabei. :rolleyes:
Sonst sollte alles drin sein, was verlangt wurde. :)
http://www.chrissyx.com/beta/twrr/index.php
Außerdem müsste noch geklärt werden (wenn es soweit kommt), ob das Script nun CnC Foren-exklusiv wird oder frei verfügbar für jedermann, so dass auch andere den Replay Reader nutzen können? Mir persönlich ist es egal und wenn ja, ist se7en der Erste, der es bekommt. ;)
:)
Aber um Veröffentlichung o.ä. gehts mir nicht! Bin nur interessiert (wäre die Anfrage im Februar gekommen hätte ich auch gerne mitgearbeitet)
RedBasti
15-01-2008, 15:07
Super Arbeit Chrissyx! :thx:
Chrissyx
15-01-2008, 19:47
Allgemein erstmal danke für's Lob. :freu:
Die aktuelle Version ging gerade eben an Sven raus, so dass mit der HTML Umsetzung angefangen werden kann.
@se7en: Das musst Du mit der Boardleitung besprechen, im Moment sieht's eher nach exklusiv aus. :rolleyes:
saemikneu
27-01-2008, 03:36
Weshalb musste das in C++ sein? Das ginge mit Java genau so gut.
Aber Chrisxy hat das ja super gemacht (so braucht es auch kein Tool) :thx:
Chrissyx
27-01-2008, 06:02
Der Parser musste in PHP sein, erforderlich waren C++ Kenntnisse nur für das Generals Tool, welches als Vorlage diente. ;)
saemikneu
28-01-2008, 01:13
Das Generals-Tool meinte ich eigentlich ;)
Neu in Java zu schreiben wäre ja auch möglich gewesen und besser, weil so etwas neu enstehen kann und die Kenntnisse gleich erweitert. Nicht so wie es Microsoft in Windows macht: immer alten Code mitzuschleppen :blah:
SailedAway
28-01-2008, 01:15
naja irgendeinen leitfaden braucht man ja. es komplett alleine zu entwickeln hätte sicherlich wedentlich länger gedauert
Chrissyx
28-01-2008, 21:53
Das Generals-Tool meinte ich eigentlich ;)
Neu in Java zu schreiben wäre ja auch möglich gewesen und besser, weil so etwas neu enstehen kann und die Kenntnisse gleich erweitert.
Nur was willst Du mit einer Java Anwendung, wenn es PHP sein soll? Oder ich versteh dich wieder falsch... http://smilies.cncforen.de/ugly.gif
naja irgendeinen leitfaden braucht man ja. es komplett alleine zu entwickeln hätte sicherlich wedentlich länger gedauert
Das stimmt, besonders hilfreich war die Strukturbeschreibung von Generals Replays. Konnte ich zwar nicht 1:1 übernehmen, aber wenn's passte, wusste ich gleich worum es geht. :)
Das Generals-Tool meinte ich eigentlich ;)
Neu in Java zu schreiben wäre ja auch möglich gewesen und besser, weil so etwas neu enstehen kann und die Kenntnisse gleich erweitert. Nicht so wie es Microsoft in Windows macht: immer alten Code mitzuschleppen :blah:
Was willst du mit Java dafür? Auf einem Board das rein in php geschrieben ist?
MyersGer
29-01-2008, 09:13
Na das ist wohl eher ein Problem, das heute in vielen Schulen entsteht. Jeder Hansel meint, seinen Schülern Java beibringen zu müssen. Dadurch entsteht der Eindruck Java sei DIE Lösung für alles und viele lernen gar nicht mehr, was Programmieren bedeuten kann.
Eins steht jedenfalls fest: Java wäre hier totaler Schwachsinn gewesen!
vBulletin v3.7.3, Copyright ©2000-2024, Jelsoft Enterprises Ltd.