Ban help
#1

i got this:

Quote:

forward BanPublic(playerid);
public BanPublic(playerid) { Ban(playerid); }

BanWithMessage(playerid, message[])
{
SendClientMessage(playerid, 0xFF0000FF, message);
SetTimerEx("BanPublic", 1000, 0, "d", playerid);
return 1;
}

And this:
Quote:

dcmd_ban(playerid,params[])
{
if(AccInfo[playerid][LoggedIn] == 1)
{
if(AccInfo[playerid][Level] >= 4)
{
new Index;
new tmp[256]; tmp = strtok(params,Index);
new tmp2[256]; tmp2 = strtok(params,Index);

if(!strlen(params)) return
SendClientMessage(playerid, LIGHTBLUE2, "Usage: /ban [PlayerID] [Reason]") &&
SendClientMessage(playerid, orange, "Function: Will Ban the specified player");
if(!strlen(tmp2))
return SendClientMessage(playerid, red, "ERROR: Reason unspecified!");
new player1;
new string[128];
new playername[MAX_PLAYER_NAME];
new adminname [MAX_PLAYER_NAME];
player1 = strval(tmp);

if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && player1 != playerid && (AccInfo[player1][Level] != ServerInfo[MaxAdminLevel]))
{
GetPlayerName(player1, playername, sizeof(playername));
GetPlayerName(playerid, adminname, sizeof(adminname));
new year,month,day; getdate(year, month, day);
new hour,minuite,second; gettime(hour,minuite,second);
SendCommandToAdmins(playerid,"Ban");
format(string,sizeof(string),"|- %s has been Banned by Administrator %s | Reason: %s [Date: %d/%d/%d] [Time: %d:%d]",playername,adminname,params[2],day,month,year,hour,minuite);
SendClientMessageToAll(lightred,string);
new str[128];
format(str,sizeof(str),"%s has been Banned by Administrator %s | Reason: %s",playername,adminname,params[2]);
SaveIn("BanLog",str);
print(string);
if(udb_Exists(PlayerName2(player1)) && AccInfo[player1][LoggedIn] == 1)
dUserSetINT(PlayerName2(player1)).("Banned",1);
format(string,sizeof(string),"Banned by Administrator %s. | Reason: %s",adminname,params[2]);
format(string,sizeof(string),"You have been banned from this server by %s",adminname);
SendClientMessage(playerid,0xFF0000FF,string);
format(string,sizeof(string),"Reason of the ban: %s",params);
SendClientMessage(playerid,0xFF0000FF,string);
BanWithmessage(player1,"Make a screenshot and make a unban upply on forum.");
return BanEx(player1, string);
}else return SendClientMessage(playerid, red, "ERRPR: Player is not connected or is yourself or is the highest level admin");
}else return ErrorMessages(playerid, 1);
}else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
}

But if i ban someone ban, i get the message from You are banned by {name} but the client that is banned need to see it
Reply
#2

Change:
pawn Код:
format(string,sizeof(string),"You have been banned from this server by %s",adminname);
SendClientMessage(playerid,0xFF0000FF,string);
to
pawn Код:
format(string,sizeof(string),"You have been banned from this server by %s",adminname);
SendClientMessage(player1,0xFF0000FF,string);
Reply
#3

Quote:
Originally Posted by Deduction
Посмотреть сообщение
Change:
pawn Код:
format(string,sizeof(string),"You have been banned from this server by %s",adminname);
SendClientMessage(playerid,0xFF0000FF,string);
to
pawn Код:
format(string,sizeof(string),"You have been banned from this server by %s",adminname);
SendClientMessage(player1,0xFF0000FF,string);
The player thats banned see still only Server Close Connection
Reply
#4

Quote:
Originally Posted by lulo356
Посмотреть сообщение
The player thats banned see still only Server Close Connection
Thats because he gets banned before the message is sent.. Set a timer every time you kick/ban a player

pawn Код:
SetTimerEx("BanPlayer",100,false,"d", playerid); // Use this instead of ban(playerid)

forward BanPlayer(playerid);
public BanPlayer(playerid)
{
    Ban(playerid);
}
or replace "ban(playerid);" with "kick(playerid);" if you're kicking ( not banning ) them..
Reply
#5

Can you maybe give me a example
Reply
#6

Quote:
Originally Posted by lulo356
Посмотреть сообщение
Can you maybe give me a example
He already told you set a timer which will allow the player to see the ban reason message before he got kick by deafult samp ban system 'Ban(Playerid)' btw here's an small example
pawn Код:
CMD:ban(playerid, params[])
{
    new id;
    SendClientMessage(playerid,-1,"You are banned , reason : blablabla");//send him a message
    //Ban(id); this working good but won't send him the ban reason messsage so we gona use a timer first
    SetTimerEx("BanPlayer",100,false,"d", playerid);//here we set a timer with 100 miliseconds
    return 1;
}
forward BanPlayer(playerid);//here we call the timer function
public BanPlayer(playerid)
{
    Ban(playerid);//when 100 miliseconds pass he got ban , and he saw the ban message
}
Reply
#7

Wait I think you already have it.. Search for "public BanPublic" and post it please
Reply
#8

forward BanPublic(playerid);
public BanPublic(playerid) { Ban(playerid); }

BanWithmessage(playerid, message[])
{
SendClientMessage(playerid, 0xFF0000FF, message);
SetTimerEx("BanPublic", 1000, 0, "d", playerid);
return 1;
}
Reply
#9

and now?
Reply
#10

Okay just replace your command with this one..
pawn Код:
dcmd_ban(playerid,params[])
{
if(AccInfo[playerid][LoggedIn] == 1)
{
if(AccInfo[playerid][Level] >= 4)
{
new Index;
new tmp[256]; tmp = strtok(params,Index);
new tmp2[256]; tmp2 = strtok(params,Index);

if(!strlen(params)) return
SendClientMessage(playerid, LIGHTBLUE2, "Usage: /ban [PlayerID] [Reason]") &&
SendClientMessage(playerid, orange, "Function: Will Ban the specified player");
if(!strlen(tmp2))
return SendClientMessage(playerid, red, "ERROR: Reason unspecified!");
new player1;
new string[128];
new playername[MAX_PLAYER_NAME];
new adminname [MAX_PLAYER_NAME];
player1 = strval(tmp);

if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && player1 != playerid && (AccInfo[player1][Level] != ServerInfo[MaxAdminLevel]))
{
GetPlayerName(player1, playername, sizeof(playername));
GetPlayerName(playerid, adminname, sizeof(adminname));
new year,month,day; getdate(year, month, day);
new hour,minuite,second; gettime(hour,minuite,second);
SendCommandToAdmins(playerid,"Ban");
format(string,sizeof(string),"|- %s has been Banned by Administrator %s | Reason: %s [Date: %d/%d/%d] [Time: %d:%d]",playername,adminname,params[2],day,month,year,hour,minuite);
SendClientMessageToAll(lightred,string);
new str[128];
format(str,sizeof(str),"%s has been Banned by Administrator %s | Reason: %s",playername,adminname,params[2]);
SaveIn("BanLog",str);
print(string);
if(udb_Exists(PlayerName2(player1)) && AccInfo[player1][LoggedIn] == 1)
dUserSetINT(PlayerName2(player1)).("Banned",1);
format(string,sizeof(string),"Banned by Administrator %s. | Reason: %s",adminname,params[2]);
format(string,sizeof(string),"You have been banned from this server by %s",adminname);
SendClientMessage(playerid,0xFF0000FF,string);
format(string,sizeof(string),"Reason of the ban: %s",params);
SendClientMessage(playerid,0xFF0000FF,string);
BanWithmessage(player1,"Make a screenshot and make a unban upply on forum.");
return 1; // The change is here... I won't ban him, The timer will..
}else return SendClientMessage(playerid, red, "ERRPR: Player is not connected or is yourself or is the highest level admin");
}else return ErrorMessages(playerid, 1);
}else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
}
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)