Guten Abend,
das mit IsPlayer() klappt irgendwie nicht. Ich lass das bei deinem Verbesserungsvorschlag.
Jedoch verursacht mir der Laser mit DrawBeam noch Probleme. Ich habe absolut keine Ahnung wie ich den anwenden soll. Er verursacht erstmal einen Fehler, der vermutlich daran liegt, dass dieser Befehl nur Client-Side ist. Allerdings passiert gar nichts, wenn ich ihn Client-Side ausführe. Wenn ich folgendes in die Konsole eingebe:
Code:
lua_run_cl render.DrawBeam( Vector(0,0,0), Vector(1000,1000,1000), 100, 1, 1, Color( 255, 0, 0, 255 ) )
sollte ja irgendwas auftauchen. Leider ist dem nicht so. Auch im Script selbst wird dieser Strahl von meinem Entity aus nicht gezeichnet.
Vom Script:
Code:
local laser = ("cable/redlaser")
if(CLIENT) then
render.SetMaterial(laser)
render.DrawBeam(self:LocalToWorld(),v:GetPos(),20,10,10,Color(255,0,0,255))
end
Das ist sowieso irgendwie alles blöd. Momentan läuft alles im Think-Hook. Ich hätte es aber gerne so, dass alles nur einmal ausgeführt wird, wenn jemand den Bereich betritt und nicht zig mal wiederholt wird, solange jemand im Bereich ist. Der Vollständigkeit zur Liebe der gesamte Code (mit viel experimentellen Zeilen darin, das ist der bisher letzte Stand. Ich habe schon viel mehr rumprobiert, mit dem gleichen Ergebnis.):
Code:
AddCSLuaFile("cl_init.lua")
AddCSLuaFile("shared.lua")
include("shared.lua")
function ENT:SpawnFunction( ply, tr, ClassName )
if ( !tr.Hit ) then return end
SpawnPos = tr.HitPos + tr.HitNormal * 16
local ent = ents.Create( "obeliskoflightBIG" )
ent:SetPos( SpawnPos )
ent:Spawn()
ent:Activate()
return ent
end
function ENT:Initialize()
self:SetModel("models/obeliskoflight/obeliskoflightbig.mdl")
self:PhysicsInit(SOLID_VPHYSICS)
self:SetMoveType(MOVETYPE_VPHYSICS)
self:SetSolid(SOLID_VPHYSICS)
--self.Entity:SetUseType(SIMPLE_USE)
-- self.Entity:DrawShadow(false)
-- self.Entity:DropToFloor()
local phys = self:GetPhysicsObject()
if IsValid(phys) then
phys:Wake()
self:EnableMotion(false)
end
self:EmitSound("obeliskoflightBIG/obelpower_big.mp3",500,100,1,CHAN_AUTO)
end
function ENT:Think()
local selfpos = self:GetPos()
local laser = ("cable/redlaser")
for k,v in pairs(ents.FindInSphere(Vector(selfpos), 1000)) do
if(v:GetClass() == "player") then
--self:EmitSound("obeliskoflightBIG/OBELLOOP_BIG.mp3",500,100,1,CHAN_WEAPON)
self:EmitSound("obeliskoflightBIG/obelpower_big.mp3",500,100,1,CHAN_AUTO)
--v:Ignite(10,10)
--v:SetHealth(v:Health() - 500)
--self.Entity:doObelLoad(self)
--if(CLIENT) then
-- render.SetMaterial(laser)
-- render.DrawBeam(self:LocalToWorld(),v:GetPos(),20,10,10,Color(255,0,0,255))
--end
end
end
end
--function ENT:Draw()
-- local Laser = Material("cable/redlaser")
--
-- local Vector1 = self:LocalToWorld( Vector( 0, 0, -200 ) )
-- local Vector2 = self:LocalToWorld( Vector( 0, 0, 200 ) )
--
-- render.SetMaterial( Laser )
-- render.DrawBeam( Vector1, Vector2, 100, 1, 1, Color( 255, 255, 255, 255 ) )
--end