diff options
| -rw-r--r-- | entities/entities/ws_researchtable/init.lua | 67 | ||||
| -rw-r--r-- | gamemode/npcsystem/aidirector.lua | 3 |
2 files changed, 7 insertions, 63 deletions
diff --git a/entities/entities/ws_researchtable/init.lua b/entities/entities/ws_researchtable/init.lua index 9f09365..64596e4 100644 --- a/entities/entities/ws_researchtable/init.lua +++ b/entities/entities/ws_researchtable/init.lua @@ -3,11 +3,6 @@ AddCSLuaFile("shared.lua") include('shared.lua')
--[[An item to give hints to players that are just starting out]]
-local ResurrectionTable = {
- ["Wood"] = 10,
- ["Rock"] = 10,
- ["Sap"] = 10,
-}
local PossibleRecipies = {
[1] = { [0]="Arrow",
@@ -46,73 +41,21 @@ function ENT:Initialize() end
self:SetHealth(30)
-
- self.StoredItems = {}
end
function ENT:Think()
- local HasItems = {}
- if(!self.StoredItems) then return end
- for k,v in pairs(self.StoredItems) do
- if (ResurrectionTable[v.Name] and v.Quantity >= ResurrectionTable[v.Name]) then
- HasItems[v.Name] = {k,ResurrectionTable[v.Name]}
- end
- end
-
- if (table.Count(HasItems) >= table.Count(ResurrectionTable)) then
- local randomrecipie = PossibleRecipies[math.random(1,10)]
- for k,v in pairs(player.GetAll()) do
- if (v:Alive() and v:GetPos():Distance(self:GetPos()) < 200) then
- v:ChatPrint("Perhaps you can make a " .. randomrecipie[0] .. " with " .. randomrecipie[1])
-
- for a,b in pairs(HasItems) do
- if (self.StoredItems[b[1]].Quantity == b[2]) then table.remove(self.StoredItems,b[1])
- else self.StoredItems[b[1]].Quantity = self.StoredItems[b[1]].Quantity-b[2] end
- end
- break
- end
+ local randomrecipie = PossibleRecipies[math.random(1,10)]
+ for k,v in pairs(player.GetAll()) do
+ if (v:Alive() and v:GetPos():Distance(self:GetPos()) < 200) then
+ v:ChatPrint("Perhaps you can make a " .. randomrecipie[0] .. " with " .. randomrecipie[1])
end
end
- self:NextThink(CurTime()+10)
+ self:NextThink(CurTime()+30)
return true
end
-function ENT:AddItem(item,quantity)
- for k,v in pairs(self.StoredItems) do
- if (v.Name == item) then
- v.Quantity = v.Quantity + quantity
- return
- end
- end
-
- table.insert(self.StoredItems,{Name = item, Quantity = quantity})
-end
-
-function ENT:TakeItem(pl,item,quantity)
- for k,v in pairs(self.StoredItems) do
- if (v.Name == item) then
- quantity = math.min(quantity,v.Quantity)
- v.Quantity = v.Quantity - quantity
-
- pl:AddItem(item,quantity)
-
- if (v.Quantity <= 0) then table.remove(self.StoredItems,k) end
- break
- end
- end
-end
-
-function ENT:GetItems()
- return self.StoredItems
-end
-
-function ENT:Use(pl)
- if (pl:IsPigeon()) then return end
- OpenLootventory(pl,self.StoredItems,self)
-end
-
function ENT:OnTakeDamage(dmg)
self:SetHealth(self:Health()-dmg)
diff --git a/gamemode/npcsystem/aidirector.lua b/gamemode/npcsystem/aidirector.lua index b9ae95e..073eea7 100644 --- a/gamemode/npcsystem/aidirector.lua +++ b/gamemode/npcsystem/aidirector.lua @@ -9,6 +9,7 @@ concommand.Add("ws_spawnbird",function(ply,cmd,args) end)
function SpawnNpcByName(name, position)
+ if(CLIENT) then return end
entdata = GetNpcByName(name)
ent = ents.Create("ws_npc_ambient")
ent:SetPos(position)
@@ -74,7 +75,7 @@ hook.Add("Tick","SpawnAmbient",function() if (C != CONTENTS_WATER and C != CONTENTS_WATER+CONTENTS_TRANSLUCENT) then
--print("Appropriate place found, spawning bird)")
- SpawnNpcByName("Bird",v:GetPos() + (v:GetUp()*500))
+ SpawnNpcByName("Bird",Pos)
break
end
end
|
