DlistView addline

  • Initiateur de la discussion
thepsyca

thepsyca

Psychopathe
Messages
2 164
Score réaction
648
Points
365
Bonsoir,

Je souhaite AddLine à une DListView seulement celle-ci ne m'affiche pas les "nom" mais les prend bien en compte :

Les codes :

Code:
local Bcl = vgui.Create("DButton", frame1) Bcl:SetSize(200, 30) Bcl:SetPos(235, 150) Bcl:SetText("Voir les données npc") Bcl:SetFont("fontclose") Bcl:SetTextColor(Color(255, 255, 255, 255)) Bcl.Paint = function(self, w, h) local kcol if self.hover then kcol = Color(255, 150, 150, 255) else kcol = Color(175, 100, 100) end draw.RoundedBoxEx(0, 0, 0, w, h, Color(255, 150, 150, 255), false, false, true, true) draw.RoundedBoxEx(0, 1, 0, w - 2, h - 1, kcol, false, false, true, true) end Bcl.DoClick = function() ShowDataNPC() net.Start("findbotdata") net.SendToServer(ply) end Bcl.OnCursorEntered = function(self) self.hover = true end Bcl.OnCursorExited = function(self) self.hover = false end

Code:
local function ShowDataNPC()
local frame1 = vgui.Create("DFrame") frame1:SetTitle("") frame1:SetSize(400, 300) frame1:SetAlpha(0) frame1:AlphaTo(255, 0.25) frame1:Center() frame1:ShowCloseButton(true) frame1:MakePopup() frame1.Paint = function(self, w, h) draw.RoundedBox(0, 0, 0, w, h, Color(0, 0, 0, 255)) draw.RoundedBox(0, 0, 0, w, 30, Color(226, 0, 0, 250)) draw.DrawText("NLF BOT : Données BOT", "nlf_bot_textprincipal", self:GetWide() / 2, 4, color_white, TEXT_ALIGN_CENTER) surface.SetDrawColor(0, 0, 0) surface.DrawOutlinedRect(0, 0, w, h) end local DataBotList = vgui.Create("DListView", frame1) DataBotList:Dock(FILL) DataBotList:DockMargin(5, 5, 5, 5) DataBotList:SetWidth(565) DataBotList:SetMultiSelect(false) DataBotList:AddColumn("Nom du bot") DataBotList.OnRowRightClick = function(DataBotList, line) local DropDown = DermaMenu() DropDown:AddOption(nlf.bot.config.llanguage[loc].nlfbotl62, function() BotDelete = tostring(DataBotList:GetLine(line):GetValue(1)) net.Start("deleteonedataclient") net.WriteString(BotDelete) net.SendToServer(ply) DataBotList:Clear() end) DropDown:AddSpacer() DropDown:Open() end net.Receive("sendbotdata", function() local Namebot = net.ReadString() DataBotList:Clear() timer.Simple( 1, function() DataBotList:AddLine(NameBot) end) end)
end

Code:
net.Receive("findbotdata", function(len, pl) for k, v in pairs(file.Find("nlf/" .. string.lower(game.GetMap()) .. "/*.txt", "DATA")) do local string_sub1 = string.gsub(tostring(v), "nlf/" .. string.lower(game.GetMap()) .. "/npc_", "" )
local string_sub2 = string.gsub(string_sub1, ".txt", "" ) print(string_sub2) net.Start( "sendbotdata" ) net.WriteString(string_sub2) net.Send(pl) end
end)
 
Dernière édition:
Jenni Gort

Jenni Gort

Geek suprême
Messages
207
Score réaction
67
Points
130
Pourquoi le AddLine tu le met dans un timer ?
EDIT:
Essaye sa a la place du timer:
Code:
for k,v in pairs(Namebot) do DataBotList:AddLine(NameBot)
end
 
  • Initiateur de la discussion
thepsyca

thepsyca

Psychopathe
Messages
2 164
Score réaction
648
Points
365
Jenni Gort à dit:
Pourquoi le AddLine tu le met dans un timer ?
Au début elle n'était pas un timer donc je penser que la fonction se jouer en même temps que l'ouverture du panel donc j'ai mis un timer pour être sur qu'elle fonctionne après l'ouverture de celui-ci
 
Jenni Gort

Jenni Gort

Geek suprême
Messages
207
Score réaction
67
Points
130
thepsyca à dit:
Au début elle n'était pas un timer donc je penser que la fonction se jouer en même temps que l'ouverture du panel donc j'ai mis un timer pour être sur qu'elle fonctionne après l'ouverture de celui-ci
j'ai edit mon poste regarde ;)
 
Jenni Gort

Jenni Gort

Geek suprême
Messages
207
Score réaction
67
Points
130
Jenni Gort à dit:
j'ai edit mon poste regarde ;)
Edit:
J'ai dit dla merde essaye plutot de convertir Namebot en table , apres fait sa pour l'afficher :
Code:
for k,v in pairs(Namebot) do DataBotList:AddLine(tostring(v))
end
 
  • Initiateur de la discussion
thepsyca

thepsyca

Psychopathe
Messages
2 164
Score réaction
648
Points
365
Jenni Gort à dit:
Edit:
J'ai dit dla merde essaye plutot de convertir Namebot en table , apres fait sa pour l'afficher :
Code:
for k,v in pairs(Namebot) do DataBotList:AddLine(tostring(v))
end
EDIT : En faisant une modif la DlistView ne m'affiche que le dernier nom sur les trois existants
Code:
net.Receive("sendbotdata", function(len, pl) -- ICI LEN, PL local Namebot = net.ReadString() DataBotList:Clear() DataBotList:AddLine(Namebot) print(Namebot ) end)

Code:
 net.Receive("sendbotdata", function(len, pl) local Namebot = net.ReadTable() DataBotList:Clear() for k,v in pairs(Namebot) do DataBotList:AddLine(tostring(v)) end print(Namebot ) end)

Code:
net.Receive("findbotdata", function(len, pl)
local string_sub2 = {} for k, v in pairs(file.Find("nlf/" .. string.lower(game.GetMap()) .. "/*.txt", "DATA")) do local string_sub1 = string.gsub(tostring(v), "nlf/" .. string.lower(game.GetMap()) .. "/npc_", "" )
local string_sub2 = string.gsub(string_sub1, ".txt", "" ) -- print(string_sub2) net.Start( "sendbotdata" ) net.WriteTable(string_sub2) net.Send(pl) end
end)

bad argument #1 to 'pairs' (table expected, got string)
 
Dernière édition:
Jenni Gort

Jenni Gort

Geek suprême
Messages
207
Score réaction
67
Points
130
thepsyca à dit:
Négatif

EDIT : En faisant une modif la DlistView ne m'affiche que le dernier nom sur les trois existants
Code:
net.Receive("sendbotdata", function(len, pl) -- ICI LEN, PL local Namebot = net.ReadString() DataBotList:Clear() DataBotList:AddLine(Namebot) print(Namebot ) end)
Essaye sa:
Code:
net.Receive("findbotdata", function(len, pl)
for k, v in pairs(file.Find("nlf/" .. string.lower(game.GetMap()) .. "/*.txt", "DATA")) do net.Start( "sendbotdata" ) net.WriteTable(v) net.Send(pl)
end
end)

Code:
local function ShowDataNPC()
local frame1 = vgui.Create("DFrame") frame1:SetTitle("") frame1:SetSize(400, 300) frame1:SetAlpha(0) frame1:AlphaTo(255, 0.25) frame1:Center() frame1:ShowCloseButton(true) frame1:MakePopup() frame1.Paint = function(self, w, h) draw.RoundedBox(0, 0, 0, w, h, Color(0, 0, 0, 255)) draw.RoundedBox(0, 0, 0, w, 30, Color(226, 0, 0, 250)) draw.DrawText("NLF BOT : Données BOT", "nlf_bot_textprincipal", self:GetWide() / 2, 4, color_white, TEXT_ALIGN_CENTER) surface.SetDrawColor(0, 0, 0) surface.DrawOutlinedRect(0, 0, w, h) end local DataBotList = vgui.Create("DListView", frame1) DataBotList:Dock(FILL) DataBotList:DockMargin(5, 5, 5, 5) DataBotList:SetWidth(565) DataBotList:SetMultiSelect(false) DataBotList:AddColumn("Nom du bot") DataBotList.OnRowRightClick = function(DataBotList, line) local DropDown = DermaMenu() DropDown:AddOption(nlf.bot.config.llanguage[loc].nlfbotl62, function() BotDelete = tostring(DataBotList:GetLine(line):GetValue(1)) net.Start("deleteonedataclient") net.WriteString(BotDelete) net.SendToServer(ply) DataBotList:Clear() end) DropDown:AddSpacer() DropDown:Open() end net.Receive("sendbotdata", function() local Namebot = net.ReadTable() DataBotList:Clear() for k,v in pairs(Namebot) do DataBotList:AddLine(tostring(v)) end end)
end

EDIT: petite correction ^^
 
Dernière édition:
  • Initiateur de la discussion
thepsyca

thepsyca

Psychopathe
Messages
2 164
Score réaction
648
Points
365
Jenni Gort à dit:
Essaye sa:
Code:
net.Receive("findbotdata", function(len, pl) local testsa = file.Find("nlf/" .. string.lower(game.GetMap()) .. "/*.txt", "DATA") net.Start( "sendbotdata" ) net.WriteTable(testsa) net.Send(pl)
end)

Code:
local function ShowDataNPC()
local frame1 = vgui.Create("DFrame") frame1:SetTitle("") frame1:SetSize(400, 300) frame1:SetAlpha(0) frame1:AlphaTo(255, 0.25) frame1:Center() frame1:ShowCloseButton(true) frame1:MakePopup() frame1.Paint = function(self, w, h) draw.RoundedBox(0, 0, 0, w, h, Color(0, 0, 0, 255)) draw.RoundedBox(0, 0, 0, w, 30, Color(226, 0, 0, 250)) draw.DrawText("NLF BOT : Données BOT", "nlf_bot_textprincipal", self:GetWide() / 2, 4, color_white, TEXT_ALIGN_CENTER) surface.SetDrawColor(0, 0, 0) surface.DrawOutlinedRect(0, 0, w, h) end local DataBotList = vgui.Create("DListView", frame1) DataBotList:Dock(FILL) DataBotList:DockMargin(5, 5, 5, 5) DataBotList:SetWidth(565) DataBotList:SetMultiSelect(false) DataBotList:AddColumn("Nom du bot") DataBotList.OnRowRightClick = function(DataBotList, line) local DropDown = DermaMenu() DropDown:AddOption(nlf.bot.config.llanguage[loc].nlfbotl62, function() BotDelete = tostring(DataBotList:GetLine(line):GetValue(1)) net.Start("deleteonedataclient") net.WriteString(BotDelete) net.SendToServer(ply) DataBotList:Clear() end) DropDown:AddSpacer() DropDown:Open() end net.Receive("sendbotdata", function() local Namebot = net.ReadTable() DataBotList:Clear() for k,v in pairs(Namebot) do DataBotList:AddLine(tostring(v)) end end)
end
Merci, j'essaie demain
 
  • Initiateur de la discussion
thepsyca

thepsyca

Psychopathe
Messages
2 164
Score réaction
648
Points
365
Jenni Gort à dit:
Essaye sa:
Code:
net.Receive("findbotdata", function(len, pl)
for k, v in pairs(file.Find("nlf/" .. string.lower(game.GetMap()) .. "/*.txt", "DATA")) do net.Start( "sendbotdata" ) net.WriteTable(v) net.Send(pl)
end
end)

Code:
local function ShowDataNPC()
local frame1 = vgui.Create("DFrame") frame1:SetTitle("") frame1:SetSize(400, 300) frame1:SetAlpha(0) frame1:AlphaTo(255, 0.25) frame1:Center() frame1:ShowCloseButton(true) frame1:MakePopup() frame1.Paint = function(self, w, h) draw.RoundedBox(0, 0, 0, w, h, Color(0, 0, 0, 255)) draw.RoundedBox(0, 0, 0, w, 30, Color(226, 0, 0, 250)) draw.DrawText("NLF BOT : Données BOT", "nlf_bot_textprincipal", self:GetWide() / 2, 4, color_white, TEXT_ALIGN_CENTER) surface.SetDrawColor(0, 0, 0) surface.DrawOutlinedRect(0, 0, w, h) end local DataBotList = vgui.Create("DListView", frame1) DataBotList:Dock(FILL) DataBotList:DockMargin(5, 5, 5, 5) DataBotList:SetWidth(565) DataBotList:SetMultiSelect(false) DataBotList:AddColumn("Nom du bot") DataBotList.OnRowRightClick = function(DataBotList, line) local DropDown = DermaMenu() DropDown:AddOption(nlf.bot.config.llanguage[loc].nlfbotl62, function() BotDelete = tostring(DataBotList:GetLine(line):GetValue(1)) net.Start("deleteonedataclient") net.WriteString(BotDelete) net.SendToServer(ply) DataBotList:Clear() end) DropDown:AddSpacer() DropDown:Open() end net.Receive("sendbotdata", function() local Namebot = net.ReadTable() DataBotList:Clear() for k,v in pairs(Namebot) do DataBotList:AddLine(tostring(v)) end end)
end

EDIT: petite correction ^^
Négatif :
: bad argument #1 to 'pairs' (table expected, got string)
 
Jenni Gort

Jenni Gort

Geek suprême
Messages
207
Score réaction
67
Points
130
  • Initiateur de la discussion
thepsyca

thepsyca

Psychopathe
Messages
2 164
Score réaction
648
Points
365
Jenni Gort à dit:
essaye de voir la ou sa bug avec des PrintTable
Le soucis viens côté serveur ^^
Code:
for k, v in pairs(file.Find("nlf/" .. string.lower(game.GetMap()) .. "/*.txt", "DATA")) do
 
Jenni Gort

Jenni Gort

Geek suprême
Messages
207
Score réaction
67
Points
130
thepsyca à dit:
Le soucis viens côté serveur ^^
Code:
for k, v in pairs(file.Find("nlf/" .. string.lower(game.GetMap()) .. "/*.txt", "DATA")) do
je m'en doutai :D
peut etre comme sa:
Code:
net.Receive("findbotdata", function(len, pl)
local test = file.Find("nlf/" .. string.lower(game.GetMap()) .. "/*.txt", "DATA") net.Start( "sendbotdata" ) net.WriteTable(test) net.Send(pl)
end)
edit j'ai test ce que j'ai fait coté client sa fonctionne maintenant il faut trouvé pourquoi sa passe pas coté server
 
  • J'aime
Réactions: thepsyca
  • Initiateur de la discussion
thepsyca

thepsyca

Psychopathe
Messages
2 164
Score réaction
648
Points
365
Jenni Gort à dit:
je m'en doutai :D
peut etre comme sa:
Code:
net.Receive("findbotdata", function(len, pl)
local test = file.Find("nlf/" .. string.lower(game.GetMap()) .. "/*.txt", "DATA") net.Start( "sendbotdata" ) net.WriteTable(test) net.Send(pl)
end)
edit j'ai test ce que j'ai fait coté client sa fonctionne maintenant il faut trouvé pourquoi sa passe pas coté server
Eh mercé
 
Discord d'entraide
Rejoignz-nous sur Discord