/ban and /kick command help
#1

I have made Ban command which bans the playerid we type and kick which asks for ID and reason.

But when you type the id whom you want to ban or kick it'll give him message that they have been kicked but it kicks / bans the player/admin who types the command. I need help urgently. Rep+ for helper.

pawn Код:
CMD:kick(playerid, params[])
{
    new giveplayerid;
    if(GetAdminLevel(playerid) >=2) {
        if(sscanf(params, "u", giveplayerid)) return SendClientMessage(playerid, COLOR_WHITE, "USAGE: /kick [playerid]");
        if(!IsPlayerConnected(giveplayerid)) return 1;
        new str[128], str2[128];
        format(str, 128, "You have kicked %s from the server.", GetPName(giveplayerid));
        format(str2, 128, "You have been kicked from the server by %s.", GetPName(playerid));
        SendClientMessage(playerid, COLOR_RED, str);
        SendClientMessage(giveplayerid, COLOR_RED, str2);
        Kick(giveplayerid);
    }
    return 1;
}
CMD:ban(playerid, params[])
{
    if(GetAdminLevel(playerid) >= 3) {
        new reason[50], giveplayerid, sendername[24], year, month, day, date[128], str[128], str2[128], str3[128], pName[24], file[128];
        if(sscanf(params, "us", giveplayerid, reason)) return SendClientMessage(playerid, COLOR_WHITE, "USAGE: /ban [playerid] [reason]");
        if(!IsPlayerConnected(giveplayerid)) return 1;
        getdate(year, month, day);
        format(date, sizeof(date), "Date: %02d/%02d/%d", month, day, year);
        GetPlayerName(playerid, sendername, 20);
        GetPlayerName(giveplayerid, pName, sizeof(pName));
        format(file, 128, USER_FILE, pName);
        dini_IntSet(file, "Banned", 1);
        dini_Set(file, "BannedReason", reason);
        dini_Set(file, "BannedBy", sendername);
        dini_Set(file, "DateBanned", date);
        format(str, 128, "You have banned %s. Reason: %s.",pName, reason);
        format(str2, 128, "You have been banned from this server. Reason: %s", reason);
        format(str3, 128, "Banned by: %s", sendername);
        SendClientMessage(playerid, COLOR_RED, str);
        SendClientMessage(giveplayerid, COLOR_RED, str2);
        SendClientMessage(giveplayerid, COLOR_RED, str3);
        SendClientMessage(giveplayerid, COLOR_RED, date);
        SendClientMessage(giveplayerid, COLOR_RED, "Make a ban appeal via the forums.");
        KickWithMessage(giveplayerid);
    }
    return 1;
}
Reply
#2

You did'nt defined the player "target"

new ID;

And

try to edit this

pawn Код:
CMD:akill(playerid,params[])
{
    if(PlayerInfo[playerid][pOnDuty] < 1) return SCM(playerid, -1, "Your Not OnDuty!");
    if(PlayerInfo[playerid][pAdminLevel] < 1) return SCM(playerid, -1, "Your Not an Admin!");
    if(sscanf(params,"u",ID)) return SendClientMessage(playerid,1,"USAGE: /akill [playerid / Partofname]");//if player doesnt use the /akill format properly
    if(!IsPlayerConnected(ID)) return SendClientMessage(playerid,1,"ERROR: That user is not connected!");//checks if player is not connected
    GetPlayerName(playerid,Nam,sizeof(Nam));//define playerid name
    GetPlayerName(ID,pname,sizeof(pname));//define other person name
    format(str,sizeof(str),"Administrator %s has admin killed you",Nam);
    SendClientMessage(ID,1,str);
    format(str,sizeof(str),"You have admin killed %s",pname);
    SendClientMessage(playerid,1,str);
    SetPlayerHealth(ID,0);
    return 1;
}
Hope i helped
Reply
#3

pawn Код:
CMD:kick(playerid, params[])
{
    new giveplayerid;
    if(GetAdminLevel(playerid) >=2) {
        if(sscanf(params, "u", giveplayerid)) return SendClientMessage(playerid, COLOR_WHITE, "USAGE: /kick [playerid]");
        if(!IsPlayerConnected(giveplayerid)) return 1;
        new str[128], str2[128];
        format(str, 128, "You have kicked %s from the server.", GetPName(playerid));
        format(str2, 128, "You have been kicked from the server by %s.", GetPName(giveplayerid));
        SendClientMessage(playerid, COLOR_RED, str);
        SendClientMessage(giveplayerid, COLOR_RED, str2);
        Kick(giveplayerid);
    }
    return 1;
}
CMD:ban(playerid, params[])
{
    if(GetAdminLevel(playerid) >= 3) {
    new reason[50], giveplayerid, sendername[24], year, month, day, date[128], str[128], str2[128], str3[128], pName[24], file[128];
    if(sscanf(params, "us", giveplayerid, reason)) return SendClientMessage(playerid, COLOR_WHITE, "USAGE: /ban [playerid] [reason]");
    if(!IsPlayerConnected(giveplayerid)) return 1;
    getdate(year, month, day);
    format(date, sizeof(date), "Date: %02d/%02d/%d", month, day, year);
    GetPlayerName(playerid, sendername, 20);
    GetPlayerName(giveplayerid, pName, sizeof(pName));
    format(file, 128, USER_FILE, pName);
    dini_IntSet(file, "Banned", 1);
    dini_Set(file, "BannedReason", reason);
    dini_Set(file, "BannedBy", sendername);
    dini_Set(file, "DateBanned", date);
    format(str, 128, "You have banned %s. Reason: %s.",pName, reason);
    format(str2, 128, "You have been banned from this server. Reason: %s", reason);
    format(str3, 128, "Banned by: %s", sendername);
    SendClientMessage(playerid, COLOR_RED, str);
    SendClientMessage(giveplayerid, COLOR_RED, str2);
    SendClientMessage(giveplayerid, COLOR_RED, str3);
    SendClientMessage(giveplayerid, COLOR_RED, date);
    SendClientMessage(giveplayerid, COLOR_RED, "Make a ban appeal via the forums.");
    KickWithMessage(giveplayerid);
    }
    return 1;
}
Reply
#4

Why I need CMD:akill for and Raj, what you just copied my script and posted. Doesn't makes sense.
Reply
#5

Quote:
Originally Posted by Goldilox
Посмотреть сообщение
Why I need CMD:akill for and Raj, what you just copied my script and posted. Doesn't makes sense.
Huh? You tested it?

Your script:-
pawn Код:
format(str, 128, "You have kicked %s from the server.", GetPName(giveplayerid));
        format(str2, 128, "You have been kicked from the server by %s.", GetPName(playerid));
        SendClientMessage(playerid, COLOR_RED, str);
        SendClientMessage(giveplayerid, COLOR_RED, str2);
my Script:-
pawn Код:
format(str, 128, "You have kicked %s from the server.", GetPName(playerid));
        format(str2, 128, "You have been kicked from the server by %s.", GetPName(giveplayerid));
        SendClientMessage(playerid, COLOR_RED, str);
        SendClientMessage(giveplayerid, COLOR_RED, str2);
Because of your SendClientMessage.
Your was on giveplayerid, not playerid.
Reply
#6

you mean that the message isn't sent ?
Reply
#7

No, He meant that he want to send a message to : playerid but it goes to giveplayerid.
So i posted him the correct CMD's.
Reply
#8

No thats not what I mean lol.

I mean the ban commad sends the message that your banned and stuff to the player was chosen to be banned in /ban [id] but it bans to the guy who typed the command /ban.
Reply
#9

Make sure you check if that you do if(playerid != giveplayerid) don't want people banning themselves now.
Reply
#10

pawn Код:
CMD:ban(playerid, params[])
{
    new pID;
    if(PlayerInfo[playerid][pAdminLevel] >= 1) {
    if(sscanf(params, "us[128]", pID, params[2])) return SendClientMessage(playerid, Red, "USAGE: /ban [playerid] [reason]");
    if(pID == INVALID_PLAYER_ID) return SendClientMessage(playerid, Red, "This player is not connected");
    new string[128];
    new playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME];
    GetPlayerName(playerid, playername, sizeof(playername));
    GetPlayerName(pID,adminname , sizeof(adminname));
    format(string,sizeof(string),"%s has been banned by %s[Reason: %s]",playername, adminname,params[2]);
    SendClientMessageToAll(Red,string);
    Ban(pID);
    } else if(PlayerInfo[playerid][pAdminLevel] == 0) return SendClientMessage(playerid, Red, "You are not admin.");
    return 1;
}
for kick
pawn Код:
CMD:(playerid, params[])
{
  if(PlayerInfo[playerid][pAdmin] < 1) return SendClientMessage(playerid,COLOR_RED, "You must be administrator level 1 to use that command!");
  new id, pname[MAX_PLAYER_NAME],tname[24],reason[64], string[128];
  GetPlayerName(playerid, pname, sizeof(pname));
  if (sscanf(params, "ds[64]", id, reason)) return SendClientMessage(playerid,COLOR_RED, "Usage: /kick [playerid] [reason]");
  if(!IsPlayerConnected(id)) return SendClientMessage(playerid,COLOR_GREY, "Player not connected!");
  GetPlayerName(id,tname,24):
  format(string, sizeof(string), "You have been kicked! Reason: %s", reason);
  SendClientMessage(id,COLOR_LIGHTBLUE, string);
  format(string, sizeof(string), "%s(%d) has been kicked by %s(%d) for: %s",tname,id,pname,playerid,reason); // <--These
  SendClientMessageToAll(COLOR_RED,string);
  Kick(id);
  return 1;
}
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)