Variablen/-typen Tutorial
Hallo Leute,
willkommen zurück bei einem weiteren Tutorial in Pawn.
Ja dieses Tutorial geht auch wieder auf den Wunsch eines Users namens @Cooper: !
zurück, der sich im Thread Tutorialwünsche ein Tutorial über die unterschiedlichen Variablentypen bzw. allgemein Variablen gewünscht hat.
So genug geredet, fangen wir doch mal ganz simpel mit der Frage an:
Was sind Variablen überhaupt und wozu werden Sie gebraucht ?
Variablen sind wohl überhaupt das wichtigste in allen Programmiersprachen bzw. Skriptsprachen, denn nur mit deren Hilfe kann man ein halbwegs anständiges
Programm/Spiel etc. schreiben. Ohne diese könnte man keine veränderlichen Werte in einem Programm/Skript haben,das heißt man könnte zum Beispiel nicht mal das Level eines einzelnen Spielers abfragen bzw. setzen.
Deshalb ist es umso wichtiger für euch zu wissen, was Variablen sind und wozu Sie gebraucht werden.
Doch was Sind jetzt Variablen? Ich werde nun mal extra für die Anfänger unter uns versuchen, einen schönen Vergleich zu bringen,
damit Sie das auch richtig verstehen. Eine Variabel kannst du dir ungefähr wie eine Schublade vorstellen, die du beschriftest und deine
Sachen darin lagern kannst. (Im Skript z.B das Adminlevel,usw.)
Wenn du deine Sachen austauschen oder Sie verändern willst, kannst du den Inhalt immer wiederfinden dank der passenden 'Beschriftung'.
Genauso ungefähr ist es im Script auch. Man erstellt, also deklariert sie, und gibt ihr einen passenden Namen.
Nun kann man die Variable anhand ihres Namens ansprechen und Werte darin speichern ( So wie du z.B deine PC-Spiele in einer Schublade lagern kannst).
Wenn du jetzt willst, dass der Spieler Lebensenergie verliert, suchst du die Variable, die du davor deklariert hast, und veränderst ihren Wert.
Kurz und knapp gesagt, sind Variablen also Platzhalter,in der du Werte ablegen kannst.
Jedoch gibt es auch verschiedene Variablentypen in Pawn. Ein Typ davon sind die veränderlichen Variablen (kommt von 'variabel' = veränderlich) und
unveränderlichen Variablen (Konstanten). Die veränderlichen Variablen können wir jederzeit einen neuen Wert zuweißen, bei den unveränderlichen nicht.
( Wir werden uns hier hauptsächlich mit den veränderbaren befassen, da diese am meisten gebraucht werden)
Doch bei den Variablen gibt es nun auch verschiedene Variablentypen. Doch was sind jetzt Variablentypen ?
Um nochmal auf den Vergleich mit der Schublade einzugehen, kann man in eine Schublade nur eine bestimmte Anzahl von Dingen hineinlegen,
da Sie sonst 'überlaufen' würde. Man muss also in Pawn ( auch in anderen Skript-/Programmiersprachen) vor dem Deklarieren einer Variablen festlegen,
was und wie viel diese an Werten aufnehmen kann. Von diesen Datentypen gibt es einige.
Manche können nur wenige Werte annehmen, manche auch größere.
Die Schlussfolgerung ist, dass größere Datentypen auch mehr an 'Platz' im Skript verbrauchen.
Deshalb sollte man z.B einer Zeichenkette im Skript nicht 500 Zellen an Platz geben, wenn man nur 128 verbraucht oder weniger.
Die verschiedenen Datentypen folgen weiter unten.
Deklarieren und Definieren von Variablen
Wichtige Begriffe die man sich bei Variablen merken sollten, ist das so genannte, Deklarieren und Definieren von Variablen,
da diese in der "Fachsprache" häufig benutzt werden. Wenn man dem Skript sagt, welchen Datentypen eine Variable und Namen haben soll,
hat man diese deklariert. Wenn man der Variablen dann einen Wer zuweißt,hat man sie definiert.
Jetzt kommen wir dazu wie man diese sozusagen im Skript 'erstellt'.
Mit dem Schlüsselwort new können wir uns eine veränderbare Variable deklarieren.
Wichtig dabei ist jedoch, dass der Name nicht mit einem Opertaor (+/-/== etc.) oder einer Zahl anfängt, da wir sonst vom Compiler eine Fehlermeldung bekämen würden.
Dazu kommt, dass man Variablen global und lokal deklarieren kann.
Global bedeutet, dass man diese überall im Skript ansprechen kann, in dem man diese zum Beispiel in keinem Sichtbereich deklariert sondern ganz oben im Skript, lokal
bedeutet, dass die Variable nur in ihrem Sichtbereich gültig ist ( z.B in einer Funktion, der main Funktion z.B , oder einem If-Statement).
Mit dem Schlüsselwort const können wir eine unveränderbare Variable erstellen, deren Wert außerhalbt ihrer Deklarierung nicht mehr verändert werden darf, da
wir dann wieder eine Fehlermeldung vom Compiler bekämen würden.
Also hier wird nochmal beschrieben wie man eine Variable deklariert bzw. definiert.
Wir schreiben erst einmal das passende Schlüsselwort, also new oder static davor, kommt halt drauf an, was wir
für einen Variablentypen brauchen gefolgt von dem Variablentypen-Tag und danach der Variablenname. Zum Variablentypen-Tag kommen wir gleich.
Die verschiedenen Variablentypen
Jetzt kommen wir zu den Variablentypen.
Fließ-/Gleitkommazahl:
Auch genannt im Englischen 'float'. In dieser Variable können wir Kommazahlen z.B Werte aus einem Koordinatensystem speichern.
Häufig werden diese genutzt, wenn man besonders genaue Werte benötigt.
Mit dem Tag Float: können wir so einen Typen nutzen: ( Auch genau das Semikolon, also 'Strichpunkt' sagt nur, dass die Anweisung zu ende ist)
[pwn]new Float:Test;[/pwn]
Arrays/Zeichenketten/Strings:
Auch genannt im Deutschen 'Felder'. In diesem Typen können wir Zeichenketten, also z.B Namen von Spielern oder Passwörter speichern.
Hier brauchen wir keinen keinen Tag davor sondern können die max. Zeichen in eckigen Klammern angeben ( bzw. müssen eckige Klammern setzen).
Beachtet: Der Nullterminator spielt bei Arrays/strings auch eine große Rolle . Jeden Array, den ihr deklariert, beinhaltet den Nullterminator, d.h. ihr müsst für 5 Zeichen 6 Zeichen
in die eckigen Klammern packen.
Hier mal ein paar Beispiele.
[pwn]new Test[128];[/pwn]
[pwn]new Text[] = "Hallo";[/pwn]
Im ersten eine Variable Test mit dem max. Zeichengröße von 128 Zeichen
im Zweiten geben wir keine max. Größe an und definieren Sie mit dem Wert "Hallo".
Arrays bzw. Strings ist der Typ, der am meisten Speicher verbraucht, da für jedes Zeichen ein Byte an Speicher benötigt wird.
Es gibt auch multidimensionale Arrays, jedoch werden diese hier nicht erklärt.
Integers:
Im Deutschen so viel wie Ganzzahl. In ihr kann man ganze Zahlen, also auch negative, speichern und verändern.
Auch wieder kein Tag davor benötigt. Wird benutzt, z.B für das Adminlevel, das logischweiße auch nur ganze Zahlen enthält.
Ein kleines Beispiel:
[pwn]new Adminlevel = 3;[/pwn]
Wir deklarieren eine Integervariable Adminlevel und definieren Sie mit dem Wert 3;
Booleans:
Zu diesem Wert fällt mir keine passende Deutsche Bedeutung außer 'Boolsche Werte' ein.
Diese werden häufig für wahr/falsch (true,false) abfragen genutzt, z.B ob der Spieler schon einmal was eingegeben hat,
und können mit einem bool: Tag vor der Variablen festgelegt werden. Sie können wie oben schon gesagt nur 2 Werte enthalten (true,false),
alles andere würde nicht gehen. Booleans verbrauchen am wenigsten an Ressourcen.
Beispiel:
[pwn]new bool:IstServerAn = true;[/pwn]
Es gibt natürlich auch noch andere Typen wie Enumeratoren,usw, die ich jetzt hier aber nicht erklären werde.
So das war es erst einmal wieder von diesem Tutorial.
Ich hoffe, dass ich einigen Anfängern damit helfen konnte.
Freue mich wie immer über Bewertungen + Feedback.
Weitere grundlegenden Sachen findet ihr hier: Klick mich!
Mit Freundlichen Grüßen
Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von Logan_Adams ()