Fixed logic_pickups not restarting on round change.
Fixed logic_pickups not restarting on round change. Fixed rare heal dart Lua error. Fixed zombie class unlock messages being wrong on some maps (moved messages to server side).
This commit is contained in:
parent
e9bd9ce748
commit
442f46a3f7
3 changed files with 31 additions and 12 deletions
|
@ -54,7 +54,8 @@ function ENT:Explode(vHitPos, vHitNormal, eHitEntity, vOldVelocity)
|
||||||
self:AddEFlags(EFL_SETTING_UP_BONES)
|
self:AddEFlags(EFL_SETTING_UP_BONES)
|
||||||
|
|
||||||
local followed = false
|
local followed = false
|
||||||
if eHitEntity:GetBoneCount() > 1 then
|
local bonecount = eHitEntity:GetBoneCount()
|
||||||
|
if bonecount and bonecount > 1 then
|
||||||
local boneindex = eHitEntity:NearestBone(vHitPos)
|
local boneindex = eHitEntity:NearestBone(vHitPos)
|
||||||
if boneindex and boneindex > 0 then
|
if boneindex and boneindex > 0 then
|
||||||
self:FollowBone(eHitEntity, boneindex)
|
self:FollowBone(eHitEntity, boneindex)
|
||||||
|
|
|
@ -1700,23 +1700,16 @@ net.Receive("zs_wavestart", function(length)
|
||||||
GAMEMODE:CenterNotify({killicon = "default"}, {font = "ZSHUDFont"}, " ", COLOR_RED, translate.Get("final_wave"), {killicon = "default"})
|
GAMEMODE:CenterNotify({killicon = "default"}, {font = "ZSHUDFont"}, " ", COLOR_RED, translate.Get("final_wave"), {killicon = "default"})
|
||||||
GAMEMODE:CenterNotify(translate.Get("final_wave_sub"))
|
GAMEMODE:CenterNotify(translate.Get("final_wave_sub"))
|
||||||
else
|
else
|
||||||
local UnlockedClasses = {}
|
|
||||||
for i, tab in ipairs(GAMEMODE.ZombieClasses) do
|
|
||||||
if tab.Wave <= wave and not tab.Unlocked then
|
|
||||||
tab.Unlocked = true
|
|
||||||
UnlockedClasses[#UnlockedClasses + 1] = translate.Get(tab.TranslationName)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
GAMEMODE:CenterNotify({killicon = "default"}, {font = "ZSHUDFont"}, " ", COLOR_RED, translate.Format("wave_x_has_begun", wave), {killicon = "default"})
|
GAMEMODE:CenterNotify({killicon = "default"}, {font = "ZSHUDFont"}, " ", COLOR_RED, translate.Format("wave_x_has_begun", wave), {killicon = "default"})
|
||||||
if #UnlockedClasses > 0 then
|
|
||||||
GAMEMODE:CenterNotify(COLOR_GREEN, translate.Format("x_unlocked", string.AndSeparate(UnlockedClasses)))
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
surface_PlaySound("ambient/creatures/town_zombie_call1.wav")
|
surface_PlaySound("ambient/creatures/town_zombie_call1.wav")
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
net.Receive("zs_classunlock", function(length)
|
||||||
|
GAMEMODE:CenterNotify(COLOR_GREEN, net.ReadString())
|
||||||
|
end)
|
||||||
|
|
||||||
net.Receive("zs_waveend", function(length)
|
net.Receive("zs_waveend", function(length)
|
||||||
local wave = net.ReadInt(16)
|
local wave = net.ReadInt(16)
|
||||||
local time = net.ReadFloat()
|
local time = net.ReadFloat()
|
||||||
|
|
|
@ -377,6 +377,7 @@ function GM:AddNetworkStrings()
|
||||||
util.AddNetworkString("zs_centernotify")
|
util.AddNetworkString("zs_centernotify")
|
||||||
util.AddNetworkString("zs_topnotify")
|
util.AddNetworkString("zs_topnotify")
|
||||||
util.AddNetworkString("zs_zvols")
|
util.AddNetworkString("zs_zvols")
|
||||||
|
util.AddNetworkString("zs_classunlock")
|
||||||
|
|
||||||
util.AddNetworkString("zs_playerredeemed")
|
util.AddNetworkString("zs_playerredeemed")
|
||||||
util.AddNetworkString("zs_dohulls")
|
util.AddNetworkString("zs_dohulls")
|
||||||
|
@ -1231,6 +1232,16 @@ function GM:RestartLua()
|
||||||
self.LastBossZombieSpawned = nil
|
self.LastBossZombieSpawned = nil
|
||||||
self.UseSigils = nil
|
self.UseSigils = nil
|
||||||
|
|
||||||
|
-- logic_pickups
|
||||||
|
self.MaxWeaponPickups = nil
|
||||||
|
self.MaxAmmoPickups = nil
|
||||||
|
self.MaxFlashlightPickups = nil
|
||||||
|
self.WeaponRequiredForAmmo = nil
|
||||||
|
for _, pl in pairs(player.GetAll()) do
|
||||||
|
pl.AmmoPickups = nil
|
||||||
|
pl.WeaponPickups = nil
|
||||||
|
end
|
||||||
|
|
||||||
self.OverrideEndSlomo = nil
|
self.OverrideEndSlomo = nil
|
||||||
if type(GetGlobalBool("endcamera", 1)) ~= "number" then
|
if type(GetGlobalBool("endcamera", 1)) ~= "number" then
|
||||||
SetGlobalBool("endcamera", nil)
|
SetGlobalBool("endcamera", nil)
|
||||||
|
@ -3523,6 +3534,7 @@ end
|
||||||
|
|
||||||
function GM:SetWave(wave)
|
function GM:SetWave(wave)
|
||||||
local previouslylocked = {}
|
local previouslylocked = {}
|
||||||
|
local UnlockedClasses = {}
|
||||||
for i, classtab in ipairs(GAMEMODE.ZombieClasses) do
|
for i, classtab in ipairs(GAMEMODE.ZombieClasses) do
|
||||||
if not gamemode.Call("IsClassUnlocked", classid) then
|
if not gamemode.Call("IsClassUnlocked", classid) then
|
||||||
previouslylocked[i] = true
|
previouslylocked[i] = true
|
||||||
|
@ -3533,6 +3545,7 @@ function GM:SetWave(wave)
|
||||||
|
|
||||||
for classid in pairs(previouslylocked) do
|
for classid in pairs(previouslylocked) do
|
||||||
if gamemode.Call("IsClassUnlocked", classid) then
|
if gamemode.Call("IsClassUnlocked", classid) then
|
||||||
|
table.insert(UnlockedClasses, classid)
|
||||||
for _, ent in pairs(ents.FindByClass("logic_classunlock")) do
|
for _, ent in pairs(ents.FindByClass("logic_classunlock")) do
|
||||||
local classname = GAMEMODE.ZombieClasses[classid].Name
|
local classname = GAMEMODE.ZombieClasses[classid].Name
|
||||||
if ent.Class == string.lower(classname) then
|
if ent.Class == string.lower(classname) then
|
||||||
|
@ -3541,6 +3554,18 @@ function GM:SetWave(wave)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if #UnlockedClasses > 0 then
|
||||||
|
for _, pl in pairs(player.GetAll()) do
|
||||||
|
local classnames = {}
|
||||||
|
for __, classid in pairs(UnlockedClasses) do
|
||||||
|
table.insert(classnames, translate.ClientGet(pl, self.ZombieClasses[classid].TranslationName))
|
||||||
|
end
|
||||||
|
net.Start("zs_classunlock")
|
||||||
|
net.WriteString(string.AndSeparate(classnames))
|
||||||
|
net.Send(pl)
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
GM.NextEscapeDamage = 0
|
GM.NextEscapeDamage = 0
|
||||||
|
|
Loading…
Reference in a new issue