Vítejte na stránkách Asgard's serveru !, přehled novinek
20.10.2008: HL1 Server Queries Protocol Tutorial - 2.část
20:21:13 - Nightly_Falcon - Návody - Komentářů k článku 0
V této části seriálu o HL server queries se podívám na starý protocol, který se už dnes prakticky nepoužívá. To ale neznamená, že na něj nemůžete narazit. Stále můžete najít staré HLDS servery a ty komunikují na základě tohoto protokolu. V článku se tedy dozvíte, jakou strukturu mají request a response datagramy. Konkrétní příklady naleznete až v dalším článku, který se bude zabývat novým server query protocolem.
Tento protokol se u serverů používal dříve. Po updatu v roce 2005 se začal používat nový protokol. Starý je však stále na některých serverech funkční popřípadě ho lze zapnout pomocí proměnné sv_enableoldqueries 1 . Všechny servery s tímto protokolem odpovídají datagramy, které jsou složeny ze tří částí. Všechny stringy v datagramech jsou ukončeny bytem s hodnotou 0x00. Na server je potřeba poslat datagram, který začíná čtyřmi bytes s hodnotou 0xFF a query – string, který je samozřejmě převeden na bytes, zakončený byte s hodnotou 0x00. Server pak odpovídá datagramem, který taky začíná 4 bytes s hodnotou 0xFF. Každý datagram, který přijmete má přesně danou strukturu, ta je popsána níže v tabulkách.
Obsah request datagramu
| Data | Typ | Komentář |
| beginning | 4-bytes | 4 bytes každý s hodnotou -1 (0xFF) |
| query | string | Jeden z query stringů uvedený níže ukončený pomocí byte s hodnotou 0x00 |
Query - strings
| Název | Query – strings | Komentář |
| A2A_ACK | ''ping'' | Slouží pouze k získání odezvy serveru. |
| S2A_INFO | ''info'' | Požádá o základní infomace o serveru ( název, mapa, počet připojených atd. ). |
| S2A_PLAYER | ''players'' | Požádá o informace o hráčí ( nicknames, kills, time connected ). |
| S2A_RULES | ''rules'' | Požádá o informace o pravidlech serveru ( sv_ , mp_ a další proměnné ). |
Obsah response datagramů
Slouží pouze k získání hodnoty pingu serveru. Pokud chcete znát přesnou hodnotu odezvy HL serveru není možné pingovat pouze IP server, musíte posílat tento datagram, protože tím zjistíte opravdovou odezvu běžícího HL serveru na určitém portu. Rozdíl mezi odezvou HL serveru a serveru samotného je jistě zřejmý. Pokud ne zkuste si pingovat svůj server a srovnávat s hodnotou HL serveru s nastavenou proměnnou sys_ticrate 5.
| Typ | Hodnota | Komentář |
| integer | -1 (0xFF FF FF FF ) | Začátek paketu |
| byte | ASCII 'j' | Byte obsahuje hodnotu, která v ASCII odpovídá znaku 'j'. Potvrzuje tím odpověď na požadavek ping. |
| byte | 0 ( 0x00 ) | Ukončení stringu. |
S2A_INFO
Získá základní informace o serveru.
| Typ | Hodnota | Komentář |
| integer | -1 (0xFF FF FF FF ) | Začátek paketu |
| byte | ASCII 'C' | Byte obsahuje hodnotu, která v ASCII odpovídá znaku 'C'. Potvrzuje tím odpověď na požadavek info. |
| string | nedefinováno | Adresa serveru. |
| string | nedefinováno | Název serveru. |
| string | nedefinováno | Název právě hrané mapy. |
| string | nedefinováno | Adresář hry. |
| string | nedefinováno | Popis hry (např. "half-life multiplay") |
| byte | nedefinováno | Počet připojených hráčů. |
| byte | nedefinováno | Maximum hráčů. |
| byte | nedefinováno | Verze protokolu. |
S2A_PLAYER
Získá základní informace o všech hráčích na serveru.
| Typ | Hodnota | Komentář |
| integer | -1 (0xFF FF FF FF ) | Začátek paketu |
| byte | ASCII 'D' | Byte obsahuje hodnotu, která v ASCII odpovídá znaku 'D'. Potvrzuje tím odpověď na požadavek players. |
| byte | nedefinováno | Počet připojených hráčů. |
| Podle počtu hráčů se pak opakují následující data | ||
| byte | nedefinováno | ID hráče |
| string | nedefinováno | Nickname hráče. |
| integer | nedefinováno | Počet fragů. |
| float | nedefinováno | Doby připojení ve vteřinách. |
S2A_RULES
Informace o pravidlech serveru ( proměnné typu sv_, mp_ a další ).
| Typ | Hodnota | Komentář |
| integer | -1 (0xFF FF FF FF ) | Začátek paketu |
| byte | ASCII 'E' | Byte obsahuje hodnotu, která v ASCII odpovídá znaku 'D'. Potvrzuje tím odpověď na požadavek rules |
| integer | nedefinováno | Počet pravidel/proměnných. Tento integer má pouze 16 bits ! |
| Podle počtu pravidel/proměnných se pak opakují následující data | ||
| string | nedefinováno | Název pravidla/proměnné |
| string | nedefinováno | Hodnota pravidla/proměnné |
Články byly vytvořeny pouze pro tento portál a všechny informace v nich byly z dostupných zdrojů. Informace obsažené v tomto článku lze volně rozšiřovat. Kopírování celého článku nebo jeho částí bez vědomí autora je zákázáno.
» Jít zpět
204-703-587
274-916-654
174-854-843
179-509-187