ENTITY:TriggerOutput
Örnek
Haritaya derlendiğinde OnEndTouch çıktılarını çalıştıracak bir brush entity oluşturur
ENT.Type = "brush"
ENT.Base = "base_brush"
function ENT:Initialize()
self:SetSolid(SOLID_BBOX)
self:SetTrigger(true) -- Generates EndTouch and StartTouch callbacks
end
function ENT:KeyValue( k, v )
-- Store 'OnEndTouch' outputs for map created entities
if ( k == "OnEndTouch" ) then
self:StoreOutput( k, v )
end
end
function ENT:EndTouch(ent)
-- Trigger all stored outputs
self:TriggerOutput("OnEndTouch", ent)
end
Örnek
Motor entity'leri için çıktıları hook'lamak amacıyla Entity:Fire kullanabilirsiniz. Bu örnek tüm trigger_teleport'ları hook'lar.
ACTIVATOR / CALLER / TRIGGER_PLAYER globalleri sadece çalıştırma sırasında mevcuttur, hemen ardından ayarları kaldırılır.
local function SetupMapLua()
local MapLua = ents.Create( "lua_run" )
MapLua:SetName( "triggerhook" )
MapLua:Spawn()
for _, v in ipairs( ents.FindByClass( "trigger_teleport" ) ) do
v:Fire( "AddOutput", "OnStartTouch triggerhook:RunPassedCode:hook.Run( 'OnTeleport' ):0:-1" )
end
end
hook.Add( "InitPostEntity", "SetupMapLua", SetupMapLua )
hook.Add( "PostCleanupMap", "SetupMapLua", SetupMapLua )
hook.Add( "OnTeleport", "TestTeleportHook", function()
local activator, caller = ACTIVATOR, CALLER
print( activator, caller )
end )
Çıktı: Oyuncu bir trigger_teleport'a dokunduğunda bu, konsola yazdırılacaktır:
Player [1][Player1] Entity [3][trigger_teleport]
Tüm sunucular · GmodTR Launcher · Rehber · GMod Wiki · GmodTR nedir? · Sunucu ekle · Discord