HuskyNya
Новичок
Не работают команды /kick /ban, а именно не показывает что игрока кикнули у него просто пропадает соединение с сервером. Еще /jail кто может дайте чтобы можно было указывать причину .
PHP:
else if(strcmp(cmd, "/kick", true) == 0)
{
if (PlayerInfo[playerid][pAdmin] >= 2)
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_WHITE, "Введите: /kick [id] [причина]");
if (dostup[playerid] != 1) return ShowPlayerDialog(playerid,2934,DIALOG_STYLE_INPUT,"Доступ администратора","Введи свой key в окошко и нажми 'Ок'","Ок","Отмена");
giveplayerid = ReturnUser(tmp);
if (PlayerInfo[playerid][pLevel] >= 2 && PlayerInfo[playerid][pAdmin] >= 1)
{
if(IsPlayerConnected(giveplayerid))
{
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;
new result[64];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = cmdtext[idx];
idx++;
}
result[idx - offset] = EOS;
if(!strlen(result)) return SendClientMessage(playerid, COLOR_WHITE, "Введите: /kick [id] [reason]");
new year, month,day;
getdate(year, month, day);
format(string, sizeof(string), "Игрок %s был кикнут администратором %s. Причина: %s", giveplayer, sendername, (result));
SendClientMessageToAll(COLOR_LIGHTRED, string);
Kick(giveplayerid);
return true;
}
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, "{F70000}x {ADAEAD}Игрок не найден!");
}
}
return true;
}
else if(strcmp(cmd, "/hkick", true) == 0)
{
if(PlayerInfo[playerid][pHelper] == 4)
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_WHITE, "/hkick [ид] [причина]");
giveplayerid = ReturnUser(tmp);
if(PlayerInfo[playerid][pHelper] == 4)
{
if(IsPlayerConnected(giveplayerid))
{
if(giveplayerid != INVALID_PLAYER_ID)
{
if(PlayerInfo[giveplayerid][pAdmin] > 0) return SendClientMessage(playerid, COLOR_GRAD2, "Администратор не может быть кикнут!");
if(PlayerInfo[giveplayerid][pHelper] > 0) return SendClientMessage(playerid, COLOR_GRAD2, "Хелпер не может быть кикнут!");
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= ' '))
{
idx++;
}
new offset = idx;
new result[64];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = cmdtext[idx];
idx++;
}
result[idx - offset] = EOS;
if(!strlen(result)) return SendClientMessage(playerid, COLOR_WHITE, "/hkick [ид] [причина]");
new year, month,day;
getdate(year, month, day);
PlayerInfo[giveplayerid][pRp] -=2;
format(string, sizeof(string), "Хелпер %s кикнул игрока %s. Причина: %s", sendername,giveplayer, (result));
SendClientMessageToAll(COLOR_LIGHTRED, string);
Kick(giveplayerid);
return true;
}
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, "Игрок не найден!");
}
}
return true;
}
PHP:
if(strcmp(cmd, "/ban", true) == 0) {
if(IsPlayerConnected(playerid)) {
if (PlayerInfo[playerid][pAdmin] >= 5) {
tmp = strtok(cmdtext,idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_WHITE, "{22ff00}» {bbbbbb}Введите{FFFFFF}: /ban [id] [Количество дней] [причина]");
return true; }
giveplayerid = ReturnUser(tmp);
if(IsPlayerConnected(giveplayerid)) {
tmp = strtok(cmdtext, idx);
if (!strlen(tmp)) return SendClientMessage(playerid, COLOR_WHITE, "{22ff00}» {bbbbbb}Введите{FFFFFF}: /ban [id] [Количество дней] [причина]");
new days = strval(tmp);
new reason[128];
new ip[15];
GetPlayerIp(giveplayerid,ip,15);
reason = bigstr(cmdtext, idx);
if (!strlen(reason)) return SendClientMessage(playerid, COLOR_WHITE, "{22ff00}» {bbbbbb}Введите{FFFFFF}: /ban [id] [Количество дней] [причина]");
GetPlayerName(playerid, sendername, sizeof(sendername));
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
new year1, month1, day1, hour1, minute1, second1;
getdate(year1, month1, day1);
gettime(hour1, minute1, second1);
new year,month,day;
getdate(year, month, day);
day += days; {
if (day > 31) {
month += 1;
if (month > 12) {
year += 1;
while(day > 31) day -= 31; }
else while(day > 31) day -= 31;}} {
if (day > 30) {
month += 1;
if (month > 12) {
year += 1;
while(day > 30) day -= 30; }
else while(day > 30) day -= 30;}} {
if (day > 29) {
month += 1;
if (month > 12) {
year += 1;
while(day > 29) day -= 29; }
else while(day > 29) day -= 29;}} {
if (day > 28) {
month += 1;
if (month > 12) {
year += 1;
while(day > 28) day -= 28; }
else while(day > 28) day -= 28;}}
format(string, sizeof(string), "users/%s.ini",giveplayer);
new file = ini_openFile(string);
if(file < 0) print("нету файла");
else {
ini_getString(file,"pIp",string);
ini_getString(file,"pIpReg",string);
ini_closeFile(file);
format(string,256,"[Администрация]: %s забанил %s на %d дней, причина: %s",sendername,giveplayer,days,(reason));
SendClientMessageToAll(COLOR_LIGHTRED,string);
format(string,256,"Продолжительность: %d | IP: [%s] | Дата разбана:(%d.%d.%d)",days, ip, day, month, year);
SendClientMessageToAll(COLOR_LIGHTRED,string);
new iniFile = ini_openFile("banlog/ban.ini");
ini_setString(iniFile, "Nick:\n",giveplayer);
ini_closeFile(iniFile);
new coordsstring1[512];
new msg1[] = "{ffff00}Ваш аккаунт заблокирован\n\n{ffffff}Администратор: {1e90ff}%s\n{ffffff}Срок: {1e90ff}%d {ffffff}дней\nПричина: {1e90ff}%s";
format(coordsstring1, sizeof coordsstring1, msg1, sendername,days,(reason));
SPD(giveplayerid,9999,DIALOG_STYLE_MSGBOX,"Блокировка аккаунта",coordsstring1,"Скрыть","");
PlayerInfo[giveplayerid][pLocked] = 1;
Kick(giveplayerid); }}
else { SendClientMessage(playerid, COLOR_GREY, "{F70000}x {ADAEAD}Игрок не найден!"); }}
else { SendClientMessage(playerid, COLOR_GREY, "{F70000}x {ADAEAD}Вы не уполномочены использовать эту команду!"); return true; }}
return true;}
else if(strcmp(cmd, "/freeze", true) == 0)
{
if(PlayerInfo[playerid][pAdmin] >= 1)
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_WHITE, "/freeze [ид]");
new playa;
playa = ReturnUser(tmp);
if(PlayerInfo[playa][pAdmin] > 0) return SendClientMessage(playerid, COLOR_GRAD2, "Администратор не может быть заморожен!");
if (PlayerInfo[playerid][pAdmin] >= 2)
{
if(IsPlayerConnected(playa))
{
if(playa != INVALID_PLAYER_ID)
{
GetPlayerName(playa, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
TogglePlayerControllable(playa, 0);
format(string, sizeof(string), "Администратор %s заморозил %s",sendername, giveplayer);
printf("%s",string);
format(string, sizeof(string), "%s был(а) заморожен(а) администратором %s",giveplayer ,sendername);
ABroadCast(COLOR_LIGHTRED,string,1);
}
}
}
else
{
SendClientMessage(playerid, COLOR_GRAD1, "Вы не уполномочены использовать эту команду!");
}
}
return true;
}
