Befehl zum Annehmen von Tour erstellen? Hilfe bitte.

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
  • Ändere die Deklaration dann zu:
    new Float:globalVar[MAX_PLAYERS][3];


    Ich denke dafür war es gedacht, um den Checkpoint-Platz zwischenzuspeichern.

    Wenn ich jetzt Müllsäcke nehme .
    Kann ich die abgeben und kann das mehrmals machen .. aber die Zahl von Müllsäcken spinnt rum
    von 6 auf 5 dann wd auf 5 dann 6 etc.


    Wenn ich das mit

    globalVar[playerid][0] = x1;
    globalVar[playerid][1] = x2;
    globalVar[playerid][2] = x3;
    globalVar[inviteID[playerid]][0] = x1;
    globalVar[inviteID[playerid]][1] = x2;
    globalVar[inviteID[playerid]][2] = x3;

    Rausnehme kann jede person einen Müllsack nehmen und dann kommt kein CP mehr.

  • Kannst du mal ein Bild vom Chat schicken, wie es aussieht (oder den Log aus den eigenen Dateien), wenn du 5 Müllsäcke ablieferst?

    Den kompletten Job an einem Cp beendet bzw auf 5.0 kubik gemacht.

    [19:22:14] Du hast EpiC erfolgreich eine Anfrage gesendet, bitte warte bis er sie annimmt!



    [19:22:18] EpiC hat erfolgreich die Einladung Angenommen!



    [19:22:35] Kubik: 0.5/15.0



    [19:22:35] Müllsäcke: 6



    [19:22:38] Kubik: 1.0/15.0



    [19:22:38] Müllsäcke: 5



    [19:22:41] Kubik: 1.5/15.0



    [19:22:41] Müllsäcke: 4



    [19:22:45] Kubik: 2.0/15.0



    [19:22:45] Müllsäcke: 4



    [19:22:48] Screenshot Taken - sa-mp-254.png



    [19:22:50] Kubik: 3.0/15.0



    [19:22:50] Müllsäcke: 5



    [19:22:54] Kubik: 4.0/15.0



    [19:22:54] Müllsäcke: 4



    [19:22:58] Kubik: 4.5/15.0



    [19:22:58] Müllsäcke: 5



    [19:23:01] Kubik: 5.0/15.0



    [19:23:01] Müllsäcke: 4



    [19:23:03] Das Fahrzeug ist voll, benutze /garbagestop

    http://www.pic-upload.de/view-31045372/sa-mp-255.png.html


    Wir haben zu zweit eingesammelt deswegen bestimmt von 3.0 auf 4.0 kubik etc

  • Entferne das hier aus OnPlayerEnterDynamicCP:
    new rand1 = 5+random(3);muellsacke[pMuellAuto[playerid]] = rand1;
    Und füge es in den Befehl ein. Sonst wird das jedes mal neu gesetzt, wenn du einen Müllsack aufnimmst.

    Jetzt neues Prob.. ^^

    [19:44:21] Kubik: 0.5/15.0



    [19:44:21] Müllsäcke: 6



    [19:44:25] Kubik: 1.5/15.0



    [19:44:25] Müllsäcke: 4



    [19:44:28] Kubik: 2.5/15.0



    [19:44:28] Müllsäcke: 2



    [19:44:32] Kubik: 3.0/15.0



    [19:44:32] Müllsäcke: 1



    [19:44:36] Kubik: 4.0/15.0



    [19:44:36] Müllsäcke: -1



    [19:44:40] Kubik: 5.0/15.0



    [19:44:40] Müllsäcke: -3



    [19:44:43] Kubik: 0.5/15.0



    [19:44:43] Müllsäcke: -4



    [19:44:47] Kubik: 1.0/15.0



    [19:44:47] Müllsäcke: -5



    [19:44:51] Kubik: 1.5/15.0



    [19:44:51] Müllsäcke: -6



    [19:44:54] Kubik: 2.0/15.0



    [19:44:54] Müllsäcke: -7



    [19:44:59] Screenshot Taken - sa-mp-256.png


    Bei meinem Partner kam das Fahrzeug ist voll /stopgarbage
    und dann konnten wir aufeinmal weiter Müllsäcke sammeln die gehen sogar in den -Minus bereich
    und CP war nur an einer Stelle.

  • In OnPlayerEnterDynamicCP:
    if(muellsacke[pMuellAuto[playerid]] == 1)
    zu:
    if(muellsacke[pMuellAuto[playerid]] <= 1)


    Füge dort drunter, nach dem Erstellen des Checkpoints, auch das ein:
    new rand1 = 5+random(3);
    muellsacke[pMuellAuto[playerid]] = rand1;
    globalVar[playerid][0] = bmx1[rand][0];
    globalVar[playerid][1] = bmx1[rand][1];
    globalVar[playerid][2] = bmx1[rand][2];
    globalVar[inviteID[playerid]][0] = bmx1[rand][0];
    globalVar[inviteID[playerid]][1] = bmx1[rand][1];
    globalVar[inviteID[playerid]][2] = bmx1[rand][2];

  • Klappt jetzt ..


    Jetzt brauche ich nur noch /garbagestop
    Das man halt abgeben kann je mehr kubik man hat desdo mehr geld
    bei 15 Kubik 30k


    -----------


    und das wenn ich /garbage gemacht habe keiner angenommen hat
    wieder nutzen kann nach 30 Sek .. und die anfrage abgebrochen wird beim anderen Spieler
    weil sonst kann ich keinen neuen Müll Partner nehmen.


    Kannst du mir bei dem mit den 30 Sekunden helfen und hab hier nen prob:

    ocmd:stopgarbage(playerid,params[])
    {
    if(IsPlayerConnected(playerid))
    {
    if(IsPlayerInRangeOfPoint(playerid,10.0,1789.0635,-2037.7970,13.5235))
    {
    if(IsPlayerInAnyVehicle(playerid))
    {
    new veh = GetPlayerVehicleID(playerid);
    for(new i = 0;i<sizeof(muellcars);i++)
    {
    if(veh == muellcars[i])
    {
    //new muellgeld = kubik[pMuellAuto[playerid]]*2;
    new geld = floatround(kubik[pMuellAuto[playerid]]) * 2000;
    PlayerInfo[playerid][bsumme]+=floatround(geld);
    //kubik[pMuellAuto[playerid]]*2;
    new string[254];
    format(string,sizeof(string),"Du gibst %0.1f Kubik Müll ab und erhälst %d",kubik[pMuellAuto[playerid]],floatround(geld));
    SendClientMessage(playerid,0x00C3FFFF,string);
    PlayerInfo[playerid][pLohn]+=floatround(geld);
    UpdateJobAnzeige(playerid);
    return 1;
    }
    }
    }
    }
    }
    return 1;
    }


    Bekomme warnings das geld nicht benutzt wird ..
    Bekomme kein Geld InGame wenn ich abgebe was muss ich hier verändern?
    2k pro 1 Kubik

  • Füge dem Befehl hinzu:
    GivePlayerMoney(playerid, geld);


    Zwecks den 30 Sekunden:
    Zum anderen Befehl:
    if(lastInvite[playerid]+30 > gettime()) return SendClientMessage(playerid, 0xFF0000FF, "Error: Warte 30 Sekunden.");
    lastInvite[playerid] = gettime();
    Unter den Includes:
    new lastInvite[MAX_PLAYERS];

  • Wenn ich einmal /garbage PLAYERID gemacht habe



    ocmd:garbage(playerid,params[]){
    if(IsPlayerConnected(playerid))
    {
    if(istdabei[playerid] == 0)
    {
    if(dienst[playerid] == 0)
    {
    if(IsPlayerInAnyVehicle(playerid))
    {
    new veh = GetPlayerVehicleID(playerid);
    for(new i = 0;i<sizeof(muellcars);i++)
    {
    if(veh == muellcars[i])
    {
    new string[123],pID2,string2[123];
    if(sscanf(params,"u",pID2))return SendClientMessage(playerid,COLOR_GREY,"[Benutze] /garbage [SpielerID]");
    if(wurdeangefragt[playerid] == 0)
    {
    if(lastInvite[playerid]+30 > gettime()) return SendClientMessage(playerid, 0xFF0000FF, "Error: Warte 30 Sekunden.");
    lastInvite[playerid] = gettime();
    inviteID[playerid] = pID2;
    inviteID[pID2] = playerid;
    format(string,sizeof(string),"Du hast %s erfolgreich eine Anfrage gesendet, bitte warte bis er sie annimmt!",Spielername(inviteID[playerid]));
    SendClientMessage(playerid,COLOR_BLUE,string);
    format(string2,sizeof(string2),"%s hat dich angefragt, benutze /agarbage um die Anfrage anzunehmen",Spielername(playerid));
    SendClientMessage(inviteID[playerid],COLOR_BLUE,string2);
    wurdeangefragt[pID2] = 1;
    maxkubik[veh] = 15.0;
    pMuellAuto[playerid] = veh; //pMuellAuto global unter den Includes mit MAX_PLAYERS deklarieren.
    kubik[veh] = 0.0;
    return 1;
    }
    }
    }
    SendClientMessage(playerid, COLOR_RED, "Du bist in keinem Müllwagen.");
    return 1;
    }
    }
    else return SendClientMessage(playerid, COLOR_RED, "Du bist kein Müllmann.");
    }
    }
    return 1;
    }

    Steht beim 2x /garbage also wenn ich z.b jetzt jemand anderes anfragen will "Du bist kein Müllmann"


    Und bei /stopgarbage steht

    ocmd:stopgarbage(playerid,params[])
    {
    if(IsPlayerConnected(playerid))
    {
    if(IsPlayerInRangeOfPoint(playerid,10.0,1789.0635,-2037.7970,13.5235))
    {
    if(IsPlayerInAnyVehicle(playerid))
    {
    new veh = GetPlayerVehicleID(playerid);
    for(new i = 0;i<sizeof(muellcars);i++)
    {
    if(veh == muellcars[i])
    {
    //new muellgeld = kubik[pMuellAuto[playerid]]*2;
    new geld = floatround(kubik[pMuellAuto[playerid]]) * 2000;
    GivePlayerMoney(playerid, geld);
    PlayerInfo[playerid][bsumme]+=floatround(geld);
    //kubik[pMuellAuto[playerid]]*2;
    new string[254];
    format(string,sizeof(string),"Du gibst %0.1f Kubik Müll ab und erhälst %d",kubik[pMuellAuto[playerid]],floatround(geld));
    SendClientMessage(playerid,0x00C3FFFF,string);
    PlayerInfo[playerid][pLohn]+=floatround(geld);
    UpdateJobAnzeige(playerid);
    return 1;
    }
    }
    }
    }
    }
    return 1;
    }

    Du gibst 1 Kubik Müll ab und erhälst 0
    Das Geld soll dem pLohn hinzugefügt werden .


    Und mir fällt gerade auf wenn ich einfach, /agarbage mache nehme ich den Job mit mir selbst an obwohl ich noch keine Anfrage erstellt habe.

  • 1.)
    dienst[playerid] scheint dann nicht 0 zu sein, setze das nach beenden des Jobs auf 0 zurück.



    2.)
    format(string,sizeof(string),"Du gibst %0.1f Kubik Müll ab und erhälst %d",kubik[pMuellAuto[playerid]],floatround(geld));
    zu:
    format(string,sizeof(string),"Du gibst %0.1f Kubik Müll ab und erhälst %d",kubik[pMuellAuto[playerid]],geld);