Hi, i've downloaded the Santa Hat stuff, and i want to install it on my server. But the Hat has to be only on the VIPs or higher. That's my code
[lua] function SpawnHats( ply )
if ( evolve.ranks[ ply:EV_GetRank() ].immunity > 15 ) then
timer.Simple( 1, function()
SpawnSantaFunction( ply )
end )
end
hook.Add( "PlayerInitialSpawn", "PlayerSpawn", SpawnHats ) [/lua]
But someone told me something was missing... he didn't tell me what...
use lua tags
[lua ] blahblahblah [/lua ] without the space after lua
[lua]
function SpawnHats( ply )
if ( evolve.ranks [ ply:EV_GetRank() ].immunity > 15 ) then
timer.Simple( 1, function()
SpawnSantaFunction( ply )
end )
end
end
hook.Add( "PlayerInitialSpawn", "PlayerSpawn", SpawnHats )
[/lua]
it was missing an end, also that won't do it for only vips, but for any rank with an immunity above 15, equal or less than 15 will not be able to spawn the hat.
you may also want to place "else" before the second-to-last end and then add [lua]ply:PrintMessage ( HUD_PRINTTALK, "Your rank immunity is too low to spawn the santa hat." )[/lua] after the else.
No, but someone told me to put an If in the timer...
Well you've got to tell us what is actually wrong before we can help you.
[QUOTE=Tiagos360;26446858]No, but someone told me to put an If in the timer...[/QUOTE]
[QUOTE]But someone told me something was missing... he didn't tell me what...[/QUOTE]
You said he didn't tell you what.
and you don't need to put an if in the timer, unless you want to do something other then what the code already does, in which case tell us.
although now that I've looked over it...
[lua]
timer.Simple( 1, function()
SpawnSantaFunction( ply ) // what is this?
end )
[/lua]
I need more information
[QUOTE=Tiagos360;26446642]Hi, i've downloaded the Santa Hat stuff, and i want to install it on my server. But the Hat has to be only on the VIPs or higher. That's my code
[lua] function SpawnHats( ply )
if ( evolve.ranks[ ply:EV_GetRank() ].immunity > 15 ) then
timer.Simple( 1, function()
SpawnSantaFunction( ply )
end )
end
hook.Add( "PlayerInitialSpawn", "PlayerSpawn", SpawnHats ) [/lua]
But someone told me something was missing... he didn't tell me what...[/QUOTE]
Using a timer on a spawning function as the player joins is a bad idea, If they leave as they join the server, it will screw up.
You do not need a timer since the players MODEL is server side.
Also, Why is the unique name called PlayerSpawn? You should pretty much just call that SantaHatHook
[QUOTE=Zephilinox;26447991]You said he didn't tell you what.
and you don't need to put an if in the timer, unless you want to do something other then what the code already does, in which case tell us.
although now that I've looked over it...
[lua] timer.Simple( 1, function()
SpawnSantaFunction( ply ) // what is this?
end )
[/lua]
I need more information[/QUOTE]
[lua]function SpawnSantaFunction( pl )
local headcrabs , m = ents.FindByClass( "santa" )
for _ , m in pairs( headcrabs ) do
if ( m && m:IsValid( ) && m:GetOwner( ) == pl ) then
return
end
end
local eyes = pl:LookupAttachment( "eyes" )
if ( eyes == 0 ) then return end
santa = ents.Create( 'santa' )
santa:SetOwner( pl )
santa:SetParent( pl )
santa:SetModel("models/santa/santa.mdl")
santa:Spawn( )
santa:Activate( )
santa:SetMoveType( MOVETYPE_NONE )
santa:SetSolid( SOLID_NONE )
santa:SetCollisionGroup( COLLISION_GROUP_NONE )
santa:DrawShadow( false )
return santa
end [/lua]
So does my fixed code, which I posted 2 hours ago, work or not?
[QUOTE=_Zoey_;26448282]Using a timer on a spawning function as the player joins is a bad idea, If they leave as they join the server, it will screw up.
You do not need a timer since the players MODEL is server side.
Also, Why is the unique name called PlayerSpawn? You should pretty much just call that SantaHatHook[/QUOTE]
Then, what do you have in mind?
[editline]2nd December 2010[/editline]
[QUOTE=Dave_Parker;26450039]You're not setting the position of the santa hat.[/QUOTE]
The position is not located in Init.lua.
Well, i don't see the hats, they don't spawn.And there is no error code.
[lua]include("shared.lua")
function ENT:Think()
if not self.Entity:GetOwner():Alive() then
self.Entity:SetColor(0,0,0,0)
return
else
if self.Entity:GetOwner():GetNWString( "PModel" ) == "models/player/zombiefast.mdl" || self.Entity:GetOwner():GetNWString( "PModel" ) == "models/player/classic.mdl" then
self.Entity:SetColor(0,0,0,0)
else
if LocalPlayer() == self.Entity:GetOwner() then
self.Entity:SetColor(0,0,0,0)
else
self.Entity:SetColor(255,255,255,255)
end
end
end
NextTime = 1
if ( CurTime() >= NextTime && !self.Entity:GetOwner():Alive() ) then
self.Entity:DrawModel()
NextTime = CurTime() + 1
end
end
function ENT:Draw()
local owner = self.Entity:GetOwner()
if owner:GetRagdollEntity() then
owner = owner:GetRagdollEntity()
elseif not owner:Alive() then self.Entity:SetNoDraw( true ) end
local boneindex = owner:LookupBone("ValveBiped.Bip01_Head1")
if boneindex then
local pos, ang = owner:GetBonePosition(boneindex)
if pos and pos ~= owner:GetPos() then
if owner:GetNWString( "PModel" ) == "models/player/group01/female_06.mdl" then
self.Entity:SetPos(pos + ang:Forward()*1 + ang:Right()*-1.3)
elseif owner:GetNWString( "PModel" ) == "models/player/group01/female_01.mdl" then
self.Entity:SetPos(pos + ang:Forward()*1 + ang:Right()*-1.3)
elseif owner:GetNWString( "PModel" ) == "models/player/alyx.mdl" then
self.Entity:SetPos(pos + ang:Forward()*1 + ang:Right()*-2.5)
elseif owner:GetNWString( "PModel" ) == "models/player/group01/female_07.mdl" then
self.Entity:SetPos(pos + ang:Forward()*1 + ang:Right()*-1.3)
elseif owner:GetNWString( "PModel" ) == "models/player/hostage/hostage_03.mdl" then
self.Entity:SetPos(pos + ang:Forward()*1 + ang:Right()*-1.3)
elseif owner:GetNWString( "PModel" ) == "models/player/combine_soldier.mdl" then
self.Entity:SetPos(pos + ang:Forward()*1 + ang:Right()*-3.4)
elseif owner:GetNWString( "PModel" ) == "models/player/charple01.mdl" then
self.Entity:SetPos(pos + ang:Forward()*-1 + ang:Right()*-2)
elseif owner:GetNWString( "PModel" ) == "models/player/hostage/hostage_02.mdl" then
self.Entity:SetPos(pos + ang:Forward()*1 + ang:Right()*-1)
elseif owner:GetNWString( "PModel" ) == "models/player/group01/female_04.mdl" then
self.Entity:SetPos(pos + ang:Forward()*1 + ang:Right()*-1.3)
elseif owner:GetNWString( "PModel" ) == "models/player/group03/female_06.mdl" then
self.Entity:SetPos(pos + ang:Forward()*1 + ang:Right()*-1.3)
elseif owner:GetNWString( "PModel" ) == "models/player/gasmask.mdl" then
self.Entity:SetPos(pos + ang:Forward()*5 + ang:Right()*-1.5)
elseif owner:GetNWString( "PModel" ) == "models/player/group01/female_02.mdl" then
self.Entity:SetPos(pos + ang:Forward()*1 + ang:Right()*-1.3)
elseif owner:GetNWString( "PModel" ) == "models/player/gman_high.mdl" then
self.Entity:SetPos(pos + ang:Forward()*1.5 + ang:Right()*-1.3)
elseif owner:GetNWString( "PModel" ) == "models/player/group03/male_07.mdl" then
self.Entity:SetPos(pos + ang:Forward()*1.5 + ang:Right()*-1.3)
elseif owner:GetNWString( "PModel" ) == "models/player/group03/female_03.mdl" then
self.Entity:SetPos(pos + ang:Forward()*1 + ang:Right()*-1.3)
elseif owner:GetNWString( "PModel" ) == "models/player/police.mdl" then
self.Entity:SetPos(pos + ang:Forward()*1.5 + ang:Right()*-2)
elseif owner:GetNWString( "PModel" ) == "models/player/breen.mdl" then
self.Entity:SetPos(pos + ang:Forward()*1 + ang:Right()*-1.3)
elseif owner:GetNWString( "PModel" ) == "models/player/group01/male_01.mdl" then
self.Entity:SetPos(pos + ang:Forward()*1.5 + ang:Right()*-1.3)
elseif owner:GetNWString( "PModel" ) == "models/player/zombie_soldier.mdl" then
self.Entity:SetPos(pos + ang:Forward()*0.5 + ang:Right()*-1.3)
elseif owner:GetNWString( "PModel" ) == "models/player/group01/male_03.mdl" then
self.Entity:SetPos(pos + ang:Forward()*1.5 + ang:Right()*-1.3)
elseif owner:GetNWString( "PModel" ) == "models/player/group03/female_04.mdl" then
self.Entity:SetPos(pos + ang:Forward()*1 + ang:Right()*-1.3)
elseif owner:GetNWString( "PModel" ) == "models/player/riot.mdl" then
self.Entity:SetPos(pos + ang:Forward()*5 + ang:Right()*-1.5)
elseif owner:GetNWString( "PModel" ) == "models/player/group01/male_02.mdl" then
self.Entity:SetPos(pos + ang:Forward()*1.5 + ang:Right()*-1.3)
elseif owner:GetNWString( "PModel" ) == "models/player/kleiner.mdl" then
self.Entity:SetPos(pos + ang:Forward()*1.5 + ang:Right()*-1.7)
elseif owner:GetNWString( "PModel" ) == "models/player/group03/female_01.mdl" then
self.Entity:SetPos(pos + ang:Forward()*1.5 + ang:Right()*-1.3)
elseif owner:GetNWString( "PModel" ) == "models/player/group01/male_09.mdl" then
self.Entity:SetPos(pos + ang:Forward()*1.5 + ang:Right()*-1.3)
elseif owner:GetNWString( "PModel" ) == "models/player/phoenix.mdl" then
self.Entity:SetPos(pos + ang:Forward()*2.5 + ang:Right()*-1.5)
elseif owner:GetNWString( "PModel" ) == "models/player/dod_american.mdl" then
self.Entity:SetPos(pos + ang:Forward()*2.5 + ang:Right()*-1.5)
elseif owner:GetNWString( "PModel" ) == "models/player/group03/male_04.mdl" then
self.Entity:SetPos(pos + ang:Forward()*1.5 + ang:Right()*-1.3)
elseif owner:GetNWString( "PModel" ) == "models/player/arctic.mdl" then
self.Entity:SetPos(pos + ang:Forward()*2.5 + ang:Right()*-1.5)
elseif owner:GetNWString( "PModel" ) == "models/player/dod_german.mdl" then
self.Entity:SetPos(pos + ang:Forward()*2.5 + ang:Right()*-1.5)
elseif owner:GetNWString( "PModel" ) == "models/player/swat.mdl" then
self.Entity:SetPos(pos + ang:Forward()*5.5 + ang:Right()*-1.5)
elseif owner:GetNWString( "PModel" ) == "models/player/urban.mdl" then
self.Entity:SetPos(pos + ang:Forward()*5.5 + ang:Right()*-1.5)
elseif owner:GetNWString( "PModel" ) == "models/player/group03/male_01.mdl" then
self.Entity:SetPos(pos + ang:Forward()*1.5 + ang:Right()*-1.3)
elseif owner:GetNWString( "PModel" ) == "models/player/mossman.mdl" then
self.Entity:SetPos(pos + ang:Forward()*1.5 + ang:Right()*-1.7)
elseif owner:GetNWString( "PModel" ) == "models/player/group01/male_06.mdl" then
self.Entity:SetPos(pos + ang:Forward()*1.5 + ang:Right()*-1.3)
elseif owner:GetNWString( "PModel" ) == "models/player/group03/female_02.mdl" then
self.Entity:SetPos(pos + ang:Forward()*1.5 + ang:Right()*-1.3)
elseif owner:GetNWString( "PModel" ) == "models/player/group01/male_07.mdl" then
self.Entity:SetPos(pos + ang:Forward()*1.5 + ang:Right()*-1.3)
elseif owner:GetNWString( "PModel" ) == "models/player/combine_super_soldier.mdl" then
self.Entity:SetPos(pos + ang:Forward()*2 + ang:Right()*-4)
elseif owner:GetNWString( "PModel" ) == "models/player/group01/female_03.mdl" then
self.Entity:SetPos(pos + ang:Forward()*1.5 + ang:
Try this first, if it works, then check for rankings.
[CODE]
hook.Add("PlayerSpawn", "SpawnSantaHats", function(ply) SpawnSantaFunction(ply) end)
[/CODE]
If the above doesn't work try this.
In your addons folder open Santa Hat/lua/entities/santa/init.lua
Delete everything in there and add this.
[CODE]
AddCSLuaFile("cl_init.lua")
AddCSLuaFile("shared.lua")
include('shared.lua')
function ENT:Initialize()
self:SetMoveType( MOVETYPE_NONE )
self:SetSolid( SOLID_NONE )
self:SetCollisionGroup( COLLISION_GROUP_NONE )
self:DrawShadow( false )
end
function ENT:SetPlayer( ply )
if(!ply || !IsValid(ply) || !ply:IsPlayer()) then return end
self:SetOwner( ply )
self:SetParent( pl )
local eyes = pl:LookupAttachment( "eyes" )
if ( eyes == 0 ) then return end
ply:SetNWString( "PModel", ply:GetModel() )
end
function ENT:Think()
end
function SpawnHats( ply )
local hat = ents.Create( 'santa' )
hat:SetModel("models/santa/santa.mdl")
hat:SetPos(ply:GetPos())
hat:Spawn( )
hat:Activate( )
hat:SetPlayer(ply)
end
hook.Add( "PlayerSpawn", "PlayerSpawn", SpawnHats )
[/CODE]
Parented object would remove itself.
Sorry, you need to Log In to post a reply to this thread.