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

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

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

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

на оружие v 1.0

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

Pelmen

Новичок
Искал хороший античит на оружие, и не нашел. Решил выложить свой.
Приступим.
Добавим масивы:
PHP:
new PlayerWeapon[MAX_PLAYERS][47];
PHP:
forward GetWeapon();
В OnGameModeInit
PHP:
SetTimer("GetWeapon",1000,1); //таймер будет запускать проверку раз в 1 секунду
В OnPlayerConnect
PHP:
ResetWeapons(playerid); //забирет все оружие у игрока и обнулит значения для античита при подключении к серверу
В OnPlayerSpawn
PHP:
ResetWeapons(playerid); //забирет все оружие у игрока и обнулит значения для античита при спавне игрока
В OnPlayerEnterVehicle
PHP:
	switch (GetVehicleModel(vehicleid))
	{
	    case 417,425,447,460,469,476,487,488,497,511,512,513,519,520,548,553,563,577,592,593: //id моделей всех летательных средств
	    {
			PlayerWeapon[playerid][46]=1; //меняем значение парашюта для античита, что бы не кикнуло при посадке в летательное средство
			GiveWeapon(playerid,46,0); //выдаем парашют игроку при попытке сесть в летательное средство
		}
	}
Перейдем к макросам.
В конец мода вставляем:

PHP:
stock GiveWeapon(playerid,weaponid,ammo) //макрос выдачи оружия
{
	PlayerWeapon[playerid][weaponid]=1; //меняем значение выданного оружия на true для античита 
	GivePlayerWeapon(playerid,weaponid,ammo); //выдаем оружие игроку
	return 1;
}
Поменяйте все GivePlayerWeapon на GiveWeapon (кроме GivePlayerWeapon в макросе выше).

PHP:
stock ResetWeapons(playerid) //макрос отбора всего оружия у игрока и обнуления всех значений для античита
{
    for(new i=1; i<47; i++) 
    {
        PlayerWeapon[playerid][i]=0; //обнуление всех значений античита
    }
	ResetPlayerWeapons(playerid); //забираем все оружие у игрока
}
Поменяйте все ResetPlayerWeapons на ResetWeapons (кроме ResetPlayerWeapons в макросе выше).

Теперь сама проверка игроков на нелегальное оружие.
В конец мода:
PHP:
public GetWeapon()
{
	for(new i=0; i<MAX_PLAYERS; i++)
	{
	    for(new g=1; g<47; g++)
	    {
	        new weapons,ammo;
			GetPlayerWeaponData(i,g,weapons,ammo); //узнаем какое оружие есть у игрока
			if(weapons!=0&&PlayerWeapon[i][weapons]==0) //проверяем есть ли у него нелегальное оружие
			{
			    SendClientMessage(i,-1,"Вы кикнуты по подозрению в читах!");
			    Kick(i); //если у него имеется нелегальное оружие, то, кикаем его
			}
		}
	}
}
Спасибо за внимание.
Если есть какие либо баги в античите, то, пишите.
В версии 2.0 будет добавлена проверка на патроны (против размножалок).
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу