|
|
Membre
- Messages : 23
- Inscrit : 04 Mars 2018
- Statut :
|
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
- Age : 64 ans
- Messages : 1578
- Inscrit : 31 Janvier 2007
- Statut :
- Spécialité :
|
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.
Celui qui gagne toujours n'apprend jamais rien.(Miyamoto Musashi)
|
Leader
- Age : 36 ans
- Messages : 2156
- Inscrit : 29 Janvier 2007
- Statut :
- Spécialité :
|
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.
|
Membre
- Messages : 23
- Inscrit : 04 Mars 2018
- Statut :
|
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
- Age : 36 ans
- Messages : 2156
- Inscrit : 29 Janvier 2007
- Statut :
- Spécialité :
|
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];
};
|
Membre
- Messages : 23
- Inscrit : 04 Mars 2018
- Statut :
|
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
- Age : 36 ans
- Messages : 2156
- Inscrit : 29 Janvier 2007
- Statut :
- Spécialité :
|
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"];
};
};
|
Membre
- Messages : 23
- Inscrit : 04 Mars 2018
- Statut :
|
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
- Age : 36 ans
- Messages : 2156
- Inscrit : 29 Janvier 2007
- Statut :
- Spécialité :
|
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";
|
Membre
- Messages : 23
- Inscrit : 04 Mars 2018
- Statut :
|
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
- Age : 36 ans
- Messages : 2156
- Inscrit : 29 Janvier 2007
- Statut :
- Spécialité :
|
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"];
};
};
|
Membre
- Messages : 23
- Inscrit : 04 Mars 2018
- Statut :
|
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];
|
Leader
- Age : 36 ans
- Messages : 2156
- Inscrit : 29 Janvier 2007
- Statut :
- Spécialité :
|
Le plus simple serait de dupliquer les variables comme tu as fait.
|
Membre
- Messages : 23
- Inscrit : 04 Mars 2018
- Statut :
|
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
- Messages : 23
- Inscrit : 04 Mars 2018
- Statut :
|
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. ;)
|
|
|
|
|