Античит
#21

У меня вот такая конструкция.
PHP код:
stock const WeaponSlot[47]=
{
    
0,0,1,1,1,1,1,1,
    
1,1,10,10,10,10,10,10,
    
8,8,8,0,0,0,2,2,
    
2,3,3,3,4,4,5,5,
    
4,6,6,7,7,7,7,8,
    
12,9,9,9,11,11,11
}; 
PHP код:
    new ammo,weaponid=GetPlayerWeapon(playerid);
    new 
k=WeaponSlot[weaponid];
    if(
weaponid != Weapons[playerid]{k})
    {
        if(
weaponid != AntiWeapons[playerid]{k})
        {
             if(
AntiWeaponsCheck[playerid]{k} == 0)//таймер
            
{
                
//OnPlayerCommandText(playerid, "/kill");
                
printf("Weapone %d %d",playerid,weaponid);
            }
            return 
0;
        }
        else
        {
        }
    }
    if(
15 weaponid 44)
    {
        
GetPlayerWeaponData(playeridkweaponidammo);
        if(
ammo Ammo[playerid][k])
        {
            if(
ammo AntiAmmo[playerid][k])
            {
                if(
AntiAmmoCheck[playerid]{k} == 0)//таймер
                
{
                    
//OnPlayerCommandText(playerid, "/kill");
                    
print("Ammo");
                }
                return 
0;
            }
            else
            {
            }
        }
        else
        if(
ammo Ammo[playerid][k])
        {
        }
    } 
Reply
#22

работает?
Quote:
pawn Код:
if(15 < weaponid < 44)
Разве так можно?
Reply
#23

можно :P
Reply
#24

Ты когда даешь игроку оружие, записываешь его ид в Weapons[playerid]{k} и в AntiWeapons[playerid]{k}?
Reply
#25

Quote:
Originally Posted by Ted67
Посмотреть сообщение
Ты когда даешь игроку оружие, записываешь его ид в Weapons[playerid]{k} и в AntiWeapons[playerid]{k}?
Да, там же и
Quote:

AntiWeaponsCheck[playerid]{k}=3;
AntiAmmoCheck[playerid]{k}=3;

AntiWeaponsCheck - нужно уменьшать, в секундный таймер его.
Если оружие не сменилось то игрока поймает на НОП-е. Основная беда это лагеры.
Reply
#26

Quote:
Originally Posted by White_116
Посмотреть сообщение
Да, там же и

AntiWeaponsCheck - нужно уменьшать, в секундный таймер его.
Если оружие не сменилось то игрока поймает на НОП-е. Основная беда это лагеры.
Выходит проверил игрока - присвоил значение 3. Ладно, спасибо, попробую кое что сделать.
Reply
#27

Quote:
Originally Posted by Ted67
Посмотреть сообщение
Выходит проверил игрока - присвоил значение 3. Ладно, спасибо, попробую кое что сделать.
Дал оружие или отнял AntiWeaponsCheck присвоил 3, это задержка для лагеров. Пока от них аукнится.
Reply
#28

Quote:
Originally Posted by White_116
Посмотреть сообщение
Дал оружие или отнял AntiWeaponsCheck присвоил 3, это задержка для лагеров. Пока от них аукнится.
хм, ок спасибо.

p.s. К сожалению не могу поднять репутацию(
Reply
#29

Не стал создавать новую тему; античит иногда ложно срабатывает когда садишься в транспорт. Взял дубину, сел в транспорт (пассажир), античит сработал и пишет что у меня оружие ид32 (в руках, хотя там ничего нет):
Quote:

[AntiCheat] Player Test_Test [0] weapon: 32.

После срабатывания античита, я обнуляю оружие у игрока; моя дубинка исчезла, но античит продолжает флудить, что у меня оружие ид32. Такое бывает редко, в чем может быть проблема? Заранее благодарю. Код проверки:

pawn Код:
new ammo,w_id;
    for(new slot;slot!=13;slot++)
    {
        GetPlayerWeaponData(i,slot,w_id,ammo);
        if(w_id!=AN_Weapon[i][slot] && w_id!=0)
        {
            if(AN_WeaponCheck[i]{slot}==0)
            {
                format(SQL,80,"[AntiCheat] Player %s [%d] weapon: %d. ",Name(i),i,w_id),SendAdminMessage(SQL);
                AN_ResetPlayerWeapons(i);
                return 1;
            }
            else AN_WeaponCheck[i]{slot}--;
        }
        if(15<w_id<44)
        {
            if(ammo>AN_Ammo[i][slot])
            {
                if(AN_AmmoCheck[i]{slot}==0)
                {
                    format(STR,80,"[AntiCheat] Player %s [%d] ammo: %d / %d .",Name(i),i,ammo,AN_Ammo[i][slot]),SendAdminMessage(SQL);
                    AN_ResetPlayerWeapons(i);
                    return 1;
                }
                else AN_AmmoCheck[i]{slot}--;
            }
        }
    }
Проверяется в секундном таймере.
Reply
#30

Quote:
Originally Posted by Ted67
Посмотреть сообщение
Не стал создавать новую тему; античит иногда ложно срабатывает когда садишься в транспорт. Взял дубину, сел в транспорт (пассажир), античит сработал и пишет что у меня оружие ид32 (в руках, хотя там ничего нет):

После срабатывания античита, я обнуляю оружие у игрока; моя дубинка исчезла, но античит продолжает флудить, что у меня оружие ид32. Такое бывает редко, в чем может быть проблема? Заранее благодарю. Код проверки:

pawn Код:
new ammo,w_id;
    for(new slot;slot!=13;slot++)
    {
        GetPlayerWeaponData(i,slot,w_id,ammo);
        if(w_id!=AN_Weapon[i][slot] && w_id!=0)
        {
            if(AN_WeaponCheck[i]{slot}==0)
            {
                format(SQL,80,"[AntiCheat] Player %s [%d] weapon: %d. ",Name(i),i,w_id),SendAdminMessage(SQL);
                AN_ResetPlayerWeapons(i);
                return 1;
            }
            else AN_WeaponCheck[i]{slot}--;
        }
        if(15<w_id<44)
        {
            if(ammo>AN_Ammo[i][slot])
            {
                if(AN_AmmoCheck[i]{slot}==0)
                {
                    format(STR,80,"[AntiCheat] Player %s [%d] ammo: %d / %d .",Name(i),i,ammo,AN_Ammo[i][slot]),SendAdminMessage(SQL);
                    AN_ResetPlayerWeapons(i);
                    return 1;
                }
                else AN_AmmoCheck[i]{slot}--;
            }
        }
    }
Проверяется в секундном таймере.
у тебя тупо не успевает обнулить все слоты, попробуй тормознуть таймер при обнулении, и запустить снова через 3-5 сек
Reply
#31

во время падения сколько z равно?
Reply
#32

Интересно как выглядит со стороны читера изменение его координат, сервер по ним синхронизирует его позицию. И если он изменил свои координаты, значит синхронизация с другими объектами для него будет неверной и он никого не увидит.
Reply
#33

Quote:
Originally Posted by Stepashka
View Post
Интересно как выглядит со стороны читера изменение его координат, сервер по ним синхронизирует его позицию. И если он изменил свои координаты, значит синхронизация с другими объектами для него будет неверной и он никого не увидит.
Если речь о чите, который изменяет PlayerVelocity, то у читера вообще ничего не происходит. То есть, он просто у себя на месте стоит, а у других крушит все.
Reply
#34

Удалите пожалуста, а то попал не туда.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)