diff options
| author | Alexander Pickering <Alexander.Pickering@anondomain.site90.net> | 2015-12-30 20:06:08 -0500 |
|---|---|---|
| committer | Alexander Pickering <Alexander.Pickering@anondomain.site90.net> | 2015-12-30 20:06:08 -0500 |
| commit | 84279bbb034aef483276926255e88c531219aa31 (patch) | |
| tree | d2c2b5e9c1152dfa515406e6912b42c1f369faf0 /gamemode/npcsystem/npcs | |
| parent | 70974924b1dc9e116221736ff30629f18b5f893b (diff) | |
| download | wintersurvival2-84279bbb034aef483276926255e88c531219aa31.tar.gz wintersurvival2-84279bbb034aef483276926255e88c531219aa31.tar.bz2 wintersurvival2-84279bbb034aef483276926255e88c531219aa31.zip | |
Fixed birds crashing if not spawned on a valid navmesh
Diffstat (limited to 'gamemode/npcsystem/npcs')
| -rw-r--r-- | gamemode/npcsystem/npcs/bird.lua | 45 |
1 files changed, 21 insertions, 24 deletions
diff --git a/gamemode/npcsystem/npcs/bird.lua b/gamemode/npcsystem/npcs/bird.lua index fa98335..0393532 100644 --- a/gamemode/npcsystem/npcs/bird.lua +++ b/gamemode/npcsystem/npcs/bird.lua @@ -31,6 +31,11 @@ NPC.AwareEnemies = nil function NPC:Act()
end
+--What to replace ENT:OnStuck with
+function NPC:Stuck()
+
+end
+
--What to replace ENT:RunBehaviour with
function NPC:Behave()
--print("Going into bird's custom behaviour")
@@ -62,7 +67,21 @@ function NPC:Behave() direction:Normalize()
local addition = direction * 1000
local topos = self:GetPos() + addition
- self:MoveToPos(topos)
+
+ --Check to make sure we can make it somewhere, so we don't crash
+ --[[
+ if not self.loco:IsAreaTraversable(navmesh.GetNavArea(self:GetPos(),100)) then
+ print("No way to go forward!")
+ break
+ end
+ --]]
+ local navarea = navmesh.GetNavArea(self:GetPos(), 100)
+ if navarea:IsValid() then
+ self:MoveToPos(topos)
+ else
+ self:BecomeRagdoll(DamageInfo())
+ end
+ --
--Check to see if we're being chased
iscrouched = v:Crouching()
@@ -70,29 +89,7 @@ function NPC:Behave() end
end
if not playernearby then
- local di = DamageInfo()
- self:BecomeRagdoll(di)
- end
- --self:SetSequence( "sit_ground" ) -- Stay sitting
- --coroutine.wait( self:PlayScene( "scenes/eli_lab/mo_gowithalyx01.vcd" ) ) -- play a scene and wait for it to finish before progressing
- -- Get up
-
-
- -- find the furthest away hiding spot
- --local pos = self:FindSpot( "random", { type = 'hiding', radius = 5000 } )
-
-
- -- if the position is valid
- if ( pos ) then
- self:StartActivity( ACT_RUN ) -- run anim
- self.loco:SetDesiredSpeed( 200 ) -- run speed
- self:PlayScene( "scenes/npc/female01/watchout.vcd" ) -- shout something while we run just for a laugh
- self:MoveToPos( pos ) -- move to position (yielding)
- self:PlaySequenceAndWait( "fear_reaction" ) -- play a fear animation
- self:StartActivity( ACT_IDLE ) -- when we finished, go into the idle anim
- else
- --print("Bird could not find anywhere to fly to")
- -- some activity to signify that we didn't find shit
+ self:BecomeRagdoll(DamageInfo())
end
end
coroutine.yield()
|
