[LUA] "Attempt to concatenate local (a nil value) ?
Übersicht

ToastyBetreff: [LUA] "Attempt to concatenate local (a nil value) ? |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Tag,
ich verwende LUA für mein Multiplayer Projekt, und in den Funktionen habe ich anscheinend einen kleinen Bug, den ich nicht finde. Hier die Meldung aus der Logfile: Zitat: 17:37:05 (ERROR): skillSDK.lua:27: attempt to concatenate local 'cmd' (a nil value)
Die Funktion: Code: [AUSKLAPPEN] function AddHandle(main,cmd,p1,p2,p3,p4)
if(p4 == "") then if(p3 == "") then if(p2 == "") then return main.."~"..cmd.."~"..p1 --Hier ist der Fehler irgendwo else return main.."#"..cmd.."*"..p1.."*"..p2 end else return main.."#"..cmd.."*"..p1.."*"..p2.."*"..p3 end else return main.."#"..cmd.."*"..p1.."*"..p2.."*"..p3.."*"..p4 end end Ich hoffe jemand hat eine Idee... Gruß Toast. PS: Ich wusste nicht wo ich es genau posten sollte, aber ich denke mal hier ist es richtig? ![]() EDIT: Die Returns in der Funktion sind nicht alle gleich, ich weiß... Hab erstmal zum Ausprobieren ob der Fehler daran liegt nur beim Ersten Return die Zeichen gewechselt. |
||
@AMD Phenom BE X4 2,5Ghz(Overclocked 2,61Ghz); 4GB DDR2; 512MB nVidia GeForce 8400gs; Win7 Home Premium 64bit
Lua for President! |
![]() |
Noobody |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nun, da steht doch relativ genau, was der Fehler ist? Du versuchst, die Variable 'cmd' an einen String anzuhängen ("to concatenate" = verketten auf Englisch), was aber fehlschlägt, da cmd den Wert nil hat (so etwas ähnliches wie "Null" in B3D).
Zur Lösung des Problems musst du entweder dafür sorgen, dass cmd nicht nil ist, oder den entsprechenden Fall abfangen und cmd nicht an den String anhängen. |
||
Man is the best computer we can put aboard a spacecraft ... and the only one that can be mass produced with unskilled labor. -- Wernher von Braun |
Toasty |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Okay, aber wenn das alles in einer Funktion ist, kann es ja noch nicht genau deklariert werden...
Wie sag ich ihm dann, dass die Variable "cmd" ein String ist? |
||
@AMD Phenom BE X4 2,5Ghz(Overclocked 2,61Ghz); 4GB DDR2; 512MB nVidia GeForce 8400gs; Win7 Home Premium 64bit
Lua for President! |
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Gar nicht, da nur Werte Datentypen haben. Aber vielleicht helfen dir toString / type | ||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
mpmxyz |
![]() Antworten mit Zitat ![]() |
---|---|---|
In Lua gibt es gar keine Deklarationen. (Von lokalen Variablen mal abgesehen.)
Daher haben die Werte einen Datentyp. Diesen kannst du so abfragen: Code: [AUSKLAPPEN] if type(value) == "string" then
... --Zusammenfügen der Strings end Ich kann dir diese Seite zum Nachschlagen empfehlen: http://www.lua.org/manual/5.1/manual.html mfG mpmxyz |
||
Moin Moin!
Projekte: DBPC CodeCruncher Mandelbrot-Renderer |
Toasty |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Okay ich hab es jetzt mit tostring(cmd) gelöst.
Danke für die Hilfe ![]() |
||
@AMD Phenom BE X4 2,5Ghz(Overclocked 2,61Ghz); 4GB DDR2; 512MB nVidia GeForce 8400gs; Win7 Home Premium 64bit
Lua for President! |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group