Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Страница 1 из 2 1 2 ПоследняяПоследняя
Показано с 1 по 10 из 18
  1. #1
    Аватар для Redsan
    Пользователь

    Статус
    Оффлайн
    Регистрация
    07.06.2016
    Адрес
    Minsk, Belarus
    Сообщений
    78
    Репутация:
    15 ±

    Античит на оружие

    Необходимо написать античит на оружие. С помощью каких функций проверять сделанное с помощью читов оружие/патроны?

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

    Статус
    Оффлайн
    Регистрация
    29.05.2016
    Сообщений
    144
    Репутация:
    11 ±
    При выдаче оружия записываешь его в массив, в секундном таймере проверяешь оружия игрока и оружие в массиве, Profit.

  3. Пользователь сказал cпасибо:
    Redsan (24.09.2016)
  4. #3
    Аватар для ziggi
    Проверенный

    Статус
    Оффлайн
    Регистрация
    14.05.2015
    Сообщений
    1,181
    Репутация:
    790 ±
    Главное учти, что GetPlayerWeaponData обновляется недостаточно часто, поэтому для античита лучше использовать GetPlayerWeapon.
    UPD: То есть не обновляются не часто, а иногда приходят некорректные. Повреждения замечаются при выдаче/смене оружия и входе в Esc или в транспорт.
    Последний раз редактировалось ziggi; 24.09.2016 в 21:56.

  5. Пользователь сказал cпасибо:
    Redsan (24.09.2016)
  6. #4
    Аватар для Redsan
    Пользователь

    Статус
    Оффлайн
    Регистрация
    07.06.2016
    Адрес
    Minsk, Belarus
    Сообщений
    78
    Репутация:
    15 ±
    Стоит ли сверять значение патронов в массиве и на руках с помощью автовызываемой функции OnPlayerWeaponShot? Будут ли ложные срабатывания?
    Последний раз редактировалось Redsan; 24.09.2016 в 23:45.

  7. #5
    Аватар для ziggi
    Проверенный

    Статус
    Оффлайн
    Регистрация
    14.05.2015
    Сообщений
    1,181
    Репутация:
    790 ±
    Цитата Сообщение от Redsan Посмотреть сообщение
    Стоит ли сверять значение патронов в массиве и на руках с помощью автовызываемой функции OnPlayerWeaponShot? Будут ли ложные срабатывания?
    OnPlayerWeaponShot вызывается всегда когда надо (хотя иногда не вызывается для снайперки, но это не факт, нужно тестировать), поэтому да, его безопасно использовать.

  8. Пользователь сказал cпасибо:
    Redsan (25.09.2016)
  9. #6
    Аватар для Redsan
    Пользователь

    Статус
    Оффлайн
    Регистрация
    07.06.2016
    Адрес
    Minsk, Belarus
    Сообщений
    78
    Репутация:
    15 ±
    Цитата Сообщение от ziggi Посмотреть сообщение
    OnPlayerWeaponShot вызывается всегда когда надо (хотя иногда не вызывается для снайперки, но это не факт, нужно тестировать), поэтому да, его безопасно использовать.
    Также судя по багрепортам имеются проблемы со скорострельным оружием. Буду тестировать, спасибо.

  10. #7
    Аватар для vovandolg
    Пользователь

    Статус
    Оффлайн
    Регистрация
    17.11.2015
    Адрес
    Stavropol
    Сообщений
    1,369
    Репутация:
    113 ±
    Цитата Сообщение от ziggi Посмотреть сообщение
    Главное учти, что GetPlayerWeaponData обновляется недостаточно часто, поэтому для античита лучше использовать GetPlayerWeapon.
    UPD: То есть не обновляются не часто, а иногда приходят некорректные. Повреждения замечаются при выдаче/смене оружия и входе в Esc или в транспорт.
    И что там не так? У меня античит на оружие с помощью этой функции работает как часы
    А если смешать с OPWS будет ещё и анти беск. патроны читеры крик души испускают
    [Anticheat]___Invisible Fly Hack
    [Anticheat]____Weapon/Ammo Hack
    [Function]______ResetPlayerWeaponSlot
    [Function]_______FIX_SetPlayerAmmo
    [ServerMod]______TDM | Zombie Apokalypse

  11. #8
    Аватар для ziggi
    Проверенный

    Статус
    Оффлайн
    Регистрация
    14.05.2015
    Сообщений
    1,181
    Репутация:
    790 ±
    Цитата Сообщение от vovandolg Посмотреть сообщение
    И что там не так? У меня античит на оружие с помощью этой функции работает как часы
    А если смешать с OPWS будет ещё и анти беск. патроны читеры крик души испускают
    На одной из предыдущих версиях я лично наблюдал эту проблему. Конечно, это могли исправить, но я в этом что-то не уверен. Хотя можно снова протестировать.

  12. #9
    Аватар для vovandolg
    Пользователь

    Статус
    Оффлайн
    Регистрация
    17.11.2015
    Адрес
    Stavropol
    Сообщений
    1,369
    Репутация:
    113 ±
    Цитата Сообщение от ziggi Посмотреть сообщение
    На одной из предыдущих версиях я лично наблюдал эту проблему. Конечно, это могли исправить, но я в этом что-то не уверен. Хотя можно снова протестировать.
    Не знаю что там было, но осталась одна фигня, когда умираешь оружие иногда(прям вот не понятно что не так делаю) не полностью обнуляет,
    я это фиксанул стандартным сбросом всего оружия в паблике смерти, и ложных показаний больше я не видел...

    Не полностью обнуляет это типо, оружия нету, а в GPWD показывает что оно на месте..
    [Anticheat]___Invisible Fly Hack
    [Anticheat]____Weapon/Ammo Hack
    [Function]______ResetPlayerWeaponSlot
    [Function]_______FIX_SetPlayerAmmo
    [ServerMod]______TDM | Zombie Apokalypse

  13. #10
    Аватар для Redsan
    Пользователь

    Статус
    Оффлайн
    Регистрация
    07.06.2016
    Адрес
    Minsk, Belarus
    Сообщений
    78
    Репутация:
    15 ±
    Цитата Сообщение от ziggi Посмотреть сообщение
    На одной из предыдущих версиях я лично наблюдал эту проблему. Конечно, это могли исправить, но я в этом что-то не уверен. Хотя можно снова протестировать.
    Около часа пытался добиться получения некорректных данных с помощью функции GetPlayerWeaponData, но все безуспешно.
    Выдавал и забирал оружие, стрелял, садился в транспорт, уходил в афк.
      Открыть/закрыть

    PHP код:
    CMD:giveweapons(playeridparams[])
    {
        
    GivePlayerWeapon(playerid11); // Кастет
        
    GivePlayerWeapon(playerid22random(100)); // Кольт-45
        
    GivePlayerWeapon(playerid25random(100)); // Дробовик
        
    GivePlayerWeapon(playerid28random(100)); // Мак-10
        
    GivePlayerWeapon(playerid30random(100)); // АК-47
        
    GivePlayerWeapon(playerid33random(100)); // Деревенское Ружье
        
    GivePlayerWeapon(playerid35random(100)); // Гранатомет
        
    GivePlayerWeapon(playerid39random(100)); // Радиоупр.Взрывпакет
        
    GivePlayerWeapon(playerid42random(100)); // Огнетушитель
        
    GivePlayerWeapon(playerid101); // Пурп.Фаллоимитатор
        
    GivePlayerWeapon(playerid441); // Очки ноч. видения
        
    GivePlayerWeapon(playerid401); // Детонатор

        
    SendClientMessage(playerid, -1"Оружие выдано!");

        return 
    1;
    }

    CMD:resetweapons(playeridparams[])
    {
        
    ResetPlayerWeapons(playerid);

        
    SendClientMessage(playerid, -1"Оружие изъято!");

        return 
    1;
    }

    CMD:test(playeridparams[])
    {
        
    SetTimerEx("TestTimer"1000true"i"playerid);
        
    SendClientMessage(playerid, -1"Тест запущен!");

        return 
    1;
    }

    forward TestTimer(playerid);
    public 
    TestTimer(playerid)
    {
        new
            
    weapon,
            
    ammo,
            
    string[64];

        for (new 
    013i++)
        {
            
    GetPlayerWeaponData(playeridiweaponammo); 
            
    format(string,sizeof(string),"Слот: %i, ID оружия: %i, Количество патронов: %i"iweaponammo);
            
    SendClientMessage(playerid, -1string);
        }



    Есть какие-то идеи по поводу того как можно добиться вывода некорректных данных?
    p.s. ушел писать автоматический тест.

 

 
Страница 1 из 2 1 2 ПоследняяПоследняя

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

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

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

Ваши права

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