Skip to content

Commit d6b5241

Browse files
committed
ClientsideModel FIX
1 parent d17cb74 commit d6b5241

File tree

16 files changed

+160
-85
lines changed

16 files changed

+160
-85
lines changed

lua/entities/gmod_mus_clock_analog/cl_init.lua

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ function ENT:Think()
1313
--self.Arrows[i] = ents.CreateClientProp("models/metrostroi/81-717/reverser.mdl")
1414
--self.Arrows[i]:SetModel( model )
1515
self.Arrows[i] = ClientsideModel(model,RENDERGROUP_OPAQUE)
16+
if not IsValid(self.Arrows[i]) then break end
1617
self.Arrows[i]:SetPos(self:GetPos())
1718
self.Arrows[i]:SetAngles(self:GetAngles())
1819
self.Arrows[i]:SetParent(self)
@@ -23,13 +24,15 @@ function ENT:Think()
2324
self:EmitSound("mus/clock_click"..math.random(1,8)..".wav",65,math.random(95,105),0.5)
2425
self.OldSec = d.sec
2526
self.SecPull = RealTime()+0.05
26-
self.Arrows[1]:SetPoseParameter("position",(0.5+d.hour/24+d.min/1440)%1)
27-
self.Arrows[2]:SetPoseParameter("position",d.min/60+d.sec/3600)
27+
if IsValid(self.Arrows[1]) then self.Arrows[1]:SetPoseParameter("position",(0.5+d.hour/24+d.min/1440)%1) end
28+
if IsValid(self.Arrows[2]) then self.Arrows[2]:SetPoseParameter("position",d.min/60+d.sec/3600) end
2829
end
29-
if RealTime()-self.SecPull > 0 or d.sec < 30 then
30-
self.Arrows[3]:SetPoseParameter("position",d.sec/60)
31-
else
32-
self.Arrows[3]:SetPoseParameter("position",d.sec/60 +(d.sec-15)/60*0.002)
30+
if IsValid(self.Arrows[3]) then
31+
if RealTime()-self.SecPull > 0 or d.sec < 30 then
32+
self.Arrows[3]:SetPoseParameter("position",d.sec/60)
33+
else
34+
self.Arrows[3]:SetPoseParameter("position",d.sec/60 +(d.sec-15)/60*0.002)
35+
end
3336
end
3437

3538
--[[

lua/entities/gmod_subway_base/cl_init.lua

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -392,6 +392,7 @@ function ENT:SpawnCSEnt(k,override)
392392
local model = v.model
393393
if v.modelcallback then model = v.modelcallback(self) or v.model end
394394
local cent = ClientsideModel(model,RENDERGROUP_OPAQUE)
395+
if not IsValid(cent) then return false end
395396
cent.GetBodyColor = function()
396397
if not IsValid(self) then return Vector(1) end
397398
return self:GetBodyColor()
@@ -1346,6 +1347,7 @@ function ENT:Think()
13461347
for i,v in ipairs(self.LeftDoorPositions) do
13471348
if self:GetPackedBool("DoorLS"..i) and not IsValid(stucked[i]) then
13481349
local ent = ClientsideModel(table.Random(self.PassengerModels),RENDERGROUP_OPAQUE)
1350+
if not IsValid(ent) then break end
13491351
ent:SetPos(self:LocalToWorld(Vector(v.x,v.y,self:GetStandingArea().z)))
13501352
ent:SetAngles(self:LocalToWorldAngles(Angle(0,v.y < 0 and -90 or 90,0)))
13511353
ent:SetSkin(math.floor(ent:SkinCount()*math.random()))
@@ -1368,6 +1370,7 @@ function ENT:Think()
13681370
for i,v in ipairs(self.RightDoorPositions) do
13691371
if self:GetPackedBool("DoorRS"..i) and not IsValid(stucked[-i]) then
13701372
local ent = ClientsideModel(table.Random(self.PassengerModels),RENDERGROUP_OPAQUE)
1373+
if not IsValid(ent) then break end
13711374
ent:SetPos(self:LocalToWorld(Vector(v.x,v.y,self:GetStandingArea().z)))
13721375
ent:SetAngles(self:LocalToWorldAngles(Angle(0,v.y < 0 and -90 or 90,0)))
13731376
ent:SetSkin(math.floor(ent:SkinCount()*math.random()))
@@ -1403,6 +1406,7 @@ function ENT:Think()
14031406
--local ent = ents.CreateClientProp("models/metrostroi/81-717/reverser.mdl")
14041407
--ent:SetModel(table.Random(self.PassengerModels))
14051408
local ent = ClientsideModel(table.Random(self.PassengerModels),RENDERGROUP_OPAQUE)
1409+
if not IsValid(ent) then break end
14061410
ent:SetPos(self:LocalToWorld(pos))
14071411
ent:SetAngles(Angle(0,math.random(0,360),0))
14081412
--[[

lua/entities/gmod_track_clock_interval/cl_init.lua

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ function ENT:Think()
3030
-- ent:SetPos(self:LocalToWorld(v[1]))
3131
--end)
3232
self.Digits[k] = ClientsideModel(model, RENDERGROUP_OPAQUE)
33+
if not IsValid(self.Digits[k]) then break end
3334

3435
--if ent.Spawned then hook.Remove("MetrostroiBigLag",ent) end
3536
--ent.Spawned = true

lua/entities/gmod_track_clock_small/cl_init.lua

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ function ENT:Think()
5959
-- --ent.Spawned = true
6060
--end)
6161
self.Digits[k] = ClientsideModel(model,RENDERGROUP_OPAQUE)
62+
if not IsValid(self.Digits[k]) then break end
6263
self.Digits[k]:SetPos(self:LocalToWorld(v[1]))
6364
self.Digits[k]:SetAngles(self:GetAngles())
6465
self.Digits[k]:SetSkin(10)

lua/entities/gmod_track_clock_time/cl_init.lua

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ function ENT:Think()
3131
-- --ent.Spawned = true
3232
--end)
3333
self.Digits[k] = ClientsideModel(model,RENDERGROUP_OPAQUE)
34+
if not IsValid(self.Digits[k]) then break end
3435
self.Digits[k]:SetPos(self:LocalToWorld(v[1]))
3536
self.Digits[k]:SetAngles(self:GetAngles())
3637
self.Digits[k]:SetSkin(10)

lua/entities/gmod_track_horlift_signal/cl_init.lua

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,7 @@ function ENT:Think()
124124
-- --ent.Spawned = true
125125
--end)
126126
self.Models[k] = ClientsideModel(self.ModelNames[v[2]],RENDERGROUP_OPAQUE)
127+
if not IsValid(self.Models[k]) then break end
127128
self.Models[k]:SetPos(self:LocalToWorld(v[1]))
128129
self.Models[k]:SetAngles(self:LocalToWorldAngles(Angle(v[2]==5 and 90 or 0,0,0)))
129130
if k < 3 then

lua/entities/gmod_track_mus_elektronika7/cl_init.lua

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ function ENT:Think()
2323
-- --ent.Spawned = true
2424
--end)
2525
self.Digits[k] = ClientsideModel("models/mus/ussr_clock_model/num_"..(k == 1 and "no" or "").."zero.mdl",RENDERGROUP_OPAQUE)
26+
if not IsValid(self.Digits[k]) then break end
2627
self.Digits[k]:SetPos(self:LocalToWorld(v))
2728
self.Digits[k]:SetAngles(self:GetAngles())
2829
self.Digits[k]:SetSkin(10)

lua/entities/gmod_track_platform/cl_init.lua

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -238,6 +238,7 @@ function ENT:Think()
238238
-- --ent.Spawned = true
239239
--end)
240240
self.ClientModels[i] = ClientsideModel(self.Pool[i].model,RENDERGROUP_OPAQUE)
241+
if not IsValid(self.ClientModels[i]) then continue end
241242
self.ClientModels[i]:SetPos(self.Pool[i].pos)
242243
self.ClientModels[i]:SetAngles(self.Pool[i].ang)
243244
self.ClientModels[i]:SetSkin(math.floor(self.ClientModels[i]:SkinCount()*self.Pool[i].skin))
@@ -292,6 +293,7 @@ function ENT:Think()
292293
-- --ent.Spawned = true
293294
--end)
294295
local ent= ClientsideModel(self.Pool[i].model,RENDERGROUP_OPAQUE)
296+
if not IsValid(ent) then break end
295297
ent:SetPos(pos)
296298
ent:SetSkin(math.floor(ent:SkinCount()*self.Pool[i].skin))
297299
ent:SetModelScale(self.Pool[i].scale,0)

lua/entities/gmod_track_pui/cl_init.lua

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ function ENT:Think()
5959
-- --ent.Spawned = true
6060
--end)
6161
self.Digits[k] = ClientsideModel("models/metrostroi/mus_clock/pui_ind_"..v[2]..".mdl",RENDERGROUP_OPAQUE)
62+
if not IsValid(self.Digits[k]) then continue end
6263
self.Digits[k]:SetPos(self:LocalToWorld(v[1]))
6364
self.Digits[k]:SetAngles(self:GetAngles())
6465
self.Digits[k]:SetSkin(1)
@@ -80,11 +81,13 @@ function ENT:Think()
8081
-- --ent.Spawned = true
8182
--end)
8283
self.Digits[0] = ClientsideModel("models/metrostroi/mus_clock/pui_lamp.mdl",RENDERGROUP_OPAQUE)
83-
self.Digits[0]:SetPos(self:GetAttachment(self:LookupAttachment("lamp")).Pos)
84-
self.Digits[0]:SetAngles(self:GetAngles())
85-
self.Digits[0]:SetParent(self)
86-
self.Digits[0]:SetRenderMode( RENDERMODE_TRANSALPHA )
87-
self.Digits[0]:SetColor(Color(255,255,255,lamp*255))
84+
if IsValid(self.Digits[0]) then
85+
self.Digits[0]:SetPos(self:GetAttachment(self:LookupAttachment("lamp")).Pos)
86+
self.Digits[0]:SetAngles(self:GetAngles())
87+
self.Digits[0]:SetParent(self)
88+
self.Digits[0]:SetRenderMode( RENDERMODE_TRANSALPHA )
89+
self.Digits[0]:SetColor(Color(255,255,255,lamp*255))
90+
end
8891
elseif IsValid(self.Digits[0]) and lamp > 0 then
8992
self.Digits[0]:SetColor(Color(255,255,255,lamp*255))
9093
elseif IsValid(self.Digits[0]) and lamp == 0 then

0 commit comments

Comments
 (0)