How can I add a delay to my kick?
#1

I need them to be able to see the message
pawn Код:
CMD:kick(playerid, params[])
{
    new Float:x, Float:y, Float:z;
    new string[128],
        pname[MAX_PLAYER_NAME],
        victimname[MAX_PLAYER_NAME],
        victimid,
        reason[30];
    if(PlayerInfo[playerid][pAdmin] > 3)
    {
       if(sscanf(params, "us[30]", victimid, reason)) return SendClientMessage(playerid, COLOR_RED, "Usage: /kick [playerid/name] [reason]");
       GetPlayerName(playerid, pname, sizeof(pname));
       GetPlayerName(victimid, victimname, sizeof(victimname));
       if(!IsPlayerConnected(victimid)) return SendClientMessage(playerid, COLOR_RED, "Error: This player is not connected.");
       format(string, 128, "AdminCmd: %s has kicked %s. Reason:%s!",pname,victimname,reason);
       SendClientMessageToAll(COLOR_RED, string);

    }
    else return SendClientMessage(playerid, COLOR_RED, "You must be Administrator Level 3 or higher to use this command!");
    return 1;
}
Reply
#2

pawn Код:
forward KickPublic(playerid);
public KickPublic(playerid) { Kick(playerid); }
 
stock KickWithMessage(playerid)
{
    SetTimerEx("KickPublic", 1000, 0, "d", playerid);   //Delay of 1 second before kicking the player so he recieves the message
}
After SendClientMessageToAll you can now use KickWithMessage(playerid)
Reply
#3

I suggest using this include https://sampforum.blast.hk/showthread.php?tid=441968
Reply
#4

Why not do it this way?

pawn Код:
CMD:kick(playerid, params[])
{
    new Float:x, Float:y, Float:z;
    new string[128],
    pname[MAX_PLAYER_NAME],
    victimname[MAX_PLAYER_NAME],
    victimid,
    reason[30];
    if(PlayerInfo[playerid][pAdmin] > 3)
    {
        if(sscanf(params, "us[30]", victimid, reason)) return SendClientMessage(playerid, COLOR_RED, "Usage: /kick [playerid/name] [reason]");
        GetPlayerName(playerid, pname, sizeof(pname));
        GetPlayerName(victimid, victimname, sizeof(victimname));
        if(!IsPlayerConnected(victimid)) return SendClientMessage(playerid, COLOR_RED, "Error: This player is not connected.");
        format(string, 128, "AdminCmd: %s has kicked %s. Reason:%s!",pname,victimname,reason);
        SendClientMessageToAll(COLOR_RED, string);
        SetTimerEx("kick",1000,false,"i",victimid);
    }
    else return SendClientMessage(playerid, COLOR_RED, "You must be Administrator Level 3 or higher to use this command!");
    return 1;
}

forward kick(victimid);
public kick(victimid)
{
    Kick(victimid);
    return 1;
}
Edited so feel free to try again.
Reply
#5

Quote:
Originally Posted by Red_Dragon.
Посмотреть сообщение
That's actually the easiest way.
Reply
#6

Dobby i type that and it doesnt kick them
Reply
#7

Dobby i type that and it doesnt kick them
Reply
#8

pawn Код:
CMD:kick(playerid, params[])
{
    new Float:x, Float:y, Float:z;
    new string[128],
    pname[MAX_PLAYER_NAME],
    victimname[MAX_PLAYER_NAME],
    victimid,
    reason[30];
    if(PlayerInfo[playerid][pAdmin] > 3)
    {
        if(sscanf(params, "us[30]", victimid, reason)) return SendClientMessage(playerid, COLOR_RED, "Usage: /kick [playerid/name] [reason]");
        GetPlayerName(playerid, pname, sizeof(pname));
        GetPlayerName(victimid, victimname, sizeof(victimname));
        if(!IsPlayerConnected(victimid)) return SendClientMessage(playerid, COLOR_RED, "Error: This player is not connected.");
        format(string, 128, "AdminCmd: %s has kicked %s. Reason:%s!",pname,victimname,reason);
        SendClientMessageToAll(COLOR_RED, string);
        SetTimerEx("KickPlayer",1000,false,"i",victimid);//this is already target to victim
    }
    else return SendClientMessage(playerid, COLOR_RED, "You must be Administrator Level 3 or higher to use this command!");
    return 1;
}

forward KickPlayer(playerid);
public KickPlayer(playerid)
{
    Kick(playerid);//after they got target, they kicked
    return 1;
}
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)