выкладываем команды ...
Ну вот я начну ,эти команды кикают и банят .
В самый верх нужно вставить forward BanMsg(playerid, kickername[], reason[]);
в середину:
Код:
public BanMsg(playerid, kickername[], reason[])
{
new string[256];
new playername[MAX_PLAYER_NAME];
GetPlayerName(playerid, playername, sizeof(playername));
format(string, sizeof(string), "*** [%s]-[ID:%d] забанен [%s] Нарушение: [%s] ***", playername, playerid, kickername, reason);
printf(string);
SendClientMessageToAll(COLOR_RED, string);
Ban(playerid);
return 1;
}и это в команды:
Код:
if(strcmp(cmd, "/ban", true) == 0) {
if(SISAdmin[playerid]==1 || Admin[playerid]==1) {
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_WHITE, "***СИСТЕМА: Используйте /ban [ID] [причина]");
return 1;
}
giveplayerid = strval(tmp);
strmid(tmp, cmdtext, 5+strlen(tmp), strlen(cmdtext));
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_WHITE, "***СИСТЕМА: Используйте /ban [ID] [причина]");
return 1;
}
if (IsPlayerConnected(giveplayerid)) {
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
BanMsg(giveplayerid, sendername, tmp);
}
else {
format(string, sizeof(string), "*** [%d] неактивный игрок.", giveplayerid);
SendClientMessage(playerid, COLOR_YELLOW, string);
}
}else{
}
return 1;
}Код:
if(strcmp(cmd, "/kick", true) == 0)//кикнуть игрока
{
new reason[256];
if(Admin[playerid] == 1||SISAdmin[playerid]==1)
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_WHITE, "USAGE: /kick [playerid] [reason]");
SendClientMessage(playerid, COLOR_WHITE, "FUNCTION: возможно команда неверна!**");
return 1;
}
giveplayerid=strval(tmp);
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;
while ((idx < length) && ((idx - offset) < (sizeof(reason) - 1)))
{
reason[idx - offset] = cmdtext[idx];
idx++;
}
reason[idx - offset] = EOS;
if(!strlen(reason))
{
SendClientMessage(playerid, COLOR_GREEN, "USAGE: /kick [playerid] [reason]");
return 1;
}
else
{
format(string, sizeof(string), "Admin %s кикнул %s'a - Причина: %s", sendername,giveplayer,reason);
SendClientMessageToAll(COLOR_RED, string);
Kick(giveplayerid);
}
}
else if(giveplayerid == INVALID_PLAYER_ID)
{
format(string, sizeof(string), "%d игрок не активен.", giveplayerid);
SendClientMessage(playerid, COLOR_WHITE, string);
}
}
return 1;
}у кого нет админов и сисадминов то вставьте вверх new SISAdmin[MAX_PLAYERS];
new Admin[MAX_PLAYERS];