Checkpoint erweitern ?

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
  • Moin,


    Ich habe ein Problem, ich will halt ein LKW Beruf machen und die sollen Checkpoints abfahren.
    Das habe ich auch hin bekommen aber jetzt ist es möglich bei 4 LKWs diesen Job zu machen.
    Aber ich will es getrennt haben d.h. Ein LKW fährt Checkpoints 1 ab, und der Zweite LKW Checkpoints 2 ab.
    Und man sollte es beliebig erweitern können. aber ich bekomme es nicht hin.


    Hier ist der Script ich hoffe jemand kann es so umgestalten das ich viele Checkpints Touren in einen Filterscript habe.


    #include <a_samp>
    #include <a_vehicles>
    #define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
    #define BSN
    #define msg 0


    new Checkpoint[MAX_PLAYERS];
    new bool:mission[MAX_PLAYERS];
    new trashcars[4];


    forward missionfailed(playerid);
    forward TRASHCAR(carid);



    #define RESPAWN 60000
    #define ENTGELD 1975


    #define COLOR_LIGHTGREEN 0x86FF59FF
    #define COLOR_RED 0xFF0000FF
    #define COLOR_GREEN 0x00CA00FF



    enum XYZR {
    Float:X,
    Float:Y,
    Float:Z,
    Float:R
    }



    new
    Checkpoints[11][XYZR] = {
    {1191.8751, -888.1008, 43.6759, 6.0},
    {788.0756, -1621.5265, 13.9796, 6.0},
    {2200.2998, 2786.6848, 11.4141, 6.0},
    {2362.3794, 2078.0110, 11.3365, 6.0},
    {2475.8420, 2003.3173, 11.4135, 6.0},
    {1872.7861, 2101.4988, 11.4161, 6.0},
    {1152.9369, 2102.6589, 11.4264, 6.0},
    {-1915.6647, 832.7262, 36.2330, 6.0},
    {-2326.4431, 1011.5709, 51.2899, 6.0},
    {-2337.8369, -137.3591, 35.9195, 6.0},
    {-116.8800,-325.1321,2.0144, 6.0} // 11
    };


    public OnFilterScriptInit()
    {
    print("|=> Muellabfuhr 2.0 by AlexandA <=|");



    //==============> Müllautos <==============
    trashcars[0] = CreateVehicle(403,12.5890,-257.2232,6.0358,90.4535,0,0, RESPAWN);
    trashcars[1] = CreateVehicle(403,12.7464,-253.0851,6.0358,90.3014,0,0, RESPAWN);
    trashcars[2] = CreateVehicle(403,12.7668,-244.8080,6.0363,90.4806,0,0, RESPAWN);
    trashcars[3] = CreateVehicle(403,12.8712,-224.0443,6.0353,90.8055,0,0, RESPAWN);


    return 1;
    }



    public OnFilterScriptExit()
    {
    return 1;
    }


    public OnGameModeExit() {
    return 1;
    }


    public OnPlayerRequestClass(playerid, classid) {
    return 1;
    }


    public OnPlayerRequestSpawn(playerid) {
    return 1;
    }


    public OnPlayerConnect(playerid)
    {
    mission[playerid] = false;
    Checkpoint[playerid] = 0;
    return 1;
    }


    public OnPlayerCommandText(playerid, cmdtext[])
    {
    dcmd(bs, 7, cmdtext);
    dcmd(deponie, 7, cmdtext);
    return 0;
    }


    dcmd_bs(playerid, params[])
    {
    #pragma unused params
    if(mission[playerid] == true) { return SendClientMessage(playerid, COLOR_RED, "Es laeuft schon eine Mission!"); }
    if(!TRASHCAR(GetPlayerVehicleID(playerid))) { return SendClientMessage(playerid, COLOR_RED, "Du bist nicht im LKW!"); }
    Checkpoint[playerid] = 0;
    mission[playerid] = true;
    SendClientMessage(playerid, COLOR_LIGHTGREEN, "Fahre nun zu den einzelnen BSN Restaurants. Sie sind rot auf deiner Karte markiert!");
    SetPlayerCheckpoint(playerid,Checkpoints[0][X],Checkpoints[0][Y],Checkpoints[0][Z],Checkpoints[0][R]);
    return 1;
    }


    dcmd_deponie(playerid, params[])
    {
    #pragma unused params
    if(!IsPlayerAdmin(playerid)) { return SendClientMessage(playerid, COLOR_RED, "Du musst als Rcon-Admin eingeloggt sein."); }
    SetPlayerPos(playerid, -546.9002,-488.6077,25.2961);
    return 1;
    }



    public OnPlayerExitVehicle(playerid, vehicleid)
    {
    if (mission[playerid] && TRASHCAR(vehicleid))
    {
    SendClientMessage(playerid, COLOR_RED, "* Du hast 15 Sekunden um zurueck in den LKW zu steigen !");
    SetTimerEx("missionfailed", 15000, 0,"d",playerid);
    return 1;
    }
    return 1;
    }


    public OnPlayerEnterCheckpoint(playerid)
    {
    new
    trinkgeld,
    string[128];
    trinkgeld = random(100);
    Checkpoint[playerid] ++;
    if(Checkpoint[playerid] < (sizeof(Checkpoints)))
    {


    SendClientMessage(playerid, COLOR_RED, "Produkt abgeladen, weiter!");
    GivePlayerMoney(playerid, trinkgeld);
    format(string, sizeof(string), "** Du hast %d$ Trinkgeld bekommen!",trinkgeld);
    SendClientMessage(playerid, COLOR_GREEN, string);
    DisablePlayerCheckpoint(playerid);
    SetPlayerCheckpoint(playerid, Checkpoints[Checkpoint[playerid]][X],Checkpoints[Checkpoint[playerid]][Y],Checkpoints[Checkpoint[playerid]][Z],Checkpoints[Checkpoint[playerid]][R]);
    }
    else if(Checkpoint[playerid] == (sizeof(Checkpoints)))
    {
    SendClientMessage(playerid, COLOR_RED, "Vielen Dank für dein Engagements.");
    DisablePlayerCheckpoint(playerid);
    format(string, 128, "Als Dankeschön bekommst du einen Bonus von %d$", ENTGELD);
    SendClientMessage(playerid, COLOR_RED, string);
    mission[playerid] = false;
    Checkpoint[playerid] = 0;
    }
    return 1;
    }


    public missionfailed(playerid)
    {
    if(!TRASHCAR(GetPlayerVehicleID(playerid)))
    {
    SendClientMessage(playerid, COLOR_RED, "BSN Mission gescheitert!");
    DisablePlayerCheckpoint(playerid);
    mission[playerid] = false;
    Checkpoint[playerid] = 0;
    }
    return 1;
    }


    public TRASHCAR(carid)
    {
    for(new i = 0; i < sizeof(trashcars); i++)
    {
    if(carid == trashcars[i])
    {
    return 1;
    }
    }
    return 0;
    }


    MFG
    ShowTime