Archiv verlassen und diese Seite im Standarddesign anzeigen : GetSelectedItems funktion.
Northdegree
19.03.2012, 21:45
Hallo liebe Leute,
ich bin immoment dabei einen Admin-Mod für Garry's Mod 13 zu programmieren und hänge an einer (nett ausgedrückt) doofen Stelle fest.
Es geht um die Zeile 112 in meinem Script.
Diese Zeile lautet:
if ( #self:GetSelectedItems() > 0 ) then
Wenn ich den Script testweise anschalte bekomme ich folgenden Fehler:
[lua\ev_menu\tab_players_controls.lua:112] attempt to call method 'GetSelectedItems' (a nil value)
Es hat für mich den anschein, als ob die Funktion "GetSelectedItems" in Garry's Mod 13 nicht mehr exestent ist.
Gibt es eine alternative zu dieser Funktion oder einen Weg dies per selbstgeschriebener Funktion zu realisieren?
Mit freundlichen Grüßen
Northdegree
Hey, guck mal nach ob "self" auch wirklich die Liste oder woraus du es auslesen willst ist.
Northdegree
21.03.2012, 19:44
sollte es sein ^^ ... du hast den code ja gesehen.. aber es funktioniert ja immernoch nicht.
http://h9.abload.de/img/dcomboboxxalql.png
https://docs.google.com/document/d/1khSuIYrAMkqXu7wlH5YRJNwz6hOH6Xqi5lqBhE3x6gA/edit?pli=1
Northdegree
21.03.2012, 20:47
Is mir klar, aber es funktioniert nicht.
Northdegree
22.03.2012, 14:05
Nur nochmal der vollständigkeitshalber:
derma.DefineControl( "EPlayerList", "Stylish player list", PANEL, "DComboBox" )
PlayerList = vgui.Create( "EPlayerList", pnl )
PlayerList:SetPos( 0, 0 )
PlayerList:SetSize( self.Width, pnl:GetParent():GetTall() - 58 )
function PANEL:Populate()
local selectedPlayers = {}
if ( #PlayerList:GetSelectedItems() > 0 ) then
for _, item in ipairs( PlayerList:GetSelectedItems() ) do
if ( IsValid( item.Player ) ) then table.insert( selectedPlayers, item.Player ) end
end
end
PlayerList:Clear()
local players = {}
for _, pl in ipairs( player.GetAll() ) do table.insert( players, { Name = pl:Nick(), Ply = pl } ) end
table.SortByMember( players, "Name", function( a, b ) return a > b end )
for _, pl in ipairs( players ) do
local item = PlayerList:AddPlayer( pl.Ply )
item.DoClick= function( mc )
if ( item.LastClick and os.clock() < item.LastClick + 0.3 and item.LastX == gui.MouseX() and item.LastY == gui.MouseY() ) then
item:MoveTo( -PlayerList.Parent.Width, 0, 0.1 )
item.Parent.PluginList:MoveTo( 0, 0, 0.1 )
item.Parent.ButPlugins:SetButtonText( "Players" )
end
item.LastClick = os.clock()
item.LastX, item.LastY = gui.MousePos()
end
if ( table.HasValue( selectedPlayers, pl.Ply ) ) then
PlayerList:SelectItem( item )
end
end
if ( #PlayerList:GetSelectedItems() == 0 ) then
PlayerList:SelectFirstItem()
end
end
https://docs.google.com/document/d/1khSuIYrAMkqXu7wlH5YRJNwz6hOH6Xqi5lqBhE3x6gA/edit?pli=1
Danke für diesen Link. In den Docs werden ja schon mal einige der Bug-Herde erklärt und können mit Hilfe dessen beseitigt werden.
Powered by vBulletin® Version 4.2.2 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.