attempt to concatenate X (a function value)

  • Initiateur de la discussion
thepsyca

thepsyca

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

Le soucis :

Code:
attempt to concatenate local 'filenpcName' (a function value)
Le code :

Code:
net.Receive("spawnbotpanel", function(len, pl) local filenpcName = net.ReadString if not filenpcName then pl:ChatPrint(nlf.bot.config.llanguage[loc].nlfbotl1 .. " " .. nlf.bot.config.llanguage[loc].nlfbotl2) return end if file.Exists("nlf/" .. string.lower(game.GetMap()) .. "/npc_" .. filenpcName .. ".txt", "DATA") then pl:ChatPrint(nlf.bot.config.llanguage[loc].nlfbotl1 .. " " .. nlf.bot.config.llanguage[loc].nlfbotl3 .. " " .. filenpcName .. nlf.bot.config.llanguage[loc].nlfbotl4) return end local npcVector = string.Explode(" ", tostring(ply:GetEyeTrace().HitPos)) local npcAngles = string.Explode(" ", tostring(ply:GetAngles() + Angle(0, -180, 0))) file.Write("nlf/" .. string.lower(game.GetMap()) .. "/npc_" .. filenpcName .. ".txt", "" .. npcVector[1] .. " " .. npcVector[2] .. " " .. npcVector[3] .. " " .. npcAngles[1] .. " " .. npcAngles[2] .. " " .. npcAngles[3] .. "", "DATA") pl:ChatPrint(nlf.bot.config.llanguage[loc].nlfbotl1 .. " " .. nlf.bot.config.llanguage[loc].nlfbotl5)
end)
filenpcName est un nom définis par l'admin avec un DTextEntry

La fonction doit permettre d'enregistré le cordonnées pour faire spawn le npc à chaque reboot.
 
C

Cezaw

Nouveau né
Messages
24
Score réaction
1
Points
15
Essaye de montrer le code du net envoyé [ vérifie le :
Code:
 net.ReadString()
]
 
  • Initiateur de la discussion
thepsyca

thepsyca

Psychopathe
Messages
2 164
Score réaction
648
Points
365
Cezaw à dit:
Essaye de montrer le code du net envoyé [ vérifie le :
Code:
 net.ReadString()
]
Code:
 local TextEntryID = vgui.Create( "DTextEntry", frame1 ) TextEntryID:SetPos( frame1:GetWide()/4, 130 ) TextEntryID:SetSize( 300, 30) TextEntryID:SetText( "Place le nom du npc ici" ) local YEScl = vgui.Create( "DButton", frame1 ) YEScl:SetSize( 300, 50 ) YEScl:SetPos( frame1:GetWide()/4, 230 ) YEScl:SetText( "Valider" ) YEScl:SetFont( "fontclose" ) YEScl:SetTextColor( Color( 0, 0, 0, 255 ) ) YEScl.Paint = function( self, w, h ) local kcol if self.hover then kcol = Color( 200, 200, 200, 255 ) else kcol = Color( 255, 255, 255 ) 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 YEScl.DoClick = function() local npcname = TextEntryID:GetText() net.Start("spawnbotpanel") net.WriteString(npcname) net.SendToServer(ply) frame1:Close() end
 
C

Cezaw

Nouveau né
Messages
24
Score réaction
1
Points
15
T'est côté serveur à quel moement la variable ply eest définis et commen tu récupère une donnée client [GetEyeTrace] côté serveur sans envois ?
essaye de remplace filenpcname par
Code:
 net.ReadString()
 
  • Initiateur de la discussion
thepsyca

thepsyca

Psychopathe
Messages
2 164
Score réaction
648
Points
365
Cezaw à dit:
T'est côté serveur à quel moement la variable ply eest définis et commen tu récupère une donnée client [GetEyeTrace] côté serveur sans envois ?
essaye de remplace filenpcname par
Code:
 net.ReadString()
Mon panel se trouve côté client ^^
 
C

Cezaw

Nouveau né
Messages
24
Score réaction
1
Points
15
J'imagine car tu as supprimé ton message que tu dois être sensible ? :D Ton côté serveur avec les local étaient faux pourquoi l'enlevé ce n'est pas une honte ^^
 
  • Initiateur de la discussion
thepsyca

thepsyca

Psychopathe
Messages
2 164
Score réaction
648
Points
365
Cezaw à dit:
J'imagine car tu as supprimé ton message que tu dois être sensible ? :D Ton côté serveur avec les local étaient faux pourquoi l'enlevé ce n'est pas une honte ^^
J'ai rien modifié du tout, t'invente quoi la mdrrrrrrr
 
C

Cezaw

Nouveau né
Messages
24
Score réaction
1
Points
15
bref comment as tu ces valeurs en serveur sachant que ces valeurs n'ont pas été définis ?
local npcVector = string.Explode(" ", tostring(ply:GetEyeTrace().HitPos))
local npcAngles = string.Explode(" ", tostring(ply:GetAngles() + Angle(0, -180, 0)))
 
  • Initiateur de la discussion
thepsyca

thepsyca

Psychopathe
Messages
2 164
Score réaction
648
Points
365
Code:
local npcVector = string.Explode(" ", tostring(pl:GetEyeTrace().HitPos))
local npcAngles = string.Explode(" ", tostring(pl:GetAngles() + Angle(0, -180, 0)))
Bah la valeur définis se trouve dans le tostring ^^
 
C

Cezaw

Nouveau né
Messages
24
Score réaction
1
Points
15
Nan mais je te parle du ply et non du pl
 
  • Initiateur de la discussion
thepsyca

thepsyca

Psychopathe
Messages
2 164
Score réaction
648
Points
365
Cezaw à dit:
Nan mais je te parle du ply et non du pl
Oui effectivement j'avais mis ply au lieu de pl ^^
 
  • Initiateur de la discussion
thepsyca

thepsyca

Psychopathe
Messages
2 164
Score réaction
648
Points
365
Après modification des pl l'erreur reste la même :

Précision elle viendrais de cette ligne d'après la console :

attempt to concatenate local 'filenpcName' (a function value)
Code:
if file.Exists("nlf/" .. string.lower(game.GetMap()) .. "/npc_" .. filenpcName .. ".txt", "DATA") then
 
C

Cezaw

Nouveau né
Messages
24
Score réaction
1
Points
15
dans ce cas la fais une verif de la directory file.IsDir je crois
 
Wabel

Wabel

Je ne sais pas quoi mettre
Messages
2 262
Score réaction
707
Points
330
Tu as oublier des () au net.ReadString() dans ´la variable locale
 
  • J'aime
Réactions: thepsyca
  • Initiateur de la discussion
thepsyca

thepsyca

Psychopathe
Messages
2 164
Score réaction
648
Points
365
WabelGame à dit:
Tu as oublier des () au net.ReadString() dans ´la variable locale
J'avais pas du tout fait gaffe, merci ^^
 
Discord d'entraide
Rejoignz-nous sur Discord