Local server but I'm told that still matters
My init file contains the following:
[CODE]function GM:InitPostEntity()
end
hook.Add( "InitPostEntity", "some_unique_name", function()
print( "Initialization hook called" )
end )
[/CODE]
I have no idea if I'm using that correctly. My searches contained semi-contradictory information, ents.Create was removed in gmod 13 and so on. Pretty fragmented so I'm not sure if my syntax is even right.
This next one is part of a Doclick function that is working correctly for the other parts of it. (play a sound)
[CODE]local spawnff = ents.Create('npc_citizen')
if ( !IsValid( spawnff ) ) then return end // Check whether we successfully made an entity, if not - bail
spawnff:SetModel( "models/npc/cdc_soldier_npc.mdl")
spawnff:SetPos( Vector( 0, 0, 100 ) )
spawnff:Spawn()
end[/CODE]
but I am getting a NIL field value error in console. I tried copying this exact block to the init but it never worked either. Some direction would be awesome.
You'll need to look at the [URL="http://wiki.garrysmod.com/page/Net_Library_Usage"]net library[/URL]. You create a button, on the DoClick of it, send a message to the server telling it to create an entity. Hook to that message on the server and spawn it.
[img]http://wiki.garrysmod.com/favicon.ico[/img] [url=http://wiki.garrysmod.com/page/ents/Create]ents.Create[/url] is a function and was not removed, however it exists server side, while derma and buttons only exist on the client. Which is why things aren't working out.
[QUOTE=crazyscouter;48281618]You'll need to look at the [URL="http://wiki.garrysmod.com/page/Net_Library_Usage"]net library[/URL]. You create a button, on the DoClick of it, send a message to the server telling it to create an entity. Hook to that message on the server and spawn it.
[img]http://wiki.garrysmod.com/favicon.ico[/img] [url=http://wiki.garrysmod.com/page/ents/Create]ents.Create[/url] is a function and was not removed, however it exists server side, while derma and buttons only exist on the client. Which is why things aren't working out.[/QUOTE]
I tried using netlibrary for the sounds as well. I could never get it to work but I still have the code in there // .
in client.lua
[CODE]--surface.PlaySound("File1.mp3")
--net.Start('send_playsound') net.WriteString("ENG101_Onscene.mp3")
--net.SendToServer()[/CODE]
now in init.lua
[CODE]util.AddNetworkString('send_playsound')
util.AddNetworkString('send_broadcastsound')
local function PlaySound()
local strSound = net.ReadString()
net.Start("send_broadcastsound")
net.WriteString(strSound)
net.Broadcast()
end
net.Receive("send_playsound", PlaySound)
[/CODE]
dog.gif/ihavenoideawutimdoing
Alright, so basically, in a server side file you're going to want to pool the net message name, and set the receive hook then spawn it at the players eye trace hit pos, like so
[lua]
util.AddNetworkString("spawn_npc1")
net.Receive("spawn_npc1", function(l, ply)
local hit = ply:GetEyeTrace().HitPos
local ent = ents.Create("npc_citizen")
ent:SetModel("models/npc/cdc_soldier_npc.mdl")
ent:SetPos(hit)
ent:Spawn()
end)
[/lua]
and in a client side file, you're going to want to have your button(parented to your main panel!) which sends the net message upon click of it, like this
[lua]
local btn = vgui.Create("DButton", MyParentPanel)
btn:SetSize(100, 50)
btn:SetText("Spawn NPC")
btn:SetPos(0, 0)
function btn:DoClick()
net.Start("spawn_npc1")
net.SendToServer()
end
[/lua]
[QUOTE=crazyscouter;48281659]Alright, so basically, in a server side file you're going to want to pool the net message name, and set the receive hook then spawn it at the players eye trace hit pos, like so
[lua]
util.AddNetworkString("spawn_npc1")
net.Receive("spawn_npc1", function(l, ply)
local hit = ply:GetEyeTrace().HitPos
local ent = ents.Create("npc_citizen")
ent:SetModel("models/npc/cdc_soldier_npc.mdl")
ent:SetPos(hit)
ent:Spawn()
end)
[/lua]
and in a client side file, you're going to want to have your button(parented to your main panel!) which sends the net message upon click of it, like this
[lua]
local btn = vgui.Create("DButton", MyParentPanel)
btn:SetSize(100, 50)
btn:SetText("Spawn NPC")
btn:SetPos(0, 0)
function btn:DoClick()
net.Start("spawn_npc1")
net.SendToServer()
end
[/lua][/QUOTE]
Awesome. It loaded without errors but when I tried to spawn I got this : Bad sequence (-1 out of 1 max) in GetSequenceLinearMotion() for model 'error.mdl'!
EDIT. Reloaded and no errors but it doesn't actually spawn it. Console doesn't give me any clues to what's going wrong?
change the model
Sorry, you need to Log In to post a reply to this thread.