|
|
Je viens de trouver.
Quand je met un point de passage "Tenir" sur une unité Takistanaise j'ai ce message d'erreur.
Bon je ferais sans
|
|
Depuis la dernière MAJ d'ArmA3, avez-vous aussi ce message d'erreur avec les CUP ?
|
|
La zone est définie par le déclencheur.
Il faut lui attribuer une taille !
Pas besoin de module.
|
|
Voici pour la capture d'une zone :
ressources.sqf
private ["_zoneCamp"];
_zoneCamp = "";
while {true} do
{
_countWest = parseNumber format["%1",{side _x == west} count list maZone];
_countInd = parseNumber format["%1",{side _x == resistance} count list maZone];
if ((_countWest > _countInd) || (_zoneCamp == "west" && (_countWest > _countInd || _countInd == 0))) then
{
missionNamespace setVariable ["Gas",(missionNamespace getVariable "Gas") + 5, true];
_zoneCamp = "west";
};
if ((_countWest < _countInd) || (_zoneCamp == "resistance" && (_countWest < _countInd || _countWest == 0))) then
{
missionNamespace setVariable ["Gas2",(missionNamespace getVariable "Gas2") + 5, true];
_zoneCamp = "resistance";
};
sleep 1;
};
|
|
Il y a qu'une seule équipe qui puisse la capturer ? la premier équipe dedans ?
Une fois capturée, cela incrémente le "Gas" à l'infini ?
|
|
Voici un test en aillant modifié légèrement tes fichiers :
init.sqf
if (isServer) then
{
missionNamespace setVariable ["Manpower", 200, true];
missionNamespace setVariable ["Munition", 50, true];
missionNamespace setVariable ["Gas", 15, true];
missionNamespace setVariable ["Manpower2", 200, true];
missionNamespace setVariable ["Munition2", 50, true];
missionNamespace setVariable ["Gas2", 15, true];
execVM "ressources.sqf";
};
execVM "infos.sqf";
ressources.sqf
while {true} do
{
if (({side _x == west} count list maZone) > 0) then
{
missionNamespace setVariable ["Gas",(missionNamespace getVariable "Gas") + 5, true];
};
if (({side _x == resistance} count list maZone) > 0) then
{
missionNamespace setVariable ["Gas2",(missionNamespace getVariable "Gas2") + 5, true];
};
sleep 1;
};
infos.sqf
while {true} do
{
if (side player == west) then
{
hintSilent format["Manpower : %1\nMunition : %2\nGas : %3",missionNamespace getVariable "Manpower",missionNamespace getVariable "Munition",missionNamespace getVariable "Gas"];
};
if (side player == resistance) then
{
hintSilent format["Manpower : %1\nMunition : %2\nGas : %3",missionNamespace getVariable "Manpower2",missionNamespace getVariable "Munition2",missionNamespace getVariable "Gas2"];
};
sleep 1;
};
Dans cet exemple, j'ai créé un déclencheur avec comme propriété :
"Nom de variable" : maZone
"Type" : aucun
"Activation" : Tout joueur
"Type d'activation" : Présent
"Condition" : This
Si un Blufor (west) est dans la zone, son "Gas" sera incrémenté de +5 toute les secondes. De même pour un indépendant (resistance), son "Gas2" sera incrémenté de +5 toute les secondes.
|
|
Le plus simple serait de dupliquer les variables comme tu as fait.
|
|
J'ai oublié les parenthèses :
if (isServer) then {
while {true} do {
sleep 5;
missionNamespace setVariable ["Manpower",(missionNamespace getVariable "Manpower") + 100, true];
missionNamespace setVariable ["Munition",(missionNamespace getVariable "Munition") + 15, true];
missionNamespace setVariable ["Gas",(missionNamespace getVariable "Gas") + 5, true];
hintSilent format["Manpower : %1\nMunition : %2\nGas : %3",missionNamespace getVariable "Manpower",missionNamespace getVariable "Munition",missionNamespace getVariable "Gas"];
};
};
|
|
Oui il faut le lancer :
if (isServer) then
{
missionNamespace setVariable ["Manpower", 200, true];
missionNamespace setVariable ["Munition", 50, true];
missionNamespace setVariable ["Gas", 15, true];
};
execVM "ressources.sqf";
|
|
Pas besoin de hint dans le "init.sqf".
Tu peux placer ton hint dans ton fichier "ressources.sqf".
S'agit il d'une boucle sans fin ?
Si oui :
if (isServer) then
while {true} do {
sleep 60;
missionNamespace setVariable ["Manpower",missionNamespace getVariable "Manpower" + 100, true];
missionNamespace setVariable ["Munition",missionNamespace getVariable "Munition" + 15, true];
missionNamespace setVariable ["Fuel",missionNamespace getVariable "Fuel" + 5, true];
hintSilent format["Manpower : %1\nMunition : %2\nFuel : %3",missionNamespace getVariable "Manpower",missionNamespace getVariable "Munition",missionNamespace getVariable "Fuel"];
};
};
|
|
En partie.
Si tu mets un "_" devant le nom de ta variable, çà veut dire qu'elle est locale et non globale.
De ce fait, elle ne sera pas accessible en dehors de ton fichier "init.sqf".
Ensuite il faut les faire initialiser par le serveur et non pas le serveur + tous les joueurs.
Met ceci :
if (isServer) then
{
missionNamespace setVariable ["Manpower", 300, true];
missionNamespace setVariable ["Munition", 50, true];
missionNamespace setVariable ["Fuel", 15, true];
};
|
|
Dans l'optique d'améliorer l'ADO Revive, pouvez-vous me lister les problèmes connus et vos éventuels suggestions d'amélioration ?
Problèmes :
- Message d'erreur script spectateur
- Fumigène qui n'apparait pas sur la position du joueur blessé
- Perte de l'armement après revive (a quel moment ? dans quelle condition ? perte de tout l'armement ou uniquement l'arme principale ?)
- ...
Améliorations :
- Ajout d'un son sur le joueur blessé
- ...
|
|
Salut,
Oui en effet il faut passer par des variables globales en utilisant les commandes setVariable et getVariable.
Après il faudra faire un script qui tourne en boucle et qui permettra d'incrémenter tes variables selon tes conditions.
Ce n'est pas si simple que ça, tout dépendra des conditions pour chacune des ressources.
Pour les afficher, utilise au début un simple hintSilent qui s'affichera en haut à droite.
|
|
|