Aller au contenu

Bienvenue sur le site de l'escadron 131st VFS 'Death Vipers', unité virtuelle évoluant sur le simulateur DCS World

Vous reprendrez bien un peu de script !


40 réponses à ce sujet

#21

White-sky

    Nobilium vulgari

  • Lieutenant Colonel
  • Moniteur KA-50

Posté 07 novembre 2016 - 19:42

Pour MIST c'est très simple, il te suffit de créer un trigger "temps sup à 5" et comme action "Exécuter fichier script - > MIST".

MIST est le script mère, les autres scripts (enfin pas tous d'ailleurs, certains sont autonomes) vont aller chercher dans MIST les fonctions qu'ils utilisent pour eux.

Pour faire simple, ton script GCI utilise la fonction "blabla", dans son code, y'a marqué "exec blabla", mais il ne définit pas ce que fait "blabla", il se contente de dire "blabla est une fonction que MIST définit, moi je me contente de l'exécuter".

Tu dois donc t'assurer de lancer MIST avant de lancer d'autres scripts, donc si tu as un script GCI par exemple, tu crées un second trigger "Temps sup à 10" et exécuter fichier script -> GCI.

Ensuite pour la configuration interne du script :

Je ne connais pas ton script, mais tu dois avoir du coup des paramètres à définir, par exemple le nom de la zone, le nom de l'unité GCI etc, donc une fois les scripts initialisés, tu crées un nouveau trigger (temps sup à 15 par exemple), et tu mets comme action "exécuter script" (pas exécuter fichier script), et dans la case tu marques les lignes de code qui sont normalement explicités.

Pour résumer : 3 temps :

- Initialisation de MIST au bout de 5 secondes.
- Initialisation du script GCI au bout de 10 secondes.
- Configuration du script GCI au bout de 15 secondes.

Exemple :

Le script du manpad qui descend du char.

Préparation : Nommer le char en question "char" par exemple (nom de l'unité).

Trigger 1 : Temps sup à 5 : exécuter fichier script : MIST
Trigger 2 : Temps sup à 10 : exécuter fichier script : Manpad (je connais plus son nom)
Trigger 3 : Temps sup à 15 : exécuter script : AddDismounts("char", "MANPADS")

Dés lors, un manpad descendra de l'unité char lorsque celle-ci est à l'arrêt. Le processus est le suivant : Le script Manpad invoque la fonction AddDismounts, qui est définie par MIST.
Image IPBImage IPBImage IPBImage IPB

#22

Winglet

    Aviateur

  • Membre
  • PipPipPipPipPipPipPip
  • Moniteur F-18C

Posté 07 novembre 2016 - 20:21

Ben si c'est le script GCI+CAP aleatoire que Tintin a proposé, il faut l'editer un chouille.

Rien de méchant, on se fait un TS Angus un de ces soir si tu veux.
Image IPB Image IPB Image IPB

#23

Angus

    Pilote

  • Lieutenant Colonel
  • Moniteur AV-8B

Posté 07 novembre 2016 - 20:28

yep je veux bien ! ça à l'air super intéressant , mais je pige pas tout .... on le met où sur notre ordi ce Mist ????? est ce qu'il est intégré à la mission ou il faut que l'hébergeur l'ai aussi sur son ordi ???

Tu m'expliqueras tout ça winglet :gg:
Image IPB Image IPB

#24

White-sky

    Nobilium vulgari

  • Lieutenant Colonel
  • Moniteur KA-50

Posté 07 novembre 2016 - 20:57

Non le fichier se comporte comme nun audio. Tu le mets où tu veux sur ton pc, tu l'ouvres par l'éditeur via le trigger "exécuter fichier script", et pis toc il est intégré à la mission comme les audios.
Image IPBImage IPBImage IPBImage IPB

#25

Angus

    Pilote

  • Lieutenant Colonel
  • Moniteur AV-8B

Posté 28 juillet 2017 - 19:13

Quelqu'un s'aurait prendre un peu de son temps pour m'expliquer comment fonctionne le script CTLD ? j'en aurais bien besoin pour la campagne vu que ED nous a dauber les charges sous élingues et la fonction d'embarquement/débarquement de passagers ...
Image IPB Image IPB

#26

Angus

    Pilote

  • Lieutenant Colonel
  • Moniteur AV-8B

Posté 29 juillet 2017 - 22:45

Bon en fait de ce que je vois on doit quand même se prendre la tête à faire des trigger de zone , donc autant se servir de l'éditeur de mission quoi ....
Image IPB Image IPB

#27

Lucky-O

    Pilote

  • Capitaine

Posté 25 septembre 2017 - 13:38

Salut aux mission makers
Qu'est-ce que vous pensez de l'ATME Advanced Tools for Mission Editor ?
On peut le trouver avec une notice en français. (pdf de 348 pages, tout de même...)
Image IPB Image IPB Image IPB

#28

Angus

    Pilote

  • Lieutenant Colonel
  • Moniteur AV-8B

Posté 25 septembre 2017 - 14:23

ben que c'est encore un truc où il faut être ingénieur informaticien pour faire une mission ... Pour le moment de tout ce que j'ai vu des trucs avec script lua , on peut les faire par trigger ...
En ce qui me concerne , comme je scénarise chaque mission en fonction de ce que je veux faire ... les scripts ne sont pas forcément d'une grande utilité .à vous de me démontrer le contraire :gg:
Image IPB Image IPB

#29

Flo

    Captain Lorraine

  • Capitaine

Posté 20 décembre 2017 - 10:44

Le script missile trouvé sur le ternet que j'utilise pour le stand de de tir: faie une fois > temps supérieur à 5 sec > executer script

A la deuxième ligne, 0 va afficher une explosion à l'impact, 1 va désactiver l'explosion

Quand le missile lancé contre un joueur va arriver très proche de son avion, le missile disparait et on voit affiché le message " **** a été touché par un missile sol-air :-( "



do
local remove_missile_method = 0
-- 0 will create an explosion
-- 1 will use Object.destroy() which simply makes the missile disappear.


local aiMissiles = {}
local numActive = 0
local uid = 1
local idNum = 1
local function simpleEvent(f) -- from mist
local handler = {}
idNum = idNum + 1
handler.id = idNum
handler.f = f
handler.onEvent = function(self, event)
self.f(event)
end
world.addEventHandler(handler)
end

getMag = function(vec) -- from mist
return (vec.x^2 + vec.y^2 + vec.z^2)^0.5
end

get3DDist = function(point1, point2)
return getMag({x = point1.x - point2.x, y = point1.y - point2.y, z = point1.z - point2.z})
end

local function removeMis(id)
if Object.isExist(aiMissiles[id].missile) then -- if missile is still active and needs to be destroyed
if Weapon.getTarget(aiMissiles[id].missile) == aiMissiles[id].origTarg and Unit.getPlayerName(aiMissiles[id].origTarg) then
trigger.action.outText(Unit.getPlayerName(aiMissiles[id].origTarg) .. ' a été touché par un missile sol-air :-(', 20)
end
if remove_missile_method == 0 then
trigger.action.explosion(Object.getPosition(aiMissiles[id].missile).p, 5)
else
Object.destroy(aiMissiles[id].missile)
end
end
aiMissiles[id] = nil
numActive = numActive - 1

return
end
local function checkMis(mis)
local tot = 0

if Object.isExist(mis.missile) == false then
removeMis(mis.uid)
else
if Object.isExist(mis.origTarg) == true then
local misVel = getMag(Object.getVelocity(mis.missile))
local targVel = getMag(Object.getVelocity(mis.origTarg))
local dist = get3DDist(Object.getPoint(mis.missile), Object.getPoint(mis.origTarg))
if dist < 100 then -- if its close and still guiding
removeMis(mis.uid)
else
tot = dist/(misVel*2)
timer.scheduleFunction(checkMis, mis, timer.getTime() + tot)
end
end
end


end


local function aiShot(event)

if event.id == world.event.S_EVENT_SHOT and event.initiator and not Unit.getPlayerName(event.initiator) then -- if AI
if event.weapon and Weapon.getDesc(event.weapon).missileCategory and (Weapon.getDesc(event.weapon).missileCategory == 2 or Weapon.getDesc(event.weapon).missileCategory == 1) then
local newMis = {}
newMis.launchTime = timer.getTime()
newMis.uid = uid
newMis.missile = event.weapon
newMis.origTarg = Weapon.getTarget(event.weapon)
newMis.lostTrack = false
aiMissiles[uid] = newMis
uid = uid + 1
numActive = numActive + 1

timer.scheduleFunction(checkMis, newMis, timer.getTime() + 4)
end
end
end
simpleEvent(aiShot)

env.info('Training Sams by Grimes Loaded')
end
Image IPB Image IPB

#30

White-sky

    Nobilium vulgari

  • Lieutenant Colonel
  • Moniteur KA-50

Posté 21 décembre 2017 - 03:05

Belle trouvaille !
Image IPBImage IPBImage IPBImage IPB

#31

Flo

    Captain Lorraine

  • Capitaine

Posté 02 septembre 2018 - 10:55

A TOUS les appareils embarqués, oyez, oyez !

Un script que je cherchais tel le Saint-Grââl depuis un moment (d'ailleurs si Joseph d'Arimatie est pas trop con, le Grâäl, c'est un bocal à anchois) et que j'ai finalement pu faire fonctionner grâce à l'aide Grimes, LE Monsieur Mist sur les forums d'ED.

Voilà un script qui vous permet d'avoir des infos trèèèèèèèèèèèèèèèèès utiles, à savoir le cap et la vitesse de votre maison flottante en tenant compte de la déclinaison magnétique.

Le script est dispo ici: https://drive.google...iew?usp=sharing

Pour ce faire, question marqueur, ça se passe comme ça:

1) Une fois, temps >10 secondes, exécutez le fichier script mist et créez un menu radio pour tel ou tel groupe qui déclenche le marqueur 1 (ou 2, ou 3, ou peu importe)

2) Sur bascule de condtion, quand marqueur 1 est vrai:
- exécuter fichier script InfoNavire
- désactiver marqueur 1
- et ajoutez si vous voulez un son de radio

En mission, allez sur le menu F10, déclenchez le menu radio, et voilà:

Fichier joint  Screen_180902_115122.png   1,7 Mo   12 Nombre de téléchargements 

ATTENTION, TRES IMPORTANT: dans le fichier script joint, n'oubliez SURTOUT PAS de remplacer tarawa à la ligne 2 par le nom d'unité du navire dont vous voulez connaître les infos, sinon forcément ça va chier dans la colle

Chose que vous pouvez changer, c'est la durée en secondes pendant laquelle vous voulez voir le message affiché à l'écran, à la ligne 10, remplacez 30 par ce que vous voulez

L'intérêt de tout ça ? Ben fini de devoir faire parcourir toute la carte en longueur ou largeur à votre porte-aéronef pour être sûr de connaître le cap à suivre en final lors d'un appontage aux instruments
Image IPB Image IPB

#32

Storm

    Pilote

  • Sous Lieutenant
  • Moniteur F-18C

Posté 02 septembre 2018 - 11:38

Euh........ Mais faut quand meme que le navire (plus precisement le pont) soit dans l'axe du vent?? Donc pour le moment on est obligé de mettre les infos dans le brief? Sauf si on ne met pas de vent :P

Image IPB Image IPB
The devil whispers me "You can't withstand the storm". I replied "I AM STORM!"


#33

Flo

    Captain Lorraine

  • Capitaine

Posté 02 septembre 2018 - 11:42

C'est la limitation du truc jusqu'à ce qu'on ait des navires qui virent debout au vent une fois que tu t'annonces, mais bon, j'ai arrêté de rêver il y'a bien longtemps
Image IPB Image IPB

#34

Angus

    Pilote

  • Lieutenant Colonel
  • Moniteur AV-8B

Posté 02 septembre 2018 - 13:01

avec un joueur CA on peut faire virer le Navire pour les recovery ;)
Image IPB Image IPB

#35

Loulou

    Aviateur

  • Membre
  • PipPipPipPipPipPipPip

Posté 19 mars 2019 - 12:43

Concernant le script des missiles d'entrainement, n'avez vous pas l'impression que le comportement du missile change? Pour ma part, là où sans le script je peux leurrer des missiles IR, avec le script ils me hit systématiquement ....

#36

Wilco

    Hyène volante

  • Capitaine

Posté 19 mars 2019 - 16:41

Non, je réussis à en leurrer deux ou trois avant d'avoir un missile fatal.
Image IPBImage IPBImage IPBImage IPB

#37

Flo

    Captain Lorraine

  • Capitaine

Posté 19 mars 2019 - 16:51

Yep, testé et apparement le script seul ne fonctionne pas. M'en suis pas aperçu car sur ma zone d'entraînement, j'avais aussi mis des triggers à l'époque "quand groupe dans (hors)zone , executer avec priorité tache inmmortel on (off)" par sécurité car pas sûr, c'est d'ailleurs pour ça qu'il y'a autant de triggers, car un groupe = UN avion. Par contre, aucune influence sur le comportement du missile pour ma part
Image IPB Image IPB

#38

Loulou

    Aviateur

  • Membre
  • PipPipPipPipPipPipPip

Posté 19 mars 2019 - 16:57

Bon ben c'est moi qui est mauvais :blush:

#39

Loulou

    Aviateur

  • Membre
  • PipPipPipPipPipPipPip

Posté 19 mars 2019 - 17:04

Non par contre pour ma part, le script fonctionne nickel, y'a explosion, ou pas selon ce qu'on met dans les premières lignes, et ensuite le message, mais on est pas touché. Dans ma mission, je charge MIST auparavant, et il est appelé par ce script, donc mandatory pour moi !

Enjoy

#40

Migow

    Aviateur

  • Membre
  • PipPipPipPipPip

Posté 28 juillet 2019 - 21:54

script pour rendre invincible des joueurs dans une/des zones pour du training

--by migow invincibility script 0.6
local coalition_player_side = coalition.side.BLUE
local zone_name_array = {}
local trace_debug = false
trigger.action.outText("Script Invulnerabilite On",1)
function AddInvicibilityArea(area_name)-- a appeler pour chaque zone
zone_name_array[#zone_name_array +1] = area_name
end
local function SetPlayersInvicibleInArea()
local player_array = coalition.getPlayers(coalition_player_side)

for player_index, player in ipairs(player_array) do
  local invincible = false
  local player_group = player:getGroup()
  if player_group then
   for zone_index, zone_name in ipairs(zone_name_array) do
    local zone = trigger.misc.getZone(zone_name)
    if zone then
 
	 if mist.utils.get2DDist(player:getPosition().p, zone.point) < zone.radius then -- if it is in the zone
	  invincible =true
	 
	  break;
	  else
	  invincible = false
	 
	 end
 
 
 
    end
   end
   player_group:getController():setCommand({id = 'SetImmortal', params = {value = invincible}}) -- set immortal to invincible
   if trace_debug then
    if invincible then
	 trigger.action.outText("invincible",1)
    else
	 trigger.action.outText("vulnerable",1)
    end
   end
  
  end
 
 
 
 
end
end

AddInvicibilityArea("invincible")--zone a appeler en exemple
AddInvicibilityArea("miaw")

mist.scheduleFunction(SetPlayersInvicibleInArea, {}, timer.getTime(), 1)




1 utilisateur(s) li(sen)t ce sujet

0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)