Доступ к готовым решениям

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

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

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

на GM,NOP SetPlayerHealth,SetPlayerArmour

Dezmont_Mailz

Умник
в начало

PHP:
new AntiHPBron[MAX_PLAYERS];
в pInfo

PHP:
pHealth,
    pArmour,

В OnPlayerConnect

PHP:
pPlayer[playerid][pHealth] = 100;
    pPlayer[playerid][pArmour] = 0;

В секундный таймер или в ваш злобный OnPlayerUpdate


PHP:
new Float:health;
		new Float:Armour;
		GetPlayerHealth(playerid, health);
		GetPlayerArmour(playerid, Armour);
		if(GetPlayerState(playerid) != PLAYER_STATE_SPECTATING)
		{
			if(gettime() > AntiHPBron[playerid])
			{
				if(health > pPlayer[playerid][pHealth])
				{
					KickEx(playerid,COLOR_LIGHTRED,"Ваш текст");
					return 1;
				}
				else if(health < pPlayer[playerid][pHealth])
				{
					pPlayer[playerid][pHealth] = floatround(health, floatround_round);
					if(pPlayer[playerid][pHealth] < 0) pPlayer[playerid][pHealth] = 0;
				}
				if(Armour > pPlayer[playerid][pArmour])
				{
					KickEx(playerid,COLOR_LIGHTRED,"Ваш текст");
					return 1;
				}
				else if(Armour < pPlayer[playerid][pArmour])
				{
					pPlayer[playerid][pArmour] = floatround(Armour, floatround_round);
					if(pPlayer[playerid][pArmour] < 0) pPlayer[playerid][pArmour] = 0;
				}
			}
		}
в паблик OnPlayerGiveDamage(playerid, damagedid, Float:amount, weaponid)

PHP:
if(PlayerInAFK[damagedid] > 0) return 1;
	if(pPlayer[damagedid][pArmour] > 0)
	{
	    if(amount > pPlayer[damagedid][pArmour])
	    {
	        new Float:dmg = amount - pPlayer[damagedid][pArmour];
            SetPlayerArmorAC(damagedid, 0.0);
            pPlayer[damagedid][pHealth] -= floatround(dmg, floatround_round);
            SetPlayerHealthAC(damagedid, pPlayer[damagedid][pHealth]);
            return 1;
        }
        pPlayer[damagedid][pArmour] -= floatround(amount, floatround_round);
        SetPlayerArmorAC(damagedid, pPlayer[damagedid][pArmour]);
 	}
 	else 
     {
         pPlayer[damagedid][pHealth] -= floatround(amount, floatround_round);
         SetPlayerHealthAC(damagedid, pPlayer[damagedid][pHealth]);
     }
	 return 1;
в OnPlayerSpawn

PHP:
SetPlayerHealthAC(playerid, pPlayer[playerid][pHealth]);
	SetPlayerArmorAC(playerid, pPlayer[playerid][pArmour]);

В конец мода

PHP:
stock SetPlayerHealthAC(playerid,Float:Health)
{
    HPTime(playerid,3);
    pPlayer[playerid][pHealth] = floatround(Health, floatround_round);
	SetPlayerHealth(playerid, pPlayer[playerid][pHealth]);
	return 1;
}
stock SetPlayerArmorAC(playerid,Float:Armor)
{
    HPTime(playerid,3);
    pPlayer[playerid][pArmour] = floatround(Armor, floatround_round);
	SetPlayerArmour(playerid, pPlayer[playerid][pArmour]);
	return 1;
}
stock HPTime(playerid,extra)
{
    AntiHPBron[playerid]=gettime()+extra;
    return 1;
}

Античит готов

Проверки на AFK ставим свои
Кик так же заменяем на свой
pPlayer заменяем на свою или на оригинальную PlayerInfo
Так же можно настроить под сохранение ХП и Брони


функции

PHP:
SetPlayerHealth
SetPlayerArmour

меняем на

PHP:
SetPlayerHealthAC
SetPlayerArmorAC

а так же можно не заменяя поставить макросы в начало мода

PHP:
#define SetPlayerHealth SetPlayerHealthAC
#define SetPlayerArmour SetPlayerArmorAC




Полностью убирает ГМ
Полностью кикает за NOP SetPlayerHeath и Armour конечно не сразу но кикнет 100%
Так же работает как античит на востоновление здоровия или брони + пульсаторы ХП в Ж.О.П.Е
CLEO нервно будут курить
s0b_kill в собейте от watrix-а будет работать врятли
 
Последнее редактирование:
Сверху Снизу