"RESPAWN" DE VEHICULE (+ ACCES RESTREINT) © Pumpkin

Ce "respawn" de véhicule est à usage multiple, il permet :

La fonction est "modulaire" et comporte plusieurs scripts pouvant être utilisé séparement et/ou conjointement. Le respawn ressuscite tous types de véhicules, les "statiques" y compris (mortiers, mitrailleuse sur pied,...)

 


1. RÉPERTOIRES & FICHIERS :

 


2. PRÉSENTATION :

Il y a deux missions d'exemple : "@vehicule_respawn" et "@vehicule_respawn_simple". La première est plus orientée Multi-Joueurs. Les scripts du respawn doivent fonctionner sur serveur et non sur les machines clientes. L'inconvénient est que, dans ce cas, les messages d'avertissements que produisent les scripts ne sont jamais visibles par les joueurs. Je passe donc par mon système d'affichage de message Multi-Joueurs pour afficher les avertissements à tous les joueurs. Ainsi, tous les mondes est averti par exemple, qu'un véhicule n'a plus que 3 respawns disponibles, ou encore que tel ou tel joueur non-autorisé a tenté de déplacer un véhicule et a été éjecté.

Pour infos, il y a deux messages radio de test : "LRAC SMAW" (radio 0-0-1) fourni 4 roquettes SMAW HEAA automatiquement (je suis parfosi un gros flemmard, 'pas envie de me pencher tout le temps sur une caisse de munitions :D ); "remplir HMMWV" (radio 0-0-2) met un équipage dans le Humvee au sud, juste à côté du joueur, et le greffe sur le groupe du joueur... un exemple de "renfort spontané", en gros.

a. spécificité de la mission "@vehicule_respawn"

Pour mettre en place ce système de message, il faut simplement lancer le script "LIB\Init_Speach_Broadcast.sqf", ce qui est fait dans le fichier "init.sqf" (lancement restreint au serveur, d'où le test _testserver)

...
if (_testserver) then {
// Init permettant de diffuser en MP le texte des chats, = objet nommé "PUMPKINBroadcaster"
nul = execVM "lib\Init_Speach_Broadcast.sqf";
};
...
et avoir le script "LIB\Fonctions_Speach.sqf" installé.

b. spécificité de la mission "@vehicule_respawn_simple"

Cette seconde mission d'exemple n'est pas incompatible Multi-Joueurs, elle est quasiment identique à la 1ère. Seulement, en MP, aucun message ne sera visible, car le système de message Multi-Joueurs a été supprimé : pas de fichier "init.sqf", "Fonctions_Speach.sqf" et "Init_Speach_Broadcast.sqf" retirés du répertoire "lib\". Seul subsiste l'indispensable "Server_detection.sqf" dans "lib\". Je ne l'ai ajouté pour exemple.

Pour tous le reste, je vous laisse décourvrir par vous-même...

 


2. PARAMÉTRAGE :

a. la table "team_names.sqf"

Il faut en tout premier lieu inscrire dans cette table les pseudos des joueurs autorisés par défaut à conduire les véhicules. Par exemple :

_team_members = [
"Pumpkin",
"Warsheeeep"
];
Ce signifie que tous véhicules qui aura le script "respawn_veh.sqf" ou le script "members_unlock.sqf" aura la place de conducteur interdite , sauf pour "Pumpkin" et "Warsheeeep".

Attention ! Les pseudos doivent comporter les MAJUSCULES et MINUSCULES exacts, ainsi que les BLANCS éventuels. Tous joueurs avec son pseudo mal orthographié se verra éjecté du véhicule s'il s'installe à la place du conducteur

Si vous voulez désactiver totalement cette fonctionnalité de "verrouillage", il suffit de laisser la table vide :

_team_members = [
];

La seule contraite de la table est que tous les pseudos doivent être suivi d'une virgule, SAUF le dernier

_team_members = [
"Pumpkin",
"Warsheeeep",
"Tromplamort"
];

ARMA 2 est intransigeant ! Oubliez une virgule derrière un des pseudos jusqu'à l'avant dernier ou mettez un virgule au dernier pseudo et rien ne fonctionnera plus... A manipuler avec précaution

Logiquement, pour une table a un membre, le premier étant aussi le dernier, pas de virgule du tout

_team_members = [
"Pumpkin"
];
C'est la table dans les 2 missions d'exemple. J'ai utilisé mon propre pseudo pour les tests, inscrivez le votre pour tester efficacement les missions d'exemple.

b. le script "respawn_veh.sqf"

nul = [this ('ou nom_du_vehicule') <, délai de réapparition> <, nombre de respawn (infini par défaut)> <, [table de pilotes autorisées alternative]> ] execVM "veh_respawn\Respawn_veh.sqf"

Remarque : Non seulement le véhicule est "respawné" lorsqu'il est détruit mais aussi lorsque son équipage est décimé.

NOTA : Le 3ème et 4ème paramètres sont interchangeables, autrement dit on peut mettre le nombre de respawn, puis la table alternative, ou inversement la table alternative puis le le nombre de respawn, comme le montre les exemples ci-dessous.

Exemples :

nul = [this] execVM "veh_respawn\respawn_veh.sqf" :
réapparition simple, le véhicule détruit réapparait quasi immédiatement

nul = [this,10] execVM "veh_respawn\respawn_veh.sqf" :
réapparition du véhicule au bout de 10s

nul = [this,10,["Pumpkin","WarSheeeep"]] execVM "veh_respawn\respawn_veh.sqf" :
réapparition du véhicule au bout de 10s, réservé uniquement à "Pumpkin" et "WarSheeeep"

nul = [this,10,3] execVM "veh_respawn\respawn_veh.sqf" :
réapparition au bout de 10s, limitée à 3 respawn maximum

nul = [this,10,3,["Pumpkin","WarSheeeep"]] execVM "veh_respawn\respawn_veh.sqf" :
réapparition au bout de 10s, limitée à respawn maximum, réservé uniquement à "Pumpkin" et "WarSheeeep"

c. le script "members_unlock.sqf"

nul = [ this ('ou nom_du_vehicule) <, [table de pilotes autorisées alternative]> ] execVM "veh_respawn\members_unlock.sqf"

C'est la fonction de "verrouillage" proprement dit. Elle est appelé par le script "respawn_veh.sqf" mais peut être utilisé séparément (voir dans les missions d'exemple).

d. le script "fill_veh.sqf"

nul = [nom_du_vehicule <, groupe<] execVM "veh_respawn\fill_veh.sqf"

Ce script "rempli" un véhicule vide avec l'équipage standard, défini dans les fichiers de configation. Il est appelé par le script "respawn_veh.sqf" pour "respawner" les véhicules avec équipage mais peut être utilisé séparément

 


Bonne édition !