Recherche
 
Fermer
Documentation
Toutes les pages
Les couleurs  -  par FSMOD
LES BINDS - COULEURS

Les textes diffusés dans les binds ainsi que les pseudos peuvent être agrémentés de différentes couleurs. Pour ce faire il suffit d'apposer avant la lettre ou le groupe de lettres un caractère du clavier, lui même précédé du symbole ^.

Le tableau ci-contre représente les couleurs obtenues en fonction des caractères saisis. A remarquer que certains caractères dispensent des couleurs identiques. Préférez toutefois les lettres et chiffres aux autres caractères, lesquels créent parfois des surprises.
Afin d'éviter des saisies fastidieuses on peut avoir recours à des petits logiciels.

Pour ma part mes préférences vont à Infrequents Names Editor

pavcouleurs.jpg


Le pseudo est renseigné dans le fichier sof2mp.cfg. Il est appelé par la commande seta name et doit être placé entre guillemets. Considérons le joueur Hell Angel sous différents aspects de couleurs.

Saisi dans sof2mp.cfg Affichage dans le jeu
   seta name "Hell Angel" hellblanc.jpg
   seta name "^nHel^El An^Kgel" hellvert.jpg
   seta name "^1H^7e^1l^7l^E ^1A^7n^1g^7e^1l" hellrb.jpg

Quant aux textes, ils seront simplement élaborés sur le même principe que le pseudo mais il seront simplement "bindés" à une touche. Comme nous l'avons vu dans l'onglet sons, ils pourront être ajoutés à un son et éventuellement pourront appeler un token.

A ce propos je rappelle que les couleurs fixées dans le texte qui accompagne le son dans le fichier voicecmds.cfg côté serveur, ne peuvent être modifiées par le joueur. Par contre il vous est toujours possible de rajouter du texte avec des couleurs de votre choix. Reprenons le groupe son/texte numéro 8 du fichier voicecmds.cfg et considérons que l'Admin du serveur ait mis de la couleur dans le texte comme suit:

 

 8 sound "sound/npc/col8/blakely/yeah.mp3"

 8 text "^9Y^yeah!"
 


Si vous avez bindé le numéro 8 par la touche F1 dont je rappelle la syntaxe:

bind F1 "say @8"

Lorsque vous presserez la touche F1 le texte suivant apparaîtra:

yeah.jpg


Si vous modifiez votre bind en ajoutant votre propre texte en couleurs de la manière suivante:

bind F1 "say @8   ^TGO^zOD ^:GA^kM^7E"

En pressant la touche F1 voila ce qui apparaîtra à l'écran:

gg.jpg


Si vous ne voulez pas afficher les textes du fichier voicecmds.cfg mais afficher votre propre texte tout en générant le son, il suffit de remplacer l'arobas par le "et" commercial (&) ou esperluette pour les puristes.

bind F1 "say &8   ^1 I am Happy"

En pressant la touche F1 le son "Yeah!" sera émis et voilà ce qui s'affichera:

modgg.jpg




Réticule de visée (crosshair)

Le crosshair par défaut est blanc. Pour changer sa couleur, il suffit d'ouvrir le fichier sof2mp.cfg et de repérer la ligne suivante:

seta cg_crosshairRGBA "1,1,1,1"


Les 4 caractères numériques définissent la couleur. Ils peuvent prendre des valeurs décimales. Plus précisément les 3 premiers sont affectés à la couleur et le dernier fixe le degré de transparence (0 = transparent, 1 = opaque). Malgré l'appellation RGBA, il s'agit en fait du code de couleurs RWX.

Le tableau ci-dessous résume quelques nuances qui devraient largement suffire pour agrémenter votre crosshair . Nous verrons dans un autre volet le moyen de changer cette couleur rapidement par un bind.

Attention aux points et aux virgules !

 1,1,0,1  0,0,1,1  0,1,1,1  1,1,1,1
 1,0.8,0,1  0, 0.8, 0,1  0,0.8,1,1  0,0,0,1
 1,0.6,0,1  0.2,0.6,0,1  0,0.6,1,1  1,0,1,1
 1,0.4,0,1  0.2,0.4,0,1  0,0.4,1,1  1,0,0.6,1
   1,0.2,0,1  0.2,0.2,0,1  0,0.2,1,1  1,0,0.4,1
 1,0,0,1  0,0.2,0,1  0,0,1,1  1,0,0.2,1
 0.8,0,0,1  0,0.2,0.2,1  0,0,0.6,1  0.6,0,0.4,1


A noter également la ligne suivante:

seta cg_crosshairFriendRGBA "1,0,0,1"

qui fixe la couleur du crosshair lorsque votre ligne de mire passe sur un équipier en mode team. Elle est paramétrée ici en rouge par défaut.

 
-=smile=-
Publié le 05/02/2019 17:30  Prévisualiser...   Imprimer...   Haut
Généralités  -  par FSMOD
LES BINDS - GENERALITES

Bind est un terme qui revient souvent dans SOF2, aussi convient-il de bien saisir son utilité.

Lorsque vous avez paramétré la première fois votre jeu à l'aide des interfaces de commande, vous avez créé sans le savoir, des binds, autrement dit, vous avez affecté à une touche du clavier une action bien précise. Ces paramétres ont été inscrits dans le fichier sof2mp.cfg du répertoire MP à défaut des répertoires propres aux modes.

 
controls.jpg

 
 
Ainsi dans l'extrait du fichier sof2mp.cfg ci-contre, on voit  que l'action de se déplacer vers la gauche a été affectée à la touche a, l'action de s'accroupir à la touche c, etc.. A noter que les fichiers cfg s'ouvrent et se modifient avec un simple éditeur de texte.

   bind a "+moveleft"
   bind c "+movedown"
   bind d "+moveright"
   bind e "+leanright"
   bind q "+leanleft"
   bind r  "+reload"

 


REMARQUE IMPORTANTE

Les commandes de SOF2 sont basées sur le clavier QWERTY (anglais). En l'occurrence, dans l'exemple précédent, le déplacement latéral gauche, affecté dans le programme à la touche A, correspond en fait à la touche Q du clavier AZERTY (français). Eh oui, les anglo-saxons nous compliquent la tâche.  Pour vous aider voici 2 vues comparatives des 2 types de clavier. Vous jouez sur le clavier de gauche, vous penserez bind sur le clavier de droite. Pratiquement toutes les touches peuvent être bindées.

azerty.jpg  qwerty.jpg


Voici les principales touches qu'il est possible pour la plupart de binder ainsi que leur code pour le fichier sof2mp.cfg.

 Touches de fonctions  Pavé numérique
 Touche Code  Touche  Code
 F1 à F12  F1 à F12  0  KP_INS
 1  KP_END
Touches numériques   2  KP_DOWNARROW
 Touche  Code  3  KP_PGDN
 0 à 9 0 à 9  4 KP_LEFTARROW
 5  KP_5
  Lettres  6  KP_RIGHTARROW
 Touche  Code  7  KP_HOME
 A q  8  KP_UPARROW
 B  b  9  KP_PGUP
 C  c  /  KP_SLASH
 D  d  *  *
 E  e  -  KP_MINUS
 F  f  + KP_PLUS
 G  g  .  KP_DEL
 H  h  Entr  KP_ENTER
 I  i
J j Navigation 
K k  Touche Code
 L  l  Inser INS
 M  SEMICOLON  Orig  HOME
 N  n  Pg.Préc  PGUP
 O  o PG.Suiv  PGDN
 P  p  Fin  END
 Q  a  Suppr  DEL
 R  r
 S  s Souris
 T  t  Touche Code
 U  u  Bouton Gauche MOUSE1
 V  v Bouton Droit  MOUSE2
 W  z Appui Roulette  MOUSE3
 X  x  Roulette UP MWHEELUP
 Y  y Roulette DOWN  MWHEELDOWN
 Z  w NB: Certaines souris possèdent des boutons supplémentaires qui prendront les codes suivants: MOUSE4, MOUSE5, etc....
  
  Autres
 Touche Code
Ret.Arr  BACKSPACE Direction
Maj  SHIFT Touche Code
Alt  ALT  Flèche haut UPARROW
 Ctrl  CTRL Flèche bas DOWNARROW
 Barre Espace  SPACE Flèche gauche LEFTARROW
 Entr  ENTER Flèche droite  RIGHTARROW 


Il convient de noter les points suivants:

  • Un seul code est délivré par touche quel que soit l'état de CAPSLOCK. Toutefois, en fonction chat, les chiffres ne peuvent être affichés que par l'action de SHIFT + touche numérique.
  • Les touches Entr du clavier principal et du pavé numérique ne délivrent pas le même code.
  • La touche ECHAP est réservée à la sortie de jeu.
  • La touche ² est réservée à l'ouverture/fermeture de la console.
  • La touche Alt Gr a la même action que Ctrl (code de sortie CTRL).
  • La touche * est essentiellement réservée au type de tir, BURST, SINGLE et AUTO.

Binds multiples


Le paramétrage par le biais de l'interface n'attribue qu'une action et une seule à une touche. Il est toutefois possible d'effectuer plusieurs actions avec une seule touche. Ainsi dans l'exemple suivant, la touche f permet de s'abaisser et de se pencher à droite en même temps et la touche s de s'abaisser et de se pencher à gauche en même temps. Notez la syntaxe, les instructions doivent être séparées par un point-virgule et mises entre guillemets.
 
 
  bind f  "+movedown;+leanright"
  bind s  "+movedown;+leanleft"

 

Pour obtenir un tel résultat il est donc nécessaire d'ouvrir le fichier sof2mp.cfg et d'entrer ces codes manuellement. Nous verrons dans un autre sujet, qu'il est plus judicieux et parfois obligatoire, d'écrire les binds dans un fichier annexe. Des essais m'ont permis d'appréhender les limites de ces actions conjuguées qui parfois, ne donnent pas l'efficacité attendue en terme de vélocité.

Considérons l'exemple suivant:

 
 
  bind e "+moveright;+leanright"
  bind q "+moveleft;+leanleft"

 

Quand on appuie sur la touche e on se déplace à droite tout en s'inclinant du même côté. La même association pour la gauche est affectée à la touche q. Toutefois le déplacement latéral est beaucoup moins rapide que si la seule action moveright ou moveleft avait été programmée. Vous objecterez que c'est normal car courir de côté tout en se penchant n'est pas une opération facile même pour un nommé MULLINS LOL ! En tout cas l'effet d'esquive qui découle de cette action peut en surprendre plus d'un.

Un autre exemple:

 
 
  bind e "+moveright;+leanright;+movedown"
  bind q "+moveleft;+leanleft;+movedown"

 

Ca se complique! Aux actions précédentes on ajoute maintenant celle de s'abaisser. La vitesse de ce mouvement global est quasiment la même que précédemment mais l'esquive est encore meilleure. On s'arrêtera à 3 actions de mouvements simultanés car au-delà le résultat n'est plus guère intéressant.

Sans entrer dans les arcanes de la programmation, le signe plus devant chaque instruction veut dire que tant que la touche est pressée le mouvement continue. Ainsi dans l'exemple absurde qui suit, rien ne se passe attendu que les 2 actions s'annulent:

 
 
  bind e "+movedown;-movedown"

 

Si l'on introduit une constante de temps wait entre 2 actions il peut se passer des choses surprenantes.

Si l'on considère l'exemple qui suit:


 
 
  bind e "+movedown;wait 10;-movedown"
 

le mouvement va se décomposer comme suit:

abaissement puis attente de 10 millisecondes puis relèvement. La touche e étant toujours pressée, l'action va reprendre depuis le début, abaissement puis attente et c'est là que ca va se compliquer car la constante wait va être multipliée par le temps durant lequel la touche e sera pressée. Cela va se traduire par un blocage en position abaissée même si l'on relache la pression sur e. Ce blocage s'annulera quand le produit temporel sera écoulé. Un choix subtil des actions et des constantes de temps permet certains résultats sympas comme le grand saut par exemple.

Pour les non-anglicistes voici la traduction des principales actions:

 
speed courir
back reculer
moveleft déplacement latéral gauche
moveright déplacement latéral droit
moveup sauter
movedown s'accroupir
leanleft se pencher à gauche
leanright se pencher à droite
reload recharger
attack tirer
altattack utilisation secondaire arme (lunette, baïonnette, coup de crosse)
forward avancer
screenshot capture écran


Un dernier truc...

Il existe une manière rapide de créer ou modifier un bind pendant le jeu. Il suffit d'ouvrir la console par la touche ² et de saisir le code. Dans l'exemple ci-contre j'ai saisi la ligne suivante:

bind q +moveleft

L'action moveleft a été affectée à la touche a du clavier. La ligne de code a été inscrite dans le fichier sof2mp.cfg.

Les binds multiples ne sont pas possibles par cette méthode.
bindconsole.jpg

-=mad=-

Publié le 05/02/2019 17:28  Prévisualiser...   Imprimer...   Haut
Principe  -  par FSMOD
 RMG

Il existe une option intéressante sur SOF2 qui est la génération aléatoire de map ou Random Map Generated.
Elle a connu ses heures de gloire sous la version 1.01 de SOF mais avec l'avènement de la version gold ou 1.03 il semble qu'elle soit un peu tombée dans l'oubli ou dédaignée par de nombreux sysops.


Principe:

A l'opposé des maps traditionnelles standards ou autres qui doivent êtres identiques et installées à la fois sur le serveur et chez le client, les maps RMG n'existent pas physiquement tant sur le serveur que chez le client.
Leur création est générée par le serveur lui-même grâce a 4 paramètres fixés dans le fichier mapcycle ou éventuellement saisis par l'admin dans la ligne de commande en mode console. Une même map générée plusieurs fois ne présentera pas le même aspect.
En fait le programme crée un terrain aléatoire avec creux et bosses et y place au hasard des batisses, arbres,rochers, clôtures, murs, caisses etc..., et les bots bien entendu. Pour ces derniers il convient de préciser qu'ils restent fixes compte tenu de leurs points de respawn totalement aléatoires.
 

Les paramètres sont codés de 1 à 4 comme suit :

  • 1 - Taille de la map ( small ou medium)
  • 2 - Situation géographique (jungle, hills, snowy ou desert)
  • 3 - Moment (morning, day ou night)
  • 4 - Seed : il s'agit d'un groupe de lettres et de chiffres fantaisistes qui introduisent un algorithme dans le calcul pouvant aboutir à des résultats surprenants. Ces paramètres ne sont pas obligatoires.


Seule contrainte, le serveur passe automatiquement en mode PURE lorsque le mode RMG est activé.
Cela signifie que le client doit avoir la même version que le serveur, en l'occurrence les mêmes fichiers PK3.

Les maps générées nécessitent de bonnes cartes graphiques. Toutefois leur sollicitation est atténuée dans la mesure où les algorithmes de résolution introduisent  un effet brouillard qui permet de limiter les calculs de rendu, en estompant l'horizon.

Si vous avez une RAM suffisante sur votre ordi n'hésitez pas à augmenter la taille allouée à SOF2.
Pour ce faire, dans votre fichier de configuration (sof2mp.cfg ou tout autre fichier personnalisé), recherchez la ligne:

seta com_hunkMegs "256"

et affectez lui une valeur de 256 voire 512.



Bien entendu les maps RMG peuvent être paramétrées dans un fichier mapcycle hébergé par le serveur, au même titre que toutes les autres maps, et se succéder ainsi automatiquement au cours du jeu. Il suffira simplement d'indiquer les 4 paramètres précédemment cités, dans chaque map.

Pour les curieux, voici un exemple qui génère une petite map, dans le décor de GRASSYSHILL, de jour, sans paramètre SEED. L'instruction g_motd affiche simplement un texte informatif au lancement de la carte:

 

 
  rmgmap 1 small 2 grassyhills 3 day 4 ? 0
  g_motd "RMG Grassyhills by day"

 



Un autre exemple présentant une map moyenne, décor de JUNGLE, de nuit, sans paramètre SEED


 

  rmgmap 1 medium 2 jungle 3 night 4 ? 0
  g_motd "RMG Jungle by night"

 



Et pour terminer 4 vues des décors disponibles avec RMG:
  DESERT  
desert.jpg

  GRASSYHILLS  
hills.jpg

  SNOWY  
snow.jpg

  JUNGLE  
jungle.jpg

 


-=cool=-
Publié le 05/02/2019 17:26  Prévisualiser...   Imprimer...   Haut
Comment ça marche  -  par FSMOD
LE LAGOMETRE


Le lagomètre est un petit scope qui peut être affiché pendant le jeu, dans la partie inférieure droite de votre moniteur. Son CVAR est cg_lagometer. Il fournit essentiellement des informations relatives à la qualité de votre connexion sur un serveur, ainsi que la cohérence de vos paramètres.
 
complet.jpg

Vous pouvez l'activer de différentes manières:
 
calendard.gif  Dans la fenêtre de configuration en cliquant sur l'onglet network settings puis show lagometer yes. Il restera actif pendant toute la durée du jeu.
 
on.jpg

calendard.gif En ouvrant la console et en tapant après l'invite la ligne cg_lagometer 1. A l'inverse,pour l'éteindre taper, toujours en mode console, la ligne cg_lagometer 0.

calendard.gif  En incluant dans votre fichier de configuration la routine suivante:


// lagomètre
bind L "vstr lago"
set lago "vstr lago_on"
set lago_on "set cg_lagometer 1; set lago vstr lago_off"
set lago_off "set cg_lagometer 0; set lago vstr lago_on"


A chaque appui sur la touche L vous allumerez ou éteindrez le lagomètre.

Il y a 2 traces horizontales dans le lagomètre, l'une au-dessus de l'autre.

Trace supérieure

Elle se décompose en une ligne de référence virtuelle sur laquelle se superposent une trace jaune et une trace bleue.
La trace bleue fournit l'information sur les trames reçues sans perte et la jaune indique les trames perdues ou corrompues.
La trace bleue est le reflet de la cohérence de votre connexion. Idéalement vous devriez toujours avoir une barre bleue de quelques pixels de hauteur, sans aucun pic jaune.
Si vous obtenez souvent de grands triangles jaunes au-dessus de la ligne de référence, votre connexion est mauvaise ou vos paramètres mal réglés, notamment la valeur de SNAPS dont nous parlerons plus loin.


Trace inférieure

Elle affiche sous forme de spectre, les informations concernant les paquets reçus. Les barres vertes du spectre indiquent que les paquets de données sont bien reçus. Si des barres rouges apparaissent cela signifie que des paquets sont perdus et des barres jaunes indiquent des paquets corrompus que SOF a rejetés.
Dans une partie de jeu assez fournie en action, il arrive que des barres jaunes apparaissent. En général elles repassent au vert quand le jeu se calme.

Si des barres rouges surviennent fréquemment, il convient de revoir les paramètres de configuration et notamment le RATE dont nous parlerons plus loin.
A noter enfin que la hauteur en pixels du spectre est proportionnelle à votre ping sur le serveur.
Voici l'aspect de la trace inférieure sur un serveur affichant un ping de 200. La trace est bien verte mais présente une hauteur très importante.

 
ping200.jpg

calendard.gif Remarque : Si vous jouez en LAN, le lagomètre n'affichera pas la trace inférieure et c'est bien normal attendu que les données échangées n'utilisent que le BUS de votre ordinateur, générant ainsi un ping nul.

lan_lago.jpg


LES CVARS

Tous les CVARS suivants peuvent être saisis en mode console ou bien inscrits définitivement, après avoir fixé leur juste valeur, dans votre fichier de configuration.


SNAPS x

x fixe le montant maximal de paquets qui sont envoyés par seconde depuis le serveur vers le client c'est-à-dire vous. Le montant par défaut est 20 (pour les connexions 56k s'il en existe encore).Il est évident que cette valeur doit être augmentée en fonction du débit de votre ligne internet. Une valeur de 35 est un minimum pour les connexions ADSL ou câble. Plus cette valeur est élevée plus vous recevrez de mises à jour du serveur et plus votre jeu sera fluide. Un réglage parfait de cette valeur en fonction de votre débit ADSL vous affranchira des pics jaunes dans la trace supérieure du lagomètre et fera apparaître une ligne bleue constante de quelques pixels de hauteur.

On voit encore trop de débutants qui utilisent un SNAPS de 20 alors qu'ils ont des ADSL performants.
A noter qu'une valeur bien adaptée vous permettra également de diminuer votre ping sur mon serveur.

Voici 2 exemples en images qui illustrent l'impact sur le ping et sur le lagomètre de valeurs extrêmes du SNAPS sur mon serveur.

SNAPS 20 SNAPS 50
Ping élevé, trace bleue épaisse Ping faible, trace bleue fine
snaps 20.jpg snaps50.jpg
hlsnaps20.jpg hlsnaps50.jpg

RATE x

x détermine le nombre maximum d'octets que le serveur peut envoyer au client par seconde. La valeur par défaut pour les connexions 56k est de 4000. Semblable à SNAPS, plus la bande passante de votre connexion est importante, plus vous devriez être en mesure d'augmenter cette valeur. Une connexion ADSL moyenne devrait vous autoriser une valeur de 10000 voire plus sans problème.
Toutefois ne forcez pas trop cette valeur car n'oubliez pas que vous partagez la bande passante du serveur avec tous les autres joueurs.
Si des barres jaunes et même rouges apparaissent sur la trace inférieure du lagomètre, diminuer votre valeur de rate pour obtenir un réglage optimum.
Voici une image d'un lagomètre affichant quelques barres jaunes parmi les vertes dans la trace inférieure. La valeur du RATE est ici un peu trop élevée.

 

barresjaunes.jpg




cl_maxpackets "x"

x indique le nombre maximal de paquets qui sont envoyés au serveur par le client. La valeur par défaut est de 30 pour les connexions 56K, mais tout comme le SNAPS et le RATE si vous avez une bande passante plus grande essayez d'augmenter cette valeur. La bande passante en upload est généralement un peu plus importante que la bande passante en download ce qui ne devrait pas exiger trop de changements.


cl_packetdup "x"

Lorsque x est mis à 1 cela permet la retransmission de paquets de données perdues, ce qui est recommandé pour les jeux multijoueurs sur Internet.


cg_smoothClients "x"

Lorsque x est mis à 1 cela génère un mode plus prédictif pour interpréter les mouvements du joueur, pour lequel la connexion internet n'est pas parfaite. Le déplacement de la cible se présentera moins saccadé. Toutefois l'algorithme d'interprétation prédictive de la cible ne donne pas toujours les résultats escomptés. En LAN il est préférable de laisser à 0.


com_maxfps "x"

La valeur x fixe le nombre de trames par seconde qui peuvent être interprétées par le client. Cette valeur est liée d'une part à la qualité de la connexion internet et d'autre part aux performances de votre carte graphique.
Par défaut la valeur est 85. Cela correspond à la technologie des débuts du jeu tant en performances graphiques qu'en vitesse réseau. Actuellement la grande majorité des joueurs utilisent des composants haut de gamme et surfent sur le très haut débit.
Une valeur de 150 à 200 est tout à fait correcte et certains joueurs privilégiés vont jusqu'à 330.
Les effets d'une valeur élevée vous permettront de sauter beaucoup plus haut et de franchir plus facilement les obstacles.

Attention toutefois à ne pas dépasser une valeur que votre connexion et votre matériel ne pourraient accepter car cela produirait un effet opposé à celui que vous attendez.
 
A noter que la valeur du FPS fluctue durant le jeu en fonction des actions, du nombre de joueurs et des variations de flux de votre connexion internet. Si vous désirez bénéficier d'une information permanente sur la valeur instantanée du FPS, vous pourrez l'activer en cliquant sur l'onglet Misc setup puis dispay_fps Yes. La valeur s'affichera en haut à droite de votre moniteur.
 

fps.jpg

-=eek=-
Publié le 05/02/2019 17:25  Prévisualiser...   Imprimer...   Haut
Infra rouges  -  par FSMOD
Jumelles infrarouges

 
Plus connues sous le nom de thermal goggles, elles sont souvent utilisées par des joueurs qui veulent bénéficier d'une meilleure perception visuelle dans certaines maps brumeuses ou sombres.
Par extension elles sont parfois systématiquement utilisées par les mêmes joueurs, quelle que soit la map en cours, favorisant ainsi une visée plus aisée sur un objectif lointain.
Il est utile de préciser que l'usage des jumelles est subordonnée à la validation de leur CVAR correspondant sur le serveur. Cette validation sera justifiée pour des maps à grande profondeur de champ ou nocturnes mais en revanche à proscrire pour de petites maps claires où la signature thermique est parfois visible à travers les murs. C'est le choix du manager du serveur et il doit rester cohérent dans ses réglages.

MODIFICATION

Le but est d'annuler les trames parasites horizontales, au graphisme grossier, qui encombrent le champ visuel scanné par l'infrarouge.
Ces trames sont intégrées dans l'image thermal_background.png. Il suffit de recréer une nouvelle image vierge qui sera considérée par SOF2 comme un calque transparent.
L'image thermal_background.png se situe par défaut dans le fichier système therest.pk3 selon l'arborescence suivante:

gfx / menus / hud / thermal / thermal_background.png

Voici son aspect d'origine:


 
fondorig.jpg

Il s'agit en fait d'un quart d'image que le programme transforme en une image complète.
En utilisant Photoshop, ou tout autre logiciel de retouche, il suffit d'effacer les trames de l'image et de la sauvegarder dans le même format et sous le même nom. La replacer ensuite dans le fichier therest.pk3 à sa place primitive.

C'est simple non?

Je ne saurais trop toutefois, vous recommander d'éviter de modifier les fichiers pk3 d'origine si vous n'êtes pas aguerri à cette pratique, la santé de votre SOF2 pourrait en faire les frais.
Aussi le mieux est de créer un petit addon qui reprendra l'arborescence citée plus haut et qui sera ensuite sauvegardé sous le nom de zzgfx.pk3 par exemple. Il sera simplement placé dans le répertoire du mode choisi, rocmod ou autre.
 

Fenêtre thermal d'origine Fenêtre thermal modifiée
orig.jpg balay.jpg

Il subsiste néanmoins un balayage horizontal destiné à simuler le rafraîchissement de la zone scannée par l'infrarouge. Dans une de mes version antérieures j'avais recodé le balayage de manière à le rendre totalement invisible. J'ai toutefois jugé que cette modification, dont certains accros aux thermals raffolaient, était plutôt de nature à trop compenser chez ces derniers un manque d'habilité avéré.
Un petit coup de pouce pour aider les novices n'est pas à dédaigner mais point trop n'en faut frown

Je précise que les thermals ainsi que les night vision sont invalidées dans FSMOD. Cette astuce n'est donc pas opérationnelle sur mon serveur quel que soit le fichier client que vous aurez créé.

.
-=biggrin=-
Publié le 05/02/2019 17:24  Prévisualiser...   Imprimer...   Haut
La bonne taille  -  par FSMOD

Les fichiers système

Les fichiers système composent la base même de SOF2 en dehors de tous fichiers propres à un mode spécifique. Au nombre de 11, ils sont tous en extension pk3.

Il faut impérativement garder à l'esprit que ces fichiers doivent être identiques entre le serveur et le client. Les fichiers serveur étant la référence.

Pourquoi cette parité indispensable. Tout simplement pour que serveur et client travaillent sur une base commune afin d'échanger des données fiables et exploitables. A l'extrême il ne vous viendrait pas à l'idée de jouer à SOF2 sur un serveur Urban Terror. Et pourtant c'est le même moteur Quake 3 qui équipe les deux. Les discordances entre fichiers pk3 conduiraient à une impossible connexion.

J'ai évoqué dans ma doc la possibilité de modifier certains fichiers pk3 mais en préconisant d'avance de ne pas trop y toucher, mais plutôt d'inclure ces modifications dans un autre pk3 annexe.

L'ouverture d'un de ces fichiers système juste pour voir les données qu'il contient peut engendrer à sa sauvegarde en zip puis en pk3, des espaces parasites de quelques octets qui modifieront le poids final du fichier, le rendant de facto différent de celui du serveur.

Heureusement que les managers de serveurs pour la grande majorité, n'activent jamais le mode PURE car ces quelques octets de différence vous conduiraient directement vers un kick. Toutefois le respect de ces équivalences de poids de fichiers entre serveur et client reste prépondérant dans le mode RMG, qui n'a hélas, plus tellement la cote !

Si vous rencontrez des problèmes de stabilité, de déconnexions intempestives où de messages d'erreur, commencez par vérifier le poids binaire de ces fameux fichiers système, à l'octet près, avant de passer à d'autres investigations.

Pour mémoire, ils sont situés dans le répertoire BASE de votre SOF2

Fichiers Poids en octets Poids en Ko
maps.pk3  102 985 472 100 572
models.pk3    96 636 622 94 372
mp.pk3    31 722 385 30 979
musicandsound.pk3  191 252 236 186 770
skins.pk3    73 241 493 71 525
textures0.pk3  413 194 735 403 511
textures1234.pk3  164 152 653 160 306
therest.pk3    69 463 128 67 836
update101.pk3      9 668 867 9 443
update102.pk3    18 549 884 18 116
update103.pk3    12 886 903 12 585

-=mad=-

Publié le 05/02/2019 17:24  Prévisualiser...   Imprimer...   Haut
Modification de texte  -  par FSMOD
Modification de texte dans les fichiers binaires
Si la modification d'une zone de texte dans le code source d'un programme ne pose aucun problème pour peu que vous en maitrisiez le langage ainsi que sa compilation, il en va tout autrement pour un programme déjà compilé, donc de type binaire.

Toutefois dans ce dernier type de fichier une zone de texte peut être modifiable pour peu que l'on respecte scrupuleusement 2 conditions majeures:
  • Repérer la dite zone de texte et de ne pas la confondre avec du code compilé.
  • Remplacer le texte initial par un nouveau texte contenant exactement le même nombre de caractères.
Cette astuce s'adresse bien entendu à ceux qui ne maitrisent pas la programmation, ou ne possèdent pas les sources.
Voici quelques illustrations de ce préambule. Pour les besoins de l'exemple le fichier code concerné sera cg_draw.c (client) qui après compilation générera le fichier sof2mp_cgame.qvm (encapsulé dans le fichier PK3 du mode)

calendard.gif Premier exemple

Considérons l'extrait suivant:
codeblockorig.jpg


Si vous décidez par exemple de créer une version française de SOF2, les textes "Server Changing Maps" et "Please Wait" entre autres, pourraient être respectivement remplacés par "Changement de map en cours" et "Veuillez patienter".

Le nouveau code serait ainsi rédigé:

codeblockmod.jpg


Vous pouvez choisir ainsi le texte qu'il vous plaira, sans vous soucier du nombre et du type de caractères qui le composent.
Après compilation l'écran au changement de map, aura l'aspect suivant:

map.jpg


Rien de plus facile!

Reprenons le cas de la version originelle anglaise. L'ouverture du fichier sof2mp_cgame.qvm avec un simple éditeur de texte (je recommande Notepad++), aura cet aspect dans l'extrait suivant:

compil.jpg

Le vocable "Please Wait" est restitué dans sa syntaxe d'origine, au milieu de caractères compilés. Mais là, il ne sera pas question de lui substituer sa version française, telle qu'elle a été si facilement inscrite dans le fichier source. Le fichier sera bien sauvegardé mais sa corruption conduira fatalement à un beau plantage du serveur.

calendard.gif  Un autre exemple

Les modes CRSBOT et PWNBOT affichent systématiquement le suffixe [BOT] et les programmeurs n'ont prévu aucun CVAR  pour le contrôler.


 

suffbot.jpg

Or vous avez décidé de ne plus affubler les bot de cet horrible marqueur.
Les sources CRSBOT étant disponibles sur le net, il sera facile de le supprimer. Pour info cela se situe dans le fichier g_bot.c, dont voici un extrait:


 
crs.jpg


Il suffira d'effacer le groupe "[BOT]" et de recompiler pour régler le problème.

En revanche si vous préférez le mod PWNBOT et que vous vouliez opérer la même suppression, vous vous heurterez, tout comme moi, à un problème de taille : les sources ne sont pas publiques.

Mais on va arranger cela !

S'agissant d'une modification côté serveur, c'est le fichier sof2mp_game.qvm qui devra être sollicité.
ATTENTION : Avant toute intervention sur un fichier binaire, il est vital d'effectuer une copie dans un répertoire de sauvegarde.

Editer le fichier à l'aide de Notepad++
Effectuer une recherche sur le mot BOT:

recherbot.jpg


Identifier le groupe [BOT]

identbot.jpg


Remarque particulière dans cet exemple.
dans la ligne %s^7[BOT] comprise entre les caractères  NUL, il est impératif de ne pas modifier le groupe %s qui représente une variable en langage C. Vous en rencontrerez d'autres comme %i ou %d
. Le reste, à savoir ^7[BOT] peut être modifié sans problème. Si vous désirez simplement supprimer le suffixe BOT il sera juste nécessaire de laisser en blanc ce dernier groupe. Pour mémoire ^7 affecte la couleur blanche à [BOT].
Le groupe ^7[BOT] étant composé de 7 caractères, il faudra donc impérativement les remplacer par 7 espaces:

blanc.jpg

En relançant le serveur vous verrez désormais ceci, le suffixe [BOT] a disparu:

suffnope.jpg


calendard.gif Un autre exemple

Plutôt que d'effacer purement et simplement le suffixe [BOT], vous désirerez peut-être le remplacer par votre marque de fabrique.
Comme c'est moi qui rédige cet article, je vais me faire plaisir en marquant les bots de mon empreinte. smile
[BOT] sera remplacé par ~FS

Voilà la modification dans sof2mp_game.qvm

modbot.jpg


Afin de respecter les 7 caractères le groupe ^7[BOT] est devenu ^1~^7FS

Ce qui donne dans le jeu :

sufffs.jpg


calendard.gif Un dernier exemple un peu plus complexe

Si je désirai modifier ma version sans passer par les sources et la compilation qui suivrait, je pourrais procéder comme suit:
 

titre.jpg


En éditant le fichier sof2mp_game.qvm je rechercherai ce passage correspondant à la capture ci-dessus

titrebin.jpg


Les points bleus en marge représentent les 3 lignes affichées au démarrage de la map que je me propose de modifier comme suit:
 

titremodbin.jpg


A près enregistrement et si il n'y a pas eu d'erreur de frappe, cela donnerai la capture suivante:

titreresult.jpg

En résumé, cette méthode de substitution caractère à caractère par le biais d'un éditeur de texte au coeur même d'un fichier binaire n'est certes pas la panacée en matière de "programmation".
Ne vous attendez donc pas à faire des merveilles. Toutefois avec un minimum de patience et de cogitation, vous obtiendrez d'honorables résultats dans des textes courts.
Un dernier point, si vous entrez du texte en français, évitez la ponctuation. SOF2 préfère de loin l'anglais et vos lettres accentuées seront remplacées systématiquement par un simple point.

Bon courage


-=biggrin=-
Publié le 05/02/2019 17:23  Prévisualiser...   Imprimer...   Haut
Paramétres  -  par FSMOD
F O V 



Le CVAR FOV ( Field Of View ) offre la possibilité de modifier votre profondeur de champ visuel.
Il peut s'apparenter à un zoom et malgré son degré de grossissement peu élevé, il en subira néanmoins les inconvénients, à savoir une sensation de déplacement plus lent et l'impression d'un jeu "mou". Il peut toutefois être utile dans des maps de grandes dimensions.

A paramétrer comme suit dans votre fichier de configuration:

set cg_fov  " X "

X doit être compris entre 80 et 100
100 pour la profondeur de champ maximale.
80 est la valeur par défaut fixée par le jeu.

Il est possible de modifier la valeur en mode console en entrant simplement la ligne cg_fov suivie de la valeur désirée.
Dans l'exemple ci-dessous la valeur FOV a été définie à 90 par la ligne cg_fov 90
une nouvelle saisie de cg_fov affiche le résultat et rappelle la valeur par défaut ainsi que la plage autorisée.
 
consolchange.jpg

Il est également possible de modifier la valeur FOV par une boucle VSTR incluse dans votre fichier de configuration, comme suit:

 

   // change FOV  bind touche b

  bind b "vstr fov"

  set fov "cg_fov 80;bind b vstr fov1"
  set fov1 "cg_fov 90;bind b vstr fov2"
  set fov2 "cg_fov 100;bind b vstr fov"

 


A chaque appui sur la touche b le CVAR  FOV prendra une valeur différente, de 80 à 100 par palier de 10.

Et pour terminer voici trois vues qui illustrent ce bind.


                              fov80.jpg
 

fof90.jpg


fov100.jpg

 

-=smile=-
Publié le 05/02/2019 17:22  Prévisualiser...   Imprimer...   Haut
Recul des armes  -  par FSMOD
RECUL DES ARMES

 
Le recul des armes est fixé par le fichier SOF2.wpn encapsulé dans le répertoire EXT_DATA du serveur.
Ce répertoire est initialement intégré dans le fichier therest.pk3.
Pour les besoins de la version GOLD, il a été modifié par le fichier update101.pk3 puis finalement par le fichier update102.pk3.
Pour un paramétrage plus aisé, le répertoire EXT_DATA et son contenu a été recréé dans le répertoire lié au mode sur le serveur
.


Le recul de l'arme, surtout lors de rafales longues, affecte 2 paramètres :

  • dérive du canon vers le haut
  • dérive du canon de la gauche vers la droite.

 

Ces 2 valeurs sont fixées par l'instruction mp_kickAngles.
Voici un extrait du fichier SOF2.wpn concernant une partie des paramétres du bloc "attack" du MP5.

Tout d'abord il faut remarquer qu'il existe également une instruction kickAngles.
Il convient à ce stade de préciser que les valeurs affectées aux instructions ayant un préfixe mp sont prioritaires sur ceux ayant la même racine.
Ainsi mp_kickAngles est prioritaire sur kickAngles.

Les préfixes mp ont été ajoutés pour adapter le jeu en mode multiplayers.

         muzzleFlash                     "effects/muzzle_flashes/mflash_silencer_mp5"
        muzzleSmoke                  "effects/muzzle_flashes/smoke_m4"
        3rdPersonMuzzleFlash    "effects/muzzle_flashes/mflash_silencer_mp5_world"
        ShellCasingEject             "effects/shell_brass_small"
        EjectBone                        "ejection_mp5"
        inaccuracy                       ".00"
        maxInaccuracy                ".0"
        range                                "8000"
        volume                              "0.75"
        kickAngles                       "1 1.7 -2 1"
    
        mp_maxInaccuracy              "1.5"
        mp_inaccuracy                      ".19"
        mp_damage                          "130"
        mp_animFire                        "TORSO_ATTACK_MSG90A1_ZOOMED"
        mp_extraClips                      "10"

        mp_kickAngles                     "1 1.7 -2 1"
        mp_range                             "9000"
        mp_ammoType_outfitting    "9mm|mp5"
        mp_fireDelay                        "-15"


Les 4 paramètres de mp_kickangle représentent respectivement:

  1. - valeur minimum de la dérive du canon vers le haut
  2. - valeur maximum de la dérive du canon vers le haut
  3. - valeur minimum de la dérive gauche droite du canon
  4. - valeur maximum de la dérive gauche droite du canon

A noter que les valeurs minimum ne sont pas exploitées par le programme, seules les valeurs maxi sont interprétées.


Pour annuler les dérives de l'arme il suffit de mettre toutes les valeurs x, y à zéro comme suit.

mp_kickAngles            "0 0 0 0"

Cette opération peut être répétée pour toutes les armes.

Toutefois, vous aurez peut-être constaté que, malgré ce paramétrage côté serveur, votre arme reste toujours affectée d'un léger tressautement.
Ce n'est pas génant en soi, toutefois pour ceux qui veulent une arme parfaitement stable il suffit de mettre également à zéro les valeurs de mp_kickAngle côté client.


 

-=smile=-
Publié le 05/02/2019 17:21  Prévisualiser...   Imprimer...   Haut
De son utilité  -  par FSMOD

La commande CONDUMP

J'ai déjà évoqué dans la rubrique trucs et astuces/création d'un log client la manière d'utiliser la commande condump à dessein de générer un log client dans le but de conserver une trace des chats échangés entre les protagonistes du jeu, conférez ICI

Je compléterai ce développement en précisant l'importance de cette commande pour tout utilisateur avisé désireux de vérifier une parfaite corrélation entre les fichiers client et ceux du serveur, détecter d'éventuels conflits ou pointer vers des fichiers douteux ou corrompus. Cette commande représente un outil nécessaire pour qui sait en user.

Je n'ai pas la prétention de dresser une liste exhaustive de toutes les anomalies possibles, tout d'abord pour la raison simple que je ne les connais pas toutes pour ne les avoir pas encore rencontrées aussi quelques exemples suffiront. A noter que certaines anomalies ne sont pas forcément synonymes de plantage mais leur détection et leur correction ne peuvent être que favorables pour le jeu.

Dans le but d'utiliser condump pour détecter des discordances entre client et serveur, il convient toujours de lancer la commande dès la connexion au serveur.

calendard.gif LES EXEMPLES

1suivant.gif   Lors du codage de ma version je me suis souvent servi de condump pour mettre en évidence des fautes de syntaxe souvent indétectables. Ce fut le cas dans l'élaboration du très long fichier ingame_sysop.menu. Le simple oubli d'une accolade fermante dans un groupe itemDef visible dans l'extrait suivant:

nobrace.jpg

a généré le texte suivant dans le fichier log.txt, issu de la commande condump:

ERROR: ui/ingame_sysop.menu, line 840: unknown menu item keyword itemDef
ERROR: ui/ingame_sysop.menu, line 841: unknown menu item keyword {

 

Sans cette annonce l'erreur n'aurait pas été décelée car même une relecture minutieuse du fichier ingame_sysop.menu n'a pas révélé cette lacune. Cette omission d'un détail graphique n'était en rien préjudiciable dans l'activation du jeu, mais cela n'a pas toujours été le cas et ce gros fichier a été long a mettre au point dans lequel certaines erreurs amenaient un plantage systématique.

Pour illustrer ce propos voici les images qui résument cette petite avarie. Cherchez l'erreur !

Omission de l'accolade fermante Correction de l'accolade fermante
nodraw.jpg draw.jpg


2suivant.gif  Dans l'exemple qui suit on reste dans le domaine de la mise au point du programme. Dans le recodage des sources côté serveur concernant les armes j'avais omis côté client une configuration liée à la définition du shotgun. Cette définition non conforme au fichier sof2.inview natif a généré le texte suivant:

CG_RegisterWeapon: Unable to load weapon world model:
models/weapons/Mossberg-590/m590.glm

Une fois de plus ce "bug" n'a en rien perturbé le fonctionnement du shotgun car le programme dans son infinie sagesse a repris par défaut les configurations de base fixées dans les fichiers systèmes tels que therest.pk3 et les update101.pk3 et update102.pk3 qui ont suivi l'évolution de la version gold. L'ajout d'un répertoire mossberg adéquat a résolu le problème.

moss.jpg


3suivant.gif  Dans l'exemple suivant la commande condump indique la balance entre les fichiers stockés sur le serveur et vos propres fichiers. Très utile pour orienter les recherches en téléchargement de maps absentes de votre PC. Tous les managers de serveur ne fournissent pas toujours un lien très clair vers un pack customisé.

WARNING: You are missing some files referenced by the server:
rocmod/rocmod_2.2v_adm.pk3 (local file exists with wrong checksum)
base/xmas-bbc_xmasitaly.pk3
base/mp_cargo1.pk3
base/inferno2003.pk3
You might not be able to join the game
Go to the setting menu to turn on autodownload, or get the file elsewhere

Explications dans l'ordre d'apparition:

Mon fichier rocmod_2.2v.pk3 possède un checksum différent de celui du serveur.  Il est vrai que d'une mise au point à l'autre du programme j'ai quelque fois raté le upload de la dernière correction vers le serveur. A noter que cette discordance n'a pas influé le jeu car le serveur est réglé en mode IMPURE. Dans le cas d'un mode PURE, j'aurais été recalé LOL.

Les maps xmas-bbc_xmasitaly, mp_cargo1 et inferno2003 sont installées sur le serveur mais pas de mon côté. Rien de bloquant bien entendu sauf si le lancement de l'une d'elle aurait pour conséquence de m'éjecter du jeu.

D'ailleurs le serveur m'indique gentiment que je suis susceptible de ne pas pouvoir jouer et m'invite à passer mon autodownload sur ON. Ce qui ne sera pas suivi d'effet attendu que le download n'est pas autorisé sur mon serveur.

-=tongue=-

Publié le 05/02/2019 17:20  Prévisualiser...   Imprimer...   Haut
Rubriques

Vous êtes ici :   Accueil » Documentation