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

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

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

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

На Fake Kill

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

Djcrem

Умник
Искал анти фэйккилл на свой проект, наткнулся на это http://pawno-info.ru/threads/128504-Anti-Fake-Kill (бред сивой кобылы)
Что-то похожее было здесь http://pawno-info.ru/threads/111768-Анти-FakeKill-FastKill , но по сути это все бредня.
Пришлось написать самому, время работы 15 минут. Проверял на своем сервере, работает отлично.
Прежде всего, добавим функцию определения расстояния от игрока до игрока. Куда нибудь в конец мода (не в паблик или другой сток) вставляем:
PHP:
stock IsPlayerInRangeOfPlayer(Float:radi, playerid, targetid)
{
	if(IsPlayerConnected(playerid) && IsPlayerConnected(targetid) &&
		!IsPlayerNPC(playerid) && !IsPlayerNPC(targetid))
	{
		new Float:posx, Float:posy, Float:posz;
		GetPlayerPos(targetid, posx, posy, posz);
   		if(IsPlayerInRangeOfPoint(playerid, radi, posx, posy, posz)) return 1;

	}
	return 0;
}
public OnPlayerDeath вставляем:
PHP:
    format(string, 60, "Warning | FakeKill | %s[%d]",PlayerName(playerid),playerid);
    if(killerid == INVALID_PLAYER_ID) return 1;
    else if(GetPlayerWeapon(killerid) != reason) return SendAdminMessage(COLOR_RED, string), Kick(playerid);
    else if(!IsPlayerInRangeOfPlayer(2.0, playerid, killerid) && GetPlayerWeapon(killerid) == 0) return SendAdminMessage(COLOR_RED, string), Kick(playerid);
1 строка, "заформатим нужную нам информацию", надеюсь все знают как это делать.
2 строка, проверяем если игрок сам себя убил, возвращаемся.
3 строка, проверяем находится ли у предполагаемого читера оружие в руках которым он убил, если нет - оповещение админам и затем кик.
Остается проблема, если игрок в список фэйковых оружий выбрал кулаки, то мы не сможем это определить. Именно за этим к нам приходит 4 строка, проверяем на расстояние игрока, ведь кулаками нельзя убить на расстоянии, а значит - игрок читер.
Спасибо за внимание, в коде используются нестандартные функции вроде: Сообщение администраторам, опять же надеюсь на вашу сознательность и компетентность в кодинге.
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу