• Get other persons playermodel after looking them up..
    11 replies, posted
So I'm not sure the best way to go about this.. What I have now is (in theory) you should be able to look up a player and grab their name and playermodel. [code] local search = vgui.Create( "DTextEntry", mainpanel ) -- create the form as a child of frame search:SetPos( 25, 125 ) search:SetSize( 200, 45 ) search:SetText( "Put person's name here" ) search.OnEnter = function( ply ) -- Where the *find player code goes and grab player model* */ Pseudocode attempt: check players name == a player on the server if player model is good then make model appear along with their info elseif then make another derma/box pop up asking if they are spelling the name correctly. end *\ end [/code] Not sure of the best way to go about making sure the players name is okay and then grab their model. Facepunch has been nice to me today so lets see if the streak keeps going! :)
try loopying through all players with player.GetAll() then check if string.lower(search:GetValue()) == string.lower(ply:Nick()). If true the ply:GetModel() would be the Model of the player AS a string. You can display it with a DModelPanel. [editline]16th February 2016[/editline] Also, you might want to have a DListView with a search bar. Would be more easy for players to use, because they do not need to know the exact name.
[QUOTE=P4sca1;49751935]try loopying through all players with player.GetAll() then check if string.lower(search:GetValue()) == string.lower(ply:Nick()). If true the ply:GetModel() would be the Model of the player AS a string. You can display it with a DModelPanel. [editline]16th February 2016[/editline] Also, you might want to have a DListView with a search bar. Would be more easy for players to use, because they do not need to know the exact name.[/QUOTE] So i've done what you said and it somewhat works.. [code] local plylist = vgui.Create("DListView", mainpanel) plylist:SetParent(mainpanel) plylist:SetPos(10, 300) plylist:SetSize(200, 125) plylist:SetMultiSelect(false) local clmColumn1 = plylist:AddColumn("Name") clmColumn1:SetMinWidth(200) clmColumn1:SetMaxWidth(200) for k,v in pairs(player.GetAll()) do plylist:AddLine(v:Nick()) -- Add lines end plylist.DoDoubleClick = function( checkid ) DModel = vgui.Create( "DModelPanel", mainpanel) DModel:SetModel(LocalPlayer():GetModel()) DModel:SetPos(250,25) DModel:SetSize(250, 250) local eyepos = DModel.Entity:GetBonePosition( DModel.Entity:LookupBone( "ValveBiped.Bip01_Head1" ) ) eyepos:Add( Vector( 0, 0, 2 ) ) -- Move up slightly DModel:SetLookAt( eyepos ) DModel:SetCamPos( eyepos-Vector( -12, 0, 0 ) ) -- Move cam in front of eyes DModel.Entity:SetEyeTarget( eyepos-Vector( -12, 0, 0 ) ) local name = vgui.Create("DLabel",mainpanel) name:SetSize(30,30) name:SetFont("Trebuchet24") name:SetText("Name: ".. ply:GetName()) name:SetPos(10,150) name:SizeToContents() local wanted = vgui.Create("DButton", mainpanel) wanted:SetPos(10, 400) wanted:SetSize(200,75) wanted:SetText("Check wanted Status") wanted:SizeToContents() wanted.Paint = function(s,w,h) draw.RoundedBox(10,0,0,w,h,Color(125,125,125)) end end [/code] Except it gets MY playermodel.. not the bots..
It gets your playermodel because that's exactly what you are telling it to do with this line: [lua] DModel:SetModel(LocalPlayer():GetModel()) [/lua] maybe do something like this [lua] local PLList = { } for k,v in pairs(player.GetAll()) do plylist:AddLine(v:Nick()) -- Add lines table.Insert( PLList, v ) end --- --- if ( PLList[ checkid ] ) then DModel:SetModel( PLList[ checkid ]:GetModel()) end [/lua]
Cheers, will try :)
[QUOTE=James xX;49753995]It gets your playermodel because that's exactly what you are telling it to do with this line: [lua] DModel:SetModel(LocalPlayer():GetModel()) [/lua] maybe do something like this [lua] local PLList = { } for k,v in pairs(player.GetAll()) do plylist:AddLine(v:Nick()) -- Add lines table.Insert( PLList, v ) end --- --- if ( PLList[ checkid ] ) then DModel:SetModel( PLList[ checkid ]:GetModel()) end [/lua][/QUOTE] Hey so I just got around to testing it.. made some major GUI improvements. Except I am getting this error [code] [ERROR] lua/test:155: attempt to call field 'Insert' (a nil value) 1. DoClick - lua/test:155 2. unknown - lua/vgui/dlabel.lua:218 [/code]
[QUOTE=AustinH;49775576]Hey so I just got around to testing it.. made some major GUI improvements. Except I am getting this error [code] [ERROR] lua/test:155: attempt to call field 'Insert' (a nil value) 1. DoClick - lua/test:155 2. unknown - lua/vgui/dlabel.lua:218 [/code][/QUOTE] table.insert doesn't have a capital I
[QUOTE=MPan1;49775701]table.insert doesn't have a capital I[/QUOTE] Right except all it does now is [code] [ERROR] lua/test:161: attempt to index a nil value 1. DoDoubleClick - lua/test:161 2. OnClickLine - lua/vgui/dlistview.lua:478 3. unknown - lua/vgui/dlistview_line.lua:93 [/code] [code] drawmodel:SetModel(PLList[ checkid ]:GetModel()) -- Set to selected players model [/code]
[QUOTE=AustinH;49775816]Right except all it does now is [code] [ERROR] lua/test:161: attempt to index a nil value 1. DoDoubleClick - lua/test:161 2. OnClickLine - lua/vgui/dlistview.lua:478 3. unknown - lua/vgui/dlistview_line.lua:93 [/code] [code] drawmodel:SetModel(PLList[ checkid ]:GetModel()) -- Set to selected players model [/code][/QUOTE] Because you haven't set checkid as anything?
[QUOTE=MPan1;49775831]Because you haven't set checkid as anything?[/QUOTE] its a function [code] local PLList = {} for k,v in pairs(player.GetAll()) do plylist:AddLine(v:Nick()) -- Add lines end plylist.DoDoubleClick = function (checkid) table.insert( PLList, v ) drawmodel = vgui.Create( "DModelPanel", mainpan2) drawmodel:SetModel(PLList[ checkid ]:GetModel()) -- Set to selected players model [/code]
[QUOTE=AustinH;49775850]its a function [code] local PLList = {} for k,v in pairs(player.GetAll()) do plylist:AddLine(v:Nick()) -- Add lines end plylist.DoDoubleClick = function (checkid) table.insert( PLList, v ) drawmodel = vgui.Create( "DModelPanel", mainpan2) drawmodel:SetModel(PLList[ checkid ]:GetModel()) -- Set to selected players model [/code][/QUOTE] Try this instead: [CODE] plylist.DoDoubleClick = function(self, checkid) [/CODE] You might be using the panel as the key rather than the actual line's ID
[QUOTE=MPan1;49775889]Try this instead: [CODE] plylist.DoDoubleClick = function(self, checkid) [/CODE] You might be using the panel as the key rather than the actual line's ID[/QUOTE] Done that now but still returning a nil value. It's all being ran clientside if that matters
Sorry, you need to Log In to post a reply to this thread.