Erreur lua: bad argument #1 to 'WriteString' (string expected, got nil)

  • Initiateur de la discussion
M

Melonne

Bambi
Messages
33
Score réaction
9
Points
30
Bonjour,

Je suis en train de modifié le panel d'un addon du nom de "DarkRPCraft" cependant j'ai un petit problème. Lorsque que j'appuis sur mon bouton, celui-ci me fait une erreure
(j'ai remplacé la fonction de base qui était un DComboBox en un DButton)

Ancien code:
Code:
List = vgui.Create( "DComboBox", sFrame) List:SetPos(310,155) List:SetSize( 230, 32 ) List:SetFont("Trebuchet22") List:SetColor(Color(224,224,224)) List:SetValue("CRAFTER OBJETS..") List.Paint = function() draw.RoundedBox( 0, 0, 0, ScrW(), ScrH(), Color( 34, 34, 34, 240)) draw.RoundedBox( 0, 206, 0, 25, ScrH(), Color( 224, 224, 224)) end for k, v in pairs( Crafting_Recipes ) do if v.TheName then List:AddChoice(v.TheName) end List.OnSelect = function( panel, index, value, data ) net.Start("TheID") net.WriteString(value) net.SendToServer() chat.AddText( Color(0,100,255), "[TABLE CRAFT]", Color(255,255,255), " To craft a "..value.." : " ..Crafting_Recipes[value].HowTo ) end end
Nouveau code:
Code:
Liste = vgui.Create( "DScrollPanel", sFrame ) Liste:SetPos(535,120) Liste:SetSize( 415,320 ) Liste.Paint = function() draw.SimpleTextOutlined( "Plans", "mailartrubberstamp24",0, 3, Color( 255, 255, 255, 255), TEXT_ALIGN_LEFT, 0, 0, Color( 0, 0, 0 ) ) draw.RoundedBox( 0, 0, 0, 400, 320, Color( 34, 34, 34, 200)) end for k, v in pairs( Crafting_Recipes ) do if v.TheName then panel = Liste:Add("DButton") panel:SetTall(100) panel:SetText("TEST") panel:Dock(TOP) panel:DockMargin(0, 0, 0, 0) panel.Paint = function(me) draw.RoundedBox( 0, 0, 15, 415, 100, Color( 34, 34, 34, 200)) draw.DrawText(v.TheName, "Titre", 0, 20, Color(255, 255, 255, 255),TEXT_ALIGN_LEFT) draw.DrawText(v.HowTo, "Description", 0, 50, Color(255, 255, 255, 255),TEXT_ALIGN_LEFT) end end panel.DoClick = function( panel, index, value, data ) surface.PlaySound("ambient/water/rain_drip1.wav") net.Start("TheID") net.WriteString(value) net.SendToServer() chat.AddText( Color(0,100,255), "[TABLE DE FORGERON]", Color(255,255,255), " Fabrication de "..value.." : " ..Crafting_Recipes[value].HowTo ) end end


Erreur:
Code:
[ERROR] addons/darkrpcraft/lua/entities/crafting_table/cl_init.lua:305: bad argument #1 to 'WriteString' (string expected, got nil) 1. WriteString - [C]:-1 2. DoClick - addons/darkrpcraft/lua/entities/crafting_table/cl_init.lua:305 3. unknown - lua/vgui/dlabel.lua:232
Merci d'avance à tout ceux qui pourront/voudront m'aider
 
Dernière édition:
  • Initiateur de la discussion
M

Melonne

Bambi
Messages
33
Score réaction
9
Points
30
Yellow-Star à dit:
C'est laquelle la ligne 305 ?
Ligne 26 dans le nouveau code ^^

"net.WriteString(value)"
 
S

skillztv_

Geek suprême
Messages
248
Score réaction
47
Points
125
Dans le code de base il y a un set value : " List:SetValue("CRAFTER OBJETS..") "

Alors que dans le second, il n'y en a pas. Donc dans le second la value = nil
 
  • Initiateur de la discussion
M

Melonne

Bambi
Messages
33
Score réaction
9
Points
30
skillztv_ à dit:
Dans le code de base il y a un set value : " List:SetValue("CRAFTER OBJETS..") "

Alors que dans le second, il n'y en a pas. Donc dans le second la value = nil
Merci énormément, j'avais pas vu. Je vais voir de ce côté là ^^
 
  • Initiateur de la discussion
M

Melonne

Bambi
Messages
33
Score réaction
9
Points
30
Je me suis un peu renseigné et non, en faite y'a pas de rapport

Liste:SetValue sert à remplir le DComboBox (qui était l'ancien button par le quelle passait le script)
En gros pour avoir un truc comme ça:

Screenshot_121.png
 
ZarosOVH

ZarosOVH

Modérateur
Membre du Staff
Messages
6 527
Score réaction
5 488
Points
1 295
A la base tu veux envoyer quoi ? oO Car dans l’ancien code net.WriteString est lié au faite que tu peux avoir plusieurs élément dans ton DComboBox mais là comme tu remplaces par un boutton faudrais savoir ce que tu veux envoyer
 
  • Initiateur de la discussion
M

Melonne

Bambi
Messages
33
Score réaction
9
Points
30
En faite logiquement il faut envoyer:

Crafting_Recipes[value]

Code:
Crafting_Recipes = {}
Crafting_Recipes["Bren (mitrailleuse)"] = { TheName = "Bren (mitrailleuse)", HowTo = "Tu as besoin de 6 ressorts | 20 barres en fer | 3 bois", Materials = { spring = 6, ironbar = 15, wood = 3 }, Create = "tfa_pig_doi_bren",
}
Crafting_Recipes["Berreta Modello 38 (Fusil)"] = { TheName = "Berreta Modello 38 (Fusil)", HowTo = "Tu as besoin de 10 barres en fer | 1 clés | 4 ressorts", Materials = { ironbar = 10, wrench = 1, spring = 4 }, Create = "weapon_wf_mab38",
}
Avant les plans des armes étaient sous DCombox Box effectivement et pour l'esthétique j'ai essayé de le mettre sous forme de bouton mais ça coince au niveau du net.WriteString ouais

Screenshot_122.png
 
thepsyca

thepsyca

Psychopathe
Messages
2 164
Score réaction
648
Points
365
Melonne à dit:
En faite logiquement il faut envoyer:

Crafting_Recipes[value]

Code:
Crafting_Recipes = {}
Crafting_Recipes["Bren (mitrailleuse)"] = { TheName = "Bren (mitrailleuse)", HowTo = "Tu as besoin de 6 ressorts | 20 barres en fer | 3 bois", Materials = { spring = 6, ironbar = 15, wood = 3 }, Create = "tfa_pig_doi_bren",
}
Crafting_Recipes["Berreta Modello 38 (Fusil)"] = { TheName = "Berreta Modello 38 (Fusil)", HowTo = "Tu as besoin de 10 barres en fer | 1 clés | 4 ressorts", Materials = { ironbar = 10, wrench = 1, spring = 4 }, Create = "weapon_wf_mab38",
}
Avant les plans des armes étaient sous DCombox Box effectivement et pour l'esthétique j'ai essayé de le mettre sous forme de bouton mais ça coince au niveau du net.WriteString ouais

Regarde la pièce jointe 10500
Alors envoies 'k' au lieu de 'value'
 
  • J'aime
Réactions: ZarosOVH
  • Initiateur de la discussion
M

Melonne

Bambi
Messages
33
Score réaction
9
Points
30
Problème résolue c'est bon, c'était bien une question avec k. Merci beaucoup les gars
 
Discord d'entraide
Rejoignz-nous sur Discord