Tims Scripting Tutorial! vom N00B zum Pro! [TEIL 1]

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
  • Hallo alle zusammen,
    Heute möchte ich euch gerne ausführlich vorstellen was es denn Überhaupt mit dem Scripten auf sich hat!
    Zu dem zeige ich erst einmal wie ein samp server so aussieht und was man an einstellungen machen kann.
    Denn für alle Neueinsteiger ist es doch schon ein wenig komisch nicht?
    deswegen ja dieses Tutorial weil ich bei den anderen Anfänger Tutorials immer das Gefühl habe, sie gehen davon aus dass man schon Programmieren kann.
    ich möchte gerne eine ganze Tutorialreihe machen - mal gucken xD
    ----------------------


    So Ich gehe jetzt mal davon aus, dass ihr samp und einen Server schon habt. Ansonsten müsst ihr euch einfach mal bei Youtube zurecht finden.
    Vielleicht mach ich da auch noch ein Tutorial rein!


    So müsste es dann bei euch aussehen - Gta, samp und den Server alles in einen Ordner (Es passten nicht alle Dateien ins Bild also nicht wundern):





    Sehen wir uns das alles mal genauer an. Weiter unten sehen wir ein CFG-Datei mit dem Namen "server"! Wofür ist die gut? - Genau! hier werden wir alles einstellen was den Server betrifft:
    Wie viele Spieler dürfen maximal online sein? Wie soll der Server heißen? wie soll das Admin passwort sein?... etc...
    Wenn wir das alles mal öffnen sieht das ganze so aus (Die Grün markierten Felder sind erst einmal am wichtigsten der rest kommt im laufe der nächsten tuts):



    So das wäre jetzt unsere Server.cfg. als erstes sehen wir"rcon_password bernersenn". Das ist das Adminpassort für die Admins. Aus langweile habe ich es "bernersenn" genannt Natürlich könnt ihr es beliebig ändern.
    Es dient z.b. dazu, dass nur User mit dem sogenannten "Rcon passwort" fast alle rechte haben. Natürlich müssen wir diese rechte erst einmal Scripten bevor das möglich ist, aber dazu später.
    Ich denke mal dass sich "maxplayers 50" von allein erklärt. Hier kann einfach die Spieleranzahl eingegeben werden, wie viele Spieler gleichzeitig auf den Server Spielen dürfen. Ich habe sie auf 50 gesetzt. Auch die Spieleranzahl
    kann natürlich beliebig geändert werden. Als nächstes haben wir den sogenannten "Port". Er dient dazu, dass andere Spieler euren Server nicht so schnell durch Hackangriffe verunstalten können. Ihr müsst euch einfach den Port wie ein Fahrradschloss mit Zahlencode vorstellen. Ohne den Zahlencode kann man das Schloss nicht öffnen, es sei denn man knackt es. Genau so beim Server auch. Natürlich gibt es immer wieder welche die es hinkriegen den
    Port zu knacken aber dass sind mehr oder weniger selten eintretende Fälle. der "hostname" ist der Name eures Servers. Der wird in der samp server liste angezeigt so dass andere Spieler wissen welcher Server das ist.
    Den habe ich "==> Desert Flying <==" genannt. Ihr könnt den Namen auch beliebig ändern. Bei den "Gamemode" handelt es sich um das Script dass ihr verwenden wollt. Hier gebt einfach den namen der Datei ein.
    Meine Datei heißt "FlySimu" das tut ja nicht zur sache. Das letzte ist das "Filterscript". das sind besondere "Gamemodes" die man auch hier mit den namen eingeben kann.
    Dazu werde ich auch erst Später etwas sagen. "Filterscripts" Sind meistens auch nicht notwendig. Ich benutze sie zum beispiel gar nicht deswegen habe ich dort auch nichts hingeschrieben.


    Jetzt nur noch abspeichern wenn ihr eure änderungen vorgenommen habt. In dem Gta san andreas Ordner gibt es aber noch unter anderem auch noch eine sehr wichtige datei.
    und zwar die "samp-server.exe" das ist euer eigener server. Wenn ihr das ganze mal startet öffne sich ein Fenster. Wenn es so aussieht....




    ...könnt ihr euch sicher sein, dass ihr alles richtig gemacht habt. In der 1. zeile steht "Started server on port 7777, with maxplayers: 50 lanmode is OFF". Hier wird noch mal ein Teil der einstellungen in der server.cfg datei wiedergegeben.
    weiter unten steht: "Fliter Scripts" und darunter wiederum "Loaded 0 filter scripts". Das liegt daran, dass ich kein filterscript in der server.cfg angegeben habe. Sicher fragt ihr euch: Was denn genau sind denn überhaupt jetzt filterscripts?"
    dazu komme ich später. Jetzt kann man weiter unten erkennen "Blank Gamemode by your name here". Den namen des Gamemodes - !Achtung es ist nicht der name der Datei gemeint! - kann man später noch beim Scripten reinschreiben.
    "Number of vehicle models: 2" steht dafür, wie viele UNTERSCHIEDLICHE fahrzeuge geladen wurden oder vorhanden sind. Fahrzeuge kann man auch per Scripten einfügen.


    die "samp-server.exe" kann erst einmal geschlossen werden.
    jetzt gehen wir mal in den Ordner "gamemodes". Huch!... was sind das denn alles für dateien?. Ja das sind einzelne Scripte. Jedes Script besteht aus 2 dateien. eine "pwn" und eine "amx" datei. Nun dass sind aber alles Vorgefertigte Scripte.
    wir wollen ja selbst scripten. also gehen wir hier wieder aus dem Ordner raus.! und gehen in den Ordner "pawno". Jetzt denkt nicht "pawno wird von dem Wort "porno" abgeleitet. "Pawno" ist das Programm mit dem wir unser Script bzw.
    Gamemode erstellen. In dem Ordner sehem wir solche dateien:




    die "pawno" Anwendung ist unser Programm. Öffnen wir es, erscheint dieses Fenster:



    Hier klicken wir auf "Neues Projekt" (grüner Pfeil). Nun sollte eine neue Vorlage erscheinen:



    Jetzt denkt ihr sicher: Oh mein Gott!! will der uns umbringen? zu erst einmal "NEIN!" ich will euch nicht umbringen. Dass was ihr hier seht ist ein ganz normaler Vorgerfertigtes Projekt.
    das wird einem aber ganz anders wenn man das sieht oder? nun ja wenn man es genauer betrachtet sieht man aber eine gewisse "Ordnung".
    Also nehmen wir das mal unter die Lupe:


    #include



    Dieses Include zeigt uns, dass wir mit allen ganz normalen Befehlen in pawn arbeiten. Hier kann man nämlich erkennen, dass wir jetzt kein Java oder C++ programmieren sonder pawn!
    Soviel dazu.
    nun gehen wir mal weiter:






    so das ist der nächste abbschnitt der zusehen ist. Kommt euch nicht einiges bekannt vor? z.b.:"Blank Gamemode by your name here" . Genau! diesen text haben wir schon gelesen als wir den Server gestartet haben.
    Und diesen Text könnt ihr einfach umschreiben.
    ungefähr so:



    print(" Ich bin ein Text weil ich so gerne ein Text sein wollte");


    So dabei müsst ihr das Print("") beachten und nur zwischen den "" den Text schreiben.
    Und das ist auch schon unser erster Befehl in pawno. Print beduetet nichts anderes als, dass etwas in der Server Konsole ausgegeben wird.
    print ist einer von vielen Befehlen. Ein anderer Befehl ist z.b. SendClientMessage. Dieser Befehl gibt keinen Text in der konsole aus, sondern einen Text im Chat wenn man samp Spielt.
    Aber dazu kommen wir Später.


    Als nächstes kommt ein public.... :S . public? public? was ist das?.
    Wenn ihr in eurem Script weiter runter scrollt steht dort zich mal "public".
    Ihr müsst euch Vorstellen, dass ein Public wie eine Garage in einer Autowerkstatt ist. In Jeder Garage in einer Autowerkstatt, wird unterschiedlich repariert. Die eine macht reifenpflege, die eine repairert einen motor und und und.....
    Genau so die "publics". Wer auch nur ein bisschen Englisch kenntnisse hat wird fest stellen, dass neben dem Wort public eine Art Stichwort steht.
    das public bei dem wir gerade sind heißt: "OnGamemodeInit". und darunter stehen 2 Klammern und ein return 1; die zwei Klammern sind die "Wände" der Garage, und das return 1; ist das Garagentor. Hier mal eine Bessere Vorstellung:




    Das return 1 steht also dafür dass das System aus den Public springt und wieder neu lädt - ist aber notwendig! wenn ihr es weg macht kommt eine Fehlermeldung!.


    Genau bedeutet OnGamemodeInit ==> Alles was man in das Public schreibt passiert sofort wenn Server gestartet wird.
    Also würden wir den print("") Befehl da rein setzen, so würde in unserer ServerKonsole sofort ein Text erscheinen.


    -----------------------


    Das wars! im 2. Teil möchte ich euch die ersten Befehle zeigen und auch noch etwas zu den unterschiedlichen publics erwähnen.
    Hier gehts zum TEIL 2: Tims Scripting Tutorial! vom N00B zum Pro! [TEIL 2]


    Ich entschuldige mich noch einmal für meine Rechtschreibfehler xD. ich hoffe es hat euch ein bisschen weitergebracht!


    MFG Tim

    2 Mal editiert, zuletzt von Timtrucker ()

  • Ähm ja,
    Wenn ich das ganze Tutorial korrigieren müsste würde das relativ lange dauern, es sei soviel gesagt:
    "Pro" wird man so sicher nicht xD
    Dem Tutorial fehlt es meiner ansicht nach an Scripting bzw Programmiervermittlung, sicher ists ne ganz nette Idee aber mehr auch nicht...


    Ja hättest du das Tutorial nur bis zum Ende durchgelesen dann hättest du sicher gemerkt dass das erst der 1. Teil meiner "Tutorialreihe" ist. ;)