|
|
@ -19,14 +19,12 @@ var array<float> zedSpawnTimes; |
|
|
|
var int repCurrentTotalZeds, repGameInfo_MaxMonsters; |
|
|
|
var int repCurrentTotalZeds, repGameInfo_MaxMonsters; |
|
|
|
var float repCurrentSpawnRate; |
|
|
|
var float repCurrentSpawnRate; |
|
|
|
|
|
|
|
|
|
|
|
replication |
|
|
|
replication { |
|
|
|
{ |
|
|
|
reliable if (role == ROLE_Authority) |
|
|
|
reliable if(Role == ROLE_Authority) |
|
|
|
|
|
|
|
repCurrentTotalZeds, repGameInfo_MaxMonsters, repCurrentSpawnRate; |
|
|
|
repCurrentTotalZeds, repGameInfo_MaxMonsters, repCurrentSpawnRate; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
function PostBeginPlay() |
|
|
|
function PostBeginPlay() { |
|
|
|
{ |
|
|
|
|
|
|
|
if (updateInterval <= 0) { |
|
|
|
if (updateInterval <= 0) { |
|
|
|
updateInterval = 0.25; |
|
|
|
updateInterval = 0.25; |
|
|
|
} |
|
|
|
} |
|
|
@ -36,18 +34,17 @@ function PostBeginPlay() |
|
|
|
SetTimer(updateInterval, true); |
|
|
|
SetTimer(updateInterval, true); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
function bool CheckReplacement(Actor other, out byte bSuperRelevant) |
|
|
|
function bool CheckReplacement(Actor other, out byte bSuperRelevant) { |
|
|
|
{ |
|
|
|
|
|
|
|
if (Monster(other) != none) { |
|
|
|
if (Monster(other) != none) { |
|
|
|
zedSpawnTimes[zedSpawnTimes.length] = level.timeSeconds; |
|
|
|
zedSpawnTimes[zedSpawnTimes.length] = level.timeSeconds; |
|
|
|
} |
|
|
|
} |
|
|
|
return true; |
|
|
|
return true; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
simulated function Tick(float delta) |
|
|
|
simulated function Tick(float delta) { |
|
|
|
{ |
|
|
|
|
|
|
|
local ReportInteraction myInteraction; |
|
|
|
local ReportInteraction myInteraction; |
|
|
|
local Player localPlayer; |
|
|
|
local Player localPlayer; |
|
|
|
|
|
|
|
|
|
|
|
if (role == Role_AUTHORITY) return; |
|
|
|
if (role == Role_AUTHORITY) return; |
|
|
|
if (interactionAdded) return; |
|
|
|
if (interactionAdded) return; |
|
|
|
localPlayer = level.GetLocalPlayerController().player; |
|
|
|
localPlayer = level.GetLocalPlayerController().player; |
|
|
@ -55,25 +52,22 @@ simulated function Tick(float delta) |
|
|
|
|
|
|
|
|
|
|
|
myInteraction = ReportInteraction(localPlayer.interactionMaster |
|
|
|
myInteraction = ReportInteraction(localPlayer.interactionMaster |
|
|
|
.AddInteraction("KFZedsReport.ReportInteraction", localPlayer)); |
|
|
|
.AddInteraction("KFZedsReport.ReportInteraction", localPlayer)); |
|
|
|
if (myInteraction != none) |
|
|
|
if (myInteraction != none) { |
|
|
|
{ |
|
|
|
|
|
|
|
myInteraction.reportMutator = self; |
|
|
|
myInteraction.reportMutator = self; |
|
|
|
interactionAdded = true; |
|
|
|
interactionAdded = true; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
function Timer() |
|
|
|
function Timer() { |
|
|
|
{ |
|
|
|
|
|
|
|
local int i; |
|
|
|
local int i; |
|
|
|
local float cutOffTime; |
|
|
|
local float cutOffTime; |
|
|
|
local Monster nextMonster; |
|
|
|
local Monster nextMonster; |
|
|
|
|
|
|
|
|
|
|
|
cutOffTime = level.timeSeconds - smoothingInterval; |
|
|
|
cutOffTime = level.timeSeconds - smoothingInterval; |
|
|
|
while (i < zedSpawnTimes.length) |
|
|
|
while (i < zedSpawnTimes.length) { |
|
|
|
{ |
|
|
|
|
|
|
|
if (zedSpawnTimes[i] < cutOffTime) { |
|
|
|
if (zedSpawnTimes[i] < cutOffTime) { |
|
|
|
zedSpawnTimes.Remove(i, 1); |
|
|
|
zedSpawnTimes.Remove(i, 1); |
|
|
|
} |
|
|
|
} else { |
|
|
|
else { |
|
|
|
|
|
|
|
i += 1; |
|
|
|
i += 1; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
@ -81,16 +75,14 @@ function Timer() |
|
|
|
repGameInfo_MaxMonsters = KFGameType(level.game).maxMonsters; |
|
|
|
repGameInfo_MaxMonsters = KFGameType(level.game).maxMonsters; |
|
|
|
repCurrentSpawnRate = zedSpawnTimes.length / smoothingInterval; |
|
|
|
repCurrentSpawnRate = zedSpawnTimes.length / smoothingInterval; |
|
|
|
repCurrentTotalZeds = 0; |
|
|
|
repCurrentTotalZeds = 0; |
|
|
|
foreach level.DynamicActors(class'Monster', nextMonster) |
|
|
|
foreach level.DynamicActors(class'Monster', nextMonster) { |
|
|
|
{ |
|
|
|
|
|
|
|
if (nextMonster.health > 0) { |
|
|
|
if (nextMonster.health > 0) { |
|
|
|
repCurrentTotalZeds += 1; |
|
|
|
repCurrentTotalZeds += 1; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
defaultproperties |
|
|
|
defaultproperties { |
|
|
|
{ |
|
|
|
|
|
|
|
// Mutator description |
|
|
|
// Mutator description |
|
|
|
GroupName = "Test mutatros" |
|
|
|
GroupName = "Test mutatros" |
|
|
|
FriendlyName = "Zed report mutator" |
|
|
|
FriendlyName = "Zed report mutator" |