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

Script pour Artillerie


Membre
Avatar de jeje52
  • Messages : 33
  • Inscrit : 27 Octobre 2013
  • Statut : Hors ligne
 
Lien vers ce message 02 Septembre 2020, 14:23

Bonjour à tous,

Je vous écris, car j'ai un souci pour l'artillerie.
En effet j'aimerais faire tirer un 2S9 SOCHOR OPFOR sur une cible.
Par exemple, j'arrive avec mon équipe sur un trigger qui active le tir du blindée.
J'ai regardé sur internet, mais rien du tout.
Si vous avez un script pour ça, je suis preneur.
Merci d'avance et merci pour l'autre topic sur le problème d'affichage.


Sursum Cordae

Addons Maker
Colonel
Avatar de GMC
  • Age : 50 ans
  • Messages : 1368
  • Inscrit : 29 Janvier 2007
  • Statut : Hors ligne
  • Spécialité : Démolition Expert
 
Lien vers ce message 02 Septembre 2020, 17:29
Message édité 5 fois, dernière édition par GMC, 02 Septembre 2020, 17:41  

Regarde ce petit script :

// ==============================
// Conditions de sortie de script 
// ==============================
/*
	Argument 1 (String) : _target = cible
	Argument 2 (String) : _arty = unité de tir artillerie
	Argument 3 (String) : _timerBase = délais entre chaque tir
	Argument 4 (Val)    : _timerRandom = _this select 3;
	Argument 5 (Val)    : _salves = nbre de tir 'obus;
	Argument 6 (Val)    : _bias = 359 Rayon
	Argument 7 (String) : _munitions = type de munitions
	Argument 8 (Val)    : _rayon d'dimpact (Facultatif)
	---------------------------------------------------------------------------------------------

 	Faites un trigger activé par ce que vous voulez, choisissez une cible (ex. target1) et mettez dans le onActivation du trigger:

	Commande à utiliser dans un déclencheur :
	script = [_target, _arty, _timerBase, _timerRandom, _salves, _bias, _munitions] execVM 'Scripts\ado_artillerie.sqf' 

	---------------------------------------------------------------------------------------------
	Exemple :
	script = [arty_target1,m2,1,1,3,359,"8Rnd_82mm_Mo_shells",45] execVM 'Scripts\ado_artillerie.sqf';

	---------------------------------------------------------------------------------------------
	cet exemple fait tirer le mortier 'm1' sur la cible '_arty' toutes les 1 secondes par salves de 3 obus, sur un rayon de 359°,
	chaque obus est affecté par 'imprcision, donc pas d'lobus au même endroit.
	Le mortier tire à 'infini, jusqu'là la mort de la sible. 
*/

if (!isServer) exitwith  {sleep 0.1;};										// Sortir du Script: si pas le serveur.

_target = _this select 0;
_arty = _this select 1;
_timerBase = _this select 2;
_timerRandom = _this select 3;
_salves = _this select 4;
_bias = _this select 5;
_munitions = _this select 6;
_rayon = _this select 7;

while {alive _target} do {
	for "_i" from 1 to _salves do {
		_targetX = (getpos _target select 0);
		_targetY = (getpos _target select 1);
		_targetZ = (getpos _target select 2);
		_arty setVehicleAmmoDef 1;
		if (!alive _target)  exitWith {};
		if ( _salves == 0)  exitWith {};
		_arty commandArtilleryFire [[_targetX - (_rayon*sin(random _bias)),_targetY - (_rayon*cos(random _bias)),_targetZ], _munitions, 1]; //45
		sleep (_timerBase + random _timerRandom);
	};
};


http://membresado.free.fr/upload_images/images/min/1599064641_gmc.jpg http://membresado.free.fr/upload_images/images/min/1599064675_gmc.jpg http://membresado.free.fr/upload_images/images/min/1599064697_gmc.jpg http://membresado.free.fr/upload_images/images/min/1599064853_gmc.jpg


http://www.clan-ado.fr/images/upload/membres/641_1335186516.jpg

Membre
Avatar de jeje52
  • Messages : 33
  • Inscrit : 27 Octobre 2013
  • Statut : Hors ligne
 
Lien vers ce message 02 Septembre 2020, 18:01

à quoi correspond Scripts\ado_artillerie.sqf' ?

Ceci, c'est juste pour l'exemple où je dois le mettre quelque part
Argument 1 (String) : _target = cible
Argument 2 (String) : _arty = unité de tir artillerie
Argument 3 (String) : _timerBase = délais entre chaque tir
Argument 4 (Val) : _timerRandom = _this select 3;
Argument 5 (Val) : _salves = nbre de tir 'obus;
Argument 6 (Val) : _bias = 359 Rayon
Argument 7 (String) : _munitions = type de munitions
Argument 8 (Val) : _rayon d'dimpact (Facultatif)

Et ça, j'en fais quoi aussi

if (!isServer) exitwith {sleep 0.1;}; // Sortir du Script: si pas le serveur.

_target = _this select 0;
_arty = _this select 1;
_timerBase = _this select 2;
_timerRandom = _this select 3;
_salves = _this select 4;
_bias = _this select 5;
_munitions = _this select 6;
_rayon = _this select 7;

while {alive _target} do {
for "_i" from 1 to _salves do {
_targetX = (getpos _target select 0);
_targetY = (getpos _target select 1);
_targetZ = (getpos _target select 2);
_arty setVehicleAmmoDef 1;
if (!alive _target) exitWith {};
if ( _salves == 0) exitWith {};
_arty commandArtilleryFire [[_targetX - (_rayon*sin(random _bias)),_targetY - (_rayon*cos(random _bias)),_targetZ], _munitions, 1]; //45
sleep (_timerBase + random _timerRandom);
};


Ensuite que je passe le trigger, j'ai le message suivant qui apparaît " Script Script\ado_artillerie.sqf not found


Sursum Cordae

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 02 Septembre 2020, 18:35
Message édité 3 fois, dernière édition par philippe83, 02 Septembre 2020, 18:38  

Normal le " Scripts\ado_artillerie.sqf" fait partie du "Template ADO" que nous utilisons au sein du clan. Je pense que tu dois renommer le script comme tu le souhaites et que tu l'appelles en lieu et place de "ADO_Template/Scripts.."


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

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

Membre
Avatar de jeje52
  • Messages : 33
  • Inscrit : 27 Octobre 2013
  • Statut : Hors ligne
 
Lien vers ce message 02 Septembre 2020, 19:01

mais le script, c'est bien un doc que je fais et que je mets dans mon dossier mission, vue que c'est un sqf.
Mais dedans, je mets quoi?


Sursum Cordae

Addons Maker
Colonel
Avatar de GMC
  • Age : 50 ans
  • Messages : 1368
  • Inscrit : 29 Janvier 2007
  • Statut : Hors ligne
  • Spécialité : Démolition Expert
 
Lien vers ce message 02 Septembre 2020, 20:07
Message édité 2 fois, dernière édition par GMC, 02 Septembre 2020, 20:10  

c'est le script: ligne de commande du scrip: un fichier nom_script.sqf

// ==============================
// Conditions de sortie de script 
// ==============================
/*
	Argument 1 (String) : _target = cible
	Argument 2 (String) : _arty = unité de tir artillerie
	Argument 3 (String) : _timerBase = délais entre chaque tir
	Argument 4 (Val)    : _timerRandom = _this select 3;
	Argument 5 (Val)    : _salves = nbre de tir 'obus;
	Argument 6 (Val)    : _bias = 359 Rayon
	Argument 7 (String) : _munitions = type de munitions
	Argument 8 (Val)    : _rayon d'dimpact (Facultatif)
	---------------------------------------------------------------------------------------------

 	Faites un trigger activé par ce que vous voulez, choisissez une cible (ex. target1) et mettez dans le onActivation du trigger:

	Commande à utiliser dans un déclencheur :
	script = [_target, _arty, _timerBase, _timerRandom, _salves, _bias, _munitions] execVM 'Scripts\ado_artillerie.sqf' 

	---------------------------------------------------------------------------------------------
	Exemple :
	script = [arty_target1,m2,1,1,3,359,"8Rnd_82mm_Mo_shells",45] execVM 'Scripts\ado_artillerie.sqf';

	---------------------------------------------------------------------------------------------
	cet exemple fait tirer le mortier 'm1' sur la cible '_arty' toutes les 1 secondes par salves de 3 obus, sur un rayon de 359°,
	chaque obus est affecté par 'imprcision, donc pas d'lobus au même endroit.
	Le mortier tire à 'infini, jusqu'là la mort de la sible. 
*/

if (!isServer) exitwith  {sleep 0.1;};										// Sortir du Script: si pas le serveur.

_target = _this select 0;
_arty = _this select 1;
_timerBase = _this select 2;
_timerRandom = _this select 3;
_salves = _this select 4;
_bias = _this select 5;
_munitions = _this select 6;
_rayon = _this select 7;

while {alive _target} do {
	for "_i" from 1 to _salves do {
		_targetX = (getpos _target select 0);
		_targetY = (getpos _target select 1);
		_targetZ = (getpos _target select 2);
		_arty setVehicleAmmoDef 1;
		if (!alive _target)  exitWith {};
		if ( _salves == 0)  exitWith {};
		_arty commandArtilleryFire [[_targetX - (_rayon*sin(random _bias)),_targetY - (_rayon*cos(random _bias)),_targetZ], _munitions, 1]; //45
		sleep (_timerBase + random _timerRandom);
	};
};


ligne de commande dans le trigger: [arty_target1,m2,1,1,3,359,"8Rnd_82mm_Mo_shells",45] execVM 'Scripts\ado_artillerie.sqf';

Chemin d’accès du script: 'Scripts\nom_script.sqf'; scripts = répertoire avec les scripts par exemple.

Regarde aussi les images pour comprendre.


http://www.clan-ado.fr/images/upload/membres/641_1335186516.jpg

Membre
Avatar de jeje52
  • Messages : 33
  • Inscrit : 27 Octobre 2013
  • Statut : Hors ligne
 
Lien vers ce message 03 Septembre 2020, 10:33

Cette fois, j'ai un autre message d'erreur qui apparait.
ça me parle du dossier script cette fois ci.
Est-ce que je dois modifier des choses sur ce documents sqf... je ne sais pas


Sursum Cordae

Addons Maker
Colonel
Avatar de GMC
  • Age : 50 ans
  • Messages : 1368
  • Inscrit : 29 Janvier 2007
  • Statut : Hors ligne
  • Spécialité : Démolition Expert
 
Lien vers ce message 04 Septembre 2020, 4:43

Non , regarde le chemin d'accès de ton script.
Fait un screen de ton répertoire de ta mission. SVP


http://www.clan-ado.fr/images/upload/membres/641_1335186516.jpg
Répondre





.