• Need help with a code
    15 replies, posted
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.