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

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

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

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

Античит

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

Felar.Exe

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

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

PHP:
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;
            }
        }
Выдача оружия:

PHP:
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;
}
Подскажите, какую проверку нужно добавить,спасибо.
 
Последнее редактирование модератором:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу