Pawn Tutorial Stufe 2 - Variablen

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link

  • Willkommen beim Pawn Tutorial Stufe 2.
    Bei diesem Tutorial werden Variablen erklärt und wie man sie einsetzen kann.
    Die Variablen sind im Pawn eines der wichtigsten Dinge der Sprache.
    Man kann mit ihnen Werte speichern, auch speziell für Spieler und anderes.
    Die Variablen können Texte, Zahlen, Wahr-Falsch Werte oder Dezimalzahlen sein.


    Variablen können die Koordinaten eines Spielers festhalten.
    Ebenso kann der Geldstand eines Spielers damit festgehalten werden.
    Eine wichtige Sache ist, dass jede Spielervariable, wenn ein Spieler sich mit dem Server verbindet auf ein Standart Wert gesetzt wird (meist 0).
    Wenn dies nicht gemacht wird, dann kann es passieren, dass ein Spieler auf einmal ungewohlt 3.000.000 $ hat.
    Dieses Problem könnte viele nächste Probleme auslösen.


    Hier ist ein Beispiel, wie man eine Variable einsetzen kann:

    Auf diesem Bild werden paar allgemeine Informationen geschildert, welche für das Scripten wichtig sind.
    Wichtig ist, dass eine Variable, nur Werte zwischen
    -2147483648 bis 2147483647 speichern kann.


    Es gibt verschiedene Arten von Variablen, auf dem Bild ist ein Array zu sehen.


    Integer:
    new beispiel;
    (Wenn kein "Startwert" gesetzt wird, dann wird der Wert 0 zugeweist.)


    new beispiel = 7;
    (Hier wird gleich beim Erstellen von der Variable, dessen Wert auf 7 gesetzt.)


    new beispiel = 12;
    -> Ausgabe 1
    beispeil += 3;
    -> Ausgabe 2
    beispiel -= 5;
    -> Ausgabe 3


    Ausgabe 1 - 12
    Ausgabe 2 - 15
    Ausagbe 3 - 10
    (Man kann ebenso "/=" und "*=" verwenden.)
    (Es ist auch möglich ein Wert dazu zuaddieren mit diesem Vorgang: beispiel = beispiel + wert; )

    Float:
    new Float:beispiel;
    (Hier wird, wie beim Integer, jedoch auf 0.0 gesetzt.)
    (Wichtig: Man kann kein Integer mit einer Float-Zahl auf direktem Wege addieren, subtrahieren, ...)
    ( -> Dazu gibt es bestimmte Funktionen)


    new Float:gravitation = 0.008; (Standart Gravitation ist 0.008)
    SetGravity(gravitation);
    (Hier wird die Gravitation auf den Wert von "gravitation"(- 0.008) gesetzt.)
    (SetGravity(Float:value) - Das ist eine Funktion, um die Gravitation zu verändern)


    Wichtig: Um zwei Dezimalzahlen zu addieren, schaut in die float.inc rein. (Serverordner/pawno/includes/);
    Beispiel:


    new Float:Wert1 = 2.5;
    new Float:Wert2 = 5.5;
    new Float:Ergebnis = floatadd(Wert1, Wert2);


    (floatadd gibt an die Variable(Ergebnis) nun die Summe aus Wert1 und Wert2 weiter.)


    Addittion:
    floatadd(Float:oper1, Float:oper2)


    Subtraktion:
    floatsub(Float:oper1, Float:oper2)


    Division:
    floatdiv(Float:dividend, Float:divisor)


    Multiplikation:
    floatmul(Float:oper1, Float:oper2)


    Float ins Integer runden:
    floatround(Float:value, floatround_method:method=floatround_round)
    Beispeil:
    new Float:Test1 = 3.141592653; // Hier ist es die PI-Zahl
    new pi = floatround(Test1);


    Boolean
    Eine Boolean-Variable kann nur true(= 1) oder false(= 0) speichern.


    Anwendung:
    new bool:Autoschein;
    (Wie bei den Vorgängern wird hier Autoschein auf 0( = false) gesetzt.


    new bool:Autoschein = true;
    (Hier wird nun der Wert von Autoschein auf true ( = 1) gesetzt.)


    Wichtig: Der Boolean wird nur für Wahr oder Falsch verwendet.


    Array
    Der Array ist ein wichtiger Teil der Variablen, da dieser mehrere Werte festhalten kann.
    Beispiel:


    new Test[5];
    (Wichtig: Ihr könnt bei Arrays, wie hier zum Beispiel nur Test[0] bis Test[4] besetzten, weil das System anfängt bei 0 zu zählen.)


    Die meisten Anfänger stellen sich so ein Array vor (Beispiel):


    new Test[5];
    Test[3] = 9;

    0 1 2 3 4 5
    0 0 0 9 0 0


    Da jedoch das System anfängt bei 0 zu zählen ist dies Falsch. Dies ist richtig:
    (Unten = Wert | Oben = Slot)


    0 1 2 3 4 5
    0 0 9 0 0 0


    Arrays werden oft für Spieler benutzt, da es viel mehr Probleme geben würde, wenn für jeden Spieler
    jeweils ein Integer angelegt wird. (new player0; new player1; new player2; ...)


    Es gibt auch Mehrdimensionale-Arrays:
    new Spieler[500][2];


    Spieler[0][0] = 5;
    Spieler[0][1] = 10;
    (Man kann also mehrere Werte für einen Spieler speichern.)


    Hier ist ein anderes Beispiel:
    new Spieler[500][3];


    Spieler[0][0] = 5;
    Spieler[0][1] = 10;

    Spieler[1][3] = Spieler[0][0] + Spieler[0][1];


    Man muss vorsichtig bei den Mehrdimensionalen Arrays sein.


    Text
    Es gibt keine extra Variable für Texte, es werden dafür Arrays benutzt.
    Jeder Array-Slot kann nur 1 Buchstaben besitzen:


    new World[6] = "Hello";


    0 1 2 3 4 5 6
    H e l l o \0 0


    (Das Zeichen "\0" steht dafür, dass hier der String endet.)
    Man kann in der Konsole diesen Text wiedergeben:


    printf(World);
    (Diese Funktion wird später erklärt.)


    Lokale & Globale Variablen
    Kurze Erklärung durch ein Bild:


    Das war nun ein Tutorial zu den Variablen.
    Wenn ihr ein Fehler habt, dann überprüft ob die Variablennamen auch übereinstimmen,
    weil häufig dort der Fehler liegt. (Bsp.: new test = 1; tes = 3;)
    Es dürfen nur Namen benutzt werden, welche noch nicht im Script benutzt wurden.


    Mit freundlichen Grüßen
    Seibay

  • Zitat

    Arrays werden oft für Spieler benutzt, da es viel mehr Probleme geben würde, wenn für jeden Spieler
    jeweils ein Integer angelegt wird. (new player0; new player1; new player2; ...)


    Hier auf das PVarSystem einzugehen wäre noch wünschenswert, sonst nett :)

  • Ich hatte eig keinen plan von Schleifen wo ich das Tut geschrieben habe :D
    Jetzt schon tut's fördern eig nur dein eigenes wissen da man durch das benutzen (100%iges Selfmade Tut)
    lernt und andere guckn es sich eig nur an und wissen immernoch ned worum es geht!


    Man muss selbst Tuts schreiben dann lernt man sowas erst oder für sich so kleine tuts halt
    für spöter oder so falls man was vergisst kann man nachgucken.

    GreetZ

    Zitat

    Joda21:47
    Joda = mein spritzname
    xD


    Ice21:47
    zeig mir dein lichtschwert !


    Joda21:47 spitzname* xDD

    Ich bin ein Vogel (Joda)


  • Das hier verstehe ich irgendwie nicht ganz. Könnte mir bitte jemand genauer erklären? wozu es dient usw.


    edit:


    Habe ich es richtig verstanden:


    new beispiel[MAX_PLAYERS]; gibt die maximale zahl an
    new beispiel = 8; gibt die zahl 8 an
    new beispiel = 1; gibt die zahl 1 an?

  • saubere arbeit, zwar wusste ich fast alles schon, aber .. float++ hat mir sehr geholfen, danke!


    10/10 :D

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • new beispiel[MAX_PLAYERS];
    Dies ist ein Array und kein Integer.
    Arrays sind an den eckigen Klammern erkennbar.



    new beispiel = 8; gibt die zahl 8 an
    Hier deklarierst du eine Variable mit den Namen "beispiel" und dem Wert 8


    new beispiel = 1; gibt die zahl 1 an?
    Hier deklarierst du eine Variable mit den Namen "beispiel" und dem Wert 1

  • 10/10 Punkte.
    Echt gut gelungen und sehr anfängerfreundlich.

  • Gute Morgen ,



    erstmal sehr gutes TuT ;)



    Aber wofür , benutzt man Variablen alles ?

  • Um die ID eines Fahrzeuges zu speichern, um später speziell dieses eine Fahrzeug "ansprechen" zu könnnen.
    Man kann damit den Geldstand eines Spielers speichern, sein Health(Leben), Waffen.
    Man kann damit den Namen eines Spielers speichern und zurückgeben.
    Man kann zahlen addieren - PayDay (Lohnberechnung), subtrahieren, multiplizieren, dividieren, vergleichen, ...


    Es ist eines der wichtigsten Dinge im Pawn Scripten.