trash checkpoints // Hilfe !!

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
  • heii Zusammen 8)


    hab mein 1. job den ich grade am scripten bin.
    Es ist der Müllmann..
    Hab dafür schon ne Base gemappt, 11 Fahrzeuge und so..
    Nur ich weis nicht genau wie das mit den Checkpoints geht.


    new trash[11];


    trash[0] = CreateVehicle(408, -57.8509, -1127.9233, 1.6000, 64.0000, -1, -1, 100);
    trash[1] = CreateVehicle(408, -55.6559, -1123.3385, 1.6000, 64.0000, -1, -1, 100);
    trash[2] = CreateVehicle(408, -53.5831, -1118.4957, 1.6000, 64.0000, -1, -1, 100);
    trash[3] = CreateVehicle(408, -51.5481, -1113.6445, 1.6000, 64.0000, -1, -1, 100);
    trash[4] = CreateVehicle(408, -60.0877, -1132.8159, 1.6000, 64.0000, -1, -1, 100);
    trash[5] = CreateVehicle(408, -74.5728, -1104.8234, 1.6000, -112.0000, -1, -1, 100);
    trash[6] = CreateVehicle(408, -76.2988, -1109.4285, 1.6000, -112.0000, -1, -1, 100);
    trash[7] = CreateVehicle(408, -77.9648, -1114.5577, 1.6000, -112.0000, -1, -1, 100);
    trash[8] = CreateVehicle(408, -74.5724, -1139.5822, 1.6000, -25.0000, -1, -1, 100);
    trash[9] = CreateVehicle(408, -80.1773, -1136.9447, 1.6000, -25.0000, -1, -1, 100);
    trash[10] = CreateVehicle(408, -85.5482, -1134.4751, 1.6000, -25.0000, -1, -1, 100);


    Das sind die Fahrzeuge.


    Also das mit den Checkpoints soll so sein, das sie erst angezeigt werden wenn der Spieler in dem Fahrzeug ist.
    Wenn er nicht in einem trash[X] Fahrzeug ist, werden keine Checkpoints angezeigt..


    Wie macht man das richtig?
    bitte um hilfe :(


    MfG HellFire

  • So:


    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    if(newstate == PLAYER_STATE_DRIVER)
    {
    new vehicleid = GetPlayerVehicleID(playerid);
    for(new i=0; i<11; i++)
    {
    if(vehicleid == trash[i])
    {
    SetPlayerCheckpoint(playerid, X, Y, Z, 3.0); //Hier wird dann der Checkpoint gesetzt :)
    break;
    }
    }
    }
    return 1;
    }


    Aus dem Kopf geschrieben, sollte aber funktionieren ;)


    mfg. :thumbup:

    ast2ufdyxkb1.png


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

  • und wie sieht es aus mit mehreren hinter einander?


    wenn du viel langeweile hast könntest mir auchnoch verraten wie ich es mache das er wenn er in dem checkpoint steht und den müll abholt, 2-3 sekunden nicht fahren kann? :love:

  • new checkid[MAX_PLAYERS] = 0;


    //Also mein Befehl und da über das break; das hier:
    checkid[playerid] = 1;


    //Dann:
    public OnPlayerEnterCheckpoint(playerid)
    {
    if(checkid[playerid] == 1)
    {
    new vehicleid = GetPlayerVehicleID(playerid);
    for(new i=0; i<11; i++)
    {
    if(vehicleid == trash[i])
    {
    DisablePlayerCheckpoint(playerid);
    checkid[playerid] = 2;
    TogglePlayerControllable(playerid, 0); //Spieler kann nicht weiter fahren
    SetTimerEx("Wiederfahren", 1000*3, 0, "i", playerid); //Spieler kann nach 3sek wieder weiter fahren
    break;
    }
    }
    }
    if(checkid[playerid] == 2) //was bei dem nächsten Checkpoint passieren soll
    {
    return 1;
    }
    return 1;
    }


    forward Wiederfahren(playerid);
    public Wiederfahren(playerid)
    {
    TogglePlayerControllable(playerid, 1);//kann wieder weiterfahren
    SetPlayerCheckpoint(playerid, X, Y, Z, 3.0); //neuer Checkpoint
    return 1;
    }


    Da, bitteschön ;)


    mfg. :thumbup:

    ast2ufdyxkb1.png


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