44 lines
1.6 KiB
Lua
44 lines
1.6 KiB
Lua
local EventAction_PlayerDeadUpdateInfo = {
|
||
DeadPlayerKey = -1;
|
||
KillerPlayerKey = -1;
|
||
WeaponID = -1;
|
||
}
|
||
-- 触发器激活时,将执行Action的Execute
|
||
function EventAction_PlayerDeadUpdateInfo:Execute(...)
|
||
if not UGCGameSystem.IsServer() then return end
|
||
|
||
-- 判断是否在游戏
|
||
if UGCGameSystem.GameState.GameStateType ~= CustomEnum.EGameState.Playing and UGCGameSystem.GameState.GameStateType ~= CustomEnum.EGameState.Waiting then
|
||
return true
|
||
end
|
||
|
||
-- 判断死亡玩家是否正常
|
||
if self.DeadPlayerKey < 0 then return end
|
||
|
||
-- 击杀队友不计算得分
|
||
if UGCPlayerStateSystem.GetTeamID(self.DeadPlayerKey) == UGCPlayerStateSystem.GetTeamID(self.KillerPlayerKey) then
|
||
return true
|
||
end
|
||
|
||
if self.DeadPlayerKey ~= self.KillerPlayerKey and self.KillerPlayerKey > 0 then
|
||
-- 增加击杀得分
|
||
PlayerScoreSystem.AddPlayerScoreData(self.KillerPlayerKey, PlayerScoreSystem.Config.EScoreType.Kills, 1)
|
||
-- 额外得分逻辑
|
||
self:OtherKillSucceedLogic()
|
||
end
|
||
|
||
-- 记录死亡数
|
||
PlayerScoreSystem.AddPlayerScoreData(self.DeadPlayerKey, PlayerScoreSystem.Config.EScoreType.Deaths, 1)
|
||
|
||
return true
|
||
end
|
||
|
||
--- 额外得分逻辑
|
||
function EventAction_PlayerDeadUpdateInfo:OtherKillSucceedLogic()
|
||
-- 增加队伍得分
|
||
-- UGCGameSystem.GameState:AddTeamScore(UGCPlayerStateSystem.GetTeamID(self.KillerPlayerKey), 1)
|
||
-- 发送击杀增加得分
|
||
UGCSendRPCSystem.RPCEvent(self.KillerPlayerKey, EventEnum.AddTip, TipConfig.TipType.AddScore, PlayerScoreSystem.Config.EScoreType.Kills)
|
||
end
|
||
|
||
return EventAction_PlayerDeadUpdateInfo |