Recherche
 
Fermer
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
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


Si vous exploitez le mode MDK sur votre serveur, il vous faudra recourir à sa fonction Ent Editor dont le mode d'emploi est suffisamment détaillé sur le présent site à la rubrique MODE MDK.

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 kam1.jpg kam2.jpg
col2.jpg pra3.jpg finca2.jpg pra2.jpg liner1.jpg liner2.jpg
liner3.jpg      
 
 
-=smile=-

Publié le 05/02/2019 17:48  Prévisualiser...   Imprimer...   Haut
Commandes Admin  -  par FSMOD
Les commandes Admin


Avant de décrire les différentes commandes dont dispose un Admin, il est utile de rappeler sa position hiérarchique parmi les entités qui animent SOF.
Sans vouloir entrer dans les arcanes des sources ROCMOD, on constate que la gradation des intervenants du plus fort au plus faible s'établit comme suit:

 

Intervenants Indice
  Sysop 3
  Admin 2
  Referee (arbitre) 1
  Player 0

 
 
Un Sysop a donc tous les pouvoirs. En particulier, c'est lui qui possède le mot de passe du serveur (rcon) et peut, à ce titre, désigner n'importe quel joueur comme Arbitre ou Admin. On passera sous silence la fonction d'arbitre dont les pouvoirs sont limités et qui à mon sens, n'a aucune utilité dans SOF2, même dans le déroulement d'un match. Seuls l'Admin et à fortiori le Sysop ont un rang suffisant pour agir raisonnablement. 

Dans un clan normalement constitué, c'est donc le Sysop et lui seul qui choisit ses Admins parmi les membres. Il est généralement le propriétaire du serveur et peut, dans le cas d'une cofondation nommer un ou plusieurs autres Sysop. Il faut toujours garder à l'esprit qu'un Sysop a tous les droits sur les autres joueurs mais aussi, possède le pouvoir suprême de modifier tous les CVARS du server, car il détient le rcon.

Il est évident qu'en cas d'abus ou de malversation d'un Sysop, votre qualité de manager vous autorise la gestion de votre serveur par le biais d'une liaison FTP. Vous pouvez ainsi changer le rcon et licencier le Sysop déviant.

Il faut aussi remarquer que même dans le cas d'une modification d'un CVAR serveur en cours de jeu, rien n'est dramatique. Il suffit de relancer le serveur pour qu'il se réinitialise avec les paramètres de son fichier de configuration.
Mais dans tous les cas évitez de partager les identifiants d'accès FTP à votre serveur à moins de placer une confiance absolue dans la personne à qui vous les confierez.

Un dernier détail qu'il est bon de connaître, le Sysop est immunisé contre les pénalités de l'anticamp, alors qu'un Admin reste sensible à leur effet, comme n'importe quel autre joueur.smile


Les commandes Admin

Les commandes doivent être saisies dans la fenêtre console et précédées du mot adm
A noter que la plupart de ces commandes peuvent être directement activées par le biais de l'interface SYSOP propre à ma version.

 
Commande Action Exemple Signification
talk Envoie un message à tous les joueurs. Le terme admin  précède le message. adm talk Hello
chat Envoie un message à tous les Admins. le vocable Admins only précède le message. adm chat Hello
kick Ejecte le joueur désigné par son ID pour une durée choisie en min (15 par défaut). Un texte optionnel peut être saisi à l'attention du joueur. adm kick 8 10 Tricheur Le joueur N°8 est éjecté pour une durée de 10 min. le terme Tricheur apparaît dans l'interface d'annonce
ban Bannit le joueur désigné par son ID pour une durée choisie en min (15 par défaut). Un texte optionnel peut être saisi à l'attention du joueur. adm ban 7 60 Wallhack Le joueur N°7 est banni pour une durée d'une heure. le terme Wallhack apparaît dans l'interface d'annonce
cancelvote Annule un vote en cours. adm cancelvote
passvote passe le vote en cours. adm passvote
gametype Sélectionne un gametype. adm gametype dm Lance une map en gametype DM
restart Relance la map. adm restart
mapcycle Lance la map suivante inscrite dans le fichier *.mapcycle du serveur. adm mapcycle
map Lance la map spécifiée. adm map mp_hk2 Lance la map mp_hk2
warmup Valide ou annule le warmup. Pour mémoire la période de warmup entre 2 maps permet aux joueurs de "s'échauffer" sans que les scores soient comptabilisés. La durée du warmup est fixée par le serveur (CVAR g_warmup). adm warmup on

adm warmup off
Valide le warmup

Annule le warmup
friendlyfire Valide ou annule le mode friendlyfire. Sur ON vous pouvez tuer vos équipiers (pénalité). Sur OFF ils sont protégés de vos tirs. adm friendlyfire on

adm friendlyfire off
Equipiers vulnérables

Equipiers protégés
extendtime Prolonge la partie d'une valeur fixée en min, 15 par défaut si aucune valeur n'est précisée. adm extendtime 20 Prolonge la partie de 20 min
timelimit Fixe la durée de la partie en min. adm timelimit 10 La partie durera 10 min
scorelimit Fixe le score à atteindre pour clore la partie. adm scorelimit 100 Le score est fixé à 100 kills
endmap Termine la map en cours et envoie les scores. adm endmap
pause Fige la partie en cours. adm pause
unpause Rétablit la partie en cours. adm unpause
freezemap Fixe ou annule l'exclusivité d'une map dans le mapcycle.  adm freezemap 1ère action: la map tourne en boucle.
2ème action: le cycle des maps reprend normalement
startmatch Démarre  un match avec des réglages particuliers. Pour info le fichier startmatch.cfg est placé dans le répertoire cfgs du serveur. adm startmatch
endmatch Met fin à un match en reprenant les réglages normaux. Pour info le fichier endmatch.cfg est placé dans le répertoire cfgs du serveur.  adm endmatch
forcematch Force le démarrage d'un match même si tous les joueurs ne sont pas prêts. adm forcematch
cfg Lance un fichier contenant des réglages particuliers.
Pour info le fichier concerné est placé dans le répertoire cfgs du serveur.
adm cfg bot Lance le fichier bot.cfg qui contient des réglages particuliers pour les bots.
password Change le mot de passe du serveur. Attention ce n'est pas le rcon mais le mot de passe pour les clients privés (g_password). adm password toto Les clients privés devront entrer le password toto pour accéder au serveur.
eventeams Egalise le nombre de joueurs dans chaque équipe. adm eventeams
swapteams Permute les équipes. adm swapteams
shuffleteams Permute aléatoirement les joueurs dans les équipes. adm shuffleteams
forceteam Force un joueur à joindre une équipe particulière. adm forceteam 5 red Force le joueur N°5 à rejoindre l'équipe rouge
switch Déplace un joueur vers l'équipe adverse. adm switch 3 Déplace le joueur N°3 vers l'équipe adverse.
swap Permute 2 joueurs d'une équipe à l'autre. adm swap 3 5  Les joueurs 3 et 5 passent d'une équipe à l'autre
lock Bloque ou débloque une équipe. adm lock red Bloque le nombre actuel de l'équipe rouge.
invite Invite un joueur à joindre une équipe bloquée. adm invite 6 blue Invite le joueur N°6 à joindre l'équipe bleue.
clanvsall Réorganise les équipes pour placer tous les membres d'un clan dans une même équipe. adm clanvsall red Tous les membres du même clan vont rejoindre l'équipe rouge
tag Marque un joueur par un repère (non visible) adm tag 7 Le joueur N°7 est étiqueté
swaptags Tous les joueurs sont marqués d'un repère adm swaptags Tous les joueurs sont étiquetés
cleartags Efface tous les repères des joueurs marqués adm cleartags Tous les marqueurs sont annulés
tagvsall Réorganise les équipes de manière à grouper tous les joueurs étiquetés du même côté adm tagvsall red Tous les joueurs marqués vont rejoindre l'équipe rouge
mute Rend muet ou redonne la parole à un joueur. adm mute 5 Fait taire le bavard N°5
penalty Envoie le joueur dans une case de penalty. En option une durée peut être précisée ainsi qu'un motif. adm penalty 5 10 camping Un penalty de 10 sec est décerné au joueur N°5 pour camping
unpenalty Libère un joueur de sa case de penalty. adm unpenalty 5 Libère le joueur N°5
strike Tue un joueur. adm strike 5 Tue le joueur N°5
slap Administre une gifle avec divers objets (1 à 5). adm slap 6 1 Gifle au joueur N°6 avec l'objet 1 
strip Dépouille un joeur de ses armes sauf du couteau. adm strip 3 Prive le joueur N°3 de ses armes
fry Embrase un joueur. adm fry 5 Le joueur N°5 prend feu
launch Propulse un joueur à la verticale. adm launch 5 Le joueur N°5 décolle
explode Explose un joueur. adm explode 4 Le joueur N°4 explose
plant Immobilise un joueur. adm plant 4 Le joueur N°4 est figé sur place
surrender Désarme un joueur et lui fait lever les bras. adm surrender 3 Le joueur N°3 est désarmé et lève les bras.
respawn Envoie le joueur à un point de réapparition (respawn). adm respawn 5 Le joueur N°5 retourne à la case départ.
bait Envoie un joueur à un point de respawn et le fige sur place sans défense. adm bait 5 Le joueur N°5 est renvoyé sans armes et immobilisé à un point de respawn.
forcesay Oblige un joueur à dire quelque chose. adm forcesay 5 Je suis un noob Le joueur N°5 émettra la phrase "je suis un noob"
dummy Applique ou supprime un marqueur au dessus de la tête d'un joueur. Ce marqueur est visible à travers les obstacles. adm dummy 3 Le joueur N°3 est pointé par le marqueur
novote Empêche un joueur de voter pendant un certain temps (en min). adm novote 5 10 Le joueur N°5 est privé du droit de vote pendant 10 min.
rename Attribue un nouveau pseudo à un joueur. adm rename 5 Biloute Le joueur N°5 à été renommé  Biloute.
backfire Retourne les projectiles vers leur propre tireur. adm backfire 5 Le joueur N°5 s'autodétruit par ses propres balles.
cvarcheck Retourne la valeur du CVAR. Si le CVAR n'a pas été paramétré par le client un "unset" est renvoyé. adm cvarcheck 5 cl_guid Retourne le GUID du joueur N°5


del.gifCommande cvarset

Il existe dans le code source de ROCMOD, une commande particulière, cvarset, que le programmeur à volontairement inhibée, la jugeant dangereuse dans les mains d'un Admin trop zélé ou totalement irresponsable (Si, si il en existe).
Les codes relatifs à cette commande sont toujours présents dans les sources mais ont été désactivés.

 
cvarsetcode.jpg




J'ai constaté que cvarset est en effet, un outil très subtil à ne pas mettre entre toutes les mains.

cvarset permet à un Admin de modifier à distance la valeur d'un CVAR choisi chez un client.



suivant.gif Exemple:

  adm cvarset 5 com_maxfps100   Fixe le valeur du cvar com_maxfps à 100 chez le client N° 5

Tous les CVARS sont accessibles et il est aisé d'imaginer la pagaille qui pourrait résulter chez le client, suite à l'envoi de valeurs fantaisistes. Certaines d'entre elles pourraient même être déclarées hors normes si d'aventure le serveur concerné était protégé par punkbuster, entrainant ipso facto l'éradication du joueur.

Dans certains modes customisés la fonction cvarset a toutefois été réactivée par des programmeurs avertis.


biggrin.gifComment reconnaître un serveur équipé de cvarset

Mais c'est très simple. Il suffit de taper en mode console : adm cvarset

et voici les 2 réponses possibles du serveur:

 
Le serveur est équipé de cvarset Le serveur n'est pas équipé de cvarset
cvarseton.jpg cvarsetoff.jpg


Bien entendu il faut envisager le cas particulier d'un programmeur encore plus averti qui aura changé le nom du CVAR (J'en connais un !) et par conséquent deviendra indétectable par le joueur lambda.

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

Vous êtes ici :   Accueil » Documentation