Всего тем: 1434
Сообщений: 7448
Новые сообщения Участники Правила форума Поиск RSS
Страница 1 из 11
Форум » Pawno » Pawn WIKI » Делаем бан по IP с указанием причины (Делаем бан по IP с указанием причины)
Делаем бан по IP с указанием причины
[A]ndreykaДата: Понедельник, 23.05.2011, 06:57 | Сообщение # 1
Сообщений: 15
Репутация: 1
Награды: 0
Клан:
[DG_tm]
Fun Team:
n/a
Группа: Пользователь
Статус:
в этом уроке я расскажу как сделать простой бан игрока по ID
в самое начало:
Code

#define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1     
#define COOL_GREEN 0xBBF900AA     
#define AAD_COLOR_GREY 0xAFAFAFAA

потом ищем OnPlayerCommandText и вставляем:

Code
public OnPlayerCommandText(playerid,cmdtext[])     
{     
dcmd(ban,3,cmdtext);     
return 0;     
}

обьясню эту функцию
dcmd( - вызов комманды
ban - сама комманда
3 - длина комманды
cmdtext - тип текста (как в заголовке)

и, конечно, самая важная часть - сама комманда.

вставляем в самый конец, после всего

Code
stock ReturnPlayerID(PlayerName[])     
{     
for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i))     
{     
new name[24];     
GetPlayerName(i,name,24);     
if(strfind(name,PlayerName,true)!=-1) return i;     
}     
return INVALID_PLAYER_ID;     
}

и сразу после этого:

Code
dcmd_ban(playerid,params[])     
{     
if(IsPlayerAdmin(playerid)) return SendClientMessage(playerid,AAD_COLOR_GREY," *** Ты не Администратор");     
if(!strlen(params)) return SendClientMessage(playerid,AAD_COLOR_GREY," *** Ошибка: /ban [ID игрока] [причина]");     
new tmp[256],Index;     
tmp = strtok(params,Index);     
new id;     
if(!IsNumeric(tmp)) id = ReturnPlayerID(tmp);     
else id = strval(tmp);     
if(IsPlayerConnected(id) && id != INVALID_PLAYER_ID && id != playerid)     
{     
new string[256],name[24],ActionName[24];     
GetPlayerName(playerid,name,24);     
GetPlayerName(id,ActionName,24);     
if(!strlen(params[strlen(tmp)+1])) format(string,256," *** Администратор %s (ID: %d) забанил игрока %s (ID: %d) (причина не указана)",name,playerid,ActionName,id);     
else format(string,256," *** Администратор %s (ID: %d) забанил игрока %s (ID: %d) (Причина: %s)",name,playerid,ActionName,id,params[strlen(tmp)+1]);     
SendClientMessageToAll(COOL_GREEN,string);     
BanEx(id,params[strlen(tmp)+1]);     
}     
else SendClientMessage(playerid,AAD_COLOR_GREY," *** Вы не можете банить себя и не существующих игроков.");     
return 1;     
}
 
Форум » Pawno » Pawn WIKI » Делаем бан по IP с указанием причины (Делаем бан по IP с указанием причины)
Страница 1 из 11
Поиск:
Всего пользователей: 7657
За сегодня: 0
За вчера: 0
За неделю: 1
За этот месяц: 7

Копирование материалов без указания на наш сайт запрещено!
Дизайн полностью принадлежит сайту MP-Info.ru
Автор дизайна: Silverback
© MP-Info.ru 2011-2017