SAMP API Tutorial

  • Hallo liebe Community, hier möchte ich euch mit der SAMP API vertraut machen, und euch einige Grundkenntnisse beibringen, dafür benötigt Ihr nur euer Gehirn und ein kleines bisschen Aufmerksamkeit. Der erste Teil wird selbstverständlich für den ein oder anderen schwer zu verstehen sein, allerdings kennt jeder das Motto "Learning by Doing". Lest euch das bitte nur durch, wenn Ihr die Sprache auch beherrschen wollt. Bedanken schadet nicht.


    Inhaltsverzeichnis
    1.0 - Das herunterladen der API
    1.1 - Der Start
    1.2 - Die erste Programmierung
    1.3 - Der Anrufbeantworter
    1.4 - Die Funktionen

    Schritt 1.0
    Zuerst besucht Ihr die Seite 'samp-api.net' und Navigiert nach Downloads, diesen Ihr unter Informationen findet. Nun findet Ihr die Tabellen 'Aktuelle Versionen' und 'Ältere Versionen', je nachdem was Ihr wollt, nehmt Ihr natürlich eure Version, in meinem Fall nehme ich immer die neuste. Ihr schaut bei eurer Version ein wenig nach rechts, und seht Download x.x.x Pre-Release, Download im Forum, und weiteres. Sobald Ihr auf den Hyperlink navigiert habt, klickt Ihr drauf um die Datei zu downloaden, dafür benötigt Ihr ein Archivierungsprogramm wie WinRar oder 7-Zip. Ihr erstellt euch einen Ordner oder navigiert zum bereits existierenden Ordner, und entpackt das Archiv eurer Version.


    Schritt 1.1
    Nachdem Ihr das Archiv in dem Ordner entpackt habt, erstellt Ihr euch ein neues Script, dafür wird Autohotkey benötigt, dies erhaltet Ihr einfach indem Ihr bei Google 'Autohotkey download' eingibt.
    Nun Rechtsklick > Neu > AutoHotKey Script. Nachdem Ihr das Skript erstellt habt, könnt Ihr das nach euer Wahl umbenennen. Der Keybinder und die API muss im immer im Ordner sein, mehr dazu später.
    Ihr öffnet euer Script mit einem Editor, ich bevorzuge SciTE4AutoHotKey, dieser wird nach einem Haken in der Installation von AutoHotKey mitgeliefert. Nachdem Ihr euer Script geöffnet habt, schreibt Ihr in die
    erste Zeile #Include API.ahk und speichert das Skript ab. Nun sucht Ihr das AutoHotKey Verzeichnis auf, dieses Standartgemäß bei Windows 7 x64 Bit hier liegt, C:\Program Files\AutoHotkey. Ihr könnt es ebenfalls finden,
    wenn Ihr unten auf das Windows Symbol klickt, und "AutoHotKey" eingibt, finden. Nun führt Ihr in dem Ordner die Datei "Installer" aus, und klickt im Anschluss auf 'Modify'. Danach wählt Ihr ANSI 32bit, hierbei ist es irrelevant was für eine "Bit-Art" Ihr habt. Sobald dieser Vorgang abgeschlossen ist, könnt Ihr nun mit der API arbeiten.


    Schritt 1.2
    Für die Programmierung mit der API benötigt Ihr nur ein wenig Gehirn, Logik und Englisch Grundkenntnisse. Fangen wir doch direkt mal damit an, einen leichten Anrufbeantworter zu erstellen, dazu geht Ihr einfach zum nächsten Schritt.


    Schritt 1.3
    Nehmen wir mal an, das ihr die Begrüßung mit Alt + P annehmen wollt, das P steht für 'Pickup'. Ihr geht zu eurem #Include API.ahk und geht 2 Zeilen darunter, nun schreibt ihr !p::, dies steht für ALT + P.
    Wir wollen nun einen Befehl abschicken, hierbei müsst ihr nur SendChat("Euer Text") eingeben, der Vorteil dabei ist, ihr müsst nicht auf Sonderzeichen achten. In dem falle schreiben wir SendChat("/pickup")
    um den Anruf mit /pickup anzunehmen. Nun könnt Ihr nach Wunsch gerne den Anrufbeantworter erweitern, bei mir ist es so, das er dann schreibt 'Guten Tag, Sie sprechen mit Name'. Um das zu machen, schreibt ihr folgendes. Ihr verwendet nun wieder euren Grundbefehl SendChat, und schreibt den o.g Text rein, doch jetzt kommt die Frage auf, wie kann ich den Anrufbeantworter dynamisch gestalten, das ich nicht immer meinen
    Namen ändern muss? Ihr schreibt über den ersten SendChat Befehl GetPlayerName(MyName), dieser liest den Namen aus, und gibt ihn später mit MyName zurück. Auch hier gibt es später ein Kapitel zu, wie Ihr die Funktionen finden könnt. Nun ändert Ihr euren Text zu SendChat("Guten Tag, Sie sprechen mit " MyName "") ab. Hierbei ist ganz wichtig, das immer zwischen den "Abfragen" immer ein Leerzeichen zwischen den "" ist, bspw.
    " ABFRAGE ", ansonsten bekommt Ihr einen Error.


    Schritt 1.4
    In diesem Teil wird erklärt, wie Ihr zum Beispiel euren Namen auslesen könnt, das zeige ich euch nun an einem Beispiel, die HP, Armor und den Ping auszulesen. Nun kommt wieder die Frage auf, woher sehe ich eine Übersicht/Liste der Funktionen? Das ist ganz einfach zu beantworten, Ihr geht auf samp-api.net > Dokumentationen > Funktionen. Hierbei werden Englische Grundkenntnisse benötigt, wenn ich den Ping auslesen möchte, nutze ich meine Browserfunktion STRG + F, und suche nach "Ping". Dabei wird mir GetPlayerPing angezeigt, dies ich dann auch dementsprechend nutzen werde.
    Ich erstelle nun einen Kurzbefehl mit :?:/hap:: (AHK Grundkenntnisse). Nun schreibe ich wie bei jedem Kurzbefehl Suspend Permit und fange den Befehl an, hierbei wird für euch eine neue Funktion auftauchen.
    AddChatMessage(Farbcode, "Euer Text") Bei dieser Funktion wird eine lokale Nachricht gesendet, sprich nur Ihr seht diese Nachricht. Ich nehme jetzt die Farbe Weiß, also 0xFFFFFF.


    Das sieht dann später so aus AddChatMessage(0xFFFFFF, "Mein Text.") Nun möchte ich aber die HP, Armor und den Ping abfragen, dazu nutzen wir wieder die Funktionen, die wir zuvor gesucht haben.
    Bei mir sind diese dann nun GetPlayerHealth(), GetPlayerArmor() und GetPlayerPing(). Wenn ich jetzt allerdings die Variable benennen möchte, haben wir ja bisher das immer dahinter in den Klammern geschrieben, das klappt aber meines Wissens nur bei GetPlayerName, da sonst zu viele Funktionen in einer Zeile sind, also müssen wir die Variable neu benennen. Nun schreibt ihr unter eurem Suspend Permit bspw. phealth := GetPlayerHealth().
    Neuer Variablenname := Variable(). Nun muss ich das ganze noch mit den anderen Funktionen machen. Da dies aber sonst zu Farblos aussieht, baue ich noch einen blauen Farbcode vor den Variablen ein, und lasse den Text nach der Variable wieder in Weiß anzeigen, das ganze sieht dann am Ende so aus:


    Code
    :?:/hap::
    Suspend Permit
    GetPlayerHealth()
    GetPlayerArmor()
    GetPlayerPing()
    phealth := GetPlayerHealth()
    parmor := GetPlayerArmor()
    ping := GetPlayerPing()
    AddChatMessage(0xFFFFFF, "Du hast noch {0087FF}" phealth "{FFFFFF} Prozent Leben, {0087FF}" parmor "{FFFFFF}. Dein Ping ist {0087FF}" ping "{FFFFFF}.")
    return


    Bei Fragen stehe ich gerne offen, das Tutorial wird zeitnah fortgesetzt.