Aller au contenu

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

État des inscriptions

  • KA-50
    Ouvert
  • A-10C
    Ouvert
  • MI-8MTV2
    Ouvert
  • SA342
    Ouvert

Vous reprendrez bien un peu de script !


29 réponses à ce sujet

#21

Dimitriov

    Pilote

  • Commandant

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 IPB Image IPBImage IPBImage IPB

#22

Winglet

    Sylvie Vartan

  • Capitaine

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

  • Commandant

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 Image IPB

#24

Dimitriov

    Pilote

  • Commandant

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 IPB Image IPBImage IPBImage IPB

#25

Angus

    Pilote

  • Commandant

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 Image IPB

#26

Angus

    Pilote

  • Commandant

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 Image IPB

#27

Lucky-O

    Pilote

  • Sous Lieutenant

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

#28

Angus

    Pilote

  • Commandant

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 Image IPB

#29

Flo

    Pilote

  • 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 IPBImage IPB

#30

Dimitriov

    Pilote

  • Commandant

Posté 21 décembre 2017 - 03:05

Belle trouvaille !
Image IPB Image IPBImage IPBImage IPB



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

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