Givewanted Befehl = Server Crash

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 Leute.
    Ich habe ein hoffe ich kleines Problem.
    Ich habe mir heute morgen einen /givewanted Befehl erstellt, der einem Spieler wessen ID oder Name man nehmen kann und einen Grund machen kann +1 setzt.


    Hier mal der Pwn-Code



    ocmd:givewanted(playerid, params[])
    {
    new sID, reason, string[128], string2[128], string3[128];
    if(Spieler[playerid][pMember] != 1 || Spieler[playerid][pLeader] != 1)return SendClientMessage(playerid,COLOR_GREY, "** Du bist nicht von der Behörde!");
    if(sscanf(params, "us", sID, reason))return SendClientMessage(playerid, COLOR_GREY, "** /givewanted [ID/Name] [Grund]");
    if(sID == playerid)return SendClientMessage(playerid, COLOR_GREY, "** Du kannst dir selbst keine Wanteds geben.");
    if(Spieler[sID][pMember] == 1 || Spieler[sID][pLeader] == 1)return SendClientMessage(playerid, COLOR_GREY, "** Du kannst dem Spieler keine Wanteds geben da er auch von der Behörde ist.");
    if(Spieler[sID][pWanted] == 10)return SendClientMessage(playerid, COLOR_GREY,"** Der Spieler hat bereits die Maximale Wanted Anzahl erreicht.");
    Spieler[sID][pWanted] ++;
    format(string, sizeof(string), "* Du hast ein Verbrechen begangen ( %s ) Reporter: %s", reason, SpielerName(playerid));
    SendClientMessage(sID, COLOR_YELLOW, string);
    format(string2, sizeof(string2), "* Dein Aktuelles Wanted Level beträgt: %d", Spieler[sID][pWanted]);
    SendClientMessage(sID, COLOR_YELLOW, string);
    format(string3, sizeof(string3), "HQ: Reporter: %s || Verbrecher: %s || Verbrechen: %s", SpielerName(playerid), SpielerName(sID), reason);
    for(new i = 0; i<MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(Spieler[i][pMember] == 1 || Spieler[i][pLeader] == 1)
    {
    SendClientMessage(i, COLOR_LIGHTPURPLE, string3);
    }
    }
    }
    return 1;
    }


    Kann mir evtl. jemand helfen?
    Kann es mit der for Schleife zusammen hängen?

  • new sID, reason[128], string[128], string2[128], string3[128];
    Versuch es mal so. ;)
    Denn vorher war 'reason' ein Integer und sscanf hat versucht einen String darin abzuspeichern, was in einem Integer natürlich nicht möglich ist.