Documentation
Toutes les pages
DEMO auto  -  par FSMOD
Enregistrement automatique d'une démo
 
Un de mes condisciples de SOF2, soucieux de garder une trace mémorable de ses plus belles parties, a pour habitude d'enclencher l'enregistrement d'une démo chaque fois qu'il entre en piste.
Toutefois, il lui arrive dans son empressement d' en découdre avec l'ennemi, d'oublier de presser sur la précieuse touche asservie au bind d'enregistrement.

Aussi me demanda t-il de trouver un script susceptible de lancer automatiquement la démo dès qu'il entre dans la partie.




Principe retenu

Attendu qu'à la connexion effective sur un serveur, l'interface CHOIX ARMEMENT s'ouvre systématiquement et qu'il faille cliquer sur le bouton OK pour débarquer sur le champ de bataille, il suffisait d'associer le script de lancement de la démo à l'action du bouton OK.
Evident non ?

Le fichier concerné qui sera modifié, se nomme ingame_outfitting.menu.
Il se trouve dans le répertoire UI encapsulé dans le fichier mp.pk3, qui se trouve lui-même dans le répertoire BASE de votre SOF2.

Comme il n'est pas toujours très heureux de modifier les fichiers originels du répertoire BASE, il sera préférable que vous importiez le fichier ingame_outfitting.menu dans un répertoire UI bien spécifique. Après modification il suffira de sauvegarder UI en ZIP, de le renommer en PK3 et de lui donner n'importe quel nom, à condition qu'il soit précédé d'une lettre extrême de l'alphabet comme par exemple zautodemo.pk3.  Ce dernier sera placé dans le répertoire de votre mode.

Si vous utilisez un mode customisé il faudra éventuellement regarder si ce mode ne renferme pas un fichier ingame_outfitting.menu, auquel cas c'est dans celui-ci qu'il conviendra d'effectuer la modification. C'est d'ailleurs le cas pour ma version ROCMOD.
 


La modification
 
  • Ouvrez le fichier ingame_outfitting.menu
  • Repérez le bloc itemDef ok_button (vers la fin du fichier)
  • Insérez dans le bloc action la ligne grisée comme indiquée sur la capture suivante:

 
demo.jpg


C'est tout.

Bien entendu, pour stopper la démo il suffira de recourir à un bind classique du genre

bind x "stoprecord"

-=rolleyes=-
Publié le 05/02/2019 17:59  Prévisualiser...   Imprimer...   Haut
Création LOG client  -  par FSMOD
LOG CLIENT


La commande CONDUMP permet de sauvegarder le contenu de la console

Il suffit de taper en mode console la ligne suivante:

bind L condump log.txt

Chaque fois que vous presserez la touche L la totalité du texte inscrit en console sera sauvegardé dans le fichier log.txt qui se créera lui-même dans le répertoire de votre mode.

Vous pouvez le nommer par tout autre nom  à votre convenance, toutefois le plus judicieux est de lui
adjoindre l'extension txt pour une ouverture plus aisée, par n'importe quel éditeur de texte.

Vous pouvez également mémoriser ce bind dans votre fichier de configuration comme suit:

// Enregistrement log touche L
bind L "condump log.txt"


L'avantage de ce bind est de vous permettre de revoir en différé des passages du jeu qui vous auront intéressé comme par exemple pour récupérer une adresse web ou revoir des chats particuliers.
Il n'est pas nécessaire d'être Admin pour utiliser cette fonction et elle est applicable sur n'importe quel serveur.

A noter que le contenu du fichier log.txt est volatile c'est à dire qu'un nouveau contenu effacera le précédent lors d'une nouvelle connexion sur un serveur, suivie d'une sollicitation du bind.

Par ailleurs, lors d'une même connexion les contenus console sauvegardés sont concaténés dans le fichier log.txt à chaque sollicitation du bind.

Voici un court extrait d'un log client enregistré sur le serveur des M8(click here)


 

******************************
Francis  PUNISHED FOR CAMPING
******************************
If you have any problems with your game post in our forum, maybe we'll be
able to help you ... http://www.m8clickhere.tk
Lucy Liu is on a Killing spree ~ 5 Kills in a row
]*FS*[: I tried it in the past for linux and it did not work
m8 (kksharry): oh ok
First Kill
2 Kills
m8 (kksharry): crashes not so bad anymore
If you wish to help us to pay for the server post in the Donations subject
in our forum ... http://www.m8clickhere.tk
*spec* m8 (ZAFFIRA): ive noticed
******************************
Pablito  PUNISHED FOR CAMPING
******************************
Mabul is on a Killing spree ~ 5 Kills in a row
]*FS*[: I think your server is bad protected
m8 (kksharry): very likely
*spec* m8 (ZAFFIRA): NL or both ?
* 3 Minutes Remain *
All weapons are allowed on this map ... try the RPG7, just don't blow
yourself up !
m8 (kksharry): both elite
]*FS*[: both I think
m8 (kksharry) is on a Killing spree ~ 5 Kills in a row
*spec* m8 (ZAFFIRA): mmm something to think about then
m8 (kksharry): its not the mod
m8 (kksharry): roc goes down the same as fs
m8 (kksharry): i think any mod will crash if server not secure
Server is running mod Fsmod_v3.4 ... http://www.m8clickhere.tk
]*FS*[: the failure doesnt come from the mode but from server
******************************
Lucy Liu  PUNISHED FOR CAMPING
******************************
m8 (kksharry): yes it wont matter what mod is run
First Kill
Please read server rules In forum link here... http://www.m8clickhere.tk
* 1 Minute Remains *
*spec* m8 (ZAFFIRA): lol!
m8 (kksharry): missed the roof
******************************
]Omar Sy[  PUNISHED FOR CAMPING
******************************
]*FS*[: Some redundant packets and server is overloaded
*spec* m8 (ZAFFIRA): i do that 3 out of 4 times
Dumped console text to log.txt.t.
 

La dernière ligne Dumped console text to log.txt. indique bien l'action du bind qui a mémorisé le texte qui précède, copié depuis la console

CQFD


 
-=rolleyes=-
Publié le 05/02/2019 17:58  Prévisualiser...   Imprimer...   Haut
Ambience sonore  -  par FSMOD
AMBIANCE SONORE


Généralités
 

Durant le jeu, un préavis sonore sur les manoeuvres de l'ennemi, offre un avantage indéniable pour un joueur qui sait l'exploiter. Les bruits de pas ou les départs de coups sont en effet des traces audibles qui trahissent la position des belligérants. D'autant plus que la plupart des modes n'autorisant que l'AK47 dans l'équipement des armes automatiques alloué aux bots, une rafale de MP5 ou une déflagration de SHOTGUN permet facilement de lever le doute sur la présence imminente d'un joueur réel.
L'usage d'un casque d'écoute de bonne qualité permet, grâce à la restitution stéréo, de définir avec certitude, le gisement du bruiteur et d'adapter en retour une riposte adéquate.
A noter que votre réaction dont la célérité dépendra de la proximité du contact pourra être interprétée par certains esprits chagrins comme une forme de triche.

Hélas ces précieuses indiscrétions acoustiques dont vous souhaitez tirer profit pour anéantir leur auteur, peuvent être étouffées ou déformées par d'autres bruits parasites. SOF2 n'en manque pas.

Ces bruits sont de 2 natures:
  • Toutes les expressions associées à des binds relatifs au pack sons du serveur et que certains joueurs aiment à émettre sans modération, créant parfois une cacophonie indescriptible de nature à casser les oreilles, à défaut de casser autre(s) chose(s).
  • Tous les bruits ambiants propres à la map en service comme la pluie, le vent, les ronronnements de machines, les mouvements de vannes ou de portes, etc..

   Remède 

calendard.gif Premier temps: le pack sons

Il suffit de ne pas installer le pack sons du serveur dans le répertoire de votre mode. Tous les binds émis par vous-même ou par les autres joueurs ne seront plus audibles pour vous, mais seulement visibles. En revanche les binds que vous émettrez seront toujours audibles par les autres joueurs pour peu qu'ils possèdent le pack sons du serveur.
Attention, quand j'évoque les sons je ne vise que les sons customisés du serveur c'est à dire tous les sons dont le numéro d'appel est supérieur à 84 inclus. Les 83 premiers sons étant encapsulés d'origine dans le fichier système musicandsounds.pk3, il seront toujours actifs. Ce qui nous amène au deuxième temps.


calendard.gif Deuxième temps Modifications des fichiers système

puce2.gifIMPORTANT: Avant toute intervention sur un fichier système en faire préalablement une copie de sauvegarde.

Les 3 fichiers à modifier sont:

  • musicandsounds.pk3
  • skins.pk3
  • mp.pk3

Ils se trouvent dans le répertoire BASE. Utilisez de préférence l'outil Pakscape pour leur modification.

    mp.pk3   

 
mp.jpg
 


Dans le répertoire sound procédez comme suit:

  1. Effacer le répertoire effects
  2. Effacer le répertoire radio
  3. Effacer les fichiers item_respawn.mp3 et self_frag.mp3
  4. Effacer les 4 fichiers CTF, sauf si vous êtes un fanatique du gametype CTF

Le fichier frag.mp3 envoie par défaut un son assez désagréable, lorsque vous tuez un ennemi. Vous avez la possibilité soit de l'effacer soit de le remplacer par un son plus concis.
Pour ma part j'utilise le son suivant qui est d'ailleurs encapsulé dans ma version ROCMOD Client.


In fine je précise que le son player_respawn.mp3 est très important et doit être absolument conservé. Il ponctue, en effet la réapparition d'un ennemi sur le champ de bataille, donnant ainsi un préavis sonore très intéressant pour la suite du jeu. Ecoutez le bien:

    musicandsounds.pk3   

 
 
music2.jpg

Effacer le répertoire music

Dans le répertoire sound, effacez les répertoires suivants :
 
  1. ambience
  2. bumper
  3. enemy
  4. misc
  5. movers
  6. npc

 

   skins.pk3  

 
 
skins.jpg


Dans le répertoire sound effacez le répertoire pain_death.

C'est terminé.

A noter qu'avec des fichiers système modifiés vous serez éjectés des serveurs en mode PURE, mais rassurez vous tous les serveurs SOF2 dignes de ce nom tournent actuellement en mode IMPURE, même le mien.

Si vous utilisez une version Client customisée il vous faudra vérifier si un répertoire sound n'est pas présent. Auquel cas il conviendra de voir ce qu'il contient et procéder éventuellement à un décrassage sonore.

-=smile=-
Publié le 05/02/2019 17:57  Prévisualiser...   Imprimer...   Haut
Accélération souris  -  par FSMOD
ACCELERATION DE LA SOURIS
 


Sous Windows, la souris est dotée d'un système d'accélération en fonction de sa vitesse de déplacement. Si vous déplacez lentement la souris dans une surface restreinte de l'écran, vous recherchez la précision mais pas la sensibilité. A contrario lorsque vous voulez passer rapidement du coin inférieur gauche de l'écran vers son coin supérieur droit, vous recherchez plutôt la rapidité de transfert, donc une grande sensibilité mais peu de précision.
En résumant on peut dire:

  • Plus le déplacement de la souris est lent, plus la sensibilité est basse et plus la précision est grande.
  • Plus le déplacement de la souris est rapide, plus la sensibilité est grande et plus la précision est basse.

Or dans un jeu de type FPS comme SOF, on recherche toujours la précision quelle que soit la rapidité de déplacement de la souris. C'est la raison pour laquelle certains joueurs, dont je partage le cercle, préfèrent supprimer les paramètres d'accélération.

Cette opération n'est pas proposée dans les menus de Windows et il est nécessaire de modifier des valeurs dans la base de registre.

Attention toutefois de sauvegarder au préalable les valeurs d'origine car dans le cas d'une saisie erronée vous risquez fort de vous retrouver avec une tortue à la place de votre souris.


Allons-y...

  • Cliquez DEMARRER.
  • Cliquez EXECUTER
  • Dans la fenêtre tapez regedit et validez
  • Ouvrez le répertoire HKEY_CURRENT_USER
  • Ouvrez le répertoire Control Panel
  • Ouvrez le répertoire Mouse

Vous êtes arrivés à l'écran suivant:

bdr.jpg


Cliquez sur la valeur binaire SmoothMouseXCurve. Vous obtenez ceci:

x.jpg


Modifiez les valeurs de manière à obtenir le tableau ci-dessous. Passez tous les caractères en surbrillance avant la saisie. Vérifiez scrupuleusement avant de faire OK.

xcurve.jpg


Cliquez sur la valeur binaire SmoothMouseYCurve. Vous obtenez ceci:

y.jpg


Modifiez les valeurs pour obtenir le tableau ci-dessous. Mêmes remarques que précédemment.

ycurve.jpg


Ces opérations sont valides jusqu'à la version Wndows 8. Je ne l'ai pas testées sous Windows 10.

-=rolleyes=-

Publié le 05/02/2019 17:56  Prévisualiser...   Imprimer...   Haut
Stabilité  -  par FSMOD
STABILITE
J'ai constaté au fil des mois que la cohabitation des fichiers maps et des fichiers système au sein du répertoire base, était quelque fois à l'origine d'un plantage du serveur, particulièrement au changement de map.
Cette avarie est accrue lorsque le nombre de maps est très important. Pour ma part j'héberge plus de 500 maps.

 
   SOLUTION 
 

Il suffit de séparer les maps des fichiers système.
Pour ce faire créer un répertoire MP et y déposer les fichiers système
Laisser les maps dans le répertoire base

Voici 2 captures de mon serveur linux qui illustrent mieux mon propos:


   Répertoire BASE  

base.jpg



   Répertoire MP  

mp.jpg


REMARQUE: cette disposition n'est pas conseillée côté client !

-=smile=-
Publié le 05/02/2019 17:52  Prévisualiser...   Imprimer...   Haut
SETS  -  par FSMOD
SETS

L'instruction sets fournit certaines informations sur le serveur lorsque le client actionne le bouton  bouton.jpg

A ne pas confondre avec l'instruction seta, déjà évoquée dans la rubrique bind qui, à l'instar de la configuration client, est également usitée côté serveur.
Ces informations sont inscrites dans le fichier server.cfg et représentent 2 types de renseignements:

  • texte libre 
  • CVAR et sa valeur

Par défaut le serveur envoie certains CVARS indépendamment de la configuration propre choisie par le Sysop.

Par exemple la ligne suivante introduite par l'instruction seta, apparaîtra dans la fenêtre info comme si elle avait fait l'objet d'une instruction sets :

seta sv_hostname           "^7.:: ^IDR^yAKK^IAR^7 ::."

Voici ce que cela donne dans la fenêtre info serveur:

servinfo.jpg


Considérons maintenant des paramètres fixés par le Sysop.

1) Texte libre

Il doit être de la forme suivante:

sets "1er champ" "2ème champ"

Exemple

fichier server.cfg fenêtre info serveur
sets "^3Powered By" "^KFSMOD"
sets "^3Location" "FRANCE PARIS"
sets "^3Server" "Professional Private"
sets "^3Hosted by" "NETLOR SAS ~ www.netlor.fr"
sets "^3Running" "non stop"
sets "^3Download at" "fsmod.dimsonline.comr"
sets "^FMailto" "^KN/A"
servsets.jpg


2) CVAR

Les CVAR ayant leur propre valeur définie par la configuration serveur, il convient de ne pas renseigner le 2ème champ.
La commande sera donc de la forme suivante:

sets "nom du CVAR" ""

Exemple

fichier server.cfg fenêtre info serveur

 sets "rconpassword" ""

 seta rconpassword "LOL"                                        

rcon.jpg


Dans le fichier de configuration le mot de passe du serveur est fixé par la 2ème ligne (seta).
La 1ère ligne (sets) envoie sa valeur vers la fenêtre info serveur.



ATTENTION : Il s'agit là d'un exemple absurde à ne pas imiter sur votre serveur. Je pense que vous en comprenez la raison.  tongue
Le choix d'autres CVAR ne manque pas!

-=eek=-
Publié le 05/02/2019 17:51  Prévisualiser...   Imprimer...   Haut
Poignards auto  -  par FSMOD
POIGNARDS AUTO



Les amateurs du combat au couteau ont remarqué qu'il était nécessaire pour chaque lancer, de presser la touche affectée à cette fonction. Cette dernière, désignée par ALTATTACK est  généralement dédiée par défaut, à la touche Z. Elle peut bien entendu, être liée à n'importe qu'elle autre touche de votre choix.

Cette modification a pour but de lancer successivement les poignards tant que la touche est pressée. Le poignard à répétition automatique en quelque sorte.

Elle s'effectue côté serveur, et particulièrement dans le fichier en extension wpn, appelé dans le fichier server.cfg et qui se trouve dans le répertoire EXT_DATA.

Ouvrir ce fichier

Repérez la partie code concernant le couteau (knife)


 
1.jpg



Descendez les lignes jusqu'à la partie altattack
Repérez l'antépénultième accolade fermante ( avant l'arme suivante US SOCOM)



 
altattack.jpg


Insérez les codes suivants :
firemodes.jpg


Vous devez obtenir ceci

 
auto.jpg


C'est terminé, sauvegardez et relancez le serveur. Tous les joueurs connectés bénéficierons de la répétition automatique du lancer de couteau.

 
-=frown=-
Publié le 05/02/2019 17:51  Prévisualiser...   Imprimer...   Haut
Mapcycles en chaine  -  par FSMOD
MAPCYCLES EN CHAINE


Devant la multitude des maps qui agrémentent SOF2, le Sysop est tenté d'en lister un grand nombre dans le fichier mapcycle du serveur.
Or un problème majeur se pose, à savoir la limite en taille de ce fichier qui, pour la bonne santé du serveur, ne doit guère excéder les 13k. Un fichier plus gros est admis, toutefois dans certaines configurations, le serveur pourrait bien se crasher à la rotation d'une map.
L'idéal est une taille de 10k, ce qui n'autorise en fait qu'une dizaine de maps, assorties de leurs CVARS.

Une solution est de concevoir plusieurs fichiers mapcycle et d'assurer leur changement de temps en temps par une action du Sysop. C'est bien mais il y a mieux.

On conserve la solution de la création de plusieurs fichiers mapcycle mais par une petite astuce, l'appel d'un nouveau fichier mapcycle se fera automatiquement à l'issue du précédent.

Pour ce faire il suffira simplement d'ajouter une commande à la fin de la dernière map du fichier mapcycle, juste avant les 3 accolades fermantes, comme dans l'exemple ci-dessous:


map10
 {
    Command "map mp_jor1"
  
    cvars
   {
      g_gravity 500
      g_speed "340"
      timelimit "15"
      scorelimit "50"
      dmflags "8"
      fraglimit "20"
      bot_minplayers 8
      g_gametype "dm"
      g_botskill 1
         
      g_pickupsdisabled "1"
      disable_weapon_knife "0"
      disable_pickup_weapon_US_SOCOM "0"
      disable_pickup_weapon_M19 "0"
      disable_pickup_weapon_silvertalon "0"
      disable_pickup_weapon_microuzi "0"
      disable_pickup_weapon_M3A1 "0"
      disable_pickup_weapon_MP5 "0"
      disable_pickup_weapon_USAS_12 "0"
      disable_pickup_weapon_M590 "0"
      disable_pickup_weapon_MSG90A1 "0"
      disable_pickup_weapon_M4 "0"
      disable_pickup_weapon_AK_74 "0"
      disable_pickup_weapon_SIG551 "0"
      disable_pickup_weapon_M60 "1"
      disable_pickup_weapon_RPG_7 "1"
      disable_pickup_weapon_MM_1 "1"
      disable_pickup_weapon_M84 "0"
      disable_pickup_weapon_SMOHG92 "0"
      disable_pickup_weapon_AN_M14 "0"
      disable_pickup_weapon_M15 "0"
    
          
      sv_mapcycle mapcycles/mapcycle2.mapcycle       //  Sélection du mapcycle suivant
      mapcycle
      restart
    
    }
  }
}

//EOF

Pour cet exemple les différents fichiers mapcycles sont présents dans le répertoire mapcycles du serveur.
La fin du mapcycle2 appellera le mapcycle3, puis le mapcycle3 appellera le mapcycle4, etc.....
Pour terminer la boucle, le dernier mapcycle rappellera le premier.
On peut envisager ainsi la création de dizaines de fichiers et plus si affinités.

Avec un panachage judicieux des maps dans chaque fichier, la rotation sera invisible et donnera l'impression d'un très long et unique fichier mapcycle.

-=cool=-
Publié le 05/02/2019 17:50  Prévisualiser...   Imprimer...   Haut
Les messages  -  par FSMOD
LES MESSAGES SERVEUR

Hormis certains textes inclus dans les sources, tous les autres messages délivrés par le serveur au cours de la partie sont paramétrables en mode texte dans les fichiers de configuration.
En terme de fichiers de configuration, j'entends principalement le fichier cfg qui gère tous les CVAR du serveur (généralement appelé server.cfg) ainsi que les fichiers mapcycle qui gèrent la rotation des maps associés à leurs propres CVAR.
Il convient de noter que tous ces messages peuvent très bien être inscrits uniquement dans le fichier server.cfg. Ils seront alors émis quelle que soit la map en cours. Toutefois l'intégration d'une partie d'entre eux pourra se révéler plus judicieuse si elle est réalisée dans le fichier mapcycle où chaque map aura ses propres messages.

Les 4 types de CVAR messages sont:

  • g_modt
  • g_modt1 à g_modt10
  • g_message1 à g_message10
  • g_messageNew


Nous considérons dans un premier temps leur configuration dans le fichier server.cfg
Les exemples seront ceux de mon propre serveur LAN.


  g_modt 


puce2.gif Syntaxe

seta g_motd "fsmod.dimsonline.com"

Ce message est unique. Il délivre un texte qui s'inscrit juste après le hostname du serveur lors de la connexion. Si le texte n'est pas renseigné, la désignation de la map si elle existe, remontera d'une ligne. Toutefois il est préférable de toujours agrémenter ce CVAR d'un texte pour l'équilibre de la présentation de l'écran d'accueil.
A noter qu'en l'absence de texte, le CVAR doit toujours être suivi par "".
 

modtf.jpg


   g_modt1 à g_modt10 


puce2.gif Syntaxe

seta g_motdEnabled "1"
seta g_motdDisplayTime "8"
seta g_motd1 ""
seta g_motd2 "^7.:: W^IEL^yC^IOM^7E ::."
seta g_motd3 "^7.:: ^IFree Hosted ^yby NETLOR^I SAS^7 ::.
seta g_motd4 ""
seta g_motd5
"^y.::^I Download mod and sounds at ^7fsmod.dimsonline.com^I ^y::."
seta g_motd6 ""
seta g_motd7 ""
seta g_motd8 ""
seta g_motd9 ""
seta g_motd10 ""


Ces messages sont délivrés en entrée de jeu dans la map en cours. Ils s'affichent juste après une en-tête propre au mode utilisé sur le serveur. A noter que cette en-tête de 3 lignes maximum, n'est pas modifiable car codée dans les sources.

g_modtf.jpg


Analyse des CVAR

seta g_motdEnabled "1" : autorise l'affichage des messages ainsi que de l'en-tête. Le commutateur "0" n'autorise aucun affichage, ni des textes ni de l'en-tête.

seta g_motdDisplayTime "8" : temps de persistance en secondes des messages et de l'en-tête.


seta g_motd1  à seta g_motd10 : Il n'est pas nécessaire de renseigner les 10 messages. Par ailleurs, pour les besoins de la présentation à l'écran, des lignes peuvent ne pas comporter de texte. Comme précédemment, un message vide doit être suivi de "". Ainsi rédigés, les différents messages restituent leur présentation à l'écran et les messages non renseignés génèrent un saut de ligne.
Bien entendu tous les caractères introduisant les couleurs sont possibles.

  g_message1 à g_message10 


puce2.gif Syntaxe

seta g_messageEnabled "1"
seta g_messageStart "60" 
seta g_messageInterval "120"
seta g_message1 "^7Download mod and sounds at ^gfsmod.dimsonline.com"
seta g_message2 "^4You are playing^7 on ^1a french server !"
seta g_message3 "^3No hacker allowed. Be careful, you're ^$monitored^3 ! &10"
seta g_message4 ""
seta g_message5 ""
seta g_message6 ""
seta g_message7 ""
seta g_message8 ""
seta g_message9 ""
seta g_message10 ""

Ces messages sont émis chronologiquement durant la map en cours. Ils s'affichent en ligne chat, à savoir en bas à gauche de l'écran.
ATTENTION: contrairement aux CVAR g_modt(x), les lignes comportant un texte doivent se suivre
dans les CVAR g_message(x). Par contre il n'est pas nécessaire de renseigner les 10 messages.
Comme précédemment les caractères de couleurs sont admis. De plus il est également possible d'adjoindre des sons et pourquoi pas, des caractères spéciaux. Ainsi le message N°3 est ponctué par le son N°10. A noter le signe & devant le numéro du son qui, je le rappelle, introduit un son sans son texte d'origine enregistré dans le fichier voicecmds.cfg du serveur.


Analyse des CVARs

seta g_messageEnabled "1" : autorise la diffusion des messages. Le commutateur "0" n'autorise aucun affichage

seta g_messageStart "60"  : temps en secondes entre le dernier message et la reprise du premier, soit dans cet exemple, 1 minute s'écoulera entre le message N°3 et le message N°1.

seta g_messageInterval "120" : intervalle en secondes entre chaque message.

  g_messageNew  


puce2.gif Syntaxe

seta g_messageNew  "&13 ^7-= ^$G^7ood ^$D^7ay #z"

Ce message est délivré à chaque nouveau joueur qui se connecte. Dans cet exemple le son "good day" est délivré avec un nouveau texte. Le signe dièse associé au token z identifie l'ID du joueur qui vient de se connecter.


Voyons maintenant le paramétrage de ces messages par le biais du fichier mapcycle.
Seuls seront concernés les messages suivants :
  • g_modt
  • g_message1 à g_message10
  • g_messageNew
IMPORTANT: seuls les textes des messages seront définis dans ce fichier. En revanche les paramètres qui les introduisent seront toujours renseignés dans le fichier server.cfg à savoir:
  • seta g_motdEnabled "1"
  • seta g_motdDisplayTime "8"
  • seta g_messageEnabled "1"
  • seta g_messageStart "60"
  • seta g_messageInterval "120"
Dans ce cas, veillez que les messages du fichier server.cfg soient également vides entre les "" afin d'éviter un double emploi.

Considérons l'extrait suivant issu de la map 4 du fichier mapcycle.


 map4
 {

 Command "map mp_jor1"
   cvars
   {
      g_motd "fsmod.dimsonline.com"  
    
      g_messageNew  "&13 ^7-= ^$G^7ood ^$D^7ay #z ^$Map in progress : ^7mp_jor1"   
      g_message1 "^3Cheaters^1 will be banned ^3forever^1 ! ^1 &42"
      g_message2 "^7Site :^2 ^jfsmod.dimsonline.com"
      g_message3 "^7~ ^nHos^Eted ^KBy N^EETLOR ^nSAS^C ^7~"
      g_message4 "^7 You're Monitored !"
      g_message5 "^$Next map :  ^7mp_pra1"
      g_message6 ""
      g_message7 ""
      g_message8 ""
      g_message9 ""
 
      g_gravity 500
      g_speed "340"
      timelimit "15"
      scorelimit "50"
      dmflags "8"
      fraglimit "20"
      bot_minplayers 8
      g_gametype "dm"
      g_botskill 1
      g_camper "15"
      etc......

Pour faciliter la compréhension, on admettra que le joueur se connecte vers la fin de la map N°3.
Il verra d'abord

  1. Le texte introduit par le CVAR g_modt.
  2. Le message de bienvenue associé au son N°13 ainsi que l'information sur la map en cours
Au démarrage de la map N°4, dont l'extrait est représenté ci-dessus, il verra dans l'ordre:
  1. Le message N°1 associé au son N°42. Ce message est affiché quasiment au démarrage de la map
  2. Le message N°2, deux minutes plus tard. (120s)
  3. Le message N°3, deux minutes plus tard. (120s)
  4. Le message N°4, deux minutes plus tard. (120s)
  5. Le message N°5, deux minutes plus tard. (120s)
  6. Enfin le retour du message N°1 une minute plus tard. (60s)
Il convient de s'attarder sur le message N°5, car c'est là que l'on exploite vraiment les subtilités du fichier mapcycle.
Le but est d'informer le joueur sur la nature de la map suivante et de diffuser l'annonce vers la fin de la map en cours.
En ce cas il suffira de fixer la valeur du
CVAR g_messageInterval de manière à ce que la répétition de l'intervalle temporel émette le message concerné 1 ou 2 minutes avant la fin de la map.

puce.gif Exemple

Considérons une durée de map standard de 10 minutes (timelimit 10) soit 600 secondes
Nous désirons que le message N° 5 qui annonce la map suivante soit diffusé 1 minute avant la fin de la map en cours soit 60 secondes.
Le message N°1 étant diffusé au démarrage de la map il y aura 4 intervalles de temps jusqu'au message N°5.
La valeur de
g_messageInterval  sera donc égale à (600 - 60) / 4 = 135.
On pourra éventuellement prévoir une valeur de 45 pour
g_messageStart. Ainsi le message N°1 sera diffusé 15 secondes avant le timelimit.

On pourra créer de nouveaux messages pour chaque map, en reprenant éventuellement un tronc commun pour toutes les maps.

IMPORTANT: à noter que si aucun message n'est paramétré dans une map du mapcycle, les messages émis seront les mêmes que ceux de la map précédente.

 



 
-=eek=-
Publié le 05/02/2019 17:49  Prévisualiser...   Imprimer...   Haut
Maps SP  -  par FSMOD
LES MAPS SP


AVERTISSEMENT

Le but de cet article n'est pas d'expliciter dans le détail les procédures de codage des maps SP mais plutôt de fournir un éclaircissement sur leur existence cachée cool.

DEFINITION

A ses débuts, SOF en version V1 disposait de l'option Single Player (SP). Des maps spécifiques à cette version ont été prévues dans le fichier maps.pk3 que tout joueur possède.
Toutefois avec l'avènement de la version V1.03 gold, ces maps sont devenues obsolètes car non reconnues par l'exécutable sof2mp.exe relatif à cette nouvelle version gold.
Pourquoi se priver d'une belle brochette de maps qui ont fait les beaux jours de SOF à ses débuts, alors qu'au prix d'une modification, certes fastidieuse, il est tout a fait possible de les récupérer.
L'avantage est indéniable car la modification n'intervient que du côté serveur et tout joueur pourra se connecter car il possède d'office tout le pack de maps SP depuis le jour où il a installé SOF sur son PC.


PRINCIPE

Si vous lancez une map SP sur votre serveur LAN ou WAN, vous obtiendrez soit un plantage du serveur soit dans le meilleur des cas, une arrivée sur la map mais une impossibilité de vous déplacer.
Ceci pour deux raisons principales.

  • Les points de respawn ne sont pas prévus
  • De nombreuses fonctions ne sont pas reconnues

Exemple:
Voici un extrait du log serveur après une tentative de lancement d'une map SP:

------------------------------------------------------------
Gametype changed, clearing session data.
Warmup:
target_deactivate doesn't have a spawn function
traitor_handler doesn't have a spawn function
target_deactivate doesn't have a spawn function
target_level_change doesn't have a spawn function
target_activate doesn't have a spawn function
trigger_toolbox doesn't have a spawn function
trigger_toolbox doesn't have a spawn function
trigger_toolbox doesn't have a spawn function
trigger_objective doesn't have a spawn function
trigger_objective doesn't have a spawn function
trigger_objective doesn't have a spawn function
pickup_weapon doesn't have a spawn function
pickup_weapon doesn't have a spawn function
trigger_toolbox doesn't have a spawn function
trigger_toolbox doesn't have a spawn function
ref_tag doesn't have a spawn function
ref_tag doesn't have a spawn function
target_activate doesn't have a spawn function
trigger_toolbox doesn't have a spawn function
security_searchlight doesn't have a spawn function
security_searchlight doesn't have a spawn function
trigger_objective doesn't have a spawn function

-----------------------------------

----- Server Shutdown -----


On constate que de nombreuses fonctions n'ont pas été reconnues ce qui a généré dans ce cas, un plantage serveur.

REMEDE

Il y a deux possibilités:

  1. Recoder les sources de manière à ce que toutes les fonctions soient opérationnelles.
  2. Recoder les maps elles-mêmes et modifier les fonctions non reconnues.
L'avantage de la première solution est un codage unique des sources qui autorise la reconnaissance de toutes les maps par le biais de fichiers additionnels de type ent. Cette procédure engendre la création d'un mode spécifique et tout manager de serveur devra posséder ce mode pour exploiter les maps SP. Or, la plus grosse des difficultés pour un futur manager est de récupérer ce mode serveur ainsi que les fichiers associés car il est bien connu, que certains développeurs se montreront réticents à distribuer le produit de leur oeuvre, sauf exceptionnellement, pour les plus vénaux d'entre eux, contre versement d'une certaine somme. J'en connais au moins un, ex-leader d'un clan défunt ! wink.

Quant à la deuxième solution, pour laquelle j'ai opté, elle nécessite bien entendu un travail assez fourni, puisque chaque map doit être décortiquée et recodée en conséquence. Mais l'immense avantage se reconnait dans la portabilité du système car toutes ces maps modifiées pourront être empaquetées dans un seul fichier PK3 et pourra tourner sous n'importe quel mode, ROCMOD, GOLDRUSH, XSMOD,etc.....

 

Voici quelques maps SP que j'ai modifiées. (cliquez pour agrandir)

air1.jpg air2.jpg air3.jpg air4.jpg arm1.jpg arm2.jpg
col3.jpg col7.jpg col8.jpg col10.jpg finca1.jpg finca3.jpg
finca4.jpg hk1.jpg hk3.jpg hk4.jpg hk5.jpg hk6.jpg
hk7.jpg hos1.jpg hos3.jpg hos4.jpg kam4.jpg kam5.jpg
kam6.jpg kam7.jpg kam10.jpg kam11.jpg kam12.jpg pra1.jpg
pra6.jpg shop1.jpg shop4.jpg shop5.jpg shop7.jpg shop8.jpg
kam1.jpg kam2.jpg finca2.jpg pra2.jpg pra3.jpg liner1.jpg
liner2.jpg liner3.jpg col2.jpg      
 
 
-=smile=-

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

Vous êtes ici :   Accueil » Documentation