mirror of
https://github.com/Pax1601/DCSOlympus.git
synced 2025-10-29 16:56:34 +00:00
Refactoring of building scripts
This commit is contained in:
628
scripts/lua/examples/poleGen.lua
Normal file
628
scripts/lua/examples/poleGen.lua
Normal file
@@ -0,0 +1,628 @@
|
||||
--max range, altitude and it fails?
|
||||
--shoot right up
|
||||
--fix sa10 and sa 11
|
||||
|
||||
--different static layouts on a carrier depending on what is going on
|
||||
--guns on a static ship at sea?
|
||||
|
||||
|
||||
pg = {}
|
||||
handler = {}
|
||||
pg.name = "Sam"
|
||||
pg.cloneName = "Clone"
|
||||
pg.fakeTargetName = "Player"
|
||||
pg.samCounter = 1
|
||||
pg.droneAlt = 20000
|
||||
pg.delay = 40
|
||||
pg.missileSpeed = 565
|
||||
pg.samLoc = {}
|
||||
pg.samLoc.x = 1
|
||||
pg.samLoc.y = 1
|
||||
pg.samLoc.z = 1
|
||||
pg.missilesActive = 0
|
||||
pg.droneName = nil
|
||||
pg.droneSpeed = 300
|
||||
pg.hidden = false
|
||||
pg.samDB = {[1] = {["missileDelay"] = 40, ["missileSpeed"] = 770},
|
||||
[2] = {["missileDelay"] = 40, ["missileSpeed"] = 770},
|
||||
[3] = {["missileDelay"] = 120, ["missileSpeed"] = 550},
|
||||
[4] = {["missileDelay"] = 40, ["missileSpeed"] = 770},
|
||||
[5] = {["missileDelay"] = 65, ["missileSpeed"] = 770},
|
||||
[6] = {["missileDelay"] = 60, ["missileSpeed"] = 500},
|
||||
[7] = {["missileDelay"] = 40, ["missileSpeed"] = 770},
|
||||
[8] = {["missileDelay"] = 40, ["missileSpeed"] = 770},
|
||||
[9] = {["missileDelay"] = 40, ["missileSpeed"] = 770},
|
||||
[10] = {["missileDelay"] = 60, ["missileSpeed"] = 1400},
|
||||
}
|
||||
|
||||
function pg.notify(message, displayFor)
|
||||
trigger.action.outText(message, displayFor, false)
|
||||
end
|
||||
|
||||
|
||||
function pg.fakeSam(vec3)
|
||||
|
||||
playerTarget = Unit.getByName(pg.fakeTargetName)
|
||||
pointFakeTarget = playerTarget:getPosition().p
|
||||
vec3 = vec3 or pg.samLoc
|
||||
|
||||
vecSub = mist.vec.sub(pointFakeTarget , vec3)
|
||||
planeHeading = mist.utils.getDir(vecSub)
|
||||
missileType = 2
|
||||
pg.spawnDrone (vec3,planeHeading,playerTarget,missileType)
|
||||
|
||||
--pg.notify("FakeSam Ran", 10)
|
||||
|
||||
targetID = Group.getByName("TargetDrone" .. pg.samCounter):getUnit(1):getID()
|
||||
samGroup = Group.getByName("poleGenerator" .. pg.samCounter)
|
||||
vars = {[1] = targetID, [2] = samGroup}
|
||||
timer.scheduleFunction(pg.attack ,vars, timer.getTime() + 1)
|
||||
pg.samCounter = pg.samCounter + 1
|
||||
|
||||
end
|
||||
|
||||
|
||||
function pg.spawnSamSA2 (vec3,heading)
|
||||
--where
|
||||
--name
|
||||
group = {}
|
||||
group.groupName = "poleGenerator" .. pg.samCounter
|
||||
group.units = {
|
||||
[1] =
|
||||
{
|
||||
["skill"] = "High",
|
||||
["coldAtStart"] = false,
|
||||
["hidden"] = pg.hidden,
|
||||
["type"] = "S_75M_Volhov",
|
||||
--["unitId"] = 35,
|
||||
["y"] = vec3.z-40,
|
||||
["x"] = vec3.x-40,
|
||||
--["name"] = "Ground-1-2",
|
||||
["heading"] = heading+math.pi,
|
||||
["playerCanDrive"] = false,
|
||||
}, -- end of [1]
|
||||
[2] =
|
||||
{
|
||||
["skill"] = "High",
|
||||
["coldAtStart"] = false,
|
||||
["type"] = "SNR_75V",
|
||||
--["unitId"] = 34,
|
||||
["y"] = vec3.z,
|
||||
["x"] = vec3.x,
|
||||
--["name"] = "Ground-1-1",
|
||||
["heading"] = heading+math.pi,
|
||||
["playerCanDrive"] = false,
|
||||
}, -- end of [2]
|
||||
}
|
||||
group.hidden = pg.hidden
|
||||
group.category = "VEHICLE"
|
||||
group.country = 54
|
||||
mist.dynAdd(group)
|
||||
--heading
|
||||
end
|
||||
|
||||
function pg.spawnSamSA3 (vec3,heading)
|
||||
--where
|
||||
--name
|
||||
group = {}
|
||||
group.groupName = "poleGenerator" .. pg.samCounter
|
||||
group.units = {
|
||||
[1] =
|
||||
{
|
||||
["skill"] = "High",
|
||||
["coldAtStart"] = false,
|
||||
["hidden"] = pg.hidden,
|
||||
["type"] = "snr s-125 tr",
|
||||
--["unitId"] = 35,
|
||||
["y"] = vec3.z-40,
|
||||
["x"] = vec3.x-40,
|
||||
--["name"] = "Ground-1-2",
|
||||
["heading"] = heading+math.pi,
|
||||
["playerCanDrive"] = false,
|
||||
}, -- end of [1]
|
||||
[2] =
|
||||
{
|
||||
["skill"] = "High",
|
||||
["coldAtStart"] = false,
|
||||
["type"] = "5p73 s-125 ln",
|
||||
--["unitId"] = 34,
|
||||
["y"] = vec3.z,
|
||||
["x"] = vec3.x,
|
||||
--["name"] = "Ground-1-1",
|
||||
["heading"] = heading+math.pi,
|
||||
["playerCanDrive"] = false,
|
||||
}, -- end of [2]
|
||||
}
|
||||
group.hidden = pg.hidden
|
||||
group.category = "VEHICLE"
|
||||
group.country = 54
|
||||
mist.dynAdd(group)
|
||||
--heading
|
||||
end
|
||||
|
||||
function pg.spawnSamSA5 (vec3,heading)
|
||||
--where
|
||||
--name
|
||||
group = {}
|
||||
group.groupName = "poleGenerator" .. pg.samCounter
|
||||
group.units = {
|
||||
[1] =
|
||||
{
|
||||
["skill"] = "High",
|
||||
["coldAtStart"] = false,
|
||||
["hidden"] = pg.hidden,
|
||||
["type"] = "RPC_5N62V",
|
||||
--["unitId"] = 35,
|
||||
["y"] = vec3.z-40,
|
||||
["x"] = vec3.x-40,
|
||||
--["name"] = "Ground-1-2",
|
||||
["heading"] = heading+math.pi,
|
||||
["playerCanDrive"] = false,
|
||||
}, -- end of [1]
|
||||
[2] =
|
||||
{
|
||||
["skill"] = "High",
|
||||
["coldAtStart"] = false,
|
||||
["type"] = "RLS_19J6",
|
||||
--["unitId"] = 34,
|
||||
["y"] = vec3.z,
|
||||
["x"] = vec3.x,
|
||||
--["name"] = "Ground-1-1",
|
||||
["heading"] = heading+math.pi,
|
||||
["playerCanDrive"] = false,
|
||||
}, -- end of [2]
|
||||
[3] =
|
||||
{
|
||||
["skill"] = "High",
|
||||
["coldAtStart"] = false,
|
||||
["type"] = "S-200_Launcher",
|
||||
--["unitId"] = 34,
|
||||
["y"] = vec3.z-80,
|
||||
["x"] = vec3.x-80,
|
||||
--["name"] = "Ground-1-1",
|
||||
["heading"] = heading+math.pi,
|
||||
["playerCanDrive"] = false,
|
||||
}, -- end of [3]
|
||||
}
|
||||
group.hidden = pg.hidden
|
||||
group.category = "VEHICLE"
|
||||
group.country = 54
|
||||
mist.dynAdd(group)
|
||||
--heading
|
||||
end
|
||||
|
||||
function pg.spawnSamSA6 (vec3,heading)
|
||||
--where
|
||||
--name
|
||||
group = {}
|
||||
group.groupName = "poleGenerator" .. pg.samCounter
|
||||
group.units = {
|
||||
[1] =
|
||||
{
|
||||
["skill"] = "High",
|
||||
["coldAtStart"] = false,
|
||||
["hidden"] = pg.hidden,
|
||||
["type"] = "Kub 1S91 str",
|
||||
--["unitId"] = 35,
|
||||
["y"] = vec3.z-40,
|
||||
["x"] = vec3.x-40,
|
||||
--["name"] = "Ground-1-2",
|
||||
["heading"] = heading+math.pi,
|
||||
["playerCanDrive"] = false,
|
||||
}, -- end of [1]
|
||||
[2] =
|
||||
{
|
||||
["skill"] = "High",
|
||||
["coldAtStart"] = false,
|
||||
["type"] = "Kub 2P25 ln",
|
||||
--["unitId"] = 34,
|
||||
["y"] = vec3.z,
|
||||
["x"] = vec3.x,
|
||||
--["name"] = "Ground-1-1",
|
||||
["heading"] = heading+math.pi,
|
||||
["playerCanDrive"] = false,
|
||||
}, -- end of [2]
|
||||
}
|
||||
group.hidden = pg.hidden
|
||||
group.category = "VEHICLE"
|
||||
group.country = 54
|
||||
mist.dynAdd(group)
|
||||
--heading
|
||||
end
|
||||
|
||||
function pg.spawnSamSA10 (vec3,heading)
|
||||
--where
|
||||
--name
|
||||
group = {}
|
||||
group.groupName = "poleGenerator" .. pg.samCounter
|
||||
group.units = {
|
||||
[1] =
|
||||
{
|
||||
["skill"] = "High",
|
||||
["coldAtStart"] = false,
|
||||
["hidden"] = pg.hidden,
|
||||
["type"] = "S-300PS 40B6M tr",
|
||||
--["unitId"] = 35,
|
||||
["y"] = vec3.z,
|
||||
["x"] = vec3.x,
|
||||
--["name"] = "Ground-1-2",
|
||||
["heading"] = heading+math.pi,
|
||||
["playerCanDrive"] = false,
|
||||
}, -- end of [1]
|
||||
[2] =
|
||||
{
|
||||
["skill"] = "High",
|
||||
["coldAtStart"] = false,
|
||||
["type"] = "S-300PS 64H6E sr",
|
||||
--["unitId"] = 34,
|
||||
["y"] = vec3.z-10,
|
||||
["x"] = vec3.x-10,
|
||||
--["name"] = "Ground-1-1",
|
||||
["heading"] = heading+math.pi,
|
||||
["playerCanDrive"] = false,
|
||||
}, -- end of [2]
|
||||
[3] =
|
||||
{
|
||||
["skill"] = "High",
|
||||
["coldAtStart"] = false,
|
||||
["type"] = "S-300PS 54K6 cp",
|
||||
--["unitId"] = 34,
|
||||
["y"] = vec3.z-20,
|
||||
["x"] = vec3.x-20,
|
||||
--["name"] = "Ground-1-1",
|
||||
["heading"] = heading+math.pi,
|
||||
["playerCanDrive"] = false,
|
||||
}, -- end of [3]
|
||||
[4] =
|
||||
{
|
||||
["skill"] = "High",
|
||||
["coldAtStart"] = false,
|
||||
["type"] = "S-300PS 5P85C ln",
|
||||
--["unitId"] = 34,
|
||||
["y"] = vec3.z-40,
|
||||
["x"] = vec3.x-40,
|
||||
--["name"] = "Ground-1-1",
|
||||
["heading"] = heading+math.pi,
|
||||
["playerCanDrive"] = false,
|
||||
}, -- end of [4]
|
||||
}
|
||||
group.hidden = pg.hidden
|
||||
group.category = "VEHICLE"
|
||||
group.country = 54
|
||||
mist.dynAdd(group)
|
||||
--heading
|
||||
end
|
||||
|
||||
function pg.spawnSamSA11 (vec3,heading)
|
||||
--where
|
||||
--name
|
||||
group = {}
|
||||
group.groupName = "poleGenerator" .. pg.samCounter
|
||||
group.units = {
|
||||
[1] =
|
||||
{
|
||||
["skill"] = "High",
|
||||
["coldAtStart"] = false,
|
||||
["hidden"] = pg.hidden,
|
||||
["type"] = "SA-11 Buk SR 9S18M1",
|
||||
--["unitId"] = 35,
|
||||
["y"] = vec3.z-40,
|
||||
["x"] = vec3.x-40,
|
||||
--["name"] = "Ground-1-2",
|
||||
["heading"] = heading+math.pi,
|
||||
["playerCanDrive"] = false,
|
||||
}, -- end of [1]
|
||||
[2] =
|
||||
{
|
||||
["skill"] = "High",
|
||||
["coldAtStart"] = false,
|
||||
["type"] = "SA-11 Buk CC 9S470M1",
|
||||
--["unitId"] = 34,
|
||||
["y"] = vec3.z,
|
||||
["x"] = vec3.x,
|
||||
--["name"] = "Ground-1-1",
|
||||
["heading"] = heading+math.pi,
|
||||
["playerCanDrive"] = false,
|
||||
}, -- end of [2]
|
||||
[2] =
|
||||
{
|
||||
["skill"] = "High",
|
||||
["coldAtStart"] = false,
|
||||
["type"] = "SA-11 Buk LN 9A310M1",
|
||||
--["unitId"] = 34,
|
||||
["y"] = vec3.z,
|
||||
["x"] = vec3.x,
|
||||
--["name"] = "Ground-1-1",
|
||||
["heading"] = heading+math.pi,
|
||||
["playerCanDrive"] = false,
|
||||
}, -- end of [2]
|
||||
}
|
||||
group.hidden = pg.hidden
|
||||
group.category = "VEHICLE"
|
||||
group.country = 54
|
||||
mist.dynAdd(group)
|
||||
--heading
|
||||
end
|
||||
|
||||
|
||||
|
||||
function pg.spawnDrone(vec3,planeHeading,playerTarget,missileType)
|
||||
-- where is the plane going to be in x seconds
|
||||
playerTargetPos = playerTarget:getPosition().p
|
||||
futurePlayerTargetPos = playerTargetPos
|
||||
playerMotionVec = Object.getVelocity(playerTarget)
|
||||
|
||||
--work out what type of SAM we are shooting to work out the delay, missile speed etc
|
||||
|
||||
if missileType == 2 then
|
||||
pg.delay = pg.samDB[2].missileDelay
|
||||
pg.missileSpeed = pg.samDB[2].missileSpeed
|
||||
elseif missileType == 3 then
|
||||
pg.delay = pg.samDB[3].missileDelay
|
||||
pg.missileSpeed = pg.samDB[3].missileSpeed
|
||||
elseif missileType == 5 then
|
||||
pg.delay = pg.samDB[5].missileDelay
|
||||
pg.missileSpeed = pg.samDB[5].missileSpeed
|
||||
elseif missileType == 6 then
|
||||
pg.delay = pg.samDB[6].missileDelay
|
||||
pg.missileSpeed = pg.samDB[5].missileSpeed
|
||||
elseif missileType == 10 then
|
||||
pg.delay = pg.samDB[10].missileDelay
|
||||
pg.missileSpeed = pg.samDB[10].missileSpeed
|
||||
elseif missileType == 11 then
|
||||
pg.delay = pg.samDB[11].missileDelay
|
||||
pg.missileSpeed = pg.samDB[11].missileSpeed
|
||||
else --assume SA2
|
||||
pg.delay = pg.samDB[2].missileDelay
|
||||
pg.missileSpeed = pg.samDB[2].missileSpeed
|
||||
end
|
||||
|
||||
futurePlayerTargetPos.x = playerTargetPos.x + playerMotionVec.x*pg.delay
|
||||
futurePlayerTargetPos.y = playerTargetPos.y + playerMotionVec.y*pg.delay
|
||||
futurePlayerTargetPos.z = playerTargetPos.z + playerMotionVec.z*pg.delay
|
||||
droneTurnPoint = mist.projectPoint(futurePlayerTargetPos, 10000 ,planeHeading+math.pi)
|
||||
--this is where the plane will be when the missile is launched
|
||||
|
||||
|
||||
|
||||
--pythago to get hyp
|
||||
--x^2 + y^x = hyp^2
|
||||
x = mist.utils.get2DDist(futurePlayerTargetPos,vec3)
|
||||
|
||||
y = playerTargetPos.y
|
||||
--pg.notify(y,5)
|
||||
hyp = math.sqrt(x^2 + y^2)
|
||||
roughFlightTime = hyp /pg.missileSpeed-- distance / speed
|
||||
|
||||
futurePlayerTargetPos.x = futurePlayerTargetPos.x + playerMotionVec.x*roughFlightTime
|
||||
futurePlayerTargetPos.y = futurePlayerTargetPos.y + playerMotionVec.y*roughFlightTime
|
||||
futurePlayerTargetPos.z = futurePlayerTargetPos.z + playerMotionVec.z*roughFlightTime
|
||||
--this is where the plane will be when the missile arrives at its altitude
|
||||
|
||||
--now we need to work out where the drone is going to go
|
||||
vecSub = mist.vec.sub(vec3,futurePlayerTargetPos)
|
||||
heading = mist.utils.getDir(vecSub) --heading between picked location and future pos
|
||||
extendDistance = x + 10000
|
||||
|
||||
alt = (((futurePlayerTargetPos.y) * extendDistance)/x)
|
||||
|
||||
droneAtTimePos = mist.projectPoint(vec3, extendDistance ,heading +math.pi)
|
||||
|
||||
extendDistance = extendDistance + pg.droneSpeed*roughFlightTime
|
||||
droneAtStartPos = mist.projectPoint(vec3, extendDistance ,heading +math.pi)
|
||||
--we want to curve the missile in the players direction
|
||||
--planeHeading
|
||||
|
||||
pg.makeDrone(droneAtStartPos,heading, droneAtTimePos, futurePlayerTargetPos,alt,droneTurnPoint)
|
||||
if missileType == 2 then
|
||||
pg.spawnSamSA2 (vec3,heading)
|
||||
elseif missileType == 3 then
|
||||
pg.spawnSamSA3 (vec3,heading)
|
||||
elseif missileType == 5 then
|
||||
pg.spawnSamSA5 (vec3,heading)
|
||||
elseif missileType == 6 then
|
||||
pg.spawnSamSA6 (vec3,heading)
|
||||
elseif missileType == 10 then
|
||||
pg.spawnSamSA10 (vec3,heading)
|
||||
else --assume SA2
|
||||
pg.spawnSamSA2 (vec3,heading)
|
||||
end
|
||||
|
||||
|
||||
end
|
||||
|
||||
function pg.makeDrone(spawnVec,heading, routeVec, nextRouteVec,alt,droneTurnPoint)
|
||||
--this spawns in the drone
|
||||
group = DroneClone
|
||||
group.groupName = "TargetDrone" .. pg.samCounter
|
||||
group.groupId = nil
|
||||
group.units[1].unitId = nil
|
||||
group.units[1].unitName = nil
|
||||
group.units[1].y = spawnVec.z
|
||||
group.units[1].x = spawnVec.x
|
||||
group.units[1].heading = heading
|
||||
group.units[1].alt = alt
|
||||
group.route["points"][2] = group.route["points"][1]
|
||||
group.route["points"][3] = group.route["points"][1]
|
||||
group.route["points"][1]["y"] = routeVec.z
|
||||
group.route["points"][1]["x"] = routeVec.x
|
||||
group.route["points"][1]["alt"] = alt
|
||||
group.route["points"][2]["y"] = nextRouteVec.z
|
||||
group.route["points"][2]["x"] = nextRouteVec.x
|
||||
group.route["points"][2]["alt"] = alt
|
||||
group.route["points"][3]["y"] = droneTurnPoint.z
|
||||
group.route["points"][3]["x"] = droneTurnPoint.x
|
||||
group.route["points"][3]["alt"] = alt
|
||||
group.countryId = 56
|
||||
group.category = 'AIRPLANE'
|
||||
mist.dynAdd(group)
|
||||
end
|
||||
|
||||
|
||||
function pg.attack (vars)
|
||||
targetID = vars[1]
|
||||
samGroup = vars[2]
|
||||
AttackUnit = {
|
||||
id = 'AttackUnit',
|
||||
params = {
|
||||
unitId = targetID,
|
||||
attackQtyLimit = true,
|
||||
attackQty = 1,
|
||||
}
|
||||
}
|
||||
|
||||
local controller = samGroup:getController()
|
||||
controller:pushTask(AttackUnit)
|
||||
end
|
||||
|
||||
|
||||
|
||||
function pg.radarOff ()
|
||||
group = Group.getByName(pg.name)
|
||||
local controller = group:getController()
|
||||
controller:setOption(9,1)
|
||||
end
|
||||
|
||||
function pg.radarOn ()
|
||||
group = Group.getByName(pg.name)
|
||||
local controller = group:getController()
|
||||
controller:setOption(9,0)
|
||||
end
|
||||
|
||||
DroneClone=
|
||||
{
|
||||
["modulation"] = 0,
|
||||
["tasks"] =
|
||||
{
|
||||
}, -- end of ["tasks"]
|
||||
["task"] = "Reconnaissance",
|
||||
["uncontrolled"] = false,
|
||||
["route"] =
|
||||
{
|
||||
["points"] =
|
||||
{
|
||||
[1] =
|
||||
{
|
||||
["alt"] = 2000,
|
||||
["action"] = "Turning Point",
|
||||
["alt_type"] = "BARO",
|
||||
["speed"] = 82.222222222222,
|
||||
["task"] =
|
||||
{
|
||||
["id"] = "ComboTask",
|
||||
["params"] =
|
||||
{
|
||||
["tasks"] =
|
||||
{}, -- end of ["tasks"]
|
||||
}, -- end of ["params"]
|
||||
}, -- end of ["task"]
|
||||
["type"] = "Turning Point",
|
||||
["ETA"] = 0,
|
||||
["ETA_locked"] = true,
|
||||
["y"] = 0,
|
||||
["x"] = 0,
|
||||
["formation_template"] = "",
|
||||
["speed_locked"] = true,
|
||||
}, -- end of [1]
|
||||
[2] =
|
||||
{
|
||||
["alt"] = 2000,
|
||||
["action"] = "Turning Point",
|
||||
["alt_type"] = "BARO",
|
||||
["speed"] = 82.222222222222,
|
||||
["task"] =
|
||||
{
|
||||
["id"] = "ComboTask",
|
||||
["params"] =
|
||||
{
|
||||
["tasks"] =
|
||||
{
|
||||
}, -- end of ["tasks"]
|
||||
}, -- end of ["params"]
|
||||
}, -- end of ["task"]
|
||||
["type"] = "Turning Point",
|
||||
["ETA"] = 157.20107538291,
|
||||
["ETA_locked"] = false,
|
||||
["y"] = 0,
|
||||
["x"] = 0,
|
||||
["formation_template"] = "",
|
||||
["speed_locked"] = true,
|
||||
}, -- end of [2]
|
||||
}, -- end of ["points"]
|
||||
}, -- end of ["route"]
|
||||
--["groupId"] = 1,
|
||||
["hidden"] = pg.hidden,
|
||||
["units"] =
|
||||
{
|
||||
[1] =
|
||||
{
|
||||
["alt"] = 2000,
|
||||
["alt_type"] = "BARO",
|
||||
["livery_id"] = "'camo' scheme",
|
||||
["skill"] = "High",
|
||||
["speed"] = 82.222222222222,
|
||||
["type"] = "MQ-9 Reaper",
|
||||
--["unitId"] = 1,
|
||||
--["psi"] = -3.129323330636,
|
||||
["y"] = 0,
|
||||
["x"] = 0,
|
||||
["payload"] =
|
||||
{
|
||||
["pylons"] =
|
||||
{
|
||||
}, -- end of ["pylons"]
|
||||
["fuel"] = 1300,
|
||||
["flare"] = 0,
|
||||
["chaff"] = 0,
|
||||
["gun"] = 100,
|
||||
}, -- end of ["payload"]
|
||||
["heading"] = 0.5,
|
||||
["callsign"] =
|
||||
{
|
||||
[1] = 1,
|
||||
[2] = 1,
|
||||
[3] = 1,
|
||||
["name"] = "Enfield11",
|
||||
}, -- end of ["callsign"]
|
||||
["onboard_num"] = "010",
|
||||
}, -- end of [1]
|
||||
}, -- end of ["units"]
|
||||
["y"] = 0,
|
||||
["x"] = 0,
|
||||
["communication"] = true,
|
||||
["start_time"] = 0,
|
||||
["frequency"] = 124,
|
||||
}
|
||||
|
||||
|
||||
local function protectedCall(...)
|
||||
local status, retval = pcall(...)
|
||||
if not status then
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
function handler:onEvent(event)
|
||||
protectedCall(pg.eventHandler, event)
|
||||
end
|
||||
|
||||
function pg.eventHandler (event)
|
||||
if (26 == event.id) then --this is when someone types into a mark
|
||||
local vec3 = mist.utils.makeVec3GL(event.pos)
|
||||
pg.fakeSam (vec3)
|
||||
end
|
||||
end
|
||||
|
||||
function handler:onEvent(event)
|
||||
protectedCall(pg.eventHandler, event)
|
||||
end
|
||||
|
||||
|
||||
do
|
||||
longRangeShots = missionCommands.addSubMenu("SAM")
|
||||
missionCommands.addCommand ("Generate pole", longRangeShots, pg.fakeSam)
|
||||
world.addEventHandler(handler)
|
||||
end
|
||||
|
||||
pg.notify("poleGen.lua",10)
|
||||
|
||||
Reference in New Issue
Block a user