Bonjour, vous n'êtes actuellement pas connecté sur le forum
Contacter un administrateur :: Se connecter :: S'enregistrer


Armée de l'Ombre


Nouveau sujet Répondre Imprimer Syndication RSS 2.0

Système de ressource


Membre
Avatar de Jben
  • Messages : 23
  • Inscrit : 04 Mars 2018
  • Statut : Hors ligne
 
Lien vers ce message 04 Mars 2018, 6: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é.

Mission Maker
Colonel
Avatar de philippe83
  • Age : 63 ans
  • Messages : 1585
  • Inscrit : 31 Janvier 2007
  • Statut : Hors ligne
  • Spécialité : Mitrailleur Expert
 
Lien vers ce message 05 Mars 2018, 8:48
Message édité 1 fois, dernière édition par philippe83, 05 Mars 2018, 8:49  

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. :wink:


Celui qui gagne toujours n'apprend jamais rien.(Miyamoto Musashi)

http://www.clan-ado.fr/images/upload/14/1461347533-9014c77fe639f0d7468861813aed933a_460x138_source.jpg

Leader
Général
Avatar de The-KiLLeR
  • Age : 36 ans
  • Messages : 2155
  • Inscrit : 29 Janvier 2007
  • Statut : Hors ligne
  • Spécialité : Démolition Expert
 
Lien vers ce message 05 Mars 2018, 17: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.


http://www.clan-ado.fr/images/upload/membres/3_1335205596.jpg

Membre
Avatar de Jben
  • Messages : 23
  • Inscrit : 04 Mars 2018
  • Statut : Hors ligne
 
Lien vers ce message 06 Mars 2018, 23: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?

Leader
Général
Avatar de The-KiLLeR
  • Age : 36 ans
  • Messages : 2155
  • Inscrit : 29 Janvier 2007
  • Statut : Hors ligne
  • Spécialité : Démolition Expert
 
Lien vers ce message 07 Mars 2018, 17: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];
};


http://www.clan-ado.fr/images/upload/membres/3_1335205596.jpg

Membre
Avatar de Jben
  • Messages : 23
  • Inscrit : 04 Mars 2018
  • Statut : Hors ligne
 
Lien vers ce message 07 Mars 2018, 23:56

Merci The-Killer.

donc j’obtiens dans mon init.sqf

Citation

if (isServer) then
{
hintSilent "You texte comes here !"
missionNamespace setVariable ["Manpower", 200, true];
missionNamespace setVariable ["Munition", 50, true];
missionNamespace setVariable ["Fuel", 15, true];

};


Est ce la bonne place pour mettre le hint? et que doit-je mettre dans le hint pour affiché chaque ressources.

Et voila mon ressources.sqf
Citation

if (isServer) then

while {(Manpower) = (Manpower)} do {

sleep 60;

Manpower = Manpower + 100;

Munition = Munition + 15

Fuel = Fuel + 5
}

};


est-ce que ce script devrais fonctionner?

Leader
Général
Avatar de The-KiLLeR
  • Age : 36 ans
  • Messages : 2155
  • Inscrit : 29 Janvier 2007
  • Statut : Hors ligne
  • Spécialité : Démolition Expert
 
Lien vers ce message 08 Mars 2018, 12:48
Message édité 7 fois, dernière édition par The-KiLLeR, 08 Mars 2018, 19:52  

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"];
	};
};


http://www.clan-ado.fr/images/upload/membres/3_1335205596.jpg

Membre
Avatar de Jben
  • Messages : 23
  • Inscrit : 04 Mars 2018
  • Statut : Hors ligne
 
Lien vers ce message 09 Mars 2018, 19: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
Citation
if (isServer) then
{
missionNamespace setVariable ["Manpower", 200, true];
missionNamespace setVariable ["Munition", 50, true];
missionNamespace setVariable ["Gas", 15, true];

};

ressources.sqf
Citation
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 ["Gas",missionNamespace getVariable "Gas" + 5, true];

hintSilent format["Manpower : %1\nMunition : %2\nGas : %3",missionNamespace getVariable "Manpower",missionNamespace getVariable "Munition",missionNamespace getVariable "Gas"];
};
};



Ce peut t'il que le script ressources ne démarre pas. Doit le faire partir avec init.sqf

Leader
Général
Avatar de The-KiLLeR
  • Age : 36 ans
  • Messages : 2155
  • Inscrit : 29 Janvier 2007
  • Statut : Hors ligne
  • Spécialité : Démolition Expert
 
Lien vers ce message 09 Mars 2018, 19:39
Message édité 6 fois, dernière édition par The-KiLLeR, 09 Mars 2018, 19:42  

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";


http://www.clan-ado.fr/images/upload/membres/3_1335205596.jpg

Membre
Avatar de Jben
  • Messages : 23
  • Inscrit : 04 Mars 2018
  • Statut : Hors ligne
 
Lien vers ce message 09 Mars 2018, 21:22

Il y a une erreur dans une expression.
'...missionNamespace getVarriable "Manpower" |#|+ 100, true];

Line 7


Citation

1 if (isServer) then
2{
3 while {true} do {
4
5 sleep 60;
6
7 missionNamespace setVariable ["Manpower",missionNamespace getVariable "Manpower" + 100, true];
8 missionNamespace setVariable ["Munition",missionNamespace getVariable "Munition" + 15, true];
9 missionNamespace setVariable ["Gas",missionNamespace getVariable "Gas" + 5, true];
10
11 hintSilent format["Manpower : %1\nMunition : %2\nGas : %3",missionNamespace getVariable "Manpower",missionNamespace getVariable "Munition",missionNamespace getVariable
"Gas"];
12 };
13};

Leader
Général
Avatar de The-KiLLeR
  • Age : 36 ans
  • Messages : 2155
  • Inscrit : 29 Janvier 2007
  • Statut : Hors ligne
  • Spécialité : Démolition Expert
 
Lien vers ce message 10 Mars 2018, 8: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"];
	};
};


http://www.clan-ado.fr/images/upload/membres/3_1335205596.jpg

Membre
Avatar de Jben
  • Messages : 23
  • Inscrit : 04 Mars 2018
  • Statut : Hors ligne
 
Lien vers ce message 10 Mars 2018, 20:09

Merci The-Killer sa fonctionne super bien. :fsb2_drink:

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];

Leader
Général
Avatar de The-KiLLeR
  • Age : 36 ans
  • Messages : 2155
  • Inscrit : 29 Janvier 2007
  • Statut : Hors ligne
  • Spécialité : Démolition Expert
 
Lien vers ce message 11 Mars 2018, 12:52

Le plus simple serait de dupliquer les variables comme tu as fait.


http://www.clan-ado.fr/images/upload/membres/3_1335205596.jpg

Membre
Avatar de Jben
  • Messages : 23
  • Inscrit : 04 Mars 2018
  • Statut : Hors ligne
 
Lien vers ce message 11 Mars 2018, 18:58

J'ai fait comme ca.

Citation
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];
hintSilent format["Manpower : %1\nMunition : %2\nGas : %3",missionNamespace getVariable "Manpower",missionNamespace getVariable "Munition",missionNamespace getVariable "Gas"];
hintSilent format["Manpower : %1\nMunition : %2\nGas : %3",missionNamespace getVariable "Manpower2",missionNamespace getVariable "Munition2",missionNamespace getVariable "Gas2"];
};
execVM "ressources.sqf";
execVM "ressources2.sqf";


J'ai un problème ici pour deux chose. Je veux que le premier hintSilent soit visible seulement pour les blufor et le deuxième soit visible seulement pour les Independent.
Ensuite il y a ceci; hintSilent format["Manpower : %1\nMunition : %2\nGas : %3",missionNamespace getVariable "Manpower2",missionNamespace getVariable "Munition2",missionNamespace getVariable "Gas2"];
les % et numéraux je ne c'est pas quoi inscrire ici pour le deuxième hint. Doit-je les laissé comme sa?

Membre
Avatar de Jben
  • Messages : 23
  • Inscrit : 04 Mars 2018
  • Statut : Hors ligne
 
Lien vers ce message 15 Mars 2018, 0:24

J'ai réussi !!! Voila ce que j'ai fait

Script init.sqf
Citation
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];

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 == independent) then
hintSilent format["Manpower : %1\nMunition : %2\nGas : %3",missionNamespace getVariable "Manpower2",missionNamespace getVariable "Munition2",missionNamespace getVariable "Gas2"];
};
execVM "ressources.sqf";
execVM "ressources2.sqf";


Script ressources
Citation
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 ["Gas",(missionNamespace getVariable "Gas") + 5, true];

if (side player == west) then
hintSilent format["Manpower : %1\nMunition : %2\nGas : %3",missionNamespace getVariable "Manpower",missionNamespace getVariable "Munition",missionNamespace getVariable "Gas"];
};
};


et script ressources2
Citation
if (isServer) then {
while {true} do {

sleep 60;

missionNamespace setVariable ["Manpower2",(missionNamespace getVariable "Manpower2") + 100, true];
missionNamespace setVariable ["Munition2",(missionNamespace getVariable "Munition2") + 15, true];
missionNamespace setVariable ["Gas2",(missionNamespace getVariable "Gas2") + 5, true];

if (side player == independent) then
hintSilent format["Manpower : %1\nMunition : %2\nGas : %3",missionNamespace getVariable "Manpower2",missionNamespace getVariable "Munition2",missionNamespace getVariable "Gas2"];
};
};


Voila. ;)
Répondre





.