KOSTENLOSE REGISTRIERUNG - FREE REGISTER
  • Willkommen, Gast!
  • Donnerstag, 28. März 2024, 21:53:38
Position: Home » Tutorials » Workshop » In Bearbeitung » [VWW] Globale/Lokale Variablen mit/ohne Arrays

Willkommen im GTAvision.com Forum

Du bist noch nicht bei uns angemeldet. Wenn das dein erster Besuch bei uns ist, so kannst du die wichtigsten Funktionen des Boards in der FAQ nachlesen. Um Beiträge zu schreiben oder neue Themen zu erstellen musst du in fast jedem Forum registriert und eingeloggt sein. Dies gilt nicht bei den Newskommentaren, dort können auch Gäste etwas schreiben ohne sich vorher registrieren zu müssen. Damit du Beiträge lesen kannst, musst du dir erst ein Forum aussuchen welches dich interessiert, z.B. GTA V - Allgemeines, dann klickst du auf ein Thema das dich interessiert z.B. "Allgemeine GTA V Plauderecke" und schon kannst du die Beiträge lesen. Um im genannten Thema zu antworten, musst du dich allerdings vorher eingeloggt haben. Viel Spaß in unserem Forum, wünscht das gesamte GTAvision.com Team.

Follow @GTAvision
Thema: [VWW] Globale/Lokale Variablen mit/ohne Arrays [Seite 1 ]  

Kein neuer Beitrag 12.04.2007, 20:28
Beitrag #1   

Recycler
Vize-Boss
* * * * * * * * * O O
Registrierung: 29.12.2006, 11:54
User-Info: nicht mehr da
Beiträge: 2146

Globale/Lokale Variablen mit und ohne Arrays

Dies ist ein Tutorial über Variablen in der Scripting-Language PAWN (Eigentlich gillt das meiste
auch für andere Programmiersprachen :-P).
Wie der Titel schon sagt, gibt es nicht nur die eine und einfache Variable, sondern auch
Formationen, sprich global/lokal/indexiert/ uvm.
Alles werde ich nicht erklären können, aber das, was für den kleinen Scripter benötigt wird, sollte
hier vorzufinden sein.
Aber fangen wir einfach an:

Was sind eigentlich "Variablen"?

Eine Variable ist eine Größe, die verschiedene Werte annehmen kann. Das heißt, sie ist in ihrer
Größe variabel. Variablen kann man auch als Platzhalter/Unbekannte bezeichenen. Sie kommen in
Formeln, Termen und Gleichungen vor. Und das nicht nur z.B. in einer binomischen Formel:

Code:
1
(a+b)^2 = a^2 + 2ab + b^2


Auf diese Formel wird dir der beste Rechner der Welt keine Antwort geben können, wenn du keine
Wertzuweisung oder eine Gleichung aufstellst.
Man kann diese Formel so...

Code:
1
2
a sei 1
b sei 267594


oder so...

Code:
1
(a+b)^2 = 12345


...lösen. Aber nun zurück zu unserer Variable. Variablen gibt es nicht nur in Mathematik und NW,
sondern auch im IT-Bereich. Dabei haben sie nun aber überhaupt keine andere Funktion als in der
Mathematik.
Wer gut in Mathe ist, wird keine Probleme mit Variablen haben^^ Nehmen wir ein Beispiel
aus der Scriptengine von SA-MP. Durch ein Command wählt der Spieler nun, ob er das Spiel in der
Sprache Englisch oder Deutsch spielen will. Logischerweise kann das Script nicht jedesmal, bevor
Text erscheinen soll, den Spieler nach der Sprache fragen; das wäre ziemlich dämlich. Und nun
kommen wir zu der ersten Art der Variabeln. *anbet*

Globale Variablen

Mit Arrays...

Wir nehmen wieder das oben genannte Beispiel auf. Nun, da wir etwas brauchen, um die Sprache zu
speichern, brauchen wir Platzhalter. Wir vereinbaren, das wenn der der Spieler die Sprache Deutsch
wählt, eine Variable den Wert 1 annimmt.
Wir gehen folgendermaßen vor; in einem Script muss man Variablen vorher festlegen. Das heißt, du
kannst nicht einfach ein "x" als Variable benutzen, ohne sie zu "erstellen". In PAWN sieht das
ganze so aus:

Code:
1
new variablenname[MAX_PLAYERS];


Jetzt werdet ihr euch fragen: Wohin damit? Was soll das MAX_PLAYERS?! Eins nach dem anderen ;) Wir
brauchen für diese Situation eine globale Variable, da wir sie für jeden Text des Spiels immer
wieder einsetzen. Global bedeutet im Script, das sie immer existiert. Also werden wir sie vor
main() erstellen. Oben schon erwähnt, wir brauchen auch die sogenannten Arrays. Ein netter
englischer Begriff, und da ich in meinen Lernphasen im Alter von ca. 9 solche Begriffe
verabscheute, einigen wir uns darauf, das wir sie Garagen nennen. (Damit konnte ich es mir besser
merken :-P) Die Variable in diesem Fall brauchen zwingend alle Spieler. Aber was passiert nun, wenn
wir bei jedem neuen Spieler den Wert der Variable verändern? Genau, die Daten der vorherigen
Spieler werden gelöscht. Jetzt könnte man sich denken, dann erstelle ich eben für jeden Spieler
eine einzelne Variable. Das wird lange bei einem Server mit 100 Spielern dauern, findet ihr nicht
auch? *rofl* Und da kommen auf einmal die Garagen: sie ermöglichen es, das eine Variable spezifisch für
einen Spieler (oder was auch immer) ist. In diesem Fall steht das MAX_PLAYERS für die maximalen
Spieler im Server (100). So, Spieler Rafioso (ID: 0) wählt Englisch. Wir setzen die Variable so ein:

Code:
1
variablenname[playerid] = 2;


playerid bezeichnet hier nur den mitgelieferten Parameter in OnPlayerCommandText oder sonst woher.
Also ist playerid auch ein Platzhalter; er steht, weil es ja Rafioso ist, für 0. Dann wird die
Variable des Spielers "0" auf 2 (Englisch) gesetzt. Und fertig ist die perfekte Variable mit Garage
8-) Später wird man durch ein if-statement abfragen müssen, ob die Variable für 1 oder 2 steht. Ein
sehr gutes Tutorial hat unser Rafioso hier gemacht.


Kein neuer Beitrag 12.04.2007, 20:46
Beitrag #2   

Recycler
Vize-Boss
* * * * * * * * * O O
Registrierung: 29.12.2006, 11:54
User-Info: nicht mehr da
Beiträge: 2146

Ohne Arrays...

Wie oben schon gesagt, es bleibt bei einer globalen Variable. Also werden wir sie wieder über
main() erstellen.

Code:
1
new variablenname;


Diese Variable kann nur einen einzigen Wert haben und besitzt keine Garagen. Ihr könnt sie z.B. als
Wechselvariable benutzen, indem ihr, wenn etwas bestimmtes erfolgt ist, sie einem Wert zuweist und
diesen Wert für euer Script relevant macht. Ich hoffe, ihr versteht was ich meine ;-)

Lokale Variablen

Mit und ohne Arrays...

Diese Art von Variablen ist vielleicht die häufigste. Allerdings kommen sie in Verbindung mit
Garagen nur selten vor, weil es keinen großen Sinn ergeben würde ;) Sie sind das Gegenteil von
global. Das heißt, sie existieren nur in der Funktion, wo sie auch erstellt wurden. Wenn jemand
eine Variable in einem Command etwa so erstellt:

Code:
1
new variablenname;


Dann kann ihr ein Wert zugewiesen werden, und alles was man mit einer Variable halt so machen kann :D
Nur nach Beendigung der Funktion wird die Variable gelöscht, und ihr könnt sie nicht mehr
verwenden. Deshalb könnt ihr auch in anderen Funktionen gleichnamige Platzhalter erstellen, was bei
globalen nicht möglich ist. Sonst ist eigentlich nichts mehr zu sagen; alles wurde oben schon mehr
oder weniger erklärt^^
Ich mach noch ein Beispiel für eine lokale Variable:

Code:
1
2
3
4
5
6
7
8
public Funktion()
{
new variablenname = random(5);
SetPlayerHealth(variablenname, 0);
...
...
...
}


Hier wird zufällig irgendein Spieler zwischen 0-5 gekillt. (Wobei man eigentlich noch ein
IsPlayerConnected machen müsste, aber egal :D)

*guckstdu*

Array:

"Bei einem Array handelt es sich um eine Gruppe von Variablen oder Daten gleichen Typs, die unter
einem gemeinsamen Namen in einer eindimensionalen, zweidimensionalen oder mehrdimensionalen
Anordnung gespeichert werden. Arrays werden benötigt, um einerseits eine große Anzahl von Variablen
mit wenig Aufwand zu definieren und um andererseits die Voraussetzung zu schaffen, direkt auf ein
bestimmtes Variablenelement durch Angabe eines numerischen Werts, dem sogenannten Index
zuzugreifen
"

__________________________________________________________________________________

Ich hoffe dieses Tutorial hat euch nocheinmal ein bisschen beigebracht :-) Wenn ihr Fragen habt, fragt
ruhig. Aber bitte nicht hier! *anbet*

MfG
Recycler

Kein neuer Beitrag 03.12.2007, 12:25
Beitrag #3   

FloRaX
BANNED
* * * * * * * * * * O
Registrierung: 22.08.2007, 21:05
User-Info: It´s over 9000!!!!!!!!!!!
Homepage: http://www.sxp-network.com
Lieblings-GTA: GTA: Vice City Stories
Wohnort: American Dream
Xbox Live Gamertag: Meicel
GFWL-Tag: Meicel
Social Club: N0RAX1994
Beiträge: 3700

Hey cool,wenigstens weis ich jetzt was das bedeutet :)

Druckansicht

n/a n/a 1     (Anzeige: 1 – 3; Insgesamt: 3) n/a n/a
Toggle Ähnliche Themen zu „[VWW] Globale/Lokale Variablen mit/ohne Arrays“
  Antworten Aufrufe Themeneröffnung Letzter Beitrag
Keine neuen Beiträge, „heißes Thema“   [SA-MP v2] VWW-Clanwar Script   Seiten 1 2 ] 28 72997 21.11.2007, 01:39
Von: dödel
19.10.2012, 22:29
Von: Rafioso
Zum letzten Beitrag
Keine neuen Beiträge, „heißes Thema“   Eigene seite für SA-MP Server der VWW-User   Seiten 1 2 ] 21 21263 04.01.2007, 21:09
Von: paddy
25.06.2009, 13:14
Von: Recycler
Zum letzten Beitrag
Keine neuen Beiträge, „heißes Thema“   Variablen...ganz einfach 9 26605 10.12.2008, 22:17
Von: Yoda
12.12.2008, 08:18
Von: Rafioso
Zum letzten Beitrag
Keine neuen Beiträge, „heißes Thema“ Thema VWW-Kalender   Seiten 1 2 ] 20 15621 01.12.2007, 21:30
Von: Recycler
01.12.2008, 20:22
Von: Magnum
Zum letzten Beitrag
Keine neuen Beiträge, „heißes Thema“   VWW-Zentrale 4 3334 13.09.2007, 21:11
Von: Magnum
19.05.2008, 17:10
Von: GermanElite
Zum letzten Beitrag
  • 0.042493 Sek., 15 DB-Zugriffe, 2.048 MiB
  • Powered by Boardsolution v1.45
GTAvision.com :: Forumregeln :: FAQ :: Impressum :: Kontakt :: RDRvision.com :: LANOIREvision.com :: MaxPayneVision.com
NetVisionWork.NET
.: © 2006-2014 by GTAvision.com :.

Rockstar GamesTake-Two Interactive Deutschland

Free Grand Theft Auto Downloads