GRIFF - ARMA3
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
-40%
Le deal à ne pas rater :
-40% sur le Pack Gaming Mario PDP Manette filaire + Casque filaire ...
29.99 € 49.99 €
Voir le deal

LE MultiSpawning

2 participants

Aller en bas

LE MultiSpawning Empty Re: LE MultiSpawning

Message par (!|!) NoQuarter Sam 13 Aoû - 18:20

merci pour ce post , Nach Very Happy
Effectivement ,je me doutais bien qu'il fallait "if (isServer) then {"
C'est donc vérifié
(!|!) NoQuarter
(!|!) NoQuarter

Messages : 708
Date d'inscription : 31/01/2016

Revenir en haut Aller en bas

LE MultiSpawning Empty LE MultiSpawning

Message par Nach Sam 13 Aoû - 16:59

Eviter le MultiSpawning

A fin d éviter que le script se muliplie au nombre de client (joueur)
A la mise en place d une template et a la creation d un fichier "sqf" demandant la creation d unités , de marqueur ou d objectifs qui doit etre le meme pour tous
on entete son script

if (isServer) then { ("on place le script commun a tous") et on on oublie pas de le fermer d une accolade };


exemple1: if (isServer) then { execVM "monscript.sqf }; //celui ci s executera uniquement sur le serveur et evitera la mutiplication.

exemple2 :
if (isServer) { // ouvre l accolade
_mkrdepart = ["6","7","8","9","10"];
_mesnumeros = _mkrdepart call BIS_fnc_randomIndex;
_mrkdepart = _mkrdepart select _monindex;
'positionchoisie' setMarkerPos positiondepart;
postiondepart = getMarkerPos _mrkdepart;
publicvariable "positiondepart";
'positionchoisie' setMarkerPos positiondepart;

}; // ferme l accolade le marqueur sur position aleatoire ne s executera qu une seule fois uniquement sur le serveur.

Pareil si vous scriptez des armes dans une caisse , la commande peux s initialiser dans le cardre init d un objet ou dans le cadre d un trigger.  

if (isServer) exitWith {};
cette commande permet d appeler la commande sur serveur et d en sortir directement.

exemple:
je veux executer sur le declenchement de mon trigger (attention non repetitif) sur les marqueurs placés 1 , 2 , 3 , 4
condition remplie sur act>> nul = ["1","2","3","4"] execVM "positionIA.sqf";

if (!isServer) exitWith {};
// on appel le serveur pour en ressortir directement pour la continuité du script.

_pos = getMarkerPos (_this select 0); = marqueur 1
_pos2 = getMarkerPos (_this select 1); = marqueur 2 etc...
_pos3 = getMarkerPos (_this select 2);
_pos4 = getMarkerPos (_this select 3);
etc...
// pas d accolade
3eme possibilité c est de créer un fichier initserver.sqf qui ne prendra en compte au démarrage la mission les paramètres ou la Template a   n exécuter que sur le serveur

Le constat que l on peu en tirer de tout cas ce sont les duplications de marqueurs, de véhicules ,objectifs(scriptés) crée le multispawning.


Dernière édition par ('l|) Nach le Mar 11 Sep - 23:56, édité 2 fois

Nach

Messages : 513
Date d'inscription : 31/01/2016

Revenir en haut Aller en bas

Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum