Страница 1 из 3 123 ПоследняяПоследняя
Показано с 1 по 10 из 23

Тема: AntiWeaponCheat

  1. #1
    кот Аватар для Ленивый
    Регистрация
    12.10.2011
    Адрес
    Балаково
    Возраст
    33
    Сообщений
    888
    Репутация: 102

    Звание: скоро придёт к известности

    AntiWeaponCheat

    Добрый день.
    Начал замечать большое количество античитов которые пускают циклы чуть ли ни по 10 раз в сек.
    Решил сделать свой античит почти полностью на стоковых колбеках.

    Весь инклуд состоит из 81 строчки, таймеров и OnPlayerUpdate не используется.

    /*------------------------------------
    by .Alp. [Alpano]
    special for PAWNO.ru
    [Авторские права защищены грубой физической силой]
    ------------------------------------*/
    #include <a_samp>
    /*------------------------------------
    new's
    ------------------------------------*/
    new bool:WeaponsClosed[MAX_PLAYERS][47];
    /*------------------------------------
    forward's
    ------------------------------------*/
    forward AntyWeaponCheck(playerid,weaponid);
    forward OnPlayerWeaponCheat(playerid);
    forward ac_OnPlayerStateChange(playerid,newstate,oldstate);
    forward ac_OnPlayerDeath(playerid, killerid, reason);
    forward ac_OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid);
    forward ac_OnPlayerStateChange(playerid,newstate,oldstate);
    forward ac_OnPlayerKeyStateChange(playerid, newkeys, oldkeys);
    /*------------------------------------
    funktion's
    ------------------------------------*/
    stock ac_GivePlayerWeapon(playerid, weaponid,ammo){
    WeaponsClosed[playerid][weaponid] = true;
    return GivePlayerWeapon(playerid, weaponid,ammo);
    }
    stock ac_ResetPlayerWeapons(playerid){
    for(new w; w < 47; w++)
    WeaponsClosed[playerid][w] = false;
    return ResetPlayerWeapons(playerid);
    }
    /*------------------------------------
    public's
    ------------------------------------*/
    public AntyWeaponCheck(playerid,weaponid)
    {
    if(!WeaponsClosed[playerid][weaponid])
    CallLocalFunction("OnPlayerWeaponCheat", "d", playerid);
    return 1;
    }
    public OnPlayerStateChange(playerid,newstate,oldstate){
    if(newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER){
    new model = GetVehicleModel(GetPlayerVehicleID(playerid));
    switch(model){
    case 592,577,511,512,520,593,553,476,519,460,513,548,425,417,487,488,497,563,447,469: WeaponsClosed[playerid][46] = true;
    case 596,597,598,599: WeaponsClosed[playerid][25] = true;
    case 457: WeaponsClosed[playerid][2] = true;
    }
    }
    return ac_OnPlayerStateChange(playerid,newstate,oldstate);
    }
    public OnPlayerDeath(playerid, killerid, reason){
    if(killerid != INVALID_PLAYER_ID && reason)
    AntyWeaponCheck(killerid,reason);
    return ac_OnPlayerDeath(playerid, killerid, reason);
    }
    public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid){
    if(issuerid != INVALID_PLAYER_ID && weaponid)
    AntyWeaponCheck(issuerid,weaponid);
    return ac_OnPlayerTakeDamage(playerid, issuerid, amount, weaponid);
    }
    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    {
    if (GetPlayerState(playerid) != PLAYER_STATE_DRIVER){
    new waepon = GetPlayerWeapon(playerid);
    if(waepon)
    AntyWeaponCheck(playerid,waepon);
    }else
    SetPlayerArmedWeapon(playerid, 0);
    return ac_OnPlayerKeyStateChange(playerid, newkeys, oldkeys);
    }
    /*------------------------------------
    define's
    ------------------------------------*/
    #define ResetPlayerWeapons ac_ResetPlayerWeapons
    #define GivePlayerWeapon ac_GivePlayerWeapon
    #define OnPlayerDeath ac_OnPlayerDeath
    #define OnPlayerTakeDamage ac_OnPlayerTakeDamage
    #define OnPlayerStateChange ac_OnPlayerStateChange
    #define OnPlayerKeyStateChange ac_OnPlayerKeyStateChange


    Подключение:

    Копируем код из спойлера, вставляем в текстовый документ.
    Обзываем его "a_wc.inc", ну или как Вам удобнее.

    Кидаем в папочку "include" в вашем "PAWNO".

    Открываем GM/FS ставим:
    #include <название_вашего_инклуда>


    Далее идем в конец GM/FS и вставляем паблик:
    public OnPlayerWeaponCheat(playerid){
    new msgcheat[112],name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof(name));
    format(msgcheat,sizeof(msgcheat),"%s спалился с читом на оружие.",name);
    SendClientMessageToAll(-1,msgcheat);
    }


    Готово.

    АЧ толком не тестил, но дыр в нем быть не должно.
    По крайней мере побегать с пушкой он мне не дал.

    Предложения по модернизации приветствуются.

    > Про меня <


  2. #2
    Активный пользователь Аватар для Jason7
    Регистрация
    11.08.2012
    Адрес
    Беларусь
    Сообщений
    1,351
    Репутация: 79

    Звание: скоро придёт к известности

    Re: AntyWeaponCheat

    Норм, надо будет установить и потестить, может всё таки найдутся дыры
    Lua vs Pawn

  3. #3
    кот Аватар для Ленивый
    Регистрация
    12.10.2011
    Адрес
    Балаково
    Возраст
    33
    Сообщений
    888
    Репутация: 102

    Звание: скоро придёт к известности

    Re: AntyWeaponCheat

    Фиксанул стандартную выдачу оружия/парашута/клюшки при выходе из некоторых ТС.
    -----------------------------------
    50 просмотров, 1 отзыв. ну?

    > Про меня <


  4. #4
    Пользователь
    Регистрация
    28.07.2012
    Сообщений
    3
    Репутация: 0

    Звание: пока не определено

    Re: AntyWeaponCheat

    Начал замечать большое количество античитов которые пускают циклы чуть ли ни по 10 раз в сек.
    Ты про меня чтоль?
    Там реализованно цикл в 20млс только из-за каллбеков OnPlayer(Weapon/Ammo)Change, если их убрать - то можно и в апдейт и в 1 секундный таймер на ваше усмотрение)

  5. #5
    кот Аватар для Ленивый
    Регистрация
    12.10.2011
    Адрес
    Балаково
    Возраст
    33
    Сообщений
    888
    Репутация: 102

    Звание: скоро придёт к известности

    Re: AntyWeaponCheat

    Цитата Сообщение от Incognito_ Посмотреть сообщение
    Ты про меня чтоль?
    Там реализованно цикл в 20млс только из-за каллбеков OnPlayer(Weapon/Ammo)Change, если их убрать - то можно и в апдейт и в 1 секундный таймер на ваше усмотрение)
    У меня практически таймеров нет. Единственное, раз в секунду сбасывает оружие на 1 слот.

    > Про меня <


  6. #6
    Nothing Аватар для Privies
    Регистрация
    25.03.2011
    Адрес
    Рига
    Сообщений
    2,978
    Репутация: 411

    Звание: - очень-очень хороший человек

    Re: AntyWeaponCheat

    На будущее Anti на английском. Переименовать тему?

  7. #7
    кот Аватар для Ленивый
    Регистрация
    12.10.2011
    Адрес
    Балаково
    Возраст
    33
    Сообщений
    888
    Репутация: 102

    Звание: скоро придёт к известности

    Re: AntyWeaponCheat

    Цитата Сообщение от Privies Посмотреть сообщение
    На будущее Anti на английском. Переименовать тему?
    упс) давай, было бы не плохо

    > Про меня <


  8. #8
    Активный пользователь Аватар для Argument
    Регистрация
    06.11.2012
    Адрес
    δδδδδδδδδδδδδδδδ
    Возраст
    54
    Сообщений
    780
    Репутация: 118

    Звание: скоро придёт к известности

    Re: AntyWeaponCheat

    Хорошая работа!
    Мониторинг форумов (статистика за сегодня)
    Pawno.su:
    Lightcode.ru:
    Pro-pawn.ru:
    Pawno-info.ru:

  9. #9
    Проверенный Аватар для Burton
    Регистрация
    12.03.2011
    Сообщений
    1,315
    Репутация: 147

    Звание: скоро придёт к известности

    Re: AntyWeaponCheat

    Цитата Сообщение от Alpano Посмотреть сообщение
    упс) давай, было бы не плохо
    Готово.
    о́

  10. #10
    кот Аватар для Ленивый
    Регистрация
    12.10.2011
    Адрес
    Балаково
    Возраст
    33
    Сообщений
    888
    Репутация: 102

    Звание: скоро придёт к известности

    Re: AntiWeaponCheat

    update.
    Убрал таймер и профиксил 1 багу.

    > Про меня <


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

Ваши права

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