mirror of
https://github.com/spencershepard/RotorOps.git
synced 2025-11-10 15:45:30 +00:00
fix drone and player fatcow perks
This commit is contained in:
parent
7b6e59cf87
commit
1298cd2eb9
@ -15,7 +15,7 @@
|
|||||||
|
|
||||||
|
|
||||||
RotorOpsPerks = {}
|
RotorOpsPerks = {}
|
||||||
RotorOpsPerks.version = "1.5.4"
|
RotorOpsPerks.version = "1.5.6"
|
||||||
env.warning('ROTOROPS PERKS STARTED: '..RotorOpsPerks.version)
|
env.warning('ROTOROPS PERKS STARTED: '..RotorOpsPerks.version)
|
||||||
trigger.action.outText('ROTOROPS PERKS STARTED: '..RotorOpsPerks.version, 10)
|
trigger.action.outText('ROTOROPS PERKS STARTED: '..RotorOpsPerks.version, 10)
|
||||||
RotorOpsPerks.perks = {}
|
RotorOpsPerks.perks = {}
|
||||||
@ -252,21 +252,16 @@ function RotorOpsPerks.spawnJtacDrone(dest_point, country, laser_code)
|
|||||||
end
|
end
|
||||||
trigger.action.outText('JTAC DRONE IS ON STATION!', 10)
|
trigger.action.outText('JTAC DRONE IS ON STATION!', 10)
|
||||||
|
|
||||||
SetInvisible = {
|
|
||||||
id = 'SetInvisible',
|
|
||||||
params = {
|
|
||||||
value = true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
--set a timer for one minute
|
--set a timer for one minute
|
||||||
timer.scheduleFunction(function()
|
timer.scheduleFunction(function()
|
||||||
Group.getByName(new_group.name):getController():setTask(SetInvisible)
|
local _code = table.remove(ctld.jtacGeneratedLaserCodes, 1)
|
||||||
|
log('Setting up JTAC DRONE ' .. new_group.name .. ' to lase targets on: '.._code)
|
||||||
Group.getByName(new_group.name):getController():setTask(orbit)
|
Group.getByName(new_group.name):getController():setTask(orbit)
|
||||||
Group.getByName(new_group.name):getController():setOption(AI.Option.Air.id.REACTION_ON_THREAT, AI.Option.Air.val.REACTION_ON_THREAT.NO_REACTION)
|
Group.getByName(new_group.name):getController():setOption(AI.Option.Air.id.REACTION_ON_THREAT, AI.Option.Air.val.REACTION_ON_THREAT.NO_REACTION)
|
||||||
local _code = table.remove(ctld.jtacGeneratedLaserCodes, 1)
|
ctld.JTACAutoLase(new_group.name, laser_code, true, "vehicle")
|
||||||
ctld.JTACAutoLase(new_group.name, table.remove(ctld.jtacGeneratedLaserCodes, 1), true, "vehicle")
|
|
||||||
table.insert(ctld.jtacGeneratedLaserCodes, _code)
|
table.insert(ctld.jtacGeneratedLaserCodes, _code)
|
||||||
|
|
||||||
end, nil, timer.getTime() + 60)
|
end, nil, timer.getTime() + 60)
|
||||||
|
|
||||||
end
|
end
|
||||||
@ -301,7 +296,6 @@ end
|
|||||||
|
|
||||||
RotorOpsPerks.perks.player_fatcow["action_condition"] = function(args)
|
RotorOpsPerks.perks.player_fatcow["action_condition"] = function(args)
|
||||||
local player_unit = Group.getByName(args.player_group_name):getUnit(1)
|
local player_unit = Group.getByName(args.player_group_name):getUnit(1)
|
||||||
local agl_altitude = player_unit:getPosition().p.y - land.getHeight(player_unit:getPosition().p)
|
|
||||||
|
|
||||||
if RotorOpsPerks.perks.player_fatcow.active[args.player_group_name] then
|
if RotorOpsPerks.perks.player_fatcow.active[args.player_group_name] then
|
||||||
return {msg="FARP already deployed at your position!", valid=false}
|
return {msg="FARP already deployed at your position!", valid=false}
|
||||||
@ -311,8 +305,8 @@ RotorOpsPerks.perks.player_fatcow["action_condition"] = function(args)
|
|||||||
return {msg="No FARP resources available!", valid=false}
|
return {msg="No FARP resources available!", valid=false}
|
||||||
end
|
end
|
||||||
|
|
||||||
if agl_altitude > 100 then
|
if player_unit:inAir() then
|
||||||
return {msg="You must be on the ground! "..agl_altitude.." AGL", valid=false}
|
return {msg="You must be on the ground!", valid=false}
|
||||||
end
|
end
|
||||||
|
|
||||||
--rearming/refueling doesn't work if enemies are nearby (within 1.1nm)
|
--rearming/refueling doesn't work if enemies are nearby (within 1.1nm)
|
||||||
@ -359,8 +353,7 @@ RotorOpsPerks.perks.player_fatcow["monitor_player"] = function(args)
|
|||||||
if Group.getByName(args.player_group_name) then
|
if Group.getByName(args.player_group_name) then
|
||||||
|
|
||||||
local player_unit = Group.getByName(args.player_group_name):getUnit(1)
|
local player_unit = Group.getByName(args.player_group_name):getUnit(1)
|
||||||
local agl_altitude = player_unit:getPosition().p.y - land.getHeight(player_unit:getPosition().p)
|
if player_unit:inAir() or not player_unit:isExist() then
|
||||||
if agl_altitude > 100 or not player_unit:isExist() then
|
|
||||||
despawn_farp = true
|
despawn_farp = true
|
||||||
log("Player is no longer on the ground, despawning FARP!")
|
log("Player is no longer on the ground, despawning FARP!")
|
||||||
end
|
end
|
||||||
@ -649,11 +642,11 @@ function RotorOpsPerks.addRadioMenuForGroup(groupName)
|
|||||||
if perk.enabled and avail_for_side and avail_for_group then
|
if perk.enabled and avail_for_side and avail_for_group then
|
||||||
if perk.at_mark then
|
if perk.at_mark then
|
||||||
--addPerkCommand(groupId, groupName, perk, menu_root, {target='mark'})
|
--addPerkCommand(groupId, groupName, perk, menu_root, {target='mark'})
|
||||||
missionCommands.addCommandForGroup(groupId, perk.display_name .. ' at mark (' .. perk.perk_name ..')', menu_root , RotorOpsPerks.requestPerk, {player_group_name=groupName, perk_name=perk.perk_name, target='mark'})
|
missionCommands.addCommandForGroup(groupId, perk.cost .. ':' .. perk.display_name .. ' at mark (' .. perk.perk_name ..')', menu_root , RotorOpsPerks.requestPerk, {player_group_name=groupName, perk_name=perk.perk_name, target='mark'})
|
||||||
end
|
end
|
||||||
if perk.at_position then
|
if perk.at_position then
|
||||||
--addPerkCommand(groupId, groupName, perk, menu_root, {target='position'})
|
--addPerkCommand(groupId, groupName, perk, menu_root, {target='position'})
|
||||||
missionCommands.addCommandForGroup(groupId, perk.display_name .. ' on me', menu_root , RotorOpsPerks.requestPerk, {player_group_name=groupName, perk_name=perk.perk_name, target='position'})
|
missionCommands.addCommandForGroup(groupId, perk.cost .. ':' .. perk.display_name .. ' on me', menu_root , RotorOpsPerks.requestPerk, {player_group_name=groupName, perk_name=perk.perk_name, target='position'})
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -1042,6 +1035,8 @@ function RotorOpsPerks.requestPerk(args)
|
|||||||
perk.last_used = timer.getTime()
|
perk.last_used = timer.getTime()
|
||||||
perk.used = perk.used or 0 + 1
|
perk.used = perk.used or 0 + 1
|
||||||
|
|
||||||
|
log('Player ' .. args.player_unit_name .. ' requested ' .. args.perk_name .. ' at ' .. args.target)
|
||||||
|
|
||||||
--increment player used for perk type, and initialize if it doesn't exist.
|
--increment player used for perk type, and initialize if it doesn't exist.
|
||||||
local perk_user_per_player = 1/(#players or 1)
|
local perk_user_per_player = 1/(#players or 1)
|
||||||
--round perk_user_per_player to one decimal place
|
--round perk_user_per_player to one decimal place
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user