ITEM.Name = "Teleport" ITEM.Class = "weapon" ITEM.Desc = "Right click to set target location, left click to open a portal there." ITEM.Model = "models/props_debris/wood_board02a.mdl" ITEM.Icon = Material("wintersurvival2/hud/ws2_icons/icon_spellteleport.png") ITEM.HoldType = "magic" --Load some nessessary stuff game.AddParticles("particles/particletest.pcf") PrecacheParticleSystem("firetest") ITEM.Recipe = { Resources = { ["Plank"] = 2, ["Rope"] = 1, ["Sap"] = 1, }, Tools = {}, } ITEM.CD = 0.25 --[[ All saved points are stored in a global table where ITEM.savedpoint[player] = ]] ITEM.savedpoint = {} function ITEM:DoTeleport(score,pl,self) print("DoTeleport called!") if ITEM.savedpoint[pl] == nil then return end print("Fully successfull teleport callback:") print(pl) local aim = pl:GetAimVector() local D = ents.Create("ws_teleporter") D:SetPos(pl:GetShootPos() + aim * 200) D:SetOwner(pl) D:SetAngles(aim:Angle()) D.endpoint = ITEM.savedpoint[pl] D:Spawn() D:Activate() pl:EmitSound(Sound("physics/flesh/flesh_impact_hard.wav"),100,math.random(90,110)) end --[[ local teleportfunc = function(score, pl, self) print("teleportfunc called!") if ITEM.savedpoint[ == nil then return end if score != 100 then return end print("Fully successfull teleport callback:") print(pl) pl:SetPos(self.savedpoint) local aim = pl:GetAimVector() local D = ents.Create("ws_teleporter") D:SetModel("models/props_wasteland/wood_fence02a.mdl") D:SetPos(pl:GetShootPos()+aim*200) D:SetOwner(pl) D:SetAngles(aim:Angle()) D:Spawn() D.endpoint = self.savedpoint pl:EmitSound(Sound("physics/flesh/flesh_impact_hard.wav"),100,math.random(90,110)) end ]]-- function ITEM:OnSecondary(pl,tr) print("Endpoint set?") ParticleEffect("firetest",pl:GetPos(),pl:GetAngles(),pl) ITEM.savedpoint[pl] = pl:GetPos() end function ITEM:OnPrimary(pl,tr) if CLIENT then return end print("Attempting to cast...") pl:Cast("Gateway",teleportfunc,self) end