Recherche
 
Fermer
Documentation
Toutes les pages
cl_timenudge  -  par FSMOD
Le CVAR cl_timenudge
 

Pour commencer, je dois d'abord évoquer l'une des principales caractéristiques de SOF2 qui rend ce jeu FPS très particulier par rapport à tous les autres qui exploitent le même moteur, Quake3. Hélas, la plupart des joueurs ne savent même pas que cette caractéristique existe et encore moins quelle est sa fonction. Il s'agit du CVAR cg_antilag côté client, intimement associé au CVAR g_antilag côté serveur.

L'antilag est codé d'origine dans les sources ROCMOD et ses constantes et algorithmes ne sont pas paramétrables par le Sysop.
En revanche le CVAR cg_antilag peut être validé (1) ou invalidé (0) par le client. Il est toujours fortement recommandé de valider cg_antilag.

Son but essentiel est de tenter d'aplanir les différences de latence entre les joueurs. Cela signifie que vous ne verrez jamais un joueur ayant un ping de 20 tuer systématiquement un joueur avec un ping de 130, sans que ce dernier n'ait une chance de réagir, sauf si vous utilisez un cl_timenudge avec une valeur négative, mais ce volet sera évoqué plus tard.
Cela signifie qu'un joueur au faible ping aura la sensation de s'acharner sur un joueur au ping élevé sans pour autant que celui-ci morde la poussière, alors que lui même devient très vulnérable et se retrouve au tapis.
 
Pour faire plus simple, cette sensation résulte du fait que le joueur au faible ping vit dans ce cas plus longtemps qu'il ne devrait, car l'antilag égalise la différence de ping. Ainsi le joueur au faible ping doit faire de son mieux et devra attendre que le joueur au ping élevé fasse lui-même de son mieux. Si le joueur au ping élevé fait preuve d'une meilleure adresse, le joueur au faible ping se fera tuer, avec toutefois un léger retard.

L'antilag est donc en fait un égaliseur temporel, et c'est même la notion fondamentale du ping.
Des différences de ping très importantes peuvent être ainsi aplanies et cette caractéristique de SOF2 permet à tout joueur, de s'assurer des tirs au but efficients, pour peu que son ping, même élevé, reste stable dans le temps.
Tout cela est possible car le serveur conserve également une mémorisation de chaque trajectoire des joueurs et vérifie pour ses calculs où la cible est sensée se trouver pour être visible sur l'écran de l'attaquant au moment de l'action. Bien entendu, comme cela a été évoqué plus haut, il est absolument nécessaire que la connexion soit stable. En cas contraire l'affichage sur votre moniteur ne correspondra pas avec les prévisions de calculs du serveur.


Cela nous amène à aborder le plus perfide de tous les CVAR, à savoir cl_timenudge. A l'opposé de l'antilag,
cl_timenudge est codé non pas dans le mode de jeu mais dans l'exécutable sof2mp.exe. Il est donc commun à tous les jeux exploitant le moteur Quake3.
Son principe fondamental se fonde sur l'exploitation de 2 instantanés consécutifs afin d'interpoler les mouvements du joueur.
La plupart des serveurs sont cadencés par défaut à 20 Hz, ce qui signifie qu'un paquet de données est envoyé toutes les 50 ms.
Le serveur envoie donc un paquet au temps t1, contenant un instantané de tous les éléments de la map, y compris les joueurs, puis, au temps t2, soit 50ms plus tard, le serveur envoie un autre instantané, puis un autre au temps t3 et ainsi de suite.
Lorsque le client a reçu les 2 premiers paquets (au temps t1 et t2), il effectue l'interpolation des autres joueurs dans le jeu, de leur première position au temps t1 vers leur nouvelle position au temps t2.
La seconde interpolation sera calculée entre les temps t2 et t3 et ainsi de suite.
Par défaut
cl_timenudge est fixée à 0, ce qui signifie que l'écart de 50ms entre 2 instantanés sera respecté.
Par contre si le client affecte une valeur négative à
cl_timenudge le temps d'interpolation sera réduit d'autant.
Par exemple si l'on a
cl_timenudge -20, cela voudra dire que l'interpolation sera réduite de 20ms.
A l'extrême, le temps de l'interpolation peut être nul dans le cas où
cl_timenudge -50.

puce2.gif Mais creusons le sujet un peu plus.

Lorsque
cl_timenudge a une valeur négative, toutes les entités autres que les joueurs sont tout simplement extrapolées plus tôt. Le terme "toutes les entités" englobe tous les éléments de la map qui sont sensés être fixes. La transmission de ces entités statiques ne nécessite qu'un seul paquet d'informations pour l'extrapolation, ce qui simplifie le calcul. Ces entités devraient être traitées plus tard en raison de la latence intrinsèque, mais compte tenu d'un cl_timenudge négatif tout ce que vous verrez sur votre moniteur, à l'exception des joueurs, sera le reflet exact de la réalité du terrain. Cela arrivera simplement un plus tôt qu'il ne devrait être avec un cl_timenudge négatif.

Lorsque les mouvements des joueurs vont être traités par la fonction trajectoire de SOF, l'origine de sortie sera identique à l'origine d'entrée puisque l'interpolation des joueurs n'aura pas encore été exécutée au temps t2. Ainsi ils ne se déplaceront que quand le nouvel instantané (t2) arrivera.
Ce déplacement devrait être brutal et donnerait l'impression que les joueurs se meuvent à 20 FPS (*) alors que tout le reste, comme le travelling des décors de la map, resterait fluide.
C'est là que le CVAR antilag intervient. Il va intégrer les joueurs dans les autres éléments de la map de manière à ce que la fonction trajectoire puisse les extrapoler correctement. De cette façon, avec un
cl_timenudge négatif, les joueurs vont être extrapolés comme toutes les autres entités de la map.
Les erreurs d'extrapolation peuvent toutefois créer des latences fugaces qui donneront l'impression que la cible se déplace par saccades, surtout si
cl_timenudge a une valeur fortement négative. A noter que les autres joueurs ne vous verront pas affecté de ces soubresauts.
cl_timenudge négatif est particulièrement efficace sur une cible en déplacement radial.

puce2.gif Conclusion

En adoptant un
cl_timenudge négatif dont la valeur est généralement fixée empiriquement par ceux qui affectent ce CVAR, la dernière position des adversaires est affichée plus rapidement à l'écran et offre ainsi une meilleure chance de tir au but, avant que la cible puisse s'esquiver.
Le CVAR
cl_timenudge, réminiscence de quake3, ne devrait jamais être paramétré négativement, dans la mesure où la fonction antilag, propre à SOF2, offre une parfaite équité entre les joueurs ayant des pings parfois très différents.
Une bataille de désignation est souvent observée sur les forums dédiés où certains collent une étiquette délictueuse sur
cl_timenudge alors que d'autres s'en défendent et la considèrent comme un outil indispensable pour compenser les fluctuations de leur débit internet.
Pour ceux qui voudraient bannir ce CVAR équivoque de leur serveur, il ne reste que la solution désuète d'activer punkbuster en modifiant toutefois le fichier de configuration et d'y introduire ou modifier la ligne suivante:

pb_sv_cvar cl_timenudge IN 0 0

Pour ma part je n'active jamais punkbuster sur mon serveur, bien que considérant
cl_timenudge comme un certain préavis de tir qui confère à son utilisateur un pseudo avantage qui, au demeurant, n'est pas toujours avéré. Je l'ai testé sur quelques serveurs dont le mien et je n'ai pas vraiment vu d'amélioration sensible dans le gameplay. Avec les faibles performance de mon flux internet, j'y ai plutôt vu des nuisances.

ROCMOD à la faculté de porter à la connaissance de l'admin les valeurs de CVAR.

N'en déplaise à ceux que j'ai déjà identifiés. Je ne leur inflige aucun kick et encore moins un ban, juste un petit rappel de la chose interdite.
 
NB: les termes interpoler et extrapoler sont très significatifs dans le texte. Ne confondez pas leur acception.  

(*)  1 frame ou capture toutes les 50 ms soit 20 Frames Par Seconde.



-=eek=-
Publié le 05/02/2019 17:19  Prévisualiser...   Imprimer...   Haut
Les bons réglages  -  par FSMOD
LES BONS REGLAGES ET CE QU'ILS PERMETTENT
Voici une petite galerie non exhaustive de videos, qui illustrent les possibilités offertes par de bons réglages dans des déplacements particuliers au sein de certaines maps standards et customisées de SOF2.
Je rappelle que ces réglages portent essentiellement sur les valeurs suivantes de certains CVAR que je vous invite vivement à utiliser si vous jouez sur mon serveur:
  • com_maxfps 200
  • snaps 50
  • rate 25000

Parmi ces 3 CVAR, le plus important est com_maxfps qui doit être impérativement fixé à 200 afin de vous permettre de vous affranchir des sauts les plus hauts. Par ailleurs il conviendra de paramétrer votre bind affecté au high jump sous la forme suivante:

bind SPACE "+strafe; +moveup; wait 4; -strafe; -moveup; wait 4; +strafe; +movedown; wait 4; -strafe; -movedown"

ATTENTION:  les possibilités offertes par ces réglages ne s'apparentent en aucune manière à des scripts malsains visant à tricher. En effet, dans la mesure où chaque belligérant sur le terrain a le choix d'agréer ces réglages, celui qui préférera ceux d'un autre temps, ne devra pas se plaindre, ni accuser les autres joueurs de tricher. Aussi l'inviterai-je vivement à aller barboter ailleurs. biggrin

Je précise enfin que ces prouesses de saut sont avant tout autorisées par le serveur dont les réglages priment sur ceux du client. A ce titre le CVAR serveur g_gravity doit être inférieur ou égal à 500. Toute valeur supérieure limitera la hauteur des sauts. Sur mon serveur g_gravity est plafonné à 500 sur toutes les maps. L'accession aux points élevés vous est ouverte !

Cliquez sur les images


On commence avec une map particulière mp_pra1 qui offre une possibilité de sky walking. Je n'ai jamais réussi à savoir si cet effet avait été voulu par le programmeur où s'il s'agissait d'un bug incontrôlé (glitch). En tous cas ce perchoir céleste offre un indéniable avantage!

A noter que le chemin pour descendre et le même que pour grimper.

mp_pra1.jpg


mp_hk1

mp_hk1.jpg

mp_hk2
mp_hk2.jpg


mp_kam2

mp_kam2.jpg

mp_hos1

mp_hos1.jpg


mp_air1

Encore un sky walking partiel!

mp_air1.jpg


mp_jor1

  

mp_jor1.jpg


mp_kam5

mp_kam5.jpg


mp_shop2

mp_shop2.jpg


mp_kam1

Il y a parfois des coins transparents...... tongue

mp_kam1.jpg

mp_italy

Une des meilleures map pour le roofing wink

mp_italy.jpg

mp_shop69

mp_shop69.jpg

VOK

Un point de télétransport assez original, il fallait le trouver. Il y en a un autre plus évident et plus connu.....

vok.jpg

Et pour finir la map mp_pra2 qui présente un curieux dessin derrière une porte de cave, dessin qui n'a aucune utilité dans le jeu mais qui rappelle un peu les easter eggs que les programmeurs déposent parfois dans leurs oeuvres, notamment chez Microsoft. 

mp_pra2.jpg


Il existe encore une foultitude de maps qui offrent des surprises et des trucs bizarres. Un bon moyen de les découvrir est de lancer votre propre serveur LAN sans les bots et de fureter dans les maps de votre choix le temps qu'il vous plaira.

 

-=frown=-

Publié le 05/02/2019 16:58  Prévisualiser...   Imprimer...   Haut
Installation  -  par FSMOD

Installation Client

J'ai souvent constaté que certains joueurs rencontraient des problèmes de connexions aléatoires sur les serveurs, quelque soit le mode utilisé. Malgré des configurations qui leur semblent correctes et des liaisons ADSL performantes leur connexion est instable voire impossible.

A l'évidence ces problèmes sont essentiellement liés à leur propre configuration, à l'usage de fichiers corrompus ou conflictuels ou encore à une perte ou altération de leurs propres réglages. Trouver l'origine n'est pas toujours évidente surtout pour un joueur parfois excellent dans le jeu mais pas très à l'aise avec les manipulations de fichiers.

La procédure la plus simple est de réinstaller le jeu de A à Z et de concevoir une configuration claire et saine.

C'est parti

En premier lieu il est judicieux de garder votre ancien répertoire qui devrait se situer à C:/Program Files/Soldier of Fortune II - Double Helix et qui pourrait malgré tout contenir quelques fichiers à récupérer comme des pack sons par exemple. Mais dans tous les cas de figure, je recommande de ne plus utiliser cette arborescence pour la nouvelle installation, surtout si vous tournez sous Windows 10. Ne procédez donc plus à une installation automatique qui de nouveau, vous forcerait la main vers C:/Program Files/Soldier of Fortune II - Double Helix.

calendard.gif Création du répertoire principal SOF2

Créer un répertoire temporaire sur votre disque dur et décompacter les fichiers de SOF2 issus de vos CD d'origine. Si vous ne les avez plus, préférer des sources légales sur support commercial et non des sources douteuses piratées sur le net et parfois corrompues.

Sur la partition de votre choix créer un répertoire que vous baptiserez SOF2 et transférez les fichiers que vous venez de décompacter de votre répertoire temporaire vers le répertoire SOF2.

jaquette.jpg

Le répertoire SOF2 doit contenir à minima les répertoires et fichiers suivants:

sof2_rep.jpg

Le répertoire BASE doit contenir le répertoire et fichiers suivants:

base_rep.jpg

Le répertoire MP doit normalement être vide. Récupérez le fichier sof2key du répertoire MP de votre ancien répertoire de jeu "C:/Program Files/Soldier of Fortune II - Double Helix" et placez le dans le nouveau. 

Quant au répertoire PB, il ne présente pas un grand intérêt dans la mesure où la grande majorité des serveurs ne l'activent plus. Il ne sera donc pas nécessaire de l'installer

calendard.gif Création du répertoire propre au aux mode utilisé.

On ne s'intéressera qu'au plus utilisé. Mais bien entendu, tout autre mode verra une procédure d'installation identique.

Créer un répertoire FSMOD et y placer le fichier client fsmod_nw1.pk3

Pour d'autres modes il vous appartiendra de télécharger les fichiers client nécessaires sur le net et selon vos choix vous pourriez avoir un répertoire SOF2 ressemblant à l'arborescence suivante:

modes_rep.jpg

calendard.gif Premiers paramétrages

Avant d'attaquer il est bon de créer un raccourci du fichier sof2.exe depuis le répertoire principal d'installation SOF2 et de le déposer sur le bureau.

raccourci.jpg icone_raccourci.jpg

screen.png Lancer le jeu en cliquant sur le raccourci.

Effectuez les réglages de vos binds en affectant une action à une touche particulière. Réglez les sons et effets. Définissez vos paramètres video.

dep_controls.jpg

IMPORTANT: dans l'onglet NETWORK SETTINGS, sélectionnez principalement les options suivantes:

  • Rate: DSL
  • Max FPS: 115
  • Allow Download: No

no_download.jpg

Ce sont les critères minima indispensables pour accéder au serveur dans les meilleures conditions. RATE et FPS pourront être réglés ultérieurement à des valeurs plus élevées. Pour mémoire l'option DSL correspond à un rate de 9000, généralement très insuffisant pour l'ADSL.

Ce premier lancement générera le fichier sof2mp.cfg, chargé de mémoriser tous vos réglages. Attendu que vous n'avez pas encore connecté un serveur, sof2mp.cfg sera uniquement stocké dans le répertoire MP.

mp_rep_sofcfg.jpg

suivant.gif Connectez un serveur, le mien par exemple. Vous vous apercevrez que l'affreuse couleur verte originelle de SOF2 laissera place à la nouvelle interface bleue de mon mode, attestant de votre arrivée sur mon serveur. Comme il s'agit de FSMOD, un fichier sof2mp.cfg sera également créé dans votre répertoire FSMOD et sera identique à celui précédemment généré dans le répertoire MP.

Il en sera de même si vous connectez ensuite un serveur ROCmod ou tout autre serveur exploitant un mode différent. Il y aura au final un même fichier sof2mp.cfg dans chaque répertoire afférent à un mode différent.

A ce stade on peut considérer que SOF2 est opérationnel et ne devrait plus présenter de problèmes. Vous pouvez connecter les serveurs et leur mode associé en toute quiétude. Cependant on va continuer par quelques compléments et améliorations.

calendard.gif  autoexec.cfg et fichiers annexes

Personnellement je ne souscris guère au fait que SOF2 enregistre les réglages en cours de jeu et les mémorise dans un fichier sof2mp.cfg. Ce fichier est volatile par nature dans la mesure où seul SOF2 peu le générer et le modifier. A qui n'est-il pas déjà arrivé de perdre tous ces réglages suite à un plantage du jeu. L'idéal est de pouvoir conserver ces propres références dans des fichiers incorruptibles et de pouvoir les appeler à tout moment.

Principe:

Vous créez un fichier autoexec.cfg placé dans votre répertoire MP.

Vous créez dans autoexec.cfg un fichier principal cfg.txt

Vous recopiez dans cfg.txt tout le contenu de votre fichier sof2mp.cfg.

A chaque lancement de SOF2 le fichier autoexec.cfg sera lu et le fichier cfg.txt exécuté. Si vous perdez vos données en cours de jeu ou si vous vous êtes un peu perdu dans leurs valeurs, il suffit de se reconnecter et toutes vos valeurs seront récupérées.

D'autres fichiers txt pourront être créés, chacun ayant une attribution particulière dans la gestion des paramètres, comme les sons, les mouvements, etc.

L'avantage de ses fichiers est qu'il permet de créer sur plusieurs lignes de véritables instructions sous forme de routines alors que les simples fichiers sof2mp.cfg n'autorisent qu'une ligne par instruction.

calendard.gif Les sons

Cette installation ne serait pas complète sans la gestions des binds affectés aux sons.

Le manager de serveur ou le leader d'un clan digne de ce nom propose généralement un pack renfermant des sons sous la forme d'un fichier pk3. Après téléchargement sur le site ou forum dédié ce fichier pk3 sera installé dans le répertoire du mode.

calendard.gif Les maps

Tel que votre SOF2 est configuré vous ne pourrez accéder qu'aux serveurs qui tournent sous des maps MP ou SP standard.

Si vous désirez d'autres maps il faudra les installer dans le répertoire BASE de votre SOF2.

Attention toutefois à ne pas y déposer trop de maps au risque de planter votre jeu. Faîtes le ménage de temps en temps et ne laissez que celles proposées dans le cycle du serveur.

calendard.gif Les cochonneries annexes

On terminera par ce qui représente le plus souvent l'origine de votre problème, j'ai nommé les fichiers addons pk3 dont raffolent certains joueurs pour agrémenter et RALENTIR leur jeu, sensés offrir certains effets visuels et sonores. Le net en regorge sans compter les scripts douteux pouvant parfois s'apparenter à de la triche.

A proscrire systématiquement !

Ah, un dernier point, les fichiers PK3 sont à installer et à utiliser en l'état. NE PAS LES DECOMPACTER DANS LE JEU.

Bon courage

-=biggrin=-

Publié le 05/02/2019 16:57  Prévisualiser...   Imprimer...   Haut
Fichiers arena  -  par FSMOD
FICHIERS ARENA

suivant.gif  Il vous est peut-être arrivé de voir ce genre d'information dans votre console sans avoir pu identifier la commande qui en est à l'origine.
Ce problème m'est arrivé récemment et bien qu'il ne semblait pas influencer le jeu, j'ai quand même voulu en connaître la cause. En aucun cas j'ai soupçonné un bug inhérent à ma version client FSMOD, dans la mesure où il est apparu bien après son installation. Malgré tout j'avoue avoir longtemps cherché avant de mettre le doigt sur l'avarie.

console.jpg


La première ligne Missing { in info file m'a déjà permis, dans une première approche, d'être convaincu que le problème se situait dans un fichier texte dans lequel une accolade ouvrante ({) faisait défaut. Restait juste à trouver lequel parmi les centaines qui trônent dans SOF2.

Par un coup de chance j'ai pu constater que ces informations apparaissaient en console uniquement lorsque j'activais les onglets Admin ou Vote dans le bandeau de menus.

menu.jpg


Chaque onglet appelant un fichier menu spécifique, j'ai donc cherché un élément commun présent dans les fichiers ingame_sysop.menu et ingame_callvote.menu.

J'ai retenu la ligne uiScript loadVoteArenas.

Et une certaine lumière m'est apparue, non pas celle de la vierge, mais plutôt la petite luciole interne qui s'exclame par un "Bon dieu mais c'est bien sûr".
Ce script permet d'extraire les informations contenues dans le fichier arena encapsulé dans le fichier pk3 de chaque map. Ces informations autorisent ensuite l'affichage sous forme de liste, des maps contenues dans le répertoire BASE du client.

Donc l'erreur se situait dans plusieurs fichiers arena. Je dis plusieurs car je me suis rendu compte par la suite que les 3 lignes
Unexpected end of info file qui apparaissaient dans ma console, concernaient 3 maps. Sur les 350 que j'héberge sur mon ordi je m'estimais heureux de n'avoir que 3 canards boiteux.smile

Comme je le répète, ces erreurs n'ayant aucune incidence sur le jeu, je me suis juste amusé a chercher une map qui présentait un tel défaut.

Et j'ai trouvé celle ci :
mp_ics-02.pk3


Inspection avec Pakscape:

infofile1.jpg



En éditant le premier fichier ics_bank2.arena, j'ai découvert cette horreur:

infofile2.jpg

On s'aperçoit qu'il y a 2 accolades fermantes mais une seule ouvrante., or je rappelle qu'il doit toujours y avoir autant d'ouvrantes que de fermantes.
Le concepteur de cette map a vraisemblablement connu un moment d'égarement car le libellé convenable doit être le suivant:

{
map "ics_bank2"
longname "ICS - Bank of France"
type "dm tdm elim inf ctf dem"
}


J'ai abandonné la recherche des 2 autres maps car beaucoup trop fastidieux.

suivant.gif  Un autre cas très intéressant est celui de la map mp_farm dont un ami m'a informé du problème rencontré. Alors qu'il sollicitait une action sur les bots par le biais de l'onglet Admin, le CVAR évoqué plus haut uiScript loadVoteArenas inscrit dans le fichier ingame_sysop.menu lui retourna en console le groupe suivant :

mp_farm_cons.jpg

Cette information révèle 2 problèmes dans le même fichier arena:

  1. Il manque une accolade ouvrante : missing {
  2. Le fichier arena lui-même présente une taille prohibitive pour le système

Si l'erreur N°1 peut être facilement interprétée on peut s'interroger sur la taille du fichier qui normalement ne dépasse guère 5 courtes lignes.

Après décompactage du fichier mp_farm.pk3 le répertoire scripts nous livre entre autre, le fichier arena

script_rep.jpg

Et la surprise est de taille à l'ouverture du fichier mp_farm.arena avec un simple éditeur de texte:

word_txt.jpg

EXPLICATION: Le créateur de la map a tout simplement écrit le fichier sous Word, l'a sauvegardé dans l'extension doc propre à ce pur produit Microsoft puis l'a renommé en extension arena. Et le tour fut joué !

Grossière erreur alors que le libellé correct dans un vrai fichier texte renommé en extension arena aurait du être de la forme suivante:

{
map "mp_farm"
longname "Farm Manor"
type "dm tdm elim inf "
}

suivant.gif  En résumé, ces erreurs d'écriture ne présentent pas pour la plupart, des conséquences rédhibitoires, voire critiques pour le système mais peuvent certainement engendrer des doutes, à juste titre, dans l'esprit de leur utilisateur.

Tout de même on peut s'interroger sur la compétence de certains concepteurs de map qui, malgré d'évidentes aptitudes à l'art graphique et à l'imagination picturale, n'en demeurent pas moins de piètres codeurs dans de simples scripts dédiés.


-=eek=-
Publié le 05/02/2019 16:29  Prévisualiser...   Imprimer...   Haut
Masterserver  -  par FSMOD
Panne du Masterserver

Ravensoft, créateur de SOF2, a déjà plusieurs fois par le passé, suspendu l'hébergement du jeu sur son serveur maître, pour des raisons jamais évoquées. Il est fort probable que cela se reproduira encore dans le futur pour peut-être aboutir un jour, à une mort définitive. Ne pas oublier, à l'heure où je rédige ces lignes que SOF2 entre dans sa 17ème année.

La conséquence fâcheuse de cette avarie entraine une liste vide sur votre SOF client si d'aventure, vous effectuez un rafraîchissement ou une nouvelle recherche de serveurs. Et c'est sans espoir de les récupérer tant que Ravensoft n'a pas décidé de relancer son Masterserver.

Pour pallier à ce problème et conserver votre précieuse liste de serveurs et des favoris associés, il suffit au préalable, d'effectuer une sauvegarde du fichier servercache.dat qui se trouve dans le répertoire principal SOF2. Bien entendu, comme il n'y a aucun préavis de la part de Ravensoft, il est nécessaire d'effectuer cette sauvegarde le plus tôt possible et de la conserver dans un répertoire spécifique.

NOTA : Le fichier servercache.dat, de type binaire, présente toujours le même poids (496k) quelle que soit la liste des serveurs, vide ou pleine.

Durant la panne de Ravensoft, il suffit de remplacer l'ancien servercache.dat par votre sauvegarde et vous récupérerez ainsi tous vos serveurs.

Bien entendu les serveurs streamés par Gameserver seront toujours visibles sur le net, et si vous avez définitivement perdu votre servercache.dat, il vous restera toujours la possibilité de saisir les IP dans vos favoris.


 
-=smile=-
Publié le 05/02/2019 16:28  Prévisualiser...   Imprimer...   Haut
r_gamma  -  par FSMOD
Erreur r_gamma


Il est parfois utile et judicieux, dès le lancement de SOF, d'ouvrir la console pour éventuellement y déceler des messages d'erreur.
Ils ne conduisent pas forcément à un plantage du jeu, mais la connaissance de leur origine et de leur remède peuvent vous prémunir d'avaries plus pénalisantes.

Le CVAR r_gamma en fait partie.

Si vous ouvrez votre console dès le lancement de SOF il peut vous arriver de lire ceci:

gamma.jpg


C'est la ligne SetDeviceGammaRamp failed qui retiendra notre attention.
Pour pousser plus loin le lever de doute, cliquez sur OPTIONS/MISC.SETUP et actionnez votre curseur BRIGHTNESS.

Ouvrez la console, vous devriez obtenir ce qui suit:

gamma2.jpg


La preuve est faîte, votre carte graphique ne supporte pas le réglage interne fixé par la valeur du CVAR r_gamma. En fait cette erreur apparaît dès que le r_gamma dépasse la valeur 1.
Or dans la majorité des cas, afin d'obtenir une image à la fois contrastée et suffisamment lumineuse, une valeur de 1.5 à 1.7 est couramment usitée.

Cette valeur est mémorisée dans votre fichier sof2mp.cfg du mod utilisé. Elle peut bien sûr et c'est préférable, être inscrite dans un fichier txt lancé par l'autoexec.cfg.
Dans les deux cas, comme cette valeur dépassant 1 est lue au démarrage de SOF, elle générera un message d'erreur.

Solution
Actualisez vos drivers vidéos et diminuez éventuellement vos réglages graphiques.

Si d'aventure il vous est impossible d'y porter remède par les simples moyens évoqués ci-dessus et pour éviter la survenue de problèmes bloquants, il est possible d'annuler l'action du r_gamma interne en créant ou modifiant la ligne suivante dans votre fichier de configuration:


seta r_ignorehwgamma "1"

La valeur 1 de ce CVAR inhibera le r_gamma, quel que soit son poids.
Les réglages de contraste et luminosité devront être exécutés directement sur le moniteur.

-=rolleyes=-
Publié le 05/02/2019 16:27  Prévisualiser...   Imprimer...   Haut
MAX_CVARS  -  par FSMOD
Erreur MAX_CVARS
 

cvar.jpg

Peut-être avez vous déjà eu cet écran d'erreur qui s'est affiché lors d'un passage d'un serveur à un autre. Cette avarie s'accompagnant parfois d'une altération du gamma de l'écran.

Ce problème m'est arrivé récemment lors de mes nombreux essais.

Après quelques recherches je suis arrivé aux conclusions suivantes:


 

Premier point, évitez de lancer trop de fichiers txt par le biais de l'autoexec.cfg, surtout si ces fichiers renferment des boucles VSTR relatives à des sons multiples.


C'est le cas lorsque vous affectionnez plusieurs serveurs et pour lesquels vous avez créé un fichier son pour chacun d'entre eux. Si les boucles VSTR sont trop longues (en gros plus d'une centaine de sons) le passage d'un serveur à l'autre ne permettra pas le vidage de la mémoire allouée à SOF et vous obtiendrez le message d'erreur.

Comme je l'ai déjà dit dans ma doc adoptez plutôt la méthode qui consiste à créer pour chaque serveur, son propre icône de lancement sur le bureau de votre ordi. Le passage d'un serveur à l'autre vous obligera à passer par le dit bureau et vider ainsi la mémoire avant la connexion à un autre serveur.



Deuxième point important toujours lié à la fréquentation de plusieurs serveurs, évitez de charger trop de maps dans votre répertoire BASE. Une centaine de taille moyenne est largement suffisant pour vous éviter une surcharge pondérale de la mémoire.
Faîtes le ménage de temps à autre pour vous débarrasser des maps inutiles, La fluidité de votre jeu n'en sera que meilleure.


 

-=smile=-
Publié le 05/02/2019 16:26  Prévisualiser...   Imprimer...   Haut
Favori  -  par FSMOD
Création d'un favori
 
Il vous est déjà arrivé peut-être de saisir directement dans l'interface dédiée à la création d'un serveur , l'IP et le port dudit serveur sans avoir  rencontré de difficultés.

La raison simple est que la ligne que vous avez entrée, ne dépassait pas 20 caractères.

Les concepteurs de SOF2 ont en effet pensé que certaines IP  ne pouvaient comporter  la totalité des caractères, soit 4 groupes de 3 digits.
J'avoue que leur processus intellectuel m'a échappé.

EXEMPLE:
essayez dans SOF2 d'origine, je dis d'origine car ma version a corrigé ce bug, de saisir les 21 caractères de l'IP suivant : 213.251.144.245:20200
Vous obtiendrez ceci :

 
createfav.jpg

La fenêtre noire, malgré sa bonne dimension, n'acceptera pas le dernier zéro du port.

Correction du bug

Il se situe dans le fichier createfavorite.menu, lui-même encapsulé dans le répertoire UI du fichier système mp.pk3.
 
  • Ouvrir createfavorite.menu
  • Rechercher l'extrait suivant :
     
menu.jpg
  • Modifier la valeur du CVAR maxchars et la fixer à 21.
  • Sauvegarder.

Facile non ?

-=smile=-
Publié le 05/02/2019 16:25  Prévisualiser...   Imprimer...   Haut
CL_ParsePacketEntities  -  par FSMOD

CL_ParsePacketEntities

suivant.gif SYMPTOME

Le joueur reçoit ce message "CL_ParsePacketEntities: end of message" et se retrouve déconnecté du serveur.

suivant.gif ORIGINE

Ce message est retourné systématiquement lorsqu'il existe une non-concordance entre les données transmises par le serveur et leur interprétation par le client.  Il peut s'agir de données incomplètes ou totalement perdues dont les répétitions amènent à la saturation des scripts de calcul du client et partant, sa déconnexion précédée du message d'erreur.

Le terme évoqué de "données" est en fait, l'encapsulage des différents instantanés (snapshots) échangés et interprétés par le serveur et le client. J'ai d'ailleurs développé ce concept dans ma rubrique "Le CVAR cl_timenudge" que je vous invite à compulser.

Par ailleurs, il convient de remarquer que le traitement de l'incohérence de transfert de données serveur/client est dévolu au fichier sof2mp.exe et qu'il est totalement indépendant du mode exploité. Ne pas oublier que d'autres jeux utilisent le même moteur que SOF2, à savoir Quake3 et qu'en conséquence ce message est parfaitement connu sur d'autres théâtres d'opérations.

Pour terminer ce préambule et pour ceux qui pratiquent un peu le code voici un extrait des sources de Quake3 qui montrent bien la fonction chargée de l'analyse des checksums d'instantanés consécutifs (snaphots).

packet.jpg

suivant.gif CAUSES

Elles sont multiples et pas toujours très évidentes à cerner. Voici les points à vérifier ou à améliorer.

suivant_n.gif  Vérifier que votre carte réseau est à jour de ces pilotes. Dans le cas contraire une petite mise à niveau sur le site du constructeur n'est pas  inutile. Si vous avez une vieille carte à 10 Mbit/s, jetez-la. Une carte à 100 Mbit/s est suffisante mais une carte à 1 Gbit/s est toujours bonne à prendre

suivant_n.gif  Vérifier que le débit ADSL et votre PING sont stables dans le temps. Des fluctuations peuvent induire des pertes de données. Evitez bien entendu de télécharger des vidéos tout en jouant.

suivant_n.gif Assurez vous d'exploiter les mêmes versions de maps customisées que le serveur. Il est impressionnant de constater le nombre de maps trafiquées dont regorge le net. Si votre manager propose des packs, téléchargez les, cela sous entend que ces maps seront installées sur le serveur et qu'en conséquence vous utiliserez les mêmes versions. Il faut garder présent à l'esprit qu'une légère modification volontaire ou non dans une map modifie son checksum, et les snapshots n'auront pas la même valeur d'où génération d'une incohérence.

suivant_n.gif Effacer tous les éventuels fichiers PK3 que vous auriez installés dans vos répertoires BASE, MP ou ROCMOD. La plupart de ces fichiers, sensés personnaliser votre mode par des effets sonores ou visuels sont parfaitement inutiles et visibles que de vous même. Leur accumulation parfois conflictuelle entre eux mêmes est souvent la source d'une occupation mémoire prohibitive pour la fluidité du jeu.

suivant_n.gif Vérifier le CVAR com_hunkMegs dans votre fichier de configuration. Une valeur de 256 est suffisante dans la plupart des cas mais 512 peut se révéler plus adéquat dans certaines maps importantes.

suivant_n.gif Il est possible qu'à l'instant où vous avez reçu le message d'erreur, le serveur ait connu une période de "stress", entrainant des latences fugaces de nature à tronquer quelques envois de données. Là, vous n'y pourrez rien évidement et il faudra attendre des jours meilleurs.

suivant_n.gif Selon une note informative de RAVEN, l'éditeur originel du jeu, il est indiqué que l'usage d'un fichier sof2mp.exe craqué ou d'un fichier NO-CD pourrait être de nature à générer l'erreur. Personnellement je n'y crois guère et j'ai une raison bien personnelle qui m'interdit de souscrire à cet avertissement.

-=cool=-

Publié le 05/02/2019 16:24  Prévisualiser...   Imprimer...   Haut
Création - Modifications  -  par FSMOD
Création et intégration de polices de caractères

 
 
Ce sujet porte essentiellement sur l'ajout de nouvelles polices de caractères dans le fichier client pk3.

J'évoquerai bien entendu ma propre version mais cette méthode reste applicable à toute autre version.


 
fin.gif  Utilisation de l'outil FontCreator  

Dans ma section DOWNLOAD importez le fichier FontCreator.rar.
Après décompression vous obtenez le répertoire FontCreator avec le contenu suivant:
 
repfont.jpg

Le répertoire tempo contient ceci:

 
reptempo.jpg

On peut conserver son contenu si la police arial vous intéresse sinon vous pouvez effacer les 3 fichiers. Le répertoire tempo est destiné à la fois à héberger les polices True Type (TTF)  issues de Windows que vous aurez choisies et également à recevoir les fichiers .fontdat et .png issus de leur transformation suite au lancement du fichier go.bat.
 
Editez le fichier go.bat

 
bat.jpg

 
Pour modifier son contenu il est indispensable de bien comprendre son action.
La ligne de commande s'explique comme suit :
On lance l'exécutable font, il crée à partir du fichier arial.ttf situé dans le répertoire tempo, un groupe de fichiers ayant pour racine le nom arial, avec une taille de 24 pixels et les place dans le répertoire tempo. Ce groupe est composé des fichiers arial.png et arial.fondat comme évoqué précédemment.




fin.gif  Importation de nouvelles polices


Ouvrez votre répertoire fonts de Windows et copier les polices ttf que vous affectionnez, puis collez les dans le répertoire tempo de FontCreator. A noter que vous pouvez également choisir d'autres polices que celles natives de Windows. Personnellement je penche pour le site suivant dafont.com

Voici un exemple du répertoire tempo avec un nouveau contenu de polices sélectionnées. On considère que les fichiers qu'il contenait auparavant et qui ont servi à la compréhension de l'outil FontCreator, ont été effacés.
 
reptestnew.jpg

 
Ouvrez le fichier go.bat

Pour créer ces 6 polices vous pouvez écrire soit une ligne à la fois pour chaque police et lancer ainsi 6 fois go.bat ou bien écrire 6 lignes de commande et lancer une seule fois go.bat.
C'est la dernière option que je présente ci-après


 
batnew.jpg


Après exécution de go.bat on obtient ceci dans le répertoire tempo:
 
reptestfinal.jpg




fin.gif  Migration des nouvelles polices  

 
Tout ce qui a été évoqué précédemment n'avait pour but que de mettre en évidence les fonctions de FontCreator. Dans la pratique il sera inutile d'utiliser autant de polices.
Comme fixé en intro je me bornerai à prendre pour exemple ma version client ROCMOD 2.2v.
A l'aide de PAKSCAPE, ouvrez le fichier rocmod_2.2v_client.pk3.
Ouvrez le répertoire fonts
Du répertoire tempo de FontCreator nous ne retiendront que la police Comic
Copier les fichiers comic.fondat et comic.jpg et les coller dans le répertoire fonts. Ne pas prendre le fichier ttf.

Sauvegarder
Nota: les polices fs et ft toujours présentes dans ma version ne sont pas utilisées. Elle ont servi à des tests.

fontpk3.jpg

A ce stade, certaines précisions s'imposent.
La police originelle de SOF2 baptisée HUD est déclarée dans le fichier système therest.pk3 comme le montre la capture suivante.
On y retrouve bien les 2 fichiers associés, à savoir le fichier directeur hud.fondat ainsi que la fichier image hud.png.
A noter que cette police est vraiment horrible.

hudtherest.jpg
Cette police est omniprésente. Elle est dispensée dans les textes générés par le serveur comme le chat et les diverses annonces, mais aussi dans les textes des menus fixes et déroulants des différents panels de contrôle.
J'ai donc créé une nouvelle police nommée fin qui apparait dans toutes les configurations précédentes.
Concernant les textes émis par le serveur cela n'a posé aucun problème, toutefois au niveau des textes encapsulés dans les différents fichiers du répertoire UI, il a été nécessaire de recoder toutes les lignes originelles textfont "hud" en textfont "fin" comme l'illustrent les 2 captures suivantes

ui.jpg
textfont.jpg

 fin.gif  Vos modifications  

 
Si vous désirez effectuer vos propres modifications nous allons envisager 2 cas de figure principaux:
1 - Changement total de la police fin
C'est le cas le plus simple. Dans le répertoire fonts du fichier client rocmod_2.2v_client.pk3 , il suffit d'effacer les fichiers fin.fontdat et fin.png et de renommer respectivement les fichiers comic.fontdat et comic.png en fin.fontdat et fin.png puis sauvegarder. Désormais tous les textes émis par le serveur ainsi que les textes affichés dans les différents panels de contrôle seront de la forme comic.
Bien entendu toute autre police de remplacement aurait suivi la même procédure.

2 - Changement partiel de la police fin
Vous envisagez de garder la police fin uniquement pour les annonces serveur mais vous voudriez personnaliser les textes visibles dans les différents panels de commandes.
Il convient dès lors d'ouvrir chaque fichier en extension menu encapsulé dans le répertoire ui du fichier rocmod_2.2v_client.pk3 et pour chaque groupe itemDef remplacer la ligne textfont "fin" par la ligne textfont "comic"
Comme précédemment toute autre police est possible.
Vous pouvez même faire un panachage de différentes polices au sein même des fichiers *.menu. En cette occurrence il suffira d'intégrer plusieurs polices de votre choix dans le répertoire fonts

Je rappelle que PAKSCAPE ne peut sauvegarder un fichier dans sa propre interface. Il convient au préalable de le copier sur le bureau ou dans un autre dossier, d'effectuer la modification, de le sauvegarder puis de le réintégrer dans la fenêtre de PAKSCAPE. Effectuer au final une sauvegarde générale en cliquant sur l'icône disquette.



Voici l'aspect d'un onglet de l'interface ADMIN de ma version doté de la police comic_sans_ms

sysop.jpg


 
La taille des polices devra bien sûr rester en adéquation avec les cadres dans lesquels elles s'inscrivent. Je rappelle que cette taille est définie en pixels par une valeur numérique dans le fichier go.bat de FontCreator. (voir plus haut).
Des valeurs comprises entre 18 et 24 donnent en général de bons résultats.

A remarquer également que certaines polices ne restitueront pas toujours des caractères comme le tilde, les crochets, les apostrophes etc...

-= eek =-
Publié le 02/02/2019 19:33  Prévisualiser...   Imprimer...   Haut
Rubriques

Vous êtes ici :   Accueil » Documentation