Launcher page, launcher update, breaking news

Z ZděchovNET
Přejít na: navigace, hledání

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}=WoWWorld of Warcraft-2.0.0.6080-expansion-speech-{CPUCentral Processing Unit}-{OSOperační Systém}-{LANG}

[GAME]
CurrentBuild=9920
6546=WoWWorld of Warcraft-installer-2.x.x.x-to-3.0.1.8874-{PLATFORM}-{OSOperační Systém}-{LANG}
6692=WoWWorld of Warcraft-installer-2.x.x.x-to-3.0.1.8874-{CPUCentral Processing Unit}-{OSOperační Systém}-{LANG}
6729=WoWWorld of Warcraft-installer-2.x.x.x-to-3.0.1.8874-{CPUCentral Processing Unit}-{OSOperační Systém}-{LANG}
6739=WoWWorld of Warcraft-installer-2.x.x.x-to-3.0.1.8874-{CPUCentral Processing Unit}-{OSOperační Systém}-{LANG}
6803=WoWWorld of Warcraft-installer-2.x.x.x-to-3.0.1.8874-{CPUCentral Processing Unit}-{OSOperační Systém}-{LANG}
6898=WoWWorld of Warcraft-installer-2.x.x.x-to-3.0.1.8874-{CPUCentral Processing Unit}-{OSOperační Systém}-{LANG}
7272=WoWWorld of Warcraft-installer-2.x.x.x-to-3.0.1.8874-{CPUCentral Processing Unit}-{OSOperační Systém}-{LANG}
7318=WoWWorld of Warcraft-installer-2.x.x.x-to-3.0.1.8874-{CPUCentral Processing Unit}-{OSOperační Systém}-{LANG}
7359=WoWWorld of Warcraft-installer-2.x.x.x-to-3.0.1.8874-{CPUCentral Processing Unit}-{OSOperační Systém}-{LANG}
7561=WoWWorld of Warcraft-installer-2.x.x.x-to-3.0.1.8874-{CPUCentral Processing Unit}-{OSOperační Systém}-{LANG}
7741=WoWWorld of Warcraft-installer-2.x.x.x-to-3.0.1.8874-{CPUCentral Processing Unit}-{OSOperační Systém}-{LANG}
7799=WoWWorld of Warcraft-installer-2.x.x.x-to-3.0.1.8874-{CPUCentral Processing Unit}-{OSOperační Systém}-{LANG}
8089=WoWWorld of Warcraft-installer-2.x.x.x-to-3.0.1.8874-{CPUCentral Processing Unit}-{OSOperační Systém}-{LANG}
8125=WoWWorld of Warcraft-installer-2.x.x.x-to-3.0.1.8874-{CPUCentral Processing Unit}-{OSOperační Systém}-{LANG}
8278=WoWWorld of Warcraft-installer-2.x.x.x-to-3.0.1.8874-{CPUCentral Processing Unit}-{OSOperační Systém}-{LANG}
8606=WoWWorld of Warcraft-installer-2.x.x.x-to-3.0.1.8874-{CPUCentral Processing Unit}-{OSOperační Systém}-{LANG}
8874=WoWWorld of Warcraft-3.0.1.8874-3.0.2.9056-{CPUCentral Processing Unit}-{OSOperační Systém}-{LANG}
9056=WoWWorld of Warcraft-3.0.2.9056-3.0.3.9183-{CPUCentral Processing Unit}-{OSOperační Systém}-{LANG}
9183=WoWWorld of Warcraft-3.0.3.9183-3.0.8.9464-{CPUCentral Processing Unit}-{OSOperační Systém}-{LANG}
9192=WoWWorld of Warcraft-3.0.3.9192-3.0.8.9464-{CPUCentral Processing Unit}-{OSOperační Systém}-{LANG}
9464=WoWWorld of Warcraft-3.0.8.9464-3.0.9.9551-{CPUCentral Processing Unit}-{OSOperační Systém}-{LANG}
9551=WoWWorld of Warcraft-3.0.9.9551-3.1.0.9767-{CPUCentral Processing Unit}-{OSOperační Systém}-{LANG}
9653=WoWWorld of Warcraft-3.0.9.9653-3.1.0.9767-{CPUCentral Processing Unit}-{OSOperační Systém}-{LANG}
9805=WoWWorld of Warcraft-3.1.0.9805-3.1.2.9920-{CPUCentral Processing Unit}-{OSOperační Systém}-{LANG}

[WoWT]
CurrentBuild=9901
8874=WoWWorld of Warcraft-0.x.x.x-0.1.2.9855-{CPUCentral Processing Unit}-{OSOperační Systém}-{LANG}
9149=WoWWorld of Warcraft-0.x.x.x-0.1.2.9855-{CPUCentral Processing Unit}-{OSOperační Systém}-{LANG}
9167=WoWWorld of Warcraft-0.x.x.x-0.1.2.9855-{CPUCentral Processing Unit}-{OSOperační Systém}-{LANG}
9174=WoWWorld of Warcraft-0.x.x.x-0.1.2.9855-{CPUCentral Processing Unit}-{OSOperační Systém}-{LANG}
9355=WoWWorld of Warcraft-0.x.x.x-0.1.2.9855-{CPUCentral Processing Unit}-{OSOperační Systém}-{LANG}
9386=WoWWorld of Warcraft-0.x.x.x-0.1.2.9855-{CPUCentral Processing Unit}-{OSOperační Systém}-{LANG}
9438=WoWWorld of Warcraft-0.x.x.x-0.1.2.9855-{CPUCentral Processing Unit}-{OSOperační Systém}-{LANG}
9464=WoWWorld of Warcraft-0.x.x.x-0.1.2.9855-{CPUCentral Processing Unit}-{OSOperační Systém}-{LANG}
9614=WoWWorld of Warcraft-0.x.x.x-0.1.2.9855-{CPUCentral Processing Unit}-{OSOperační Systém}-{LANG}
9626=WoWWorld of Warcraft-0.x.x.x-0.1.2.9855-{CPUCentral Processing Unit}-{OSOperační Systém}-{LANG}
9637=WoWWorld of Warcraft-0.x.x.x-0.1.2.9855-{CPUCentral Processing Unit}-{OSOperační Systém}-{LANG}
9658=WoWWorld of Warcraft-0.x.x.x-0.1.2.9855-{CPUCentral Processing Unit}-{OSOperační Systém}-{LANG}
9684=WoWWorld of Warcraft-0.x.x.x-0.1.2.9855-{CPUCentral Processing Unit}-{OSOperační Systém}-{LANG}
9704=WoWWorld of Warcraft-0.x.x.x-0.1.2.9855-{CPUCentral Processing Unit}-{OSOperační Systém}-{LANG}
9722=WoWWorld of Warcraft-0.x.x.x-0.1.2.9855-{CPUCentral Processing Unit}-{OSOperační Systém}-{LANG}
9733=WoWWorld of Warcraft-0.x.x.x-0.1.2.9855-{CPUCentral Processing Unit}-{OSOperační Systém}-{LANG}
9742=WoWWorld of Warcraft-0.x.x.x-0.1.2.9855-{CPUCentral Processing Unit}-{OSOperační Systém}-{LANG}
9757=WoWWorld of Warcraft-0.x.x.x-0.1.2.9855-{CPUCentral Processing Unit}-{OSOperační Systém}-{LANG}
9855=WoWWorld of Warcraft-0.1.2.9855-0.1.2.9868-{CPUCentral Processing Unit}-{OSOperační Systém}-{LANG}
9868=WoWWorld of Warcraft-0.1.2.9868-0.1.2.9889-{CPUCentral Processing Unit}-{OSOperační Systém}-{LANG}
9889=WoWWorld of Warcraft-0.1.2.9889-0.1.2.9901-{CPUCentral Processing Unit}-{OSOperační Systém}-{LANG}

[WoWWorld of Warcraft]
CurrentBuild=9947
8874=WoWWorld of Warcraft-3.0.1.8874-3.0.2.9056-{CPUCentral Processing Unit}-{OSOperační Systém}-{LANG}
9056=WoWWorld of Warcraft-3.0.2.9056-3.0.3.9183-{CPUCentral Processing Unit}-{OSOperační Systém}-{LANG}
9183=WoWWorld of Warcraft-3.0.3.9183-3.0.8.9464-{CPUCentral Processing Unit}-{OSOperační Systém}-{LANG}
9464=WoWWorld of Warcraft-3.0.8.9464-3.0.8.9506-{CPUCentral Processing Unit}-{OSOperační Systém}-{LANG}
9506=WoWWorld of Warcraft-3.0.8.9506-3.0.9.9551-{CPUCentral Processing Unit}-{OSOperační Systém}-{LANG}
9551=WoWWorld of Warcraft-3.0.9.9551-3.1.0.9767-{CPUCentral Processing Unit}-{OSOperační Systém}-{LANG}
9767=WoWWorld of Warcraft-3.1.0.9767-3.1.1.9806-{CPUCentral Processing Unit}-{OSOperační Systém}-{LANG}
9806=WoWWorld of Warcraft-3.1.1.9806-3.1.1.9835-{CPUCentral Processing Unit}-{OSOperační Systém}-{LANG}
9835=WoWWorld of Warcraft-3.1.1.9835-3.1.2.9901-{CPUCentral Processing Unit}-{OSOperační Systém}-{LANG}
9901=WoWWorld of Warcraft-3.1.2.9901-3.1.3.9947-{CPUCentral Processing Unit}-{OSOperační Systém}-{LANG}

[GAME-STREAMING]
CurrentBuild=9920
9192=WoWWorld of Warcraft-3.0.3.9192-3.0.8.9464-{CPUCentral Processing Unit}-{OSOperační Systém}-{LANG}
9464=WoWWorld of Warcraft-3.0.8.9464-3.0.9.9551-{CPUCentral Processing Unit}-{OSOperační Systém}-{LANG}
9551=WoWWorld of Warcraft-3.0.9.9551-3.1.0.9767-{CPUCentral Processing Unit}-{OSOperační Systém}-{LANG}
9551=WoWWorld of Warcraft-3.0.9.9551-3.1.0.9767-{CPUCentral Processing Unit}-{OSOperační Systém}-{LANG}
9653=WoWWorld of Warcraft-3.0.9.9653-3.1.0.9767-{CPUCentral Processing Unit}-{OSOperační Systém}-{LANG}
9805=WoWWorld of Warcraft-3.1.0.9805-3.1.2.9920-{CPUCentral Processing Unit}-{OSOperační Systém}-{LANG}

[LAUNCHER]
CurrentBuild=491
213=Tools-1.6.0.213-{CPUCentral Processing Unit}-{OSOperační Systém}-{LANG}-UPDATE
338=Tools-2.0.0.491-{CPUCentral Processing Unit}-{OSOperační Systém}-{LANG}-UPDATE
347=Tools-2.0.0.491-{CPUCentral Processing Unit}-{OSOperační Systém}-{LANG}-UPDATE
374=Tools-1.7.0.476-{CPUCentral Processing Unit}-{OSOperační Systém}-{LANG}-UPDATE
380=Tools-2.0.0.482-{CPUCentral Processing Unit}-{OSOperační Systém}-{LANG}-UPDATE
387=Tools-2.0.0.491-{CPUCentral Processing Unit}-{OSOperační Systém}-{LANG}-UPDATE
420=Tools-2.0.0.482-{CPUCentral Processing Unit}-{OSOperační Systém}-{LANG}-UPDATE
444=Tools-2.0.0.482-{CPUCentral Processing Unit}-{OSOperační Systém}-{LANG}-UPDATE
446=Tools-2.0.0.491-{CPUCentral Processing Unit}-{OSOperační Systém}-{LANG}-UPDATE
481=Tools-2.0.0.491-{CPUCentral Processing Unit}-{OSOperační Systém}-{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 HTMLHyperText Markup Language.

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