Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 2 из 2

Тема: Античит

  1. #1
    Аватар для Killer
    Пользователь

    Статус
    Оффлайн
    Регистрация
    24.04.2017
    Сообщений
    133
    Репутация:
    0 ±

    Античит

    Проблема с античитом. Вторично игрока не кикает с сервера, игрок может бегать с читерским оружием.
    Допустим - игрок зашел, выбрал читерское оружие - его кикнуло, он зашел на сервер через чит, оружие не выключал, в общем итоге - он может бегать со своим читерским оружием.

    Вот мой код в общем секундном таймере:

    Код:
    new weap = GetPlayerWeapon(i);
            if(GetPlayerWeapon(i) > 0 && GetPlayerAmmo(i) == 0 && Weapons[i][GetPlayerWeapon(i)] == 0 && GetPVarInt(i, "GunCheck") < gettime()) Delgun(i), KickD(i,"cheat (#2)");
    		if(GetPVarInt(i, "GunCheck") < gettime())
    		{
    			new weaponid, ammo;
    			for (new it = 1; it < 11; it++)
    			{
    				GetPlayerWeaponData(i, it, weaponid, ammo);
    				if(ammo > Weapons[i][weaponid]) Delgun(i), KickD(i,"cheat (#1)");
    				else if(ammo < Weapons[i][weaponid]) Weapons[i][weaponid] = ammo;
    			}
    		}
    Выдача оружия:

    Код:
    stock GetWeaponSlot(weaponid)
    {
    	new slot;
        switch(weaponid)
        {
            case 1: slot = 0;
            case 2..9: slot = 1;
            case 22..24: slot = 2;
            case 25..27: slot = 3;
            case 28, 29, 32: slot = 4;
            case 30, 31: slot = 5;
            case 33, 34: slot = 6;
            case 35..38: slot = 7;
            case 16..18, 39: slot = 8;
            case 41..43: slot = 9;
            case 10..15: slot = 10;
            case 44..46: slot = 11;
        }
        return slot;
    }
    stock GiveWeapon(playerid,weaponid,ammo)
    {
        SetPVarInt(playerid, "GunCheck", gettime() + 2);
        new ammow = 0;
        GetPlayerWeaponData(playerid, GetWeaponSlot(weaponid), ammow, ammow);
        Weapons[playerid][weaponid] += (ammo+ammow);
    	GivePlayerWeapon(playerid,weaponid,ammo);
    	WeaponInfo[playerid][weaponid] = weaponid;
    	Player_Slots[playerid][GetWeaponSlot(weaponid)] = weaponid;
    	return true;
    }
    Подскажите, какую проверку нужно добавить,спасибо.

  2. #2
    Аватар для Nexius_Tailer
    Пользователь

    Статус
    Оффлайн
    Регистрация
    04.01.2015
    Адрес
    Гомель, Беларусь
    Сообщений
    548
    Репутация:
    158 ±
    Скорее всего оружие просто сохраняется сервером при выходе, и это сохранение не учитывает, что оружие было начитерено.
    Не хотите постоянно проверять обновления моих скриптов?
    Подключите его последним, после всех остальных
    Nexius's Update Checker

 

 

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

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