Mute und Muteinfo System

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
  • Nabend Breadfishler,


    Ich bekomme ständig im Chat eine Fehlermeldung vom /mute System


    Hier der Code:


    ocmd:mute(playerid, params[])
    {
    new pID, reason[32], string[128], minuten;
    if(sSpieler[playerid][Adminlevel] > 1)return SendClientMessage(playerid, ROT, ERROR_ADMIN);
    if(sscanf(params, "uis[32]", pID, minuten, reason))return SendClientMessage(playerid, GELB, "Verwendung: /mute [SpielerID/Name] [Minuten] [Grund]");
    if(minuten < 0 || minuten > 120)return SendClientMessage(playerid, ROT, "Die Minuten müssen zwischen 0 und 120 liegen.");
    sSpieler[pID][pMuted] = minuten*60;
    format(sSpieler[pID][pMuteReason], 32, reason);
    format(string, sizeof(string), "Du wurdest von %s für %d Minuten stummgeschaltet. Grund: %s", SpielerName(playerid), minuten, reason);
    SendClientMessage(pID, ROT, string);
    format(string, sizeof(string), "Du hast %s für %d Minuten stummgeschaltet. Grund: %s", SpielerName(pID), minuten, reason);
    SendClientMessage(playerid, ROT, string);
    return 1;
    }


    Es Kommt ständig "Verwendung: /mute [SpielerID/Name] [Minuten] [Grund]");



    Vielen Dank im vorraus! :)


  • CMD:mute(playerid, params[])
    {
    new pID, reason[32], string[128], minuten;
    if(Spieler[playerid][pAdmin] < 1)return SendClientMessage(playerid, ROT, ERROR_ADMIN);
    if(sscanf(params, "uis[32]", pID, minuten, reason))return SendClientMessage(playerid, GELB, "Benutze /mute [SpielerID/Name] [Minuten] [Grund]");
    if(!IsLoggedIn(pID))return SendClientMessage(playerid, ROT, ERROR_OFFLINE);
    if(minuten < 0 || minuten > 120)return SendClientMessage(playerid, ROT, "Die Minuten müssen zwischen 0 und 120 liegen.");
    Spieler[pID][pMuted] = minuten*60;
    format(Spieler[pID][pMuteReason], 32, reason);
    format(string, sizeof(string), "Du wurdest von %s für %d Minuten stummgeschaltet. Grund: %s", GetName(playerid), minuten, reason);
    SendClientMessage(pID, ROT, string);
    format(string, sizeof(string), "Du hast %s für %d Minuten stummgeschaltet. Grund: %s", GetName(pID), minuten, reason);
    SendClientMessage(playerid, ROT, string);
    return 1;
    }


    Versuch es mal so :)

  • CMD:mute(playerid, params[]){new pID, reason[32], string[128], minuten;if(Spieler[playerid][pAdmin] < 1)return SendClientMessage(playerid, ROT, ERROR_ADMIN);if(sscanf(params, "uis[32]", pID, minuten, reason))return SendClientMessage(playerid, GELB, "Benutze /mute [SpielerID/Name] [Minuten] [Grund]");if(!IsLoggedIn(pID))return SendClientMessage(playerid, ROT, ERROR_OFFLINE);if(minuten < 0 || minuten > 120)return SendClientMessage(playerid, ROT, "Die Minuten müssen zwischen 0 und 120 liegen.");Spieler[pID][pMuted] = minuten*60;format(Spieler[pID][pMuteReason], 32, reason);format(string, sizeof(string), "Du wurdest von %s für %d Minuten stummgeschaltet. Grund: %s", GetName(playerid), minuten, reason);SendClientMessage(pID, ROT, string);format(string, sizeof(string), "Du hast %s für %d Minuten stummgeschaltet. Grund: %s", GetName(pID), minuten, reason);SendClientMessage(playerid, ROT, string);return 1;}


    Versuch es mal so :)

    Ich glaube so klappt es auch nicht. In sscanf muss z.b keine länge definiert werden.


    Probier es mal so



    ocmd:mute(playerid, params[])
    {
    new pID, reason[32], string[128], minuten;
    if(sSpieler[playerid][Adminlevel] > 1)return SendClientMessage(playerid, ROT, ERROR_ADMIN);
    if(sscanf(params, "uis", pID, minuten, reason))return SendClientMessage(playerid, GELB, "Verwendung: /mute [SpielerID/Name] [Minuten] [Grund]");
    if(minuten < 0 || minuten > 120)return SendClientMessage(playerid, ROT, "Die Minuten müssen zwischen 0 und 120 liegen.");
    sSpieler[pID][pMuted] = minuten*60;
    format(string, sizeof(string), "Du wurdest von %s für %d Minuten stummgeschaltet. Grund: %s", SpielerName(playerid), minuten, reason);
    SendClientMessage(pID, ROT, string);
    format(string, sizeof(string), "Du hast %s für %d Minuten stummgeschaltet. Grund: %s", SpielerName(pID), minuten, reason);
    SendClientMessage(playerid, ROT, string);
    return 1;
    }

  • Ich glaube so klappt es auch nicht. In sscanf muss z.b keine länge definiert werden.
    Probier es mal so


    ocmd:mute(playerid, params[]){new pID, reason[32], string[128], minuten;if(sSpieler[playerid][Adminlevel] > 1)return SendClientMessage(playerid, ROT, ERROR_ADMIN);if(sscanf(params, "uis", pID, minuten, reason))return SendClientMessage(playerid, GELB, "Verwendung: /mute [SpielerID/Name] [Minuten] [Grund]");if(minuten < 0 || minuten > 120)return SendClientMessage(playerid, ROT, "Die Minuten müssen zwischen 0 und 120 liegen.");sSpieler[pID][pMuted] = minuten*60;format(string, sizeof(string), "Du wurdest von %s für %d Minuten stummgeschaltet. Grund: %s", SpielerName(playerid), minuten, reason);SendClientMessage(pID, ROT, string);format(string, sizeof(string), "Du hast %s für %d Minuten stummgeschaltet. Grund: %s", SpielerName(pID), minuten, reason);SendClientMessage(playerid, ROT, string);return 1;}

    Also ich hab meins getetestet Funktioniert einwandfrei :)

  • Beitrag von robbi2304 ()

    Dieser Beitrag wurde von seegras aus folgendem Grund gelöscht: Dafür haben wir den Like-Button ().
  • Es ist immer wichtig eine Länge bei sscanf anzugeben. Wieso? Es kommt ansonsten dauernd eine Nachricht in der Console und ich glaube bei längeren Strings wird einfach ab 32 Zeichen abgebrochen oderso..

    Das kommt darauf an, ob man das Plugin oder nur die Funktion verwendet :)



    /mute [ID/Spielername] [z.B 10] [grund: z.B test]

    ...ja wenn du das so eingibst, dann kein Wunder...du musst z.B. sowas eingeben:


    /mute 10 5 Test
    10 = Spielerid
    5 = für 5 Minuten
    Test = Grund...

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Alle anderen Befehle funktionieren was sscanf betrifft


    Crashdetect spuckt auch nichts aus ^^



    wobei der Kick befehl genau das selbe macht... kommt auch immer die Fehlermeldung
    ocmd:kick(playerid, params[])
    {
    new pID, string[128], reason[64];
    if(sSpieler[playerid][Adminlevel] < 1)return SendClientMessage(playerid,ROT,"Du darfst diesen Befehl nicht nutzen!");
    if(sscanf(params, "us[64]", pID, reason))return SendClientMessage(playerid, GELB, "Verwendung: /kick [SpielerID/Name] [Grund]");
    if(!IsPlayerConnected(pID))return SendClientMessage(playerid, ROT, "Dieser Spieler ist nicht Online!");
    if(IsPlayerNPC(pID))return 1;
    if(sSpieler[pID][Adminlevel] > 0)return SendClientMessage(playerid, ROT, "Du kannst keine Team-Mitglieder kicken.");
    format(string, sizeof(string), "%s wurde von %s gekickt, Grund: %s", SpielerName(pID), SpielerName(playerid), reason);
    SendClientMessageToAll(ROT, string);
    format(string, sizeof(string), "Du wurdest soeben von Admin %s gekickt. Grund: %s", SpielerName(playerid), reason);
    SendClientMessage(pID, ROT, string);
    KickEx(pID);
    return 1;
    }


    @Kaliber

  • Dann..printe doch mal was er erkennt...


    Schreib mal über das sscanf:


    printf("Parameter: %s",params);


    und dann zeig mal, was in der Konsole steht :)


    //Edit:
    Aha...bist du sicher, dass du das Plugin nutzt...es sieht nämlich so aus..als würdest du die Funktion nutzen ^^

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen