Launcher page, launcher update, breaking news
Našim cílem v tomto návodu je přesměrovat adresy oficiálních serverů u klienta na náš server a napodobit na těchto adresách provozované aktualizační služby.
Nastavení web serveru
Na svém serveru musíme nastavit hosting virtuálních stránek, abychom mohli simulovat více různých oficiálních adres.
<VirtualHost *:80> ServerName launcher.worldofwarcraft.com ServerAdmin webmaster@yourdomain.net DocumentRoot /var/www/launcher_rewrite/launcher </VirtualHost> <VirtualHost *:80> ServerName launcher.wow-europe.com ServerAdmin webmaster@yourdomain.net DocumentRoot /var/www/launcher_rewrite/launcher </VirtualHost> <VirtualHost *:80> ServerName status.wow-europe.com ServerAdmin webmaster@yourdomain.net DocumentRoot /var/www/launcher_rewrite/launcher </VirtualHost> <VirtualHost *:80> ServerName us.version.worldofwarcraft.com ServerAdmin webmaster@yourdomain.net DocumentRoot /var/www/launcher_rewrite/patches </VirtualHost> <VirtualHost *:80> ServerName eu.version.worldofwarcraft.com ServerAdmin webmaster@yourdomain.net DocumentRoot /var/www/launcher_rewrite/patches </VirtualHost> <VirtualHost *:80> ServerName vaše_ip_adresa_serveru ServerAdmin webmaster@yourdomain.net DocumentRoot /var/www/launcher_rewrite/patches </VirtualHost>
Patchlist
Aktualizace herního klienta se řídí souborem PatchSequenceFile.txt, který obsahuje informace o dostupných aktualizacích a aktuální verzi hry v podobě čísla sestavení (build number). Změnou tohoto čísla můžeme ovlivňovat, kdy se hráčům začnou automaticky stahovat požadované aktualizace podle toho, kdy aktualizujeme vlastní server. Jedná se o řádek s textem CurrentBuild=číslo.
Zde je ukázkový obsah souboru. Aktuální lze stáhnout z této adresy [1].
[special] expansion-speech-{LANG}=WoW-2.0.0.6080-expansion-speech-{CPU}-{OS}-{LANG} [GAME] CurrentBuild=9920 6546=WoW-installer-2.x.x.x-to-3.0.1.8874-{PLATFORM}-{OS}-{LANG} 6692=WoW-installer-2.x.x.x-to-3.0.1.8874-{CPU}-{OS}-{LANG} 6729=WoW-installer-2.x.x.x-to-3.0.1.8874-{CPU}-{OS}-{LANG} 6739=WoW-installer-2.x.x.x-to-3.0.1.8874-{CPU}-{OS}-{LANG} 6803=WoW-installer-2.x.x.x-to-3.0.1.8874-{CPU}-{OS}-{LANG} 6898=WoW-installer-2.x.x.x-to-3.0.1.8874-{CPU}-{OS}-{LANG} 7272=WoW-installer-2.x.x.x-to-3.0.1.8874-{CPU}-{OS}-{LANG} 7318=WoW-installer-2.x.x.x-to-3.0.1.8874-{CPU}-{OS}-{LANG} 7359=WoW-installer-2.x.x.x-to-3.0.1.8874-{CPU}-{OS}-{LANG} 7561=WoW-installer-2.x.x.x-to-3.0.1.8874-{CPU}-{OS}-{LANG} 7741=WoW-installer-2.x.x.x-to-3.0.1.8874-{CPU}-{OS}-{LANG} 7799=WoW-installer-2.x.x.x-to-3.0.1.8874-{CPU}-{OS}-{LANG} 8089=WoW-installer-2.x.x.x-to-3.0.1.8874-{CPU}-{OS}-{LANG} 8125=WoW-installer-2.x.x.x-to-3.0.1.8874-{CPU}-{OS}-{LANG} 8278=WoW-installer-2.x.x.x-to-3.0.1.8874-{CPU}-{OS}-{LANG} 8606=WoW-installer-2.x.x.x-to-3.0.1.8874-{CPU}-{OS}-{LANG} 8874=WoW-3.0.1.8874-3.0.2.9056-{CPU}-{OS}-{LANG} 9056=WoW-3.0.2.9056-3.0.3.9183-{CPU}-{OS}-{LANG} 9183=WoW-3.0.3.9183-3.0.8.9464-{CPU}-{OS}-{LANG} 9192=WoW-3.0.3.9192-3.0.8.9464-{CPU}-{OS}-{LANG} 9464=WoW-3.0.8.9464-3.0.9.9551-{CPU}-{OS}-{LANG} 9551=WoW-3.0.9.9551-3.1.0.9767-{CPU}-{OS}-{LANG} 9653=WoW-3.0.9.9653-3.1.0.9767-{CPU}-{OS}-{LANG} 9805=WoW-3.1.0.9805-3.1.2.9920-{CPU}-{OS}-{LANG} [WoWT] CurrentBuild=9901 8874=WoW-0.x.x.x-0.1.2.9855-{CPU}-{OS}-{LANG} 9149=WoW-0.x.x.x-0.1.2.9855-{CPU}-{OS}-{LANG} 9167=WoW-0.x.x.x-0.1.2.9855-{CPU}-{OS}-{LANG} 9174=WoW-0.x.x.x-0.1.2.9855-{CPU}-{OS}-{LANG} 9355=WoW-0.x.x.x-0.1.2.9855-{CPU}-{OS}-{LANG} 9386=WoW-0.x.x.x-0.1.2.9855-{CPU}-{OS}-{LANG} 9438=WoW-0.x.x.x-0.1.2.9855-{CPU}-{OS}-{LANG} 9464=WoW-0.x.x.x-0.1.2.9855-{CPU}-{OS}-{LANG} 9614=WoW-0.x.x.x-0.1.2.9855-{CPU}-{OS}-{LANG} 9626=WoW-0.x.x.x-0.1.2.9855-{CPU}-{OS}-{LANG} 9637=WoW-0.x.x.x-0.1.2.9855-{CPU}-{OS}-{LANG} 9658=WoW-0.x.x.x-0.1.2.9855-{CPU}-{OS}-{LANG} 9684=WoW-0.x.x.x-0.1.2.9855-{CPU}-{OS}-{LANG} 9704=WoW-0.x.x.x-0.1.2.9855-{CPU}-{OS}-{LANG} 9722=WoW-0.x.x.x-0.1.2.9855-{CPU}-{OS}-{LANG} 9733=WoW-0.x.x.x-0.1.2.9855-{CPU}-{OS}-{LANG} 9742=WoW-0.x.x.x-0.1.2.9855-{CPU}-{OS}-{LANG} 9757=WoW-0.x.x.x-0.1.2.9855-{CPU}-{OS}-{LANG} 9855=WoW-0.1.2.9855-0.1.2.9868-{CPU}-{OS}-{LANG} 9868=WoW-0.1.2.9868-0.1.2.9889-{CPU}-{OS}-{LANG} 9889=WoW-0.1.2.9889-0.1.2.9901-{CPU}-{OS}-{LANG} [WoW] CurrentBuild=9947 8874=WoW-3.0.1.8874-3.0.2.9056-{CPU}-{OS}-{LANG} 9056=WoW-3.0.2.9056-3.0.3.9183-{CPU}-{OS}-{LANG} 9183=WoW-3.0.3.9183-3.0.8.9464-{CPU}-{OS}-{LANG} 9464=WoW-3.0.8.9464-3.0.8.9506-{CPU}-{OS}-{LANG} 9506=WoW-3.0.8.9506-3.0.9.9551-{CPU}-{OS}-{LANG} 9551=WoW-3.0.9.9551-3.1.0.9767-{CPU}-{OS}-{LANG} 9767=WoW-3.1.0.9767-3.1.1.9806-{CPU}-{OS}-{LANG} 9806=WoW-3.1.1.9806-3.1.1.9835-{CPU}-{OS}-{LANG} 9835=WoW-3.1.1.9835-3.1.2.9901-{CPU}-{OS}-{LANG} 9901=WoW-3.1.2.9901-3.1.3.9947-{CPU}-{OS}-{LANG} [GAME-STREAMING] CurrentBuild=9920 9192=WoW-3.0.3.9192-3.0.8.9464-{CPU}-{OS}-{LANG} 9464=WoW-3.0.8.9464-3.0.9.9551-{CPU}-{OS}-{LANG} 9551=WoW-3.0.9.9551-3.1.0.9767-{CPU}-{OS}-{LANG} 9551=WoW-3.0.9.9551-3.1.0.9767-{CPU}-{OS}-{LANG} 9653=WoW-3.0.9.9653-3.1.0.9767-{CPU}-{OS}-{LANG} 9805=WoW-3.1.0.9805-3.1.2.9920-{CPU}-{OS}-{LANG} [LAUNCHER] CurrentBuild=491 213=Tools-1.6.0.213-{CPU}-{OS}-{LANG}-UPDATE 338=Tools-2.0.0.491-{CPU}-{OS}-{LANG}-UPDATE 347=Tools-2.0.0.491-{CPU}-{OS}-{LANG}-UPDATE 374=Tools-1.7.0.476-{CPU}-{OS}-{LANG}-UPDATE 380=Tools-2.0.0.482-{CPU}-{OS}-{LANG}-UPDATE 387=Tools-2.0.0.491-{CPU}-{OS}-{LANG}-UPDATE 420=Tools-2.0.0.482-{CPU}-{OS}-{LANG}-UPDATE 444=Tools-2.0.0.482-{CPU}-{OS}-{LANG}-UPDATE 446=Tools-2.0.0.491-{CPU}-{OS}-{LANG}-UPDATE 481=Tools-2.0.0.491-{CPU}-{OS}-{LANG}-UPDATE [BACKGROUND]
Stránky na webu
Nyní musíme vytvořit soubory webu na přesměrovaném serveru.
Obsah okna launcheru
Vaše enUS stránka launcheru do verze 3.0.9:
/var/www/launcher_rewrite/launcher/index.php (nebo .htm, .html, aj.)
Vaše stránka launcheru do verze 3.0.9 (kde {LANG} je en, fr, aj):
/var/www/launcher_rewrite/launcher/{LANG}/index.php (nebo .htm, .html, aj.)
Vaše mezinárodní stránka launcheru po verzi 3.0.9:
/var/www/launcher_rewrite/launcher/2.0/index.xml /var/www/launcher_rewrite/launcher/2.0/patch-notes.xml
Soubor patch-notes.xml bude použit, když bude aktualizován klient. Oba tyto soubory jsou HTML.
Je doporučeno vytvořit soubor .htaccess pro přepisová pravidla, abyste mohli použít php soubory:
RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^index.xml /2.0/index.php [L] RewriteRule ^patch-notes.xml /2.0/index.php [L]
Breaking news
Soubor pro Breaking news (nalevo při přihlášení):
/var/www/launcher_rewrite/launcher/alert
Jeho obsah je následující:
SERVERALERT: text vaší zprávy
Do tohoto souboru lze psát s výhodou informace o plánovaných aktualizacích a odstávkách. Tuto informaci pak uvidí všichni hráči, kteří si změní soubor hosts, při přihlašování
Je doporučeno vytvořit soubor .htaccess pro přepisová pravidla, abyste mohli použít php soubory:
RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^alert /alert.php [L]
Na straně klienta
Každý klient si musí u sebe doplnit řádky pro přesměrování doménových adres do patřičných systémových souborů. Pro Windows: C:\Windows\system32\drivers\etc\hosts Pro Unix: /etc/hosts
Přidat je potřeba tyto řádky:
ip_adresa_vašeho_serveru us.version.worldofwarcraft.com ip_adresa_vašeho_serveru eu.version.worldofwarcraft.com ip_adresa_vašeho_serveru us.login.worldofwarcraft.com ip_adresa_vašeho_serveru eu.login.worldofwarcraft.com ip_adresa_vašeho_serveru launcher.worldofwarcraft.com ip_adresa_vašeho_serveru launcher.wow-europe.com ip_adresa_vašeho_serveru status.wow-europe.com
Díky tomu pak u klienta nadále není nutné přepisovat soubor realmlist.wtf, který se automaticky nastavuje na výchozí po dokončení aktualizací, protože na váš server jsou přesměrovány oficiální adresy logon.worldofwarcraft.com.
V případě, že hráči hrají i na oficiálních serverech, musí pak smazat nově přidané řádky ze souboru hosts.
Výchozí obsah souboru realmlist.wtf je následující:
set realmlist us.logon.worldofwarcraft.com set patchlist us.version.worldofwarcraft.com set realmlistbn "" set portal us
Stažení torrent patch souborů
Aby klientům správně pracoval systém automatických aktualizací, je nutno si také stáhnout torrent patch soubory. Toto lze jednoduše automaticky provést pomocí následujícího PHP skriptu. Tento skript pojmenovaný download.php si zkopírujte do složky /var/www/launcher_rewrite/patches/update společně se souborem PatchSequenceFile.txt, ze kterého je načítán seznam stahovaných souborů.
<?php
$CombinationList = array(
array('x86', 'enUS', 'Win', 'us'),
array('x86', 'enGB', 'Win', 'eu'),
//array('x86', 'frFR', 'Win', 'eu'),
//array('x86', 'deDE', 'Win', 'eu'),
//array('x86', 'esES', 'Win', 'eu'),
//array('x86', 'ruRU', 'Win', 'eu'),
array('PPC', 'enUS', 'OSX', 'us'),
array('PPC', 'enGB', 'OSX', 'eu'),
//array('PPC', 'frFR', 'OSX', 'eu'),
//array('PPC', 'deDE', 'OSX', 'eu'),
//array('PPC', 'esES', 'OSX', 'eu'),
//array('PPC', 'ruRU', 'OSX', 'eu'),
);
$FileName = 'PatchSequenceFile.txt';
if(!file_exists($FileName)) exit('File '.$FileName.' not found.');
$Lines = explode("\n", file_get_contents('PatchSequenceFile.txt'));
$Download = array();
foreach($Lines as $Line)
{
if(strpos($Line, '{') !== false)
{
$Line = substr($Line, strpos($Line, '=') + 1);
$Download[$Line] = '';
}
}
foreach($Download as $Key => $Value)
{
foreach($CombinationList as $Combination)
{
$File = str_replace('{PLATFORM}', $Combination[0], $Key);
$File = str_replace('{CPU}', $Combination[0], $File);
$File = str_replace('{LANG}', $Combination[1], $File);
$File = str_replace('{OS}', $Combination[2], $File);
if(!file_exists($File))
exec('wget http://'.$Combination[3].'.version.worldofwarcraft.com/update/'.$File."\n");
}
}
?>
Externí odkazy
- Launcher page, launcher update, breaking news - původní návod
- (NEW) Launcher Page, launcher update, breaking news - aktualizovaný návod
- Under the Surface of Azeroth: A Network Baseline and Security Analysis of Blizzard's World of Warcraft - analýza datových přenosů klienta