[HILFE] /afk bugg

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
  • Hey Leute,


    ich habe einen ganz kleinen /afk bugg er ist echt nicht groß, also erstmal:


    Ich Tippe /afk TEST ein dann steht da Verwende: /afk [Grund] wenn ich aber jetzt /afk a TEST tippe (sprich noch ein zeile ersetzte egal ob mit leertaste oder ner zahl oder buchstabe) kommt das:


    >>> Atze ist nun afk, Grund: TEST.


    aber ich möchte das man direckt wenn man /afk TEST eingibt auch direckt der text kommt hier afk befehl:


    if(strcmp(cmd, "/afk", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    new giveplayerid = ReturnUser(tmp, playerid);
    tmp = strtok(cmdtext, idx);
    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;
    }
    if(afkmute[playerid] == 1) return SendClientMessage(playerid, COLOR_LIGHTRED, "Du bist bereits afk, Tippe /back ein um schreiben zu können");
    afkmute[playerid] = 1;
    GetPlayerName(playerid, giveplayer, sizeof(giveplayer));
    format(string, sizeof(string), ">>> %s ist nun afk, Grund: %s.", giveplayer, (result));
    SendClientMessageToAll(COLOR_YELLOW, string);
    }
    return 1;
    }


    100% Selfmade Reallife Loading ...



    Einmal editiert, zuletzt von Poseidon ()

  • So hier hatte auch mal denn befehl geschrieben^^


    if(strcmp(cmd, "/afk", true) == 0)
    {
    new length = strlen(cmdtext);
    while ((idx < length) && (cmdtext[idx] <= ' '))
    {
    idx++;
    }
    new offset = idx;
    new result[255];
    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, "Benutze: /afk [Grund]");
    return 1;
    }
    new pName[MAX_PLAYER_NAME];
    SendClientMessage(playerid,COLOR_RED, "Du Bist Im afk Modus");
    GetPlayerName(playerid, pName, sizeof(pName));
    format(string, sizeof(string), "%s ist [AFK]. Grund: %s", pName,result);
    SendClientMessageToAll(0xFF7E00FF, string);
    GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
    while ((idx < length) && (cmdtext[idx] <= ' '))
    {
    idx++;
    }
    return 1;
    }

  • das selbe Problem, ich muss beides so machen: /afk a test dann kommt erst wieder der text es soll aber direckt bei /afk test kommen :)


    100% Selfmade Reallife Loading ...



  • Check ich gerade nicht bei denn befehl von mir musste einfach /afk (grund;) eingehben meinste der soll auch bei SendClientMessage(playerid,COLOR_RED, "Du Bist Im afk Modus"); stehen?

  • Nene :) also guck ich mache so /afk ESSEN dann schreibt mir der server verwende: /afk [grund] wenn ich dann /afk ESSEN ESSEN eingebe schreibt er SPIELER ... ist afk, Grund: ESSEN das heißt bei mir funzt nur der /afk befehl wenn ich nach dem /afk befehl entweder leertaste dann ein zeichen und dann den text aber es soll einfach sein das wenn ich /afk ESSEN mache auch der text direckt kommt xD ach komm mal aufm server und schaus dir an xD


    *edit


    das ist schwer zu erklären


    xD


    *edit² hier:


    HostName: Ultimate GangFight
    Address: 188.40.51.243:2020
    Players: 0 / 25
    Ping: 16
    Mode: GangFight v.1.1b
    Map: San Andreas


    100% Selfmade Reallife Loading ...



  • Ich denke du meinst es so.



    if(strcmp(cmd, "/afk", true) == 0)
    {
    new length = strlen(cmdtext);
    while ((idx < length) && (cmdtext[idx] <= ' '))
    {
    idx++;
    }
    new offset = idx;
    new result[255];
    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, "Benutze: /afk [Grund]");
    return 1;
    }
    new pName[MAX_PLAYER_NAME];
    SendClientMessage(playerid,COLOR_RED, "Du Bist Im afk Modus");
    GetPlayerName(playerid, pName, sizeof(pName));
    format(string, sizeof(string), "%s ist %s", pName,result);
    SendClientMessageToAll(0xFF7E00FF, string);
    GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
    while ((idx < length) && (cmdtext[idx] <= ' '))
    {
    idx++;
    }
    return 1;
    }

  • Nein xD leute es ist schwer zu erklären pls geht aufm server und testet es aus :)


    HostName: Ultimate GangFight
    Address: 188.40.51.243:2020
    Players: 0 / 25
    Ping: 15
    Mode: GangFight v.1.1b
    Map: San Andreas


    *edit


    Also nochmal von neu !XD


    ich connecte /login ... so mache /afk essen dann steht da:


    VERWENDE: /afk [GRUND]


    obwohl ich ja en Grund gegebenhabe wenn ich aber jetzt /afk a essen mache dann steht da:


    >>> Atze ist nun afk, Grund: essen.


    versteht Ihr mein Problem ? Also er zeigt erst den /afk text an wenn man 2 mal leertaste macht oder halt 1 mal leertaste und dann nochmal leertaste grund oder halt ja xD


    100% Selfmade Reallife Loading ...



    Einmal editiert, zuletzt von Poseidon ()

  • Müsste jets gehen schreib einfach wenn nicht ;)