Vytvoření instalátoru s češtinou pro WoW
Tento návod vysvětluje kroky nezbytné pro vytvoření vlastního instalátoru češtiny pro hru WoW na straně klienta pro vlastní free WoW server. Tento způsob češtiny není možné bezpečně použít pro hraní na oficiálních serverech, protože by hráč byl pravděpodobně velmi rychle zablokován jako podvodník, který zasahuje do samotné hry.
Na začátku je vhodné se podívat na ukázkové video Demonstrace češtiny pro World of Warcraft.
Výhody:
- Jediná možnost počeštění i přihlašovacího rozhraní
- Možnost úpravy herního klienta na straně hráčů a provádění vlastních úprav textů, obrázků, modelů a zvukových
souborů pro potřeby serveru
- Možnost upravit odkazy na oficiální web hry na vlastní server
- Zobrazování vlastních aktualit v přihlašovací obrazovce hry
Nevýhody:
- Klient si musí instalovat cizí program, nutnost stahování souborů, možnost šíření virů.
- GM tým serveru se musí starat o generování nových verzí balíčků pro nové verze hry aktuálnějším překladem hry
- Nelze vynutit, aby klienti používali jen počeštěného klienta
Instalace pomocných nástrojů
- NSIS - Generátor instalátorů
- MPQ Editor - Program pro vytváření MPQ archívů
Příprava souborů
Vytvořte si nějakou složku např. CzechWoW 3.3.3a, ve které si připravíte soubory pro instalátor.
WowLua.exe
Jedná se o upravenou verzi hlavního spouštěcího souboru hry, ve které je odblokována úprava souborů GlueStrings.lua a GlobalStrings.lua, které obsahují texty rozhraní.
Stáhněte z webu wowprekladu soubor WowLua pro požadovanou verzi klienta, kterou máte na serveru. Např. WowLua_3.3.3a.exe a přejmenujte jej na WowLua.exe.
Pokud na webu wowprekladu nenajdete WowLua pro novější verzi, můžete zkusit si soubor vygenerovat pomocí nástroje wowpatcher.exe, který se pokusí vyhledat a upravit místo, kde je blokován přepis základních Lua souborů. Tento program však nemusí fungovat pro budoucí verze hry.
CzechWoW.htm
Vytvořte soubor CzechWoW.htm, který bude obsahovat vaše poinstalační pokyny pro hráče, kteří si balíček nainstalují. Soubor může obsahovat informace o verzi překladu a podporované hry, ale také třeba informace o vašem serveru. Můžete zde také uvést informace o tom, kolik překladů je v balíku obsaženo z celkového počtu.
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="cs"> <head> <meta http-equiv="content-type" content="application/xhtml+xml; charset=utf-8" /> <title>Čeština pro WoW</title> </head><body> <h1>České WoW - čestina pro klienta hry World of Warcraft</h1> <table cellspacing="10"><tr><td valign="top"> <p>Texty přebírány z projektu <a href="http://wowpreklad.zdechov.net/">wowpreklad.zdechov.net</a><br/> <a href="http://wowpreklad.zdechov.net/export/?Action=View&ExportId=22&Tab=0">Export 22</a></p><br/> <p><strong>Vlastnosti</strong> <ul> <li>Požadovaná verze klienta: 3.3.3a</li> <li>Datum uvolnění: 23.4.2010</li> <li>Sestaveno pro server <a href="http://www.jmenoserveru.cz/">Jméno serveru</a> <a href="http://www.jmenoserveru.cz/forum/">Diskusní fórum</a></li> <li>Sestavil: Autor</li> </ul> </p> <br/> <h2>Nejčastější otázky</h2> <p><strong>Mohu použít tuto češtinu na oficiálních serverech?</strong><br/> Ne, protože se vystavujete riziku zablokování vašeho účtu z důvodu použití upravené hry. Navíc by čeština pro vás byla matoucí, jelikož ostatní hráči mluví anglicky. Pokud chcete přesto mít některé texty česky, sežeňte si Addon s češtinou CzWoW.</p> <p><strong>Mám nainstalovánu češtinu a nejde mi spustit Wow.exe.</strong><br/> Pokud chcete opět spouštět hru přes původní Wow.exe v angličtině, musíte češtinu nejprve odinstalovat ze systému. Především se jedná o soubor Data/enGB/patch-enGB-5.MPQ či Data/enUS/patch-enUS-5.MPQ, který je nutno smazat.</p> <p><strong>Nedaří se mi provést aktualizaci klienta s nainstalovanou češtinou.</strong><br/> Před aktualizací na novější verzi klienta musíte nejprve češtinu odinstalovat. Čeština totiž mění v rámci patch MPQ souboru některé soubory hry, což oficiální instalátory vyhodnotí jako poškození hry.</p> <p><strong>Můžu použít češtinu na jiném free serveru než Jménoserveru?</strong><br/> Jistě, ovšem tato čeština je speciálně upravena pro tento server, kde je čeština nasazena i na straně serveru. Také se při přihlášení do hry se zobrazují aktuality tohoto serveru a na adresu serveru jsou upraveny další odkazy.<br/> Správnou cestou je žádat zprovoznění češtiny na vašem free serveru.</p> </td><td> <p><strong>Překlady</strong> <table border="1"><tr><th>Jméno</th><th>Přeložených</th><th>Anglických</th><th>Procenta</th></tr> <tr><td>Body zájmu oblastí</td><td>738</td><td>738</td><td>100.00</td></tr> <tr><td>Dovednosti</td><td>150</td><td>150</td><td>100.00</td></tr> <tr><td>Druh bytostí</td><td>13</td><td>13</td><td>100.00</td></tr> <tr><td>Emoce</td><td>730</td><td>1327</td><td>55.01</td></tr> <tr><td>Herní tipy</td><td>139</td><td>142</td><td>97.89</td></tr> <tr><td>Kanály pro povídání</td><td>6</td><td>6</td><td>100.00</td></tr> <tr><td>Kategorie dovedností</td><td>8</td><td>8</td><td>100.00</td></tr> <tr><td>Kategorie totemů</td><td>31</td><td>32</td><td>96.88</td></tr> <tr><td>Kategorie úspěchů</td><td>86</td><td>86</td><td>100.00</td></tr> <tr><td>Kouzla</td><td>7205</td><td>49816</td><td>14.46</td></tr> <tr><td>Kritéria úspěchů</td><td>3643</td><td>7647</td><td>47.64</td></tr> <tr><td>Místa</td><td>196</td><td>2307</td><td>8.50</td></tr> <tr><td>Rasy postav</td><td>21</td><td>21</td><td>100.00</td></tr> <tr><td>Rozhraní klienta</td><td>7596</td><td>8788</td><td>86.44</td></tr> <tr><td>Rozhraní přihlašování</td><td>789</td><td>874</td><td>90.27</td></tr> <tr><td>Stav světa</td><td>120</td><td>153</td><td>78.43</td></tr> <tr><td>Třídy postav</td><td>10</td><td>10</td><td>100.00</td></tr> <tr><td>Úspěchy</td><td>502</td><td>1809</td><td>27.75</td></tr> <tr><td>Záložky talentů</td><td>33</td><td>33</td><td>100.00</td></tr> <tr><td>Celkem</td><td>22016</td><td>73960</td><td>29.77</td></tr> </table> </p> </td></tr></table> </body></html>
WoW.ico
Stáhněte si ikonu WoW pro instalátor a přejmenujte ji na WoW.ico.
patch-5.MPQ
V tomto souboru jsou obsaženy české písma, počeštěné DBC soubory a samotné počeštěné lua soubory rozhraní.
Vytvořte si tedy podsložku MPQ, ve které si připravíte obsah souboru patch-5.MPQ.
- Písma lze stáhnout jednoduše z [1]. Obsažená písma rozbalte do podsložky MPQ/Fonts.
- Aktuální DBC soubory získáte z webu wowprekladu ve formě DBC exportu. Vytvořte si tedy v systému vlastní export, vyberte které texty do něj mají být zahrnuty, vyberte typ výstupu DBC a všechny překladové skupiny, které generují DBC soubory. Po vygenerování DBC soubory stáhněte do složky MPQ/DBClientFiles.
- Lua soubory GlueStrings.lua a GlobalStrings.lua také vygenerujete přes wowpreklad a umístěte je do složek MPQ/Interface/FrameXML/GlobalStrings.lua, MPQ/Interface/GlueXML/GlueStrings.lua a MPQ/Interface/GlueXML/GlueLocalization.lua.
- Do MPQ souboru můžete také přidat další soubory včetně modelů postav, MP3 zvukových souborů a obrázků ze hry. Lze např. zahrnout do balíčku také české hlášky ze hry Warcraft III. Stejně tak mohou i samotní hráči změnou herních souborů zkoušet podvádět. Tomu se však dá velmi těžko zabránit.
Soubor GlueLocalization.lua se uplatní pouze u klientů s verzí enGB, ale pro podporu obou verzí enUS i enGB je potřeba jej mít.
Celý obsah složky nakonec vložte pomocí MPQ Editoru do vytvořeného souboru patch-5.MPQ.
Instalace_CzechWoW.nsi
Jedná se o předpis pro generátor instalátorů NSIS. Vytvořte si soubor Instalace_CzechWoW.nsi a zkopírujte do něj následující obsah. Podle potřeby v něm upravte nastavení jako verzi název, autora, atd. Instalátor zajistí instalaci potřebných souborů do složky hry, instalace ikony na plochu, do nabídky start a budoucí odinstalace. Obsah souboru by měl být nejspíše v kódování Windows-1250.
;NSIS Modern User Interface version 1.70 ;-------------------------------- ;Include Modern UI !include "MUI.nsh" ;-------------------------------- ;General !define VERSION "3.3.3a" !define RELEASE_DATE "2010-04-23" !define TITLE "CzechWoW" !define FULL_TITLE "Český překlad WoW pro server XYZ" !define CREATOR "Autor" !define README "CzechWoW.htm" !define LOCALE "czCZ" ;Name and file Name "${FULL_TITLE} ${VERSION}" OutFile "Instalace_${TITLE}_${VERSION}_${RELEASE_DATE}.exe" ;Default installation folder InstallDir "$PROGRAMFILES\World of Warcraft\" ;Get installation folder from registry if available InstallDirRegKey HKLM "Software\Blizzard Entertainment\World of Warcraft" "InstallPath" ;-------------------------------- ;Interface Settings !define MUI_ABORTWARNING ;-------------------------------- ;Language Selection Dialog Settings ;Remember the installer language !define MUI_LANGDLL_REGISTRY_ROOT "HKCU" !define MUI_LANGDLL_REGISTRY_KEY "Software\${CREATOR}\${FULL_TITLE}" !define MUI_LANGDLL_REGISTRY_VALUENAME "Installer Language" ;-------------------------------- ;Pages !define MUI_ICON "WoW.ico" !define MUI_UNICON "WoW.ico" ;!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico" !insertmacro MUI_PAGE_WELCOME ;!insertmacro MUI_PAGE_LICENSE "${NSISDIR}\Contrib\Modern UI\License.txt" !insertmacro MUI_PAGE_COMPONENTS !insertmacro MUI_PAGE_DIRECTORY !insertmacro MUI_PAGE_INSTFILES !insertmacro MUI_UNPAGE_CONFIRM !insertmacro MUI_UNPAGE_INSTFILES ;-------------------------------- ;Languages !insertmacro MUI_LANGUAGE "Czech" ;-------------------------------- ;Reserve Files ;These files should be inserted before other files in the data block ;Keep these lines before any File command ;Only for solid compression (by default, solid compression is enabled for BZIP2 and LZMA) !insertmacro MUI_RESERVEFILE_LANGDLL ;-------------------------------- ;Installer Sections Section "Základní soubory" Base SetDetailsPrint textonly DetailPrint "Instaluji základní soubory..." SetDetailsPrint listonly SectionIn RO ; Read only section ; Write the uninstall keys for Windows WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${TITLE}" "DisplayName" "${FULL_TITLE}" WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${TITLE}" "UninstallString" '"$INSTDIR\Uninstall.exe"' WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${TITLE}" "NoModify" 1 WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${TITLE}" "NoRepair" 1 SetOutPath "$INSTDIR" ;ADD YOUR OWN FILES HERE... File "WowLua.exe" File "${README}" SetOutPath "$INSTDIR\Data" File "patch-5.MPQ" IfFileExists "$INSTDIR\Data\enGB\*.*" 0 +3 Rename "$INSTDIR\Data\patch-5.MPQ" "$INSTDIR\Data\enGB\patch-enGB-5.MPQ" Goto +2 Rename "$INSTDIR\Data\patch-5.MPQ" "$INSTDIR\Data\enUS\patch-enUS-5.MPQ" ;Store installation folder WriteRegStr HKCU "Software\${CREATOR}\${TITLE}" "" $INSTDIR ;Create uninstaller WriteUninstaller "$INSTDIR\Uninstall.exe" SectionEnd Section "Zástupci nabídky Start" StartMenuShortCut SetDetailsPrint textonly DetailPrint "Instaluji Zástupce nabídky Start..." SetDetailsPrint listonly CreateDirectory "$SMPROGRAMS\${FULL_TITLE}" SetOutPath "$INSTDIR" CreateShortCut "$SMPROGRAMS\${FULL_TITLE}\Odinstalovat.lnk" "$INSTDIR\Uninstall.exe" CreateShortCut "$SMPROGRAMS\${FULL_TITLE}\České WoW.lnk" "$INSTDIR\WowLua.exe" CreateShortCut "$SMPROGRAMS\${FULL_TITLE}\Nápověda.lnk" "$INSTDIR\${README}" SectionEnd Section "Zástupci na plochu" DesktopShortCut SetDetailsPrint textonly DetailPrint "Instaluji zástupce na plochu..." SetDetailsPrint listonly CreateShortCut "$DESKTOP\České WoW.lnk" "$INSTDIR\WowLua.exe" SectionEnd Section "Zobrazit informace" ShowChangeLog SetDetailsPrint textonly DetailPrint "Zobrazuji doplňující informace..." SetDetailsPrint listonly ExecShell "open" "$INSTDIR\${README}" SectionEnd Section "Smazat WDB cache" DeleteWDBCache SetDetailsPrint textonly DetailPrint "Mažu WDB cache..." SetDetailsPrint listonly RMDir /r "$INSTDIR\Cache\WDB" SectionEnd ;-------------------------------- ;Installer Functions Function .onInit !insertmacro MUI_LANGDLL_DISPLAY FunctionEnd ;-------------------------------- ;Descriptions ;USE A LANGUAGE STRING IF YOU WANT YOUR DESCRIPTIONS TO BE LANGAUGE SPECIFIC ;Assign descriptions to sections !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN !insertmacro MUI_DESCRIPTION_TEXT ${Base} "Základní soubory" !insertmacro MUI_DESCRIPTION_TEXT ${StartMenuShortCut} "Přidá zástupce do Nabídky start pro snadné použití" !insertmacro MUI_DESCRIPTION_TEXT ${DesktopShortCut} "Přidá zástupce na plochu" !insertmacro MUI_DESCRIPTION_TEXT ${ShowChangeLog} "Zobrazí informace o vydání" !insertmacro MUI_DESCRIPTION_TEXT ${DeleteWDBCache} "Smaže vyrovnávací paměť v podsložece cache\WDB ve složce hry. Ve zde ukládaných souborech se uchovávají anglické texty přijaté ze serveru. Při změně připojení mezi servery anglickými a českými servery je potřeba obsah této složky vymazat." !insertmacro MUI_FUNCTION_DESCRIPTION_END ;-------------------------------- ;Uninstaller Section Section "Uninstall" DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${TITLE}" Delete "$DESKTOP\${TITLE}.lnk" RMDir /r "$SMPROGRAMS\${FULL_TITLE}" Delete "$INSTDIR\WowLua.exe" IfFileExists "$INSTDIR\Data\enGB\*.*" 0 +3 Delete "$INSTDIR\Data\enGB\patch-enGB-5.MPQ" Goto +2 Delete "$INSTDIR\Data\enUS\patch-enUS-5.MPQ" Delete "$INSTDIR\Data\patch-5.MPQ" Delete "$INSTDIR\${README}" Delete "$INSTDIR\Uninstall.exe" DeleteRegKey /ifempty HKCU "Software\${CREATOR}\${FULL_TITLE}" SectionEnd ;-------------------------------- ;Uninstaller Functions Function un.onInit !insertmacro MUI_UNGETLANGUAGE FunctionEnd
Provedení vygenerování instalátoru
Tedy pokud máte připravenu složku s následujícími soubory, tak můžete přejít k vlastnímu sestavení instalátoru.
- Instalace_CzechWoW.nsi
- WowLua.exe
- CzechWoW.htm
- WoW.ico
- patch-5.MPQ
Samotné sestavení provedete poklikáním na skript s příponou .nsi nebo jeho otevření pomocí nástroje NSIS a stisku Compile.
Nasazení na vlastním serveru
Samotné praktické nasazení češtiny na serveru může být minimálně ze začátku pracné. Je potřeba češtinu nasadit na straně serveru i u klienta.
Strana serveru
Je potřeba vložit české texty do databáze na svém serveru v podobě SQL exportů ze systému wowpreklad. Je potřeba si vytvořit uživatelský účet na webu wowprekladu a dále vlastní Export s vlastním výběrem vyhovujících překladů.
Úprava odkazů na vlastní server
V souboru GlueStrings.lua a také GlueLocalizatuin.lua je uvedena celá řada internetových odkazů. Pokud chcete, aby odkazy běžně vedoucí na web jako http://www.worldofwarcraft.com/ či http://www.wow-europe.com/ vedly na váš vlastní server, musíte tyto URL přepsat.
Popis některých zajímavých:
- ACCOUNT_CREATE_URL - stránka s registrací nových účtů.
- AUTH_BANNED, AUTH_BANNED_URL - stránka s informacemi o blokovaných účtech
- AUTH_DB_BUSY, AUTH_DB_BUSY_URL - seznam světů s jejich online stavy
- AUTH_SUSPENDED, AUTH_SUSPENDED_URL - stránka s informacemi o pravidlech a jejich porušení
- COMMUNITY_URL - odkaz na hlavní vstupní stránku serveru
- SERVER_ALERT_URL - stránka s generovanými aktualitami, které se zobrazují v přihlašovací obrazovce hry
- TECH_SUPPORT_URL - technická podpora, pokud hráč má problémy např. s příhlášením
Jsou zde i další URL adresy, které je možné přesměrovat na vlastní web.
SERVER_ALERT_URL
Pro využití možnosti zobrazovat ve hře vlastní aktuality je potřeba tuto hodnotu nasměrovat na stránku na svém serveru, ve které se budou generovat automaticky z databáze aktuality. Mohou to být rovnou aktuality stejné jako na vstupní stránce serveru a mohou se zobrazovat v maximálním počtu třeba 5 nejnovějších s platností 15 dní.
Generovaná stránka má prostou textovou strukturu a začíná heslem SERVERALERT:.
Generovat ji můžete pomocí PHP např. takto:
echo('SERVERALERT:'."\n"); $Database = new mysqli('hostname', 'username', 'password', 'schema'); $DbResult = $Database->query('SELECT * FROM `Article` WHERE `Time` > DATE_SUB(NOW(), INTERVAL 30 DAY) ORDER BY `Time` DESC LIMIT 5'); while($Article = $DbResult->fetch_assoc()) { echo('> '.HumanDate($Article['Time']).' '.$Article['Title']."\n".strip_tags($Article['Content'])."\n\n"); }
Strana klienta
Klientům je potřeba na webu serveru správně popsat, že server či svět je český a kde si mají stáhnout balíček, aby měli hru česky.
Klient si instaluje češtinu do složky hry s odpovídající verzí. Pokud se pak rozhodne češtinu nevyužívat, provede její odinstalování přes nabídku start či ovládací panely.
Při každé aktualizaci hry musí klient nejdříve češtinu odebrat, zaktualizovat hru a až po dokončení aktualizace nainstalovat novější verzi češtiny pro danou verzi hry.
Dlouhodobý provoz
Dlouhodobé nasazení češtiny zvyšuje nároky údržbu serveru. Při každé změně verze hry je nutné provést nové sestavení balíčku s češtinou s novou verzí souboru WowLua.exe. Tedy při změně verze hry je potřeba nejdříve přichystat onen balíček (zajistit novější verzi WowLua.exe, vygenerovat nové DBC a Lua soubory) a na straně serveru přichystat SQL soubory s aktuální češtinou. Pak teprve lze provést samotnou aktualizaci serveru a nabídnou klientům ke stažení nové verze patchů hry i novou verzi balíčku s češtinou. Dává to však samozřejmě volnost v ovlivňování i jiných souborů hry než jen překladu textů.
Češtinu je potřeba provozovat jako oficiální, čímž se myslí nekombinovat angličtinu a češtinu na server či v daném světě, aby mezi hráči nedocházelo k problémům při komunikaci a mixování dvou jazyků. Použití češtiny u klientů však nelze vynutit a je na nich zda si ji skutečně nainstalují. K tomu je potřeba ji správně propagovat na webu a vyzývat k jejímu stažení a instalaci také přímo v uvítání ve hře.