Checkpoints

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Checkpoints

    Checkpoints

    Da sich @TheLoad: sich ein Checkpoint-Tutorial gewünscht hat,hier mal ein kleiner Einblick.

    1. Pickup erstellen & deklarieren
    2. Pickup zuweisen
    3. Positions Abfrage
    4. Deklarieren einer neuen Checkpoint Variable
    5. Checkpoint setzen & Variable erhöhen
    6. Variable wieder auf 0 setzen

    Pickup erstellen und deaklarieren
    Du wolltest ja,dass man in einem Infopunkt /tutorial eingeben muss... Das werden wir als erstes machen.

    Zuallererst gehst du InGame,suchst dir deinen Informationspunkt und gibst /save Info ein.Danach suchst du die 'savedpostitions' Textdatei.
    Dort sollte dann sowas sein [pwn]AddPlayerClass(0,X,Y,Z,A,0,0,0,0,0,0); // Info[/pwn]
    Nun eine kleine Erklärung dazu


    0 = Skinid
    X = X coord
    Y = Y coord
    Z = Z coord
    A = Angle
    die anderen Nullen zum 1. die Virtuelle Welt & die Waffen sowie die Munition




    Nun erstellen wir ein Pickup.
    Dafür deklarieren wir oben im Script ein Pickup
    [pwn]new DeinPickUpName;[/pwn]


    In deinem Falle eben
    [pwn]new TutPickup;[/pwn]


    Nun soll natürlich eines Ingame erscheinen.Dafür gehen wir unter
    [pwn]OnGameModeInit[/pwn]

    und erstellen ein
    [pwn]CreatePickup(model, type, Float:X, Float:Y, Float:Z, Virtualworld)[/pwn]
    Das Model ist das Erscheinungsbild des Pickups,also ob es ein Weißer Pfeil,ein Gelbe I Zeichen oder ein Dollar Zeichen sein soll.Für das I Zeichen nehmen wir die ID
    [pwn]1239[/pwn]


    Bei Typ wird festgelegt,ob man das Pickup aufheben können soll,ob es respawnen soll,oder einfach immer da ist
    Spoiler anzeigen
    0

    The pickup does not display.


    1
    Exists always. Disables pickup scripts such as horseshoes and oysters to allow for scripted actions ONLY.


    2
    Pickupable, respawns after some time.


    3
    Pickupable, respawns after death


    4
    Disappears shortly after created (perhaps for weapon drops?)


    5
    Disappears shortly after created (perhaps for weapon drops?)


    8
    Pickupable, but has no effect. Disappears automatically.


    11
    Blows up a few seconds after being created (bombs?)


    12
    Blows up a few seconds after being created.


    13
    Slowly decends to the ground.


    14
    Pickupable, but only when in a vehicle.


    15
    Pickupable, respawns after death


    19
    Pickupable, but has no effect (information icons?)


    22
    Pickupable, respawns after death.



    Da es bei uns immer da sein soll,nehmen wir Typ '1'


    Wir haben also schon
    [pwn]CreatePickup(1239,1...)[/pwn]

    Jetzt fehlen noch die Koordinaten.. Dafür fügst du die Coord aus der 'savedpositions' einfach ein,sowie die Virtuelle Welt.

    Pickup zuweisen
    Nun müssen wir da 'TutPickup' noch einem Pickup zuweisen,wir schreiben also
    [pwn]TutPickup = CreatePickup(...);[/pwn]

    Fertig ist das Pickup.

    Position abfragen
    Nun man InGame /tut eingeben können,allerdings nur an diese Postion.
    ICh nehme dafür ocmd,dies sieht wie folgt aus:

    [pwn]ocmd:tut(playerid,params[])
    {
    if(!IsPlayerInRangeOfPoint(deineX,Y,Z,5))return SendClientMessage(playerid,-1,"Du bist nicht innerhalb der 5 Meter des Pickups"); // die 5 steht für den 'Range'
    return 1;
    }
    [/pwn]


    Nun zum 2. Teil,das Checkpoint erstellen.

    Dafür gehen wir wieder InGame und /save 'd wieder Checkpoints,die in der 'savedpositions' aufzufinden sind.

    Wenn wir dann die Checkpoints gespeichert haben,müssen wir den Namen der Checkpoints deklarieren,sowie die Menge der gespeicherten Checkpoints,also wieviel man abfahren muss.
    Dafür schreiben wir ganz oben wieder

    Checkpoint Variable deaklarieren
    [pwn]new TutorialCheckpoint[30] // in meinem Falle hab ich die Checkpoints mit TutorialCheckpoint deklariert,und die Anzahl auf 30 gesetzt,da ich 30 Checkpoints habe [/pwn]

    Wenn wir jetzt immer wieder
    [pwn]SetPlayerCheckpoint[/pwn] machen würden,würde uns einfach immer derselbe angezeigt werden.
    Deswegen machen wir es folgendermaßen

    Checkpoint setzen & Variable erhöhen
    Zum Mitdenken.
    Bei /tut haben wir noch keinen Checkpoint.Deshalb erstellen wir dort einen und erhöhen den Checkpoint zähler um 1 Checkpoint,damit wir wissen: "aha.Wir haben bereits einen Checkpoint.Jetzt müssen wir den 2,3,4,5.. machen"

    Dafür machen wir folgendes.

    [pwn]TutorialCheckpoint[playerid] = 1;[/pwn]

    Damit haben wir die Variable auf 1 gesetzt,welche wird dann unter
    [pwn]OnPlayerEnterCheckpoint[/pwn] mit
    [pwn] if(StoryCheckpoint[playerid] == ....)[/pwn] abfragen können.
    Wir schreiben also folgendes
    [pwn]ocmd:tut(playerid,params[])
    {
    if(!IsPlayerInRangeOfPoint(deineX,Y,Z,5))return SendClientMessage(playerid,-1,"Du bist nicht innerhalb der 5 Meter des Pickups"); // die 5 steht für den 'Range'
    SetPlayerCheckpoint(playerid,X,Y,Z,5); // 5 = die Größe des Checkpoints
    TutorialCheckpoint[playerid] = 1; //hier wird die Variable auf 1 gesetzt
    return 1;
    }[/pwn]

    Dann unter
    [pwn]OnPlayerEnterCheckpoint[/pwn]


    [pwn]public OnPlayerEnterCheckpoint(playerid)
    {
    if(StoryCheckpoint[playerid] == 1)//falls die Variable den Wert 1 hat
    ......
    [/pwn]



    [pwn] public OnPlayerEnterCheckpoint(playerid)
    {
    if(StoryCheckpoint[playerid] == 1)//falls die Variable den Wert 1 hat
    {
    DisablePlayerCheckpoint(playerid); //wir deaktivieren den vorherigen CP
    SetPlayerCheckpoint(playerid,X,Y,Z,5);
    TutorialCheckpoint[playerid] = 2; // Der Wert der Variable wird auf 2 gesetzt;
    }
    }[/pwn]

    Nun führen wir das immer so weiter,wir erhöhen die Variable immer um eine Zahl,und setzen einen Neuen Checkpoint,Fragen ab,erhöhen,setzten neuen Checkpoint....


    Wenn wir dann bei dem letzten Checkpoint angekommen sind,ist es wichtig,dass wir den Wert des Checkpoints wieder auf 0 setzen!
    also
    [pwn] TutorialCheckpoint[playerid] = 0;[/pwn]

    Das wars mit dem Tutorial,nun noch was spezifisches für dein Script.


    Da du willst,dass,wenn man das Tutorial abgeschlossen hat,20k bekommt,einfach bei dem letzten CP
    GivePlayerMoney(playerid,20000);

    Nun noch eine Empfehlung von mir.Setze das LVL des Spielers auf 2.(nach der beendigung des Tut's)
    Dann kannst du bei /tut abfragen,ob er noch unter Lvl 2 ist.Falls ja,kann er das Tut machen,falls nicht,dann kann er es nicht machen.

    [pwn] if(!GetPlayerScore(playerid) == 1))return SendClientMessage(playerid,-1,"Du hast das Tutorial schon gemacht");[/pwn]