Ban befehle eine Message

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 Liebe Leute also ich will eine Nachricht den Jenigen user überbringen der gebannt ist also sagen wir mall so der wird jetzt im moment gebannt und da soll stehen
    Du wurdest gebannt und so weiter und so aber wie geht das da es auch wenn er dierekt gebannt ist das es erscheint?


    Hier mein ban befehle
    if(strcmp(cmd, "/sban", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD2, "FEHLER: /ban [playerid] [grund]");
    return 1;
    }
    giveplayerid = ReturnUser(tmp);
    if (PlayerInfo[playerid][pAdmin] >= 4)
    {
    if(IsPlayerConnected(giveplayerid))
    {
    if(giveplayerid != INVALID_PLAYER_ID)
    {
    GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
    GetPlayerName(playerid, sendername, sizeof(sendername));
    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, "FEHLER: /ban [playerid] [grund]");
    return 1;
    }
    if(PlayerInfo[giveplayerid][pAdmin] > PlayerInfo[playerid][pAdmin])
    {
    SendClientMessage(playerid, COLOR_GRAD2, "Du kannst diesen Spieler nicht bannen, da er ein höheres Adminlevel hat als du!");
    return 1;
    }
    new year, month,day;
    getdate(year, month, day);
    format(string, sizeof(string), "SBAN: %s wurde von %s gebannt, Grund: %s (%d-%d-%d)", giveplayer, sendername, (result),month,day,year);
    BanLog(string);
    format(string, sizeof(string), "%s wurde vom Server gebannt, Grund: %s", giveplayer, (result));
    SendClientMessageToAll(COLOR_LIGHTRED, string);
    //PlayerInfo[giveplayerid][pAdmin] = PlayerInfo[giveplayerid][pLevel];
    PlayerInfo[giveplayerid][pGesperrt] = 1;
    //Ban(giveplayerid);
    return 1;
    }
    }//not connected
    }
    else
    {
    format(string, sizeof(string), " %d ist kein aktiver Spieler.", giveplayerid);
    SendClientMessage(playerid, COLOR_GRAD1, string);
    }
    }
    return 1;
    }

  • Noch mal zum Verstehen.
    Beim ausführen des Befehls lässt du die Nachricht senden.
    Dabei aktivierst du einen Timer mit meinetwegen 100 Millisekunden.
    Bei Ablauf der Zeit lässt du diesen Spieler dann kicken/bannen.
    So erhält er die Nachricht vor'm Kick/Ban.
    Ander's ist es derzeit nicht möglich.

    KleineHilfe 2.0

  • aber gehts auch so?
    if(strcmp(cmd, "/ban", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD2, "FEHLER: /ban [playerid] [grund]");
    return 1;
    }
    giveplayerid = ReturnUser(tmp);
    if (PlayerInfo[playerid][pAdmin] >= 1)
    {
    if(IsPlayerConnected(giveplayerid))
    {
    if(giveplayerid != INVALID_PLAYER_ID)
    {
    if(!IsPlayerNPC(giveplayerid))
    {
    if(giveplayerid == playerid)
    {
    SendClientMessage(playerid, COLOR_GRAD2, "Bitte überlege dir nochmal ob du uns verlassen willst :(");
    return 1;
    }
    GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
    GetPlayerName(playerid, sendername, sizeof(sendername));
    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, "FEHLER: /ban [playerid] [grund]");
    return 1;
    }
    if(PlayerInfo[giveplayerid][pAdmin] > PlayerInfo[playerid][pAdmin])
    {
    SendClientMessage(playerid, COLOR_GRAD2, "Du kannst diesen Spieler nicht bannen, da er ein höheres Adminlevel hat als du!");
    return 1;
    }
    if((GetTickCount() - BANCounter[playerid]) < 1500)
    {
    format(string, sizeof(string), "[SERVER GUARD] %s wurde wegen Hackverdacht gebannt.",sendername);
    ABroadCast(COLOR_LIGHTRED,string,1);
    PlayerInfo[playerid][pGebannt] = 1;
    strmid(PlayerInfo[playerid][pBangrund], "Hackverdacht", 0, 128, 255);
    strmid(PlayerInfo[playerid][pGebanntvon], "Server", 0, 20, 255);
    SendClientMessage(playerid,0xFF4600FF, "-------------------Du wurdest gebannt!---------------------");
    SendClientMessage(playerid,0xFF4600FF, "Grund: Hackverdacht");
    BanEx(playerid,"Hackverdacht");
    return 1;
    }
    new c_hour,c_minute,c_second,c_day,c_month,c_year;
    gettime(c_hour, c_minute, c_second);
    getdate(c_year, c_month, c_day);
    format(query, 200, "INSERT INTO log_ban (Gebannter, Gebannt_von, Grund, Datum) VALUES ('%s', '%s', '%s', '%d-%d-%d %d:%d:%d')", giveplayer, sendername, (result),c_year, c_month, c_day,c_hour, c_minute, c_second);
    mysql_query(query);
    format(string, sizeof(string), "AdmCmd: %s wurde von %s gebannt, Grund: %s", giveplayer, sendername, (result));
    SendClientMessageToAll(COLOR_LIGHTRED,string);
    SendClientMessage(giveplayerid,0xFF4600FF, "-------------------Du wurdest gebannt!---------------------");
    format(string, sizeof(string), "AdmCmd: Du wurdest von %s gebannt, Grund: %s", sendername, (result));
    SendClientMessage(giveplayerid,0xFF4600FF, string);
    SendClientMessage(giveplayerid,0xFF4600FF, "Fühlst du dich ungerecht gebannt? Oder denkst du das war nur ein Fehlban?");
    format(string, sizeof(string), "Dann schreibe bitte einen Thread ins Forum(%s) unter Entbann Anträge", forumip);
    SendClientMessage(giveplayerid,0xFF4600FF, string);
    SendClientMessage(giveplayerid,0xFF4600FF, "Im falle das du eindeutig Hackst, und wenn es auch nur ausversehen ist, hast du keine");
    SendClientMessage(giveplayerid,0xFF4600FF, "Chance auf einen Entbann!");
    PlayerInfo[giveplayerid][pGebannt] = 1;
    strmid(PlayerInfo[giveplayerid][pBangrund], result, 0, 128, 255);
    strmid(PlayerInfo[giveplayerid][pGebanntvon], sendername, 0, strlen(sendername), 255);
    BANCounter[playerid]=GetTickCount();
    format(string,sizeof string,"System-Ingame-Ban: %s",(result));
    if(HatForumUser(giveplayerid))
    {
    WBB_BanUser(PlayerInfo[giveplayerid][pForumName], string);
    }
    SetTimerEx("ban",3000,0,"is",giveplayerid,(result));
    return 1;
    }
    else
    {
    SendClientMessage(playerid,COLOR_LIGHTRED, "Das ist ein NPC!");
    }


    }
    }//not connected
    }
    else
    {
    format(string, sizeof(string), " %d ist kein aktiver Spieler.", giveplayerid);
    SendClientMessage(playerid, COLOR_GRAD1, string);
    }
    }
    return 1;
    }