Script - Proximity Trigger

From FreeSpace Wiki
Revision as of 10:56, 17 August 2006 by Wanderer (talk | contribs) (initial commit)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Function

After certain activation time the script detonates set weapons if there are non friendly ships (neutral, hostile, traitor etc.) within certain radius. Can be used as proximity trigger for weapons or for example as proximity trigger for mines.

Example below uses Helios as the weapon having proximity trigger that activates 5 seconds after the weapon launch (This particular Helios has lifetime of 30 s). The script detonates the weapon if target approaches to closer than 1000 m (IMPORTANT NOTE: unlike ingame distances this one is measured from the centerpoint of the weapon to the centerpoint of the target)

Table Entry

#Global Hooks

$Simulation:

[

--Get all weapons
for i=1,mn.getNumWeapons() do
   weapon = mn.getWeaponByIndex(i)
   weapontype = weapon.Class.Name

   --Select only mines
   if weapontype == "Helios" then
      weaponlife = weapon.LifeLeft

      --Select only those mines that have been activated (time activation)
      if weaponlife < 25 then
         weaponteam = weapon.Team

         --Start building distance array
         for m=1,mn.getNumShips() do
            ship = mn.getShipByIndex(m)
            shipteam = ship.Team
            weaponposition = weapon.Position
            shipposition = ship.Position
            shipdistance = weaponposition:getDistance(shipposition)

            if shipteam ~= weaponteam and shipdistance < 1000 then
               weapon.LifeLeft = 0
            end
         end
      end
   end
end

]

#End