CSConStatsCounter v0.1 július 11. 19:03 19 hozzászólás 987 olvasás
Statisztika készítése egyszerűen.
Üdv megint!
Nemis oly rég, egyik képnél írtam egy saját programomról, ami statisztikát számol HLTV demó segítségével.
Többen is érdeklődtek iránta, ám eddig nem osztottam meg, mert finoman szólva kicsit se volt felhasználóbarát :)
De ezen változattam és immáron sokkal könnyebben lehet vele egy ilyen statisztikát összehozni, mint régebben. A régi verzióval kb. 10-15 percembe telt összehozni a statisztikát, mostmár ezzel az újabb verzióval 5-7 perc. Mivel egyszer se álltam neki demót nézni, és kézzel összeírni, hogy ki mennyit ölt, vagy halt meg, így összehasonlítani se tudom, de feltételezem ennél jóval több időbe telik :)
Mivel a program kezelése nem teljesen magától értetődő, így egy példán keresztül szemléltetem, hogyan is kell használni:
Az ICL6-os Teamwork vs BUSZ.xzn meccs HLTV-jét vettem alapnak, melyet innen le is tölthettek.
Összessen 3 fő részre bontanám a tennivalót:
1 - HLTV segítségével a szükséges adatok exportálása a játékból
2 - Adatok szerkesztése szövegszerkesztővel
3 - Az adatok betöltése a programmal és mentése, statisztika mentése
Lépések:
- 1. rész -
a, Nyissuk meg a HLTV demót játékban:
"playdemo teamwork_vs_BUSZ-de_dust2.dem"
Egy kis kitérő: Hogy miért playdemo és miért nem viewdemo?
A playdemonak két nagy előnye is van viewdemoval szembe. Egyrészt nem kell megvárni míg betölti a teljes demót, másrészt ha pályaváltás van a demóban, azt is érzékeli és nemáll meg a lejátszás, hanem betölti a pályát és folytatja a lejátszást.
Viszont van egy nagy hátránya: nemlehet visszafele tekerni.
Sokan nemtudják, de létezik egy parancs, amivel sokszoros sebességre is fel lehet gyorsítani a lejátszást. Ha átcsúszunk pl. a meccs indulásán, akkor nincs más dolgunk, mint újra elindítani a lejátszást és gyorsan előretekerni a kívánt részhez.
Gyorsítani a "host_framerate x" parancsal tudunk.
Javaslom az alábbi bindeket:
"bind F6 host_framerate 0"
"bind F7 host_framerate 0.000000001"
"bind F8 host_framerate 0.1"
A host_framerate alapértelmezésben a 0 értéket veszi fel, ez jelöli azt, hogy kivan kapcsolva a gyorsítás.
Az F7-es bind sokszorosára lelassítja a lejátszást, így gyakorlatilag olyan a hatása, mint viewdemo esetén a pause-nak.
Az F8-as bind pedig 1/10-re lassítja, ami annyit tesz, hogy tízszeresére gyorsítja a lejátszást.
Ezekkel a bindekkel könnyen odatekerhetünk akár meccs kezdetére, akár a végére.
b, Ha megvan a meccs eleje (késkör utáni rész, 3 restart), akkor a "clear" paranccsal töröljünk mindent a konzolból, majd tekerjünk a félidő végére.
Ha vége a félidőnek a "condump" paranccsal mentsük ki a konzol tartalmát egy txt-be.
Itt jegyezném meg, hogy nem kötelező külön felvenni a kettőt, különösen akkor, ha nem lövöldöznek a két félidő között. Én a biztonság kedvéért mindig külön kezelem a kettőt.
Ismét tekerjünk, ezúttal a 2. félidő elejére (3 restart), "clear". Ahogy az előbb, most is tekerjünk a végére, majd "condump" segítségével mentsünk.
Ha ezzel megvagyunk, akkor van kettődarab condump fileunk mindkét félidőről, benne a szükséges adatokkal. Aki akarja át is nevezheti, hogy később is tudja melyik file melyik meccset tartalmazza.
Nálam ez így néz ki: "rész_csapat1_csapat2_versenyneve_félidő.txt"
Példafileok: 1_teamwork_BUSZ_ICL6_1.txt, 1_teamwork_BUSZ_ICL6_2.txt
- 2. rész -
a, Az exportált adatokat (condumpXXX.txt) nyissuk meg szövegszerkesztőben (pl. Notepad++). Azokat a sorokat melyek chat szöveget (*DEAD* sorok), szerver üzenetet (LIVE üzenet, stb), konzol parancsot ("]"-el kezdődő sorok) tartalmaznak töröljük. Végül a változatásokat mentsük el.
Példafileok: 2_teamwork_BUSZ_ICL6_1.txt, 2_teamwork_BUSZ_ICL6_2.txt
b, Ha külön statisztikát akarunk készíteni a két félidőről, akkor ki is hagyhatjuk ezt a részt.
Füzzük össze a két félidőt. Szövegszerkesztőben nyissuk meg a 2. félidőt, másoljuk ki a tartalmát, majd nyissuk meg az 1. félidőt, menjünk a végére és illesszük be a kimásolt részt. Végül mentsük el, jelezve, hogy egybe van a két félidő.
Példafile: 2_teamwork_BUSZ_ICL6.txt
- 3. rész -
a, Indítsuk el végül a CSConStatsCounter-t, majd nyissuk meg az előzőleg elmentett munkánkat. Megnyitás után, egy ilyen ablak fogadhat minket:

Mivel HLTV-vel dolgozunk, nemárt tudni, hogy a HLTV néha egy-egy karaktert kihagyva ír üzenetet a konzolba. Ez egy bug, semmi mást nemtudunk vele csinálni, mint javítjuk. A program itt arra figyelmeztet, hogy nem képes értelmezni az adott sort (# után írja, hogy hányadik sorban található a hiba az aktuális fileban), és megkér minket, hogy az adott séma szerint javítsuk. Itt is két lehetőségünk van, vagy javítjuk a sort, vagy nem. Előbbinél ha jól csináltuk, akkor eltűnik ez az ablak, ha nem, akkor újra előjön.
Másik választás lehet a "Cancel", vagy az "ESC" megnyomása, amivel figyelmen kívül hagyhatjuk a sort. Fontos megjegyezni, hogy amelyik sort kihagyjuk, azt nemfogja beleszámolni a statisztikába.
Példánál maradva ezt a szöveget kell javítani: "teamwork ' kic$i kille g4nDzsaBUSZ.xzn quick with ak47". Itt a "kille" résznél maradt le egy "d" betű, javítottam hát.
Ami problémás lehet az a "killed", és a "with" szócska, vagy valamelyik szóköz marad le, esetleg fejlövés esetén a "with a headshot from" rész nem stimmel, a gyilkos az áldozat valamint a fegyver neve itt most nem lényeges.
Szerencsére ebben a demóban csak egy ilyen hibát talált.
b, Miután javítottuk az esetleges hibákat, megjelenik maga a program.

Ahogy mondottam a HLTV kissé bugos, így itt-ott kifelejt egy karaktert, ennek köszönhetően olyan játékosok jelentek meg a listában, akik nagy valószínűséggel nem szerepeltek a meccsen. Ezeket a program segítségével könnyen javíthatjuk.
Rögtön elsőnek "eamwork ' smilee". A programnak köszönhetően, könnyedén javítható az efféle hiba: Jobbklikk a hibás névre, "Change name", majd a megjelenő ablakban, kiválasztjuk, hogy mire, vagy kire szeretnénk lecserélni.

A hibás játékosnak az adatai hozzáadódnak ahhoz, akit kiválasztottunk a listából. Én most "teamwork ' smile"-ra cseréltem. Igen ám, de most eltűnt a "teamwork ' smilee" és lett helyette egy "tteamwork ' smile".

Ez azért fordult elő, mert a program az összes "t" nélküli smilee-t lecserélte, vagyis a "teamwork ' smilee"-ból fogta a "t" nélküli részt és lecserélte "t"-s részre, ezért szerepel immáron kétszer a "t" az elején. Ha most a "teamwork ' smile"-t cseréljük le "tteamwork ' smile"-ra, akkor a sima eltűnne és megjelenne egy "ttt"-s változat.
Ugyanezt eljátszhatjuk szintén smilee-val, csak visszafele, vagyis ha a "teamwork ' smile"-t cseréljük le "teamwork ' smilee"-ra, akkor eltűnik az "e"-re végződő, és megjelenik egy új, "eee"-re végződő. Ugyanaz a folyamat megy végbe, csak fordítva.
Ha egy csere után vagy az első, vagy az utolsó karakter többszöröződik, akkor egyszerűen fordítsd meg a cserét. Ha az fentebb lévőt cserélted az alsóval, akkor az alsót cseréld a fentivel, és fordítva.
A végén pedig, ha megvan a teljes csapat statisztikája, akkor arra nevezed egyesével őket, amire szeretnéd.
Ami még előfordulhat az a "self" játékos. Neki leginkább csak egy halála van. A teendő: a kimentett condump-ból kikeresni a self-et, megnézni hogy kinek a neve áll mellette, majd kicserélni rá. Jelen esetben ez áll a logban: "g4nDzsaBUSZ.xz hegedu killed self with worldspawn". Ergó jobbklikk "self"-re és kicseréljük hegedu-re.
Ha a "self"-nek 2, vagy több halála van, akkor szövegszerkesztőben keressük meg az összes előfordulási helyét, és nevezzük át sorban self1, self2, ..., majd megnézzük melyik self kihez tartozik és kicseréljük.
Ha mindennel megvagyunk, akkor így fest a dolog:

c, Elmenthetjük a condumpot, melyet ha újra betöltünk a programba, akkor már semmiféle javítandó hibával nemfogunk találkozni.
Valamint elmenthetjük magát a statisztikát is egy egyszerű txt-be, melyet később importálhatunk pl. Excelbe további feldolgozásra.
A txt-ben az oszlopok tabulátorral vannak elválsztva.
Példafile: 3_teamwork_BUSZ_ICL6.txt, 4_teamwork_BUSZ_ICL6_stats.txt
Ezzel végeztünk is. Az elkészült statisztikákat akár publikálhatjátok is klánhíreknél.
Letölteni INNEN tudjátok.
Esetleges hibák, ötletek privibe jöhetnek!
#18: Nem, élőbe hallgattam.
kurvajóvagy:D:D:D köszönjuk!:D
nemhiszem el h van aki fárad csak azért h kényelmesebb legyen nekünk hát TY mindent:D

Battlefieldhttp://www.battlefield.hu/
Call of Dutyhttp://www.cod.hu/
Counter-Strikehttp://www.counter-strike.hu/
Half-Lifehttp://www.half-life.hu/
Need for Speedhttp://www.nfs.hu/
Team Fortresshttp://www.teamfortress.hu/
TrackManiahttp://www.track-mania.hu/
OGC Webshophttp://shop.ogc.hu/
Steamhttp://www.steam.hu/
Mumblehttp://www.Mumble.hu/
Age of Empireshttp://www.aoe.hu/
Day of Defeathttp://www.dayofdefeat.hu/
Game Starhttp://www.gamestar.hu/
Garry's Modhttp://www.gmod.hu/
Grand Theft Autohttp://www.gta.hu/
Mafiahttp://www.mafia-game.hu/
Quakehttp://www.quake.hu/
Red Orchestrahttp://www.redorchestra.hu/
Replays.huhttp://www.replays.hu/
Scout Duel 2v2 