Launcher page, launcher update, breaking news

Z ZděchovNET
Verze z 5. 2. 2011, 09:17, kterou vytvořil Chronos (diskuse | příspěvky) (Založena nová stránka: 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.…)
(rozdíl) ← Starší verze | zobrazit aktuální verzi (rozdíl) | Novější verze → (rozdíl)
Skočit na navigaci Skočit na vyhledává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}=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