Register for your free account! | Forgot your password?

Go Back   elitepvpers > Blogs > Metin2 Stuff
You last visited: Today at 04:59

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Rate this Entry

Lua - Variablendefinition

Posted 09/06/2012 at 10:01 by Mijago
Updated 09/06/2012 at 17:30 by Mijago

Bitte Schreibt Verbesserungsvorschläge als Kommentar unter diesen Post.

Blöcke
In Lua wird ein Funktions-"Block" durch jeglichen Befehl gestartet, der mit end beendet wird. Jede einzelne geladene Datei zählt hierbei auch als eigener Block.
Beispiel:
PHP Code:
if == b then
    
-- Block 1
end

do
    -- 
Block 2
    
do
        -- 
Block 3
        
-- Die lokalen Variablen von Block 2 sind hier vorhandenjedoch kann Block 2
        
-- nicht auf die lokalen Variablen von Block 3 zugreifen.
    
end
end 
Wie man sieht, wird zur besseren lesbarkeit der Inhalt eines jeden Blocks um einen Tab (oder eine immer gleichbleibende Anzahl von Leerzeichen, ich empfehle 2 bis 4) eingerückt. Zu diesem Zweck spricht man auch bei Tabellen und Funktionen von Blöcken.


Globale und lokale Definition von Variablen
Man kann Variablen global oder lokal definieren. Der unterschied liegt darin, dass globale Variablen, nachdem sie definiert wurden, später an jeder Stelle abgerufen werden können. Lokale Variablen hingegen existieren nur in dem Block, in denen sie definiert wurden, und in dessen Unterblöcken. Um eine Variable als lokale Variable zu definieren, setzt man das wort local vor ihren Namen.

Beispiel für globale Variablen:
PHP Code:
variable 1
heinz    
4
karl     
'Maus' 
Beispiel für lokale Variablen:
PHP Code:
local variable 1
local horst    
= {}
local herbert  
Lokale Variablen sind, bis auf die Zugriffsorte, identisch mit globalen.

Variablentypen
Die grundlegenden Variablentypen in Lua sind String, Number, Floating Number, Table und Function.

Strings
Ein String ist nichts anderes als ein simpler Text. Um eine Variable als String zu markieren, gibt es in Lua 3 Wege:
PHP Code:
local var1 "Hallo"
local var2 'Hallo'
local var3 = [[Hallo]] 
Am gängigsten sind die ersten zwei Möglichkeiten. Die besonderheit bei [[.-]] liegt darin, dass Zeilenumbrüche möglich sind und als \n interpretiert werden.
Information für Questwriter: [[.-]] ist in *.quest-Dateien wegen des Questcompilers nicht zu empfehlen!
Zu Strings kann man andere Variablen hinzufügen, indem man .. benutzt.
PHP Code:
local e   "Hallo"
local d   "Peter"
local end e.." "..d
-- AusgabeHallo Peter 
Nur Empfehlenswert für Strings, Numbers und Floats. Tables nur bei korrekt angegebener Metatabelle (vielleicht erkläre ich diese später genau).
Number & Floating Number
Eine Number-Variable ist nichts anderes als in anderen Sprachen ein Double - eine Zahl. Eine Floating Number, kurz Float, ist eine Number mit Nachkommazahlen, eingeleitet durch einen Punkt.
PHP Code:
local num1   123
local num2   
456
local float1 
1.23
local float2 
4.56 
Table
Ich werde Tabellen an dieser Stelle nur kurz ansprechen, für sie lege ich einen extra Blogeintrag an, da sie eines der größten Themen in Lua sind.
Eine Table, alias Tabelle oder Array, ist eine Sammlung von Daten. Tables können alle Variablentypen beinhalten, auch sich selbst. Eingeleitet wird eine Tabelle durch { und beendet durch }. Als Indizes kann man Numbers, Strings oder beides benutzen.
Im Folgenden Beispiel zwei äquivalente Tabellen:
PHP Code:
local tab = {
  
4,5
  
["name"] = "Herbert",
  [
"miep"]  = function() return 2 end
}

tab = {}
tab[1]   = 4
tab
[2]   = 5
tab
.name "Herbert"
tab.miep = function() return 2 end 
Es gibt verschiedenste Wege, Eine Tabelle durch Schleifen durchzugehen oder zu bearbeiten.

Functions
In einer Funktion können öfter genutzte Funktionsabläufe angegeben werden, um sie rekursiv zu nutzen oder den Hauptcode zu verkürzen.
PHP Code:
function(a)
   print(
'Eingabe: '..a)
end 
Posted in Tutorials, Lua
Views 723 Comments 3 Email Blog Entry
« Prev     Main     Next »
Total Comments 3

Comments

  1. Old Comment
    Du hast auch langeweile, aber nice
    permalink
    Posted 09/06/2012 at 10:28 by Hanashi Hanashi is offline
  2. Old Comment
    Der hat 24/7 langeweile, war schon immer so <3 xD
    permalink
    Posted 09/06/2012 at 10:29 by JohnSilver1992 JohnSilver1992 is offline
  3. Old Comment
    Lasst mich Ich brauch doch auch was zu tun xD
    permalink
    Posted 09/06/2012 at 10:31 by Mijago Mijago is offline
 

All times are GMT +1. The time now is 05:00.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.