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

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

    Правильна ли созданна система Анти БанниХоп

    PHP код:
    forward AntiBH(playerid); 
    PHP код:
    #define PRESSED(%0) \
        
    (((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0))) 
    PHP код:
        if(PRESSEDKEY_JUMP ) && newkeys KEY_SPRINT)
        {
            if(!
    IsPlayerInAnyVehicle(playerid))
            {
                
    ApplyAnimationplayerid"PED""KO_skid_back"4.10000);
                
    SetTimerEx("AntiBH"5000"d"playerid);
            }
            return 
    1;
        } 
    PHP код:
    public AntiBH(playerid) return ApplyAnimationplayerid"PED""getup_front"4.10000); 

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

    Статус
    Оффлайн
    Регистрация
    19.04.2014
    Адрес
    Уфа, Россия
    Сообщений
    319
    Репутация:
    52 ±
    При падении с высокой высоты используя вашу систему Анти Бани хоп можно багоюзить, используя клавиши KEY_JUMP, KEY_SPRINT прыгая с высоты урон персонажу не будет наноситься, так как используеться анимация Анти Бани хоп.

  3. Пользователь сказал cпасибо:
    denis01 (03.09.2014)
  4. #3
    Аватар для denis01
    Пользователь

    Статус
    Оффлайн
    Регистрация
    17.05.2014
    Сообщений
    70
    Репутация:
    0 ±
    А сама то команда созданна правильно?? кроме этого больше никаких проблем не будет???

  5. #4
    Аватар для denis01
    Пользователь

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

  6. #5
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Лучше уж тогда проверять анимацию прыжка + кнопку и уже на основе этого делать проверку. И массив нужен, который будет отвечать за то, чтоб по 500 таймеров игроки не спамили.
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

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

    Статус
    Оффлайн
    Регистрация
    17.05.2014
    Сообщений
    70
    Репутация:
    0 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Лучше уж тогда проверять анимацию прыжка + кнопку и уже на основе этого делать проверку. И массив нужен, который будет отвечать за то, чтоб по 500 таймеров игроки не спамили.
    PHP код:
    forward AntiBH(playerid); 
    PHP код:
    #define PRESSED(%0) \ 
        
    (((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0))) 
    PHP код:
        if(PRESSEDKEY_JUMP ) && newkeys KEY_SPRINT
        { 
            if(!
    IsPlayerInAnyVehicle(playerid)  && GetPVarInt(playerid"Time") == 0)
            { 
                
    ApplyAnimationplayerid"PED""KO_skid_back"4.10000); 
                
    SetPVarInt(playerid"Time"1);
                
    SetTimerEx("AntiBH"5000"d"playerid); 
            } 
            return 
    1
        } 
    PHP код:
    public AntiBH(playerid
    {
        
    ApplyAnimationplayerid"PED""getup_front"4.10000); 
        
    DeletePVar(playerid"Time");    
        return 
    1;

    Так?

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

    Статус
    Оффлайн
    Регистрация
    07.03.2014
    Сообщений
    331
    Репутация:
    47 ±
    Цитата Сообщение от denis01 Посмотреть сообщение
    PHP код:
    forward AntiBH(playerid); 
    PHP код:
    #define PRESSED(%0) \ 
        
    (((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0))) 
    PHP код:
        if(PRESSEDKEY_JUMP ) && newkeys KEY_SPRINT
        { 
            if(!
    IsPlayerInAnyVehicle(playerid)  && GetPVarInt(playerid"Time") == 0)
            { 
                
    ApplyAnimationplayerid"PED""KO_skid_back"4.10000); 
                
    SetPVarInt(playerid"Time"1);
                
    SetTimerEx("AntiBH"5000"d"playerid); 
            } 
            return 
    1
        } 
    PHP код:
    public AntiBH(playerid
    {
        
    ApplyAnimationplayerid"PED""getup_front"4.10000); 
        
    DeletePVar(playerid"Time");    
        return 
    1;

    Так?
    Сказали ведь без таймеров.
    http://wiki.sa-mp.com/wiki/GetPlayerAnimationIndex
    "Власть, кровь, няш-мяш, кровь, власть, Крым наш!" - (c) Наталья Поклонская.

    Критик должен быть готов и способен в любой момент и по первому требованию занять место критикуемого им и выполнять его дело продуктивно и компетентно. В противном случае критика превращается в наглую, самодовлеющую силу и становится тормозом на пути прогресса. (с) AXE

  10. Пользователь сказал cпасибо:
    denis01 (08.09.2014)
  11. #8
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    А если и с таймером, то точно не на pVar
    PHP код:
    #define PRESSED(%0) (((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))
    new anti_bh_time[MAX_PLAYERS char];


    if(
    PRESSEDKEY_JUMP ) && newkeys KEY_SPRINT

        if(!
    IsPlayerInAnyVehicle(playerid)  && anti_bh_time{playerid} == 0)
        { 
            
    ApplyAnimationplayerid"PED""KO_skid_back"4.10000); 
            
    anti_bh_time{playerid} = 1;
            
    SetTimerEx("AntiBH"5000"d"playerid); 
         } 
        return 
    1



    forward AntiBH(playerid);  
    public 
    AntiBH(playerid
    {
        
    ApplyAnimationplayerid"PED""getup_front"4.10000); 
        
    anti_bh_time{playerid} = 0;  
        return 
    1;

    Но так вы всё равно не исправите баг с тем, когда люди будут использовать ваш фикс при падении с высоты и выживать

    - - - Добавлено - - -

    А с отловом индексов код будет выглядеть как-то так
    PHP код:
    switch(GetPlayerAnimationIndex(playerid))
    {
        case 
    119511961197:
        {
            
    ClearAnimations(playerid0);
            
    ApplyAnimationplayerid"PED""KO_skid_back"4.10000);
            
    SetTimerEx("AntiBH"5000"d"playerid);
            return 
    1;
        }

    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  12. 2 пользователя(ей) сказали cпасибо:
    denis01 (08.09.2014) underwoker (08.09.2014)
  13. #9
    Аватар для denis01
    Пользователь

    Статус
    Оффлайн
    Регистрация
    17.05.2014
    Сообщений
    70
    Репутация:
    0 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    А если и с таймером, то точно не на pVar
    PHP код:
    #define PRESSED(%0) (((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))
    new anti_bh_time[MAX_PLAYERS char];


    if(
    PRESSEDKEY_JUMP ) && newkeys KEY_SPRINT

        if(!
    IsPlayerInAnyVehicle(playerid)  && anti_bh_time{playerid} == 0)
        { 
            
    ApplyAnimationplayerid"PED""KO_skid_back"4.10000); 
            
    anti_bh_time{playerid} = 1;
            
    SetTimerEx("AntiBH"5000"d"playerid); 
         } 
        return 
    1



    forward AntiBH(playerid);  
    public 
    AntiBH(playerid
    {
        
    ApplyAnimationplayerid"PED""getup_front"4.10000); 
        
    anti_bh_time{playerid} = 0;  
        return 
    1;

    Но так вы всё равно не исправите баг с тем, когда люди будут использовать ваш фикс при падении с высоты и выживать

    - - - Добавлено - - -

    А с отловом индексов код будет выглядеть как-то так
    PHP код:
    switch(GetPlayerAnimationIndex(playerid))
    {
        case 
    119511961197:
        {
            
    ClearAnimations(playerid0);
            
    ApplyAnimationplayerid"PED""KO_skid_back"4.10000);
            
    SetTimerEx("AntiBH"5000"d"playerid);
            return 
    1;
        }

    Спасибо большое

  14. #10
    Аватар для OKStyle
    Заблокирован

    Статус
    Оффлайн
    Регистрация
    12.05.2013
    Сообщений
    205
    Репутация:
    49 ±
    PHP код:
    if(newkeys KEY_JUMP && newkeys KEY_SPRINT)
    {
        if(!
    IsPlayerInAnyVehicle(playerid)) return ApplyAnimation(playerid"PED""getup_front"4.0000001);

    И добавить проверку на ускорение по z.

 

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

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

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

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

Ваши права

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