CMD kick doesnt work
#1

Код:
CMD:kick(playerid, params[])
{
    if(PlayerInfo[playerid][pLogovan] < 1) return SendClientMessage(playerid, -1, "Not logged");
    if(PlayerInfo[playerid][pAdmin] < 1) {
	new PID; 
	new reason[64]; 
	new str[128]; 
	new str2[128];
	new str3[128];
	new Playername[MAX_PLAYER_NAME], Adminname[MAX_PLAYER_NAME];
	if(sscanf(params, "us[64]", PID,reason)) return SendClientMessage(playerid, COLOR_GREY, "srw: /kick [id] [reason]");
	GetPlayerName(playerid, Adminname, sizeof(Adminname)); 
	GetPlayerName(PID, Playername, sizeof(Playername));


	if(!IsPlayerConnected(PID)) 
	return SendClientMessage(playerid, COLOR_GREY, "Player not on server!");

    format(str3,sizeof(str3),"srw : admin  %s kicked you | reason: %s", Playername,reason);
	format(str, sizeof(str), "'%s was kicked by administrator %s.", Playername, Adminname);
	SendClientMessageToAll(COLOR_RED, str); 
	Kick(PID); 
	format(str2, sizeof(str2), "'%s is kicked by admin %s | Reason: %s ", Playername, Adminname, reason);
	SendMessageToAdmins(0xFF6347FF, str2, 1);

	}
    return 1;
}
....
Reply
#2

Replace if(PlayerInfo[playerid][pAdmin] < 1) on if(PlayerInfo[playerid][pAdmin] >= 1)
Reply
#3

now say you are not admin
Reply
#4

bump
Reply
#5

INI_Int("Admin",PlayerInfo[playerid][pAdmin]);
Reply
#6

EDIT: you work this?

pawn Код:
CMD:kick(playerid, params[])
{
    new PID, reason[64], str[128], str2[128], str3[128];
    new Playername[MAX_PLAYER_NAME], Adminname[MAX_PLAYER_NAME];
    if(sscanf(params, "us[64]", PID,reason)) return SendClientMessage(playerid, COLOR_GREY, "srw: /kick [id] [reason]");
    GetPlayerName(playerid, Adminname, sizeof(Adminname));
    GetPlayerName(PID, Playername, sizeof(Playername));
    if(PlayerInfo[playerid][pLogovan] < 1) return SendClientMessage(playerid, -1, "Not logged");
    if(PlayerInfo[playerid][pAdmin] < 1) return SendClientMessage(playerid, -1, "You're not Administrator");
    if(!IsPlayerConnected(PID)) return SendClientMessage(playerid, COLOR_GREY, "Player not on server!");
    format(str3,sizeof(str3),"srw: admin %s kicked you | reason: %s", Adminname,reason);
    SendClientMessage(COLOR_RED,str3);
    format(str, sizeof(str), "'%s was kicked by administrator %s.", Playername, Adminname);
    SendClientMessageToAll(COLOR_RED, str);
    format(str2, sizeof(str2), "'%s is kicked by admin %s | Reason: %s ", Playername, Adminname, reason);
    SendMessageToAdmins(0xFF6347FF, str2, 1);
    Kick(PID);
    return 1;
}
Reply
#7

:/ did you set YOUR OWN admin level?
Reply
#8

"..." isn't a description that garners attention from those who would prove useful.


At least say something more than "it doesn't work"...
Reply
#9



PHP код:
@__kick_player(playerid);
@
__kick_player(playerid)
{
    
Kick(playerid);
}
COMMAND:kick(playeridparams[])
{
    new
        
target_id,
        
target_id_name[MAX_PLAYER_NAME+1], my_name[MAX_PLAYER_NAME+1];
    if(
sscanf(params"us[64]"target_idparams))
        return 
SendClientMessage(playerid, -1"srw: /kick [id] [reason]");
    
GetPlayerName(target_idtarget_id_namesizeof(target_id_name));
    
GetPlayerName(playeridmy_namesizeof(my_name));
    static const
        
fmt_str_to_kicked_payer[] = "srw : admin %s kicked you | reason: %s";
    new
        
str_to_kicked_payer[
            
sizeof(fmt_str_to_kicked_payer)-2*2+(MAX_PLAYER_NAME+1)+64
        
];
    
format(
        
str_to_kicked_payer,
        
sizeof(str_to_kicked_payer),
        
fmt_str_to_kicked_payer,
        
target_id_name,
        
params
    
);
    
SendClientMessage(target_id, -1str_to_kicked_payer);
    
SetTimerEx("@__kick_player"2000"i"target_id);
    static const 
fmt_str_to_all[] = "%s was kicked by administrator %s";
    new 
str_to_all[
        
sizeof(fmt_str_to_all)-2*2+(MAX_PLAYER_NAME+1)*2
    
];
    
format(
        
str_to_all,
        
sizeof(str_to_all),
        
fmt_str_to_all,
        
target_id_name,
        
my_name
    
);
    
SendClientMessage(target_id, -1str_to_all);
    static const
        
fmt_str_to_admins[] = "%s is kicked by admin %s | Reason: %s";
    new
        
str_to_admins[
        
sizeof(fmt_str_to_admins)-2*3+(MAX_PLAYER_NAME+1)*2+64
    
];
    
format(
        
str_to_admins,
        
sizeof(str_to_admins),
        
fmt_str_to_admins,
        
target_id_name,
        
my_name,
        
params
    
);
    
//SendMessageToAdmins(0xFF6347FF, str_to_admins, 1);
    
return 1;

Reply
#10

PHP код:
CMD:kick(playeridparams[])
    {
        if(
PInfo[playerid][Level] >= 1) {
            new 
id//define the playerid we wanna kick
            
new reason[64]; //the reason, put into a string
            
new str[128]; //a new message string
            
new Name[MAX_PLAYER_NAME], DealerMessage[128];
            new 
Name2[MAX_PLAYER_NAME];
        
GetPlayerName(playeridNamesizeof(Name));
        
GetPlayerName(idName2sizeof(Name2));
             
//defines the function with the playername we wanna get
            
if(sscanf(params"us[64]"id,reason)) return SendClientMessage(playeridCOLOR_RED"USAGE: /kick [playerid] [reason]"); //tell sscanf if the parameters/the syntax is written wrong to return a message (PID and the reason used here)

            
if(!IsPlayerConnected(id)) // if the ID is wrong or not connected, return a message! (PID used here)
                
return SendClientMessage(playeridCOLOR_RED"Player is not connected!");

            
format(strsizeof(str), "%s has been kicked by %s %s [reason: %s] ",PlayerName(id),aLevel(playerid), PlayerName(playerid), reason); //format the string we've defined to send the message, playername and adminname are used to receive the information about the names
            
SendClientMessageToAll(COLOR_REDstr); //send that message to all
            
SetTimerEx("DelayKick",1200,0,"i",id);//delay the kick by 1 second 200

        
}
        else 
//if he has not got the permissions
        
{
            
SendClientMessage(playeridCOLOR_RED"You are not admin level 1."); //return this message
        
}
        return 
1;
    } 
Try this
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)