Système de ressource




Jben - 15 Mars 2018, 1: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. ;)


Jben - 15 Mars 2018, 2:00


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


Jben - 15 Mars 2018, 7: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.?


The-KiLLeR - 15 Mars 2018, 20:22


Voici un test en aillant modifié légèrement tes fichiers :

init.sqf

Code (Sélectionner)
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
Code (Sélectionner)
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
Code (Sélectionner)
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.


Jben - 15 Mars 2018, 20: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?


The-KiLLeR - 15 Mars 2018, 21: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 ?


Jben - 15 Mars 2018, 21:49


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


Jben - 15 Mars 2018, 22:15


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.


Jben - 15 Mars 2018, 22: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.


Jben - 16 Mars 2018, 1: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;
};


Jben - 19 Mars 2018, 0: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.


The-KiLLeR - 21 Mars 2018, 19:22


Voici pour la capture d'une zone :

ressources.sqf

Code (Sélectionner)
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;
};


Jben - 21 Mars 2018, 21:28


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


The-KiLLeR - 21 Mars 2018, 21: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


Jben - 21 Mars 2018, 23: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;
};


Jben - 21 Mars 2018, 23:19


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