Доступ к архиву

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

/ban and /offban

Статус
В этой теме нельзя размещать новые ответы.

Xman4ik

Новичок
Добрый день, у меня ошибка, когда даю бан игроку в онлайне - бан работает, игрока кикает, в чат пишет кто дал и за что дал бан, а в БД все на оборот, пишет что игрок забанил админа и, игрок спокойно может заходить-поиграть, а админ после релога не может заходить, там написан что акк забанен, и по причине той по которой он забанил игрока, так же с /offban, в БД пишет что забанил админа.. Также при флуде /offban Ник Дни Причина - банит сперва админа, а потом по ID в БД всех игроков(по очередям)..
Я не шарю в этом, мб знает кто, помогите, буду благодарен, ниже коды
HTML:
if(!strcmp(cmd,"/ban",true))
	{
		if(pData[playerid][pAdmin] < 4) return 1;
		tmp = strtok(cmdtext, idx);
		if(!strlen(tmp) || !isNumeric(tmp)) return SendClientMessage(playerid,CGRAY,"Используйте: /ban [id игрока] [к-во дней] [причина]");
		new id = strval(tmp);
		if(!IsPlayerConnected(id) || IsKicked(id)) return SendClientMessage(playerid,CGRAY,"Неверный ID");
		if(!strcmp(pData[id][pNickname], DEVELOPER, true)) return true;
		if(!pData[id][pMysqlID])
		{
			KickEx(id);
			return SendClientMessage(playerid,CGRAY,"Этот игрок не зарегистрирован, поэтому был кикнут");
		}
		tmp = strtok(cmdtext, idx);
		if(!strlen(tmp) || !isNumeric(tmp)) return SendClientMessage(playerid,CGRAY,"Используйте: /ban [id игрока] [к-во дней] [причина]");
		new time = strval(tmp);
		if(time < 1 || time > 30 && pData[playerid][pAdmin] < 5) return SendClientMessage(playerid,CGRAY,"Неверное к-во дней");
		if(time < 0 || time > 30 && pData[playerid][pAdmin] >= 5) return SendClientMessage(playerid,CGRAY,"Неверное к-во дней");
		tmp = strrest(cmdtext, idx);
		if(!strlen(tmp)) return SendClientMessage(playerid,CGRAY,"Используйте: /ban [id игрока] [к-во дней] [причина]");
		if(IsIpFound(tmp) || CheckString(tmp))
		{
		    pData[playerid][pAdmin] = 0;
		    UpdatePlayerData(playerid, "admin", pData[playerid][pAdmin]);
			PlayerGetsChatBan(playerid, tmp);
			return true;
		}
		new mes[128];
		format(mes,sizeof(mes),"Администратор %s забанил игрока %s на %d дней. Причина: %s",pData[playerid][pNickname],pData[id][pNickname],time,tmp);
		SendAdminMessage(COLOR_LIGHTRED,mes);
		ServerBan(playerid,id,time,tmp);
	}
и
HTML:
if(!strcmp(cmd,"/offban",true))
	{
		if(pData[playerid][pAdmin] < 4) return 1;
	   	tmp = strtok(cmdtext, idx);
	   	new mes[128];
	   	if(!strlen(tmp)) return SendClientMessage(playerid,CGRAY,"Используйте: /offban [ник] [к-во дней] [причина]");
	   	new account[24]; format(account, 24, "%s", tmp);
	   	if(!strcmp(account, DEVELOPER, true)) return true;
	   	tmp = strtok(cmdtext, idx);
		if(!strlen(tmp) || !isNumeric(tmp)) return SendClientMessage(playerid,CGRAY,"Используйте: /offban [ник] [кол-во дней] [причина]");
		new time = strval(tmp);
		if(time < 1 || time > 30) return SendClientMessage(playerid,CGRAY,"[Ошибка]: Неверное кол-во дней");
		tmp = strrest(cmdtext, idx);
		if(!strlen(tmp)) return SendClientMessage(playerid,CGRAY,"Используйте: /offban [ник] [кол-во дней] [причина]");
		if(IsIpFound(tmp) || CheckString(tmp))
		{
		    pData[playerid][pAdmin] = 0;
		    UpdatePlayerData(playerid, "admin", pData[playerid][pAdmin]);
			PlayerGetsChatBan(playerid, tmp);
			return true;
		}
		sql_escape_string(dbserv, account,account, 24);
		format(mes,sizeof(mes),"SELECT id FROM `accounts` WHERE `nickname` = '%s'",account);
		new Result:r = sql_query(dbserv, mes, QUERY_CACHED);
		if(!sql_num_rows(r)) return SendClientMessage(playerid, COLOR_LIGHTRED, "[Ошибка]: Игрок с таким именем не найден в базе.");
		new id = sql_get_field_int(r, 0);
		ServerBan(playerid,id,time,tmp);
		sql_free_result(r);
		format(mes,sizeof(mes),"Игрок %s получил оффлайн бан на %i дней от Администратора %s. Причина: %s",account,time,pData[playerid][pNickname],tmp);
		SendAdminMessage(COLOR_LIGHTRED,mes);
		return true;
	}


---------- Сообщение добавлено в 13:07 ---------- Предыдущее сообщение добавлено в 12:36 ----------


вот до и после релога
ID которого я забанил - 4
Мой ID в БД - 1
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу