mirror of
https://github.com/FlightControl-Master/MOOSE.git
synced 2025-10-29 16:58:06 +00:00
Client
This commit is contained in:
parent
7b7605e501
commit
417af6a93c
@ -428,18 +428,27 @@ function AI_CARGO_APC:onafterDeploy( APC, From, Event, To, Coordinate, Speed, He
|
|||||||
|
|
||||||
self.RouteDeploy = true
|
self.RouteDeploy = true
|
||||||
|
|
||||||
local _speed=Speed or APC:GetSpeedMax()*0.5
|
-- Set speed in km/h.
|
||||||
|
local speedmax=APC:GetSpeedMax()
|
||||||
|
local _speed=Speed or speedmax*0.5
|
||||||
|
_speed=math.min(_speed, speedmax)
|
||||||
|
|
||||||
local Waypoints = APC:TaskGroundOnRoad( Coordinate, _speed, "Line abreast", true )
|
-- Route on road.
|
||||||
|
local Waypoints = APC:TaskGroundOnRoad(Coordinate, _speed, "Line abreast", true)
|
||||||
|
|
||||||
|
-- Task function
|
||||||
local TaskFunction = APC:TaskFunction( "AI_CARGO_APC._Deploy", self, Coordinate, DeployZone )
|
local TaskFunction = APC:TaskFunction( "AI_CARGO_APC._Deploy", self, Coordinate, DeployZone )
|
||||||
|
|
||||||
self:F({Waypoints = Waypoints})
|
-- Last waypoint
|
||||||
local Waypoint = Waypoints[#Waypoints]
|
local Waypoint = Waypoints[#Waypoints]
|
||||||
APC:SetTaskWaypoint( Waypoint, TaskFunction ) -- Set for the given Route at Waypoint 2 the TaskRouteToZone.
|
|
||||||
|
|
||||||
|
-- Set task function
|
||||||
|
APC:SetTaskWaypoint(Waypoint, TaskFunction) -- Set for the given Route at Waypoint 2 the TaskRouteToZone.
|
||||||
|
|
||||||
|
-- Route group
|
||||||
APC:Route( Waypoints, 1 ) -- Move after a random seconds to the Route. See the Route method for details.
|
APC:Route( Waypoints, 1 ) -- Move after a random seconds to the Route. See the Route method for details.
|
||||||
|
|
||||||
|
-- Call parent function.
|
||||||
self:GetParent( self, AI_CARGO_APC ).onafterDeploy( self, APC, From, Event, To, Coordinate, Speed, Height, DeployZone )
|
self:GetParent( self, AI_CARGO_APC ).onafterDeploy( self, APC, From, Event, To, Coordinate, Speed, Height, DeployZone )
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|||||||
@ -977,11 +977,11 @@ function DATABASE:_EventOnBirth( Event )
|
|||||||
Event.IniUnit = self:FindUnit( Event.IniDCSUnitName )
|
Event.IniUnit = self:FindUnit( Event.IniDCSUnitName )
|
||||||
Event.IniGroup = self:FindGroup( Event.IniDCSGroupName )
|
Event.IniGroup = self:FindGroup( Event.IniDCSGroupName )
|
||||||
|
|
||||||
-- TODO: create event ClientAlive
|
-- Client
|
||||||
local client=self.CLIENTS[Event.IniDCSUnitName] --Wrapper.Client#CLIENT
|
local client=self.CLIENTS[Event.IniDCSUnitName] --Wrapper.Client#CLIENT
|
||||||
|
|
||||||
if client then
|
if client then
|
||||||
|
-- TODO: create event ClientAlive
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Get player name.
|
-- Get player name.
|
||||||
@ -1018,8 +1018,6 @@ function DATABASE:_EventOnBirth( Event )
|
|||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
@ -1030,17 +1028,31 @@ function DATABASE:_EventOnDeadOrCrash( Event )
|
|||||||
self:F2( { Event } )
|
self:F2( { Event } )
|
||||||
|
|
||||||
if Event.IniDCSUnit then
|
if Event.IniDCSUnit then
|
||||||
|
|
||||||
|
local name=Event.IniDCSUnitName
|
||||||
|
|
||||||
if Event.IniObjectCategory == 3 then
|
if Event.IniObjectCategory == 3 then
|
||||||
if self.STATICS[Event.IniDCSUnitName] then
|
if self.STATICS[Event.IniDCSUnitName] then
|
||||||
self:DeleteStatic( Event.IniDCSUnitName )
|
self:DeleteStatic( Event.IniDCSUnitName )
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
if Event.IniObjectCategory == 1 then
|
if Event.IniObjectCategory == 1 then
|
||||||
|
|
||||||
|
-- Delete unit.
|
||||||
if self.UNITS[Event.IniDCSUnitName] then
|
if self.UNITS[Event.IniDCSUnitName] then
|
||||||
self:DeleteUnit( Event.IniDCSUnitName )
|
self:DeleteUnit(Event.IniDCSUnitName)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- Remove client players.
|
||||||
|
local client=self.CLIENTS[name] --Wrapper.Client#CLIENT
|
||||||
|
|
||||||
|
if client then
|
||||||
|
client:RemovePlayers()
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
self:AccountDestroys( Event )
|
self:AccountDestroys( Event )
|
||||||
@ -1055,15 +1067,31 @@ function DATABASE:_EventOnPlayerEnterUnit( Event )
|
|||||||
|
|
||||||
if Event.IniDCSUnit then
|
if Event.IniDCSUnit then
|
||||||
if Event.IniObjectCategory == 1 then
|
if Event.IniObjectCategory == 1 then
|
||||||
|
|
||||||
|
-- Add unit.
|
||||||
self:AddUnit( Event.IniDCSUnitName )
|
self:AddUnit( Event.IniDCSUnitName )
|
||||||
|
|
||||||
|
-- Ini unit.
|
||||||
Event.IniUnit = self:FindUnit( Event.IniDCSUnitName )
|
Event.IniUnit = self:FindUnit( Event.IniDCSUnitName )
|
||||||
|
|
||||||
|
-- Add group.
|
||||||
self:AddGroup( Event.IniDCSGroupName )
|
self:AddGroup( Event.IniDCSGroupName )
|
||||||
|
|
||||||
|
-- Get player unit.
|
||||||
local PlayerName = Event.IniDCSUnit:getPlayerName()
|
local PlayerName = Event.IniDCSUnit:getPlayerName()
|
||||||
|
|
||||||
|
if PlayerName then
|
||||||
|
|
||||||
if not self.PLAYERS[PlayerName] then
|
if not self.PLAYERS[PlayerName] then
|
||||||
self:AddPlayer( Event.IniDCSUnitName, PlayerName )
|
self:AddPlayer( Event.IniDCSUnitName, PlayerName )
|
||||||
end
|
end
|
||||||
|
|
||||||
local Settings = SETTINGS:Set( PlayerName )
|
local Settings = SETTINGS:Set( PlayerName )
|
||||||
Settings:SetPlayerMenu( Event.IniUnit )
|
Settings:SetPlayerMenu( Event.IniUnit )
|
||||||
|
|
||||||
|
else
|
||||||
|
self:E("ERROR: getPlayerName() returned nil for event PlayerEnterUnit")
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@ -207,6 +207,14 @@ function CLIENT:RemovePlayer(PlayerName)
|
|||||||
return self
|
return self
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--- Remove all players.
|
||||||
|
-- @param #CLIENT self
|
||||||
|
-- @return #CLIENT self
|
||||||
|
function CLIENT:RemovePlayers()
|
||||||
|
self.Players={}
|
||||||
|
return self
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
--- Show the briefing of a CLIENT.
|
--- Show the briefing of a CLIENT.
|
||||||
-- @param #CLIENT self
|
-- @param #CLIENT self
|
||||||
|
|||||||
@ -13,7 +13,7 @@
|
|||||||
--
|
--
|
||||||
-- ### Author: **FlightControl**
|
-- ### Author: **FlightControl**
|
||||||
--
|
--
|
||||||
-- ### Contributions:
|
-- ### Contributions: **funkyfranky**
|
||||||
--
|
--
|
||||||
-- ===
|
-- ===
|
||||||
--
|
--
|
||||||
@ -22,6 +22,8 @@
|
|||||||
|
|
||||||
|
|
||||||
--- @type UNIT
|
--- @type UNIT
|
||||||
|
-- @field #string ClassName Name of the class.
|
||||||
|
-- @field #string UnitName Name of the unit.
|
||||||
-- @extends Wrapper.Controllable#CONTROLLABLE
|
-- @extends Wrapper.Controllable#CONTROLLABLE
|
||||||
|
|
||||||
--- For each DCS Unit object alive within a running mission, a UNIT wrapper object (instance) will be created within the _@{DATABASE} object.
|
--- For each DCS Unit object alive within a running mission, a UNIT wrapper object (instance) will be created within the _@{DATABASE} object.
|
||||||
@ -87,6 +89,7 @@
|
|||||||
-- @field #UNIT UNIT
|
-- @field #UNIT UNIT
|
||||||
UNIT = {
|
UNIT = {
|
||||||
ClassName="UNIT",
|
ClassName="UNIT",
|
||||||
|
UnitName=nil,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -379,6 +382,32 @@ function UNIT:GetPlayerName()
|
|||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--- Checks is the unit is a *Player* or *Client* slot.
|
||||||
|
-- @param #UNIT self
|
||||||
|
-- @return #boolean If true, unit is a player or client aircraft
|
||||||
|
function UNIT:IsClient()
|
||||||
|
|
||||||
|
if _DATABASE.CLIENTS[self.UnitName] then
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
|
--- Get the CLIENT of the unit
|
||||||
|
-- @param #UNIT self
|
||||||
|
-- @return Wrapper.Client#CLIENT
|
||||||
|
function UNIT:GetClient()
|
||||||
|
|
||||||
|
local client=_DATABASE.CLIENTS[self.UnitName]
|
||||||
|
|
||||||
|
if client then
|
||||||
|
return client
|
||||||
|
end
|
||||||
|
|
||||||
|
return nil
|
||||||
|
end
|
||||||
|
|
||||||
--- Returns the unit's number in the group.
|
--- Returns the unit's number in the group.
|
||||||
-- The number is the same number the unit has in ME.
|
-- The number is the same number the unit has in ME.
|
||||||
-- It may not be changed during the mission.
|
-- It may not be changed during the mission.
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user