mirror of
https://github.com/FlightControl-Master/MOOSE.git
synced 2025-10-29 16:58:06 +00:00
Added Range 1.0.3
Just copied from other branch.
This commit is contained in:
parent
e094c8133a
commit
ed0c5b2264
@ -227,7 +227,7 @@ RANGE.id="RANGE | "
|
|||||||
|
|
||||||
--- Range script version.
|
--- Range script version.
|
||||||
-- @field #number version
|
-- @field #number version
|
||||||
RANGE.version="1.0.1"
|
RANGE.version="1.0.3"
|
||||||
|
|
||||||
--TODO list
|
--TODO list
|
||||||
--TODO: Add statics for strafe pits.
|
--TODO: Add statics for strafe pits.
|
||||||
@ -1390,6 +1390,9 @@ function RANGE:_CheckInZone(_unitName)
|
|||||||
|
|
||||||
else
|
else
|
||||||
|
|
||||||
|
-- Get current ammo.
|
||||||
|
local _ammo=self:_GetAmmo(_unitName)
|
||||||
|
|
||||||
-- Result.
|
-- Result.
|
||||||
local _result = self.strafeStatus[_unitID]
|
local _result = self.strafeStatus[_unitID]
|
||||||
|
|
||||||
@ -1403,9 +1406,19 @@ function RANGE:_CheckInZone(_unitName)
|
|||||||
else
|
else
|
||||||
_result.text = "POOR PASS"
|
_result.text = "POOR PASS"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local shots=_result.ammo-_ammo
|
||||||
|
local accur=0
|
||||||
|
if shots>0 then
|
||||||
|
accur=_result.hits/shots*100
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
-- Message text.
|
-- Message text.
|
||||||
local _text=string.format("%s, %s with %d hits on target %s.", self:_myname(_unitName), _result.text, _result.hits, _result.zone.name)
|
local _text=string.format("%s, %s with %d hits on target %s.", self:_myname(_unitName), _result.text, _result.hits, _result.zone.name)
|
||||||
|
if shots and accur then
|
||||||
|
_text=_text..string.format("\nTotal rounds fired %d. Accuracy %.1f %%.", shots, accur)
|
||||||
|
end
|
||||||
|
|
||||||
-- Send message.
|
-- Send message.
|
||||||
self:_DisplayMessageToGroup(_unit, _text)
|
self:_DisplayMessageToGroup(_unit, _text)
|
||||||
@ -1446,9 +1459,12 @@ function RANGE:_CheckInZone(_unitName)
|
|||||||
|
|
||||||
-- Player is inside zone.
|
-- Player is inside zone.
|
||||||
if unitinzone then
|
if unitinzone then
|
||||||
|
|
||||||
|
-- Get ammo at the beginning of the run.
|
||||||
|
local _ammo=self:_GetAmmo(_unitName)
|
||||||
|
|
||||||
-- Init strafe status for this player.
|
-- Init strafe status for this player.
|
||||||
self.strafeStatus[_unitID] = {hits = 0, zone = _targetZone, time = 1, pastfoulline=false }
|
self.strafeStatus[_unitID] = {hits = 0, zone = _targetZone, time = 1, ammo=_ammo, pastfoulline=false }
|
||||||
|
|
||||||
-- Rolling in!
|
-- Rolling in!
|
||||||
local _msg=string.format("%s, rolling in on strafe pit %s.", self:_myname(_unitName), _targetZone.name)
|
local _msg=string.format("%s, rolling in on strafe pit %s.", self:_myname(_unitName), _targetZone.name)
|
||||||
@ -1550,6 +1566,52 @@ end
|
|||||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||||
-- Helper Functions
|
-- Helper Functions
|
||||||
|
|
||||||
|
--- Get the number of shells a unit currently has.
|
||||||
|
-- @param #RANGE self
|
||||||
|
-- @param #string unitname Name of the player unit.
|
||||||
|
-- @return Number of shells left
|
||||||
|
function RANGE:_GetAmmo(unitname)
|
||||||
|
self:F(unitname)
|
||||||
|
|
||||||
|
-- Init counter.
|
||||||
|
local ammo=0
|
||||||
|
|
||||||
|
local unit, playername = self:_GetPlayerUnitAndName(unitname)
|
||||||
|
|
||||||
|
if unit and playername then
|
||||||
|
|
||||||
|
local has_ammo=false
|
||||||
|
|
||||||
|
local ammotable=unit:GetAmmo()
|
||||||
|
self:T2({ammotable=ammotable})
|
||||||
|
|
||||||
|
if ammotable ~= nil then
|
||||||
|
|
||||||
|
local weapons=#ammotable
|
||||||
|
self:T2(RANGE.id..string.format("Number of weapons %d.", weapons))
|
||||||
|
|
||||||
|
for w=1,weapons do
|
||||||
|
|
||||||
|
local Nammo=ammotable[w]["count"]
|
||||||
|
local Tammo=ammotable[w]["desc"]["typeName"]
|
||||||
|
|
||||||
|
-- We are specifically looking for shells here.
|
||||||
|
if string.match(Tammo, "shell") then
|
||||||
|
|
||||||
|
-- Add up all shells
|
||||||
|
ammo=ammo+Nammo
|
||||||
|
|
||||||
|
local text=string.format("Player %s has %d rounds ammo of type %s", playername, Nammo, Tammo)
|
||||||
|
self:T(RANGE.id..text)
|
||||||
|
MESSAGE:New(text, 10):ToAllIf(self.Debug)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return ammo
|
||||||
|
end
|
||||||
|
|
||||||
--- Mark targets on F10 map.
|
--- Mark targets on F10 map.
|
||||||
-- @param #RANGE self
|
-- @param #RANGE self
|
||||||
-- @param #string _unitName Name of the player unit.
|
-- @param #string _unitName Name of the player unit.
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user