Menu

Scriptování postavy [scripty]

Vše o tvorbě a úpravách módů
Příspěvekod sir.Gomez » pát 02. dub 2010 17:58:18 » Re: Scriptování postavy
jestli to je adresovany me :D tak moc dekuju , delal sem na tom celej dnesni den a v podstate sem nemel zadny dobry vysledky
sir.Gomez
Uživatel
 
Příspěvky: 23
Registrován: ned 05. črc 2009 21:58:13
Bydliště: Starý tábor

Příspěvekod sir.Gomez » pát 02. dub 2010 19:27:34 » Re: Scriptování postavy
Nemohl by si prosiiim , dotad jeste malinkej navod . Nemuzu vytvorit nic novyho , jestli mi rozumis
sir.Gomez
Uživatel
 
Příspěvky: 23
Registrován: ned 05. črc 2009 21:58:13
Bydliště: Starý tábor

Příspěvekod milan.009 » pát 02. dub 2010 19:41:24 » Re: Scriptování postavy
Když už jsme u toho, nevíte čím to je že právě v GothicSourceru kompilovat nemůžu? Prostě to tlačítko je šedivé a nelze na něj kliknout :(
Uživatelský avatar
milan.009
Uživatel
 
Příspěvky: 267
Registrován: pon 03. bře 2008 18:30:23
Bydliště: Olomouc

Příspěvekod Milhaus » sob 03. dub 2010 0:33:09 » Re: Scriptování postavy
Zkusím to vysvětlit podrobněji, ale jestli to bude moc složité a nepochopíte to, tak hold máte smůlu :) .

Základní informace o programu a jeho používání


Celá ta práce v tom programu je založená na projektech. Tedy aby jste cokoliv mohli opravdu dělat, krom obyčejné editace souboru, musíte mít založený a existující projekt.

Projekt můžete vytvořit několika způsoby.

V první řadě doporučuji opět základní postup, tedy mít nainstalovaný gothic1/gothic2 bez aplikace MDK a prostě bez těchto věcí. Pak někde na disku vytvořit složku například GothicModding a do ní tu hru nakopírovat (jako celek - celou složku). Až nyní instalovat MDK kity a tomu podobné věci. Do té složky GothicModding také instalovat veškeré potřebné programy, se kterými míníte pracovat, aby jste v tom neměli bordel. Stejně tak můžete do této složky vytvořit složku další, nazvanou třeba Projekty, kam si budete ukládat věci, jako právě skripta pro GothicSourcer, případně textury atd. Je třeba mít v PC čistou instalaci hry bez nainstalování MDK, aby jste mohli vaše pokusy testovat na "uživatelské verzi", na které nic z toho instalováno nebude.

No, pomocí gothicsouceru se dají dekompilovat již existující skripta, nebo se dají otevřít src soubory skript (scr soubor je takový de fakto seznam všech použitých souborů ve skriptech, na jehož základě se pak tvoří soubor gothic.dat, menu.dat, tedy kompilované soubory skript). Nebo můžete otevřít již existující projekt. Ve všech případech se skripta přesunou do složky, kam určíte (tedy následné změny budou provozovány jinde).

Takže v první řadě klikneme na Nový projekt (New Solution)
Obrázek

No a vyskočí nám něco takového
Obrázek
Solution name - je jméno našeho projektu. Pokud tvoříte nějaký mód, měli by jste svůj projkekt nějak rozumně pojmenovat, aby jste se v tom vyznali.
Location - je csta, kam bude náš projekt nakopírován, tedy kde bude mít fyzicky soubory. Mělibychom zde tedy nastavit cestu ke složce Projekty, kterou jsme si před chvíli udělali.
Platform - je platforma, na které hodláme pracovat. Skripta do gothicu1 a gothicu2 jsou v některých věcech jiné, jsou tam použité jiné funkce, jiné příkazy a podobně, takže pokud bychom chtěli například otevřít skripta do g1 na platformě gothicu2, bude nám to pravděpodobně házet hodně chyb.

Nyní zde máme výběr z několika možností.

Empty project -Ta otevře prázdný projekt v závislosti na tom, jak jej nastavíme. Toto je nám obecně k ničemu, protože my nehodláme dělat skripta kompletně nová, ale chceme upravovat - měnit skripta původní

First compile action - nám umožňuje vytvořit projekt skrz soubor SRC. Ten se nachází například ve složce skriptů ve hře po instalaci MDK souborů, nebo se nachází ve složkách všech projektů, které jsme již v GothicSouceru vytvořili (díky tomu můžeme projekty kopírovat již s existujících jiných projektů, což je vcelku výhodné).

First decompile action - nám umožňuje použít skripta již ze zkompilovaných souborů *.dat. Můžeme tak otevřít jakýkoliv soubor se skripty, které hra načítá, jako třeba gothic.dat, menu.dat a podobně. Pokud bychom chtěli tímto způsobem vytvořit nový projekt, budeme tedy potřebovat onen soubor *.dat a v případě že jde o skripta hry, tedy o soubor gothic.dat, budeme navíc potřebovat i soubor ou.bin (oba ty soubory jsou ve složkách gothicu, nebo je obsahují různé soubory módů *.mod, každý je jiný)

Jakmile to tedy uděláme, vznikne v naší složce Projekt nová složka s názvem SolJmenoProjektu, ve které bude následně projekt uložený. V případě, že zvolíme možnost první, se prostě projekt založí, ale vzhledem k tomu, že neexistují žádné soubory *.d, tak je projekt prázdný. V druhém případě se všechny naše soubory na které odkazuje vybraný soubor src nakopírují do složky našeho projektu. Ve třetím případě budeme muset nejprve data dekompilovat.


Tady jsou obrázky, jak to vypadá při použití těch jednotlivých možností

Empty project
Obrázek
Obrázek
Todle je nám poměrně na nic, psát veškeré soubory nové je nesmysl

First compile action
Obrázek
Obrázek
Zde si můžeme povšimnout, že lze otevřít jakýkoliv soubor src. Taktéž vidíme, že hned po vytvoření projektu se začnou kopírovat data a po dokončení kopírování máme na levé straně strom složek a jednotlivých souborů *.d. Pomocí tohoto sromu se pak v programu pohybujeme.

First decompile action
Obrázek
Obrázek
Zde jsme zadali soubor fight.dat ze složky gothic2. Po vytvoření nového projektu ale nedošlo ke kopírování souborů a také vidéme, že strom se soubory na levé straně je prázdný. Na to, abychom se dostali k nekompilovaným souborům jej nejprve musíme dekompilovat.
Obrázek
Obrázek
No, nyní již vidíme strom jednotlivých souborů. (a v naší složce projektu se tyto dekompilované soubory objevili). V případě, že chceme dekompilovat soubor gothic.dat, budeme ještě nutně potřebovat soubor ou.bin. Program si jej buď najde sám (pokud otevíráte soubor ze složky gothicu), nebo vás vyzve, aby jste je našli.

Nyní by nám mělo jít v programu zkompilovat skripta do podoby gothic.dat/ou.bin, případně na jiný soubor *.dat. To můžeme (a měli bychom vždy) vyzkoušet použitím klávesy F7. Dříve, než to uděláme v jedem do menu do položky Build a zde dáme Options.
Obrázek
objeví se taková tabulka
Obrázek
První ukazatel ukazuje míru hlášení chyb a činností programu. Čím více zde nastavíte, tím více informací vám bude program dávat, ale tím méně je budete mít chuť číst a hledat v nich. Na levelu 0 vždy zobrazí červeně chyby, které najde, což nám stačí.
Druhá předvolba znamená vložit mezery do těch hlášení

Následuje část, kde můžeme některé věci vypout, aby se nehlásili, jakožto varování. Program podává červeně chyby, které nelze přehlédnout a modře varování, které mohou znamenat chybu, ale taky nemusí.
Function should be return value - v případě, že není odškrtnuto, hlásí program varování, že daná funkce nevrací správnou hodnotu. Skripta gothicu jsou založeny na funkcích, kde může být funkce různých typů. Funkce je vlastně naprogramovaná část kódu, která se má provést, pokud je voláná z jiné části kódu a která může, ale taky nemusí vracet nějaký výsledek. Funkcím se žádný skriptař v gothicu nevyhne. Funkce mohou být typu VOID, což značí, že nebudou vracet žádný výsledek. Můžou být ale třeba i typu INT (vrací číslo), nebo String (vrací řetězec) a podobně. Pokud funkce nic vracet nemá (je typu void), tak se v jejím těle neobjevuje příkaz return. V případě, že má vracet nějaký výsledek (například vyhodnocení, jak daná akce dopadla), tak tento výsledek se právě posílá pomocí příkazu return. Pokud bychom si například vytvořili funkci, které zadáváme nějaké jméno postavy a my chtěli, aby nám ta funkce vyhodnotila, jestli je to jméno konkrétní jedné postavy, tak bychom to mohli udělat nějak takto:
Kód: Vybrat vše
func int NPC_is_Diego(name:String)
{
   if(name=="Diego")
   {
      return 1;
   };
   return 0;
};
vysledek=NPC_is_Diego("Gorn");


no, funkce je tedy zavolána na nejnižším řádku a jakožto parametr dáváme jméno Gorn. Nyní se tedy hra přesune na tuto funkci a zkoumá, jestli se Gorn=Diego. V případě že ano, nám vrátí 1, v případě že nikoliv, nám vrátí nula. V našem případě ted bude proměná výsledek obsahovat nulu.

Ve skriptech jsou ale v těchto věcech často drobné chyby. Například občas se stává, že ve funkci je sice return 1, ale není tam return 0 a podobně. Na funkčnost programu a funkce by to ve většině případů nemělo mít vliv, ale na druhou stranu vliv to mít může (záleží to na situaci). Proto, pokud nemáte podezření na nějakou závažnou chybu, je dobré tu volbu potvrdit, aby se tyto varování nevypisovali. Pokud vám ale gothic dělá při testování něco jiného, než čekáte, pak by jste měli skripta kontrolovat bez zatržení této možnost a všechna tato varování projít a zkontrolovat.

Argument should be uppercase - tato volba, pokud je zaškrtnutá způsobí, že program při kompilaci nebude podávat varování o tom, že některý z parametrů není velkými písmeny. Zde jde spíše o zápis a přehlednost kódu, jelikož veškeré parametry, které se používají u polí, by měli být velkými písmeny kvůli čitelnosti. Příklad
[url]fight_range_fist[GIL_ORC] = 80;[/url]
fight_range_fist - je proměnná, která udává, jak daleko musí postava být, aby použila poprvní útok. Vlastně je to její minimální dosah. Tato proměná je jako pole a nastavuje se u každé gildy zvlášť.
GIL_ORC - je parametr (ono je i toto proměnná, nebo konstanta). Tomuto parametru je ve skriptech přiřazeno určité číslo a následně je už všude používán v případě, že jde o gildu orců tento název. A právě tento název musí být velký a všude. Používá se při například vytvoření nového skřeta, nebo pro výpočty právě způsobu boje a prostě všude. Takových to konstant, které jsou definovány a pak následně již všude používány je ve hře hodně a všechny by měly být velkými písmeny. Všechny je najdete v souboru _Intern\Constans.d.

Víceméně je toto nastavení nepodstatné. Navíc se toho týká i poslední možnost volby v nastavení kompilace.

Autocorrect uppercase argument - přímo navazuje na předchouí volbu, pokud zaškrtnete, bude tato věc opravována při kompilaci automaticky.

Jakmile to tedy nastavíte jak budete potřebovat, dejte kompilaci skriptů. Pokud vše proběhne správně a nebude nalezena žádná fatální chyba, dojde k vytvoření souboru *.dat (v případě skriptů hry vznikne soubor Gothic.dat a Ou.bin) ve složce vašeho projektu. Ten pak už můžete jen nakopírovat do složky gothicu a přehrát jím ty původní ve hře a vyzkoušet spuštěním hry. V případě, že je nalezena ccyba/chyby, uvidíte dole napsán jejich počet, kompilace se přeruší a v seznamu hlášení je pak naleznete červeně. V případě, že na tento červený řádek dvakrát kliknete, otevře vám program soubor, kde se chyba nachází a posune vás na řádek v daném souboru, kde jí vidí. Vy jí pak už prostě jen snadno opravíte :D.

Pokud se pokusíte použít skripta z gothicu1, nebo gothicu2, gothicu2a, tedy ta, které jsou k sehnání na internetu, nebo pomocí dekompilace ze souborů gothic.dat, zjistíte, že při pokusu o první kontrolní kompilaci to hlásí neskutečné množství chyb a program vás nepustí dál, dokud je všechny neopravíte. Něco o tom jsem psal již zde. Pro člověka, který tomu zas tolik nerozumí jsou tím pádem ta skripta prakticky nepoužitelná. Například v gothic1, pokud se jej pokusíte dekompilovat chybí dokonce úplně jedna funkce, na kterou hra odkazuje a podobně. Pokud se vám je tedy nechce opravovat všechny, můžete vyzkoušet tyto, které jsem kdysi opravoval:
http://www.edisk.cz/stahni/12655/Projek ... .33MB.html

Jsou to skripta jak do gothicu1, tak i do gothicu2. Soubor by jste měli rozbalit do vaší složky Projekty. Pokud si tyto skripta chcete zachovat v původní nezměněné formě, doporučuji vytvořit na jejich základě nový projekt. Tedy vyberete volbu Nový projekt, zde zadáte jeho jméno, platformu atd a v druhé volbě vyberete soubor SRC z těchto mích. Tím se vám ve složce Projekty vytvoří nový projekt s novým názvem, kde již budou funkční skripta a zároveň si tyto schováte. V případě, že to dělat nehodláte, máte možnost je prostě jen otevřít jako projekt (Open solution).
***
Uživatelský avatar
Milhaus
Zasloužilý člen fóra
 
Příspěvky: 5646
Registrován: čtv 30. srp 2007 10:35:05
Bydliště: Doma

Příspěvekod Milhaus » sob 03. dub 2010 0:33:35 » Re: Scriptování postavy
Vytvoření nové věci - NPC postavy a dialogu


Nejprve si vybereme již nějakou existující postavu a zkusíme jí otevřít. Najedeme tedy do složky Story\NPC a otevřeme zde třeba postavu Onara. Otevřeme jí tak, že na ní 2x kliknem v levém seznamu.
Obrázek

Nyní si vytvoříme složku pro naše postavy, které se budou vyskytovat v módu, abychom si je oddělili od ostatních postav (tto není nutné). Klikneme tedy pravým tlačítkem myši na složku NPC v seznamu na levo a z výběru zvolíme New folder...
Obrázek

Do okna, které se nám objeví napíšeme název složky, podle toho, jak jí chceme pojmenovat. Já jí nazval ModNPC.
Obrázek

Nyní klikneme pravým tlačítkem na naši novou složku, která se objevila v levém seznamu pod NPC a zde vybereme z nabídky New script file
Obrázek

Pojmenujeme si jej podle toho, jak chceme pojmenovat naší postavu. V názvu by se měla objevit informace o gildě, ID postavy, v našem případě i o tom, že se jedná o postavu módu a jméno postavy.
Obrázek

Jakmile to máme a dám OK, vyzkočí na nás taková to tabulka. Tato tabulka po nás hce určit, kam máme zařadit tento soubor v seznamu SRC. Umístění toho souboru je velmi důležité, aby bylo správné, protože pokud bude špatně, může nám to potom házet chyby (například můžou některé funkce neexistovat, protože ještě nebyly vytvořené). My tvoříme novou NPC postavu a tak nový soubor zařadíme za poslední NPC.
Obrázek

Nyní by se nám měl objevit ve složce ModNPC soubor s naší postavou. Takže na něj 2x klikneme a on se nám otevře. Pro zatím je úplně prázdný.
Obrázek

Přesuneme se v horní liště s jednotlivými otevřenými soubory na soubor s Onarem a stiskneme CTRL+A a pak CTRL+C.
Obrázek

Nyní se přepneme zpět na náš prázdný soubor s postavou, klikneme do okna (aby byl kurzor tam, kam se píše skript) a stiskneme CTRL+V. Krapek to upravíme, změníme používané brnění, zbraň, statistiky, styl boje atd a hlavně si dáme pozor, abychom změnili jméno postavy, ID postavy, hlas postavy a co především, v dolní části souboru je jednak odkaz a funkci denního režimu a hned vzápětí je zde ona funkce denního režimu.

odkaz
Kód: Vybrat vše
   daily_routine = Rtn_Start_100001;


Definice funkce
Kód: Vybrat vše
func void Rtn_Start_100001()
{
   TA_Stand_ArmsCrossed(8,0,23,0,"NW_XARDAS_START");
};

Obrázek

Zde je důležité, abychom změnili číslo tak, aby bylo stejné, jako ID postavy i jako číslo, které jsme uvedli v názvu souboru. Navíc funkce nesmí být deklarovány ve hře dvakrát a víckrát. Takže pokud zvolíme číslo, které je již ve hře použito, hodí nám to při kompilaci chybu. Konec konců si to můžeme vyzkoušet zmačknutím F7.
Obrázek

Uděláme tedy potřebné úpravy a změníme ID postavy, stejně tak i v názvu souboru a u těchto funkcí.
Obrázek

Vyzkoušíme pomocí F7 a zjistíme, že program nehlásí žádnou chybu. Nyní se tedy objevil ve složce projektu soubor gothic.dat a ou.bin s našemi změnami.
Obrázek

Obdobným způsobem vytvoříme složku pro dialogy, nazveme jí třeba ModDialoge a vytvoříme jí tak, aby byla ve původní složce Dialoge. Potom do této složky vytvoříme nový soubor. Název tohoto souboru by měl začínat na DIA_ pak MOD_(abychom si odlišili, že se jedná o nový soubor, můžete klidně použít i jméno módu) a pak název postavy, včetně ID.
Aby vše fungovalo korektně, zařadíme tento nový soubor v seznamu SRC za poslední soubor dialogu původní hry.
Obrázek

Klikneme dvakrát na náš soubor, který by se měl objevit v naší složce a napíšeme dialogy. Nezapomeňte opět, že název postavy musí sedět a prostě na všechny věci, ohledně dialogů. Je zde používáno hodně funkcí a žádná funkce nesmí být ve skriptech dvakrát. Pokud tedy budete kopírovat nějakou funkci z jiné postavy (nějaký dialog), musíte vždy upravit, předělat, změnit názvy všech funkcí i všech odkazů na ně.

U dialogů je také nesmírně důležité v tomto programu psát texty do poznámek (za značku //). Při kompilaci skript se vytváří souběžně soubor gothic.dat a ou.bin. Gothic.dat obsahuje samotná skripta, zatímco ou.bin obsahuje titulky (tedy to, co se při rozhovoru zobrazí nahoře). Program tento soubour OU.BIN vytváří z textů, které jsou právě za těmito poznámkami. Budou-li tedy tyto poznámky špatně, nebo budou-li chybět, nebudou pak obsaženy v OU.BIN a ve hře postava nebude mluvit.
Obrázek

Nyní už zbývá poslední krok, říct hře, aby postavu do světa vložila hned od začátku v první kapitole. Na to budeme muset upravit soubor Startip.d
Obrázek

Najdeme si v tomto souboru funkci s názvem STARTUP_NewWorld_Part_Xardas_01. Následně se přepneme na soubor s naší postavou a nakopírujeme si její kód - název instance. Tento kód současně funguje i v marvinu a jde skrz konzoli pomocí něj postavu do hry vložit.
Obrázek

My jí vložíme ale pomocí skriptů rovnou.
Obrázek

Nyní bychom to měli mít hotovo.
Zde jsou moje zdrojové kody tohoto projektu s touto postavou a dialogem. Kompilace proběhla v pořádku a ve složce projektu je i soubor gothic.dat a ou.bin. Pokud by jste to tedy chtěli vyzkoušet ve hře, tak klidně můžete. Stačí nahrát soubor gothic.dat do složky _work\data\scripts\_compiled a soubor ou.bin do složky _work\data\scripts\cutscene a mít hru ve verzi 2.6. V případě, že máte verzi 2.7, musíte soubor ou.bin ještě přejmenovat na OU.DAT.
***
Uživatelský avatar
Milhaus
Zasloužilý člen fóra
 
Příspěvky: 5646
Registrován: čtv 30. srp 2007 10:35:05
Bydliště: Doma

Příspěvekod Lukyno » ned 31. říj 2010 1:16:46 » Re: Scriptování postavy [scripty]
Cau .... prosim mohl by mi nekdo poslat funkcni odkaz na ten NSCScriptGenerator.... nemuzu to nikde najit :-( :evil:
Uživatelský avatar
Lukyno
Uživatel
 
Příspěvky: 38
Registrován: pát 27. lis 2009 8:58:20
Bydliště: Khorinis

Příspěvekod Greg » ned 31. říj 2010 10:09:36 » Re: Scriptování postavy [scripty]
Obrázek
Uživatelský avatar
Greg
Zasloužilý člen fóra
 
Příspěvky: 1928
Registrován: pon 25. úno 2008 7:20:59
Bydliště: Mezi piráty...

Příspěvekod Lukyno » ned 31. říj 2010 21:52:51 » Re: Scriptování postavy [scripty]
Omg :-( ..... Me to proste najak nejde nainstalovat ..... me se to normalne instaluje a ve 3/4 instalace mi to hodi chybu ...jsou tam najake nemecke zvasty .... ty jsem neumel prelozit ,ale ty moznosti ano bylo tam konec instalace pak opakovat a vice nebo dalsi nvm co stoho .... nejsem najak dobry nemcinar :-) nevite nekdo co stim?
Uživatelský avatar
Lukyno
Uživatel
 
Příspěvky: 38
Registrován: pát 27. lis 2009 8:58:20
Bydliště: Khorinis

Příspěvekod milan.009 » čtv 04. lis 2010 21:58:05 » Re: Scriptování postavy [scripty]
Ať už jsou ty "německé žvásty" jakkoliv nesrozumitelné, hloupé, zbytečné či jakékoliv jiné, určitě by problému neuškodilo pokusit se o ně podělit, třeba někomu budou připadat méně nesrozumitelné, hloupé, zbytečné či jakékoliv jiné a bude schopen pomoci :)
Uživatelský avatar
milan.009
Uživatel
 
Příspěvky: 267
Registrován: pon 03. bře 2008 18:30:23
Bydliště: Olomouc

Příspěvekod Lukyno » čtv 04. lis 2010 22:08:29 » Re: Scriptování postavy [scripty]
ok skusim to screenout :-)
Uživatelský avatar
Lukyno
Uživatel
 
Příspěvky: 38
Registrován: pát 27. lis 2009 8:58:20
Bydliště: Khorinis

Příspěvekod venomen » čtv 02. čer 2011 14:25:05 » Re: Scriptování postavy [scripty]
Nevím kde jinde se zeptat... Mám problém když chci něco spustit přes GothicStarter a
zaškrtnu Reparse Scripts tak ve chvíli kdy to najíždí do menu tak to hodí hlášku

PAR: Unknown identifier : FLAGS ( line 607 ) .... <zParser.cpp,#599>

Nevíte někdo kterej skript tohle dělá? předem díky :sad:
Ve Světě Mrtvých jsem vítán jako král
In Dead World I´m welcome as a king


Zatracenej slabej kompl nemůžu ani dohrát G3A :(
Uživatelský avatar
venomen
Uživatel
 
Příspěvky: 56
Registrován: čtv 20. bře 2008 17:36:10

Příspěvekod mark56 » čtv 02. čer 2011 16:51:10 » Re: Scriptování postavy [scripty]
chyba je v skriptu kterej byl kompilovanej tesne pred touhle hlaskoou mrkni do zspy a najdi si tu hlasku bude cervena a pak se mrkni nad ni a bude tam nazov skriptu a cesta no a hned vis ze si flag = nieco napisal zle
Uživatelský avatar
mark56
Uživatel
 
Příspěvky: 495
Registrován: pát 13. úno 2009 20:56:24

Příspěvekod venomen » sob 04. čer 2011 11:08:35 » Re: Scriptování postavy [scripty]
nemohl jsem na to přijít takže sem to celý přeinstaloval a už je to vpořádku.. :wink:
Ve Světě Mrtvých jsem vítán jako král
In Dead World I´m welcome as a king


Zatracenej slabej kompl nemůžu ani dohrát G3A :(
Uživatelský avatar
venomen
Uživatel
 
Příspěvky: 56
Registrován: čtv 20. bře 2008 17:36:10

Příspěvekod Greg » čtv 17. bře 2016 10:09:24 » Re: Scriptování postavy [scripty]
Jsou to skripta fanouškovské češtiny.
Obrázek
Uživatelský avatar
Greg
Zasloužilý člen fóra
 
Příspěvky: 1928
Registrován: pon 25. úno 2008 7:20:59
Bydliště: Mezi piráty...

Příspěvekod Greg » sob 19. bře 2016 21:06:17 » Re: Scriptování postavy [scripty]
Mě se ten fanouškovský překlad líbí. On vyšel už někdy kolem roku 2006, když to oficiální snad až někdy 2011 myslím...?
Obrázek
Uživatelský avatar
Greg
Zasloužilý člen fóra
 
Příspěvky: 1928
Registrován: pon 25. úno 2008 7:20:59
Bydliště: Mezi piráty...

PředchozíDalší

Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé