/afk & /back MUTE ?!

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,


    wie kriege ich hin, das bei diesem befehl


    //afk & /back
    if(strcmp(cmd, "/afk", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    SetPlayerColor(playerid, COLOR_NEONGREEN);
    GetPlayerName(playerid, giveplayer, sizeof(giveplayer));
    format(string, sizeof(string), ">>> %s ist nun afk, bis gleich !", giveplayer);
    SendClientMessageToAll(COLOR_YELLOW, string);
    }
    return 1;
    }
    if (strcmp(cmdtext, "/back", true) == 0)
    {
    SetPlayerToTeamColor(playerid);
    GetPlayerName(playerid, giveplayer, sizeof(giveplayer));
    format(string, sizeof(string), ">>> Willkommen zurück %s !", giveplayer);
    SendClientMessageToAll(COLOR_YELLOW, string);
    return 1;
    }
    //ende


    also das wenn man /afk macht gemutet wird und wenn man was schreiben will dieser Text da steht


    SendClientMessage(playerid, COLOR_WHITE, "Du bist noch im /afk Modus gebe /back ein um schreiben zu können");


    und das soll immer wiederholt werden wenn er was schreiben will aber im /afk modus ist sobald er dann /back macht soll es alles wieder normal sein ?!


    Ich hatte was probiert aber das klappt nicht ganz :/


    *edit


    ich habs mal mit dem /mute befehl probiert aber funzt nicht :/


    Einmal editiert, zuletzt von Rizzo ()

  • Ich fand das immer voll doof auf den Servern ,dass man bei /AFK nicht schreiben konnte.
    Ist ja deine entscheidung.
    Hier eine Anleitung:

    //Ganz Oben:


    new mute[MAX_PLAYERS];



    //In den /AFK Befehl:
    mute[playerid] = 1;



    //In den /Back Befehl:
    mute[playerid] = 0;



    //Bei OnPLayerText:
    public OnPlayerText(playerid,text[])
    {
    if(mute[playerid] == 1)
    {
    SendClientMessage(playerid,COLOUR_RED,"Du bist gemutet, und darfst nicht schreiben!");
    return 0;
    }
    return 1;
    }


    Habs nicht getestet,müsste aber so gehen.Viel Spaß damit :)
    MFG,Cedi :thumbup:

  • Cedi genau das meine ich so soll es sein/werden aber es funzt nicht :/ es erscheint nichtmal der Text und gemutet ist man auch nicht :/


    *edit wäre cool wenn jemand noch zeigen könnte wie man /afk Grunds macht, also z.B /afk essen >>> %s ist nun afk, Grund: essen i-wie sowas :P


    *edit


    so sorry leuzte xD ich war ein depp das mit dem mute hat nicht geklappt weil ich es falsch eingefügt hatte :D:D es klappt einwandfrei :P


    nur jetzt das mit dem /afk [Grund] würde das jemand prboieren ?


    2 Mal editiert, zuletzt von Rizzo ()

  • Hier dcmd


    In OnPlayerCommandtext


    dcmd(afk,3,cmdtext);


    Dann unter OnPlayerCommand Text



    dcmd_afk(playerid,params[])
    {
    new grund[256];


    if(sscanf(params, "s",grund))
    {
    return SendClientMessage(playerid,weiß,"Benutzung: /afk [Grund]");
    }
    new playername[MAX_PLAYER_NAME];
    GetPlayerName(playerid,playername,sizeof(playername));
    new string[256];
    format(string,sizeof(string),"Spieler %s ist AFK. Grund: %s",playername,grund);
    SendClientMessageToAll(farbe,string);
    SetPlayerColor(playerid, COLOR_NEONGREEN);
    mute[playerid] = 1;


    }


    Für Back halt das gleich nur die Werte ändern

  • würdest du das vllt. mal mit meinem machen ? Also umschreiben oder pls in meinem einsetzten ? Hier ist es:


    //afk & /back
    if(strcmp(cmd, "/afk", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    mute[playerid] = 1;
    SetPlayerColor(playerid, COLOR_NEONGREEN);
    GetPlayerName(playerid, giveplayer, sizeof(giveplayer));
    format(string, sizeof(string), ">>> %s ist nun afk, bis gleich !", giveplayer);
    SendClientMessageToAll(COLOR_YELLOW, string);
    }
    return 1;
    }
    if (strcmp(cmdtext, "/back", true) == 0)
    {
    mute[playerid] = 0;
    SetPlayerToTeamColor(playerid);
    GetPlayerName(playerid, giveplayer, sizeof(giveplayer));
    format(string, sizeof(string), ">>> Willkommen zurück %s !", giveplayer);
    SendClientMessageToAll(COLOR_YELLOW, string);
    return 1;
    }
    //ende


    Ich habs mal so probiert:


    //afk & /back
    if(strcmp(cmd, "/afk", true) == 0)
    {
    new result[64];
    if(IsPlayerConnected(playerid))
    {
    mute[playerid] = 1;
    SetPlayerColor(playerid, COLOR_NEONGREEN);
    GetPlayerName(playerid, giveplayer, sizeof(giveplayer));
    format(string, sizeof(string), ">>> %s ist nun afk, Grund: %s !", giveplayer, result);
    SendClientMessageToAll(COLOR_YELLOW, string);
    }
    return 1;
    }
    if (strcmp(cmdtext, "/back", true) == 0)
    {
    mute[playerid] = 0;
    SetPlayerToTeamColor(playerid);
    GetPlayerName(playerid, giveplayer, sizeof(giveplayer));
    format(string, sizeof(string), ">>> Willkommen zurück %s !", giveplayer);
    SendClientMessageToAll(COLOR_YELLOW, string);
    return 1;
    }
    //ende


    Einmal editiert, zuletzt von Rizzo ()

  • Will jetzt nicht nen Code schreiben aber erkläre es dir so,
    du setzt eine Variable auf 1 bei /afk. Bei /back überprüfst du ob diese Variable auf 1 ist, wenn ja dann setzt du sie auf 0 ist und dann ist er zurück wenn nein dann ist er nicht im AFK modus.
    Bei /afk überprüfst du ob die Variable auf 0 ist.


    Verstanden?

  • xD danke, aber ich möchte nur das er /afk GRUND machen kann also /afk kacka dann %s ist afk, Grund: kacka.


    *edit


    Habs geschaft xD


    if(strcmp(cmd, "/afk", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(IsPlayerConnected(playerid))
    {
    GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
    new length = strlen(cmdtext);
    while ((idx < length) && (cmdtext[idx] <= ' '))
    {
    idx++;
    }
    new offset = idx;
    new result[64];
    while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
    {
    result[idx - offset] = cmdtext[idx];
    idx++;
    }
    result[idx - offset] = EOS;
    if(!strlen(result))
    {
    SendClientMessage(playerid, COLOR_GRAD2, "Verwende: /afk [Grund]");
    return 1;
    }
    mute[playerid] = 1;
    SetPlayerColor(playerid, COLOR_NEONGREEN);
    GetPlayerName(playerid, giveplayer, sizeof(giveplayer));
    format(string, sizeof(string), ">>> %s ist nun afk, Grund: %s.", giveplayer, (result));
    SendClientMessageToAll(COLOR_YELLOW, string);
    return 1;
    }
    }
    }


    Einmal editiert, zuletzt von Rizzo ()

  • Probiers mal so(Ungetestet)
    if(!strcmp(cmdtext,"/afk",false,3))
    {
    if(IsPlayerConnected(playerid))
    {
    GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
    if(strlen(cmdtext[8])
    {
    SendClientMessage(playerid, COLOR_GRAD2, "Verwende: /afk [Grund]");
    return 1;
    }
    mute[playerid] = 1;
    SetPlayerColor(playerid, COLOR_NEONGREEN);
    GetPlayerName(playerid, giveplayer, sizeof(giveplayer));
    format(string, sizeof(string), ">>> %s ist nun afk, Grund: %s.", giveplayer,cmdtext[8]);
    SendClientMessageToAll(COLOR_YELLOW, string);
    return 1;
    }
    }