[Hilfe] Straßenfeger Job mit Zufällig Ausgewählten Routen

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
  • Guten Morgen Leute,


    ich habe ein Problem :) und zwar habe ich ein Straßenfeger Job gemacht nur weiß ich nicht, wie ich es machen kann das wenn man den Job startet nicht nur die eine Route jedes mal gefahren wird sondern es 3 Routen gibt und immer per zufall ausgewählt wird welche Route gefahren werden soll.


    Hier habe ich ein paar Codeschnipsel :) ich hoffe ihr könnt mir helfen.



    new Float:Checkpoints[15][3] ={
    {11.0,11.0,11.0},
    {1620.8645,-1606.1689,13.0735},
    {1514.0093,-1590.0138,12.9073},
    {1410.9939,-1589.9401,12.8965},
    {1315.5861,-1557.5890,12.9188},
    {1360.0398,-1358.1406,12.9074},
    {1369.8363,-1143.4047,23.1807},
    {1452.6233,-1173.4036,23.6869},
    {1452.3309,-1423.6340,13.3853},
    {1484.0054,-1442.5990,13.3853},
    {1565.1324,-1442.6193,13.3853},
    {1655.3969,-1454.7147,13.3857},
    {1647.9934,-1589.7083,13.3954},
    {1616.9780,-1615.4194,13.5494},
    {1614.5992,-1659.4561,13.5494}
    };




    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if (strcmp(cmdtext,"/Strassenfeger",true)==0)
    {
    new vehicleid = GetPlayerVehicleID(playerid);
    new model = GetVehicleModel(vehicleid);
    if(muellabfuhrmission[playerid] == 0)
    {
    if(model == 574)
    {
    SendClientMessage(playerid, COLOR_LIGHTGREEN, "Straßenfeger Job gestartet, fahre nun die einzelnen Checkpoints ab");
    Checkpoint[playerid] += 1;
    SetPlayerCheckpoint(playerid, Checkpoints[Checkpoint[playerid]][0],Checkpoints[Checkpoint[playerid]][1],Checkpoints[Checkpoint[playerid]][2], 5.0);
    muellabfuhrmission[playerid] =1;
    }
    else
    {
    SendClientMessage(playerid, COLOR_RED, "Du bist nicht im Straßenfeger Fahrzeug!");
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_RED, "Es läuft schon eine Mission!");
    }
    return 1;
    }
    return 0;
    }

  • new zahl = 1+random(15);


    SetPlayerCheckpoint(playerid, Checkpoints[zahl][1], Checkpoints[zahl][2], Checkpoints[zahl][3], 2.0);

  • Danke ich hatte das auch schon mal so probiert aber ich probiers nochmal aus ;)


    EDIT : Also bei mir wills nicht so ganß :


    new Float:Checkpoints[15][3] ={ // das hier ist die Hauptroute
    {11.0,11.0,11.0},
    {1620.8645,-1606.1689,13.0735},
    {1514.0093,-1590.0138,12.9073},
    {1410.9939,-1589.9401,12.8965},
    {1315.5861,-1557.5890,12.9188},
    {1360.0398,-1358.1406,12.9074},
    {1369.8363,-1143.4047,23.1807},
    {1452.6233,-1173.4036,23.6869},
    {1452.3309,-1423.6340,13.3853},
    {1484.0054,-1442.5990,13.3853},
    {1565.1324,-1442.6193,13.3853},
    {1655.3969,-1454.7147,13.3857},
    {1647.9934,-1589.7083,13.3954},
    {1616.9780,-1615.4194,13.5494},
    {1614.5992,-1659.4561,13.5494}
    };
    new Float:Checkpoints[3][2] ={ // und das hier sollen die anderen beiden Routen sein die per Zufall ausgewählt werden sollen
    {11.0,11.0,11.0},
    {1618.5720,-1672.6577,12.1540},
    {1618.8340,-1722.3397,3.8556}
    };
    new Float:Checkpoints[3][1] ={
    {11.0,11.0,11.0},
    {1608.3451,-1692.2474,13.5469},
    {1622.0601,-1730.8522,13.3828}
    };



    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if (strcmp(cmdtext,"/Strassenfeger",true)==0)
    {
    new vehicleid = GetPlayerVehicleID(playerid);
    new model = GetVehicleModel(vehicleid);
    new zahl = 1+random(15); // das hier habe ich verändert
    if(muellabfuhrmission[playerid] == 0)
    {
    if(model == 574)
    {
    SendClientMessage(playerid, COLOR_LIGHTGREEN, "Straßenfeger Job gestartet, fahre nun die einzelnen Checkpoints ab");
    Checkpoint[playerid] += 1;
    SetPlayerCheckpoint(playerid, Checkpoints[zahl][1], Checkpoints[zahl][2], Checkpoints[zahl][3], 2.0); // das habe ich auch verändert aber das ist glaub ich Falsch..
    muellabfuhrmission[playerid] =1;
    }
    else
    {
    SendClientMessage(playerid, COLOR_RED, "Du bist nicht im Straßenfeger Fahrzeug!");
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_RED, "Es läuft schon eine Mission!");
    }
    return 1;
    }
    return 0;
    }


    public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid) {
    return 1;
    }


    Da habe ich noch nichts verändert:


    public OnPlayerEnterCheckpoint(playerid) {
    if (muellabfuhrmission[playerid] == 1)
    {
    new string[256];
    new Bonus = random(3000);
    if(Checkpoint[playerid]==14)
    {
    SendClientMessage(playerid, COLOR_LIGHTGREEN, "Herzlichen Glueckwunsch, und danke das du hilfst die Stadt sauber zu halten!");
    DisablePlayerCheckpoint(playerid);
    CallRemoteFunction("ChangeMoney", "dd", playerid, Bonus); //Geld verändern.
    format(string, sizeof(string), "** Du hast ein Bonus von %d$ bekommen!",Bonus);
    SendClientMessage(playerid, COLOR_GREEN, string);
    muellabfuhrmission[playerid] = 0;
    Checkpoint[playerid] = 0;
    }
    else
    {
    new trinkgeld = random(85); // Betrag für das Trinkgeld, lässt sich beliebig ändern! ( Zufalls Betrag )
    SendClientMessage(playerid, COLOR_RED, "Straße Sauber gefegt, weiter!");
    CallRemoteFunction("ChangeMoney", "dd", playerid, trinkgeld); //Geld verändern.
    format(string, sizeof(string), "** Du hast %d$ Trinkgeld bekommen!",trinkgeld);
    SendClientMessage(playerid, COLOR_GREEN, string);
    DisablePlayerCheckpoint(playerid);
    Checkpoint[playerid] += 1;
    SetPlayerCheckpoint(playerid, Checkpoints[Checkpoint[playerid]][0],Checkpoints[Checkpoint[playerid]][1],Checkpoints[Checkpoint[playerid]][2], 5.0);
    }
    }
    return 1;
    }