[Selfmade] Wanted System Problem

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
  • Ich weis nicht wie man das behebt !
    Ingame kommt immer "Du kannst nicht mehr als 1 oder mehr als 6 geben" obwohl ich 4 gegeben habe. Dies kommt bei jeder Zahl die ich eingebe


    dcmd_wanted(playerid,params[])
    {
    if(IsPlayerConnected(playerid))
    {
    if(Spieler[playerid][Team] == 1)
    {
    new pID, string[128];
    new level = Spieler[pID][Wanteds];
    new grund[128];
    new wanted;
    GetPlayerName(playerid,spieler,sizeof spieler);
    GetPlayerName(pID,spieler2,sizeof spieler2);
    if(sscanf(params,"uds",pID,level,grund))
    return SendClientMessage(playerid,weiß,"Nutze: /wanted [playerid] [Wanteds] [Grund]");
    if(!IsPlayerConnected(pID))
    return SendClientMessage(playerid,rot,"Der Spieler ist Offline !");
    if(sscanf(params,"uds",pID,level,grund))
    return SendClientMessage(playerid,weiß,"Nutze: /wanted [playerid] [Wanteds] [Grund]");
    if(wanted < 1 || wanted > 6) { return SendClientMessage(playerid,rot,"Du kannst nicht weniger als 1 oder mehr als 6 Wanteds verteilen !"); }
    if(sscanf(params,"uds",pID,level,grund))
    return SendClientMessage(playerid,weiß,"Nutze: /wanted [playerid] [Wanteds] [Grund]");
    SetPlayerWantedLevel(pID,wanted+level);
    if(Spieler[playerid][Team] == 1) {
    format(string,sizeof string,"Staatsbeamter %s hat einen Spieler als gesucht gemeldet,",spieler);
    SendClientMessage(playerid,polizeiblau,string);
    format(string,sizeof string,"Name des gesuchten: %s, Verbrechen: %s, Wantedanzahl: %d,",spieler2,grund,wanted);
    SendClientMessage(playerid,polizeiblau,string); }
    }
    else { return SendClientMessage(playerid,weiß,"Du bist kein Mitglied von diesen Fraktionen: Polizei, FBI, Bundeswehr"); }
    }
    return 1;
    }

    | Green Day - Nickelback - Rise Against - 3 Doors Down | \m/

  • Der Befehl macht so nur wenig Sinn.
    1. Fragst du 3 mal per sscanf die parameter ab
    2. IsPlayerConnected für den Spieler der Den Befehl ausführt abzufragen ist Sinnlos. Wäre er nicht Online, könnte er ja auch keinen befehl ausführen :P
    3. Fragst du 2 mal ab ob der Spieler ein Polizist ist, einmal beim anfang des Befehls und einmal da Wo die nachricht "Staatsbeamter %s hat einen...." kommt. Diese sollte wohl auch an alle Polizisten gesendet werden die Online sind, und nicht an den Spieler der den befehl benutzt oder? Ich gehe da einfach mal von aus weil du den Satz so formuliert hast.
    4. Du hast die Wanted anzahl mit der variable "level" belegt. Aber benutzen tust du "level" für die alten wanteds des Spielers. Und da du abfragst ob "wanted" < 1 oder > 6 ist, aber wanted im befehl garnicht definierst, ist klar das es nicht geht.
    Versuch es mal so, ist allerdings ungetestet aber in der Theorie sollte es gehen ^^
    dcmd_wanted(playerid,params[])
    {
    new pID,string[128],grund[128],wanted,spieler[MAX_PLAYER_NAME],spieler2[MAX_PLAYER_NAME];
    if(Spieler[playerid][Team] != 1) return SendClientMessage(playerid,weiß,"Du bist kein Mitglied von diesen Fraktionen: Polizei, FBI, Bundeswehr");
    if(sscanf(params,"uds",pID,wanted,grund)) return SendClientMessage(playerid,weiß,"Nutze: /wanted [playerid] [Wanteds] [Grund]");
    if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,rot,"Der Spieler ist Offline !");
    if(wanted < 1 || wanted > 6) return SendClientMessage(playerid,rot,"Du kannst nicht weniger als 1 oder mehr als 6 Wanteds verteilen !");
    GetPlayerName(playerid,spieler,sizeof spieler);
    GetPlayerName(pID,spieler2,sizeof spieler2);
    new level = Spieler[pID][Wanteds];
    SetPlayerWantedLevel(pID,level+wanted);
    for(new i=0;i<MAX_PLAYERS;i++)
    {
    if(Spieler[i][Team] == 1)
    {
    format(string,sizeof string,"Staatsbeamter %s hat einen Spieler als gesucht gemeldet,",spieler);
    SendClientMessage(i,polizeiblau,string);
    format(string,sizeof string,"Name des gesuchten: %s, Verbrechen: %s, Wantedanzahl: %d,",spieler2,grund,wanted);
    SendClientMessage(i,polizeiblau,string); }
    }
    }
    return 1;
    }

    The fact is, I am right. And if you think I'm wrong, you are wrong.