Spouštěč pro Equilibrii 2.0

Vše co nejde zařadit jinam

Moderátoři: World Builder, Dungeon Master, Dungeon Servant

Odpovědět
Roma
Příspěvky: 485
Registrován: 21. 5. 2008 17.39

Spouštěč pro Equilibrii 2.0

Příspěvek od Roma » 17. 8. 2008 19.15

Spoustec pro Equilibrii 2.0
Uplynula nějaká doba a já dokončil realizaci toho, co mě napadlo, když jsem psal před měsíci první verzi.
Některé věci jsem se naučil dělat lépe, některé jinak, setkal jsem se s úžasným unixovým prográmkem sed.exe, něco jsem v předchozí verzi nevyužíval, něco mi chybělo, no a nakonec je z toho verze 2.0

Ukázka okénka Spouštěče (hlavního scriptu) a okénka pro zápis poznámky.
Obrázek Obrázek

Takže co hlavního nová verze vlastně umí:
* Spouští hru NWN a připojuje ji na server Equilibrie. Následně se sám vypíná po vypnutí hry.
* Vytváří dva log soubory, jeden je bez úprav (kompletní log) a druhý je upravován tak aby se co nejvíce podobal deníku - knize (odebrání prázdných řádku, zdvojených řádků, nepotřebných údajů…) pro snadné čtení a vyhledávání
* Umožňuje zapisovat poznámky přímo do log souboru během hraní a tyto poznámky mohou být při vypínání hry přidány do deníku ve hře, který je ukryt pod klávesou "j".
* IC (herní) čas si skript zjistí sám (po seslání kouzla Zjisti čas, nebo zobrazení času u astrálních hodin) a zobrazí ho v okně.
* Umožňuje konvertovat screeny ze hry do jiných formátů a dále s nimi manipulovat.
* Vše se provede dle nastavení i v případě, že byl skript přerušen (například restartem počítače).
* Téměř vše lze snadno upravit změnou v nastavení.
* CMD Skript byl napsán tak, aby nezatěžoval zbytečně počítač a pracoval co nejefektivněji.

To by byla asi tak ty hlavní body, jaké bych zmínil. Dál ukážu, co jsem tím vlastně myslel:

Při hraní chci vědět, jak dlouho už hraju reálného času, protože přibyly povinnosti a musím si svůj čas více organizovat.
- Reálný odehraný čas je zobrazován.

Při hraní se mi také hodí vědět, jaký je IC čas a jak se vlastně ve hře říká aktuálnímu měsíci, často chci později při pročítání logu vědět, kdy se jaká událost ve hře odehrála podle IC času.
- IC čas se začne zobrazovat a je doplněn o název měsíce od chvíle, kdy si jej zjistí postava ať už použitím astrálních hodin, či sesláním kouzla Zjisti čas. Protože bylo záměrem, aby na pozadí běžící skript byl co nejmenší zátěží pro procesor, může nastat na každou odehranou reálnou hodinu odchylka zhruba 5 minut herního času.
- Je-li IC čas znám a ve hře nastane nový den, do log souboru se tato událost zapíše.

Chci mít zaznamenáno, co ve hře proběhlo (logování), chci si v tom moci číst a snadno vyhledávat, chci si moci do logu zapisovat aktuální poznámky, nemusím tam mít zmínky o tom, kolik XP mi každou minutu přišlo, nechci tam mít prázdné řádky, nepotřebuji vědět, kdo se kdy připojil a odpojil ze hry… Ale někdy se mi hodí moci tyto údaje dohledat, například jaký že hod byl na záchranu vlastně použit.
- Vytváří se dva logy s názvy dle nastavení. Jeden soubor obsahuje kompletní výpisy ze hry.
- - Druhý je upravován:
- - Jsou z něj odebírány řádky, které pro příběhovou rovinu nemají žádný význam a pouze komplikují vyhledávání a pročítání - To co bude odebráno je na Vašem nastavení/uvážení pomocí souboru "Odebrani_z_logu.sed".
- - Jsou vymazány prázdné řádky
- - Dvojité mezery jsou nahrazeny mezerami jednoduchými
- - Texty, které jsou rozděleny do několika řádků budou spojeny v řádek jeden a odřádkování je zobrazeno jako ";".
- - Duplicitní řádky (se stejným textem) jdoucí hned za sebou byť s odlišným časem jsou ponechány pouze jednou.
- - Mnoho řádků zabírá výpis Získaný a Ztracený předmět. Pokud jsou tyto za sebou jdoucí hlášky v logu nalezeny, spojí se v jeden řádek začínající slovem "Obchod:" a pomocí znamének "+" a "-" lze rozeznat, co bylo získáno a co ztraceno.
- - Do toho souboru je zapisován datum a čas spuštění a vypnutí hry.
- - Jsou do něj zapisovány poznámky. Já to využívám tak, že například když mě někdo o něco požádá, tak si napíšu poznámku: Úkol, přinést něco pro někoho. Když pak zapomenu, co jsem měl udělat a pro koho, stačí vyhledat slovo úkol.
- - Tyto logy mohou být rozděleny, pokud překročí určitou Vámi zadanou velikost… Dělá-li někomu problémy pročítat 20MB soubory, může si nastavit rozdělování například po dvou MB.

Často fotím ve hře obrázky, mám jich hodně a chci se v nich vyznat. Chci, aby byly jejich názvy doplněny o datum vytvoření. Chci, aby byly převedeny (konvertovány) do formátu, který může zobrazit Windows.
- Povolíte-li zpracovávání obrázků budou jejich názvy doplněny o datum vytvoření.
- Obrázky můžou být převedeny do jednoho z těchto formátů: dpi, bmp, gif, jpeg, tiff, png, pcx, tga, ico, pdf, eps.
- Obrázky v novém formátu můžou být přesunuty do Vámi zadané podložky.
- Původní obrázky ve formátu TGA můžou být přesunuty do Vámi zadané podsložky, nebo být vymazány.
- Nebude-li se Vám převedený obrázek líbit, můžete jej smazat a tím nechat vymazat i původní TGA obrázek. (Při povolení této funkce se tak děje při dalším spuštění skriptu).

Tato nastavení najdete v souboru Spoustec.bat a otevřete-li je například v poznámkovém bloku, budete je moci snadno změnit.

Obrázek

Další sobory které se týkají nastavení jsou mimo již zmíněného "Odebrani_z_logu.sed", soubor "Obchod.sed" a "Pisari.sed" - Jedná se v podstatě o další skripty, který jsou ale určeny pouze pro program sed.exe.
Nevím jak moc je sed - streams editor známý, ale na internetu se pro něj dá najít dost návodů. Já používám super-sed verze 3.62 který je založen na GNU sed verze 4.1
Tento program mi slouží k nahrazení částí textu, popřípadě odebrání celých řádků. Dovede to velmi rychle: Více než stovka různých úloh v souboru větším než 20MB souboru mu zabrala pouze několik desítek sekund.
Tyto soubory jak je předkládám já, obsahují téměř všechny texty, na které jsem během svého hraní narazil a které při pročítání logu nepotřebuji.
Můžete si do nich libovolně přidávat a odebírat cokoli Vás napadne.
Pokud se budete chtít skripty pro sed zabývat více, mrkněte na tyhle odkazy (ten první je dokonce česky) nebo napište PM a já Vám s tím pomohu (pokud budu vědět jak).
http://sed.sourceforge.net/sed1line_cz.html http://www.panix.com/~elflord/unix/sed.html http://psr.rice.edu/sed.html http://www.grymoire.com/Unix/Sed.html

Provoz
Pro provoz je nutné mít zapnuté logování nwn do souboru.
kolja píše:Zapíná se nastavením:
ClientEntireChatWindowLogging=1
v souboru NWN/nwnplayer.ini (u mě je to cca 9tej řádek souboru).
Celá složka se pouze nakopíruje (rozbalí se archiv .rar) přímo tam, kde máte nainstalovanou hru a spustí se souborem "Spoustec.bat".
Určitě koukněte do souboru "Info.txt" kde jsem vše potřebné popsal.

Vytvářeno a testováno na Windows XP Home, kompatibilita by měla být zachována na všech verzích windows (neověřeno).


Kdyby někdo nechtěl používat můj spouštěč, ale chtěl by vidět, jak upravený log vypadá, může využít "Samostatnou úpravu logu".
Je to skript, kterému zadáte vstupní a výstupní soubor a on provede všechny výše uvedené operace.
Původně jsem ho vytvořil pro upravení starších logů, aby byly stejné jako ty nově vytvořené.

Obrázek


Ukázka jak to může nakonec vypadat (nahoře je originál a dole je to, co je pro mě při pozdějším čtení podstatné):

[CHAT WINDOW TEXT] [Sat Jul 12 15:57:34] Na druhé straně přechodu je klid.
[CHAT WINDOW TEXT] [Sat Jul 12 15:58:21] xxxxx se připojil jako hráč..
[CHAT WINDOW TEXT] [Sat Jul 12 15:58:22] yyyyy používá zvláštní schopnost předmětu.
[CHAT WINDOW TEXT] [Sat Jul 12 15:58:22] yyyyy: *jí: Klobáska*
[CHAT WINDOW TEXT] [Sat Jul 12 15:58:22] Ztracený předmět: Klobáska
[CHAT WINDOW TEXT] [Sat Jul 12 15:58:28] yyyyy používá zvláštní schopnost předmětu.
[CHAT WINDOW TEXT] [Sat Jul 12 15:58:29] yyyyy: Co chceš s čutorou udělat?
[CHAT WINDOW TEXT] [Sat Jul 12 15:58:32] yyyyy: Napít se douškem.
[CHAT WINDOW TEXT] [Sat Jul 12 15:58:32] Jsi zcela napojena.
[CHAT WINDOW TEXT] [Sat Jul 12 15:58:39] Získané zkušenosti: 11
[CHAT WINDOW TEXT] [Sat Jul 12 15:59:01] [Server] Jste nyní v oblasti Plné HxH.
[CHAT WINDOW TEXT] [Sat Jul 12 15:59:43] Získané zkušenosti: 11
[CHAT WINDOW TEXT] [Sat Jul 12 16:00:04] [Server] Jste nyní v oblasti Plné HxH.
[CHAT WINDOW TEXT] [Sat Jul 12 16:00:22] Vlk útočí na : *zásah* : (19 + 6 = 25)
[CHAT WINDOW TEXT] [Sat Jul 12 16:00:23] Vlk zranil : 8 (8 fyzické)
[CHAT WINDOW TEXT] [Sat Jul 12 16:00:23] útočí na Vlk : *zásah* : (17 + 11 = 28)
[CHAT WINDOW TEXT] [Sat Jul 12 16:00:37] Vlk útočí na : *zásah* : (18 + 8 = 26)
[CHAT WINDOW TEXT] [Sat Jul 12 16:00:37] Vlk útočí na : *zásah* : (19 + 6 = 25)
[CHAT WINDOW TEXT] [Sat Jul 12 16:00:37] zranil Vlk: 9 (9 fyzické)
[CHAT WINDOW TEXT] [Sat Jul 12 16:00:37] Získané zkušenosti: 6
[CHAT WINDOW TEXT] [Sat Jul 12 16:00:37] zabil Vlk
[CHAT WINDOW TEXT] [Sat Jul 12 16:00:40] xxxxx: // asi bug...
[CHAT WINDOW TEXT] [Sat Jul 12 16:00:41] xxxxx: *neco si mumla* *
[CHAT WINDOW TEXT] [Sat Jul 12 16:01:35] Zbraň se používá jako jednoruční zbraň.
[CHAT WINDOW TEXT] [Sat Jul 12 16:01:38] yyyyy: Pomocí tohoto nástroje můžeš kontrolovat pokročilé funkce své postavy. Jakou funkci si přeješ?
[CHAT WINDOW TEXT] [Sat Jul 12 16:01:42] yyyyy: Začít využívat nejbližší známý surovinový zdroj.
[CHAT WINDOW TEXT] [Sat Jul 12 16:01:45] *stahuje z kůže*
[CHAT WINDOW TEXT] [Sat Jul 12 16:01:45] yyyyy: *stahuje z kůže*
[CHAT WINDOW TEXT] [Sat Jul 12 16:01:53] Získané zkušenosti: 11
[CHAT WINDOW TEXT] [Sat Jul 12 16:01:55] Získaný předmět: Vlčí kůže
[CHAT WINDOW TEXT] [Sat Jul 12 16:27:41] Poznamka: Zabit vlk, získaná kůže
[CHAT WINDOW TEXT] [Sat Jul 12 16:27:45] Získané zkušenosti: 11

****************************************

[Sat Jul 12 15:58:22] Obchod: - Klobáska
[Sat Jul 12 16:00:37] zabil Vlk
[Sat Jul 12 16:00:40] xxxxx: // asi bug…
[Sat Jul 12 16:00:41] xxxxx: *neco si mumla*
[Sat Jul 12 16:01:45] yyyyy: *stahuje z kůže*
[Sat Jul 12 16:01:55] Obchod: + Vlčí kůže
[Sat Jul 12 16:27:41] Poznamka: Zabit vlk, získaná kůže


Nakonec už jen zbývá si upravené logy v něčem otevřít… Ačkoli k tomu stačí i obyčejný Poznámkový blok, já jsem si oblíbil freeware program Notepad++ http://notepad-plus.sourceforge.net/uk/site.htm
Nemá problémy s mnoha megabajtovými soubory, má velmi rychlé vyhledávání včetně regulárních výrazů (regular expression) a kromě mnoha dalších zajímavých funkcí umožňuje vytvářet vlastní "syntaxe" a jejich zvýrazňování. Vytvořil jsem si syntaxi pro NWN logy a například emoce mám zobrazené oranžově, OOC komentáře zeleně, čas mám zobrazen menším písmem… Myslím, že jeden screen vypoví více, než mnoho vět:

Obrázek

Stažení
Spouštěč Equilibrie 2.0
http://www.volny.cz/filippop/Start_Eq.rar
Samostatná úprava logu 1.0
http://www.volny.cz/filippop/Samostatna_uprava_logu.rar
Nastavení syntaxe NWN logů pro Notepad++
http://www.volny.cz/filippop/NWN_log_pro_Notepad++.rar

No… To by asi bylo vše, pokud se to někomu zalíbí a bude to používat, dejte vědět.
Přeji krásnou hru a děkuji labirovi za Equilibrii
Naposledy upravil(a) Roma dne 4. 6. 2009 15.42, celkem upraveno 2 x.
Roma Spouštěč pro Equilibrii 2.0 NWN Camera mod Listování v PM

Get the ability to choose: (.Y.) (oYo) (.)(.) (*)(*) (o)(0)

Roma
Příspěvky: 485
Registrován: 21. 5. 2008 17.39

Příspěvek od Roma » 19. 8. 2008 18.55

V původní verzi byla chyba, Eq měsíc opravdu nemá 30 dnů. Opraven odkaz na kompletní verzi.
Naposledy upravil(a) Roma dne 4. 6. 2009 14.45, celkem upraveno 1 x.
Roma Spouštěč pro Equilibrii 2.0 NWN Camera mod Listování v PM

Get the ability to choose: (.Y.) (oYo) (.)(.) (*)(*) (o)(0)

Schneck
Příspěvky: 60
Registrován: 20. 6. 2008 13.58
Kontaktovat uživatele:

Příspěvek od Schneck » 19. 8. 2008 20.43

Jůů.. Teda absolutně jsem to nepochopil, ale stejně díky. Hned to zkusim! :clover:

//edit :nyam:
úspěšně testuji!
[20080901 -> 20093006] Jsem ve škole na intru, takže EQ jen o víkendech?
-dávám si pauzu!

Roma
Příspěvky: 485
Registrován: 21. 5. 2008 17.39

Příspěvek od Roma » 4. 6. 2009 15.53

Nová verze: Spouštěč pro Equilibrii 2.0
První příspěvek byl aktualizován.
Roma Spouštěč pro Equilibrii 2.0 NWN Camera mod Listování v PM

Get the ability to choose: (.Y.) (oYo) (.)(.) (*)(*) (o)(0)

Uživatelský avatar
Anade
Příspěvky: 1035
Registrován: 20. 8. 2008 23.54
Bydliště: Pardubice

Příspěvek od Anade » 4. 6. 2009 19.43

Pěkná práce. Jelikož jsem na EQ začal hrát loni v srpnu a tehdy fórum mělo moc informací naráz, tak jsem tohle přehlídl. Mám taky napsanej sed filtr na log, kterej jsem si psal tak nějak průběžně a jen, když jsem něco chtěl pěkně vytáhnout. My v Unixu/Linuxu sed používáme běžně, ale tvoje skripty – smekám. :clap_1:
Spousta toho jde zjednodušit, ale něco na úkor přehlednosti. V regulárních výrazech je občas chybička, která se ovšem neprojeví, jelikož pravděpodobnost takového vstupu je minimální. Možná je to tak záměrně, aby se to zpřehlednilo. (Např. tečky za větami máš v RE jen „.“ místo „\.“. Náhrada za výpustku lze jednodušeji: „s/\.\{3,\}/…/“ apod.)
:thumbup:
Asi zahodím svůj nedodělaný filtr (ve smyslu, že nezahazuju všechny nepotřebné texty, ale jen některé; ty tam toho máš požehnaně) a zkusím používat tvoje skripty. :smile:
Anade Be'lein – rozporuplná, (pro některé) nevypočitatelná, nedůvěřivá elfka za půl druhé platinky
We do what we must because we can.
O papoušcích…

Odpovědět