PDA

Voir la version complète : [Editing] FAQ & Liens Utiles pour créer SA mission



Page : 1 [2] 3

Okxyd
15/06/2014, 17h30
Salut les coins.
Je me suis attelé à adapter une mission custom à Zeus mais j'ai 2 problèmes:
1) le loadout de mes troupes custom est perdu au respawn (malgré le fait qu'il me semble avoir coché le contraire dans LEA).
2) lorsque les troupes respawn je ne peux plus les sélectionner en tant que Zeus, en gros l'unité perd sa sync avec le module du Zeus

Haleks
15/06/2014, 19h27
Le loadout au respawn est configuré pour chaque unité; t'as pensé à vérifier la config de tes troupes?

Example avec la config du soldat blufor de base :


respawnitems[] = {"FirstAidKit"};
respawnlinkeditems[] = {"V_PlateCarrier1_rgr", "H_HelmetB", "ItemMap", "ItemCompass", "ItemWatch", "ItemRadio", "NVGoggles"};
respawnmagazines[] = {"30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag", "16Rnd_9x21_Mag", "16Rnd_9x21_Mag", "16Rnd_9x21_Mag", "SmokeShell", "SmokeShellGreen", "Chemlight_green", "Chemlight_green", "HandGrenade", "HandGrenade"};
respawnweapons[] = {"arifle_MX_ACO_pointer_F", "hgun_P07_F", "Throw", "Put"};

---------- Post added at 19h27 ---------- Previous post was at 19h23 ----------


j'utilise le wiki 7thCav pour les classnames mais c'est tout.

Je te recommande chaudement six config browser (http://browser.six-projects.net/cfg_vehicles); tu y trouveras absolument tout et c'est plutôt bien foutu.

Izual
15/06/2014, 19h29
Je connais bien oui, mais c'est moins correctement agencé que sur 7th cav. J'y vais en dernier recours.

ammoniak007
15/06/2014, 19h33
@sparfell

Le dossier LEA (lea.rar) que tu voulais voir est dans le coin blabla sur le TS.

Dunko
15/06/2014, 20h24
je vois que tout le monde y va avec son petit lien favoris pour tout trouver ou presque, j'vous donne le mien :

https://community.bistudio.com/wiki/Arma_3_Assets

Blind_God_W@D
17/06/2014, 05h31
Comment avoir un pick up "Police" dans vos missions

Placer un pickup civil avec en ini :


handle = this spawn {_this animate ["HidePolice", 0]; _this animate ["HideBumper1", 0]; _this animate ["HideBumper2", 0]; _this animate ["HideDoor1", 0]; _this animate ["HideDoor2", 0]; _this animate ["HideDoor3", 0];}; _null = this spawn {_this setObjectTexture [0, "\A3\soft_F\Offroad_01\Data\Offroad_01_ext_BASE02_C O.paa"]};clearItemCargoGlobal this; clearWeaponCargoGlobal this; clearMagazineCargoGlobal this; clearBackpackCargoGlobal this;

Et voilà le résultat

http://tof.canardpc.com/view/747dfdf6-b0b2-49e9-bab6-d465ad5a68c5.jpg

Le seul défaut étant que les gyrophares ne s'allument pas. Dommage !

Dunko
17/06/2014, 07h53
Ca fait pin-pon?

ammoniak007
17/06/2014, 10h51
Merci pour ce partage

Blind_God_W@D
17/06/2014, 19h25
Ca fait pin-pon?
Non mais si tu klaxonnes très vite ça fait tututututututututututututut.

Stou. :emo:

SeanRon
17/06/2014, 23h11
excellent.
Mais tu devrais au moins mettre le first aid kit et le pompe réglementaire.
Comment ça on est pas aux states sur Altis ?

Dunko
05/07/2014, 13h18
Petite question aux amateurs de LEA.
J'ai pas trouvé au premier abord, voila ce que je veux faire : créer un template standard dune section US et ensuite pouvoir copier/coller ce template d'une mission a l'autre.

Papanowel
05/07/2014, 15h20
Petite question aux amateurs de LEA.
J'ai pas trouvé au premier abord, voila ce que je veux faire : créer un template standard dune section US et ensuite pouvoir copier/coller ce template d'une mission a l'autre.

Il suffit de créer et d'ajouter des nouveaux profils dans la section "profil editor".

Dunko
05/07/2014, 19h57
En voyant "profil", j'avais pas été plus loin puisque je ne pensais pas du tout que la soluce serait par ici.
ok, merci, jvais voir ca

Naad
05/07/2014, 20h32
Les profils ça peut servir pour de la "sauvegarde" aussi.

Par exemple si tu as commencé ton LEA mais que, pour une raison obscure :rolleyes:, tu refais un autre PBO tu peut à coup de clic droit sauvegarder 1 à 1 tes Loadout en profil et avec le même procédé les recoller sur ton nouveau PBO.

Il existe peut être d'autre méthodes mais si tu n'as pas 30 slots à pourvoir ça va vite comme ça.

Izual
21/07/2014, 18h40
Je sèche sur un truc assez simple, activer un waypoint quand un trigger s'active. En fait j'ai un trigger avec un compte à rebours, appelons le "trig", et j'ai un waypoint avec la condition "triggerActivated trig;". Le problème, c'est que rien ne se passe. J'ai essaye de les linker, de transformer le trigger en switch, de lui faire une "triggerActivation" on Act, mais ça ne change rien. Une idée ?

Naad
21/07/2014, 18h43
Euh, de mémoire tu synchronise le trigger avec le chef d'unité et le waypoint en question, pas besoin d'utiliser le champ condition de ton waypoint.

Sparfell
21/07/2014, 18h48
Euh, de mémoire tu synchronise le trigger avec le chef d'unité et le waypoint en question, pas besoin d'utiliser le champ condition de ton waypoint.

Oui normalement la synchronisation trigger <--> waypoint suffit.

Sinon :
Dans on Act du trigger :

plop = true;
et dans condition du waypoint :

plop

Izual
21/07/2014, 19h01
Aucune de ces deux solutions ne fonctionne, je ne vois pas trop ce qui se passe.

Naad
21/07/2014, 19h05
Truc con mais tu as essayé de mettre un Hint sur ton trigger pour voir si c'est pas lui qui merde?

ammoniak007
21/07/2014, 19h09
Je crois que Sparfell
a voulu metre pour la condition du waypoint :
plop == true;

sur activation du trigger tu passe la variable "plop" en "true"
plop = true;
et en condition du waypoint, il faut que la variable soie sur true pour remplire la condition du waypoint
plop == true;

Sparfell
21/07/2014, 19h21
Je crois que Sparfell
a voulu metre pour la condition du waypoint :

sur activation du trigger tu passe la variable "plop" en "true"
et en condition du waypoint, il faut que la variable soie sur true pour remplire la condition du waypoint

2 syntaxes différentes, même résultat. (?)

Izual
21/07/2014, 19h38
Le "==" n'est pas reconnu par l'éditeur, il faut un seul signe égal.

Et sinon ouais, j'ai essayé avec des hint et ça marche pas non plus, donc je vais déjà essayer de régler ça. Merci pour l'aide.

Hardballer
21/07/2014, 19h44
2 syntaxes différentes, même résultat. (?)

Yep, plop est une boolean


if (plop == true)
if (plop)

l'inverse étant

if (plop == false)
if !(plop)



@Izual
Si mais pas dans le cas d'une boolean, plop == 245 fonctionne.
Vérifie les conditions d'activation de ta trigger, si le hint ne se lance pas c'est qu'elle se déclenche pas

Izual
21/07/2014, 19h46
Oui mais c'est un countdown, j'y comprends rien apparemment alors que c'est sans doute simple. D'habitude je fais popper un civil à 3000m d'altitude avec un !alive en condition mais là c'est pour quelque chose un peu plus long :emo:

Hardballer
21/07/2014, 19h58
lol ok, fais ça :
Type : Néan
Condition : True

Et normalement... :tired:

Dunko
21/07/2014, 20h02
Truc bête : réessaye le switch avec trigger et tout le tralala mais link le au point de passage précédent.
En effet, le switch linké a un wp permet de passer au suivant une fois les conditions remplies

Haleks
21/07/2014, 20h15
T'as pas oublié de régler activationBy="ANY"?

Izual
21/07/2014, 20h37
T'as pas oublié de régler activationBy="ANY"?

C'est nécessaire pour un simple compte à rebours ?

Naad
21/07/2014, 20h53
Tu vire le "this" dans la condition de ton trigger. Ainsi il se déclenchera tout le temps. Tu ajoute ensuite le timer de ton choix dans ce même trigger.

Ensuite tu attribue au moins deux waypoints à tes unités que tu synchronise avec ton trigger. Ton unité va aller jusqu'au premier, puis ira au second (et les suivants) après ton timer (qui se lance par contre au lancement de la partie et pas à l'arrivée de ton unité sur sa position d'attente).

Chez moi ça marche.

Izual
22/07/2014, 11h19
Ça marche, effectivement ! Merci à tous.

Dunko
01/08/2014, 12h44
Je pose ma question ici dans l'espoir qu'elle soit vu par quelqu'un qui pourrait y repondre ou aurait quelques astuces en poche :

Comment faire pour que les ia aient une distance d'engagement bien plus grande?
Autrement dit, qu'ils me spottent et m'engagent de bien plus loin qu habituellement...

Idéalement sans mods particuliers.

Izual
01/08/2014, 12h44
Est-ce qu'augmenter leur jauge de skill influe là-dessus ?

Dunko
01/08/2014, 14h11
Est-ce qu'augmenter leur jauge de skill influe là-dessus ?
Et bien, je fais spawn mes ia avec un setdistance a 1. C'est la seul manip que je connais pour l'instant.

---------- Post added at 14h11 ---------- Previous post was at 14h08 ----------

Correction : spotdistance à 1

Haleks
01/08/2014, 14h11
Perso j'utilise quelque chose dans ce style-là :

{
_x setSkill ["spotDistance", 0.8];
_x setSkill ["spotTime", 0.9];
} forEach units TonGroupe;

Izual
02/08/2014, 00h51
Coucou,

J'aimerais faire en sorte qu'à chaque fois qu'une unité BLUFOR se trouve dans l'enceinte d'un trigger, celui-ci affiche un hint en continu à l'écran. Rien de très compliqué sans doute, mais je pige mal le concept des triggers, surtout que la chose est complexifiée puisqu'il faut que le hint disparaisse si l'unité est tuée et se réaffiche si une autre unité arrive dans la zone. D'ailleurs, si je veux plusieurs zones comme ça est-ce que les hint peuvent se superposer ou bien est-ce qu'ils écrasent le plus récent à l'écran ? (Avoir "intrus dans la zone 1" en même temps que "intrus dans la zone 2" à l'écran serait parfait).

De plus, est-ce que quelqu'un sait comment styliser un peu le texte des hint ?

Hardballer
02/08/2014, 01h47
http://img15.hostingpics.net/thumbs/mini_804524arma302082014014436225.png (http://www.hostingpics.net/viewer.php?id=804524arma302082014014436225.png)

Assures toi de foutre dans un init : loop = true; et t'es tout bon.

Si tu veux faire plus élaborer qu'un hint, regarde du côté des displays et autres dialogs.
Mais prévois plusieurs mois de galère avant d'avoir un résultat correct ^_^

Izual
02/08/2014, 01h53
Merci !

Par contre "dans un init", tu veux dire dans l'init.sqf ou dans l'init de n'importe quelle unité ?

Hardballer
02/08/2014, 01h55
C'est la même chose, mais prend l'habitude de faire un init.sqf, ça fait plus sérieux B)

Izual
02/08/2014, 17h13
Edit : Hardballer, merci encore, ça marche nickel.

Bon, heureusement que je suis là pour faire vivre un peu le topic hein, comme j'ai tout le temps des problèmes.

J'aimerais faire en sorte qu'un camion de munitions fournisse des munitions aux autres véhicules HMG (jusque-là, c'est bon, tout est normal) MAIS qu'il ne puisse pas donner d'obus aux mortiers alentours. J'ai pensé à un système de blacklist/whitelist pour faire en sorte que le camion ne donne qu'à certains véhicules et pas à d'autres, mais pas moyen de concrétiser ça. Est-ce que vous avez déjà rencontré ce problème ?

ammoniak007
02/08/2014, 17h43
Perso dans ces cas là, je fait sa via un scripts ...

Si tu n'a pas d'autres propositions de solutions, ont peut en reparler sur Ts ...

Dunko
02/08/2014, 18h13
Sinon tu peux prendre un camion qui soit pas spécialement un camion de ravitaillement. Un trigger pour dire que s'il est a moins de x mètres de ton hunter, ca le full répare/rearme.

Sparfell
03/08/2014, 15h02
Quelques lignes à mettre dans les init des véhicules pour leur attribuer des textures présentes dans les fichiers du jeu mais pas directement accessibles dans l'éditeur.

Camion Zamak :

- Cabine rouge :

this setObjectTexture [0, "a3\soft_f_beta\Truck_02\Data\truck_02_kab_co.paa"];

- Citerne bleue et blanche (peut être combinée avec la cabine rouge) :

this setObjectTexture [1, "a3\soft_f_beta\Truck_02\Data\truck_02_fuel_co.paa"];

- Bache bleu pour le zamak de transport couvert (peut être combinée avec la cabine rouge) :

this setObjectTexture [1, "a3\soft_f_beta\Truck_02\Data\truck_02_kuz_co.paa"];

- Module de réparation rouge pour le zamak de réparation (peut être combiné avec la cabine rouge) :

this setObjectTexture [1, "a3\soft_f_beta\Truck_02\Data\truck_02_repair_co.pa a"];

Little Bird de transport (Hummingbird), plein de textures différentes (en vert celle du camouflage AAF) :

this setObjectTexture [0, "a3\air_f\Heli_Light_01\Data\Skins\heli_light_01_ex t_blueline_co.paa"];
this setObjectTexture [0, "a3\air_f\Heli_Light_01\Data\Skins\heli_light_01_ex t_digital_co.paa"];
this setObjectTexture [0, "a3\air_f\Heli_Light_01\Data\Skins\heli_light_01_ex t_elliptical_co.paa"];
this setObjectTexture [0, "a3\air_f\Heli_Light_01\Data\Skins\heli_light_01_ex t_furious_co.paa"];"]
this setObjectTexture [0, "a3\air_f\Heli_Light_01\Data\Skins\heli_light_01_ex t_graywatcher_co.paa"];
this setObjectTexture [0, "a3\air_f\Heli_Light_01\Data\Skins\heli_light_01_ex t_jeans_co.paa"];
this setObjectTexture [0, "a3\air_f\Heli_Light_01\Data\Skins\heli_light_01_ex t_shadow_co.paa"];
this setObjectTexture [0, "a3\air_f\Heli_Light_01\Data\Skins\heli_light_01_ex t_sheriff_co.paa"];
this setObjectTexture [0, "a3\air_f\Heli_Light_01\Data\Skins\heli_light_01_ex t_speedy_co.paa"];
this setObjectTexture [0, "a3\air_f\Heli_Light_01\Data\Skins\heli_light_01_ex t_sunset_co.paa"];
this setObjectTexture [0, "a3\air_f\Heli_Light_01\Data\Skins\heli_light_01_ex t_vrana_co.paa"];
this setObjectTexture [0, "a3\air_f\Heli_Light_01\Data\Skins\heli_light_01_ex t_wasp_co.paa"];
this setObjectTexture [0, "a3\air_f\Heli_Light_01\Data\Skins\heli_light_01_ex t_wave_co.paa"];
this setObjectTexture [0, "a3\air_f\Heli_Light_01\Data\heli_light_01_ext_blue _co.paa"];
this setObjectTexture [0, "a3\air_f\Heli_Light_01\Data\heli_light_01_ext_co.p aa"];
this setObjectTexture [0, "a3\air_f\Heli_Light_01\Data\heli_light_01_ext_indp _co.paa"];
this setObjectTexture [0, "a3\air_f\Heli_Light_01\Data\heli_light_01_ext_ion_ co.paa"];

Hélico léger CSAT, Orca : (là aussi une texture AAF)

this setObjectTexture [0, "a3\air_f\Heli_Light_02\Data\heli_light_02_ext_civi lian_co.paa"];
this setObjectTexture [0, "a3\air_f\Heli_Light_02\Data\heli_light_02_ext_indp _co.paa"];

Mohawk (hélico de transport AAF):

Attention trois textures pour un même hélico.

texture civile :

this setObjectTexture [0, "a3\air_f_beta\Heli_Transport_02\Data\Skins\heli_tr ansport_02_1_dahoman_co.paa"];
this setObjectTexture [1, "a3\air_f_beta\Heli_Transport_02\Data\Skins\heli_tr ansport_02_2_dahoman_co.paa"];
this setObjectTexture [2, "a3\air_f_beta\Heli_Transport_02\Data\Skins\heli_tr ansport_02_3_dahoman_co.paa"];
texture ION :

this setObjectTexture [0, "a3\air_f_beta\Heli_Transport_02\Data\Skins\heli_tr ansport_02_1_ion_co.paa"];
this setObjectTexture [1, "a3\air_f_beta\Heli_Transport_02\Data\Skins\heli_tr ansport_02_2_ion_co.paa"];
this setObjectTexture [2, "a3\air_f_beta\Heli_Transport_02\Data\Skins\heli_tr ansport_02_3_ion_co.paa"];

Strider gris (fonctionne pour les trois striders : non armé, HMG et GMG) :

this setObjectTexture [0, "a3\soft_f_beta\MRAP_03\Data\mrap_03_ext_co.paa"]; this setObjectTexture [1, "a3\data_f\vehicles\turret_co.paa"];


-------------------------------------------

Par là : SITE (http://aircommando.fr/site/phpbb3/viewtopic.php?f=26&t=496) , vous trouverez d'autres infos comme une commande pour modifier la couleur de la texture, des commandes pour customiser les offroads (gyros, pare-choc, sac à dos, portières, etc) et plein d'autres trucs.

Izual
03/08/2014, 15h08
Excellent, merci Sparfell.

ammoniak007
03/08/2014, 15h19
merci

Haleks
03/08/2014, 15h27
Merci Sparfell!
Punaise je savais pas que le Littlebird avait autant de textures possibles.:O
Le camouflage AAF rend super bien dessus.

Par contre :


Par là : SITE (http://aircommando.fr/site/phpbb3/viewtopic.php?f=26&t=496) , vous trouverez d'autres infos comme une commande pour modifier la couleur de la texture, des commandes pour customiser les offroads (gyros, pare-choc, sac à dos, portières, etc) et plein d'autres trucs.
Méfiez-vous si vous jouez avec la couleur des textures : il y a un problème de LOD qui, au-delà d'une certaine distance, fait de gros pixels noirs visibles de super loin.

Sparfell
03/08/2014, 15h52
De rien, ok pour les modifs de textures, je l'ai pas encore utilisé perso.

J'ai édité mon post pour rajouter le Strider Gris ;).

PT93
05/08/2014, 19h34
Bonjour,

Est ce que c'est techniquement faisable sous arma 2 co (mod i44) d'appliquer des effets de points de passage (texte + son,musique) de façon à ce que ça soit visible et entendu par une seule unité spéciale ? Le joueur peut incarner plusieurs unités dans ma mission qui va certainement être mise à disposition en mp. J'explique en profondeur, il y a plusieurs fronts de combat sur ma carte (aille mon cpu ^^) avec des unités aériennes et j'en passe... Je peut donc switcher entre plusieurs unités situées sur d'autres fronts. Le problème c'est ce que j'entends l'effet d'un point de passage ennemi d'un front (non préoccupant on va dire^^) sur les autres unités alliés que celles qui sont réellement concernées (c logique d'un point de vue programmation). En gros existe t'il un script ou un mod/addon qui saurait corriger ce petit défaut de arma? Le texte affiché est en fait un hint "avec le message" et le son est appliqué par l'interface des points de passage. Je ne suis pas hyper fort en c++, c pour ça que je vous la pose a vous les canardiens (si ça se dit comme ça :) )

Lesupercopter
09/08/2014, 17h22
Exactement le genre de truc qui me plait, merci !!

Izual
10/08/2014, 19h25
Perso dans ces cas là, je fait sa via un scripts ...

Si tu n'a pas d'autres propositions de solutions, ont peut en reparler sur Ts ...

J'ai pas trouvé de solution franchement satisfaisante donc ouaip je t'en reparlerai quand on se verra sur le TS.

Haleks
11/08/2014, 14h59
Rhâaa, j'm'arrache les cheveux là. >_<'

Les canards, vous savez si il est possible de désactiver le fait de ne plus pouvoir courir quand on se prend une bastos dans les guiboles?
J'ai essayé avec "player setHit ["legs", 0];" dans une boucle, mais ça n'a pas l'air de marcher...
J'suis également tombé sur la commande "isBleeding (https://community.bistudio.com/wiki/isBleeding)" - ça n'a probablement rien à voir, mais quelqu'un sait ce que ça signifie, ou même si c'est utilisé ou pas dans le jeu?

Help, siouplé.:emo:

SeanRon
11/08/2014, 17h51
une unité blessée passe en isBleeding 1 et dépose du sang sur le décors autour de lui.

Haleks
11/08/2014, 19h57
J'avais jamais capté cette feature; c'est utilisé in-game ou c'est un reliquat de l'Alpha?

Hardballer
11/08/2014, 22h02
Les canards, vous savez si il est possible de désactiver le fait de ne plus pouvoir courir quand on se prend une bastos dans les guiboles?


De ce que j'ai testé à partir de 50% de dommage on ne peut plus courir.
A partir de là tu peux faire des scripts qui en cas de dommage bloque le soldat à 49% et gère en parallèle une santé fictive qui tue le soldat une fois arrivé à zero.
Les events handlers HandleDamage et HandleHeal permettent de faire ça.
https://community.bistudio.com/wiki/Arma_3:_Event_Handlers#HandleDamage

---------- Post added at 22h02 ---------- Previous post was at 21h52 ----------



J'aimerais faire en sorte qu'un camion de munitions fournisse des munitions aux autres véhicules HMG, MAIS qu'il ne puisse pas donner d'obus aux mortiers alentours. J'ai pensé à un système de blacklist/whitelist

Avec ça https://community.bistudio.com/wiki/nearEntities tu récupères les véhicules à proximité ensuite

https://community.bistudio.com/wiki/setFuel
https://community.bistudio.com/wiki/weaponsTurret
https://community.bistudio.com/wiki/addMagazineTurret

Après je pense que la capacité de rechargement d'un camion de munition est dans sa config alors soit tu fais un mod avec une nouvelle config pour la supprimer soit tu prends un véhicule de base.


Ou alors :|

Event Handler Fired sur ton mortier,
https://community.bistudio.com/wiki/Arma_3:_Event_Handlers#Fired
une variable globale qui détermine le nb de munition du mortier, elle diminue à chaque tir.
Un loop pour checker le nb de munition actuel du mortier, si > à la variable alors tu la diminue en conséquence.

Haleks
11/08/2014, 23h34
De ce que j'ai testé à partir de 50% de dommage on ne peut plus courir.
A partir de là tu peux faire des scripts qui en cas de dommage bloque le soldat à 49% et gère en parallèle une santé fictive qui tue le soldat une fois arrivé à zero.
Les events handlers HandleDamage et HandleHeal permettent de faire ça.

C'est ce que je pensais aussi, mais récemment il m'est arrivé de ne plus pouvoir courir après avoir pris un tir - et j'avais à peu près 70% de santé.:'(

Punaise, qu'est-ce qu'ils ont eu besoin de changer ça, c'était tellement plus simple dans Arma2...

Naad
12/08/2014, 15h49
Une question concernant les pilotes de jet. Est-ce important qu'un pilote est un vrai slot "pilote". Je pose la question puisqu'il me semble que dans Arma II la résistance aux G était conditionnée par ça. J'ai pas l'impression que ça joue dans Arma III mais je voudrais pas rater autre chose.

En fait je voulais bêtement lui mettre un slot de medic pour qu'il puisse s'injecter de la morphine en cas de "bug" AGM lors de l’atterrissage, mais je voudrais pas du coup que ça entraine une autre mauvaise surprise derrière.

Merci!

Sparfell
12/08/2014, 19h08
Salut, à priori les effets de G ne sont pas simulés dans Arma 3 vanilla mais je peux me tromper ( dans les configs rien ne semble les rendre moins sensibles à des effets particulier en tout cas).

Edit : 10 minutes après ton message j'ai vu que les "G" étaient une feature de la version 0.93 (https://github.com/KoffeinFlummi/AGM/releases/tag/v0.93)de AGM qui vient de sortir XD.

Edit 2 : sinon pour rendre une unité medic avec AGM :

this setVariable ["AGM_IsMedic", true];

You can also use this on vehicles, to turn them into medical vehicles

Edit 3 : Du coup j'ai jeté un oeil. Il semble que pour une unité standard le coef de force G ("AGM_GForceCoef") est de 1, avec un uniforme de pilote (U_B_PilotCoveralls, U_I_PilotCoveralls, U_O_PilotCoveralls) il est de 0.80 et pour une unité pilote (B_Pilot_F, I_Pilot_F, O_Pilot_F) il est de 0.75.

Le mieux donc pour toi est d'utiliser un pilote et de le rendre medic pour AGM (on a pas encore la mise à jour et il faut voir si on garde le pbo force G).

Naad
15/08/2014, 13h56
Ah punaise j'avais pas vu tous tes édit, merci sparfell je suis justement en train de retoucher la mission, je vais appliquer ça.

edit: quelqu'un a réussi à utiliser ça?

- Added: Mission designers can allow certain AI units to fall unconscious using "this setVariable ["AGM_AllowUnconscious", true]".

Chez moi il reste désespérément debout.

Sparfell
19/08/2014, 10h40
Je suis en train de bosser sur une mission à 6 joueurs pour laquelle l'extraction doit se faire à l'aide d'un bateau piloté par une IA (un hors-bord armé). Les joueurs peuvent donc appeler l'extraction avec un trigger radio. Cela déclenche le départ du bateau qui se rend jusqu'à un point de passage situé sur le lieu d'extraction. Dans ce point de passage j'ai mis le code suivant en condition :

((!alive player1) OR (player1 in boat)) AND ((!alive player2) OR (player2 in boat)) AND ((!alive player3) OR (player3 in boat))
Lorsque je la teste sur l'éditeur ça marche bien mais lorsque je la joue en partie hostée le bateau ne veux plus repartir de ce point de passage.
Sachant qu'il y a possiblement du combat et des ias ennemies en alerte à proximité. j'ai essayé de régler les point de passage en "inconscient", "ne jamais tirer" mais cela n'a rien changé. J'ai aussi essayé de faire en sorte que les ias qui conduisent le bateau soient indépendantes (et donc alliées avec les deux camps) mais ça n'a pas marché non plus.

PS : lorsque je test la mission, je ne joue pas avec toute les ias, je ferme toutes celles que je n'utilise pas dans le lobby, est-ce que ça peu être du à ça ? (j'avais vu dans l'éditeur que la commande ne fonctionnait pas sous éditeur lorsque l'unité "player3" par exemple n'existait pas).

Quelqu'un peut m'aider ou me donner un meilleur moyen de réaliser une extraction de ce type simplement.
Je commence à me souvenir pourquoi d'habitude je préfère faire une extraction gérée entièrement par les joueurs...

Hardballer
19/08/2014, 11h49
PS : lorsque je test la mission, je ne joue pas avec toute les ias, je ferme toutes celles que je n'utilise pas dans le lobby, est-ce que ça peu être du à ça ? (j'avais vu dans l'éditeur que la commande ne fonctionnait pas sous éditeur lorsque l'unité "player3" par exemple n'existait pas).

Yep, le AND signifie bien que chaque condition doit être vraie pour activer la trigger, si player3 n'existe pas ça ne marche pas.

Le plus simple c'est de rajouter une action au bateau pour lui dire de bouger.

ammoniak007
19/08/2014, 11h59
@Sparfell,

essaye avec sa dans l'init de ton unité


this allowFleeing 0;this disableAi "TARGET";this disableAi "AUTOTARGET";

allowFleeing 0, annule toute retraite possible de l'ia

this disableAi "TARGET";this disableAi "AUTOTARGET", empêche l'ia de recevoir de new ordre a cause d'ia ennemis détecter .

Dunko
19/08/2014, 12h01
Et justement, n'y a t'il pas moyen de rajouter une condition qui permettrai de verifier si un slot et vide. J'imagine un truc du genre :
((not alive player1) OR (player1 in boat) OR (player1 not true "ou je ne sais quoi")) AND blablabla. ..


dsl je suis sur mon tel, au boulot et pas sûre d'être bien clair

Hardballer
19/08/2014, 12h06
OR (isNil "player1")

Dunko
19/08/2014, 12h21
Classe!
Bon sparfell, si t'as d'autres questions, hesites pas!

*hop disparition!
Et merci hardballer kenobi

Izual
19/08/2014, 12h25
allowFleeing 0, annule toute retraite possible de l'ia

:o Mais c'est génial ça !

Sinon, quelqu'un sait comment détecter l'explosion d'une éolienne, identifiée uniquement par un ID d'après ce que j'ai cru comprendre ?

Sparfell
19/08/2014, 12h39
:o Mais c'est génial ça !

Sinon, quelqu'un sait comment détecter l'explosion d'une éolienne, identifiée uniquement par un ID d'après ce que j'ai cru comprendre ?

Dans la condition du déclencheur :

getdammage ([0,0,0] nearestObject ID_Du_Batiment) > 0.5

Remplacer "ID_Du_Batiment" par l'ID de l'éolienne.
Le dernier chiffre correspond au degré de destruction du bâtiment, 1 étant = à "complètement détruit". Ici, si le bâtiment a reçu plus de 50% de dommages, le trigger s'active.

PS : merci à tous pour vos réponses.

Izual
19/08/2014, 12h40
Merci beaucoup.

Sparfell
19/08/2014, 14h36
Bon j'ai essayé avec "OR (isNil "player1") " et les commandes données par Ammo mais le résultat n'est pas meilleur, du coup j'ai utilisé un trigger radio pour déclencher le départ du bateau et finalement c'est même vachement mieux et plus simple. :p
Merci encore.

Izual
21/08/2014, 00h23
Dans la condition du déclencheur :

getdammage ([0,0,0] nearestObject ID_Du_Batiment) > 0.5

Remplacer "ID_Du_Batiment" par l'ID de l'éolienne.
Le dernier chiffre correspond au degré de destruction du bâtiment, 1 étant = à "complètement détruit". Ici, si le bâtiment a reçu plus de 50% de dommages, le trigger s'active.

PS : merci à tous pour vos réponses.

Alors voilà un bug bien étrange... Quand je mets un trigger avec cette ligne (j'ai remplacé l'ID et le trigger a un rayon de 5 mètres), mon jeu se met à ramer d'une manière extrêmement forte et incompréhensible. Quelqu'un veut bien faire le test chez lui ? Est-ce que ce trigger rend votre mission injouable (en particulier s'il est relié à un waypoint, par exemple) ?

Hardballer
21/08/2014, 01h35
Sur ton code [0,0,0] c'est une position, x,y,z.
Pour que tu te rendes compte place this setPos [0,0,0] dans l'init de ton soldat.

Tu places ce code là dans une trigger, autrement dit le code est exécuté toutes les 0.5 seconde.

Au final tu as ton ordi qui cherche un bâtiment en particulier à travers toute la map et ce toute les 0.5 seconde alors oui ça rame c'est normal.

Solution:
Met un marqueur à la position de l'objet.
getdammage ((getMarkerPos "monmarker") nearestObject ID_Du_Batiment) > 0.5

Ou rentre toi même les coordonnées (tu les a en bas à gauche dans l'éditeur).

;)

Sparfell
21/08/2014, 19h54
Tiens, j'avais utilisé ça une ou deux fois sur A2 et pas de soucis de perfs (visibles du moins), en tout cas c'est sûr que la formule de Hard est mieux.

Izual
21/08/2014, 20h10
Ça marche nickel, merci !

Dunko
21/08/2014, 20h11
Sinon pour la jouer sans ID :

Un déclencheur groupé avec ton batiment. Tu laisse sur "static object" dans le déclencheur et passe en "not present" la condition.

Hardballer
21/08/2014, 20h17
Tiens, j'avais utilisé ça une ou deux fois sur A2 et pas de soucis de perfs (visibles du moins), en tout cas c'est sûr que la formule de Hard est mieux.

Haha je me souviens d'opération nichoir sur Thirsk, impossible de filmer à cause de ça :p

Sparfell
21/08/2014, 20h35
Haha je me souviens d'opération nichoir sur Thirsk, impossible de filmer à cause de ça :p

Haha ok, et personne me l'a dit. :rolleyes:

Pikar
30/08/2014, 20h21
J'aimerais savoir s'il existe un module qui tient compte du nombre de mort parmi les civils tués ?
Au bout X civils tués par les joueurs, la mission s'arrête.

Haleks
30/08/2014, 20h58
Je ne pense pas; va falloir scripter ça...

Skippy
31/08/2014, 14h56
De mémoire, UPSMON faisait ça sur A2, à voir s'ils l'ont gardé sur A3. Par contre ça serait dommage de faire tourner UPSMON juste pour ça. Regarde du côté des eventhandlers, notamment le killed.
Tu peux faire une variable globale que tu incrémentes à chaque fois qu'un civil est tué.

https://community.bistudio.com/wiki/addEventHandler

Pikar
31/08/2014, 15h45
Merci pour la piste Skippy, je place ça dans mon pense-bête spécial Arma. :)

ammoniak007
07/09/2014, 20h20
yep yep,

Je voudrait ajouter des Spare track (chenilles de rechange pour blindés du mode AGM)

j'ai essayer avec
this addItemCargoGlobal ["AGM_SpareTrack", 10], mais sa ne fonctionne pas ...

Si qu'elle qu'un a une idée ...

Je me dit qu'il doit y avoir une subtiliser vu que sa ne ce mets pas dans l’inventaire du véhicule mais via l'interaction AGM

Sparfell
07/09/2014, 20h50
yep yep,

Je voudrait ajouter des Spare track (chenilles de rechange pour blindés du mode AGM)

j'ai essayer avec , mais sa ne fonctionne pas ...

Si qu'elle qu'un a une idée ...

Je me dit qu'il doit y avoir une subtiliser vu que sa ne ce mets pas dans l’inventaire du véhicule mais via l'interaction AGM

Les items types roues/chenilles de rechange, jerrycan sont disponibles dans l'éditeur sous "Empty\AGM". Tu peux donc les placer comme ça et les joueurs pourront les charger au début de la mission (solution en carton).
Sinon le wiki a été pas mal étoffé notamment en ce qui concerne le mission making :
WIKI AGM (https://github.com/KoffeinFlummi/AGM/wiki/For-Mission-Makers)
En feuilletant rapidement j'ai pas trouvé ce que tu cherche par contre.

ammoniak007
08/09/2014, 00h02
Merci, effectivement, et on peut en charger jusque à quatre (les deux d'origines plus deux supplémentaires) par véhicule, mais pour des raisons pratique ce serai bien de pouvoir les mètres directement dans l'inventaire AGM du véhicule.

Il ne parle pas de sa sur leur Wiki ...

Sinon je pensait a un petit scripte que permettrai aux mécaniciens d'en faire spawner un ...

Warzen
10/09/2014, 10h06
GAIA est dispo sans MCC:
http://forums.bistudio.com/showthread.php?183056-Mission-Template-Stand-Alone-GAIA-Make-missions-FAST-by-using-MCC-GAIA-engine

J'ai hâte de voir ce que vont en faire les mecs doués dans la création de mission. :)

Izual
10/09/2014, 10h16
Excellent, ça faisait longtemps que je voulais l'essayer.

Merci de l'info.

Edit : OK j'ai lu le manuel. Niveau d'excitation : pénis.

Dunko
10/09/2014, 11h11
J'utilise l'upsmon pour éditer mes missions et même si il est moins fiable sur A3 qu'il ne l'était sur A2. Il reste énormément bon.

La question est pour ceux qui connaissent et utilisent GAIA (et upsmon aussi) : que m'apporte GAIA de plus ?

En vous remerkiant

Skippy
10/09/2014, 13h27
D'après les créateurs:

GAIA should outperform UPSMON as the currently used ‘engines’. Not for the sake of beating them
but for the fact that we want to expand the AI numbers and their behavior. If you want that, you
need good performance.
GAIA should be setup in such a way that it initially can be a simple ‘replacement’ for the existing
‘engines’. This is the reason why GAIA initially supports the commands ‘DEFEND’, ‘ATTACK’ and
‘FORTIFY’, just like UPSMON and UPS do. (see details later).

Il est vrai que le caching des unités manque cruellement à UPSMON. À tester donc mais ça à l'air très bon.

Dunko
10/09/2014, 13h31
Euh... maître skippy kenobi, c'est quoi le "caching"?
Le fait de cachinguer peut être?

Izual
10/09/2014, 13h34
Euh... maître skippy kenobi, c'est quoi le "caching"?
Le fait de cachinguer peut être?
Faire disparaitre des unités de la carte quand elles sont loin du joueur, pour des raisons de performance serveur.

Skippy
10/09/2014, 13h47
Oui c'est ça, en l’occurrence si une unité est cachée (assez loin des joueurs), elle reste en jeu mais son IA est désactivée (disableAI). On lui retire la pile du cerveau comme ça pas besoin de s'embêter à savoir ce à quoi elle pense. On économise ainsi pas mal de ressources. On peut facilement imaginer tout takistan occupé avec GAIA alors qu'avec UPSMON c'est impossible.

Edit: GAIA effectue son caching en deux étapes, la première comme décrit ci-dessus (on désactive simplement l'IA si l'unité est à plus de x mètres des joueurs) et la seconde où l'on supprime carrément l'unité si elle est à plus de 2 x mètres des joueurs.

Lesupercopter
10/09/2014, 21h03
Bonsoir, je voulais savoir si il était possible de renommer les noms des groupes dans le lobby (Alpha 1-1 / Alpha 1-2 / etc...) pour une MP arma 3.

Hardballer
10/09/2014, 22h05
Non, impossible.

Pikar
11/09/2014, 16h15
Salut,

Question débile car problème débile !!!!

Je cherche à manipuler les créations de tâches avec le briefing.sqf

Tout bêtement, j'ai mis ça


tskobj1 = player createSimpleTask["Faire ceci."];
tskobj1 setSimpleTaskDescription["Blablablablablbalbalbalbal.",
"",
""];

Ma tâche s'affiche très bien sur le briefing mais le nom de la tâche Faire ceci n'apparaît pas. Quelqu'un n'aurait pas une idée de la cause? :ninja:

http://tof.canardpc.com/preview2/256ddb79-dc21-4442-99cd-e1533ecb2a96.jpg (http://tof.canardpc.com/view/256ddb79-dc21-4442-99cd-e1533ecb2a96.jpg)

Hardballer
11/09/2014, 16h20
tskobj1 setSimpleTaskDescription["Blablablablablbalbalbalbal.",
"faire ceci",
""];

Pikar
11/09/2014, 16h24
Arf, je m'attendais à une réponse bête, j'étais sur que le createSimpleTask gérer cela. :(

Je pense qu'on peut me balancer un RTFM.. Merci Hard ;)

Izual
15/09/2014, 20h15
Dites, je suis le seul à avoir des bugs au niveau des casques de kart, genre this addHeadgear "H_RacingHelmet_1_green_F"; ?

Je les prend direct depuis l'arsenal, et j'ai beau les filer à des civils dans la preview de l'éditeur ils se retrouvent trois fois sur quatre avec une casquette à la place.

Edit : question subsidiaire, y a une condition pour les trigger qui détecte les coups de feu tirés ? Je voudrais que if Quelqu'unTire -> Exempled'Unité setcaptive false;

Sparfell
15/09/2014, 20h32
Pour les casques c'est parce que le headgear des civils est aléatoire et du coup ça bug (http://feedback.arma3.com/view.php?id=14007).Pour résoudre le problème tu peux changer le headgear après un court délais par exemple via un déclencheurs retardé de genre 3 secondes :

removeheadgear nomdeunité; nomdeunité addheadgear "nomducasque";
Il y a surement une solution moins bourrin mais celle là doit fonctionner.

---------- Post added at 20h32 ---------- Previous post was at 20h28 ----------

Pour le Trigger tu peux peut-être essayer ça :
LIEN (http://forums.bistudio.com/showthread.php?106189-Help-with-Shots-fired-activate-Trigger)

Izual
15/09/2014, 20h43
Les deux problèmes sont bien résolus, merci beaucoup. Tu me laisses ton 06 pour la hotline éditeur ?

ammoniak007
18/09/2014, 15h18
yop yop,

J'ai un petit soucis de scripte.

J'ai un scripte pour réarmer des T-100 dans une mission

Scripte:


_reparateurs = [mec1,mec2];//liste des joueurs abilités à réparer l'appareil
_veh = _this select 0;//appareil du addaction
_joueur = _this select 1;//joueur qui appelle le addaction
_nb_secondes = 100;//temps en secondes pour réparer l'appareil
_temps_ecoule = 0;
annuleRearm = 0;

if (!(_joueur in _reparateurs)) exitWith {hintSilent parseText format["<t size='2.2' color='#FE002A'>Seul un mécanicien peut réarmer ce véhicule</t>"];};

if (count (crew _veh) > 0) exitWith {hintSilent parseText format["<t size='2.2' color='#FE002A'>Sortez du véhicule pour le réarmement.</t>"];};

if (_veh distance btr > 30) exitWith {hintSilent parseText format["<t size='2.2' color='#FE002A'>Réarmement impossible, rapprochez vous du BTR pour réarmer</t>"];};

while {_temps_ecoule <= _nb_secondes } do {
_joueur switchMove "AinvPknlMstpslayWrflDnon_medic";
hintSilent parseText format["<t size='2.2' color='#FE002A'>Chargement des munitions %1/%2</t>",_temps_ecoule,_nb_secondes];
_temps_ecoule = _temps_ecoule + 20;
sleep 7;
};
if (annuleRearm == 0) then {
_veh setVehicleAmmo 1;
hintSilent parseText format["<t size='2.2' color='#00EA08'>Munitions chargée.</t>"];
};
_joueur switchMove "AidlPercMstpSrasWrflDnon_AI";


Le script est appelé via un add action sur le T-100 a réarmer.

Le problème c'est que la commande "_veh setVehicleAmmo 1;" ne s'effectue pas sur le serveur donc le réarmement ne ce fait pas.

Le truc c'est que le reste du script doit s'effectuer en local sauf cette commande qui doit être en global ...

Si quelqu’un a une petite idée ...


Merci.

Sparfell
18/09/2014, 15h30
De mémoire c'est les addactions ne s’exécutent que en local donc tout ton script s’exécute localement. Fait en sorte que le script soit exécuté par tous/leserveur.
Méthode bourrin : l'addaction exécute un script qui passe une variable en true et la rend global puis exécuter ton script via un déclencheur avec cette variable comme condition.

ammoniak007
18/09/2014, 15h36
Le truc c'est qu'il faut que le script s’exécute en Local pour ne pas polluer les autres joueurs avec les hint.

de plus il y a plusieurs T-100 et afin de ne pas devoir faire un scripts par T-100 j'utilise "_veh = _this select 0;" pour sélectionner le véhicule a réparer ... si je rentre _veh setVehicleAmmo 1;dans un trigger, la variable _veh ne sera pas reconnue ...

Hardballer
18/09/2014, 16h20
init.sqf
vehToRearm = 0;
if (isServer) then
{
"vehToRearrm" addPublicVariableEventHandler {_veh = _this select 1; _veh setVehicleAmmo 1};
};

Dans ton script d'action rajoute
vehToRearm = _veh;
publicVariableServer "vehToRearm";
sleep 1;
Hint "good to go";

Skippy
18/09/2014, 16h30
Tu peux aussi utiliser BIS_fnc_mp ou CBA_fnc_globalExecute:
https://dev.withsix.com/docs/cba/files/network/fnc_globalExecute-sqf.html
https://community.bistudio.com/wiki/BIS_fnc_MP_(Take_On_Helicopters)

ammoniak007
18/09/2014, 16h51
Oki merci de vos réponces ...

@Hardballer

en fait

vehToRearm = 0;
if (isServer) then
{
"vehToRearrm" addPublicVariableEventHandler {_veh = _this select 1; _veh setVehicleAmmo 1};
};

fait que dès que un scrips (local ou global) fait un _veh setVehicleAmmo 1, il soit en Global ?

Sinon sa doit bien donner sa pour le script ?


_reparateurs = [mec1,mec2,moi];//liste des joueurs abilités à réparer l'appareil
_veh = _this select 0;//appareil du addaction
_joueur = _this select 1;//joueur qui appelle le addaction
_nb_secondes = 100;//temps en secondes pour réparer l'appareil
_temps_ecoule = 0;
annuleRearm = 0;
vehToRearm = _veh;
publicVariableServer "vehToRearm";
sleep 1;

if (!(_joueur in _reparateurs)) exitWith {hintSilent parseText format["<t size='2.2' color='#FE002A'>Seul un mécanicien peut réarmer ce véhicule</t>"];};

if (count (crew _veh) > 0) exitWith {hintSilent parseText format["<t size='2.2' color='#FE002A'>Sortez du véhicule pour le réarmement.</t>"];};

if (_veh distance btr > 30) exitWith {hintSilent parseText format["<t size='2.2' color='#FE002A'>Réarmement impossible, rapprochez vous du BTR pour réarmer</t>"];};

while {_temps_ecoule <= _nb_secondes } do {
_joueur switchMove "AinvPknlMstpslayWrflDnon_medic";
hintSilent parseText format["<t size='2.2' color='#FE002A'>Chargement des munitions %1/%2</t>",_temps_ecoule,_nb_secondes];
_temps_ecoule = _temps_ecoule + 20;
sleep 7;
};
if (annuleRearm == 0) then {
_veh setVehicleAmmo 1;
hintSilent parseText format["<t size='2.2' color='#00EA08'>Munitions chargée.</t>"];
};
_joueur switchMove "AidlPercMstpSrasWrflDnon_AI";

Hardballer
18/09/2014, 19h20
Non,
https://community.bistudio.com/wiki/addPublicVariableEventHandler

Tu ajoutes un event handler qui détecte quand une variable est broadcasté (envoyer via le network exemple du joueur au serveur) et lance ensuite du code en local.

Ici ça donne
Le joueur qui modifie la variable vehToRearm pour que ça corresponde au véhicule qu'on veut réarmer.
Il broadcaste la variable au serveur.
Le broadcaste déclenche le code que tu détermines avec le addPublicVariableEventHandler.
Ainsi le serveur récupère le véhicule et fait la commande en local.

Et ça
vehToRearm = _veh;
publicVariableServer "vehToRearm";

c'est pour activé le réarmement, donc dans ton script ça va là
if (annuleRearm == 0) then {
vehToRearm = _veh;
publicVariableServer "vehToRearm";
hintSilent parseText format["<t size='2.2' color='#00EA08'>Munitions chargée.</t>"];

ammoniak007
18/09/2014, 19h31
oki, merci .

:D

Et du coup , c'est normal que sa n'aie pas en Local, sur mon PC ??

Vu que quand je teste la variable n'est pas broadcasté, vu que je l'envoie du serveur au serveur ?

Hardballer
18/09/2014, 19h59
Ca marche si tu testes ta mission en créant un serveur et non pas depuis l'éditeur.

ammoniak007
18/09/2014, 21h23
Super, merci ;)

---------- Post added at 21h23 ---------- Previous post was at 20h06 ----------

pfff, sa va pas sur le serveur ..

Je recolle tous une dernière fois, après tempi y aura pas de réarmement .

Scripts


_reparateurs = [mec1,mec2];//liste des joueurs abilités à réparer l'appareil
_veh = _this select 0;//appareil du addaction
_joueur = _this select 1;//joueur qui appelle le addaction
_nb_secondes = 100;//temps en secondes pour réparer l'appareil
_temps_ecoule = 0;
annuleRearm = 0;


if (!(_joueur in _reparateurs)) exitWith {hintSilent parseText format["<t size='2.2' color='#FE002A'>Seul un mécanicien peut réarmer ce véhicule</t>"];};

if (count (crew _veh) > 0) exitWith {hintSilent parseText format["<t size='2.2' color='#FE002A'>Sortez du véhicule pour le réarmement.</t>"];};

if (_veh distance btr > 30) exitWith {hintSilent parseText format["<t size='2.2' color='#FE002A'>Réarmement impossible, rapprochez vous du BTR pour réarmer</t>"];};

while {_temps_ecoule <= _nb_secondes } do {
_joueur switchMove "AinvPknlMstpslayWrflDnon_medic";
hintSilent parseText format["<t size='2.2' color='#FE002A'>Chargement des munitions %1/%2</t>",_temps_ecoule,_nb_secondes];
_temps_ecoule = _temps_ecoule + 20;
sleep 7;
};
if (annuleRearm == 0) then {
vehToRearm = _veh;
publicVariableServer "vehToRearm";
sleep 1;
hintSilent parseText format["<t size='2.2' color='#00EA08'>Munitions chargée.</t>"];
};
_joueur switchMove "AidlPercMstpSrasWrflDnon_AI";

et dans l'init


vehToRearm = 0;

if (isServer) then
{
"vehToRearm" addPublicVariableEventHandler {_veh = _this select 1;_veh setVehicleAmmo 1};};

Le script fonctionne mais pas de réarmement ...

Hardballer
18/09/2014, 22h25
Ça marche quand tu testes ça en local ?

ammoniak007
18/09/2014, 22h40
oui , mais pas sur le serveur

Hardballer
18/09/2014, 22h50
Le véhicule est pas local au serveur alors. Utilise une des commandes cité plus haut par skippy. Assure toi que tout le monde exécute le code. Dans le lot y'aura forcément le owner du véhicule.

ammoniak007
19/09/2014, 11h21
oki , merci


CBA_fnc_globalExecute
Description

Executes code on given destinations
Parameters
_channel All: -2, ClientsOnly: -1, ServerOnly: 0 [Integer]
_code Code to execute

_parameter OPTIONAL. Parameter to pass to the code in the _this variables [Any]
Returns
Example

[CODE] [-1, {player globalChat _this}, "TEST"] call CBA_fnc_globalExecute;


_reparateurs = [mec1,mec2];//liste des joueurs abilités à réparer l'appareil
_veh = _this select 0;//appareil du addaction
_joueur = _this select 1;//joueur qui appelle le addaction
_nb_secondes = 100;//temps en secondes pour réparer l'appareil
_temps_ecoule = 0;
annuleRearm = 0;

if (!(_joueur in _reparateurs)) exitWith {hintSilent parseText format["<t size='2.2' color='#FE002A'>Seul un mécanicien peut réarmer ce véhicule</t>"];};
if (count (crew _veh) > 0) exitWith {hintSilent parseText format["<t size='2.2' color='#FE002A'>Sortez du véhicule pour le réarmement.</t>"];};
if (_veh distance btr > 30) exitWith {hintSilent parseText format["<t size='2.2' color='#FE002A'>Réarmement impossible, rapprochez vous du BTR pour réarmer</t>"];};
while {_temps_ecoule <= _nb_secondes } do {
_joueur switchMove "AinvPknlMstpslayWrflDnon_medic";
hintSilent parseText format["<t size='2.2' color='#FE002A'>Chargement des munitions %1/%2</t>",_temps_ecoule,_nb_secondes];
_temps_ecoule = _temps_ecoule + 20;
sleep 7;
};
if (annuleRearm == 0) then { [0, {_veh setVehicleAmmo 1;},""] call CBA_fnc_globalExecute;
hintSilent parseText format["<t size='2.2' color='#00EA08'>Munitions chargée.</t>"]; };
_joueur switchMove "AidlPercMstpSrasWrflDnon_AI";?

De cette manière il ne reconnait pas la variable "_veh" mais dès que j’enlève le _ devant "veh" dans tous mon scripte sa fonctionne sur l’éditeur et en Local, me reste a tester sur le serveur ....

Ps, j'ai passer la variable 0 en -2 (all)

et sa va pas sur le serveur .... :(

rerere édit, avec la variable -1 sa a l'aire de fonctionné !!!


_reparateurs = [mec1,mec2];//liste des joueurs abilités à réparer l'appareil
veh = _this select 0;//appareil du addaction
_joueur = _this select 1;//joueur qui appelle le addaction
_nb_secondes = 100;//temps en secondes pour réparer l'appareil
_temps_ecoule = 0;
annuleRearm = 0;


if (!(_joueur in _reparateurs)) exitWith {hintSilent parseText format["<t size='2.2' color='#FE002A'>Seul un mécanicien peut réarmer ce véhicule</t>"];};

if (count (crew veh) > 0) exitWith {hintSilent parseText format["<t size='2.2' color='#FE002A'>Sortez du véhicule pour le réarmement.</t>"];};

if (veh distance btr > 30) exitWith {hintSilent parseText format["<t size='2.2' color='#FE002A'>Réarmement impossible, rapprochez vous du BTR pour réarmer</t>"];};

while {_temps_ecoule <= _nb_secondes } do {
_joueur switchMove "AinvPknlMstpslayWrflDnon_medic";
hintSilent parseText format["<t size='2.2' color='#FE002A'>Chargement des munitions %1/%2</t>",_temps_ecoule,_nb_secondes];
_temps_ecoule = _temps_ecoule + 20;
sleep 7;
};
if (annuleRearm == 0) then {
[-1, {veh setVehicleAmmo 1},""] call CBA_fnc_globalExecute;
sleep 1;
hintSilent parseText format["<t size='2.2' color='#00EA08'>Munitions chargée.</t>"];
};
_joueur switchMove "AidlPercMstpSrasWrflDnon_AI";

Hardballer
19/09/2014, 13h39
c'est un bug de la commande setVehicleAmmo en faite...
http://feedback.arma3.com/view.php?id=13661

Des fois ça marche des fois non :lol:
Bienvenue dans Arma !

ammoniak007
19/09/2014, 13h49
C'est peut être pour sa que sparfell a eu un log d'erreur .
Perso je n'ai rien eu du tout.


Error in expression <veh setVehicleAmmo 1>
Error position: <veh setVehicleAmmo 1>
Error in expression <veh setVehicleAmmo 1>
Error position: <veh setVehicleAmmo 1>
Error Undefined variable in expression: vehMis a part sa, aussi bien lui que moi avons réussi a réarmer du premier coup ..

Hardballer
19/09/2014, 13h53
Après avoir réarmer est ce que tout le monde voit bien les munitions à fond en allant a la place du gunner ?

L'erreur c'est normal, tu peux l'éviter en rajoutant un publicVariable "veh"; avant de lancer la commande.

ammoniak007
19/09/2014, 13h55
oui, ont a vérifié ...
a chaque fois .

Mais je referais quelques test quand j'aurais du monde pour tester . =====================> avis aux amateurs :D

Hardballer
19/09/2014, 14h13
bon ba ça va.
Du coup faut faire comme ça :



init.sqf
execVM "rearm.sqf";


rearm.sqf
waitUntil {time > 5};
vehToRearm = 0;

if (isPlayer) then
{
"vehToRearm" addPublicVariableEventHandler {_veh = _this select 1; _veh setVehicleAmmo 1};
};

if (isServer) then
{
"vehToRearm" addPublicVariableEventHandler {_veh = _this select 1;
if (local _veh) then {_veh setVehicleAmmo 1}
else {
_id = owner _veh;
_id publicVariableClient "vehToRearm";};
};
};

Dans ton script d'action rajoute
vehToRearm = _veh;
publicVariableServer "vehToRearm";


C'est pareil que ce que tu as actuellement sauf que ça vérifie si le véhicule est local au serveur (ça peut arriver si le owner du véhicule se déco en cour de jeu) et ça envoie le code uniquement chez la personne concernée, du coup on tire moins sur la bande passante.

ammoniak007
19/09/2014, 15h00
Sa ne va pas , j'ai tester en local sur mon Pc et il me dit "if (#isServer) then ... erreur générique dans une expression,.... ( manquant .... rearm.sqf .... ligne 4."


rearm.sqf:


waitUntil {time > 5};
vehToRearm = 0;

if (isPlayer) then
{
"vehToRearm" addPublicVariableEventHandler {_veh = _this select 1; _veh setVehicleAmmo 1};
};

if (isServer) then
{
"vehToRearm" addPublicVariableEventHandler {_veh = _this select 1;
if (local _veh) then {_veh setVehicleAmmo 1}
else {
_id = owner _veh;
_id publicVariableClient "vehToRearm";};
};
};

Dunko
30/09/2014, 12h31
Plop, je me suis mis a Gaia et pour ne pas tuer leur grosse capacité a bouger (bien) j'aimerais retirer la fatigue aux ias.

Après quelques recherches je trouve essentiellement des scripts pour retirer la fatigue aux joueurs voir a tout se qui traîne sur le serveur. Et puis cest toujours d'un compliqué...

bref, idealment je cherche un truc a coller dans mon init de mission qui pourrait être : ia = no fatigue

quelqu'un aurait il une solution simple dans le genre?

Hardballer
30/09/2014, 12h53
Juste pour un groupe
{_x enableFatigue false} forEach (units _group);

pour tous les ias
{
if !(isPlayer _x) then {_x enableFatigue false};
} forEach allUnits;

Dunko
30/09/2014, 13h21
Oki cool.
mais le deuxième pour toutes les ias ne va pas retirer la fatigue pour les joueurs egalement?

Hardballer
30/09/2014, 13h26
if !(isPlayer _x) fait en sorte que non.

Dunko
30/09/2014, 13h40
Ca marche. Merci a toi

ammoniak007
08/10/2014, 13h18
Yep yep

Je me suis mis a GAIA :D

Tous va bien (Merci Dunko au passage, j'ai utilisé une de tes missions pour copier le truc :D), mais je me demandait si il y avait un débug comme UPSMON ?

Izual
08/10/2014, 13h23
J'espère que tu vas nous pondre de jolies missions sur Chantal :)

Et je vois que l'école Hardballer gagne du terrain :tired:

Hardballer
08/10/2014, 14h04
mais je me demandait si il y avait un débug comme UPSMON ?

Pas que je sache, sur Cowboy sunset j'ai créé le mien, tu peux essayer de copier ça mais avec la dead line de Make Arma Not War qui arrive je vais pas être dispo pour faire du SAV :p

ammoniak007
08/10/2014, 21h52
oki , merci

Dunko
15/10/2014, 00h58
Bon je séche... je fais du caca avec mes scripts. Donc, j'appelle "a l'aide!".

Je n'arrive pas a faire spawn, via un script, un véhicule (un pick-up armé en l'occurrence) et lui ajouter des inits.
Je voudrais pouvoir lui modifier ses skills et lui donner une variable Gaia.

Si quelqu'un a un script/spawn en poche je suis preneur.

Hardballer
15/10/2014, 01h06
Créer un groupe d'infanterie classique, fais tes réglages et ensuite créer un pick up et tu places les unités dedans.

Dunko
15/10/2014, 01h35
C'est ce que je fais déjà mais je voudrais rajouter du respawn.
C'est là que je coince puisque habituellement je dis au IA d'aller dans le pick-up qui s'appelle "tartempion". Je le nomme, Facile!
Mais une fois tartempion détruit et les IAs tuées. Respawn! Et j'ai deux IAs qui errent sans but dans la vie... Leur pick-up est détruit.

C'est pour cela que je voudrais carrément faire spawn un véhicule. Faire du respawn

Hardballer
15/10/2014, 02h08
Et bien fais ton propre script de respawn qui prendra en compte le pick up, si tu sais les faire spawner tu peux les faire respawner c'est les mêmes commandes.
Faut juste que tu détermine quand lancer le respawn.

ammoniak007
15/10/2014, 02h14
_group = createGroup EAST;
_pos = getMarkerPos "popvh3";
_uaz = createVehicle ["O_MU_islam_Offroad_01_armed_F", _pos, [], 0, "NONE"];

_r = floor (random (count _arrayUnits));
_vehi = _arrayUnits select _r;
_unit = _group createUnit [_vehi, _pos, [], 0, "NONE"];
[_unit] join _group;
group _unit setVariable ["MCC_GAIA_RESPAWN",5, true];
group _unit setVariable ["GAIA_ZONE_INTEND",["9", "MOVE"], false];
_unit assignAsDriver _uaz;
[_unit] orderGetIn true;

_r = floor (random (count _arrayUnits));
_vehi = _arrayUnits select _r;
_unit = _group createUnit [_vehi, _pos, [], 0, "NONE"];
[_unit] join _group;
_unit assignAsGunner _uaz;
[_unit] orderGetIn true;

_array = units _group;
{_x enableFatigue false} forEach (units _group);
{_x setskill ["aimingAccuracy",(random(0.04) + 0.07)]} forEach _array;
{_x setSkill ["aimingspeed",(random(0.08) + 0.06)]} forEach _array;
{_x setSkill ["aimingshake",(random(0.08) + 0.02)]} forEach _array;
{_x setskill ["spotDistance",(random(0.2) + 0.8)]} forEach _array;
{_x setskill ["spotTime",(random(0.2) + 0.8)]} forEach _array;


sa marche pas ?


édit; Mois, je cherche comment faire pour que des A-164 (AI) lancent leurs flares en passent au dessus d'un endroit x .... Si quelqu'un a une petite idée ...

Dunko
15/10/2014, 13h57
Oki, merci ammo. ca marche parfaitement et en plus avec le spawns aléatoire habituel. Bien joué.
J'étais tellement parti loiiiiiiiiiiin avec mon bricolage...


EDIT : j'ai été trop vite a dire "bien joué". Ca donne le même problème que je rencontre. Les IAs respawnent mais pas leur technical...

ammoniak007
15/10/2014, 14h04
Sa vient de tes scriptes GAIA ou des ancien UPSMon ...

Izual
15/10/2014, 16h27
Tiens je profite que le topic soit Up : comment on fait pour donner un nom aux escouades qui ne soit pas Alpha 1-1, Alpha 1-2, etc ? Je l'ai vu dans une mission de Dunko, par exemple.

ammoniak007
15/10/2014, 17h24
Avec le roster de Skippy

Izual
15/10/2014, 17h43
C'est donc ça ! :o Ok, merci.

Dunko
15/10/2014, 17h47
Pour le nom des squads (via le script skippy):

Le Team Leader a ça dans son init :

(group this) setGroupID["Navy Seals Alpha"];
this setVariable ["displayName","Chef de dispositif"];

détail qui a son importance : Idéalement la classe qui lui est attribué dans le "description" est le même que le "DisplayName". Ici, "Chef de dispositif". Cela permet d'avoir un lobby clair qui ne va pas noyer les gens sous 4 noms différents pour un même slot.


Si on continu :
Un spé démo de cette même squad aura :

(group this) setGroupID["Navy Seals Alpha"]; this setVariable ["displayName","Démolisseur"];

Précision: je rajoute a chaque membre le "setGroupID" pour que si le chef ne soit pas sloter, le nom de l'équipe apparaisse quand même.

ammoniak007
16/10/2014, 16h26
yep yep,

Je tente de crée un scripte qui ferait décoller 2 A-164 pour détruire des véhicules/objects bien précis ...

J'en suis actuellement là .


if (alive pla164) then {
pla164 moveInDriver a164;
sleep 3;
};

while {((alive pla164) && !(unitReady pla164))} do {
sleep 1;
};


if (alive pla164) then {
pla164 doMove (getMarkerPos "pp1");
coma = 1;
publicVariable "coma";
sleep 3;
};

while {((alive pla164) && !(unitReady pla164))} do {
sleep 1;
};


while {alive pla164 && alive vhob6} do {
comb = 1;
publicVariable "comb";
pla164 doTarget vhob6;
sleep 3;
};


while {alive pla164 && alive vhob7} do {
comc = 1;
publicVariable "comc";
pla164 doTarget vhob7;
sleep 3;
};



while {alive pla164 && alive vhob8} do {
comd = 1;
publicVariable "comd";
pla164 doTarget vhob8;
sleep 3;
};



while {alive pla164 && alive vhob2} do {
come = 1;
publicVariable "come";
pla164 doTarget vhob2;
sleep 3;
};



while {alive pla164 && alive vhob5} do {
comf = 1;
publicVariable "comf";
pla164 doTarget vhob5;
sleep 3;
};


while {alive pla164 && alive vhob4} do {
comg = 1;
publicVariable "comg";
pla164 doTarget vhob4;
sleep 3;
};


while {alive pla164 && alive vhob1} do {
comh = 1;
publicVariable "comh";
pla164 doTarget vhob1;
sleep 3;
};



while {alive pla164 && alive vhob3} do {
comi = 1;
publicVariable "comi";
pla164 doTarget vhob3;
sleep 3;
};



while {alive pla164 && alive vhob9} do {
comj = 1;
publicVariable "comj";
pla164 doTarget vhob9;
sleep 3;
};



while {alive pla164 && alive vhob10} do {
comk = 1;
publicVariable "comk";
pla164 doTarget vhob10;
sleep 3;
};


while {alive pla164 && alive vhob11} do {
coml = 1;
publicVariable "coml";
pla164 doTarget vhob11;
sleep 3;
};


while {alive pla164 && alive vhob12} do {
comm = 1;
publicVariable "comm";
pla164 doTarget vhob12;
sleep 3;
};



while {alive pla164 && alive vhob13} do {
comn = 1;
publicVariable "comn";
pla164 doTarget vhob13;
sleep 3;
};



while {alive pla164 && alive vhob14} do {
como = 1;
publicVariable "como";
pla164 doTarget vhob14;
sleep 3;
};



while {alive pla164 && alive vhob15} do {
comp = 1;
publicVariable "comp";
pla164 doTarget vhob15;
sleep 3;
};


sleep 5;


if (alive pla164) then {
comg = 1;
publicVariable "comg";
pla164 doMove (getMarkerPos "bb1");
sleep 3;


while {((alive pla164) && !(unitReady pla164))} do {
sleep 1;
};

if (alive pla164) then {
pla164 land "LAND";
};
};


Tous va bien quand je test sur l'éditeur, mais dès que je teste en hébergent une partie, le script n'a pas l'aire d'aller plus loin que la commande qui change la variable "comb = 1;" ( variable qui déclenche un hint).

Les avions vont bien jusque pp1 puis font demi-tour après le hint.


Si quelqu’un voit une erreur quelque part ou a une solution, je sèche la dessus depuis ce matin :s....


Merci .

Hardballer
16/10/2014, 18h33
https://community.bistudio.com/wiki/doFire

C'est pour faire quoi le publicVariable ?

ammoniak007
16/10/2014, 18h41
j'ai essayé doFire, en fait j'ai essayé avec doWatch suivit de doTarget puis de doFire et sa va pas non plus
le publicVariable rend la variable public pour qu' elle déclenche un déclencheur avec un hint cher tous le monde.

Ps, juste avec doTarget sa fonctionne sur l'éditeur.

Hardballer
16/10/2014, 18h47
PublicVariable toute les 3 secondes c'est pas terrible ^^

Essaye de mettre une unité ennemi à côté de ta cible, tu la rends invisible pour tout le monde sauf le serveur et normalement ton avion va engager ta cible.
https://community.bistudio.com/wiki/hideObject
Avec https://community.bistudio.com/wiki/disableAI pour pas que ton unité ennemi se balade.

ammoniak007
16/10/2014, 19h39
je ne suis pas sure de comprendre ou tu veux en venir ....


Tu veux que je place des IA allié aux A-164 pour qu'il "repère" leurs cibles ?

Hardballer
16/10/2014, 19h44
non tu places genre un camion ennemi, l'ia de ton avion l'engagera de lui même normalement.
Sinon fouille du côté des functions Zeus, il y en a une de CAS qui marche pas mal de mémoire.

ammoniak007
16/10/2014, 19h59
Le truc c'est que pour ce scénario il faut que sa soie précis et sure.

Ce que tu me propose est quand même +- aléatoire , pas dit qu'il va attaquer ce que je veux quand je le veux ...

doTarget est une commande global , sa devrait fonctionné ...


édit, sa fonctionne avec des véhicules avec une unités dedans, c'est mieux que rien .

Hardballer
17/10/2014, 09h14
Oui donc c'est finalement ce que je t'avais proposé, donner une vrai cible a ton avion plutôt qu'un objet vide.

par contre doTarget c'est une commande locale, les effets sont broadcastés mais tu dois l'exécuter depuis le owner de ton unité, dans ton cas le serveur si ton avion est placé dans l'éditeur.

ammoniak007
17/10/2014, 10h51
Sa a l'aire de fonctionner, mais une fois sur cinq un des avion fait demi-tour avant le doTarget .
C'est bizarre .

ps pk il y a le petit icône Global ? https://community.bistudio.com/wiki/doTarget

Hardballer
17/10/2014, 11h13
t'as local et global.

ammoniak007
24/10/2014, 14h19
yep yep

Je cherche la signification exacte de ce fixe AGM

- Fixed: A-10 Gau cannon burst inconsistent (#802).

Skeay
24/10/2014, 14h26
Je pense qu'il s'agit du bruit du canon continu, même lorsqu'il ne tire pas.

ammoniak007
24/10/2014, 14h33
oki , car je bosse sur une mission avec deux A -164 AI qui CAS une base ennemie et il n'y a plus aucun bruis et plus de traçantes lors des gun round .

De plus, depuis la 0.94 le serveur chute en fps et lag plus qu'avec la 0.93 lors des gun round...

Sa ce pourrait que sa soie un conflit avec blastcore ?

DHP
25/10/2014, 00h14
De plus, depuis la 0.94 le serveur chute en fps et lag plus qu'avec la 0.93 lors des gun round...

Sa ce pourrait que sa soie un conflit avec blastcore ?

Tiens c'est marrant ce que tu dis j'ai l'impression d'avoir ressenti la même chose. Hum, à surveiller..

DHP
25/10/2014, 16h48
Vous utilisez quoi pour lire les .sqm ?

le bloc note W7 suffit ?

Sparfell
25/10/2014, 16h53
Notepad++

DHP
25/10/2014, 17h23
Merci. :)

ammoniak007
27/10/2014, 12h37
Yep yep,

Je cherche des infos sur le largage de munitions d'AGM ...

Quelqu'un sait comment sa fonctionne ?

Sparfell
27/10/2014, 12h40
Ça ne marche qu'avec le Mohwak, tu charges la caisse dedans avec le menu AGM et une fois en vol tu peux la larguer avec le menu interaction sur soi à condition d'être au moins à 60m du sol.

Je crois que ça ne fonctionne pas avec la 0.94 mais c'est corrigé par la 0.94.1.

ammoniak007
27/10/2014, 12h48
ok, merci , j’essayais avec le PO-30 Orca, pour sa que sa n'allait pas :D

Sparfell
29/10/2014, 17h03
Un script qui permet de simuler un véhicule qui brouille les coms radios de TFAR (http://forums.bistudio.com/showthread.php?169029-Task-Force-Arrowhead-Radio&p=2806101&viewfull=1#post2806101)

ammoniak007
29/10/2014, 17h50
j'ai vu que RHS avait mis des véhicules "radar" ... peut être la même fonction ...

Sparfell
29/10/2014, 18h00
j'ai vu que RHS avait mis des véhicules "radar" ... peut être la même fonction ...

Je crois que pour l'instant ils n'ont aucune fonction particulière, juste des éléments de décors mais peut être qu'ils en auront dans le futur. En revanche on peut tout à fait les utiliser avec ce script je pense.

Izual
07/11/2014, 13h04
Dites, Gaia refuse d'utiliser son mortier dans la preview éditeur. Comme elle n'utilise pas non plus les flares (mais qu'ils sont utilisés en conditions réelles) je ne m'inquiète pas trop, mais vous avez eu besoin de faire des trucs spéciaux pour faire fonctionner le soutien mortier vous ?

dino86
07/11/2014, 13h12
Dites, Gaia refuse d'utiliser son mortier dans la preview éditeur. Comme elle n'utilise pas non plus les flares (mais qu'ils sont utilisés en conditions réelles) je ne m'inquiète pas trop, mais vous avez eu besoin de faire des trucs spéciaux pour faire fonctionner le soutien mortier vous ?

Perso j'ai réussi à faire utiliser un mortier par Gaia en tir direct, par contre quand tu parles du soutien morteir c'est quoi ? Un groupe IA qui appel le mortier hors de son champs de vision ?

Izual
07/11/2014, 13h19
Oui voilà, normalement ça fonctionne tout seul. Gaia appelle le mortier en soutien pour aider d'autres escouades.

ammoniak007
07/11/2014, 13h29
chez moi les flares fonctionnent, je colle mon init.sqf ici


// Chang the following numbers to your liking
if (isServer ) then
{
// From what range away from closest player should units be cached (in meters or what every metric system arma uses)?
// To test this set it to 20 meters. Then make sure you get that close and move away.
// You will notice 2 levels of caching 1 all but leader, 2 completely away
// Stage 2 is 2 x GAIA_CACHE_STAGE_1. So default 2000, namely 2 x 1000
GAIA_CACHE_STAGE_1 = 80000;
// The follow 3 influence how close troops should be to known conflict to be used. (so they wont travel all the map to support)
// How far should footmobiles be called in to support attacks.
// This is also the range that is used by the transport system. If futher then the below setting from a zone, they can get transport.
MCC_GAIA_MAX_SLOW_SPEED_RANGE = 300;
// How far should vehicles be called in to support attacks. (including boats) et distence d'appel des renforts
MCC_GAIA_MAX_MEDIUM_SPEED_RANGE= 800;
// How far should air units be called in to support attacks.
MCC_GAIA_MAX_FAST_SPEED_RANGE = 80000;
// How logn should mortars and artillery wait (in seconds) between fire support missions.
MCC_GAIA_MORTAR_TIMEOUT = 300;
// DANGEROUS SETTING!!!
// If set to TRUE gaia will even send units that she does NOT control into attacks. Be aware ONLy for attacks.
// They will not suddenly patrol if set to true.
MCC_GAIA_ATTACKS_FOR_NONGAIA = false;

// If set to false, ai will not use smoke and flares (during night)
MCC_GAIA_AMBIANT = true;

// Influence how high the chance is (when applicaple) that units do smokes and flare (so not robotic style)
// Default is 20 that is a chance of 1 out of 20 when they are applicable to use smokes and flares
MCC_GAIA_AMBIANT_CHANCE = 20;
// The seconds of rest a transporter takes after STARTING his last order
MCC_GAIA_TRANSPORT_RESTTIME = 40;

};


// We set the markers invisible (if you use more then 100 markers, then increase). Or delete if you want them visible
for "_x" from 1 to 100 do
{
format ["%1",_x] setMarkerAlpha 0;
};


//DO NOT CHANGE FROM BELOW (You can, but you will be out of support :P )

//----------------------gaia------------------------------------------------------
if (isserver) then {call compile preprocessfile "gaia\gaia_init.sqf";};


//===============Delete Groups ====================
if (isServer ) then
{
[] spawn
{
_gaia_respawn = [];
while {true} do
{
//player globalchat "Deleting started..............";

{
_gaia_respawn = (missionNamespace getVariable [ "GAIA_RESPAWN_" + str(_x),[] ]);
//Store ALL original group setups
if (count(_gaia_respawn)==0) then {[(_x)] call fn_cache_original_group;};

if ((({alive _x} count units _x) == 0) ) then
{
//Before we send him to heaven check if he should be reincarnated
if (count(_gaia_respawn)==2) then { [_gaia_respawn,(_x getVariable ["MCC_GAIA_RESPAWN",-1]),(_x getVariable ["MCC_GAIA_CACHE",false]),(_x getVariable ["GAIA_zone_intend",[]])] call fn_uncache_original_group;};

//Remove the respawn group content before the group is re-used
missionNamespace setVariable ["GAIA_RESPAWN_" + str(_x), nil];

deleteGroup _x;
};

sleep .1;

} foreach allGroups;

sleep 2;
};
};
};

Izual
07/11/2014, 17h44
Merci, on verra bien si ça marche.

Lesupercopter
07/11/2014, 21h33
Bonjour, je voudrais savoir comment faire pour comme dans le VTS, ajouter un paramètre pour enlever ou non l'équipement des joueurs au spawn.

Hardballer
07/11/2014, 21h46
tu créés ton paramètre avec comme values 0 pour faux et 1 pour vrai.
ensuite dans initPlayerLocal.sqf tu fais


playerUnit = _this select 0;
if ("supercopterparam" call BIS_fnc_getParamValue == 1) then
{
removeAllWeapons playerUnit;
removeAllItems playerUnit;
removeAllAssignedItems playerUnit;
etc...
};


init.sqf est devenu obsolète, plus d'info ici https://community.bistudio.com/wiki/Event_Scripts

Lesupercopter
07/11/2014, 22h22
Sa marche parfait, c'est plus simple que je ne pensais, en tout cas merci.

Naad
07/11/2014, 22h45
Bonsoir;

Je me retrouve coincé sur un truc dont je me doute que la solution doit être évidente, mais depuis le temps que je bute dessus je baisse un peu les bras.

Je souhaiterais, suite au déclenchement d'un trigger, lancer une succession d'action chronométrées. Problème chez moi le 'sleep' est parfaitement ignoré. La seule solution que j'ai trouvé pour l'instant est de multiplier les triggers clones avec chacun leur action et leur timer propre. Pas glop. Il doit bien être possible de faire cela au sein d'un même trigger j'imagine, non?

Hardballer
07/11/2014, 22h59
Faut envisager le script, les triggers c'est juste intéressant quand on veut vérifier des choses par rapport à une zone.
Explique ce que tu veux faire.

Naad
07/11/2014, 23h06
Oh ben des truc vraiment tout con, des hint + spawn d'IA. Maintenant comme il s'agit de faire tenir une position aux joueurs j'aurais voulut timer quelques spawn, histoire d'avoir un flot d'ennemis répartis dans le temps et pas tout d'un coup.Le tout se déclenche quelques temps après l'arrivée des joueurs dans la zone à tenir (d'où le trigger).

Hardballer
08/11/2014, 00h19
dans l'activation de la trigger:
null = execVM "mon.script.sqf"

et dans le script


sleep 2;

if (isServer) then
{
code côté serveur, par exemple le spawn d'unité.
}
else
{
code côté client, par exemple un hint

};

sleep 3;

etc


Si tu as besoin de précision dans le délai, utilise uiSleep à la place de sleep, ça utilise le temps système plutôt que le temps script (suffit que le serveur galère un peu et sleep 1 ne sera pas forcément une pause d'une seconde à cause du lag)

Haleks
08/11/2014, 17h07
Précision, au cas où : la commande 'sleep' ne fonctionne pas si tu l'utilises dans un script activé avec "call" (un tel script ne peut pas être suspendu).
Il faut appeler ton script avec "execVM" ou "spawn".

Hardballer
08/11/2014, 18h04
Non, c'est plus subtile que ça ^_^

Tu as le "scheduled environment" et le "non scheduled environment".

non scheduled environment
C'est du code non "prévu" par le moteur et qui est exécuté.
Par exemple un event handler "killed", c'est du code qui se lance suite à la mort d'un object.

Le moment où un object peut mourir n'est pas prévisible par le moteur et quand ça arrive il stoppe le scheduled environment, exécute le code le plus vite possible et retourne au scheduled environment.

De par sa nature instantanée tu ne peux pas utiliser de pause (sleep, uiSleep) et si on utilise une boucle genre while {true} do dans cette espace elle s'arrêtera d'elle même au bout de 10 000 exécutions, pour permettre au moteur de retourner dans le scheduled environment.


scheduled environment
Pour parler de façon moins abstraite c'est un cahier qui contient tout le code qu'on souhaite exécuter.

Les pages de ce cahier sont lues toutes les frames et une fois une page complétement lue, elle est détruite.

Les commandes spawn et execVM ouvrent se qu'on appelle un "scope" soit pour continuer dans la métaphore, une nouvelle page.

Dans cette espace je peux tout à fait faire la chose suivante:

[] execVM "monscript.sqf" (ouvre une nouvelle page)

monscript.sqf
sleep 1;
blabla code
blabla code
[] call mafunction
blabla code
blabla code

et dans un autre fichier avoir mafunction = { sleep 1; blabla; sleep 2}

On n'aura pas d'erreur parce qu'on est dans le scheduled environment, les pauses sont autorisées.

L'intérêt d'utiliser call ici ?
spawn et execVM ouvrent une nouvelle page, call non.
Du coup le code plus haut me permet d'avoir qu'une page ouverte avec execVM et d'importer du contenu avec call.

Moins il y a de pages, mieux c'est évidement ;)

non scheduled environment (pas de pause ici puisqu'on n'ouvre pas de nouvelle page)
player addEventHandler ["Killed",{_this call EHkilled}];

scheduled environment (pause ok)
player addEventHandler ["Killed",{_this spawn EHkilled}];

Izual
10/11/2014, 18h03
Bon, je suis en train de devenir dingue pour essayer de faire fonctionner un mortier IA joué par l'AAF. Pourquoi ça ne fonctionne pas ?

http://tof.canardpc.com/view/58a109fa-4b7a-4068-8ff7-a00ec1c1e1bb.jpg

J'ai évidemment bien nommé mon mortier.

Dunko
10/11/2014, 19h44
@izu : tu veux qu'il soit aléatoire? commandé par Gaia? ou sur une zone (tir de barrage)?

Izual
10/11/2014, 20h30
Non, le tir de barrage j'y arrive. Normalement la ligne de commande que j'y ai mis fait que le mortier vise les joueurs (BLUFOR) à chaque fois qu'ils sont repérés par l'AAF. Hors du contrôle de Gaïa.

ammoniak007
10/11/2014, 21h56
Sinon c'est une fonction que UPSMON gère très bien... (du moins sur Arma II)

ammoniak007
12/11/2014, 14h36
Yep Yep ,

Je viens de retrouver sa dans mes favoris, je sais plus si c'est ici ou autre part que j'ai trouvé sa ...

Je le recolle quand même ici ...

C'est pile poile ce qu'il me fallait pour la mission de samedi.


https://www.youtube.com/watch?v=77Bc1JSI3eA

http://www.armaholic.com/page.php?id=26159

C'est en scripte et configurable a souhait.

Izual
13/11/2014, 09h41
Quelqu'un peut montrer le trigger à utiliser pour faire fonctionner le jammer de comms radios ?

Concernant le mortier, j'ai essayé de suivre ça, sans succès : http://kriegsimulation.blogspot.fr/2014/03/arma-3-easy-way-to-get-enemy-ai-to.html

ammoniak007
13/11/2014, 12h09
Pour activer le brouilleur radio .

v setVariable ["BG3_RadioInterference",true,true];

Izual
13/11/2014, 13h21
Ben oui mais quand je mets ça dans l'init du camion vide + engineOn (avec le reste du script du brouilleur dans les fichiers de la mission), ça ne marche pas. Faut pas utiliser un trigger ?

ammoniak007
13/11/2014, 14h14
Utilise un trigger et colle sa dans activation ....

v étant le nom du véhicule brouilleur.

Izual
13/11/2014, 14h33
Ah merde, d'accord. J'avais rien fait comme il fallait. Merci.

Edit : pour le mortier, toujours personne qui ait réussi à en faire fonctionner un ? :3

Dunko
13/11/2014, 17h56
pas comme tu le souhaites izu...

DHP
29/11/2014, 14h41
Coucou, gros noob de l'éditeur de base arma 3, je cherche des liens utiles pour les commandes dans cet éditeur. Je cherche à avoir un LZ ou un hélico pourrait venir se faire refuel et tous cela avec un délai entre le temps ou il se pose et le temps ou ça se rempli.

Anyone ?

Izual
29/11/2014, 15h02
http://www.biendebuter.net/arma-iii/5/ ?

ammoniak007
29/11/2014, 18h38
Je ne sait pas si c'est ce que tu veux mais voila comment je fait pour refuel un véhicule .

un script lancer par un addaction sur un object (actionsrefuel = _joueur addAction [("<t color=""#FE002A"">" + ("Faire le plein de fuel") +"</t>"),"nomduscript.sqf"];



_nb_secondes = 100;//temps en secondes refuel
_temps_ecoule = 0;
_annuleRearm = 0;


if (count (crew ah64d) > 0) exitWith {hintSilent parseText format["<t size='2.2' color='#FE002A'>Sortez de l'UH-80 pour faire le plein.</t>"];};// si le joueur est a la place de pilote, il n'est pas possible de refuel.

if (ah64d distance ttd > 20) exitWith {hintSilent parseText format["<t size='2.2' color='#FE002A'>Impossible de faire le plein, rapprochez l'UH-80 de la station.</t>"];};// si le vehicule est a plus de 20 m d'un object (H invisible), il n'est pas possible de refuel.

if (lulu ==1) exitWith {hintSilent parseText format["<t size='2.2' color='#FE002A'>Je n'ai que deux mains !!!</t>"];};// si déja en cours de refuel, il n'est pas possible de refuel.

lulu = 1;
publicVariable "lulu";
while {_temps_ecoule <= _nb_secondes } do {
hintSilent parseText format["<t size='2.2' color='#FE002A'>Plein en cour %1/%2</t>",_temps_ecoule,_nb_secondes];// message temps restent avent la fin du refuel
_temps_ecoule = _temps_ecoule + 7;
sleep 7;
};
if (_annuleRearm == 0) then {
[-1, {ah64d setFuel 1},""] call CBA_fnc_globalExecute;//commande de refuel
sleep 1;
hintSilent parseText format["<t size='2.2' color='#00EA08'>UH-80 plein</t>"];// message refuel effectué.
lulu = 0;
publicVariable "lulu";
};


A ajouter dans init.sqf


lulu = 0;

Il faut adapter les hint en fonction du véhicule a refuel.

Et changer ah64d par le nom du véhicule a refuel

DHP
29/11/2014, 19h37
Coucou,

il faut que je mette cela dans la case "condition" après avoir créer un trigger ?

ammoniak007
29/11/2014, 19h59
Non, tu dois mètre sa dans un .sqf que tu mets dans le dossier source de ta mission.

En plus de ce .sqf, crée aussi un init.sqf ( si tu ne l'a pas déjà ) dans le quel tu rajoute la variable lulu = 0;

Pour le addaction tu le colle dans l'initialisation de l’objet que tu veux.

Snakeshit
29/11/2014, 21h35
J'avais écrit un petit message mais je l'ai effacé avec un retour en arrière :emo:. Du coup je recommence, c'est une autre solution, pas forcément aussi robuste et propre, mais possible avec l'éditeur d'Arma 3.

Bon, je suppose que tu sais te servir d'un waypoint et d'un trigger (sinon va falloir que j'explique plus en détail).
Donc tu mets un waypoint d'atterrissage sur l'hélipad de ton choix (l'hélipad peut-être invisible), tu mets un camion de ravitaillement à côté de l'hélipad. Tu poses un trigger qui fait plus ou moins la zone de l'hélipad et qui demande à ce que l'hélicoptère soit présent (par exemple en vérifiant la présence de l'objet synchronisé, qui sera l'hélicoptère dans ce cas) et tu mets un timer (en bas à gauche de la fenêtre du trigger, l'unité est la seconde) qui va durer suffisamment longtemps pour le ravitaillement. Attention, il me semble qu'on ne peut pas limiter les triggers en altitude, tu devras donc prendre en compte le temps d'atterrissage. Tu synchronises ce trigger avec un waypoint de déplacement et ton hélicoptère devrait décoller vers ce waypoint une fois le temps écoulé pour le trigger (quand il sera vérifié donc). Et après il reste plus qu'à tester et râler que ça fonctionne pas :ninja:.

NorX Aengell
30/11/2014, 12h27
Si je puis ajouté mon grain de sel par rapport à ça :

if (isServer) then
{
code côté serveur, par exemple le spawn d'unité.
}
else
{
code côté client, par exemple un hint

};

Dans arma :



if () then {}
is faster than
if () exitWith {}
is faster than
if () then {} else {}
or
if () then [{},{}]


Donc theoriquement un

if (isServer) then { code côté serveur, par exemple le spawn d'unité.};
if (!isServer) then { code côté client, par exemple un hint};

est plus rapide que de passer par du if else standart.

Je recommande d'ailleurs de surveiller relativement souvent la page d'optimisaton du forum de Bohemia.

https://community.bistudio.com/wiki/Code_Optimisation

Voila voila :).

Hardballer
30/11/2014, 17h46
J'ai du mal à voir l'intérêt de gagner un millième de seconde dans un script qui commence par une pause et qui est exécuté qu'une fois ^_^.

Dans ce cas de figure précis c'est plus une question de préférence en matière de syntaxe que d'optimisation.

Il y a de très bon conseils sur ce lien mais la partie sur if then plus rapide que blabla c'est de la branlette, après si ça te fais plaisir pourquoi pas mais c'est pas ça qui va optimiser ou non ton code.

Blind_God_W@D
01/12/2014, 21h18
Coin.

Je suis certain qu'il y a possibilité de d'endommager ou de casser une partie précise d'un véhicule dans Arma 3, j'ai déjà utilisé la fonction mais impossible de remettre la main dessus.

J'aimerai endommager la roue arrière droit d'une voiture avec un déclencheur. Une idée ?

ammoniak007
01/12/2014, 21h24
tu devrais trouver sa par ici (https://community.bistudio.com/wiki/setHit)

Blind_God_W@D
02/12/2014, 06h19
tu devrais trouver sa par ici (https://community.bistudio.com/wiki/setHit)
Et moi qui me prenais la tête avec setdammage, merci Ammo !

(Ah ouais les parties des véhicules sont en Tchèque, je savais que j'aurais dû le prendre en deuxième langue !)

Naad
02/12/2014, 07h18
De mémoire j'utilisais ça :

car1 setHit ["wheel_1_1_steering", 1];

wheel_1_1_steering = Left front tire
wheel_1_2_steering = Left rear tire
wheel_1_3_steering = Left middle tire (trucks)
wheel_2_1_steering = Right front tire
wheel_2_2_steering = Right rear tire
wheel_2_3_steering = Right middle tire (trucks)

Je l'avais utilisé sur une mission qui n'a pas aboutit mais qui a quand même finit sur le serveur pour test, et ça avait fonctionné.

Blind_God_W@D
02/12/2014, 07h51
Et ça marche aussi très bien, merci !

Lesupercopter
11/12/2014, 18h25
Bonjour, voila mon problème.
Je souhaite faire des loadout custom pour des missions MP. Donc pour sa je place dans l'init du player le loadout voulut, mais voila qu'apparait un bug.
Tout les tant de temps, l'init du player se reload.
Je voulais savoir si il est possible de corriger se bug, si ce n'est pas le cas, si il est possible de créer un initPlayerLocal avec plusieurs variable pour les différents loadout (SL, Fusilier, AT, MG, etc...)

ammoniak007
12/12/2014, 13h15
Hardballer a fait du beau travail pour sa ...

rentre ces ligne dans ton init.sqf


///////////////////////////////////////
// JIP Stop
//////////////////////////////////////
if !(isDedicated) then
{
waitUntil {!isNull player};
// Parfois initPlayerLocal merde donc pour éviter les erreurs -->
if (isNil "playerIsJIP") then {playerIsJIP = true};
if (isNil "playerUnit") then {playerUnit = player};
};

call compile preprocessFileLineNumbers "loadout.sqf";
if !(isDedicated) then // Uniquement côté joueur
{
// playerUnit est définie dans initPlayerLocal.sqf
if !(isNil {playerUnit getVariable "loadout"}) then // La variable loadout doit être placer dans l'éditeur [init de l'unité] => this setVariable ["loadout", "aaf_sl"];
{
if !(playerIsJIP) then
{
[playerUnit] call hard_setLoadout;
playerUnit setVariable ["loadout_done", true, true]; // loadout_done permet de vérifier si le loadout a été fait afin d'éviter les doublons en cas de déco / reco.
}
else // Equipement en cas de JIP
{
if (isNil {playerUnit getVariable "loadout_done"}) then
{
[playerUnit] call hard_setLoadout;
playerUnit setVariable ["loadout_done", true, true];
};
};
};
playerUnit setBehaviour "SAFE";
};

crée deux .sqf un loadout.sqf
et un initPlayerLocal.sqf

loadout.sqf:


hard_setLoadout =
{
_unit = _this select 0;
_loadout = _unit getVariable "loadout";
switch _loadout do
{

case "otan_cs": {[_unit] call loadoutOTAN_CS};
case "otan_mc": {[_unit] call loadoutOTAN_MC};

};
};

loadoutOTAN_CS =
{
_unit = _this select 0;

removeAllWeapons _unit;
removeAllItems _unit;
removeAllAssignedItems _unit;
removeUniform _unit;
removeVest _unit;
removeBackpack _unit;
removeHeadgear _unit;
removeGoggles _unit;
_unit forceAddUniform "U_B_CombatUniform_mcam_vest";
for "_i" from 1 to 2 do {_unit addItemToUniform "11Rnd_45ACP_Mag";};
for "_i" from 1 to 2 do {_unit addItemToUniform "SmokeShell";};
_unit addItemToUniform "Chemlight_green";
_unit addVest "V_PlateCarrierGL_rgr";
for "_i" from 1 to 1 do {_unit addItemToVest "SmokeShellRed";};
for "_i" from 1 to 1 do {_unit addItemToVest "SmokeShellGreen";};
for "_i" from 1 to 8 do {_unit addItemToVest "30Rnd_65x39_caseless_mag";};
_unit addBackpack "tf_anarc210";
_unit addHeadgear "H_Beret_Colonel";
_unit addWeapon "arifle_MX_F";
_unit addPrimaryWeaponItem "optic_Nightstalker";
_unit addWeapon "hgun_Pistol_heavy_01_F";
_unit addWeapon "Rangefinder";
_unit linkItem "ItemMap";
_unit linkItem "ItemCompass";
_unit linkItem "ItemWatch";
_unit linkItem "ItemRadio";
_unit linkItem "NVGoggles";
_unit linkItem "ItemGPS";
_unit addItemToUniform "AGM_EarBuds";
};


rajoute les loadout que tu veux

initPlayerLocal.sqf;


/*-----------------------------------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------------------------------------
*** Author: Hardballer

*** Description:
client init

-------------------------------------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------------------------------*/

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// 1) PARAM
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

playerUnit = _this select 0; // unité du joueur (sélectionnée dans l'écran des slots)
playerIsJIP = _this select 1; // boolean (true ou false). True = le joueur se connecte en cours de partie.
enableSaving [false, false]; // supprime la sauvegarde

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// 2) CALL / COMPILE
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
call compile preprocessFileLineNumbers "loadout.sqf";

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// 3) LOADOUT
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if !(isNil {playerUnit getVariable "loadout"}) then // La variable loadout doit être placer dans l'éditeur [init de l'unité] => this setVariable ["loadout", "aaf_sl"];
{
if (isNil {playerUnit getVariable "loadout_done"}) then // loadout_done inexistant, on lance la function loadout
{
[playerUnit] call hard_setLoadout;
playerUnit setVariable ["loadout_done", true, true]; // loadout_done permet de vérifier si le loadout a été fait afin d'éviter les doublons en cas de déco / reco.
};
};

playerUnit action ["WeaponOnBack", playerUnit]; // pour que le joueur est l'arme baissée


Il ne te reste plus que a foutre cette commande dans l'init des tes uniter pour les relier au loadout
this setVariable ["loadout"", ""otan_cmd"];

Sparfell
12/12/2014, 13h53
En fait il a fait une nouvelle version simplifiée (pas besoin de rajouter des lignes dans l'init.sqf) :

initPlayerLocal.sqf :


/*-----------------------------------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------------------------------------
*** Author: Hardballer

*** Description:
client init

-------------------------------------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------------------------------*/

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// 1) PARAM
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

playerUnit = _this select 0; // unité du joueur (sélectionnée dans l'écran des slots)
playerIsJIP = _this select 1; // boolean (true ou false). True = le joueur se connecte en cours de partie.
enableSaving [false, false]; // supprime la sauvegarde

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// 2) CALL / COMPILE
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
call compile preprocessFileLineNumbers "loadout.sqf";

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// 3) LOADOUT
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if !(isNil {playerUnit getVariable "loadout"}) then // La variable loadout doit être placer dans l'éditeur [init de l'unité] => this setVariable ["loadout", "aaf_sl"];
{
if (isNil {playerUnit getVariable "loadout_done"}) then // loadout_done inexistant, on lance la function loadout
{
[playerUnit] call hard_setLoadout;
playerUnit setVariable ["loadout_done", true, true]; // loadout_done permet de vérifier si le loadout a été fait afin d'éviter les doublons en cas de déco / reco.
};
};

playerUnit action ["WeaponOnBack", playerUnit]; // pour que le joueur est l'arme baissée


Loadout.sqf :

hard_setLoadout =
{
_unit = _this select 0;
_loadout = _unit getVariable "loadout";
switch _loadout do
{
case "aaf_officer": {[_unit] call loadoutAAF_OFFICER};
case "csat_champion": {[_unit] call loadoutCSAT_CHAMPION};
};
};

loadoutAAF_OFFICER = // Officier AAF
{
_unit = _this select 0;

removeAllWeapons _unit;
removeAllItems _unit;
removeAllAssignedItems _unit;
removeUniform _unit;
removeVest _unit;
removeBackpack _unit;
removeHeadgear _unit;
removeGoggles _unit;
_unit forceAddUniform "U_I_OfficerUniform";
for "_i" from 1 to 3 do {_unit addItemToUniform "30Rnd_9x21_Mag";};
_unit addVest "V_BandollierB_oli";
for "_i" from 1 to 3 do {_unit addItemToVest "9Rnd_45ACP_Mag";};
for "_i" from 1 to 2 do {_unit addItemToVest "30Rnd_9x21_Mag";};
_unit addItemToVest "SmokeShell";
_unit addItemToVest "Chemlight_green";
_unit addHeadgear "H_Beret_blk";
_unit addGoggles "G_Tactical_Clear";
_unit addWeapon "SMG_02_F";
_unit addPrimaryWeaponItem "optic_Holosight";
_unit addWeapon "hgun_ACPC2_F";
_unit addWeapon "Binocular";
_unit linkItem "ItemMap";
_unit linkItem "ItemCompass";
_unit linkItem "ItemWatch";
_unit linkItem "ItemRadio";
};

loadoutCSAT_CHAMPION = // Big boss du csat
{
_unit = _this select 0;

removeAllWeapons _unit;
removeAllItems _unit;
removeAllAssignedItems _unit;
removeUniform _unit;
removeVest _unit;
removeBackpack _unit;
removeHeadgear _unit;
removeGoggles _unit;
_unit forceAddUniform "U_O_CombatUniform_oucamo";
for "_i" from 1 to 3 do {_unit addItemToUniform "30Rnd_65x39_caseless_green";};
_unit addVest "V_TacVest_camo";
for "_i" from 1 to 5 do {_unit addItemToVest "HandGrenade";};
for "_i" from 1 to 2 do {_unit addItemToVest "30Rnd_65x39_caseless_green_mag_Tracer";};
for "_i" from 1 to 2 do {_unit addItemToVest "30Rnd_65x39_caseless_green";};
_unit addItemToVest "SmokeShell";
_unit addBackpack "B_AssaultPack_dgtl";
_unit addItemToBackpack "RPG32_F";
_unit addItemToBackpack "RPG32_HE_F";
_unit addHeadgear "H_Hat_blue";
_unit addGoggles "G_Bandanna_aviator";
_unit addWeapon "arifle_Katiba_F";
_unit addPrimaryWeaponItem "muzzle_snds_H";
_unit addPrimaryWeaponItem "acc_pointer_IR";
_unit addPrimaryWeaponItem "optic_LRPS";
_unit addWeapon "launch_RPG32_F";
_unit addWeapon "Binocular";
_unit linkItem "ItemMap";
_unit linkItem "ItemCompass";
_unit linkItem "ItemWatch";
_unit linkItem "ItemRadio";
_unit linkItem "ItemGPS";
_unit linkItem "NVGoggles_OPFOR";
};


Dans l'init de ton unité :

this setVariable ["loadout", "aaf_officer"];

Ainsi tu peux faire tes loadout sur le virtual arsenal (faut juste remplacer this par _unit) et aucun soucis de JIP.
Ne fonctionne pas sur une unité non joueur.

Izual
12/12/2014, 14h05
D'ailleurs faut juste que je finisse les plongeurs (grosse galère) et je publie 1200+ loadouts faits avec ce script.

ammoniak007
12/12/2014, 14h33
Et puis il y a les RHS Izu HHHHHHHHHHHHH :haha:

Naad
13/12/2014, 15h20
Salut la compagnie.

Il me semble qu'il existe un moyen de "figer" les marqueurs sur une map, pour qu'ils ne soient pas affecté par le zoom/dezoom (en gros leurs dimensions ne s'adapte pas). Quelqu'un aurait ça sous la main? Je suis pas foutu de le trouver sur le neternet.

Merki !

Izual
14/12/2014, 16h54
LOADOUTS STANDARDISÉS

L'apparition de bugs dans les inventaires en multijoueurs nous a forcé à utiliser une méthode alternative pour fournir de l'équipement aux soldats au début d'une mission. Le script de Hardballer remplit parfaitement cette fonction et permet une édition à la fois simple et profonde des loadouts. Comme depuis que je joue à A3 les loadouts vanilla me frappent par leur manque de cohérence (guérilla surarmée, soldats sous-équipés, présence de NVG et de chemlight partout, etc.) et qu'ils ne sont pas parfaits lorsqu'on les utilise avec les mods AGM et TFR, j'ai décidé de créer une série de loadouts standardisés. Si je pensais au départ réserver ce travail à mon usage personnel, il serait dommage que les mission makers qui le souhaitent ne puissent pas s'en servir et le modifier à leur convenance, donc je le mets à disposition.

Ces loadouts sont pensés pour être utilisés en vanilla mais pour rester très cohérents lorsqu'on les mélange avec AGM et TFR. Les armées régulières y sont bien équipées, la guérilla plus hétéroclite, et chaque objet ajouté à l'inventaire l'est à dessein et remplit une fonction. C'était également l'occasion de donner une réelle importance à des postes parfois jugés ingrats - surtout parce que leur inventaire de base ne leur permet pas de prendre une assez grande ampleur -, par exemple les assistants mitrailleurs/AC et le porteur de munitions.

Quelques indications plus précises sur la manière dont les loadouts ont été réalisés :


Headgear varié pour spécialistes et soldats.
Fumigènes nombreuses par soldat (au moins 3-4 de base), aux couleurs de la faction. Les médecins en ont un stock plus élevé que les autres rôles, les chefs en ont des colorées.
Des assistants bien équipés et porteurs de nombreuses munitions, dont l'absence se fait sentir en mission.
Porteur de munitions lourd mais très utile, qui porte beaucoup de muns pour tout le monde sauf l'AT. Un véritable atout.
Pas de sac à dos pour commandants et chefs d'escouades (laisse la place pour les radios longue portée de TFR).
Des jumelles pour tous les soldats (pourquoi pas ?), télémètres pour assistants de tir et chefs.
FIA moins bien armés que les autres factions, armement plus hétéroclites.
GPS pour les membres-clés et mobiles seulement : pilotes, chefs, tireurs d'élite et snipers.
Remplacement de l'AT OTAN & AAF (PCML) par l'AT CSAT (RPG-42 Alamut), non-lockable et réutilisable (contrairement au PCML combiné au mod AGM), et donc beaucoup plus intéressant (on peut lui donner plus de munitions, il peut donc être utilisé pour autre chose que du tir sur véhicules, et il demande de l'entrainement pour être correctement utilisé).
Ajout du rôle d'infirmier, médecin avec moins de matériel et plus de capacité offensive qu'un médecin de combat.



Il y a pour l'instant plus de 1500 loadouts. Oui, c'est beaucoup, mais pour se convaincre que ce n'est pas inutile il suffit de regarder la liste à la fin de ce post : on y trouve d'abord une liste des rôles pour lesquels un équipement a été défini, et une liste des armées auxquelles il a fallu adapter ce rôle à chaque fois. A quelques exceptions près qui relèvent du domaine de la logique, chaque classe a donc été déclinée, eh bien... 108 fois. J'ai aussi inclus une faction expérimentale "Mercenaires" d'anciens militaires US, au cas où ça serait utile à certains.
Il est possible que des erreurs se soient glissées dans les loadouts, merci de me prévenir si vous trouvez quelque chose qui ne va pas.


Téléchargement : fichiers et instructions pour faire fonctionner le script, + mission dédiée au test des loadouts sur le Virtual Arsenal.
Miroir 1 (http://www.mediafire.com/download/p1xo44moi6ww1bj/Loadouts.VR.zip), miroir 2 (https://www.sendspace.com/file/tufs5m).


Commandant
FTL/TL
Fusilier
Fusilier réparateur
Medic
Infirmier
Grenadier
Tireur de précision
Mitrailleur
Assistant Mitrailleur
Fantassin AC
Assistant AC
Porteur de munitions
Fusilier Ingénieur / Réparateur
Artificier
Sniper
Observateur
Pilote / équipage héli
Pilote avion
Conducteur / Tireur / Equipage MRAP
Réparateur MRAP
Equipage char

--

OTAN Infanterie Woodland Jour
OTAN Infanterie Woodland Jour Silencieux
OTAN Infanterie Woodland Nuit NVG
OTAN Infanterie Woodland Nuit NVG Silencieux
OTAN Infanterie Woodland Nuit Lampes
OTAN Infanterie Woodland Nuit Lampes Silencieux
OTAN Infanterie Desert Jour
OTAN Infanterie Desert Jour Silencieux
OTAN Infanterie Desert Nuit NVG
OTAN Infanterie Desert Nuit NVG Silencieux
OTAN Infanterie Desert Nuit Lampes
OTAN Infanterie Desert Nuit Lampes Silencieux
OTAN Infanterie Brit Jour
OTAN Infanterie Brit Jour Silencieux
OTAN Infanterie Brit Nuit NVG
OTAN Infanterie Brit Nuit NVG Silencieux
OTAN Infanterie Brit Nuit Lampes
OTAN Infanterie Brit Nuit Lampes Silencieux
OTAN Plongeurs armes normales Jour
OTAN Plongeurs armes normales Jour Silencieux
OTAN Plongeurs armes normales Nuit NVG
OTAN Plongeurs armes normales Nuit NVG Silencieux
OTAN Plongeurs armes normales Nuit Lampes
OTAN Plongeurs armes normales Nuit Lampes Silencieux
OTAN Plongeurs SDAR Jour
OTAN Plongeurs SDAR Jour Silencieux
OTAN Plongeurs SDAR Nuit NVG
OTAN Plongeurs SDAR Nuit NVG Silencieux
OTAN Plongeurs SDAR Nuit Lampes
OTAN Plongeurs SDAR Nuit Lampes Silencieux
OTAN Spec Ops Brits Jour
OTAN Spec Ops Brits Jour Silencieux
OTAN Spec Ops Brits Nuit NVG
OTAN Spec Ops Brits Nuit NVG Silencieux
OTAN Spec Ops Brits Nuit Lampes
OTAN Spec Ops Brits Nuit Lampes Silencieux

FIA Infanterie Woodland Jour
FIA Infanterie Woodland Jour Silencieux
FIA Infanterie Woodland Nuit NVG
FIA Infanterie Woodland Nuit NVG Silencieux
FIA Infanterie Woodland Nuit Lampes
FIA Infanterie Woodland Nuit Lampes Silencieux
FIA Infanterie Desert Jour
FIA Infanterie Desert Jour Silencieux
FIA Infanterie Desert Nuit NVG
FIA Infanterie Desert Nuit NVG Silencieux
FIA Infanterie Desert Nuit Lampes
FIA Infanterie Desert Nuit Lampes Silencieux
FIA Spec Ops Jour
FIA Spec Ops Jour Silencieux
FIA Spec Ops Nuit NVG
FIA Spec Ops Nuit NVG Silencieux
FIA Spec Ops Nuit Lampes
FIA Spec Ops Nuit Lampes Silencieux

AAF Infanterie Woodland Jour
AAF Infanterie Woodland Jour Silencieux
AAF Infanterie Woodland Nuit NVG
AAF Infanterie Woodland Nuit NVG Silencieux
AAF Infanterie Woodland Nuit Lampes
AAF Infanterie Woodland Nuit Lampes Silencieux
AAF Plongeurs armes normales Jour
AAF Plongeurs armes normales Jour Silencieux
AAF Plongeurs armes normales Nuit NVG
AAF Plongeurs armes normales Nuit NVG Silencieux
AAF Plongeurs armes normales Nuit Lampes
AAF Plongeurs armes normales Nuit Lampes Silencieux
AAF Plongeurs SDAR Jour
AAF Plongeurs SDAR Jour Silencieux
AAF Plongeurs SDAR Nuit NVG
AAF Plongeurs SDAR Nuit NVG Silencieux
AAF Plongeurs SDAR Nuit Lampes
AAF Plongeurs SDAR Nuit Lampes Silencieux
AAF Spec Ops Jour
AAF Spec Ops Jour Silencieux
AAF Spec Ops Nuit NVG
AAF Spec Ops Nuit NVG Silencieux
AAF Spec Ops Nuit Lampes
AAF Spec Ops Nuit Lampes Silencieux

CSAT Infanterie Woodland Jour
CSAT Infanterie Woodland Jour Silencieux
CSAT Infanterie Woodland Nuit NVG
CSAT Infanterie Woodland Nuit NVG Silencieux
CSAT Infanterie Woodland Nuit Lampes
CSAT Infanterie Woodland Nuit Lampes Silencieux
CSAT Infanterie Urban Jour
CSAT Infanterie Urban Jour Silencieux
CSAT Infanterie Urban Nuit NVG
CSAT Infanterie Urban Nuit NVG Silencieux
CSAT Infanterie Urban Nuit Lampes
CSAT Infanterie Urban Nuit Lampes Silencieux
CSAT Plongeurs armes normales Jour
CSAT Plongeurs armes normales Jour Silencieux
CSAT Plongeurs armes normales Nuit NVG
CSAT Plongeurs armes normales Nuit NVG Silencieux
CSAT Plongeurs armes normales Nuit Lampes
CSAT Plongeurs armes normales Nuit Lampes Silencieux
CSAT Plongeurs armes normales Jour
CSAT Plongeurs SDAR Jour Silencieux
CSAT Plongeurs SDAR Nuit NVG
CSAT Plongeurs SDAR Nuit NVG Silencieux
CSAT Plongeurs SDAR Nuit Lampes
CSAT Plongeurs SDAR Nuit Lampes Silencieux
CSAT Spec Ops Jour
CSAT Spec Ops Jour Silencieux
CSAT Spec Ops Nuit NVG
CSAT Spec Ops Nuit NVG Silencieux
CSAT Spec Ops Nuit Lampes
CSAT Spec Ops Nuit Lampes Silencieux

ammoniak007
14/12/2014, 20h14
cool merci

Beau travaille ;)

Blind_God_W@D
14/12/2014, 20h47
Vu la quantité de travail fourni, je te remercie d’avoir mis le résultat à disposition.

Lesupercopter
15/12/2014, 09h45
Merci pour le script de Hardballer, je testerai sa en mission prochainement.

Sinon j'ai cherché sans grand succés, des scripts pour régler ces AIskill. J'ai trouvé 2-3 mods qui le font mais j'aimerais avoir ces réglages dans la mission et non en addon serveur.
Le but étant d'avoir des sets de AIskill que l'ont choisit dans un paramètre mission.

josirius
15/12/2014, 15h12
Vu la quantité de travail fourni, je te remercie d’avoir mis le résultat à disposition.

Idem pour le travail de ouff !!! Bravo

ammoniak007
15/12/2014, 17h21
unitname enableFatigue false;
unitname setskill ["aimingAccuracy",(random(0.07) + 0.15)]
unitname setSkill ["aimingspeed",(random(0.06) + 0.08)]
unitname setSkill ["aimingshake",(random(0.03) + 0.05)]
unitname setskill ["spotDistance",(random(0.2) + 0.8)]
unitname setskill ["spotTime",(random(0.4) + 0.2)]

Lesupercopter
20/12/2014, 18h25
Merci pour le script de "Hardballer" sa marche nickel, par contre j'aimerais savoir si il ne serais pas possible de remplacer le "_unit" par "this" sa éviterait de modifier les loadout Arsenal.

J'ai trouvé ma réponse, suffit de remplacer:
_unit = _this select 0;
par
this = _this select 0;

Et du coup on copie/colle tout bêtement le "Export Arsenal"

Izual
22/12/2014, 18h32
Au niveau civils, qu'est-ce que vous utilisez comme scripts qui vont bien ? Pour faire spawn des civils pas trop débiles, mais sans trop surcharger le serveur par exemple.

J'ai vu que le COS (http://forums.bistudio.com/showthread.php?175598-Civilian-Occupation-System-%28COS%29) est pas mal recommandé mais je suis inquiet par rapport à son impact sur les performances du serveur.

ammoniak007
22/12/2014, 18h53
Si je me souviens bien, il y avait un module sur A2 qui allait plus ou moins :D

Je viens de le DLL , je vais faire une mission test pour voir ce que sa vaut.

Sparfell
23/12/2014, 17h40
J'ai bricolé mon propre addon qui rend la quasi totalité des objets de Arma accessibles dans l'éditeur.
Il manque quand même quelques trucs comme par exemple les objets "nature" (rochers, arbres, buissons, etc), je verrais si c’est possible de les rajouter plus tard.

Donc :

Un peu plus de 413 nouveaux objets accessibles dans l'éditeur
Un peu plus de 164 nouveaux objets accessibles dans le Zeus (principalement des ruines)


L'addon est fait pour être utilisé avec la version anglaise du jeu car j'ai du nommer certains objets et j'ai utilisé les termes anglais. Donc avec la version française le classement risque d'être parfois un peu farfelu.
Bien entendu c'est client side donc les autres joueurs n'ont pas besoin d'avoir l'addon.
Lorsque l'addon est lancé il est possible que vous ayez des bugs d'affichage minimes (bug non confirmé).

Si vous remarquez des erreurs, bugs ou objets manquants dites le moi.

Télécharger sur Dropbox (https://www.dropbox.com/s/dijpyyeq5yw7ep8/missing_objects_stdr_%5Bv1.0%5D.7z?dl=0)

PS : pour les MM de "Grèce" je vais également le mettre a disposition sur le FTP missions.

PS2 : Joyeux Noël Izual ^_^

ammoniak007
23/12/2014, 18h10
Bon ben si c'est l'heure des cadeaux , moi je voudrais bien Missing_units avec les AKs de RHS :D

Izual
23/12/2014, 18h22
Le mec qui sort son mod la veille de Noël, tranquille.

Merci, ça va être très utile. Bravo pour le travail abattu.

C'est quand même étrange qu'une mission l'utilisant ne rende pas le mod obligatoire pour ses joueurs, non ?

Sparfell
23/12/2014, 18h27
C'est quand même étrange qu'une mission l'utilisant ne rende pas le mod obligatoire pour ses joueurs, non ?

Non, le mod se contente principalement de rendre visible les objets. Si tu les places dans ta mission, le mission.sqm se contentera d'appeler le classname de l'objet, classname qui existe déjà dans le jeu vanilla. Donc pas de soucis. De toute manière si tu veux être sûr, tu relances le jeu sans l'addon et tu ouvres ta mission, normalement les objets seront toujours là (les noms de certains objets pourront avoir changé mais ça n'a pas d'importance).

Dunko
23/12/2014, 18h32
Même pour les objets que tu as renommé sparfell?
Jsuis sceptique parce que le dernier mode du genre faisait clairement planter mes missions une fois sur le serveur. On me l'avait vendu pareil.

Sparfell
23/12/2014, 18h36
Même pour les objets que tu as renommé sparfell?
Jsuis sceptique parce que le dernier mode du genre faisait clairement planter mes missions une fois sur le serveur. On me l'avait vendu pareil.

Cf mon post que j'ai édité en fourbe juste après l'avoir posté :

(les noms de certains objets pourront avoir changé mais ça n'a pas d'importance)
J'ai changé le nom qui s'affiche, pas le classname.

Et comme je l'ai dit, si tu veux être sûr à 100%, une fois que tu a placé les objets que tu voulais tu relance ton jeu sans l'addon et tu regarde si tu as un message d'erreur.

ammoniak007
28/12/2014, 12h58
yop yop


Je voudrais "empêcher" la lecture de certains symboles dans un script ...

Je suis parti sur cette base mais sa n'a pas l'aire de fonctionner.


{
if (isPlayer _x) then
{
_prefix = toUpper (name _x);
_prefix = [_prefix, " "] call bis_fnc_filterstring;
_prefix = [_prefix, "@"] call bis_fnc_filterstring;
_prefix = [_prefix, "-"] call bis_fnc_filterstring;
_prefix = [_prefix, "="] call bis_fnc_filterstring;
_prefix = [_prefix, ":"] call bis_fnc_filterstring;
_badge = format["%1_Badge", _prefix];
[_x, _badge] call bis_fnc_setUnitInsignia;
};

} forEach playableUnits;

En gros ce script reconnait le nom de profil du joueurs et luis attribue un badge nominatif.

Le problème est que les joueurs qui ont des symboles ou des espaces dans leurs nom fait foirer la lecture du description.ext

Donc je voudrais que tous ces espaces et symboles soie "supprimer" a la lecture du name pour pouvoir les supprimer du description.ext et ne plus avoir de problème de lecture.


Si qqun a une idée ...


Merci

Spatzki
29/12/2014, 09h23
Bonjour,

J’ai pas mal de questions liées à la création de missions. Si une ou plusieurs bonnes âmes pouvaient m’aider. Merci par avance.

Avant de commencer, je vais expliquer le contexte et les choix que j’ai fait pour appréhender la création de missions et mon auto-formation dans ce domaine. J’ai peut-être fait de mauvais choix. N’hésitez pas à corriger ma copie^^

Contexte : Mission Solo et Multi
A la base, je souhaite publier une mission solo autonome. Comme je veux la faire bêta-tester et voir en live comment elle se déroule, j’ai prévu aussi de la faire jouer avec le couple GM + JOUEUR. J’ai donc deux versions de la même mission : solo et multi.
Comme l’objectif consiste à avoir une mission autonome, tout est fait avec l’éditeur du jeu. Je teste certes des choses avec MCC/Zeus mais au final, tout est construit via l’éditeur : décors, tâches, triggers, ennemis. Tout doit être et est dans le fichier « Mission.sqm » en dehors de quelques scripts utilisés.

Etant donné les deux modes de jeu prévu, cela signifie peut-être qu’il y aura plusieurs réponses à mes questions soit en solo soit en mp.

1) Dans le cadre de la mission solo, pourquoi le joueur dispose t’il du MCC alors que le Module MCC n’est pas placé sur le carte ?

2) Dans le cadre de la mission multi, pourquoi le joueur dispose t’il du MCC alors que le Module MCC ne lui ait pas attaché ? Il n’est attaché qu’au GM.

3) Ma partie utilise le module TFAR mais il me semble que je n’ai pas le son caractéristique quand on entame une conversation radio. Une idée ?

4) Dans la mission solo, le joueur est visible sur la carte, peut-on faire qu’il ne le soit pas/plus ?

5) J’aimerai que seule le mode à la première personne soit disponible. Comment procéder en solo/mutli ?

6) A la base, je place le module XMED dans mes deux parties solo et mp… comment cela se passera t’il si je publie ma mission solo ? Mission peut être lancée même si le client n’a pas l’addon xmed ? etc.

7) Quand sur la map, dans le menu, j’ai redéfini briefing et tâches mais j’ai aussi plusieurs options que je n’ai pas définies (mcc, équipement, etc.) Peut-on se débarrasser de ces options indésirables ?

8) J’ai un trigger basé sur un compte-à-rebours qui fonctionne très bien mais j’aimerai afficher en même temps ce compte-à-rebours à l’écran en permanence. Je ne trouve pas ce composant dans l’éditeur alors qu’on le trouve dans quasiment chacune de nos parties CPC. Dispo unqiment dans MCC/Zeus ? Puis-je faire la même chose avec un script dans l’éditeur ? Quelqu’un a-t-il un script du genre svp ?

9) Ma mission devrait être terminée ce soir ou demain. Je souhaite donc la faire tester à des bêta-testeurs, comme dois-je procéder ? Je la publie en multi et je l’héberge ? Ma machine peut-elle suffire à héberger une mission de ce type ?

10) j'ai vu dans ce fil de discussion, qu'il y avait des bugs sur les loadouts prédéfinis dans les missions multi. Pensez-vous que ma phase de test en mutli (gm+joueur) nécessite un tel script ? Ou étant donné qu'il n'y a qu'un seul joueur, cela ne posera pas de souci pour cette phase de test sachant qu'ensuite la mission sera solo uniquement ?

11) j'amerai ajouter des lampes sur les armes de mes gardes. Ca je devrai trouver la classname et l'ajouter dans l'init des gardes. Par contre comment faire allumer ces lampes svp ? ?


Merci par avance pour vos réponses.

Sparfell
29/12/2014, 10h30
1&2) Je ne sais pas exactement ce que tu veux faire mais dans le cadre d'une mission solo avec un joueur qui ne fait que regarder, un Zeus pourrait suffire (donc pas vraiment besoin du MCC).

3) Les sons de TAFR sont logés dans le répertoire d'installation de Teamspeak donc pas de sons si tu n'es pas connecté sur un TS. (Par contre je vois pas trop l'intérêt de TAFR pour une missions solo !?).

4) Ça doit dépendre du niveau de difficulté (je crois). Mais il doit y avoir moyen de forcer le fait qu'il soit invisible.

5) Pareil que précédent : de base c'est le niveau de difficulté au lancement de la mission qui définit ça. Mais tu dois pouvoir le forcer dans la mission : LIEN (http://forums.bistudio.com/showthread.php?115454-force-1st-person&p=1865260&viewfull=1#post1865260)

6) Oui le joueur aura besoin de l'addon. C'est un point très important, les joueurs qui jouent tes missions auront besoin de tout les addons utilisés dans le processus de création de ta missions. Il faut faire particulièrement gaffe à ça et quand tu édites je te conseille vivement de ne lancer le jeu qu'avec les addons que tu voudras utiliser sans quoi ta mission risque de se retrouver avec une dépendance d'une tonne d'addons. Certains addons lancés en édition de mission peuvent même "corrompre" ta mission alors qu'ils sont client side (JSRS par exemple).

7) Aucune idée. Je dirais que oui, probablement, mais est-ce vraiment nécessaire ?

9) Pour une mission solo tu devrais pouvoir l'héberger sur ta machine sans trop de soucis (questions de performances). par contre pas besoin de la publier (dans mes souvenirs) l'autre joueur la téléchargera automatiquement au lancement.
Par contre il y une histoire de ports qui doivent être ouvert pour que les autres joueurs voient ton serveur (c'est affiché lors de la création de la partie).

10) Pour une mission solo pas forcément (mais là c'est du multi vu que vous êtes deux). Le plus gros problème c'est le JIP (Join In Progress), en gros si un joueur se déco-reco ça peut faire des merdes. (Ne concerne que le cas de loadouts personnalisés).

11) Dans le fichier init.sqf de ta mission : (modifier le texte en rouge en fonction du side : Opfor Blufor Resistance)

{
if ((side _x) == Resistance) then
{ _x addPrimaryWeaponItem "acc_flashlight"; _x enableGunLights "forceOn";
};
} forEach allUnits;

Spatzki
29/12/2014, 11h07
Merci beaucoup pour ces réponses Sparfell.


1&2) Je ne sais pas exactement ce que tu veux faire mais dans le cadre d'une mission solo avec un joueur qui ne fait que regarder, un Zeus pourrait suffire (donc pas vraiment besoin du MCC).


Que ce soit en solo ou en multi, je ne souhaites pas que le joueur ait accès au MCC. Hors dans les 2 cas, il y a accès... mais je viens de penser à un truc. Pour concevoir et jouer ces missions, je le fais en lançant le jeu avec le launcher CPC et donc tous ses addons et c'est sûrement lié à ça... je vais donc corriger ce problème en lançant à partir de Steam.



3) Les sons de TAFR sont logés dans le répertoire d'installation de Teamspeak donc pas de sons si tu n'es pas connecté sur un TS. (Par contre je vois pas trop l'intérêt de TAFR pour une missions solo !?).


Merci pour cette précision.
Sur le pourquoi lancer TFAR c'est lié à la période de béta-test où j'aimerai suivre et discuter avec le joueur pendant qu'il joue la mission... mais bon à vrai dire, je peux le faire sans, juste en le suivant en jeu via MCC par exemple. Donc je vais supprimer les addons intutiles comme tu le suggères. Au pire... je n'ai pas l'image mais je suis avec lui sous TS et c'est même encore plus simple.

Pour la 7, et bien c'est juste que ce menu est très moche mais peut-être que c'est aussi le fait que je lance le jeu via le launcher CPC qui provoque ces ajouts.

Pour la 8 et le compte-rebourd qui s'affiche, une petite idée ?

En tout cas, grand merci pour les réponses qui vont bien m'aider.


PS : et dire que j'ai écrit un bouquin sur le C++ autrefois... cette syntaxe me rappelle des choses^^

Izual
29/12/2014, 11h26
T'es sûr pour Resistance ? J'utilise INDEPENDENT et ça passe. C'est étrange que les deux soient possibles.

Naad
29/12/2014, 11h31
Me semble que résistance c'est un reste d'Arma II. Du coup, les deux doivent passer.

Sparfell
29/12/2014, 15h20
Me semble que résistance c'est un reste d'Arma II. Du coup, les deux doivent passer.

Oui on doit pouvoir mettre les deux, d'ailleurs j'ai mis Opfor et Blufor mais je crois que c'est plutôt East et West. Si ça se trouve les deux passent aussi.

@Spatzki
Pour la 8) Ça se fait par script, tu doit trouver facilement ça sur le net.
Sinon oui je te conseille vraiment de lancer les addons à la main pour l’édition de mission, tu peux utiliser le launcher intégré au jeu ou Arma3Sync.
Pour TAFR : il suffit que vous soyez sur le même TS et vous pourrez vous parler directement peut importe si vous êtes à côté l'un de l'autre ou à un kilomètre de distance !? (je veux dire que la localisation de la voix c'est TAFR qui le fait, pas Arma, donc pas de TAFR = pas de localisation)

Spatzki
30/12/2014, 10h36
Merci bien Sparfell. Tes conseils m'ont été précieux.

Je chercherai çà pour le chrono.

Sinon tu as 1000 fois raison, mon plus gros problème est qu'actuellement ma mission ne se lance qu'à partir du launcher CPC à cause de tous ces addons qui sont spécifiés dans mon fichier de mission... je vais devoir faire le ménage si je veux pouvoir publier ma mission de façon plus générale. Pas simple de s'y retrouver... et sans doute que certains addons seront dans tous les cas obligatoires.

Mon 2ème problème est qu'une fois ma mission "publiée" sur le net en spécifiant le port, quand je la lance en tant que joueur, j'ai accès au MCC et que je vois toutes les unités placées... je ne sais pas si c'est aussi lié au fait que j'utilise le launcher CPC... j'imagine que oui.

A titre d'information, j'ai présenté l'ensemble de mon projet sur le fil de discussion des CPCs.
http://forum.canardpc.com/threads/77056-Serveur-ARMA-3-Conflit-de-canard-coop-tous-les-soirs-lisez-la-première-page-!?p=8484561#post8484561

Snakeshit
30/12/2014, 10h56
Attention, utilise seulement les addons les plus nécessaires et si possible seulement des addons populaires si possibles.

Spatzki
30/12/2014, 11h00
Yep j'en ai bien conscience, si je veux publier cette mission, il va falloir faire le ménage.

Mais pas simple de reprendre tout car j'ai déjà du mal à identifier quels composants sont associés à tels addons.
Et puis il y a des addons qui seront de toute façon incontournables.

En attendant la béta se fera avec des CPCs qui disposent des mêmes addons que moi.

Lesupercopter
30/12/2014, 19h43
L'accès MCC est automatiquement donné à l'admin du serveur. Lance tout simplement ton jeu sans le MCC.

Sweeden
30/12/2014, 23h29
Bonjour, je suis assez embêté par un bug récurrent, à savoir l'explosion automatique du véhicule (aéronef) dès qu'un joueur non admin rentre dans le dit véhicule.
Le type d'avion est un A-10A du pack RHS, placé via l'éditeur. Même bug quelques temps auparavant avec un A-10 d'un simple portage A2. Pas de soucis avec des voitures, blindés, etc...
La carte testée est F.S.F. Dariyah, même problème sur Esbekistan.
Merci d'avance.

EDIT: Spawn avec zeus: kaboom; spawn avec éditeur: kaboom; spawn avec MCC: aucun problème. What. The. Fuck. Bug unique aux A-10, quel que soit leur pack

Spatzki
31/12/2014, 07h45
L'accès MCC est automatiquement donné à l'admin du serveur. Lance tout simplement ton jeu sans le MCC.

Ok merci Copter.

Spatzki
05/01/2015, 08h08
Ma mission est en test chez les Conflist de canards depuis hier soir. Plusieurs soucis ont été identifiés et corrigés mais il y a par contre un problème récurrent que j'avais également repéré sans arriver à le corriger pour le moment.

Ma mission utilise une cinématique dont la particularité est qu’elle se passe sous l’eau avec vision nocturne.

Après avoir terminé cette cinématique, à l’affichage on voyait le contour du masque de plongée ce qui est très moche quand on regarde un film… Après pas mal d’essais, et en utilisant la commande switchCamera, j’ai réussi à me débarrasser de ce contour et obtenir le résultat espéré… seulement voilà, sans que je comprenne pourquoi, parfois ce contour de masque revient... j’ai d’ailleurs le même souci avec les bandes cinémascopes qui normalement sont supprimées mais qui sont parfois visibles...

En clair entre plusieurs visionnages de la cinématique, le résultat n’est pas homogène. Est-ce un souci connu ? Auriez-vous des pistes ? Merci par avance.


PS : Le nettoyage des addons est en cours mais non terminé pour le moment.

ammoniak007
05/01/2015, 13h27
Bonjour, je suis assez embêté par un bug récurrent, à savoir l'explosion ... spawn avec MCC: aucun problème. What. The. Fuck. Bug unique aux A-10, quel que soit leur pack[/I][/B]

C'est un bug qui nous arrive 1 foi sur 10, pour palier a cela, je rend le véhicule invincible jusqu’à ce qu'il aie quitté sont spawn .

Ps, ont a déjà ue sa avec les drones (juste âpres la connexion au terminal) et aussi bien sur VTS que sur des mission éditée.


Ma mission est en test chez les Conflist de canards depuis hier soir. Plusieurs soucis ont été identifiés et corrigés mais il y a par contre un problème récurrent que j'avais également ... mais non terminé pour le moment.

Tu édite avec AGM ?

Si je me souviens bien le contour noir apparait automatiquement quand tu t’approche de l'eau ...

Je sait plus si c'est AGM qui fait sa ou si c'est du vanilla ...

Si c'est AGM, il suffit de faire ta cinématique sens .

Izual
05/01/2015, 13h56
Avis aux amateurs : je suis en train de faire une nouvelle version des loadouts standardisés. C'est le moment de faire remonter des bug reports ou autres si vous les avez essayé.

Spatzki
05/01/2015, 14h02
@Ammoniak007

Hello,

A vrai dire je suis embêté pour répondre à ta question.
Ma cinématique est faite avec la caméra et enregistrement d'un script qui est lancé à partir de l'init.

AGM est certes un des seuls modules qui est utilisé dans la mission. Tu veux dire qu'à partir du moment où le module AGM est lancé, il y aura une répercussion sur l’affichage du "masque de plongeur de la caméra" ? J'essaierai sans AGM ce soir pour voir.

Dans tous les cas, cela n’expliquerait pas que ce masque soit affiché ou pas en fonction des lancements…

Sparfell
05/01/2015, 16h07
@Ammoniak007

Hello,

A vrai dire je suis embêté pour répondre à ta question.
Ma cinématique est faite avec la caméra et enregistrement d'un script qui est lancé à partir de l'init.

AGM est certes un des seuls modules qui est utilisé dans la mission. Tu veux dire qu'à partir du moment où le module AGM est lancé, il y aura une répercussion sur l’affichage du "masque de plongeur de la caméra" ? J'essaierai sans AGM ce soir pour voir.

Dans tous les cas, cela n’expliquerait pas que ce masque soit affiché ou pas en fonction des lancements…

Ça dépend peut être de la vitesse de chargement de la mission (loadout pas encore chargé au moment du lancement de la cinématique) Sinon tu peux n'ajouter le masque qu'après la cinématique (ou ne pas faire de cinématique :ninja:).

Spatzki
05/01/2015, 16h20
Le souci est que là je parle de la caméra qui a « parfois » ce visuel de masque… et pas du loadout intégré au héros de cette mission.

C’est bien le fait que la caméra dispose de ce contour lié au masque qui est gênant… pas que le visuel du perso soit restreint par un masque ensuite.

Ne pas faire de cinématique pour cette mission solo, je trouverai ça dommage, surtout eu égard au temps que j’ai passé à la faire et à comprendre comment marchait les cinématiques. ^^

Dunko
05/01/2015, 17h50
Petite question pour les amateurs de Gayia :
Y a t'il une commande pour augmenter ou baisser leur coms radio dynamiquement en cours de partie?

ammoniak007
05/01/2015, 17h56
Normalement , il te fuffit de changer ces variable "MCC_GAIA_MAX_SLOW_SPEED_RANGE = 750; MCC_GAIA_MAX_MEDIUM_SPEED_RANGE= 750;" dans un déclencheur, par exemple, et normalement ....

Dunko
05/01/2015, 18h02
t'as déjà essayé?

En fait, c'est le seul truc que j'ai essayé et j'ai pas trouvé ça super concluant...

ammoniak007
06/01/2015, 00h04
non :D

Sweeden
16/01/2015, 18h14
C'est un bug qui nous arrive 1 foi sur 10, pour palier a cela, je rend le véhicule invincible jusqu’à ce qu'il aie quitté sont spawn .

Ps, ont a déjà ue sa avec les drones (juste âpres la connexion au terminal) et aussi bien sur VTS que sur des mission éditée.

Je reviens sur le sujet, ingame quelle commande à utiliser pour rendre invincible les véhicules ? un "this allowDamage false;" ne marche que si c'est présent dans l'init avec l'éditeur, pas en jeu avec MCC.

Lesupercopter
16/01/2015, 20h55
Dans le Zeus et MCC il faut rajouter l'enderscore dans les init il me semble:
_this allowDamage false

Izual
19/01/2015, 00h33
MAJ des Loadouts standardisés (http://forum.canardpc.com/threads/37234-Editing-FAQ-Liens-Utiles-pour-cr%C3%A9er-SA-mission?p=8444989&viewfull=1#post8444989).

Update "carbine" :


Changements mi-janvier 2015 :

Changements :
- Remplacement des armes normales par leur version courte (Carbine, exemple : MX -> MXC) pour les rôles suivants : médic, infirmier, MRAP, artificier, ingénieur.
- Ajout d'un rôle réparateur simple (fusilier avec toolkit) et réparateur mrap (fusilier mrap en t-shirt avec toolkit). Désormais, il y a donc trois possibilités de réparateur : simple, mrap et ingénieur (avec explosifs).
- L'équipage MRAP de l'OTAN porte désormais une version plus légère du gilet US de base.
- Le casque "spécialiste" a été donné aux médecins de combat de l'OTAN au lieu du casque ordinaire.
- Les MX des forces britanniques (normales et spéciales) de l'OTAN sont désormais de la variante noire.

Corrections :
- Les équipages de chars CSAT avaient un casque BLUFOR.
- Suppression de l'appel d'un loadout custom pour le rôle MRAP qui résultait en une erreur de script bénigne.

ackboo
28/01/2015, 16h07
Petit question par rapport au script Loadout Hardballer/Loadout Standardisés :

Quand je colle un loadout sur l'init d'une unité que je mets en "Player" via l'éditeur et que je fais une Preview par l'éditeur, le bon loadout apparaît.

En revanche, si je mets l'unité en "Playable", que je lance une session multijoueur sur ma machine et que je prends ce même rôle, le loadout n'est plus le bon, c'est celui par défaut.

C'est normal ?

Izual
28/01/2015, 16h10
Oui, ce script ne fonctionne que quand un joueur occupe le slot. Il me semble que c'est voulu.

Hardballer
28/01/2015, 16h13
Petit question par rapport au script Loadout Hardballer/Loadout Standardisés :

Quand je colle un loadout sur l'init d'une unité que je mets en "Player" via l'éditeur et que je fais une Preview par l'éditeur, le bon loadout apparaît.

En revanche, si je mets l'unité en "Playable", que je lance une session multijoueur sur ma machine et que je prends ce même rôle, le loadout n'est plus le bon, c'est celui par défaut.

C'est normal ?

nope, t'as foiré un truck quelque part

Sparfell
28/01/2015, 16h15
Non, par contre le loadout ne s'applique que pour les unités joueurs (c'est à dire incarnées par un joueur) et ça ne fonctionne pas si tu switch d'unité en cours de partie.
En revanche normalement si un joueur occupe un slot "jouable" lors d'une partie multijoueur, il devrait avoir le bon loadout.
Edit : grillé par qui de droit.

Izual
28/01/2015, 16h32
Faut que je fasse des tests mais moi j'ai toujours vécu ça comme ackboo.

Lesupercopter
28/01/2015, 23h07
Avez vous la sauvegarde activé ? Si oui le loadout standard va se sauvegarder sur les slots inoccupé et donc quand on change de slot, ba on récupère les loadouts par défaut.