Jben - 04 Mars 2018, 7:58
Bonjours a tous.
Je travaille sur une mission présentement et j'aurais besoins du coup de main.
Je tente ici de créer un système de ressources. J'explique: Chaque équipe peut cumulé des point via de zone qu'ils auront capturé. Pour commencé j'aimerais juste créer les différente ressources. Manpower (ressource en homme), Munissions, et Fuel. J'ai le logiciel Poséidon pour m'aidé. Je crois comprendre qu'il faut que je crée des variable pour chaque ressources. Donc je crée un SQF (systeme.sqf)pour y faire. Je veux pas m'embourbé avec les zone de capture pour le moment. Ce que je cherche a faire est de créer les différents type de point et en faire gagné quelqu'un par minute. Si possible les faire affiché a l'écran en bas a droite.
Maintenant que doit-je faire. J'aimerais de l'aide pour démarré le script. Je débute et oui j'ai peut-être de trop grande ambition, mais je ne désespère pas. J'aimerais voir ce projet a jour. Je donnerais de plus information sur ma mission si vous le voulez bien. Merci et votre aide serais apprécié.
philippe83 - 05 Mars 2018, 9:48
Salut, je ne sais pas si une personne de chez nous pourra répondre à tes questions (nous n'utilisons pas ce genre de script), tu pourrais voir du côté de chez bis.--> https://forums.bohemia.net/forums/forum/218-arma-3/
Bon courage pour ton projet.
The-KiLLeR - 05 Mars 2018, 18:30
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.
Jben - 07 Mars 2018, 0:52
Pour commencer je créer les avriable dans fichier init.sqf comme ceci:
_manpower setVariable ["Manpower", 300, true];
_munition setVariable ["Munition", 50, true];
_Fuel setVariable ["Fuel", 15, true];
est-ce bien la bonne méthode?
The-KiLLeR - 07 Mars 2018, 18:57
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]; };
Jben - 08 Mars 2018, 0:56
Merci The-Killer.
donc j’obtiens dans mon init.sqf
The-KiLLeR - 08 Mars 2018, 13:48
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"]; }; };
Jben - 09 Mars 2018, 20:35
Le scripte semble fonctionné. Par contre j'ai du changer le nom de la variable fuel par Gas. Fuel doit déjà appartenir a une variable par défaut.
Le seul problème est que je ne vois pas le hint.
init.sqf
The-KiLLeR - 09 Mars 2018, 20:39
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";
Jben - 09 Mars 2018, 22:22
Il y a une erreur dans une expression.
'...missionNamespace getVarriable "Manpower" |#|+ 100, true];
Line 7
The-KiLLeR - 10 Mars 2018, 9:56
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"]; }; };
Jben - 10 Mars 2018, 21:09
Merci The-Killer sa fonctionne super bien.
Pour la suite je veux que les deux équipe possède leur propre ressources.
Doit-je dupliqué le script ressources et ajouté des variables différente?
comme sa?
missionNamespace setVariable ["Manpower", 200, true];
missionNamespace setVariable ["Manpower2", 200, true];
The-KiLLeR - 11 Mars 2018, 13:52
Le plus simple serait de dupliquer les variables comme tu as fait.
Jben - 11 Mars 2018, 19:58
J'ai fait comme ca.
Jben - 15 Mars 2018, 1:24
J'ai réussi !!! Voila ce que j'ai fait
Script init.sqf