LE MultiSpawning

Voir le sujet précédent Voir le sujet suivant Aller en bas

Re: LE MultiSpawning

Message par (!|!) NoQuarter le 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é
avatar
(!|!) NoQuarter

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

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

LE MultiSpawning

Message par ('l|) Nach le 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.
avatar
('l|) Nach

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

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut


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