• LocalPlayer() Tried to use a NULL entity!
    5 replies, posted
I'm turing the sandbox gamemode into a new roleplay ish gamemode to take control over everything, But somehow in he spawnmenu, something weird happens when I try to call my rank using GetNWString [CODE]LocalPlayer():GetNWString("rank")[/CODE] This gives an error: [CODE]gamemode/spawnmenu/creationmenu/content/contenttypes/weapons.lua:70: Tried to use a NULL entity! 1. GetNWString - [C]:-1 [/CODE] What am I doing wrong? This is all clientside
We don't have a whole lot of code to go by, just one line and an error. Give us a snippet.
[CODE]hook.Add( "PopulateWeapons", "AddWeaponContent", function( pnlContent, tree, node ) -- Loop through the weapons and add them to the menu local Weapons = list.Get( "Weapon" ) local Categorised = {} -- Build into categories for k, weapon in pairs( Weapons ) do if ( !weapon.Spawnable ) then continue end Categorised[ weapon.Category ] = Categorised[ weapon.Category ] or {} table.insert( Categorised[ weapon.Category ], weapon ) end Weapons = nil -- Loop through each category for CategoryName, v in SortedPairs( Categorised ) do -- Add a node to the tree local node = tree:AddNode( CategoryName, "icon16/gun.png" ); -- When we click on the node - populate it using this function node.DoPopulate = function( self ) -- If we've already populated it - forget it. if ( self.PropPanel ) then return end -- Create the container panel self.PropPanel = vgui.Create( "ContentContainer", pnlContent ) self.PropPanel:SetVisible( false ) self.PropPanel:SetTriggerSpawnlistChange( false ) for k, ent in SortedPairsByMemberValue( v, "PrintName" ) do spawnmenu.CreateContentIcon( ent.ScriptedEntityType or "weapon", self.PropPanel, { nicename = ent.PrintName or ent.ClassName, spawnname = ent.ClassName, material = "entities/"..ent.ClassName..".png", admin = ent.AdminOnly }) end end -- If we click on the node populate it and switch to it. node.DoClick = function( self ) self:DoPopulate() pnlContent:SwitchPanel( self.PropPanel ); end end -- Select the first node local FirstNode = tree:Root():GetChildNode( 0 ) if ( IsValid( FirstNode ) ) then FirstNode:InternalDoClick() end end ) if ( LocalPlayer() and LocalPlayer():GetNWString("rank") == "owner" ) then spawnmenu.AddCreationTab( "#spawnmenu.category.weapons", function() local ctrl = vgui.Create( "SpawnmenuContentPanel" ) ctrl:CallPopulateHook( "PopulateWeapons" ); return ctrl end, "icon16/gun.png", 10 ) end[/CODE] It's in: gamemodes/sandbox/gamemode/spawnmenu/creationmenu/content/contenttypes/weapons.lua
LocalPlayer doesn't exist at that time.
Hm, How is it posible? Do I need to move them after the initialization?
I thought that you could access LocalPlayer() only after GM:InitPostEntity() was called i.e. after all ents have been initialized
Sorry, you need to Log In to post a reply to this thread.