From 2ce1057d71eb286bdbb83f6acd4e76ef851e3ae9 Mon Sep 17 00:00:00 2001 From: FlightControl_Master Date: Tue, 12 Dec 2017 14:09:59 +0100 Subject: [PATCH] Trying to find the errors. --- Moose Development/Moose/Core/Database.lua | 31 ++++++++++++++++++++--- 1 file changed, 28 insertions(+), 3 deletions(-) diff --git a/Moose Development/Moose/Core/Database.lua b/Moose Development/Moose/Core/Database.lua index 0f415bbbe..fe078f52b 100644 --- a/Moose Development/Moose/Core/Database.lua +++ b/Moose Development/Moose/Core/Database.lua @@ -97,7 +97,8 @@ function DATABASE:New() self:HandleEvent( EVENTS.DeleteCargo ) -- Follow alive players and clients - self:HandleEvent( EVENTS.PlayerEnterUnit, self._EventOnPlayerEnterUnit ) + --self:HandleEvent( EVENTS.PlayerEnterUnit, self._EventOnPlayerEnterUnit ) -- This is not working anymore! + self:HandleEvent( EVENTS.Birth, self._EventBirth ) self:HandleEvent( EVENTS.PlayerLeaveUnit, self._EventOnPlayerLeaveUnit ) self:_RegisterTemplates() @@ -137,8 +138,8 @@ function DATABASE:New() end end - self:E( "Scheduling" ) - PlayerCheckSchedule = SCHEDULER:New( nil, CheckPlayers, { self }, 1, 1 ) + --self:E( "Scheduling" ) + --PlayerCheckSchedule = SCHEDULER:New( nil, CheckPlayers, { self }, 1, 1 ) return self end @@ -778,6 +779,29 @@ function DATABASE:_EventOnPlayerEnterUnit( Event ) end end +--- Handles the Birth event to update the active players table. +-- @param #DATABASE self +-- @param Core.Event#EVENTDATA Event +function DATABASE:_EventBirth( Event ) + self:F2( { Event } ) + + if Event.IniUnit then + if Event.IniObjectCategory == 1 then + self:AddUnit( Event.IniDCSUnitName ) + self:AddGroup( Event.IniDCSGroupName ) + local PlayerName = Event.IniUnit:GetPlayerName() + if PlayerName ~= "" then + self:E( { "Player Joined:", PlayerName } ) + if not self.PLAYERS[PlayerName] then + self:AddPlayer( Event.IniUnitName, PlayerName ) + end + local Settings = SETTINGS:Set( PlayerName ) + Settings:SetPlayerMenu( Event.IniUnit ) + end + end + end +end + --- Handles the OnPlayerLeaveUnit event to clean the active players table. -- @param #DATABASE self @@ -789,6 +813,7 @@ function DATABASE:_EventOnPlayerLeaveUnit( Event ) if Event.IniObjectCategory == 1 then local PlayerName = Event.IniUnit:GetPlayerName() if self.PLAYERS[PlayerName] then + self:E( { "Player Left:", PlayerName } ) local Settings = SETTINGS:Set( PlayerName ) --Settings:RemovePlayerMenu( Event.IniUnit ) self:DeletePlayer( Event.IniUnit, PlayerName )