Il est possible d'interroger un serveur de jeu basé sur le moteur Goldsource(en) (Half-Life(en) et ses Mods(en)) ou Source(en) (Half-Life 2(en) et ses Mods) en utilisant des paquets UDP/IP. Cet article décrit le format des différents paquets pouvant être envoyés ou reçus ainsi que le protocole utilisé pour les acheminer.
Types de données
Chaque requête ou réponse utilise cinq types de base, assemblés pour former un flux de données. Tous ces types sont little-endian, il n'y a donc aucune conversion à effectuer sur un processeur x86.
Type |
Description
|
byte(en) |
Caractère non signé (8 bits).
|
short(en) |
Entier court signé (16 bits).
|
long(en) |
Entier long signé (32 bits).
|
float(en) |
Nombre à virgule flottante (32 bits).
|
string(en) |
Suite d'octets de longueur variable terminée par le caractère NUL.
|
Protocole
La taille des paquets utilisés par le protocole d'interrogation est de 1400 octets (sans compter l'en-tête UDP/IP). Chaque réponse contient un en-tête propre au protocole, mais si une réponse nécessite plus d'un paquet elle sera alors découpée et chaque paquet comprendra un en-tête additionnel.
Réponse simple
Donnée |
Type |
Commentaire
|
En-tête |
long(en) |
Toujours égal à -1 (0xFFFFFFFF).
|
Données
|
Réponse multi-paquets
Donnée |
Type |
Commentaire
|
En-tête |
long(en) |
Toujours égal à -2 (0xFFFFFFFE).
|
ID |
long(en) |
Numéro unique attribué par le serveur à chaque paquet appartenant à la même réponse.
|
Nombre et numéro de paquet |
byte(en) |
Les 4 bits de poids fort représentent le numéro du paquet courant (en commençant à 0) et les 4 bits de poids faible représentent le nombre total de paquets (de 2 à 15).
|
Données
|
Donnée |
Type |
Commentaire
|
En-tête |
long(en) |
Toujours égal à -2 (0xFFFFFFFE).
|
ID |
long(en) |
Même signification que pour un serveur Goldsource(en), cependant si le bit de poids fort est à 1 alors la réponse a été compressé avec l'algorithme Bzip2 avant d'être découpée. Après avoir récupéré et assemblé tous les paquets il faut décompresser la réponse (avec BZ2_bzBuffToBuffDecompress() en C ou bzdecompress() en PHP par exemple) avant de pouvoir la traiter.
|
Nombre de paquets |
byte(en) |
Nombre total de paquets de la réponse.
|
Numéro de paquet |
byte(en) |
La numérotation commence à 0.
|
Taille des paquets |
short(en) |
Uniquement présent dans la nouvelle version du moteur Source(en), il s'agit de la taille maximale que peut prendre un paquet avant qu'un découpage ne se produise (auparavant il était impossible de changer cette taille). Cela concerne uniquement le protocole de jeu, dans celui d'interrogation des serveurs il n'est toujours pas possible de demander des paquets de plus petite taille que celle par défaut.
La valeur par défaut est de 1248 octets (0x04E0), mais l'administrateur du serveur peut la diminuer.
|
Uniquement présent dans le premier paquet (numéro 0) si la réponse a été compressé :
Donnée |
Type |
Commentaire
|
Taille de la réponse |
long(en) |
Nombre d'octet qu'occupe la réponse une fois décompressée.
|
Somme CRC32 |
long(en) |
Somme de contrôle CRC32 de la réponse décompressée.
|
|
Données
|
Comme les paquets UDP peuvent arriver dans le désordre et en différé, chaque paquet devrait être contrôlé avec son ID et son numéro pour s'assurer qu'il s'agit toujours de la même réponse et que tous les paquets sont arrivés.
Requêtes
Le format des requêtes est le même que celui des réponses (il est rare de devoir faire une requête multi-paquets toutefois). Les requêtes doivent être envoyées en UDP sur le port d'écoute du serveur (généralement 27015).
A2A_PING
Cette requête qui ne retourne aucune donnée exploitable ne sert qu'à vérifier que le serveur répond correctement. Elle peut être utilisée pour calculer le temps de latence du serveur.
Format de la requête
Donnée |
Type |
Valeur
|
En-tête |
byte(en) |
'i' (105)
|
Format de la réponse
Donnée |
Type |
Commentaire |
Valeur de l'exemple
|
En-tête |
byte(en) |
Toujours égal à 'j' (106). |
106
|
Contenu |
string(en) |
Toujours une chaîne vide. |
|
FF FF FF FF 6A 30 30 30 30 30 30 30 30 30 30 30 ÿÿÿÿj00000000000
30 30 30 00 000.
|
Donnée |
Type |
Commentaire |
Valeur de l'exemple
|
En-tête |
byte(en) |
Toujours égal à 'j' (106). |
106
|
Contenu |
string(en) |
Toujours une chaîne composée de quatorze 0. |
00000000000000
|
A2S_INFO
Cette requête permet d'obtenir des informations sur le serveur comme son nom ou le jeu joué actuellement.
Format de la requête
Donnée |
Type |
Valeur
|
En-tête |
byte(en) |
'T' (84)
|
Contenu |
string(en) |
Source Engine Query
|
FF FF FF FF 54 53 6F 75 72 63 65 20 45 6E 67 69 ÿÿÿÿTSource Engi
6E 65 20 51 75 65 72 79 00 ne Query.
|
Format de la réponse
FF FF FF FF 6D 37 37 2E 31 31 31 2E 31 39 34 2E ÿÿÿÿm77.111.194.
31 31 30 3A 32 37 30 31 35 00 46 52 20 2D 20 56 110:27015.FR - V
65 72 79 47 61 6D 65 73 2E 6E 65 74 20 2D 20 44 eryGames.net - D
65 61 74 6D 61 74 63 68 20 2D 20 6F 6E 6C 79 20 eatmatch - only
73 75 72 66 5F 73 6B 69 20 2D 20 6E 67 52 00 73 surf_ski - ngR.s
75 72 66 5F 73 6B 69 00 63 73 74 72 69 6B 65 00 urf_ski.cstrike.
43 6F 75 6E 74 65 72 2D 53 74 72 69 6B 65 00 0C Counter-Strike..
12 2F 64 6C 00 01 77 77 77 2E 63 6F 75 6E 74 65 ./dl..www.counte
72 2D 73 74 72 69 6B 65 2E 6E 65 74 00 00 00 01 r-strike.net....
00 00 00 00 9E F7 0A 00 01 01 00 ....ž÷.....
|
Donnée |
Type |
Commentaire |
Valeur de l'exemple
|
En-tête |
byte(en) |
Toujours égal à 'm' (109). |
109
|
Adresse |
string(en) |
Adresse IP et port du serveur. |
77.111.194.110:27015
|
Nom |
string(en) |
Nom du serveur. |
FR - VeryGames.net - Deatmatch - only surf_ski - ngR
|
Carte |
string(en) |
Nom de la carte jouée actuellement. |
surf_ski
|
Dossier |
string(en) |
Nom du dossier contenant les fichiers du jeu. |
cstrike
|
Jeu |
string(en) |
Nom complet du jeu. |
Counter-Strike
|
Joueurs |
byte(en) |
Nombre de joueurs actuellement en train de jouer |
12
|
Places |
byte(en) |
Nombre maximum de joueurs que le serveur peut accueillir. |
18
|
Protocole |
byte(en) |
Version du protocole utilisé par le serveur. |
47
|
Serveur |
byte(en) |
Indique le type du serveur :
- 'd' pour un serveur dédié
- 'l' pour un serveur non dédié
- 'p' pour un serveur HLTV(en)
|
'd'
|
Environnement |
byte(en) |
Indique le système d'exploitation du serveur :
- 'l' pour Linux
- 'w' pour Windows
|
'l'
|
Visibilité |
byte(en) |
Indique si le serveur requiert un mot de passe :
- 0 pour public
- 1 pour privé
|
0
|
Mod(en) |
byte(en) |
Indique si le jeu est un Mod :
|
1
|
Uniquement présent si le jeu est un Mod :
Donnée |
Type |
Commentaire |
Valeur de l'exemple
|
Lien |
string(en) |
URL du site d'information du Mod. |
www.counter-strike.net
|
Lien de téléchargement |
string(en) |
URL du site où télécharger le Mod. |
|
|
byte(en) |
Toujours égal à 0. |
0
|
Version |
long(en) |
Version du Mod installée sur le serveur. |
1
|
Taille |
long(en) |
Espace (en octet) qu'occupe le Mod sur le disque dur. |
184000000
|
Genre |
byte(en) |
Indique le genre du Mod :
- 0 pour un Mod solo et multijoueur
- 1 pour un Mod uniquement multijoueur
|
0
|
Dll |
byte(en) |
Indique si le Mod utilise sa propre dll :
- 0 pour la dll d'Half-Life
- 1 pour une dll propriétaire
|
1
|
|
VAC(en) |
byte(en) |
Indique si le serveur utilise le VAC :
- 0 pour non sécurisé
- 1 pour sécurisé
|
1
|
Bots(en) |
byte(en) |
Nombre de bots présents sur le serveur. |
0
|
Note : Un serveur HLTV répondra parfois avec une fin de requête incomplète ou erronée (si le nombre de places est de 255).
FF FF FF FF 49 07 50 75 62 6C 69 63 20 53 65 72 ÿÿÿÿI.Public Ser
76 65 72 20 54 69 63 6B 20 31 30 30 20 77 77 77 ver Tick 100 www
2E 6C 61 72 75 73 68 2E 64 65 00 64 6D 5F 6C 6F .larush.de.dm_lo
63 6B 64 6F 77 6E 00 68 6C 32 6D 70 00 54 65 61 ckdown.hl2mp.Tea
6D 20 44 65 61 74 68 6D 61 74 63 68 00 40 01 0F m Deathmatch.@..
10 00 64 77 00 01 31 2E 30 2E 30 2E 31 32 00 ..dw..1.0.0.12.
|
Donnée |
Type |
Commentaire |
Valeur de l'exemple
|
En-tête |
byte(en) |
Toujours égal à 'I' (73). |
73
|
Protocole |
byte(en) |
Version du protocole utilisé par le serveur. |
7
|
Nom |
string(en) |
Nom du serveur. |
Public Server Tick 100 www.larush.de
|
Carte |
string(en) |
Nom de la carte jouée actuellement. |
dm_lockdown
|
Dossier |
string(en) |
Nom du dossier contenant les fichiers du jeu. |
hl2mp
|
Jeu |
string(en) |
Nom complet du jeu. |
Team Deathmatch
|
AppID |
short(en) |
Steam Application ID(en) du jeu. |
320
|
Joueurs |
byte(en) |
Nombre de joueurs actuellement en train de jouer |
15
|
Places |
byte(en) |
Nombre maximum de joueurs que le serveur peut accueillir. |
16
|
Bots(en) |
byte(en) |
Nombre de bots présents sur le serveur. |
0
|
Serveur |
byte(en) |
Indique le type du serveur :
- 'd' pour un serveur dédié
- 'l' pour un serveur non dédié
- 'p' pour un serveur SourceTV(en)
|
'd'
|
Environnement |
byte(en) |
Indique le système d'exploitation du serveur :
- 'l' pour Linux
- 'w' pour Windows
|
'w'
|
Visibilité |
byte(en) |
Indique si le serveur requiert un mot de passe :
- 0 pour public
- 1 pour privé
|
0
|
VAC(en) |
byte(en) |
Indique si le serveur utilise le VAC :
- 0 pour non sécurisé
- 1 pour sécurisé
|
1
|
Uniquement s'il s'agit d'un serveur The Ship(en) :
Donnée |
Type |
Commentaire |
Exemple de valeur
|
Mode |
byte(en) |
Indique le mode de jeu :
- 0 pour Hunt
- 1 pour Elimination
- 2 pour Duel
- 3 pour Deathmatch
- 4 pour Team VIP
- 5 pour Team Elimination
|
0
|
Témoins |
byte(en) |
Nombre minimum de témoins nécessaire pour qu'un joueur se fasse arrêter. |
2
|
Durée |
byte(en) |
Durée (en seconde) avant qu'un joueur ne se fasse arrêter quand il est vu par un/des témoin(s). |
1
|
|
Version |
string(en) |
Version du jeu installée sur le serveur. |
1.0.0.12
|
IDS |
byte(en) |
Indice de données supplémentaires. Si présent, indique quel type de données est ajouté en fin de réponse.
|
Uniquement si (IDS & 0x80) :
Donnée |
Type |
Commentaire |
Exemple de valeur
|
Port |
short(en) |
Port du serveur de jeu. |
27015
|
|
Uniquement si (IDS & 0x40) :
Donnée |
Type |
Commentaire |
Exemple de valeur
|
Port spectateur |
short(en) |
Port permettant de se connecter au serveur SourceTV. |
27030
|
Nom SourceTV |
string(en) |
Nom du serveur SourceTV présent sur le serveur. |
DragonTV
|
|
Uniquement si (IDS & 0x20) :
Donnée |
Type |
Commentaire
|
Mots-clés |
string(en) |
Mots-clés du jeu proposé par le serveur (pas encore implémenté).
|
|
Note : Sur un serveur Rag Doll Kung Fu le type de serveur est toujours égal à 0.
A2S_SERVERQUERY_GETCHALLENGE
Les serveurs ne répondent à certaines requêtes que si un nombre particulier (appelé challenge) y est joint. La requête ci-dessous permet d'obtenir ce challenge.
Format de la requête
Donnée |
Type |
Valeur
|
En-tête |
byte(en) |
'W' (87)
|
Format de la réponse
FF FF FF FF 41 4B A1 D5 22 ÿÿÿÿAK¡Õ"
|
Donnée |
Type |
Commentaire |
Valeur de l'exemple
|
En-tête |
byte(en) |
Toujours égal à 'A' (65). |
65
|
Challenge |
long(en) |
Nombre à joindre aux requêtes le nécessitant. |
584425803
|
A2S_PLAYER
Cette requête permet d'obtenir des informations sur les joueurs actuellement présents sur le serveur.
Note : Cette requête nécessite un challenge.
Note : Un serveur SourceTV(en) ne répondra pas à cette requête.
Format de la requête
Donnée |
Type |
Valeur
|
En-tête |
byte(en) |
'U' (85)
|
Challenge |
long(en) |
variable
|
FF FF FF FF 55 ED 9A E1 0C ÿÿÿÿUíšá.
|
Format de la réponse
FF FF FF FF 44 02 01 5B 44 5D 2D 2D 2D 2D 3E 54 ÿÿÿÿD..[D]---->T
2E 4E 2E 57 3C 2D 2D 2D 2D 00 0E 00 00 00 B4 97 .N.W<----.....´—
00 44 02 4B 69 6C 6C 65 72 20 21 21 21 00 05 00 .D.Killer !!!...
00 00 69 24 D9 43 ..i$ÙC
|
Donnée |
Type |
Commentaire |
Valeur de l'exemple
|
En-tête |
byte(en) |
Toujours égal à 'D' (68). |
68
|
Joueurs |
byte(en) |
Nombre de joueurs dont les informations sont fournies. |
2
|
Pour chaque joueur présent dans la réponse on trouve les données suivantes :
Donnée |
Type |
Commentaire
|
Index |
byte(en) |
Numéro du joueur dans cette réponse.
|
Nom |
string(en) |
Nom du joueur.
|
Score |
long(en) |
Score du joueur (généralement le nombre de frags).
|
Durée |
float(en) |
Durée (en seconde) depuis laquelle le joueur est connecté sur le serveur.
|
|
1 |
[D]---->T.N.W<---- |
14 |
514.37036
|
2 |
Killer !!! |
5 |
434.28445
|
|
Note : Lorsqu'un joueur est en train de se connecter au serveur il est comptabilisé dans le nombre de joueurs de la réponse, mais ces données ne sont pas contenues dans cette dernière.
A2S_RULES
Cette requête permet d'obtenir des informations sur la configuration (les règles) du serveur.
Note : Cette requête nécessite un challenge.
Format de la requête
Donnée |
Type |
Valeur
|
En-tête |
byte(en) |
'V' (86)
|
Challenge |
long(en) |
variable
|
FF FF FF FF 56 4B A1 D5 22 ÿÿÿÿVK¡Õ"
|
Format de la réponse
Note : La réponse à cette requête est généralement multi-paquets.
FE FF FF FF 56 0A 00 00 02 FF FF FF FF 45 5D 00 þÿÿÿV....ÿÿÿÿE].
5F 74 75 74 6F 72 5F 62 6F 6D 62 5F 76 69 65 77 _tutor_bomb_view
61 62 6C 65 5F 63 68 65 63 6B 5F 69 6E 74 65 72 able_check_inter
76 61 6C 00 30 2E 35 00 5F 74 75 74 6F 72 5F 64 val.0.5._tutor_d
65 62 75 67 5F 6C 65 76 65 6C 00 30 00 5F 74 75 ebug_level.0._tu
74 6F 72 5F 65 78 61 6D 69 6E 65 5F 74 69 6D 65 tor_examine_time
00 30 2E 35 00 5F 74 75 74 6F 72 5F 68 69 6E 74 .0.5._tutor_hint
5F 69 6E 74 65 72 76 61 6C 5F 74 69 6D 65 00 31 _interval_time.1
30 2E 30 00 5F 74 75 74 6F 72 5F 6C 6F 6F 6B 5F 0.0._tutor_look_
61 6E 67 6C 65 00 31 30 00 5F 74 75 74 6F 72 5F angle.10._tutor_
6C 6F 6F 6B 5F 64 69 73 74 61 6E 63 65 00 32 30 look_distance.20
30 00 5F 74 75 74 6F 72 5F 6D 65 73 73 61 67 65 0._tutor_message
5F 63 68 61 72 61 63 74 65 72 5F 64 69 73 70 6C _character_displ
61 79 5F 74 69 6D 65 5F 63 6F 65 66 66 69 63 69 ay_time_coeffici
65 6E 74 00 30 2E 30 37 00 5F 74 75 74 6F 72 5F ent.0.07._tutor_
6D 65 73 73 61 67 65 5F 6D 69 6E 69 6D 75 6D 5F message_minimum_
64 69 73 70 6C 61 79 5F 74 69 6D 65 00 31 00 5F display_time.1._
74 75 74 6F 72 5F 6D 65 73 73 61 67 65 5F 72 65 tutor_message_re
70 65 61 74 73 00 35 00 5F 74 75 74 6F 72 5F 76 peats.5._tutor_v
69 65 77 5F 64 69 73 74 61 6E 63 65 00 31 30 30 iew_distance.100
30 00 61 6C 6C 6F 77 5F 73 70 65 63 74 61 74 6F 0.allow_spectato
72 73 00 31 00 61 6D 78 5F 63 6C 69 65 6E 74 5F rs.1.amx_client_
6C 61 6E 67 75 61 67 65 73 00 31 00 61 6D 78 5F languages.1.amx_
6C 61 6E 67 75 61 67 65 00 66 72 00 61 6D 78 5F language.fr.amx_
6E 65 78 74 6D 61 70 00 64 65 5F 61 7A 74 65 63 nextmap.de_aztec
00 61 6D 78 5F 74 69 6D 65 6C 65 66 74 00 30 30 .amx_timeleft.00
3A 30 30 00 61 6D 78 6D 6F 64 78 5F 76 65 72 73 :00.amxmodx_vers
69 6F 6E 00 31 2E 37 36 64 00 63 6F 6F 70 00 30 ion.1.76d.coop.0
00 63 73 64 6D 5F 61 63 74 69 76 65 00 31 00 63 .csdm_active.1.c
73 64 6D 5F 76 65 72 73 69 6F 6E 00 32 2E 31 00 sdm_version.2.1.
64 65 61 74 68 6D 61 74 63 68 00 31 00 64 65 63 deathmatch.1.dec
61 6C 66 72 65 71 75 65 6E 63 79 00 36 30 00 65 alfrequency.60.e
64 67 65 66 72 69 63 74 69 6F 6E 00 32 00 68 6F dgefriction.2.ho
73 74 61 67 65 5F 64 65 62 75 67 00 30 00 68 6F stage_debug.0.ho
73 74 61 67 65 5F 73 74 6F 70 00 30 00 68 75 6D stage_stop.0.hum
61 6E 73 5F 6A 6F 69 6E 5F 74 65 61 6D 00 61 6E ans_join_team.an
79 00 6A 74 70 31 30 31 38 31 00 63 68 75 74 65 y.jtp10181.chute
00 6D 61 78 5F 71 75 65 72 69 65 73 5F 73 65 63 .max_queries_sec
00 31 00 6D 61 78 5F 71 75 65 72 69 65 73 5F 73 .1.max_queries_s
65 63 5F 67 6C 6F 62 61 6C 00 31 00 6D 61 78 5F ec_global.1.max_
71 75 65 72 69 65 73 5F 77 69 6E 64 6F 77 00 31 queries_window.1
00 6D 65 74 61 6D 6F 64 5F 76 65 72 73 69 6F 6E .metamod_version
00 31 2E 31 39 00 6D 70 5F 61 6C 6C 6F 77 6D 6F .1.19.mp_allowmo
6E 73 74 65 72 73 00 30 00 6D 70 5F 61 75 74 6F nsters.0.mp_auto
6B 69 63 6B 00 30 00 6D 70 5F 61 75 74 6F 74 65 kick.0.mp_autote
61 6D 62 61 6C 61 6E 63 65 00 30 00 6D 70 5F 62 ambalance.0.mp_b
75 79 74 69 6D 65 00 39 39 39 39 00 6D 70 5F 63 uytime.9999.mp_c
34 74 69 6D 65 72 00 33 35 00 6D 70 5F 63 68 61 4timer.35.mp_cha
74 74 69 6D 65 00 35 00 6D 70 5F 63 6F 6E 73 69 ttime.5.mp_consi
73 74 65 6E 63 79 00 31 00 6D 70 5F 66 61 64 65 stency.1.mp_fade
74 6F 62 6C 61 63 6B 00 30 00 6D 70 5F 66 6C 61 toblack.0.mp_fla
73 68 6C 69 67 68 74 00 31 00 6D 70 5F 66 6F 6F shlight.1.mp_foo
74 73 74 65 70 73 00 31 00 6D 70 5F 66 6F 72 63 tsteps.1.mp_forc
65 63 61 6D 65 72 61 00 30 00 6D 70 5F 66 6F 72 ecamera.0.mp_for
63 65 63 68 61 73 65 63 61 6D 00 30 00 6D 70 5F cechasecam.0.mp_
66 72 61 67 73 6C 65 66 74 00 30 00 6D 70 5F 66 fragsleft.0.mp_f
72 65 65 66 6F 72 61 6C 6C 00 30 00 6D 70 5F 66 reeforall.0.mp_f
72 65 65 7A 65 74 69 6D 65 00 32 00 6D 70 5F 66 reezetime.2.mp_f
72 69 65 6E 64 6C 79 66 69 72 65 00 30 00 6D 70 riendlyfire.0.mp
5F 67 68 6F 73 74 66 72 65 71 75 65 6E 63 79 00 _ghostfrequency.
30 2E 31 00 6D 70 5F 68 6F 73 74 61 67 65 70 65 0.1.mp_hostagepe
6E 61 6C 74 79 00 31 33 00 6D 70 5F 6B 69 63 6B nalty.13.mp_kick
70 65 72 63 65 6E 74 00 30 00 6D 70 5F 6C 69 6D percent.0.mp_lim
69 74 74 65 61 6D 73 00 30 00 6D 70 5F 6C 6F 67 itteams.0.mp_log
64 65 74 61 69 6C 00 33 00 6D 70 5F 6C 6F 67 66 detail.3.mp_logf
69 6C 65 00 31 00 6D 70 5F 6C 6F 67 6D 65 73 73 ile.1.mp_logmess
61 67 65 73 00 31 00 6D 70 5F 6D 61 70 76 6F 74 ages.1.mp_mapvot
65 72 61 74 69 6F 00 31 00 6D 70 5F 6D 61 78 72 eratio.1.mp_maxr
6F 75 6E 64 73 00 30 00 6D 70 5F 6D 69 72 72 6F ounds.0.mp_mirro
72 64 61 6D 61 67 65 00 30 00 6D 70 5F 70 6C 61 rdamage.0.mp_pla
79 65 72 69 64 00 30 00 6D 70 5F 72 6F 75 6E 64 yerid.0.mp_round
74 69 6D 65 00 33 00 6D 70 5F 73 74 61 72 74 6D time.3.mp_startm
6F 6E 65 79 00 38 30 30 00 6D 70 5F 74 69 6D 65 oney.800.mp_time
6C 65 66 74 00 30 00 6D 70 5F 74 69 6D 65 6C 69 left.0.mp_timeli
6D 69 74 00 30 00 6D 70 5F 74 6B 70 75 6E 69 73 mit.0.mp_tkpunis
68 00 30 00 6D 70 5F 77 69 6E 64 69 66 66 65 72 h.0.mp_windiffer
65 6E 63 65 00 31 00 6D 70 5F 77 69 6E 6C 69 6D ence.1.mp_winlim
69 74 00 30 00 70 61 75 73 61 62 6C 65 00 31 00 it.0.pausable.1.
73 76 5F 61 63 63 65 6C 65 72 61 74 65 00 35 00 sv_accelerate.5.
73 76 5F 61 69 6D 00 30 00 73 76 5F 61 69 72 61 sv_aim.0.sv_aira
63 63 65 6C 65 72 61 74 65 00 31 30 30 00 73 76 ccelerate.100.sv
5F 61 69 72 6D 6F 76 65 00 31 00 73 76 5F 61 6C _airmove.1.sv_al
6C 6F 77 75 70 6C 6F 61 64 00 31 00 73 76 5F 61 lowupload.1.sv_a
6C 6C 74 61 6C 6B 00 31 00 73 76 5F 62 6F 75 6E lltalk.1.sv_boun
63 65 00 31 00 73 76 5F 63 68 65 61 74 73 00 30 ce.1.sv_cheats.0
00 73 76 5F 63 6C 69 65 6E 74 74 72 61 63 65 00 .sv_clienttrace.
31 00 73 76 5F 63 6C 69 70 6D 6F 64 65 00 30 00 1.sv_clipmode.0.
73 76 5F 63 6F 6E 74 61 sv_conta
FE FF FF FF 56 0A 00 00 12 63 74 00 00 73 76 5F þÿÿÿV....ct..sv_
66 72 69 63 74 69 6F 6E 00 34 00 73 76 5F 67 72 friction.4.sv_gr
61 76 69 74 79 00 37 35 30 00 73 76 5F 6C 6F 67 avity.750.sv_log
62 6C 6F 63 6B 73 00 30 00 73 76 5F 6D 61 78 72 blocks.0.sv_maxr
61 74 65 00 32 35 30 30 30 00 73 76 5F 6D 61 78 ate.25000.sv_max
73 70 65 65 64 00 33 32 30 00 73 76 5F 6D 69 6E speed.320.sv_min
72 61 74 65 00 31 35 30 30 30 00 73 76 5F 70 61 rate.15000.sv_pa
73 73 77 6F 72 64 00 30 00 73 76 5F 70 72 6F 78 ssword.0.sv_prox
69 65 73 00 32 00 73 76 5F 72 65 67 69 6F 6E 00 ies.2.sv_region.
33 00 73 76 5F 72 65 73 74 61 72 74 00 30 00 73 3.sv_restart.0.s
76 5F 72 65 73 74 61 72 74 72 6F 75 6E 64 00 30 v_restartround.0
00 73 76 5F 73 74 65 70 73 69 7A 65 00 31 38 00 .sv_stepsize.18.
73 76 5F 73 74 6F 70 73 70 65 65 64 00 37 35 00 sv_stopspeed.75.
73 76 5F 75 70 6C 6F 61 64 6D 61 78 00 30 2E 35 sv_uploadmax.0.5
00 73 76 5F 76 6F 69 63 65 65 6E 61 62 6C 65 00 .sv_voiceenable.
31 00 73 76 5F 77 61 74 65 72 61 63 63 65 6C 65 1.sv_wateraccele
72 61 74 65 00 31 30 00 73 76 5F 77 61 74 65 72 rate.10.sv_water
66 72 69 63 74 69 6F 6E 00 31 00 friction.1.
|
Donnée |
Type |
Commentaire |
Valeur de l'exemple
|
En-tête |
byte(en) |
Toujours égal à 'E' (69). |
69
|
Règles |
short(en) |
Nombre de règles présentes dans la réponse. |
93
|
Pour chaque règle on trouve les données suivantes :
Donnée |
Type |
Commentaire
|
Nom |
string(en) |
Nom de la règle.
|
Valeur |
string(en) |
Valeur de la règle.
|
|
_tutor_bomb_viewable_check_interval |
0.5
|
_tutor_debug_level |
0
|
_tutor_examine_time |
0.5
|
(...)
|
sv_uploadmax |
0.5
|
sv_voiceenable |
1
|
sv_wateraccelerate |
10
|
sv_waterfriction |
1
|
|
Voir aussi
Articles connexes
Liens externes