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

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

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

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

offwarn offban

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

Huseyn

Компетентный
Всем привет, у меня такая проблема с offwarn и offban. При выдачи наказание с /offwarn ты выдаёшь предупреждение 3 раза потом автоматический, выдаётся бан на 7 дней, после бана все предупреждение аннулируется, потом ты можешь игрока ещё раз заварнить, а в /offban ты можешь банить игрока много раз, как исправить данную ошибку ? с меня +

1).
PHP:
CMD:offwarn(playerid, params[])
{
	if(PI[playerid][pAdmin] < 3) return 1;
	else if(AdminLogged[playerid] == false) return SendClientMessage(playerid, COLOR_GREY, YouAreNotLoggedInAsAdmin);
	new playername[MAX_PLAYER_NAME], reason[32];
	if(sscanf(params, "s[24]s[24]", playername, reason)) return SendClientMessage(playerid, COLOR_WHITE, "Введите: /offwarn [ник игрока] [причина]");
	else if(CheckExceptionName(playername)) return AttemptRemoveChiefAdmin(playerid);
	else if(IsIpFound(reason) || CheckString(reason)) return AdminAntisliv(playerid, reason);
	else if(GetPlayerID(playername) != INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_GREY, "Игрок в сети, используйте команду /warn");
	format(query, sizeof(query), "SELECT * FROM "T_ACCOUNTS" WHERE `name`='%s'", playername);
	mysql_tquery(dbHandle, query, "OnPlayerOffwarn", "iss", playerid, playername, reason);
	return 1;
}

forward OnPlayerOffwarn(playerid, name[], reason[]);
public OnPlayerOffwarn(playerid, name[], reason[])
{
	if(cache_get_row_count(dbHandle) > 0)
	{
	    new string[144];
		if(cache_get_row_int(0, 20, dbHandle) < 3)
		{
			format(string, sizeof(string), "Игрок %s получил оффлайн предупреждение от администратора %s. Причина: %s", name, GetName(playerid), reason);
			format(query, sizeof(query), "UPDATE "T_ACCOUNTS" SET warn=warn+1,member=0,leader=0,templeader=0,rank=0,job=0,spawnchange=0 WHERE name='%s'", name);
			mysql_tquery(dbHandle, query, "", "");
		}
		else
		{
		    new data[15], unbandate;
			format(string, sizeof(string), "Игрок %s получил оффлайн бан на 7 дней от администратора %s. Причина: %s", name, GetName(playerid), reason);
			getdate(years, months, days);
			unbandate = gettime() + 7*86400;
			format(data, sizeof(data), "%02d.%02d.%04d", days, months, years);
			format(query, sizeof(query), "INSERT INTO bans (name, whobanned, ip, bandate, time, unbandate, reason) VALUES ('%s', '%s', '%s', '%s', 7, %d, '%s')", name, GetName(playerid), cache_get_row_int(0, 3, dbHandle), data, unbandate, reason);
			mysql_tquery(dbHandle, query, "", "");
			format(query, sizeof(query), "UPDATE "T_ACCOUNTS" SET warn=0,member=0,leader=0,templeader=0,rank=0,job=0,spawnchange=0 WHERE name='%s'", name);
			mysql_tquery(dbHandle, query, "", "");
		}
		SendClientMessageToAll(COLOR_RED, string);
	    SendLog("WarnLog", string);
	}
	else SendClientMessage(playerid, COLOR_GREY, "Игрок не найден!");
	return 1;
}
2).Offban
PHP:
CMD:offban(playerid, params[])
{
	if(PI[playerid][pAdmin] < 4) return 1;
	else if(AdminLogged[playerid] == false) return SendClientMessage(playerid, COLOR_GREY, YouAreNotLoggedInAsAdmin);
	new playername[MAX_PLAYER_NAME], countday, reason[32];
	if(sscanf(params, "s[24]is[24]", playername, countday, reason)) return SendClientMessage(playerid, COLOR_WHITE, "Введите: /offban [ник игрока] [кол-во дней] [причина]");
	else if(CheckExceptionName(playername)) return AttemptRemoveChiefAdmin(playerid);
	else if(IsIpFound(reason) || CheckString(reason)) return AdminAntisliv(playerid, reason);
	else if(GetPlayerID(playername) != INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_GREY, "Игрок в сети, используйте команду /ban");
	else if(countday > 30 || countday < 1) return SendClientMessage(playerid, COLOR_GREY, "Количество дней от 1 до 30!");
	format(query, sizeof(query), "SELECT * FROM "T_ACCOUNTS" WHERE `name`='%s'", playername);
	mysql_tquery(dbHandle, query, "OnPlayerOffban", "isis", playerid, playername, countday, reason);
	return 1;
}
forward OnPlayerOffban(playerid, name[], day, reason[]);
public OnPlayerOffban(playerid, name[], day, reason[])
{
	if(cache_get_row_count(dbHandle) > 0)
    {
		new string[144];
		format(string, sizeof(string), "Игрок %s получил оффлайн бан на %i дней от администратора %s. Причина: %s", name, day, GetName(playerid), reason);
		SendClientMessageToAll(COLOR_RED, string);
		SendLog("OffBan", string);
		getdate(years, months, days);
		new unbandate = gettime() + day*86400;
		new data[15];
		format(data, sizeof(data), "%02d.%02d.%04d", days, months, years);
		format(query, sizeof(query), "INSERT INTO bans (name, whobanned, ip, bandate, time, unbandate, reason) VALUES ('%s', '%s', '%s', '%s', '%d', '%d', '%s')", name, GetName(playerid), cache_get_row_int(0, 3, dbHandle), data, day, unbandate, reason);
		mysql_tquery(dbHandle, query, "", "");
		format(query, sizeof(query), "UPDATE "T_ACCOUNTS" SET warn=0,member=0,leader=0,templeader=0,rank=0,job=0,spawnchange=0 WHERE name='%s'", name);
		mysql_tquery(dbHandle, query, "", "");
	}
	else SendClientMessage(playerid, COLOR_GREY, "Игрок не найден!");
	return 1;
}
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу