1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
NPC.Name = "Winter Survival 2 Base NPC"
NPC.Desc = "Why the hell did I write this? No one will read it anyways!!"
NPC.Class = "Other" --Ambient, Agressive, Boss
NPC.Model = "models/props_combine/breenlight.mdl"
NPC.Icon = Material("wintersurvival2/hud/ws1_icons/icon_rock")
NPC.Social = "Pack" --Solo, Pack
NPC.Stats = {
["Vitality"] = 1,
["Speed"] = 1,
["AwareDist"] = 1,
["Accel"] = 1,
["Decel"] = 1,
["Step"] = 1, --Step height
["Hull"] = HULL_HUMAN
}
--Some npc's like birds have diffent names for their idle sequence
NPC.IdleSequences = {
[0] = "Idle",
}
--Drops should be formated as [index]={["item name"], percent_drop} where percent_drop is a number from 0 to 100
NPC.Drops = nil
--Attacks should be formated as [i]={function attackpriority() = function doattack()}
NPC.Attacks = nil
--Attack priority is a fucntion that takes a player, and returns an int describing it's prority to attack (higher = more important) NPC will always attack the player with the highest priority
function NPC:AttackPriority(ply)
local dist = ply:GetPos():Distance(self:GetPos())
return self.Stats["AwareDist"] - dist
end
--A function that takes a position and returns true if this is an acceptable place to spawn
function NPC:SpawnLocations(pos)
return true
end
--The entity that is this npc's current target, if it has one
NPC.Target = nil
--All enemies that this NPC is aware of
NPC.AwareEnemies = nil
--These are just here to tell the editors/develoeprs what functions are available.. dont un-comment them out, as this could affect all the items.
/*
--What to replace the ENT:BehaveAct with
function NPC:Act()
end
--What to replace RunBehaviour with
function NPC:Behaviour()
end
function NPC:OnSpawn()
end
--If we need to do more than just reduce health on dammage
function NPC:OnDammage(ammount)
end
--If we need to do more than just drop items on death
function NPC:OnDeath()
end
--A particular spell was cast on this npc by player
function NPC:OnSpell(spell, player)
end
function NPC:OnFindEnemy(enemy)
end
--Called when the npc is attacking anything with any attack
function NPC:OnAttack(target)
end
*/
|