Documentation
Toutes les pages
-  -  par FSMOD

DOCUMENTATION

   

Cette documentation, loin d'être exhaustive, retrace au fil des mois et des années, la consignation de mes notes, constatations, développements et essais en tous genres au chevet de SOF2.

Si vous n'avez pas la patience minimum requise pour lire les rubriques jusqu'à leur conclusion et d'en comprendre la substantifique moelle, il est inutile de vous détériorer les neurones. Contentez vous de jouer avec de mauvais paramètres, de fausses idées sur les vrais réglages et de connexions hasardeuses sur des serveurs dont vous n'utilisez même pas un mode identique.

Ne m'en veuillez pas d'avoir usé de concepts explicatifs qui vous ont semblé abscons mais qui, à contrario et je l'espère, éclaireront la frange ésotérique des connaisseurs, hélas de plus en plus ténue.

modemploi.jpg

-= eek =-

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

DOCUMENTATION

   

Cette documentation, loin d'être exhaustive, retrace au fil des mois et des années, la consignation de mes notes, constatations, développements et essais en tous genres au chevet de SOF2.

Si vous n'avez pas la patience minimum requise pour lire les rubriques jusqu'à leur conclusion et d'en comprendre la substantifique moelle, il est inutile de vous détériorer les neurones. Contentez vous de jouer avec de mauvais paramètres, de fausses idées sur les vrais réglages et de connexions hasardeuses sur des serveurs dont vous n'utilisez même pas un mode identique.

Ne m'en veuillez pas d'avoir usé de concepts explicatifs qui vous ont semblé abscons mais qui, à contrario et je l'espère, éclaireront la frange ésotérique des connaisseurs, hélas de plus en plus ténue.

modemploi.jpg

-= eek =-

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

Publié le 17/11/2021 15:23  Prévisualiser...   Imprimer...   Haut
Compiler avec SDK  -  par FSMOD

Compiler SOF2 avec SDK

  dd.gif  Télécharger sur le présent site, le pack sof2sdk.rar qui après décompactage, vous délivrera le répertoire sof2sdk.

Ce répertoire contient tous les fichiers et bibliothèques nécessaires à l'élaboration des fichiers qvm client et serveur dans la version originelle 2.1c de Rocmod

Il convient de noter que ces fichiers source peuvent facilement être édités avec un simple éditeur de texte comme le très performant Notepad++.
Toutefois l'emploi d'un éditeur C spécifique avec sa coloration syntaxique et ses nombreux outils, rendra la tâche plus aisée.
Je recommande vivement CodeBlocks qui offre tous les outils pour programmer en C, avec compilateur, debugger et éditeur. C'est un freeware que vous trouverez sur le site éponyme : www.codeblocks.org

  dir.gif  Placer le répertoire sof2sdk à la racine de votre disque C: 
Respecter cette destination car les chemins référencés dans les fichiers bat pointent vers C:sof2sdk

Vous pouvez éventuellement créer un raccourci de ce répertoire vers votre bureau pour un accès plus aisé.

 tolist.gif  Définir les variables d'environnement. La procédure suivante est associée à Windows 10. Elle est très peu différente pour les versions de Windows antérieures.      
  • Appuyer sur les touches Windows et E
  • Effectuez un clic droit sur Ce PC

        ce_pc.jpg

  • Sélectionnez l'option Propriétés.
  • Cliquez sur Paramètres avancés du système.

         param_avan.jpg

  • Vous obtenez l'interface suivante. Cliquez sur le bouton Variables d'environnement.

             variables_clic.jpg

  • Vous obtenez l'interface suivante. Sélectionnez la variable système nommée Path dans le bloc Variables système.

            variables_path.jpg

  • Vous obtenez l'interface suivante. Cliquez sur le bouton Nouveau.
  • Puis entrez la ligne suivante : newline.jpg

           variables_enter.jpg

  •    Validez par OK et fermez toutes les interfaces.

Votre outil de compilation SDK est maintenant disponible et opérationnel.

b_list.gif Inventaire du répertoire sof2sdk

Nous nous intéresserons principalement au contenu du répertoire code et de ses composants les plus importants.

main_rep_code.jpg

dir1.gif game contient les fichiers codes qui après compilation, donneront le fichier sof2mp_game.qvm.

dir1.gif cgame contient les fichiers codes qui après compilation, donneront le fichier sof2mp_cgame.qvm.

dir1.gif ui contient les fichiers codes qui après compilation, donneront le fichier sof2mp_ui.qvm.

dir1.gif vm recueille après compilation,  les 3 fichiers précédents.

tolist.gif  all.bat lance la compilation des 3 fichiers qvm.

calendard.gif Noter: Les 3 fichiers batch ci-dessus évoqués, contiennent tous une ligne pause de manière à conserver à l'écran le résultat de la compilation. Cela implique qu'il est nécessaire de presser une touche quelconque pour lancer la compilation du fichier batch suivant, comme le montre la capture suivante:

pause.jpg

Le fichier sof2mp_game.qvm est destiné au dossier VM du serveur.
Les fichiers sof2mp_cgame.qvm et sof2mp_ui.qvm sont destinés au dossier VM inclus dans le fichier PK3 client.

calendard.gif Noter: Il est possible de lancer séparément les compilations des 3 fichiers qvm par une action sur les fichiers batch game-bots.bat, cgame.bat et ui.bat. En cette occurrence, les 3 fichiers qvm seront respectivement stockés dans les répertoires vm de chaque répertoire game, cgame et ui. Ce processus reste toutefois exceptionnel car, sans entrer dans des détails de langage C dont ce n'est pas l'objet de cette page, il faut se rappeler que les fichiers serveurs et client sont complémentaires et qu'ils exploitent des données partagées dont les compilations intrinsèques restent liées. 

calendard.gif Noter: Comme il a été précisé en intro, ce compilateur intègre les sources Rocmod 2.1c. Si vous désirez compiler avec d'autres sources il suffira simplement de remplacer les fichiers des répertoires game, cgame et ui par vos propres fichiers. Attention toutefois à vérifier que vos versions n'utilisent pas de nouveaux fichiers c non listés dans les fichiers batch, auquel cas il conviendra de les ajouter.
Exemple: Si vous rencontrez un fichier g_test.c ou autre, non connu des sources originelles, ajoutez simplement la ligne suivante dans le fichier game.bat:

%cc% ../../game/g_test.c
@if errorlevel 1 goto quit

new.gif  En conclusion

Si tout ce passe bien voici ce que vous obtiendrez dans cet exemple de compilation du fichier sof2mp_game.qvm, où la réussite de l'opération est avérée.

compil_ok.jpg

-=eek=-

Publié le 17/11/2021 15:19  Prévisualiser...   Imprimer...   Haut
6 - Version 2.2 FS  -  par FSMOD

Version MDK 2.2-1_FS

tolist.gif  GENERALITES

Cette version a été spécifiquement conçue pour l'Administrateur ou le manager d'un serveur MDK. Ceux ci peuvent d'un simple clic sur une touche prévue à cet effet, agir sur les paramètres du serveur sans avoir à recourir à des instructions complexes, saisies en console. Bien entendu cette version reste accessible, voire recommandée pour tout joueur lambda. Elle se fonde sur la version originale de MDK mais dispose d'un nouveau graphisme.

Une des particularités, parmi bien d'autres du mode MDK, est d'offrir à tout utilisateur doté d'un minimum de connaissances en programmation, la possibilité de créer son propre style d'interface et partant, ses propres commandes en liaison avec le contrôle d'un serveur.

La version client 2.2 d'origine propose 2 styles natifs, soit le style CLASSIC pour les fidèles inconditionnels de la version primitive de SOF2 dans sa livrée verte et le style DEFAULT qui est en fait le style MDK.

style_classic.jpg style_defaut.jpg

La version client 2.2_1_FS dispose d'un style supplémentaire FSMOD. A noter que le style FSMOD est désormais reconnu sous le vocable DEFAULT et que l'ancien style DEFAULT de la version originale a pris l'appellation MDK. Rendons à César ce qui appartient à César!

style_fs.jpg

Durant le jeu, vous pouvez, à tout moment sélectionner un autre style. Lorsque vous quittez le jeu, votre dernier style utilisé est mémorisé et cela implique qu'au prochain lancement de SOF2 ce dernier style sera reconnu et lancé.

calendard.gif Toutefois quel que soit le dernier style utilisé, lorsque vous lancerez SOF2 vous arriverez toujours sur la présentation suivante:

arivee_fs.jpg

Après connexion à un serveur, si le dernier style utilisé était CLASSIC vous arrivez sur le panel OUTFITTING suivant:

arivee_classic.jpg

Pour accéder au choix d'un autre style, sélectionnez le menu après un appui sur la touche ECH, puis MDK X / SETTINGS / Menu Styles

classic_settings.jpg

De même si le dernier style utilisé était MDK vous arrivez sur le panel OUTFITTING suivant:

arivee_mdk.jpg

Pour accéder au choix d'un autre style, sélectionnez le menu après un appui sur la touche ECH, puis MDK X / SETTINGS / Menu Styles

mdk_settings.jpg

calendard.gif NB: La touche SETTINGS sous les styles MDK et CLASSIC est représentée par l'icône  key_settings.jpg 

Sous FSMOD elle est libellée en clair.

tolist.gif SPECIFICITES

Voici quelques captures d'écran retraçant les différentes options disponibles pour l'Admin ou le manager d'un serveur ou pour tout autre client ne disposant pas de ces droits. 

gysample.gif Menu général

menus_bar.jpg

gysample.gif Call Vote

call_vote.jpg

gysample.gif Admin

Scrim Maps​ Actions
scrim.jpg maps.jpg actions.jpg
Extras Settings Infos
extras.jpg settings.jpg infos.jpg

calendard.gif Le panel Infos énonce à l'attention de l'Admin les préceptes suivants:

Le panel Admin contient toutes les commandes disponibles pour le Sysop et les Admins. Les touches cerclées de noir sont exclusivement réservées au Sysop, c'est à dire celui qui possède le RCON du serveur.

Les touches cerclées de bleu sont dévolues aux Admins.

Toutefois le Sysop a le pouvoir à tout moment de contrôler les commandes Admin et de les invalider si besoin est.

Bien entendu le Sysop peut agir sur n'importe quelle touche quelle que soit sa couleur.

Dans tous les cas, si vous êtes perdu dans les commandes, cliquez sur Restart pour revenir à une situation plus saine.

gysample.gif MDK

User Settings Binds
mdk_user.jpg mdk_settings_fsm.jpg mdk_binds.jpg
Infos Display Competition
mdk_infos.jpg mdk_display.jpg mdk_compet.jpg
Ignore
mdk_ignore.jpg

calendard.gif Remarques particulières

find.gif Onglet Settings: La touche Keyboard Format dispose de 2 options AZERTY ou QWERTY qui peuvent être combinées avec la touche Chat Interface et ses 2 états, Original ou New selon la table de vérité suivante: 

tv.jpg

Pour les puristes les CVAR associés à ces touches et leur valeur binaire sont:

Bouton CVAR 0 1
Chat Interface cg_newChatEntry Original New
Keyboard Format cg_KbFormat QWERTY AZERTY

Ces valeurs peuvent être fixées définitivement dans un fichier de configuration et vous éviteront ainsi de perdre vos réglages.

find.gif Onglet Display

  • Le panel Screen liste tous les formats d'écran compatibles avec votre carte graphique. Les réglages sont mémorisés dans le fichier mdkmp.cfg du répertoire IP lié au serveur sur lequel les réglages ont été effectués. Ces réglages sont prioritaires sur les génériques effectués en entrée de jeu.
  • Le bouton Crosshair Type propose 33 formes de réticules de visée en accord avec le CVAR sv_crosshairs du serveur. Un affichage triple permet d'appréhender autant que faire se peut, le rendu sur des fonds différents. Les crosshairs sont listés dans la bibliothèque in fine.
  • Le curseur Extra r_gamma permet de forcer le réglage du CVAR r_gamma au delà de la valeur maximum limitée initialement à 2. Une nouvelle valeur maximum de 3 permet un meilleur éclairage sur des maps très sombres. 

calendard.gif Bibliothèque des crosshairs

ch1.png ch2.png ch3.png ch4.png ch5.png ch6.png ch7.png
ch8.png ch9.png ch10.png ch11.png ch12.png ch13.png ch14.png
ch15.png ch16.png ch17.png ch18.png ch19.png ch20.png ch21.png
ch22.png ch23.png ch24.png ch25.png ch26.png ch27.png ch28.png
ch29.png ch30.png ch31.png ch32.png ch33.png

gysample.gif Rappel important

Comme il a été évoqué dans la rubrique installation du mode MDK, il est bon de rappeler qu'en cas de problème vous devez systématiquement effectuer les actions suivantes:

  • ​Dans le répertoire MDK les seuls fichiers pk3 autorisés sont mdk_mod_X_2.2-1_fs.pk3 et éventuellement mdk_mod_X_2.1_u1.pk3
  • Dans le répertoire MDK effacez les fichiers sof2mp.cfg et sof2mp_uix86.dll
  • Dans le répertoire 62_4_25_41_20105 effacez le fichier mdkmp.cfg et éventuellement le fichier sof2mp.cfg
  • Dans le répertoire MP effacez éventuellement le fichier sof2mp.cfg

-=rolleyes=-

Publié le 04/10/2021 21:32  Prévisualiser...   Imprimer...   Haut
5 - Identités  -  par FSMOD

Identités

Ces nouvelles identités, propres à MDK, ont été ajoutées aux identités natives de SOF2.

La colonne "instruction de configuration" précise la ligne "prête à l'emploi" qu'il convient d'entrer dans le fichier de configuration pour revêtir l'identité associée.

Instruction de configuration Icône
seta identity "NPC_civilian_raincoat / rainsuit" npc_civilian_raincoat ( rainsuit ).jpg
seta identity "NPC_colombian_emplacedgunner / col_rebel_h5" npc_colombian_emplacedgunner ( col_rebel_h5 ).jpg
seta identity "NPC_czech_rain_soldier_elite / rainsuit3" npc_czech_rain_soldier_elite ( rainsuit3 ).jpg
seta identity "NPC_hansen / shop_guard_w1" npc_hansen ( shop_guard_w1 ).jpg
seta identity "NPC_hospital_guard_hos2 / security_guard" npc_hospital_guard_hos2 ( security_guard ).jpg
seta identity "NPC_rmg_snow_marine / rmg_snow_marine2" npc_rmg_snow_marine ( rmg_snow_marine2 ).jpg
seta identity "SKN_colombian_soldier_female / female_colombian_soldier_n" skn_colombian_soldier_female ( female_colombian_soldier_n ).jpg
seta identity "SKN_deviant1 / deviant1_n" skn_deviant1 ( deviant1_n ).jpg
seta identity "SKN_female_civilian_pants / female_civilian_w4_n" skn_female_civilian_pants ( female_civilian_w4_n ).jpg
seta identity "SKN_female_marine / female_marine_soldier_n" skn_female_marine ( female_marine_soldier_n ).jpg
seta identity "SKN_female_snow_soldier / female_snow_soldier_n" skn_female_snow_soldier ( female_snow_soldier_n ).jpg
seta identity "SKN_finca_maid / finca_maid_n" skn_finca_maid ( finca_maid_n ).jpg
seta identity "SKN_prometheus_soldier_female / female_prometheus_armor_n" skn_prometheus_soldier_female ( female_prometheus_armor_n ).jpg
seta identity "SKN_sissy / sissy_boy" skn_sissy ( sissy_boy ).jpg
seta identity "SKN_taylor_urban / taylor_armor_n" skn_taylor_urban ( taylor_armor_n ).jpg

-=wink=-

Publié le 27/09/2021 18:26  Prévisualiser...   Imprimer...   Haut
4 - Les Textures  -  par FSMOD

LES TEXTURES

Les fichiers ent permettent des concepts plus élaborés que l'ajout de simple modèles BSP ou autres items. Ils autorisent la refonte complète du décor d'une map offrant ainsi un dépaysement par rapport aux univers archi connus des maps habituelles.

Si vous désirez changer les décors d'une map sans pour autant ajouter quelque modèle que ce soit, il suffira de créer un fichier ent et d'y recopier simplement la totalité de la partie texte du fichier BSP.

Les changements de décors ne seront pas générés automatiquement et vous devrez saisir les textes manuellement dans le fichier ent.

Les exemples qui suivent sont des configurations types qui vous permettront de progresser. 

b_list.gif     EXEMPLE 1  

Dans la map mp_raven vous considérez que la moquette des couloirs est trop salissante et qu'un joli parquet damassé serait plus seyant.

mini_raven_floor_carpet.jpg

gysample.gif  REMARQUE: Avant de commencer il convient de préciser que tous les symboles graphiques sont inclus dans le fichier système textures0.pk3 qu'il vous faudra décompacter pour vos recherches.

Puis il vous faudra identifier l'image basique qui, par sa multiplication, a permis la pose de la moquette.

Dans cet exemple l'image se trouve dans le chemin suivant:  textures/airport/carpet_runner
 

mini_carpet_runner.jpg

Si vous éditez le fichier mp_raven.bsp, une recherche sur le terme "carpet_runner" renverra la ligne suivante (en grisé), ce qui confirme le chemin vers l'image:

bsp_raven_carpet.jpg

gysample.gif  REMARQUE: Toutes les références aux textures sont libellées en texte clair dans les premières lignes de la première partie binaire. Ceci est valable quelle que soit la map.

Le motif de remplacement choisi se situe à textures/finca/floor_decorwood

mini_floor_decorwood.jpg

Pour activer la permutation des motifs écrivez le paragraphe suivant dans le fichier mp_raven.ent

ent_carpet_wood.jpg

Après avoir placé le fichier mp_raven.ent dans votre répertoire serveur MODS (sous-répertoire VAR1 pour ne pas altérer la map d'origine), lancez le serveur et à votre arrivée dans la map vous marcherez désormais sur un beau parquet ciré !

mini_raven_floor_wood.jpg

b_list.gif     EXEMPLE 2   

On reste dans la map mp_raven. L'exemple portera sur un changement des briques de façade extérieure.

mini_raven_orig_mur.jpg

Le motif de ces briques se trouve ici: textures/hongkong/brick1

mini_brick1.jpg

La ligne concernée est bien visible dans la partie binaire du fichier mp_raven.bsp

bsp_raven_brick.jpg

Le motif de remplacement se trouve à : textures/jordan/brick_brown

mini_brick_brown.jpg

Comme précédemment, pour activer la permutation des motifs, écrivez le paragraphe suivant dans le fichier mp_raven.ent

ent_brick.jpg

Après avoir lancé la map doté de son fichier ent modifié, la façade aura cet aspect:

mini_raven_mod_mur.jpg

b_list.gif     EXEMPLE 3   

Un écran éteint dans la map mp_shop n'est pas du plus bel effet

mini_shop_orig_tv.jpg

L'image de l'écran est située ici textures/finca/tv_bigscreen

mini_tv_bigscreen.jpg

Comme le confirme cet extrait du fichier mp_shop.bsp

bsp_shop_tv.jpg

Le choix d'un nouvel écran s'est arrêté sur ce motif disponible ici : textures/armory/comwall1

mini_comwall1.jpg

La permutation des motifs sera effective après avoir écrit le paragraphe suivant dans le fichier mp_shop.ent

ent_tvscreen.jpg

Après avoir lancé la map doté de son fichier ent modifié, l'écran aura cet aspect:

mini_shop_mod_tv.jpg

gysample.gif  REMARQUE: Dans cet exemple les 2 images étaient au même format soit 512 x 512. Le codage de la map les a volontairement redimensionné sous une forme rectangulaire.

Au final la salle de conférence pourrait présenter cet aspect après d'autres modifications que je vous laisse imaginer.

mini_shop_mod.jpg

b_list.gif       EXEMPLE 4   

Voici une difficulté supplémentaire car outre l'ajout d'un modèle BSP, l'opération portera sur la modification même de la texture du modèle ajouté.

Considérons la map mp_raven dans laquelle un tapis de neige va devoir recouvrir le décor. En procédant comme il a été évoqué plus haut, il suffira de recherche tous les motifs constitutifs du sol, pavés, bordures, toiture, etc puis de les identifier dans le fichier mp_raven.bsp et enfin, de leur substituer une surface plane enneigée.

Le motif neige sera choisi ici: textures/kamchatka/snow01  

mini_snow01.jpg

L'aperçu suivant extrait du fichier mp_hk1.ent montre 5 surfaces qui ont été remplacées par la copie multiple du motif snow01

ent_snow_flat.jpg

Et voila le résultat sur la map:

mini_hk1_snow_flat.jpg

Jusque là rien de bien nouveau. On a appliqué les procédures des exemples précédents.

Mais on se propose maintenant d'ajouter des monticules de neige résultant d'une grosse tempête. La solution est de choisir un modèle BSP illustrant une forme de tertre et de le plaquer au sol.

Le motif choisi est ici : instances/kamchatka/cover_snow1

mini_cover_snow1.jpg

On va commencer par positionner quelques uns de ces monticules aléatoirement sur le sol, par l'écriture des paragraphes suivants dans le fichier mp_hk1.ent

A noter que le placement de ces monticules pourra être fait aisément avec la fonction Ent Editor.

ent_relief.jpg

Ce qui donne cela sur la map

mini_hk1_relief.jpg

Toutefois malgré son nom, ce modèle représente une neige bien terne et sans rapport avec la blancheur de la poudreuse du décor.

gysample.gif  REMARQUE: Un modèle BSP a la particularité de posséder ses propres textures. Il suffira donc de remplacer une texture codée à l'origine, par une nouvelle texture de son choix. L'opération sera similaire aux exemples précédents.

En éditant le fichier cover_snow1.bsp on identifie la ligne pointant vers la texture à savoir textures/instances/cave_rockside

bsp_cover_snow1.jpg

On se propose donc de changer cette texture par un motif de neige différent de celui du sol.

Il est ici : textures/kamchatka/snow_2

mini_snow_2.jpg

La substitution des motifs sera exécutée par le paragraphe suivant inscrit dans le fichier mp_hk1.ent

ent_modif_bsp.jpg

Ce paragraphe unique s'appliquera à tous les modèles cover_snow1

Et au final, la map aura cet aspect

mini_hk1_snow_relief.jpg

b_list.gif      EXEMPLE 5   

Dans la map mp_trainyard, l'affichage mural d'oriflammes, entre autres posters idéologiques de triste mémoire, et malgré un graphisme soigné, n'était pas de nature à me satisfaire.

mini_cloth_masked_flag_german1_npkopie.jpg mini_cloth_masked_flag_kriegs1_npkopie.jpg

A ce mauvais gout de la part du codeur, j'ai substitué des fenêtres beaucoup moins guerrières.

glass_nosight_fwindow2kopie.jpg glass_nosight_fwindow3kopie.jpg

Un point particulier qu'il convient de souligner et c'est le but de cet exemple, c'est que les images de remplacement proviennent d'un répertoire textures encapsulé dans le fichier mp_trainyard.pk3 et non pas du fichier système textures.pk3. L' effet est le même car le but au final est bien de partager une banque d'images communes entre le client et le serveur. La plupart des maps possèdent d'ailleurs leur propres textures et cela offre plus de possibilités dans la recherche d'inspiration.

Voici des extraits du fichier mp_trainyard.bsp qui indiquent le chemin des images d'origine.

bsp_trainyard_flag1.jpg bsp_trainyard_flag2.jpg

Extrait du fichier mp_trainyard.ent visant à substituer les images.

ent_trainyard.jpg

Pour info le répertoire 2_cod est intégré dans le répertoire textures et contient toutes les images illustrant la map.

Au final on obtient ce résultat

AVANT APRES
mini_trainyard_flags.jpg mini_trainyard_windows.jpg

b_list.gif      EXEMPLE 6   

On a commencé par le sol, on finira par le plafond, en l'occurrence le ciel, qui lui aussi, mérite bien un relookage laugh

On prendra comme exemple la map mp_finca et la recherche dans le fichier mp_finca.bsp portera sur le mot skies.

bsp_sky_mp_finca.jpg

gysample.gif  REMARQUE : Les thèmes de ciel se retrouvent dans textures/skies et col2_jersey se fonde sur le générique col2. Les motifs de substitution seront toujours désignés sans suffixe.

Voici quelques variations dans le ciel de mp_finca avec leur script dans le fichier mp_finca.ent

RENDU SCRIPT MOTIF DE SUBSTITUTION
mini_mp_finca_sky_air5.jpg ent_air5.jpg mini_air5.jpg
mini_mp_finca_sky_col4.jpg ent_col4.jpg mini_col4.jpg
mini_mp_finca_sky_col8.jpg ent_col8.jpg mini_col8.jpg
mini_mp_finca_sky_col10.jpg ent_col10.jpg mini_col10.jpg
mini_mp_finca_sky_hk1.jpg ent_hk1.jpg mini_hk1.jpg

b_list.gif      EXEMPLE 7   

Les textures de ciel peuvent remplacer d'autres textures de manière à les rendre invisibles. Cette astuce m'a été communiquée par DL. Toutefois la texture remplacée conserve sa consistance et reste infranchissable. Il ne reste qu'à la doter d'un décor quelconque pour éviter de s'y heurter. Cet artifice peut être utile pour augmenter la profondeur de champ d'une map tout en interdisant l'occupation complète de sa surface.

Dans l'exemple qui suit, les textures qui composent en partie le hangar dans la map mp_shop on été remplacées par une texture de ciel comme le montre l'extrait suivant du fichier ENT.

 mp_shop_texture.jpg

Cet exemple est farfelu, bien entendu mais son utilité est juste de démontrer l'action de la texture.

AVANT APRES
texture_nosky.jpg texture_sky.jpg

b_list.gif      CONCLUSION    

Les modifications graphiques d'une map demandent pas mal de recherches empiriques et d'essais parfois peu concluants. Ce n'est pas une fin en soi mais juste un moment de fun et de cogitation cérébrale.

Les exemples qui ont servi à ce développement n'ont rien d'exhaustifs. Ce ne sont que quelques bases sans prétention qui pourront peut-être vous donner l'envie de 'bricoler' un peu les maps.

Un point reste décevant quels que soient les efforts déployés, c'est l'absence rédhibitoire des ombres, car tout placage d'un nouveau motif, effacera les variations lumineuses de la couche précédente et il n'y aura aucun moyen de les régénérer.

Un dernier point, après avoir créé votre oeuvre, n'oubliez pas de la signer par un message dans le premier paragraphe du fichier ent.

ent_sign.jpg

Bon courage !

-=frown=-

Publié le 04/05/2021 16:57  Prévisualiser...   Imprimer...   Haut
3 - Ent Editor  -  par FSMOD

La Fonction Ent Editor

https://www.gif-maniac.com/gifs/54/53556.gif Cette fonction est exclusivement réservée au manager d'un serveur (Sysop)    

b_list.gif    GENERALITES  

Le mode MDK a la particularité d'intégrer une fonction dédiée à la conception de fichier en extension ent. Le fichier ent est associé à une map, il porte le même nom et a le pouvoir de modifier certains éléments de cette map comme les coordonnées et le nombre des points de respawn. Il permet aussi d'ajouter de la végétation, des édifices, des accessoires divers, des points de récupération d'armes et de munitions et d'autres concepts plus élaborés. Il est intégré au serveur et le joueur lambda n'a pas à se soucier de sa gestion.

Serveur et client possèdent par défaut la même map originelle et toutes les données contenues dans le fichier ent sont transmises au client lors des échanges de paquets. Le client évolue donc dans un décor modifié alors qu'il utilise la map standard. Il n'existe aucun problème d'incompatibilité.

Le fichier ent est un fichier texte et à ce titre il peut être ouvert, interprété et modifié avec n'importe quel éditeur de texte.

b_list.gif    LES BASES  

Pour mieux comprendre la conception d'un fichier ent il est nécessaire d'ouvrir un fichier map. On prendra pour exemple la map VOK.

En décompactant le fichier VOK.pk3 on obtient plusieurs répertoires. Le seul qui nous intéressera est MAPS. Il contient le fichier principal à savoir VOK.bsp. A noter que tous les fichiers pk3 concernant les maps sont tous construits sur le même principe.

En éditant VOK.bsp on peut s'apercevoir qu'il contient une zone de texte parfaitement claire comprise entre 2 zones de contenus binaires.

Les 2 captures suivantes illustrent ce qui précède. La zone de texte a été tronquée par souci de concision.

Début de la zone de texte Fin de la zone de Texte
vok_deb.jpg vok_fin.jpg

On remarque que cette zone texte englobe essentiellement une suite de paragraphes marqués par une accolade ouvrante et fermante. Un point de détail particulier concerne le premier paragraphe qui semble ne pas avoir d'accolade ouvrante. En fait cette accolade est située en fin de la dernière ligne binaire (ligne 15912) et n'apparaît pas sur la capture. D'une manière générale chaque paragraphe doit toujours être inscrit entre ses 2 accolades. L'absence de l'une ou l'autre entraine invariablement le plantage du serveur. 

La zone de texte, du début à sa fin représente en quelque sorte le contenu typique d'un fichier ent.

demo.png IMPORTANT: Pour tous vos essais avec le mode Ent Editor il est conseillé de procéder en LAN plutôt que sur votre serveur distant car durant l'édition d'une map, le serveur devient inaccessible à tout joueur et même aux bots. La création d'un serveur LAN passe par une installation identique à un serveur distant (Windows ou Linux). Ne pas utiliser l'option 'CREATE SERVER' du module client qui ne donnera pas satisfaction.

 b_list.gif     ENT EDITOR - PREPARATION  

Nous conservons toujours la map VOK pour la suite du développement.

fin.gif  Etablir un simple fichier mapcycle comme suit:

mapcycle.jpg

fin.gif  Lancer le serveur LAN et s'y connecter

fin.gif  Ouvrir le menu MDK / BINDS et créer un bind spécifique, soit ici la touche END (fin)

bind.jpg

fin.gif  Cliquer sur la touche END pour ouvrir le menu du mode Ent Editor.

start.jpg

Le panel qui s'affiche à la droite de l'image sur la map VOK retrace toutes les commandes nécessaires et suffisantes à la création du fichier ENT.
A noter que l'arrivée sur la map est en mode spectateur et ce mode restera actif tout au long de la création.

Avant de continuer, quelques points de détail sur ce panel

Groupes Attribution
part1.jpg
 Boutons dédiés au choix des différents objets, bots, modèles MD3, modèles BSP,
 flags, briefcase, pickup armes, santé, armure et backpacks.

part2.jpg
  Les touches X,Y et Z autorisent le déplacement des objets en coordonnées
 positives ou négatives, sur les 3 axes orthonormés.
 Les touches + et - fixent le pas d'incrémentation en pixel. Le pas s'affiche dans la
 fenêtre "Move Increments"
 La valeur 1 permet une précision extrême.

 La touche C place automatiquement l'objet à la position de l'observateur (vous)

part3.jpg
  Les touches numérales font pivoter l'objet d'un valeur angulaire équivalente à
  leur valeur faciale. Les pas minimum sont de 45°.
  La touche C oriente l'objet orthogonalement à l'axe de vue de l'observateur.
  Selon sa position, l'orientation de l'objet peut être réglée au degré près.

 

part4.jpg
  Chaque objet créé reçoit un ID (numéro). Leur sélection permet de les situer, 
  de les supprimer ou de les cloner.
  Cette dernière option est très pratique pour dupliquer des objets identiques
  à des coordonnées différentes (grillage, végétation herbeuse etc..)
 
part5.jpg
 1ère icône : Lancement du mode Ent Editor
  
  2ème icône : Gestion des fichiers
b_list.gif     ENT EDITOR - RECUPERATION DU FICHIER ENT  

Il convient maintenant d'extraire cette partie texte du fichier BSP aux fins de créer le fichier ent sur lequel s'appuieront toutes les modifications que l'on prévoie d'accomplir. Pour ce faire, la procédure est la suivante:

fin.gif  Cliquer sur le bouton Ent Editor. Cette action est unique mais nécessaire pour démarrer le mode. Elle est irréversible malgré un nouvel appui sur ce bouton.

btn_enteditor.jpg

La map est relancée et vous êtes maintenant en mode Ent Editor. Cette action va créer automatiquement le fichier vok_sources.ent dans le répertoire edits du serveur LAN. Il servira désormais de base pour toutes vos opérations de remodelage.

fin.gif  Cliquer sur le bouton Files.

btn_files.jpg

fin.gif  Cliquer sur le bouton Load Sources Data. Cette action va relancer la map et affichera tous les modèles et les items du fichier vok_sources.ent.

load_sces_btn.jpg

Voici une vue partielle de la map où tous les objets sont visibles. A noter toutefois que la plupart d'entre eux sont simplement représentés par 3 vecteurs orthonormés. Leur identification est toujours possible grâce à un baptême qui s'affiche en se rapprochant de leur position.

mini_vok_sources.jpg

On peut donc répertorier les plus importants comme le montre le tableau suivant:

VUE CLASSNAME  DESIGNATION
gametype_player.jpg gametype_player
  Point de respawn d'un bot spécifique aux gametype
  d'équipe  codés dans le fichier BSP et pointés dans
  un fichier arena.

  CTF, TDM, etc...

info_player_deathmatch.jpg info_player_deathmatch
   Point de respawn d'un bot uniquement dédié au DM.
  La plupart des erreurs viennent de la  confusion fréquente
  entre le classname gametype_player et le présent
  classname.
pickup_weapon_m60.jpg pickup_weapon_M60   Point de ramassage d'une arme. Ici le M60.
target_location.jpg target_location
 
   Point sur lequel un joueur pourra donner sa position
  en actionnant le token #L.
  Dans cet exemple le terme désert s'affichera en chat.

teleport.jpg target_teleporter
  Point de téléportage. Cette option est très intéressante
  pour identifier facilement ces points dans des maps
  particulières. 
gametype_item_flag.jpg gametype_item
  Item spécifique au gametype. Ici le drapeau de l'équipe
  rouge en CTF.
pickup_backpack.jpg pickup_backpack
  Point de ramassage d'un sac de ravitaillement.
pickup_ammo_9.jpg pickup_ammo_9mm
  Point de ramassage de munitions. Ici du calibre 9mm.
briefcase.jpg gametype_item  
  Item spécifique au gametype. Ici lla mallette propre au
  STQ entre autres gametypes.
 

 

b_list.gif     ENT EDITOR - CREATION D'UN POINT DE SPAWN  

On se fixe pour objectif d'ajouter un bot pour le DM.

Pressez à nouveau le bind END pour récupérer l'affichage du panel de commandes. A noter qu'après chaque sélection d'un objet il sera nécessaire d'ouvrir à nouveau le panel de commandes pour choisir l'action suivante.

fin.gif  Cliquer sur le bouton Spawn point.

btn_spawn.jpg

fin.gif  Sélectionner un point de spawn en fonction du gametype (DM dans l'exemple). A noter que la création du fichier ENT prendra un suffixe propre au gametype choisi soit ici, vok_dm.ent

bot_spawn.jpg

fin.gif  Cliquer sur le bouton Deathmatch/Team, un nouveau bot sera créé.

fin.gif  Revenir à la position du bot.

bot_add.jpg

La ligne Entity ID prend le numéro 323 ce qui signifie que le codeur qui a conçu la map a placé 322 items, models et autres objets. Le classname précise la nature de l'occupant du spawn en l'occurrence un joueur DM.
Les angles de présentation du bot pourront être redéfinis avec l'option Rotate du panel de commandes et Origin indique les coordonnées triples de l'objet sur la map.

Tous ses renseignements apparaitront chaque fois que vous survolerez ou vous rapprocherez d'un objet créé sur la map.

gysample.gif  IMPORTANT: Un point de respawn doit affleurer le sol mais ne jamais être dans le sol, auquel cas le bot et surtout le joueur, risquent fort de se retrouver les pieds pris dans la masse avec l'impossibilité de se mouvoir. Il est donc absolument nécessaire d'ajuster la valeur Y au pixel près. Par mesure de prudence quelques pixels au-dessus du sol ne seront pas à dédaigner. Certains codeurs de maps n'hésitent pas d'ailleurs, à placer le spawn à bonne hauteur du sol.

b_list.gif     ENT EDITOR - CREATION D'UN ITEM  

fin.gif  Cliquer sur le bouton Items

btn_items.jpg

fin.gif  Choisir l'objet dans la liste déroulante et procéder comme précédemment. 

panel_items.jpg

b_list.gif     ENT EDITOR - CREATION D'UN POINT DE PICKUP WEAPON  

fin.gif  Cliquez sur le bouton Wpn pickup

btn_wpn.jpg

fin.gif  Choisir l'objet dans la liste déroulante et procéder comme précédemment.

panel_wpn.jpg

b_list.gif     ENT EDITOR - CREATION D'UN POINT DE PICKUP ACCESSOIRES  

fin.gif  Cliquer sur le bouton Acc pickup

btn_acc.jpg

fin.gif  Choisir l'objet dans la liste déroulante et procéder comme précédemment.

panel_acc.jpg

b_list.gif     ENT EDITOR - CREATION D'UN MODELE BSP  

L'édition des modèles BSP est de loin la partie la plus intéressante de la fonction Ent Editor car elle permet de modifier profondément le décor d'une map. 

On se propose d'ajouter un arbre sur le toit d'un temple car à cet endroit, il ne présente aucune interférence avec d'autres objets existants. A noter qu'il aurait été possible de le placer sans risque dans un autre endroit du décor en évitant d'englober des objets présents.

fin.gif  Cliquer sur le bouton BSP

btn_bsp.jpg

fin.gif  Choisir l'objet dans la liste déroulante et procéder comme précédemment.

liste_bsp.jpg md3_model.jpg

gysample.gif  AIDE: Un léger inconvénient existe néanmoins dans l'absence de préavis graphique des modèles BSP. En effet, à l'opposé des items et accessoires précédents qui sont connus par leur simple évocation, les modèles BSP ne sont pas facilement interprétés par l'opérateur à moins d'avoir une longue pratique. Les modèles BSP, (plus de 200) sont répartis dans 6 répertoires inclus dans le répertoire INSTANCES du fichier système maps.pk3 comme le montre la capture suivante:

instances.jpg

Afin de faciliter leur appréhension avant leur édition, vous trouverez à ce lien un fichier RAR qui après décompactage vous donnera une représentation graphique de tous les modèles BSP. Chaque image est agrémentée de son baptême. Il sera donc plus facile de rapprocher une désignation dans la liste des objets avec sa représentation picturale.

Voici quelques aperçus :

building03.jpg fence01_gate.jpg
randomcover01.jpg oilbomb.jpg

b_list.gif     ENT EDITOR - CREATION D'UN MODELE MD3  

fin.gif  Cliquez sur le bouton MD3

btn_md3.jpg

fin.gif  Choisir l'objet dans la liste déroulante et procéder comme précédemment.

liste_md3.jpg statue.jpg

gysample.gif IMPORTANT : Il existe une différence fondamentale entre les modèles BSP et les modèles MD3 qu'il est nécessaire de comprendre:

comment.gif BSP : Les modèles BSP qualifient des volumes solides c'est-à-dire offrant un obstacle aux joueurs. Ils sont indépendants et sans liaison aucune avec le codage originel de la map.

comment.gif MD3 : Les modèles MD3 que vous ajouterez ne seront pas solides et tout joueur pourra les traverser de part en part. Ainsi, placer une voiture au milieu d'une map n'est pas très judicieux et surtout pas très réaliste. Le modèle MD3 sera donc placé de préférence dans des points de la map inaccessibles aux joueurs. Dans l'exemple qui précède, j'ai posé la statue au sommet de la tour de garde attendu qu'aucun joueur ne peut monter la-haut. Elle ne trône ici que pour la décoration.

Pour info les modèles MD3, déjà existants dans une map, ont été prévus à l'origine par le programmeur.

fin.gif  EXEMPLE : Cette jeep posée dans le décor de la map mp_col2 est un modèle MD3.

jeep_mp_col2.jpg

Sa construction réunit 4 planches graphiques qui constituent son "habillage" extérieur.

jeep_body.jpg jeep_seats.jpg jeep_shaders.png jeep_tires.jpg

On retrouve la présence de cette construction à la fois dans la zone binaire où la capture suivante montre le pointage de la première planche:   

jeep_body.jpg

Ainsi que dans un paragraphe de la zone texte:

code_jeep.jpg

fin.gif  Toutefois il est possible de placer certains modèles MD3 au milieu de la zone d'action, à savoir les modèles représentatifs d'un décor herbeux, qui n'offriront aucun obstacle aux mouvements tout en améliorant l'aspect de la map.

La capture suivante montre quelques pousses vertes ajoutées dans le sable de la vallée des rois.

grass.jpg

Les modèles MD3 sont disponibles dans le fichier système models.pk3, ça ne s'invente pas laugh

Concernant les modèles liés à la végétation, voir principalement dans models/objects/colombia/jungle.

Mais il y en a d'autres......

fern_lrg01_shd.png fern_lrg02_shd.png fern_sm01_shd.png grass_tall_shd.png

soldat.gifEn résumé:

  • Placer les modèles BSP ou vous voulez en s'assurant toutefois que leur position n'englobe pas un point de respawn. Pour y remédier il est préférable de procéder en priorité aux ancrages des modèles BSP et de revoir ensuite tous les points de respawn.

  • Placer les modèles MD3 dans des endroits où les joueurs ne passeront pas sauf choisir des éléments de végétation perméables.

  • Armez vous de patience............wink

fin.gif  Un dernier point qu'il convient de souligner concerne les ombres portées par l'ajout des modèles BSP et MD3: elles n'existent pas !

Les ombres sont crées à la conception de la map par le programme dédié et ne peuvent en aucun cas, être produites par un fichier ent.

b_list.gif     ENT EDITOR - SAUVEGARDE  

fin.gif  Cliquer sur le bouton Files.

btn_files.jpg

fin.gif  Cliquer sur le bouton Save Project.

Un fichier vok_dm.ent sera créé dans le répertoire edits, comme suit:

ent_files.jpg

Ce fichier vok_dm.ent sauvegardera les modifications effectuées sur la map VOK.

vok_dm_file.jpg

Je rappelle que le fichier vok_sources.ent représente la copie conforme de la zone texte du fichier vok.bsp encapsulé dans le fichier d’origine vok.pk3. Ce fichier ne sera jamais altéré par le mode Ent Editor et restera toujours la référence à laquelle on pourra repartir pour de nouveaux essais.

Si l’on place le fichier vok_dm.ent dans le répertoire MODS du serveur, une fois la map vok lancée, les nouveaux objets introduits dans la map apparaitront au même titre que tous les autres éléments codés d'origine, ce qui induit une constatation à savoir que les données du fichier ent sont prioritaires et complémentaires sur celles du fichier BSP.

gysample.gif Remarque: Dans le premier paragraphe une ligne message est introduite mentionnant le nom du créateur du fichier ent. Vous avez toute latitude pour en modifier éventuellement le texte.

b_list.gif     ENT EDITOR - VARIANTE  

Dans la mesure où votre projet est d'agrémenter une map de certains modèles supplémentaires et compte tenu du fait qu'un ou plusieurs points de respawn risquent par erreur d'être enchâssés dans les décors, vous avez certainement projeté avec sagesse de redéfinir tous les points de respawn.
Le développement qui suit ne concerne que le DM, car je suis profondément réfractaire à tout autre gametype !
Procéder comme suit:

fin.gif  Editer le fichier vok_sources.ent

fin.gif  Repérer tous les paragraphes qui contiennent la ligne classname info_player_deathmatch comme cet exemple suivant :

{
"classname" "info_player_deathmatch"
"origin" "1796 -1520 58"
"angles" "0 90 0"
}

Ainsi qu'éventuellement tous les fichiers classname gametype_player comme cet exemple:

{
"classname" "gametype_player"
"origin" "417 -2656 62"
"gametype" "dm tdm"
"angle" "360"
"spawnflags" "0"
}

Une remarque au passage, concernant cette dernière forme qui représente une erreur de codage des bots affectés au DM. Elle a été la cause de plantages sous le défunt mode 1FX. Seul le classname info_player_deathmatch est adéquat pour coder les respawns DM

fin.gif  Effacer tous ces paragraphes.

fin.gif  Rebaptiser vok_sources.ent en vok_dm.ent

fin.gif  Placer le fichier vok_dm.ent dans le répertoire MODS du serveur.

fin.gif  Lancer le serveur LAN. Se connecter et lancer Ent Editor

btn_enteditor.jpg

fin.gif  Cliquer le bouton Files

btn_files.jpg

fin.gif Cliquer sur le bouton Load Ent Data

load_ent_data.jpg

Vous arrivez sur la map VOK où tous les items seront présents sauf les bots affectés au DM.

Il ne restera plus qu'à créer les nouveaux points de respawn par la procédure décrite plus haut.
A noter que si vous désiriez ajouter d'autres modèles sur la map, il aurait fallu également, préalablement au lancement du fichier vok.ent, effacer tous les paragraphes relatifs aux bots des autres gametypes.

Ces paragraphes peuvent être de la forme suivante:

{
"classname" "gametype_player"
"origin" "-640 6912 302"
"gametype" "elim cctf inf dem ctf"
"angle" "270"
"spawnflags" "2"
}

gysample.gif Avant de placer vos bots, si vous avez envisagé d'inclure dans la map un modèle BSP, la présence d'un item pourrait être gênant. Dans ce cas il possible de l'éliminer même si ce n'est pas vous qui l'avez créé. Pour ce faire il suffit de se rapprocher de l'objet afin de noter son ID puis de saisir cet ID dans la fenêtre Sélection ID du panel de contrôle et enfin de cliquer sur le bouton Delete, comme le montre la capture suivante:

delete_item.jpg

gysample.gif RemarqueCette variante n'introduit pas de commentaires dans la ligne message du premier paragraphe du fichier vok.ent ou à tout le moins, ne modifie pas cette ligne si d'aventure elle existait déjà dans le fichier vok_sources.ent. Il conviendra alors soit de la modifier, soit de la créer.

fin.gif  N'oubliez pas de sauvegarder votre travail en cliquant sur le bouton Files puis Save Project !

b_list.gif     ENT EDITOR - EXTRAS  

screen.gif  Corrections de certaines erreurs graphiques

Il existe quelques maps entachées d'imperfections. qui peuvent être facilement corrigées grâce aux fichiers ent. Lorsque j'ai expérimenté plus de 1300 maps, certaines dont le graphisme très soigné avait retenu mon attention m'avaient toutefois un peu déçu par des erreurs invalidant les mouvements des joueurs. C'est le cas, la plupart du temps de formes codées dans le fichier BSP mais mal "habillées" par des modèles MD3 comme je l'ai évoqué plus haut.  

Pour l'exemple je vais évoquer le cas de la map mp_dust2. Il y en a beaucoup d'autres hélas. Celle qui nous occupe présente un beau graphisme aux couleurs chaudes et lumineuses mais hélas ternies par un petit bug aux abords des 2 camions parqués. Les bots se retrouvaient souvent englués dans le bas de la carrosserie et des pneus, révélant du fait une anomalie entre la forme codée et le modèle MD3.

mini_bot1.jpg

Le but de la correction était d'interdire le rapprochement latéral des camions en ajoutant des obstacles de proximité.

Voici l'aspect initial de la map (clic pour zoom):

mini_dust2_orig.jpg

1er projet de modification qui consiste à encercler le parc d'une clôture infranchissable

mini_dust2_fence.jpg

2ème projet qui consiste à flanquer les côtés des véhicules par des caisses et un muret

mini_dust2_crates.jpg

Je ne me suis décidé en adoptant la deuxième option.

screen.gif  Les échelles

Je terminerai par le cas d'ajout d'échelles sur certaines façades d'immeubles. Cet artifice est très utile pour grimper sur des sites élevés.

Le modèle BSP de prédilection sera l'objet Watertower du répertoire generic. Ce modèle illustre un château d'eau muni d'une échelle verticale. L'astuce est de positionner la structure principale du réservoir et de son support à l'intérieur d'un ensemble solide déjà en place dans le décor, de manière à la rendre invisible, excepté l'échelle. Une illustration sera plus explicite.

On se propose, dans la map mp_basrah, d'appliquer une échelle sur un mur afin de pouvoir accéder aux espaces supérieurs de la 'casbah'.

Les travaux auront lieu ici:

lad1.jpg

On amène le château d'eau:

lad2.jpg

On assure son orientation, son élévation et son intégration:

lad3.jpg

On peaufine l'affleurement de l'échelle jusqu'au résultat final:

lad4.jpg

Accessoirement le modèle watertower peut être aussi utilisé pour colmater des ouvertures de puits ou de trous divers dans le sol, visant à interdire l'accès aux passages sous terrains. 

On va rester sur la map mp_basrah et l'objectif sera de boucher un regard d'accès vers les égouts selon la séquence illustrée suivante:

Site de l'opération:

hole1.jpg

Présentation du modèle:

hole2.jpg

Travaux terminés, accès interdit.

hole3.jpg

Dans cet exemple on aura prit soin, préalablement à l'obstruction des regards d'accès aux égouts, de supprimer tous les points de respawn à l'intérieur des galeries, évidement !

gysample.gif Remarque: Lorsque vous appliquerez une échelle, vérifiez que tout le reste de la structure de la tour soit parfaitement intégré et rendu invisible dans la masse du décor existant. En effet, si vous envisagez de plaquer une échelle sur un mur dont la partie intérieure de ce dernier, fait partie du théâtre d'évolution des belligérants, le réservoir et les pieds du modèle viendront obstruer les axes de passages, risquant même d'emprisonner des points de spawn. 

Juste un exemple pour illustrer, dans la map mp_jor1

Bel aspect extérieur

lad_ext.jpg

Mais cherchez l'erreur à l'intérieur !

lad_int.jpg

En conclusion, le travail sur les fichiers ENT nécessite un soin non négligeable, tant par la conception même que par la vérification qui la sanctionne. Mais de par le contenu des développements non exhaustifs qui précèdent, vous en êtes certainement convaincu.

Bon courage

-=smile=-

Publié le 29/04/2021 21:50  Prévisualiser...   Imprimer...   Haut
2 - Installation  -  par FSMOD

INSTALLATION DU MODE MDK

Version 2.2-1 FS

Suivez à la lettre ce qui suit et vous ne devriez pas connaître de problèmes particuliers.

fin.gif 2 cas se présentent

 1 -Vous n'étiez pas un utilisateur de MDK 

gysample.gif Avant de commencer veuillez vous référer à cette page relative à l'installation générique de SOF2 et notamment aux précautions particulières qu'il convient d'observer, surtout pour les utilisateurs de Window 10.

  1. Créer un répertoire MDK à la racine de votre répertoire SOF2.
  2. Installer le fichier client mdk_mod_X_2.2-1_fs.pk3.
  3. Passez au prérequis ci-après.

fin.gif PREREQUIS

Revenez dans le répertoire principal SOF2 et créez un raccourci vers le bureau à partir du fichier sof2mp.exe.

Revenez dans le bureau, renommez ce raccourci à votre convenance puis ouvrez le par un clic droit.

icon.jpg

Cliquez sur Propriétés.

Dans la fenêtre cible ajoutez après sof2mp.exe, un espace puis +set fs_game mdk

prop.jpg

Vous pouvez éventuellement ajouter +exec autoexec.cfg si vous maitrisez cette configuration (voir documentation)

Lancez SOF2 en cliquant sur le raccourci.

fin.gif  ATTENTION: Avant toute connexion à un serveur ouvrez d'abord votre console et tapez :  cl_allowdownload 0

dl.jpg

Quittez la console. Maintenant vous pouvez connecter mon serveur MDK.

2 - Vous êtes déjà un utilisateur de MDK 

calendard.gif Suivez scrupuleusement les instructions suivantes sans rien omettre:

  1. Ouvrez le répertoire MDK.
  2. Effacez tous les fichiers pk3, y compris l'ancienne version client.
  3. Effacez les fichiers sof2mp.cfg et sof2mp_uix86.dll.
  4. Installez le fichier client mdk_mod_X_2.2-1_fs.pk3

Par ailleurs:

  1. Vérifiez si un fichier sof2mp.cfg se trouve dans votre répertoire MP, auquel cas, effacez le.
  2. Dans chaque répertoire IP effacez les fichiers mdkmp.cfg.
  3. Connectez vous au serveur.

Quel que soit le cas utilisé précédemment, après la première connexion à mon serveur votre répertoire MDK se présentera comme suit:

post_instal.jpg

A noter que le fichier mdk_mod_X_2.2-1_fs.pk3 est une version complète prête à l'emploi et qu'il ne nécessite aucun fichier additif de mise à jour. La connexion à mon serveur est immédiate et ne requiert aucun téléchargement complémentaire.

A noter également la création automatique de différents fichiers et répertoires et particulièrement le répertoire éponyme de l'adresse de mon serveur. Ce répertoire contient principalement les packs sons, un fichier mdkmp.cfg qui a enregistré votre configuration propre, et éventuellement la ou les maps customisées en cours lors de votre connexion, rappelant que, grâce au protocole FTP les packs sons et les maps ont été téléchargés automatiquement.

Ainsi dans la capture suivante on constate la présence des fichiers sons, du fichier de sauvegarde mdkmp.cfg et la map austria qui tournait au moment de la connexion au serveur. Le répertoire data mémorise simplement les joueurs et bots présents au moment de la session.

rep_ip.jpg

Toutefois si vous vous connectez sur un autre serveur MDK, m8 (click here) dans cet exemple, vous pourriez obtenir cette annonce:

dl_2.1.jpg

et son résultat dans votre répertoire MDK:

post_instal_22_m8.jpg

fin.gif Explication

Le fichier mdk_mod_X_2.1_u1.pk3 est un petit fichier de mise à jour vers la version 2.2. En fait le fichier client mdk_mod_X_2.2.pk3 complet n'est pas offert en téléchargement manuel à partir du site des Mentally Disturbed Killers. Le client qui n'utilise pas ma version 2.2-1_fs, possède par défaut la version précédente à savoir la 2.1. Lorsqu'il se connecte sur un autre serveur que le mien il est dirigé automatiquement vers le site des Mentally Disturbed Killers et le fichier mdk_mod_X_2.1_u1.pk3, téléchargé à partir du serveur assure le transfert.

Le fichier mdk_mod_X_2.1_u1.pk3 est entièrement compatible avec ma version 2.2-1_fs mais son action est nulle. L'effacer ne servira à rien car dès que vous connecterez à un serveur autre que le mien, il reviendra dans votre répertoire MDK.

En péroraison de ce qui précède, la méthode 'primaire' qui consiste à placer dans le répertoire dédié au mod (MDK en l'occurrence), un fichier complet prêt à jouer, offrira une meilleure praticité pour sa mise en oeuvre et le suivi de son évolution. Dès qu'une nouvelle version arrive, on l'installe et on jette la précédente.

A remarquer, qu'au même titre que la connexion initiale à mon serveur, un nouveau répertoire 108_61_122_66_20100 a été créé en lien avec l'adresse du serveur m8 (click here).

In fine, voici comment pourra se présenter votre répertoire MDK après avoir fureté sur quelques serveurs MDK

post_instal_serv.jpg

-=tongue=-

Publié le 08/02/2021 16:37  Prévisualiser...   Imprimer...   Haut
1 - Généralités  -  par FSMOD

LE MODE MDK - GENERALITES

Ce mode très évolué et évolutif a été codé par DeathLord, fondateur du clan des Mentally Disturbed Killers. Qu'il en soit remercié au nom de quelques trop rares exploitants qui savent au moins, mesurer le travail colossal de programmation qu'il a accompli.

Les fichiers client d'origine ainsi que ceux qui vous permettront éventuellement de créer votre propre serveur, sont disponibles et libres de téléchargement sur leur site dédié:  http://www.mentallydisturbedkillers.com

Une documentation détaillée qui ne fera que s'enrichir dans le futur, est disponible également sur leur site : Guide
Elle vous guidera dans l'installation, que vous soyez simple joueur ou manager de serveur.

Particularités fondamentales du mode MDK

robot.gif  Alors que tous les autres modes utilisent une partie très limitée de la bande passante du serveur de jeu assortie d'une vitesse de transfert affligeante, MDK opère tous les téléchargements à partir d'un canal FTP extérieur au flux des données serveur. L'avantage est certain car il offre une plus grande vitesse de téléchargement uniquement limitée par votre taux de transfert internet, édulcorant ainsi le stress de votre serveur de jeu qui a déjà fort à faire pour assurer sa propre gestion.

Bien entendu le manager du serveur devra déposer sur son site FTP tous les fichiers nécessaires aux clients connectés au serveur de jeu afin qu'ils puissent évoluer sans problème dans les différentes configurations de SOF2. Il s'agit essentiellement de fichiers pk3 concernant les maps customisées, les packs sons et éventuellement certains addons d'agrémentation.

Ainsi tout joueur, utilisant le mode client MDK, téléchargera automatiquement et rapidement toutes les pièces manquantes pour s'associer au serveur et cela bien que son CVAR cl_allowdownload soit invalidé.

robot.gif Lorsque vous vous connectez au serveur, un répertoire est créé immédiatement et portera le nom équivalent à l'IP du serveur. Tous les fichiers pk3 propres à ce serveur, maps, sons,..etc y prendront place grâce au téléchargement automatique. 

Chaque fois que vous vous connecterez à un nouveau serveur, la même procédure sera exécutée. Ainsi il n'y aura aucun mélange entre les identités propres des serveurs et cela évitera d'éventuels conflits de fichiers pk3.

robot.gifL'intelligence artificielle des bots a été considérablement améliorée rendant ainsi le jeu beaucoup plus réaliste. Le paramétrage de leur aptitude au combat offre au manager de multiples combinaisons. 

robot.gifUn mode éditeur inclus permet au manager aguerri de concevoir de nouvelles versions de maps à partir de concepts déjà existants grâce à l'exploitation de fichiers ENT.

robot.gifDe nouveaux gametypes, de nouvelles armes et de nouveaux procédés de combat sont disponibles.

-=cool=-

Publié le 08/02/2021 16:36  Prévisualiser...   Imprimer...   Haut
DMFLAGS  -  par FSMOD

DMFLAGS

J'ai constaté que le CVAR dmflags qui fixe le caractère de certains événements, est souvent mal interprété par les managers de serveurs et les valeurs qu'on lui affecte sont souvent très fantaisistes, voire totalement erronées.

Le meilleur moyen de comprendre la fonction de dmflags est encore de recourir à un examen des sources. Dont acte.

Ainsi la biblothèque bg_public.h fixe les valeurs de dmflags comme suit:

code_flags.jpg

puce2.gifInterprétation:

  • dmflags 8   : Le joueur ne subira aucun dommage physique en touchant le sol après avoir sauté depuis un point élevé.
  • dmflags 16 : La valeur de FOV sera fixée à 90 et imposée aux joueurs sans qu'ils puissent en changer.
  • dmflags 32 : Les joueurs se déplaceront sans aucun bruit de pas. A noter que les sauts resteront toutefois audibles.

NOTA :Par défaut, dmflags est fixé à 0 ce qui implique que le capital santé d'un joueur qui se reçoit au sol après avoir sauté d'un point haut sera minoré d'une valeur proportionnelle à la hauteur du saut et à la gravité réglée sur le serveur (g_gravity).

IMPORTANT: Les entiers 8, 16 et 32 peuvent être combinés afin de panacher les différents effets.

Voici un tableau récapitulatif qui reprend toutes les valeurs et rien que les valeurs admises pour dmflags.

DMFLAGS BRUITS DE PAS DOMMAGES SAUT FOV FIXE A 90
0 OUI OUI NON
8 OUI NON NON
16 OUI OUI OUI
24 OUI NON OUI
32 NON OUI NON
40 NON NON NON
48 NON OUI OUI
56 NON NON OUI

Les CVAR dmflags seront de préférence fixés pour chaque map du fichier mapcycle.

puce2.gifPoint particulier

Le CVAR dmflags 16 qui impose un FOV fixe de 90 peut gêner certains joueurs qui trouvent dans d'autres valeurs, un meilleur confort de tir. Je rappelle que les valeurs autorisées sont comprises entre 80 et 100.

Je vous livre un petit truc qui pourra vous affranchir de cette restriction managériale, à condition que vous maitrisiez un peu le langage c.

Cela se passe côté client bien évidement.

   Fichier cg_view.c   

Dans la fonction CG_CalcFov identifiez ce groupe:

  else
    {
        // user selectable
        if ( cgs.dmflags & DF_FIXED_FOV )

        {
            // dmflag to prevent wide fov for all clients
            fov_x = 90;
        }
        else
        {
            fov_x = cg_fov.value;
            if ( fov_x < 1 )
            {
                fov_x = 1;
            }
            else if ( fov_x > 160 )
            {
                fov_x = 160;
            }
        }

Remplacez la valeur 90 par celle de votre choix entre 80 et 100.

Ou bien alors, si vous désirez pouvoir choisir votre FOV en cours de jeu, remplacez tout le texte précédent par celui-ci:

 else
    {

            fov_x = cg_fov.value;
            if ( fov_x < 1 )
            {
                fov_x = 1;
            }
            else if ( fov_x > 160 )
            {
                fov_x = 160;
            }

puce2.gif ATTENTION: Cette modification pourrait être interprétée comme un artifice de triche de la part du manager, car votre action ne s'inscrit pas vraiment dans l'optique de gestion de son serveur. frown

Do as you like !

DRAKKAR n'est pas aussi restrictif, quoique....... cool

-=eek=-

Publié le 17/06/2019 20:04  Prévisualiser...   Imprimer...   Haut
Alerte munitions  -  par FSMOD

Alerte munitions

Lorsque le chargeur de votre arme présente une certaine quantité de munitions restantes, le compteur de la barre inférieure s'affiche en rouge. Il n'est pas toujours très aisé de le voir dans un combat acharné. 

Cette petite modification permettra d'afficher à gauche de l'écran une alerte beaucoup plus visible .rolleyes

lowammo.jpg

Modification du code sources

Tout se passe côté client

Fichier cg_newDraw.c

Dans la fonction CG_DrawPlayerWeaponClip remplacez la ligne

 if ( value <= (weaponData[cg.weaponSelect].attack[ATTACK_NORMAL].clipSize / 6) )

Par la suivante

 if ( value <= (weaponData[cg.weaponSelect].attack[ATTACK_NORMAL].clipSize * 20/100) ) *FSMOD* calcul restant

Remplacez le groupe

 if ( weaponToDraw == cg.weaponSelect && value <= (weaponData[weaponToDraw].attack[ATTACK_NORMAL].clipSize / 6) )
                {
                    VectorSet ( ammocolor, 1.0f, 0.2f, 0.2f );
                }
                else if ( weaponToDraw != cg.weaponSelect && value == 0 )
                {
                    ammocolor[3] = 0.5f;
                }

Par le suivant

  // *FSMOD* Low ammo

    // si capacité clip inférieur a 1 pas d'affichage Low Ammo (cas des grenades ou du couteau)
        if ( weaponToDraw == cg.weaponSelect
              && value <= (weaponData[weaponToDraw].attack[ATTACK_NORMAL].clipSize * 20/100)
              &&  (weaponData[weaponToDraw].attack[ATTACK_NORMAL].clipSize >1 ))

                {
                    VectorSet ( ammocolor, 1.0f, 0.2f, 0.2f );

                    CG_DrawText (20,240, cgs.media.hudFont, 0.55f , colorRed, va("^7! ^$Low Ammo ^7!"), 0, DT_OUTLINE );

                }

 // *FSMOD*

-=cry=-

Publié le 21/03/2019 17:15  Prévisualiser...   Imprimer...   Haut
Rubriques

Vous êtes ici :   Accueil » Documentation