72 lines
2.5 KiB
Lua
72 lines
2.5 KiB
Lua
|
---@class BP_TrackPlayer_C:BP_TriggerMechanismBase_C
|
||
|
---@field P_TrackPlayer UParticleSystemComponent
|
||
|
---@field CG019_NewCity_Device UStaticMeshComponent
|
||
|
---@field TrackWidgetClass UClass
|
||
|
--Edit Below--
|
||
|
---@type BP_TrackPlayer_C
|
||
|
|
||
|
local MechanismBase = require('Script.Blueprint.MechanismActor.BP_TriggerMechanismBase')
|
||
|
|
||
|
local BP_TrackPlayer = setmetatable(
|
||
|
{
|
||
|
TrackPlayers = {};
|
||
|
TrackActors = {};
|
||
|
},
|
||
|
{
|
||
|
__index = MechanismBase,
|
||
|
__metatable = MechanismBase
|
||
|
}
|
||
|
);
|
||
|
|
||
|
function BP_TrackPlayer:ReceiveBeginPlay()
|
||
|
self.SuperClass.ReceiveBeginPlay(self);
|
||
|
MechanismBase.MechanismBeginPlay(self)
|
||
|
self:SetMechanismType(MechanismConfig.TriggerMechanismType.TrackPlayer)
|
||
|
if UGCGameSystem.IsServer() then
|
||
|
UGCLogSystem.Log("[BP_TrackPlayer_ReceiveBeginPlay] 1")
|
||
|
local AllTrackWidget = ScriptGameplayStatics.GetActorsOfClass(self, self.TrackWidgetClass)
|
||
|
for i = 1 + #AllTrackWidget, GlobalConfigs.GameModeSetting.TeamNeedPlayerNum do
|
||
|
self.TrackActors[#self.TrackActors + 1] = UGCGameSystem.SpawnActor(self, self.TrackWidgetClass, VectorHelper.VectorZero(), VectorHelper.RotZero(), VectorHelper.ScaleOne(), self)
|
||
|
UGCLogSystem.Log("[BP_TrackPlayer_ReceiveBeginPlay] 2")
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|
||
|
function BP_TrackPlayer:ReceiveEndPlay()
|
||
|
self:MechanismEndPlay()
|
||
|
self.SuperClass.ReceiveEndPlay(self);
|
||
|
end
|
||
|
|
||
|
function BP_TrackPlayer:Trigger(InTriggeredPlayer, InTriggerDevice, InEnergyValue)
|
||
|
MechanismBase.Trigger(self, InTriggeredPlayer, InTriggerDevice, InEnergyValue)
|
||
|
|
||
|
self.TrackPlayers = UGCTeamSystem.GetOtherTeamPlayerKeys(UGCPlayerStateSystem.GetTeamID(InTriggeredPlayer))
|
||
|
for i = 1, #self.TrackPlayers do
|
||
|
if self.TrackActors[i] then
|
||
|
self.TrackActors[i]:SetTrackPlayerKey(self.TrackPlayers[i])
|
||
|
else
|
||
|
UGCLogSystem.LogError("[BP_TrackPlayer_Trigger] TargetActors 数量不足 #TrackPlayers:%s", (#self.TrackPlayers))
|
||
|
break
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|
||
|
function BP_TrackPlayer:CloseMechanism()
|
||
|
MechanismBase.CloseMechanism(self)
|
||
|
for i, TrackActor in pairs(self.TrackActors) do
|
||
|
TrackActor:SetTrackPlayerKey(-1)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
function BP_TrackPlayer:EnableClientTriggerEffects()
|
||
|
MechanismBase.EnableClientTriggerEffects(self)
|
||
|
self.P_TrackPlayer:SetActive(true, true)
|
||
|
|
||
|
end
|
||
|
|
||
|
function BP_TrackPlayer:DisableClientTriggerEffects()
|
||
|
MechanismBase.DisableClientTriggerEffects(self)
|
||
|
self.P_TrackPlayer:SetActive(false, false)
|
||
|
end
|
||
|
|
||
|
return BP_TrackPlayer;
|