KINGx - Das inoffizielle PlayStation Forum & News Portal

Normale Version: LUA: Variablen vergleichen
Sie sehen gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,
für ein Homebrew welches ich in Lua mache, brauche ich zwei Variablen, die ich vergleiche.

Also ich habe Variable a und b.
a hat den Wert 2
b einen anderen (zB 10 oder 5 oder 2)

Nun habe ich folgenden script

Code:
if a == b then
[...]
end

if a ~= b then
[...]
end


Es wird aber immer der zweite Teil ausgeführt (klar a ist ja nicht b)
Aber wie kann ich es schaffen, das auch mal die Werte von a und b verglichen werden?

Ich habe zwar nicht so viel Ahnung von Lua aber in C ist es so, das du die Variablen erst deklarieren musst. Vielleicht hilft es ja.
Danke, von declarieren habe ich noch nie etwas gehört.Ich werde mal bei Bumuckl schauen
Habe was gefunden, bin mir sicher es hilft dir Wink

Variablen

Wie in eigentlich jeder anderen Programmiersprache, gibt es in LUA auch Variablen.
Eine Variable ist eigentlich ein Behälter in dem eine Zahl enthalten ist, dieser Behälter hat auch einen Namen, man kann ihn nennen wie man will, nur in seinem Namen dürfen keine Leerzeichen vorhanden sein.
Sie nützen euch später sehr, wenn ihr z.B eine Zahl öfters irgentwo hinschreiben müsst, könnt ihr anstat die Zahl, den Variablennamen schreiben.

Variablen werden in LUA folgend deklariert:

Code:
Zahl=1


Also einfach den Namen der Variable (Hier Zahl) und dahinter der Wert, der in ihm gespeichert werden soll (Hier 1)

Dies geht auch mit Strings (Strings=Zeihenketten)


Code:
Satz="Das ist ein String"


Strings werden genauso wie Zahlen deklariert sie müssen nur zwischen 2 " stehen.

Also verhaltet euch eine Variable wird immer so deklariert:

Code:
NAME=WERT


Den NAME ersetzt ihr durch einen Namen eurer Wahl und den WERT durch einen Wert euer Wahl (Zahl oder String)

Wenn ihr vor euren Variablennamen einen "local" (ohne "") setzt, dann gibt es diese Variable nur für die Funktion in der sie deklariert wurde, und nicht hinüber hinaus. Wenn die Funktion also aufhört gibt es die Variable nicht mehr.

Code:
local a=1

-blue7: höhere LUA-Mathematik!!!

@ Philix: Vielleicht hast du etwas vertauscht! Machs mal so:

Code:
if a ~= b then


in das hier umändern:

Code:
if a =~ b then

Wie phillix das gemacht hat ist schon richtig Wink
Nur frage ich mich was du genau vergleichen willst?

Code:
--Ist a größer als b dann
if a > b then
[...]
--ist a kleiner als b
elseif a < b then
[...]
--hat a den gleichen wert als b
elseif a == b then
[...]
--oder hat a einen ganz anderen wert als b
elseif a ~= b then
[...]
end

Referenz-URLs