• Уважаемый Гость.
    - Прежде чем создать свою тему, пожалуйста, попробуй воспользоваться этим -> ПОИСКОМ !!!
    - После решения Вашего вопроса (проблемы) - нажмите "Лучший ответ", на сообщении, которое его решило. За игнорирование этого действия - Вы получите соответствующее предупреждение. Мы - стараемся Вам помочь. Уделите 10 секунд - чтобы нажать кнопку. (Если у Вас нет такой возможности - укажите в последнем своем сообщении какой ответ Вы считаете лучшим. Наши модераторы сделают это за Вас)
    ЗАПРЕЩЕНО:
    - Cоздавать темы с названиями "Помогите", "Плиз", "Ошибка", "Не могу найти", "Хелп" и тому подобное;
    - Cоздавать темы без детального описания того, что нужно исправить.
    - Cоздавать темы из одного скриншота.
    За игнор правил форума - Ваша тема будет удалена, а Вы получите системное предупреждение.

Баг с банами и варнами при заходе на сервер

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

ErickAdamson

Начинающий
Пользователь
Регистрация
9 Окт 2019
Сообщения
18
Лучшие ответы
0
Репутация
4
Доброго времени суток. На сервере существует команда /ban /offban /warn /offwarn, которая банит и варнит игрока, но проблема в том, что она не работает, при перезаходе на сервер игрок может опять бегать, в базе данных логи пишут, на сервере варны показывает, возможно при загрузке что-то с функцией не то.
Кто может помочь исправить напишите ниже как можно связаться с вами...

Вот мой код:
PHP:
forward OnPlayerLoaded(Result:r, playerid);
public OnPlayerLoaded(Result:r, playerid) {
	new rows = sql_num_rows(r);
	if(rows) {
		new id = sql_get_field_assoc_int(r, "id");
		new status = sql_get_field_assoc_int(r, "status");
		new query[256],numaccount[50], reasona[120];
		if(status == 2)
		{
	        format(query, 128, "SELECT `time`,`giveid`,`reason` FROM `ban` WHERE `takeid` = '%d'",id);
	        new Result:bantest = sql_query(snow, query, QUERY_CACHED);
	        sql_get_field(bantest, 1, numaccount);
	        sql_get_field(bantest, 2, reasona);
	        new idakk = sql_get_field_int(bantest, 1);
	        if(sql_num_rows(bantest))
	        {
	            new result[64];
	            sql_fetch_row(bantest,"|",result);
				new time, reason[256];
	            sscanf(result,"p<|>is[128]",time,reason);
				if(time <= -1) {
				    format(query, 128, "DELETE FROM `ban` WHERE `takeid` = '%d'",id);
				    sql_query(snow, query);
				}
				else {
					new nickname[50];
					format(query, sizeof(query), "SELECT `nickname` FROM `aplayerakk` WHERE `id` = '%s'", numaccount);
					new Result:r1 = sql_query(snow, query, QUERY_CACHED);
					sql_get_field(r1, 0, nickname);
					if(idakk == -1) { format(query,sizeof(query),"Вы забанены по причине: '%s' администратором Неизвестен. Осталось дней: %d",reasona, time); }
					else { format(query,sizeof(query),"Вы забанены по причине: '%s' администратором %s. Осталось дней: %d",reasona, nickname, time); }
					SendClientMessage(playerid,COLOR_LIGHTRED,query);
					sql_free_result(r1);
					NewKick(playerid);
					return 1;
				}
	        }
		}
PHP:
if(pData[playerid][pMysqlID] && pTemp[playerid][pStatuscon] != 2)
	{
		UpdatePlayerData(playerid,"status",0);
		SendLogs("%s îòêëþ÷èëñÿ îò ñåðâåðà. (IP: %s)",pData[playerid][pNickname],pData[playerid][pLastIP]);
	}
PHP:
stock ServerBan(playerid,actplayerid,time,reason[])
{
    pTemp[actplayerid][pStatuscon] = 2;
	new query[350];
	format(query,sizeof(query),"UPDATE `aplayerakk` SET `status` = '2' WHERE `id` = '%d'",pData[actplayerid][pMysqlID]);
	sql_query(snow, query);
	if(playerid < 0) format(query,sizeof(query),"INSERT INTO `ban` VALUES ('','-1','%d','%d','%s')",pData[actplayerid][pMysqlID],time,reason);
	else format(query,sizeof(query),"INSERT INTO `ban` VALUES ('','%d','%d','%d','%s')",pData[playerid][pMysqlID],pData[actplayerid][pMysqlID],time,reason);
	sql_query(snow, query);
	NewKick(actplayerid);
	return 1;
}
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу