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 15 Mars 2018, 0:24

Reprise du dernier message


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. ;)

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

J'ai du changé le nom du script ressoureces2 pour ressourcesV. Il fonctionnaient mais m'affichais un msg d'erreur.

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

J'ai créé une zone capturable dans ma mission et j'ai ajouté une variable a l'entité zone; gasS.
Je l'est inscrite dans; Nom de la variable.

Maintenant dans mon script ressources j'ai ajouté ceci
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 ( gasN == west) then
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"];
};
};


Le script ne fonctionne pas? Je veux ajouté des ressources supplémentaire lorsque ma variable gasN appartient au blufor. Est-ce parce que j'ai créé la variable dans la mission et non dans un script.?

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

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.


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 15 Mars 2018, 19:37

A ok. Ça simplifie le script. Merci!!!

Par-contre si je veux juste qu'une équipe capture la zone et ne sont pas obliger de resté a l'intérieur
de celle-ci.

Citation
if (({side _x == west} count list maZone) > 0) then
{
missionNamespace setVariable ["Gas",(missionNamespace getVariable "Gas") + 5, true];
};


il faut changer quel que chose ici?

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

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 ?


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 15 Mars 2018, 20:49
Message édité 1 fois, dernière édition par Jben, 15 Mars 2018, 21:09  

Oui ou jusqu’à ce que l'autre équipe la capture.5 gas sont ajouté au 60 sec.

Membre
Avatar de Jben
  • Messages : 23
  • Inscrit : 04 Mars 2018
  • Statut : Hors ligne
 
Lien vers ce message 15 Mars 2018, 21:15
Message édité 1 fois, dernière édition par Jben, 15 Mars 2018, 21:49  

Voici les scripts dans dossier de mission mon que j'ai pour le moment;

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

execVM "ressources.sqf";
};
execVM "ressourcesauto.sqf";
execVM "infos.sqf";


infos.
Citation
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;
};


et ressourcesauto.

Citation
while {true} do
{

missionNamespace setVariable ["Manpower",(missionNamespace getVariable "Manpower") + 15, true];
missionNamespace setVariable ["Manpower2",(missionNamespace getVariable "Manpower2") + 15, true];
missionNamespace setVariable ["Munition",(missionNamespace getVariable "Munition") + 10, true];
missionNamespace setVariable ["Munition2",(missionNamespace getVariable "Munition2") + 10, true];
missionNamespace setVariable ["Gas",(missionNamespace getVariable "Gas") + 5, true];
missionNamespace setVariable ["Gas2",(missionNamespace getVariable "Gas2") + 5, true];

sleep 60;
};


J'aimerai que lorsqu'une des deux équipe ont une zone capturer, le propriétaire de celle-ci obtiens 5 gas supplémentaire au 60 sec.

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

Pour faire simple chaque équipe commencera avec des ressources de départ soit 200 manpower, 50 munition et 15 gas.
Au 60 seconde chaque équipe obtiendront des ressources soit 15 manpower, 10 munition et 5 gas et ajoutera un bonus de ressources
pour chaque zone capturé.

Exemple 3 min est écoulé. L'équipe blufor ont capturé la zone gas, au lieu doptenir seulement 5 gas au 60 sec il obtiendront 10 gas.

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

J'ai créer un module de secteur et dans nom de la variable j'y est mit maZone. J'y est syncronisé 3 entités logique, blufor, indepentant et zone.

J'ai testé ceci mais sa fonctionne pas....

Citation
while {true} do
{

missionNamespace setVariable ["Manpower",(missionNamespace getVariable "Manpower") + 15, true];
missionNamespace setVariable ["Manpower2",(missionNamespace getVariable "Manpower2") + 15, true];
missionNamespace setVariable ["Munition",(missionNamespace getVariable "Munition") + 10, true];
missionNamespace setVariable ["Munition2",(missionNamespace getVariable "Munition2") + 10, true];
missionNamespace setVariable ["Gas",(missionNamespace getVariable "Gas") + 5, true];
missionNamespace setVariable ["Gas2",(missionNamespace getVariable "Gas2") + 5, true];

if ( maZone == west) then
missionNamespace setVariable ["Gas",(missionNamespace getVariable "Gas") + 5, true];

sleep 60;
};

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

J'ai testé ceci:
Citation
while {true} do
{
if ((side maZone) == west) then
{
missionNamespace setVariable ["Gas",(missionNamespace getVariable "Gas") + 5, true];
};
if ((side maZone) == independent) then
{
missionNamespace setVariable ["Gas2",(missionNamespace getVariable "Gas2") + 5, true];
};

sleep 3;
};

J'ai aucun message d’erreur mais portent il ne fonctionne pas.

Leader
Général
Avatar de The-KiLLeR
  • Age : 36 ans
  • Messages : 2154
  • Inscrit : 29 Janvier 2007
  • Statut : Hors ligne
  • Spécialité : Démolition Expert
 
Lien vers ce message 21 Mars 2018, 18:22
Message édité 2 fois, dernière édition par The-KiLLeR, 21 Mars 2018, 18:23  

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


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 21 Mars 2018, 20:28
Message édité 1 fois, dernière édition par Jben, 21 Mars 2018, 20:29  

:fsb2_shocked: Merci The-Killer. Pour savoir je doit modifier quelque chose dans ce script?

Parce que cela ne semble pas fonctionné. J'ai aucun message d'erreur mais les ressource ne sont pas ajouté a la suite de la capture.

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

Non
Si tu as bien renseigné les fichiers comme dans ce message (sauf le ressources.sqf), cela devrait fonctionner :
https://www.clan-ado.fr/forum/...id=86000#p86000


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 21 Mars 2018, 22:17

J'ai rajouté ressourcesauto.sqf
Citation
while {true} do
{

missionNamespace setVariable ["Manpower",(missionNamespace getVariable "Manpower") + 15, true];
missionNamespace setVariable ["Manpower2",(missionNamespace getVariable "Manpower2") + 15, true];
missionNamespace setVariable ["Munition",(missionNamespace getVariable "Munition") + 10, true];
missionNamespace setVariable ["Munition2",(missionNamespace getVariable "Munition2") + 10, true];
missionNamespace setVariable ["Gas",(missionNamespace getVariable "Gas") + 5, true];
missionNamespace setVariable ["Gas2",(missionNamespace getVariable "Gas2") + 5, true];

sleep 60;
};

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

J'ai oublié le déclencheur ...
Répondre





.