Добро пожаловать!

Зарегистрировавшись у нас, вы сможете обсуждать, делиться и отправлять личные сообщения другим участникам нашего сообщества.

Зарегистрироваться!
  • Если Вы желаете помогать развитию проекта, готовы заполнять раздел(-ы) и подсказывать другим пользователям на портале, есть возможность попасть в команду редакторов. Для этого следует обратиться в техническую поддержку
Пользователь
Регистрация
16 Июн 2023
Сообщения
23
Прописываю команду все норм в чат пишется что забанил но игрок не в бане и дальше бегает.




CMD:ban(playerid, params[])
{
if(PlayerInfo[playerid][pAdmin] < 3)return SendClientMessage(playerid, COLOR_OLDRED, "[Îøèáêà] {CCCCCC}Ó Âàñ íåò äîñòóïà ê ýòîé êîìàíäå.");
if(ADuty[playerid]!=228) return SendClientMessage(playerid,COLOR_GREY,NO_DUTY_TEXT);
if(PlayerInfo[playerid][pPodtver]== 0)
{
SendClientMessage(playerid, COLOR_GREY, "Âàì íå ïîäòâåðäèëè ïðàâà àäìèíèñòðàòîðà");
new strings[164];
format(strings,sizeof(strings),"%s[%d] ïîäîçðåâàåòñÿ âî âçëîìå, ïðîâåðüòå åãî è àâòîðèçèðóéòå /acceptadmin [7 lvl]",PN(playerid),playerid);
SendAdminsMessage(COLOR_OLDRED,strings);
return true;
}
if(GetPVarInt(playerid,"ban")>gettime())
{
SendClientMessage(playerid,COLOR_RED,"Ìîæíî ðàç â 10 ñåêóíä!");
SetPVarInt(playerid,"bann",gettime()+3);
return false;
}
new id, string[150], days, reason[200], Admin;
if(sscanf(params,"uds[150]", id, days, reason)) return SendClientMessage(playerid, COLOR_RED, "Èñïîëüçóé: /ban [id] [days 1-30] [Ïðè÷èíà]");
if(GetString(PN(id),"Will_Hungerson") )return false;
if(!IsPlayerLogged[id])return false;
if(PlayerInfo[id][pLeader]==6)return SendClientMessage(playerid, COLOR_RED, "×åðåç /apanel!");
if(PlayerInfo[playerid][pAdmin]<PlayerInfo[id][pAdmin]) PlayerInfo[playerid][pAdmin]=0;
if(strlen(reason)>30) return SendClientMessage(playerid,COLOR_RED,"Íå áîëüøå 30 ñèìâîëîâ!");
if(IsAIP(reason))return 1;
if(IsADomen(reason) && PlayerInfo[playerid][pAdmin]<6)
{
format(string,sizeof(string),"[WARNING] %s[%d] ïîäîçðåâàåòñÿ â ïîïûòêå ñëèâà! Ïðè÷èíà: %s",PN(playerid),playerid, reason);
SendAdminsMessage(COLOR_RED,string);
SendClientMessage(playerid,COLOR_RED,"Â òàêèõ ñîîáùåíèÿõ çàïðåùàåòñÿ èñïîëüçîâàòü àíãëèéñêèå ñèìâîëû");
SendClientMessage(playerid,COLOR_WHITE,"Íå ïîâòîðÿéòå ýòî äåéñòâèå âî èçáåæàíèå íàêàçàíèÿ.");
return false;
}
if(days>30 || 1>days) return SendClientMessage(playerid, COLOR_RED, "Èñïîëüçóé: /ban [id] [days 1-30] [Ïðè÷èíà]");
format(string,sizeof(string)," %s %s[%d] çàáàíèë èãðîêà %s[%d] íà %d äíåé. Ïðè÷èíà: %s",Admin,Name(playerid),playerid,PN(id),id, days, reason);
AsendClientMessageToAll(COLOR_ARZCOPY,string);
ShowPlayerDialogEx(id,0,0,"","Âû ïîëó÷èëè áàí àêêàóíòà, åñëè âû íå ñîãëàñíû ñ ðåøåíèåì Àäìèíèñòðàòîðà, òî íàïèøèòå æàëîáó íà ôîðóì, ïðèëîæèâ äàííûé ñêðèíøîò.\n{2D8E35}"FORUMSERV"","Çàêðûòü","");
PlayerInfo[id][pWarns]=0;
J_Kick(id);
BanName(PN(id), PN(playerid), days, reason);
SetPVarInt(playerid,"ban",gettime()+10);
return true;
}
 
Решение
В твоем коде есть несколько проблем, которые могут мешать корректной работе бана. Попробуй этот исправленный код:
CMD:ban(playerid, params[])
{
if(PlayerInfo[playerid][pAdmin] < 3) return SendClientMessage(playerid, COLOR_OLDRED, "[Ошибка] {CCCCCC}У Вас нет доступа к этой команде.");
if(ADuty[playerid] != 228) return SendClientMessage(playerid, COLOR_GREY, NO_DUTY_TEXT);

if(PlayerInfo[playerid][pPodtver] == 0)
{
SendClientMessage(playerid, COLOR_GREY, "Вам не подтвердили права администратора");
new strings[164];
format(strings, sizeof(strings), "%s[%d] подозревается во взломе, проверьте его и авторизуйте /acceptadmin [7 lvl]", PN(playerid), playerid)...
Пользователь
Регистрация
8 Фев 2025
Сообщения
25
В твоем коде есть несколько проблем, которые могут мешать корректной работе бана. Попробуй этот исправленный код:
CMD:ban(playerid, params[])
{
if(PlayerInfo[playerid][pAdmin] < 3) return SendClientMessage(playerid, COLOR_OLDRED, "[Ошибка] {CCCCCC}У Вас нет доступа к этой команде.");
if(ADuty[playerid] != 228) return SendClientMessage(playerid, COLOR_GREY, NO_DUTY_TEXT);

if(PlayerInfo[playerid][pPodtver] == 0)
{
SendClientMessage(playerid, COLOR_GREY, "Вам не подтвердили права администратора");
new strings[164];
format(strings, sizeof(strings), "%s[%d] подозревается во взломе, проверьте его и авторизуйте /acceptadmin [7 lvl]", PN(playerid), playerid);
SendAdminsMessage(COLOR_OLDRED, strings);
return true;
}

if(GetPVarInt(playerid, "ban") > gettime())
{
SendClientMessage(playerid, COLOR_RED, "Можно раз в 10 секунд!");
SetPVarInt(playerid, "bann", gettime()+3);
return false;
}

new id, string[150], days, reason[200], Admin[24];
if(sscanf(params, "uds[150]", id, days, reason)) return SendClientMessage(playerid, COLOR_RED, "Используй: /ban [id] [days 1-30] [Причина]");

if(GetString(PN(id), "Will_Hungerson")) return false;
if(!IsPlayerLogged[id]) return false;
if(PlayerInfo[id][pLeader] == 6) return SendClientMessage(playerid, COLOR_RED, "Через /apanel!");
if(PlayerInfo[playerid][pAdmin] < PlayerInfo[id][pAdmin]) PlayerInfo[playerid][pAdmin] = 0;
if(strlen(reason) > 30) return SendClientMessage(playerid, COLOR_RED, "Не больше 30 символов!");
if(IsAIP(reason)) return 1;

if(IsADomen(reason) && PlayerInfo[playerid][pAdmin] < 6)
{
format(string, sizeof(string), "[WARNING] %s[%d] подозревается в попытке слива! Причина: %s", PN(playerid), playerid, reason);
SendAdminsMessage(COLOR_RED, string);
SendClientMessage(playerid, COLOR_RED, "В таких сообщениях запрещается использовать английские символы");
SendClientMessage(playerid, COLOR_WHITE, "Не повторяйте это действие во избежание наказания.");
return false;
}

if(days > 30 || days < 1) return SendClientMessage(playerid, COLOR_RED, "Используй: /ban [id] [days 1-30] [Причина]");

GetPlayerName(playerid, Admin, sizeof(Admin));
format(string, sizeof(string), "%s %s[%d] забанил игрока %s[%d] на %d дней. Причина: %s", Admin, Name(playerid), playerid, PN(id), id, days, reason);
AsendClientMessageToAll(COLOR_ARZCOPY, string);

ShowPlayerDialogEx(id, 0, 0, "", "Вы получили бан аккаунта, если вы не согласны с решением Администратора, то напишите жалобу на форум, приложив данный скриншот.\n{2D8E35}"FORUMSERV"", "Закрыть", "");

PlayerInfo[id][pWarns] = 0;
BanName(PN(id), PN(playerid), days, reason);
SetPVarInt(playerid, "ban", gettime()+10);

// Добавьте кик игрока после бана
SetTimerEx("DelayedKick", 1000, false, "i", id);

return true;
}

// Функция для отложенного кика (добавьте в конец скрипта)
forward DelayedKick(playerid);
public DelayedKick(playerid)
{
if(IsPlayerConnected(playerid))
{
Kick(playerid);
}
return 1;
}
 
Пользователь
Регистрация
16 Июн 2023
Сообщения
23
Сверху