Wantedvergabesystem (/su)

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
  • Hallo Community,


    Ich möchte, dass wenn ich einem spieler ein Wanted gebe , dass ich es mit z.b. /su ID -1 oder -3 die Wanteds entfernen kann bzw weniger machen kann.



    CODE :


    /* Wanted Gabe */
    //----------------------------------[SetCrime]-----------------------------------------------
    if(strcmp(cmd, "/suspect", true) == 0 || strcmp(cmd, "/su", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(OnDuty[playerid] != 1 && PlayerInfo[playerid][pMember] == 1 && PlayerInfo[playerid][pLeader] == 1)
    {
    SendClientMessage(playerid, COLOR_GREY, " Du musst erst in den Dienst gehen (/duty).");
    return 1;
    }
    if(OnDuty[playerid] != 1 && PlayerInfo[playerid][pMember] == 2 && PlayerInfo[playerid][pLeader] == 2)
    {
    SendClientMessage(playerid, COLOR_GREY, " Du musst erst in den Dienst gehen (/duty).");
    return 1;
    }
    if(OnDuty[playerid] != 1 && PlayerInfo[playerid][pMember] == 3 && PlayerInfo[playerid][pLeader] == 3)
    {
    SendClientMessage(playerid, COLOR_GREY, " Du musst erst in den Dienst gehen (/duty).");
    return 1;
    }
    /*if (PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pLeader] == 1)
    {
    SendClientMessage(playerid, COLOR_GREY, "Du darfst dieses Befehl nicht Benutzen!");
    return 1;
    }*/
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD2, "Befehl: (/su)spect [playerid] [Anklage]");
    return 1;
    }
    giveplayerid = ReturnUser(tmp);
    if (gTeam[playerid] == 2 || IsACop(playerid))
    {
    if(IsPlayerConnected(giveplayerid))
    {
    if(giveplayerid != INVALID_PLAYER_ID)
    {
    if (gTeam[giveplayerid] != 2)
    {
    GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
    GetPlayerName(playerid, sendername, sizeof(sendername));
    new length = strlen(cmdtext);
    while ((idx < length) && (cmdtext[idx] <= ' '))
    {
    idx++;
    }
    new offset = idx;
    new result[64];
    while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
    {
    result[idx - offset] = cmdtext[idx];
    idx++;
    }
    result[idx - offset] = EOS;
    if(!strlen(result))
    {
    SendClientMessage(playerid, COLOR_GRAD2, "Befehl: (/su)spect [playerid] [Vergehen]");
    return 1;
    }
    if(IsACop(giveplayerid))
    {
    SendClientMessage(playerid, COLOR_WHITE, "Du kannst keinem Staatsbeamten Wanteds geben!");
    return 1;
    }
    if(WantedLevel[giveplayerid] >= 6)
    {
    SendClientMessage(playerid, COLOR_WHITE, "Der Spieler hat schon 6 Wanteds!");
    return 1;
    }
    PlayerInfo[giveplayerid][pCrimes] += 1;
    WantedLevel[giveplayerid] += 1;
    SetPlayerCriminal(giveplayerid,playerid, result);
    SendClientMessage(playerid, COLOR_WHITE, "Du hast dem Spieler ein WantedLevel gegeben!");
    return 1;
    }
    else
    {
    SendClientMessage(playerid, COLOR_GRAD2, "Du kannst keinem Beamten ein WantedLevel geben!");
    }
    }
    }
    else
    {
    format(string, sizeof(string), " %d ist kein aktiver Spieler.", giveplayerid);
    SendClientMessage(playerid, COLOR_RED, string);
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GRAD2, " Du bist kein Staatsbeamter !");
    }
    }
    return 1;
    }



    Kann jmd rasch sagen wie es geht?


    bekomme immer 1 Wanted aber wenn ich jetzt jemanden 2 oder 3 geben will muss man öfters schreiben ... Kann man das auch beheben?



    MFG

    ~Kein Baum ist Astrein!~

  • Dann kommt Ingame die Nachricht



    "Spieler hat schon 6 Wanteds "
    Ich kann mir keine minus wanteds geben und wenn ich mir welche geben will da ich ja shcon 6 ghabe kommt die meldung ich habe shcon 6


    MFG

    ~Kein Baum ist Astrein!~

  • if(WantedLevel[giveplayerid] >= 6)
    zu:
    if(WantedLevel[giveplayerid] >= 6 && strval(result) > 0)


    Und das hier kannst du noch hinzufügen:
    if(WantedLevel[giveplayerid] <= 0 && strval(result) < 0)
    {
    SendClientMessage(playerid, COLOR_WHITE, "Der Spieler hat schon 0 Wanteds!");
    return 1;
    }

  • nene sozusagen noch eine Sendclientmessage wenn der SPieler schon 6 wtds hat dann soll kommen spieler hat schon 6 wtds mehr geht nicht und wenn man minus macht soll halt was jez da ist spieler hat schon 0 wanteds



    MFG

    ~Kein Baum ist Astrein!~

  • if(strval(result)+WantedLevel[giveplayerid] > 6)
    {
    SendClientMessage(playerid, COLOR_WHITE, "Spieler kann maximal 6 Wanteds haben.");
    return 1;
    }
    if(strval(result)+WantedLevel[giveplayerid] < 0)
    {
    SendClientMessage(playerid, COLOR_WHITE, "Spieler kann nicht weniger als 0 Wanteds haben.");
    return 1;
    }

  • Hallo ich bisn nochmakl
    hat geklappt vielen dank dir,
    wollte aber noch etwas : D


    wollte, das wenn ich dem Spieler ein Wtds gebe steht du hast ihm eins gegebn und das steht auch so jez da aber will auch wenn ich dem 2 oder -2 gebe das es steht du hast dem spieler 2 wtds entfern oder wenisgtesn -2 wtds gegeben also %d damit geht das bestimmt oder?



    und wäre toll wenn der Spieler eine Nachricht bekäme das der OFFICER X dir X wtds WEGEN X gegeben hat kannst du das auch rasch ? :D


    MFg

    ~Kein Baum ist Astrein!~

  • new str[145];
    if(strval(result) < 0) format(str, sizeof(str), "Officer %s hat dir %d Wanteds abgezogen.", sendername, -strval(result));
    else format(str, sizeof(str), "Officer %s hat dir %d Wanteds gegeben.", sendername, strval(result));
    SendClientMessage(giveplayerid, 0xFF0000FF, str);
    if(strval(result) < 0) format(str, sizeof(str), "Du hast %s %d Wanteds abgezogen.", giveplayer, -strval(result));
    else format(str, sizeof(str), "Du hast %s %d Wanteds gegeben.", giveplayer, strval(result));
    SendClientMessage(playerid, 0xFF0000FF, str);


    Dürfte so passen.