Wantedliste ist buggy

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
  • Kurz & Knapp, ich brauche Hilfe bei meiner Wantedliste.
    Es werden nur die Mitlgieder im SAPD angezeigt, also Fraktion 4 & 9 und
    die Nachcircht "Derzeit kein Straftäter unterwegs" wird IMMER gesendet.
    Hier die Zeilen:


    COMMAND:wlist(playerid,params[])
    {
    new str[200];
    if(pInfo[playerid][Fraktion] != 4 && pInfo[playerid][Fraktion] != 9)return SendClientMessage(playerid,0xC8C8C8FF,"Du bist kein Cop/FBI!");
    SendClientMessage(playerid,0xC8C8C8FF,"___________Wantedliste___________");
    for(new i=0;i<MAX_PLAYERS;i++)
    {
    if(IsPlayerConnected(i))
    {
    if(pInfo[i][Wanteds] == 0)
    {
    format(str,sizeof(str),"Name: %s | Wanteds: %d",SpielerName[i],pInfo[i][Wanteds]);
    SendClientMessage(playerid,0xFFE600FF,str);
    }
    else return SendClientMessage(playerid,0xC8C8C8FF,"Derzeit keine Straftäter unterwegs!");
    }
    }
    return 1;
    }

  • if(pInfo[i][Wanteds] == 0)
    {
    format(str,sizeof(str),"Name: %s | Wanteds: %d",SpielerName[i],pInfo[i][Wanteds]);
    SendClientMessage(playerid,0xFFE600FF,str);
    }
    Relativ sinnlos.Die If() Abfrage schaut ob der Spieler keine Wanteds hat ( 0 ) und falls das stimmt, wird angezeigt, dass er 0 hat.
    if(pInfo[i][Wanteds] > 0 )
    {
    format(str,sizeof(str),"Name: %s | Wanteds: %d",SpielerName[i],pInfo[i][Wanteds]);
    SendClientMessage(playerid,0xFFE600FF,str);
    }


    else return SendClientMessage(playerid,0xC8C8C8FF,"Derzeit keine Straftäter unterwegs!");
    Ist dort auch an der falschen Stelle. Erstell eine Variable ( zB bool:bTreffer = false; ) und sobald mindestens 1 Spieler mit Wanted gefunden wurde, änder den Wert ( bTreffer = true ).
    Zum Schluss überprüfst du ob die Variable sich nicht verändert hat ( if ( bTreffer == false ) ) und sendest dann die Nachricht, dass es keine Gesuchten Spieler gibt.

  • Heißt also:
    new str[100], j;
    if(pInfo[playerid][Fraktion] != 4 && pInfo[playerid][Fraktion] != 9)return SendClientMessage(playerid,0xC8C8C8FF,"Du bist kein Cop/FBI!");
    SendClientMessage(playerid,0xC8C8C8FF,"___________Wantedliste___________");
    for(new i=0;i<MAX_PLAYERS;i++)
    {
    if(IsPlayerConnected(i))
    {
    if(pInfo[i][Wanteds] > 0)
    {
    format(str,sizeof(str),"Name: %s | Wanteds: %d",SpielerName[i],pInfo[i][Wanteds]);
    SendClientMessage(playerid,0xFFE600FF,str);
    j++;
    }
    }
    }
    if(!j) SendClientMessage(playerid,0xC8C8C8FF,"Derzeit keine Straftäter unterwegs!");