Vytvoření instalátoru s češtinou pro WoW

Z ZděchovNET
Skočit na navigaci Skočit na vyhledávání

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.

Na začátku je vhodné se podívat na ukázkové video Demonstrace češtiny pro World of Warcraft.


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.


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.


Vnější odkazy