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

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

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

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

Анти GM через SendClientCheck

DeadZone

Начинающий
Пользователь
Регистрация
26 Мар 2017
Сообщения
10
Лучшие ответы
0
Репутация
0
Создаём новый скрипт,внимание именно скрипт,назвать можно как угодно.

PHP:
#include <a_samp>
PHP:
forward OnClientCheckResponse(playerid, type, arg, response);
public OnClientCheckResponse(playerid, type, arg, response)
        CallRemoteFunction("OnClientCheckResponseFix", "dddd", playerid, type, arg, response);

Далее открываем наш мод.

PHP:
#define GetBit(%0,%1) ((%0 >> %1) & 1)

PHP:
enum Flags
{
	b0x01,
    bApplyGravity,
    bDisableFriction,
    bCollidable,
    b0x10,
    bDisableMovement,
    b0x40,
    b0x80,

    bSubmergedInWater,
    bOnSolidSurface,
    bBroken,
    b0x800,
    b0x1000,
    b0x2000,
    b0x4000,
    b0x8000,

    b0x10000,
    b0x20000,
    bBulletProof,
    bFireProof,
    bCollisionProof,
    bMeeleProof,
    bInvulnerable,
    bExplosionProof,

    b0x1000000,
    bAttachedToEntity,
    b0x4000000,
    bTouchingWater,
    bEnableCollision,
    bDestroyed,
    b0x40000000,
    b0x80000000
};

new PhysFlags[MAX_PLAYERS][Flags];
new Timer;

PHP:
for(new i = 0; i < 32; i++)
	{
	    PhysFlags[playerid][Flags:i] = 0;
	}

PHP:
Timer = SetTimer("TimerFunc", 10000, true);

В конец мода вставьте и настройте под себя следующий код:
PHP:
public OnClientCheckResponseFix(playerid, type, arg, response)
{
	new str[128];
	switch(type)
	{
	    case 0x2:
	    {
			for(new i = 0; i < 32; i++)
			{
			    PhysFlags[playerid][Flags:i] = GetBit(arg, i);
			}
            if(Player[playerid][pAdmin] < 3 && PhysFlags[playerid][bBulletProof] == 1)   //  Player[playerid][pAdmin] < 3 - Это проверка на админа,меняйте на своё
            {
            // Сюда вставьте то,что будет происходить если у игрока включен GM
            }
	    }
	}
	return 1;
}

forward TimerFunc();
public TimerFunc()
{
	for(new i = 0; i < MAX_PLAYERS; i++)
	{
	    if(!IsPlayerConnected(i)) continue;     // Проверяем подключён ли игрок
	    SendClientCheck(i, 0x2, 0, 0, 2);
	}
}

После настройки OnClientCheckResponse наш античит готов к работе,перед запуском сервера добавьте в server.cfg название нашего скрипта. Таким образом каждые 10 секунд игроки будут проверятся на наличие GM.
 
Последнее редактирование:
Сверху Снизу