From ad728d580ea64797f7bcd02894f18cc4d1072d97 Mon Sep 17 00:00:00 2001 From: Alexander Pickering Date: Wed, 30 Dec 2015 21:38:28 -0500 Subject: Changed research table and fix bird spawning --- entities/entities/ws_researchtable/init.lua | 67 +++-------------------------- 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 -- cgit v1.2.3-70-g09d2