Bonjour,
Pour mon serveur, j'utilise un système de airdrop lié avec des captures de zone. Lorsqu'un gang capture une zone, un drapeau (marker) est attribué au gang pour avoir le même marqueur sur les 3 zones.
Voici comment je procède :
core\captureAreaOne.sqf :
[CODE lang="clike" title="core\actions\fn_captureAreaOne.sqf"]// Gestion des markers
_pos = getPos gang_flag_5;
_oldMarker = "ILL_airdrop_2";
if (!(getMarkerPos _oldMarker isEqualTo [0,0,0])) then {
deleteMarker _oldMarker;
} else {
deleteMarker "imtheone";
};
if (team_flag isEqualTo "") then {
_flag = ["flag_CTRG","flag_EAF","flag_EnochLooters","flag_Spetsnaz","flag_Syndicat","flag_Viper"] call BIS_fnc_selectRandom;
[_flag] remoteExecCall ["life_fnc_assignFlag", (units (group player)), false];
waitUntil {!(team_flag isEqualTo "")};
deleteMarker "imtheone";
_groupName = format ["Capturé par %1",(group player) getVariable "gang_name"];
_mark = createMarker [ "imtheone", _pos ];
_mark setMarkerType team_flag;
_mark setMarkerText _groupName;
} else {
deleteMarker "imtheone";
_groupName = format ["Capturé par %1",(group player),(group player) getVariable "gang_name"];
_mark = createMarker [ "imtheone", _pos ];
_mark setMarkerType team_flag;
_mark setMarkerText _groupName;
};[/CODE]
On peut voir ici :
[CODE title="core\actions\fn_captureAreaOne.sqf"] _flag = ["flag_CTRG","flag_EAF","flag_EnochLooters","flag_Spetsnaz","flag_Syndicat","flag_Viper"] call BIS_fnc_selectRandom;
[_flag] remoteExecCall ["life_fnc_assignFlag", (units (group player)), false];
waitUntil {!(team_flag isEqualTo "")};[/CODE]
Je définis un drapeau random que je renvoie vers un script qui permet de l'ajouter à une variable globale (définie dans configuration.sqf comme ceci : team_flag = ""; ), puis j'attends que cette variable soit remplie.
Voici le fichier exécuté via remoteExecCall :
[CODE lang="clike" title="core\actions\fn_assignFlag.sqf"]params ["_flag"]
team_flag = _flag;[/CODE]
Le problème étant que cette variable ne se remplie jamais, à savoir que mon remoteExecCall est bien déclaré dans mon CfgRemoteExec.hpp :
[CODE title="CfgRemoteExec.hpp"]F(life_fnc_assignFlag,CLIENT)[/CODE]
Sauriez-vous m'indiquer d'où vient mon erreur ? Mes autres remoteExecCall fonctionnent très bien mais pour celui-ci, je pense peut-être faire une erreur lorsque j'envoie puis récupère mon paramètre mais malgré de nombreux essais, rien de concluant.
Merci d'avance pour le temps que vous saurez m'accorder.
Pour mon serveur, j'utilise un système de airdrop lié avec des captures de zone. Lorsqu'un gang capture une zone, un drapeau (marker) est attribué au gang pour avoir le même marqueur sur les 3 zones.
Voici comment je procède :
core\captureAreaOne.sqf :
[CODE lang="clike" title="core\actions\fn_captureAreaOne.sqf"]// Gestion des markers
_pos = getPos gang_flag_5;
_oldMarker = "ILL_airdrop_2";
if (!(getMarkerPos _oldMarker isEqualTo [0,0,0])) then {
deleteMarker _oldMarker;
} else {
deleteMarker "imtheone";
};
if (team_flag isEqualTo "") then {
_flag = ["flag_CTRG","flag_EAF","flag_EnochLooters","flag_Spetsnaz","flag_Syndicat","flag_Viper"] call BIS_fnc_selectRandom;
[_flag] remoteExecCall ["life_fnc_assignFlag", (units (group player)), false];
waitUntil {!(team_flag isEqualTo "")};
deleteMarker "imtheone";
_groupName = format ["Capturé par %1",(group player) getVariable "gang_name"];
_mark = createMarker [ "imtheone", _pos ];
_mark setMarkerType team_flag;
_mark setMarkerText _groupName;
} else {
deleteMarker "imtheone";
_groupName = format ["Capturé par %1",(group player),(group player) getVariable "gang_name"];
_mark = createMarker [ "imtheone", _pos ];
_mark setMarkerType team_flag;
_mark setMarkerText _groupName;
};[/CODE]
On peut voir ici :
[CODE title="core\actions\fn_captureAreaOne.sqf"] _flag = ["flag_CTRG","flag_EAF","flag_EnochLooters","flag_Spetsnaz","flag_Syndicat","flag_Viper"] call BIS_fnc_selectRandom;
[_flag] remoteExecCall ["life_fnc_assignFlag", (units (group player)), false];
waitUntil {!(team_flag isEqualTo "")};[/CODE]
Je définis un drapeau random que je renvoie vers un script qui permet de l'ajouter à une variable globale (définie dans configuration.sqf comme ceci : team_flag = ""; ), puis j'attends que cette variable soit remplie.
Voici le fichier exécuté via remoteExecCall :
[CODE lang="clike" title="core\actions\fn_assignFlag.sqf"]params ["_flag"]
team_flag = _flag;[/CODE]
Le problème étant que cette variable ne se remplie jamais, à savoir que mon remoteExecCall est bien déclaré dans mon CfgRemoteExec.hpp :
[CODE title="CfgRemoteExec.hpp"]F(life_fnc_assignFlag,CLIENT)[/CODE]
Sauriez-vous m'indiquer d'où vient mon erreur ? Mes autres remoteExecCall fonctionnent très bien mais pour celui-ci, je pense peut-être faire une erreur lorsque j'envoie puis récupère mon paramètre mais malgré de nombreux essais, rien de concluant.
Merci d'avance pour le temps que vous saurez m'accorder.