Jump to content
131st VFS 'Death Vipers'
Dimitriov

Vous reprendrez bien un peu de script !

Recommended Posts

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 ....

Share this post


Link to post

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...)

Share this post


Link to post

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:

Share this post


Link to post

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

Share this post


Link to post

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à:

 

post-337-0-70839300-1535882003_thumb.png

 

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

Share this post


Link to post

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

Share this post


Link to post

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

Share this post


Link to post

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 ....

Share this post


Link to post

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

Share this post


Link to post

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

Share this post


Link to post

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)

Share this post


Link to post

Salut à tous !

 

Un script Mist que j'ai trouvé tout seul comme un grand (si si !) et qui permet un truc intéressant, à savoir créer une zone de trigger polygonale, à savoir en triangle, en carré, avec une forme plus complexe pour délimiter un frontière, en forme de zob si ça vous chante:

 

do

mist.flagFunc.units_in_polygon{

units = {'[blue][aircraft]'},

zone = {

[1] = mist.DBs.unitsByName['Coin1'].point,

[2] = mist.DBs.unitsByName['Coin2'].point,

[3] = mist.DBs.unitsByName['Coin3'].point,

},

flag = 1

}

end

 

 

Où:

 

blue / red: la coalition

 

aircraft / helicopter / vehicle : le type d'unité qui déclenche le trigger quand il rentre dans la zone

 

Coin1, Coin2, Coin3, etc... : il s'agit des noms des coins qui définissent le polygone. Pour les définir, créez un groupe de véhicules ennemis, avec autant de véhicules que vous voulez de coins à votre zone, puis, pour chaque véhicule, changez son nom d' unité au nom que vous voulez donner au coin du polygone. Placez les véhicules de façon à former la zone voulue, et surtout, n'oubliez d'ajouter les coins et leurs noms dans le script en respectant bien la syntaxe

 

1: Il s'agit du numéro du trigger que vous voulez déclencher lorsque le type d'unité que vous souhaitez rentre dans la zone

 

 

En bref, une alternative intéressante à la zone circulaire :gg:

Share this post


Link to post

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...