Vous reprendrez bien un peu de script !
#21
Posté 07 novembre 2016 - 19:42
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.
#22
Posté 07 novembre 2016 - 20:21
Rien de méchant, on se fait un TS Angus un de ces soir si tu veux.
#23
Posté 07 novembre 2016 - 20:28
Tu m'expliqueras tout ça winglet
#24
Posté 07 novembre 2016 - 20:57
#25
Posté 28 juillet 2017 - 19:13
#26
Posté 29 juillet 2017 - 22:45
#27
Posté 25 septembre 2017 - 13:38
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...)
#28
Posté 25 septembre 2017 - 14:23
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
#29
Posté 20 décembre 2017 - 10:44
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
#30
Posté 21 décembre 2017 - 03:05
#31
Posté 02 septembre 2018 - 10:55
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à:
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
#32
Posté 02 septembre 2018 - 11:38
The devil whispers me "You can't withstand the storm". I replied "I AM STORM!"
#33
Posté 02 septembre 2018 - 11:42
#34
Posté 02 septembre 2018 - 13:01
#35
Posté 19 mars 2019 - 12:43
#36
Posté 19 mars 2019 - 16:41
#37
Posté 19 mars 2019 - 16:51
#38
Posté 19 mars 2019 - 16:57
#39
Posté 19 mars 2019 - 17:04
Enjoy
#40
Posté 28 juillet 2019 - 21:54
--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)
3 utilisateur(s) li(sen)t ce sujet
0 membre(s), 3 invité(s), 0 utilisateur(s) anonyme(s)