Version haut débit de: Armée de l'Ombre
Aide - Rechercher - Membres

probleme de CreateGroup sur serveur dédié

larcenn (19 Mars 2015, 5:13)
Salut a tous,

Je suis en train de faire une missions multijoueur mais je rencontre un problême qui me rend fou sur la création d'un groupe via un script.


Citation

grp1 = createGroup East;
grp1 = [getMarkerPos posMission, east, (configfile >> "CfgGroups" >> "East" >> "OPF_F" >> "Infantry" >> eniMission )] call BIS_fnc_spawnGroup;


Cette commande fonctionne três bien si je l'exécute en global ou local et ne fonctionne pas si je l'exécute coté serveur.

Il me semble pourtant que cela est possible et même conseillé si je ne veux pas qu'il y ai autant de groupe de de joueur sur ma mission.
Avez vous une idée de la solution ?

PS: poMission et eniMission sont des variables publique généré par un script qui s'exécute que coté serveur, pas de souci pour cela.
Reapy (19 Mars 2015, 20:39)
Essaye ca:

Pour lancer le script:
_handle=[NomDuGroupe,"NomDuMarker","TypeDeGroupe"] execVM "TonScript.sqf";


TonScript.sqf:
_nameGrp = (_this select 0); // Nom du Groupe
_marker = (_this select 1); // Position du spawn
_typeGrp = (_this select 2); // Type de groupe

_nameGrp = createGroup East;
_nameGrp = [getMarkerPos _marker, east, (configfile >> "CfgGroups" >> "East" >> "OPF_F" >> "Infantry" >> _typeGrp )] call BIS_fnc_spawnGroup;
larcenn (20 Mars 2015, 17:37)
Merci pour ta réponse,

En fait je n'utilise pas ce bout de script de cette maniêre, mais je vais essayer d'être clair :

dans mon init.sqf :

Citation
if (isServer) then {
if (isDedicated) then {
execVM "init_server.sqf";
}else
{
execVM "init_server.sqf";
execVM "init_client.sqf";
};
}else
{
execVM "init_client.sqf";
};


Dans mon init_server.sqf :

Citation

if(!isServer)exitwith{};

vehMission = call compile preprocessFile "fnc\fnc_randomVeh.sqf";
eniMission = call compile preprocessFile "fnc\fnc_randomEni.sqf";
typeMission = call compile preprocessFile "fnc\fnc_randomMission.sqf";
posMission = call compile preprocessFile "fnc\fnc_randomPos.sqf";
publicVariable "posMission";
publicVariable "vehMission";
publicVariable "eniMission";
publicVariable "typeMission";

grp1 = createGroup East;
grp1 = [getMarkerPos _marker, east, (configfile >> "CfgGroups" >> "East" >> "OPF_F" >> "Infantry" >> eniMission )] call BIS_fnc_spawnGroup;





A savoir les fnc\fnc_xxxx.sqf ne sont que des scripts de choix aléatoire dans un tableau.

Tel que c'est ça ne fonctionne pas, les unité n'apparaissent pas, cependant si je met la partie que j'ai poster dans mon message précédent, dans le script init_client.sqf ( qui est exécuté que par le client ) j'ai mes unités qui apparaissent.

Quand je contrôle la valeur de mes variables publique, elles sont correctement renseignée ( merci les Hint ).

edit : j'avais mis la vieille version de mon init_server.sqf
larcenn (20 Mars 2015, 19:22)
j'ai toute fois essayer avec la version que tu m'a conseiller, purement et brutalement, sur une nouvelle mission, mais je confirme qu'il n'est pas possible de le lancer coté serveur.
( en rajoutant if(!isServer)exitwith{}; )
larcenn (20 Mars 2015, 23:14)
J'ai trouver la solution ( enfin on me la souffler : )

Comme les unité ne sont pas dans mon mission.sqm, il faut déclarer l'existence d'un groupe correspondant.

Il faut donc ajouter cette ligne de commande a votre init:

_SideHQ = createCenter east

https://community.bistudio.com/wiki/createCenter

Merci