Page 1 sur 1

sript pour compter des pertes civiles

Posté : mar. 15 juin 2010, 09:51
par [OTEA] davidbzh
Salut,

Je suis une véritable quiche pour les scripts. J'ai un compagnon de galère d'édition, qui m'a posé une colle. Vous pourrez peut être me donner un coup de main.

Voila la situation, nous devons prendre d'assaut une ville remplie de vilains civils armés et de gentils civils désarmés. Pour l'instant c'est pas compliqué.

La mission est un échec si trois civils désarmés sont tués, aux amateurs de gachette facile ou je tire d'abord et je cause ensuite s'abstenir.

L'idée est intéressante mais je hisse le drapeau blanc. Vous pourrez peut être me donner quelques pistes.

Re: sript pour compter des pertes civiles

Posté : mar. 15 juin 2010, 11:34
par =[TTK]= Freshmeat
Tu peux t'inspirer des missions "Utes à vendre" et "[CO06]Ambushconvoy".

J'ai utilisé une variable publique initialisé à 0 par le seveur.
Dans l'init des civils à ne pas tuer, j'ai ajouté un EH killed qui incrémente cette variable.
Sur la map, j'ai ajouté un déclencheur qui compare mon compteur au nombre maximum de civils 'tuables'.

Attention : si tes civils sont hostiles, tes IA considèreront tout ce qui sera ajouté dynamiquement sur la carte comme hostile (vehicules, caisses de munitions, ...).

Re: sript pour compter des pertes civiles

Posté : mar. 15 juin 2010, 12:50
par Camille Caz
Voilà :
Soit
8 civils nommés de c1 à c8
Un déclencheur nommé "zone" dans lequel se trouvent les civils. Activation : civil ; répétition
Un script.sqs

Code : Tout sélectionner

_zone = zone;
arraycivils = [c1, c2, c3, c4, c5, c6, c7, c8];
_survivants = 0;

#boucle1

~2
_civilsvivants = 0
{if (_x in (list _zone)) then {_civilsvivants = _civilsvivants + 1}} foreach arraycivils;
if (_survivants > _civilsvivants) then {hint format [ "Il reste %1 civils", _civilsvivants]};
_survivants = _civilsvivants;

?(_survivants >5): goto "boucle1";

~2
hint "trop de sang civil sur les mains. Vous avez perdu !";
final1=true; PublicVariable "final1";
exit
final1 est la variable qui déclenche le déclencheur de fin.
Je viens d'essayer, ça marche.

Re: sript pour compter des pertes civiles

Posté : mar. 15 juin 2010, 13:40
par =[TTK]= Freshmeat
Ha lala ce Camille, quelle tête.
Je venais justement poster une réponse dans le genre....Ma solution un chouia plus complexe me permettais de compter les morts causés par les Russes et les US.

Re: sript pour compter des pertes civiles

Posté : mar. 15 juin 2010, 13:47
par Camille Caz
=[TTK]= Freshmeat a écrit :Ma solution un chouia plus complexe
C'est normal, sinon tu ne serais pas programmeur !

Re: sript pour compter des pertes civiles

Posté : mar. 15 juin 2010, 14:09
par =[TTK]= Freshmeat
Justement, c'est une erreur grave que de ne pas avoir tout de suite proposé ta solution, nettement plus adaptée.

Par contre, un jour il faudra que tu te mettes au sqf....

Re: sript pour compter des pertes civiles

Posté : lun. 21 juin 2010, 09:25
par [OTEA] davidbzh
salut,

Tu m'as tiré les oreilles Camille Caz et tu avais bien raison. J'ai bien vu ton script et je l'ai transmis à Bobe pour sa mission.

Je te remercie pour ta rapidité, moi je suis plus long à la détente :oops: .

Je te tiendrais au courant, dès qu'on aura testé sa mission.

Je suis en plus une enclume, j'avais oublié mon mot de passe. C'est maintenant réparé.

a+

Re: sript pour compter des pertes civiles

Posté : lun. 21 juin 2010, 20:38
par davidp
ça me met comme quoi il y a une erreur a la ligne 7 du script

Re: sript pour compter des pertes civiles

Posté : lun. 21 juin 2010, 21:06
par Camille Caz
Plutôt que regarder s'il ya une erreur, je te redonne le script tel qu'il fonctionne sur mon pécé.

Code : Tout sélectionner

_zone = zone;
arraycivils = [c1, c2, c3, c4, c5, c6, c7, c8];
_survivants = 0;

#boucle1

~2
_civilsvivants = 0
{if (_x in (list _zone)) then {_civilsvivants = _civilsvivants + 1}} foreach arraycivils;
if (_survivants > _civilsvivants) then {hint format [ "Il reste %1 civils", _civilsvivants]};
_survivants = _civilsvivants;
?(_survivants >5): goto "boucle1";


~2
hint "trop de sang civil sur les mains. Vous avez perdu !";
final1=true; PublicVariable "final1";
exit
C'est garanti, je viens d'essayer. Dis-moi que ça marche. Vérifie les noms c1 ,c2, etc. et le nom "zone" du déclencheur

Re: sript pour compter des pertes civiles

Posté : lun. 21 juin 2010, 22:04
par davidp
bonsoir j'aimerais vous envoyer ma mission, mais je ne sais pas comment je peux vous l'envoilez car la je suis ploque.

Re: sript pour compter des pertes civiles

Posté : mar. 22 juin 2010, 11:27
par Camille Caz
Il doit y avoir un essaim de "david", c'est pas possible.

Que la ruche demande à Moreback, le seigneur et prince des transferts de fichiers.
Moi,je suis un routard galactique qui ne comprend rien à ces choses terrestres.

Re: sript pour compter des pertes civiles

Posté : mar. 22 juin 2010, 17:04
par =[TTK]= Clem
tu conviens d'un rdv avec Camille.sqs ,tu mets ta mission en format dans ton dossier MP missions de ton répertoire arma 2 ,tu lance un serveur tu choisis ta mission ,Camille se connecte ,télécharge la mission puis va don son dossier caché arma 2 ,décompresse la mission ,la transfère dans son dossier édition et te dis ce qui vas pas.

Re: sript pour compter des pertes civiles

Posté : dim. 27 juin 2010, 16:59
par [OTEA] davidbzh
J'ai repris la mission de Bobe. Ton script fonctionne à merveille. Il nous reste quelques trucs à vérifier

Je te remercie,

a+