[V1.1] Checkpoint-Include by Ap0llinaris

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.


    Hiermit möchte ich meine erste Include vorstellen.


    Undzwar meine Checkpoint-Include. Einen Namen dafür habe ich noch nicht richtig finden können.


    Funktionen
    - SetPlayerCheckpointEx(playerid, Float:posX, Float:posY, Float:posZ, Float:cpSize, CheckPointID, CheckPointType);
    - DisablePlayerCheckpointEx(playerid);
    - GetPlayerCheckpointID(playerid);
    - SetPlayerCheckpointType(playerid);
    - Checkpoint Fix inklusive!


    Ich habe nun alles eingebaut, nur wie benutze ich deine Include nun?


    Das ist recht einfach. Statt dem normalen "SetPlayerCheckpoint" müsst ihr SetPlayerCheckpointEx angeben.
    Alles läuft wie normal ab, nur müsst ihr hinter der Checkpoint-Größe noch eine Checkpoint-ID und einen Checkpoint-Type angeben.
    Ähnlich wie bei den Dialogen. (Dialog-ID, Dialog-Style)
    Die Dialog-IDs und Dialog-Typen müsst ihr im Script definieren. Standart Definierungen sind "INVALID_CHECKPOINT_ID" und "INVALID_CHECKPOINT_TYPE"
    Ihr könnt durch 'OnPlayerEnterCheckpoint' oder 'OnPlayerLeaveCheckpoint' ganz normal abfragen. Der Checkpoint-Type wurde extra eingebaut,
    um sich die ganzen if-Abfragen zu sparen. Dann kann man ganz leicht den Typ abfragen.
    Hier mal ein Beispiel, entnommen aus meinem Führerschein-System.

    public OnPlayerEnterCheckpoint(playerid){
    if(GetPlayerCheckpointType(playerid) == CHECKPOINT_TYPE_FAHRSCHULE){
    new plVehicle = GetPlayerVehicleID(playerid);
    if(plVehicle == plSchoolCar[playerid]){
    PlayerPlaySound(playerid, 1138, 0.0, 0.0, 0.0);
    switch(GetPlayerCheckpointID(playerid)){
    case CHECKPOINT_FAHRSCHULE_1: SetPlayerCheckpointEx(playerid, 785.5473,-1403.2611,13.2422, 5.0, CHECKPOINT_FAHRSCHULE_2, CHECKPOINT_TYPE_FAHRSCHULE);
    // usw.
    }
    }
    }
    return 1;
    }



    Pastebin
    V1.0
    Pastebin.com
    V1.1
    Pastebin.com


    Download von Version 1.0
    File-Upload.net
    Uploaded.to


    Download von Version 1.1
    Fiel-Upload.net
    Uploaded.to


    Viel Spaß wünsche ich euch mit meiner Include!


    Edit's

    Spoiler anzeigen

    (edit: V1.1 reingestellt... )
    (edit: Download-Links reingestellt)
    (edit: Uploaded.to hinzugefügt)

  • Joa, sieht okay aus, finde ich aber unnötig, da man einfach eine Spieler Variable dafür erstellen kann und die Stadartfunktion nutzen kann ^^


    Aber nette Idee ;)


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Sieht etwas Fehlerhaft aus.


    Checkpoint wird gesetzt -> Spieler geht offline
    Ein andere Spieler kommt mit der ID des Spieler online der gerade off gegangen ist -> bekommt den alten Checkpoint des Spielers


    Und was soll

    Zitat

    Checkpoint Fix inklusive!


    bedeuten?
    Checkpoints sind nicht wirklich Fehlerhaft.


    Es gibt nur einen mir bekannten "Bug", der aber nicht Scriptseitig Fixbar ist

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • Sieht etwas Fehlerhaft aus.


    Checkpoint wird gesetzt -> Spieler geht offline
    Ein andere Spieler kommt mit der ID des Spieler online der gerade off gegangen ist -> bekommt den alten Checkpoint des Spielers


    Das liegt eher weniger an dem Include viel mehr an dem Scripter, der kann doch einfach bei OnPlayerDisconenct eine kleine Funktion machen, dass der Checkpoint für den Spieler mit dieser ID disabelt wird ?!


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Ich verstehe nicht, was der / die Include bewirken soll? :o


    EDIT: Achso; normal gibt es ja keine Checkpoint IDs, oder? :d


    Na dann, wenn es so ist, sieht gut aus, würde einigen etwas erleichtern; 8/10 ^^

  • Das liegt eher weniger an dem Include viel mehr an dem Scripter, der kann doch einfach bei OnPlayerDisconenct eine kleine Funktion machen, dass der Checkpoint für den Spieler mit dieser ID disabelt wird ?!


    Das schon, dann ist aber diese Include sinnlos :D
    Denn da wird mit Variablen gearbietet, die sollten auch automatisch resettet werden ;)


    Zitat

    Doch es gibt einen Bug.


    Ach den meinst du, dachte nen anderen :D

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • So ganz unnötig ist es aber auch nicht.
    Mir wiederum hat es geholfen, bezüglich Bus-Systemen usw.


    //Edit
    Benutzt die Include eigentlich noch jemand? :)


    //Edit
    Noch mal eine kleine Anmerkung, vielleicht können es ja ein paar von euch gebrauchen.


    //Edit


    Ihr könnt die Include nun direkt von einem File-Hoster runterladen. Derzeit ist File-Upload.net und Uploaded.to verfügbar.
    Wenn mal ein Link down ist, sagt mir bitte per PN bescheid!

    Zitat

    Download von Version 1.0
    File-Upload.net
    Uploaded.to


    Download von Version 1.1
    Fiel-Upload.net
    Uploaded.to

  • @Blackbook
    Ganz einfach.
    Es läuft ähnlich wie mit den Dialogen ab. Du erstellst einen Checkpoint nach ID, und kannst diese ID einfach verwenden, ohne jeglichen Variablen selbst etwas zuweisen zu müssen.
    Sprich, viele machen es ca. so:
    SetPlayerCheckpoint(); var[playerid] = 1;


    Bei mir kann man direkt wie bei Dialogen, einem Checkpoint eine ID, dazu einen Type, welche man beide erstellen kann, und dann kann man die Checkpoints einfacher verwenden.