suspect Befehl

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 Tag mein Suspect Befehl weißt scheinbar einen Fehler auf.


    Der Befehl vergibt leider keine Wanteds und zeigt imnmer nur an das man 0 wanteds erhalten hat obwohl eine höhere zahl eingetragen ist.



    @Jeffry vllt



    ocmd:su(playerid, params[])
    {
    if(PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pLeader] == 1)
    {
    new pID, Wanteds, reason, string[128];
    if(sscanf(params, "uds", pID, reason))
    {
    if(!IsPlayerConnected(pID))return SendClientMessage(playerid, COLOR_RED, "Dieser Spieler ist offline");
    PlayerInfo[pID][pWanted] += Wanteds;
    PlayerWantedBarUpdate(pID);
    new name[MAX_PLAYER_NAME], name2[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof(name));
    GetPlayerName(pID, name2, sizeof(name2));
    format(string, sizeof(string), "Info: Officer %s hat dir %d Wanted Punkte gegeben( Grund: %s )", name, Wanteds, reason);
    SendClientMessage(pID, COLOR_RED, string);
    format(string, sizeof(string), "Info: Du hast %s %d Wanted Punkte gegeben.", name2, Wanteds);
    SendClientMessage(playerid, COLOR_RED, string);
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_RED, "Du bist kein Polizist.");
    return 1;
    }
    return 1;
    }

  • C
    if(sscanf(params, "uds", pID, reason))

    Zu

    C
    if(sscanf(params, "uds", pID, Wanteds,reason))
  • Das klappt. Nun nochmal eine Frage. Wie kann ich Abfragen wieviele Wanteds der Spieler derzeit besitzt damit ich auch nicht mehr als diese Clearen kann




    ocmd:clear(playerid, params[])
    {
    if(PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pLeader] == 1)
    {
    new pID, string[128],Wanteds;
    if(sscanf(params, "u", pID,Wanteds))
    {
    if(!IsPlayerConnected(pID))return SendClientMessage(playerid, COLOR_RED, "Dieser Spieler ist offline");
    PlayerInfo[pID][pWanted]-=Wanteds;
    PlayerWantedBarUpdate(pID);
    new name[MAX_PLAYER_NAME], name2[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof(name));
    GetPlayerName(pID, name2, sizeof(name2));
    format(string, sizeof(string), "Info: Officer %s hat deine Wantds gelöscht", name);
    SendClientMessage(pID, COLOR_RED, string);
    format(string, sizeof(string), "Info: Du hast %s seine Wanteds gelöscht.", name2);
    SendClientMessage(playerid, COLOR_RED, string);
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_RED, "Du bist kein Polizist.");
    return 1;
    }
    return 1;
    }

  • C
    if(PlayerInfo[pID][pWanted]<Wanteds)return SendClientMessage(playerid,-1,"Die eingegebene Zahl ist höher als die Wantedanzahl des Spielers!");

    So. ;)

  • Ich weiß das ich gerade vllt etwas am nerven bin xD. Aber ich habe nun noch wirklich 1 ding.


    Sobald ich Wanteds hinzufüge und danach wieder lösche, Updatet er mir nicht den


    PlayerWantedBarUpdate(pID);




    {
    if(PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pLeader] == 1)
    {
    new pID, Wanteds, reason[128], string[128];
    if(sscanf(params, "uds",pID,Wanteds,reason)) return SendClientMessage(playerid,COLOR_RED,"Benutzung: /su [ID] [Anzahl] [Grund] ");
    {
    if(!IsPlayerConnected(pID))return SendClientMessage(playerid, COLOR_RED, "Dieser Spieler ist offline");
    PlayerInfo[pID][pWanted] += Wanteds;
    new name[MAX_PLAYER_NAME], name2[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof(name));
    GetPlayerName(pID, name2, sizeof(name2));
    format(string, sizeof(string), "Info: Officer %s hat dir %d Wanted Punkte gegeben( Grund: %s )", name, Wanteds, reason);
    SendClientMessage(pID, COLOR_RED, string);
    format(string, sizeof(string), "Info: Du hast %s %d Wanted Punkte gegeben.", name2, Wanteds);
    SendClientMessage(playerid, COLOR_RED, string);
    PlayerWantedBarUpdate(pID);
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_RED, "Du bist kein Polizist.");
    return 1;
    }
    }



    ocmd:suclear(playerid, params[])
    {
    if(PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pLeader] == 1)
    {



    new pID, Wanteds, reason[128], string[128];
    if(sscanf(params, "uds",pID,Wanteds,reason)) return SendClientMessage(playerid,COLOR_RED,"Benutzung: /su [ID] [Anzahl] [Grund] ");
    {
    PlayerWantedBarUpdate(pID);
    if(PlayerInfo[pID][pWanted]<Wanteds)return SendClientMessage(playerid,-1,"Die eingegebene Zahl ist höher als die Wantedanzahl des Spielers!");
    if(!IsPlayerConnected(pID))return SendClientMessage(playerid, COLOR_RED, "Dieser Spieler ist offline");
    PlayerInfo[pID][pWanted] -= Wanteds;
    new name[MAX_PLAYER_NAME], name2[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof(name));
    GetPlayerName(pID, name2, sizeof(name2));
    format(string, sizeof(string), "Info: Officer %s hat dir %d Wanted Punkte gegeben( Grund: %s )", name, Wanteds, reason);
    SendClientMessage(pID, COLOR_RED, string);
    format(string, sizeof(string), "Info: Du hast %s %d Wanted Punkte gegeben.", name2, Wanteds);
    SendClientMessage(playerid, COLOR_RED, string);
    PlayerWantedBarUpdate(pID);
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_RED, "Du bist kein Polizist.");
    return 1;
    }



    }


    Bzw immer wenn ich die Wanteds auf 0 Cleare ruft er die Funktion nicht mehr auf

  • Kannst du mir mal die Funktion "PlayerWantedBarUpdate" zeigen? ;)


    PS: Du nervst nicht, dafür ist das Forum ja da. ^^

  • Kannst du mir mal die Funktion "PlayerWantedBarUpdate" zeigen? ;)


    PS: Du nervst nicht, dafür ist das Forum ja da. ^^

    Naja ich bin heute ja schon Recht oft mit kleinen Dingen dran gewesen.


    Gerne gebe ich auch die UpdateBar Frei



    stock PlayerWantedBarUpdate(playerid)
    {
    if(PlayerWantedBar[playerid] == true)
    {
    if(PlayerInfo[playerid][pWanted] >= 1)
    {
    new string[64];
    format(string, sizeof(string), "W%d", PlayerInfo[playerid][pWanted]);
    PlayerTextDrawSetString(playerid, p_Wanteds[playerid], string);
    }
    else
    {
    PlayerTextDrawHide(playerid, p_Wanteds[playerid]);
    PlayerTextDrawDestroy(playerid, p_Wanteds[playerid]);
    }
    }
    else
    {
    PlayerWantedBarCreate(playerid);
    }
    return 1;
    }


    Wiegesagt er updatet nicht wenn er erst auf den wert 0 gecleart wurde

  • PlayerWantedBarUpdate(pID); stand zwei mal in dem Befehl. Teste das mal so.

  • Setze das

    C
    printf("pWanted: %i",PlayerInfo[playerid][pWanted]);


    mal über

    C
    if(PlayerWantedBar[playerid] == true)


    Was wird dir dann ausgegeben? Da muss zwei mal etwas ausgegeben werden, einmal, wenn du dir die Wanteds gibt's (/su) und dann wenn du dir die clearst (/suclear).

  • Code
    [20:34:05] pWanted: 2 // gelöscht
    [20:34:14] pWanted: 0 // Aktuell
    [20:34:20] pWanted: 2// Hinzugefügt

    Ich denke iwo läuft einfach was beim Updaten des textdraws schief.



    In die Datenbank speichert er korrekt

  • Wie darf ich das jetzt verstehen?
    Du hast dir Wanteds gegeben (2 Stück), hast diese dann gelöscht (auf 0, sprich -2) und dann wieder 2 gegeben. Jetzt muss ich aber noch wissen, wann etwas nicht funktioniert hat. Verschwindet das Textdraw, wenn du 0 Wanteds hast? ;)

  • Also ich bin mit 2 Wanteds gejoint. Diese habe ich gelöscht also
    - [20:34:05] pWanted: 2 // Vorhandene Wanteds


    ergibt



    [20:34:14] pWanted: 0 // Gecleart


    Danach habe ich wieder 2 hinzugefügt


    [20:34:20] pWanted: 2// Hinzugefügt


    Und ab da an zeigt er nichts mehr an



    @Jeffry

    Einmal editiert, zuletzt von robbi2304 ()