Лучшие комментаторыЛучшие пользователи Популярные темы Недавние ответы
  • JR
  • Комментариев: 16
  • Luis_Lopez
  • Комментариев: 4
  • эльсанчик
  • Комментариев: 3
  • 4еРт
  • Комментариев: 3
  • Vadi4
  • Комментариев: 3
  • JR
  • Ответов: 100
  • Luis_Lopez
  • Ответов: 71
  • 4еРт
  • Ответов: 47
  • Turgenev
  • Ответов: 37
  • Z0_oM_er
  • Ответов: 29
  • GTA-TesJin Server
  • (30)
  • Вопрос-Ответ по скри...
  • (28)
  • West Coast Role Play
  • (17)
  • [GM] Samp Role Play[...
  • (16)
  • [FS]Выборы губернато...
  • (14)
  • Помогите Пожалуйсто ...
  • (0)
  • vidavitrual
  • (1)
  • [FAQ] Делаем дома на...
  • (0)
  • SA-MP 0.3c R3-R5 Обн...
  • (0)
  • GTA Servers Monitori...
  • (1)
    [ Новое на форуме · Участники проекта · Правила форума · Поиск · RSS ]
    • Страница 1 из 1
    • 1
    Модератор форума: JR  
    [FAQ] Делаем антибаннихоп на сервере
    JRДата: Пятница, 08.07.2011, 18:36 | Сообщение # 1
    Элитный юзер






    Группа: Администраторы
    Сообщений: 100
    Репутация: 8
    Статус:
    Делаем простой анти-баннихоп:
    Данный анти-биннихоп не дает совершить прыжок с нажатой кнопкой SHIFT(спринт), прыгать можно, но не разганясь. Тем самым игрокам будет не выгодно баннихопить. Но есть плохая сторона, эту систему можно обойти.

    1. Находим все ваши #define в моде и добавляем к ним еще один:
    Quote
    #define PRESSED(%0) (((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))


    2. После, ищем в моде паблик OnPlayerKeyStateChange и добавляем в него:
    Quote
    if(PRESSED(KEY_JUMP | KEY_SPRINT) && (GetPlayerState(playerid) != 2))
    {
    ClearAnimations(playerid);
    }


    Более усложненная версия анти-баннихопа:
    Этот анти-баннихоп работает сложновато, но его обойти не как. Огромный минус в том, что он замораживает баннихопера, тем самым начинает раздрожать, и не все смиряются с этим.

    1. В самом начале, ко всем new приписываем:
    Quote
    new BunnyHoppingTime[MAX_PLAYERS];
    new BunnyHoppingTutTime[MAX_PLAYERS];
    forward AntiBunnyHop();


    2. После ищем OnPlayerConnect и кидаем к ним:
    Quote
    BunnyHoppingTime[playerid]= 0;
    BunnyHoppingTutTime[playerid] = 0;


    3. Дальше находим паблик с OnGameModeInit и кидаем туда:
    Quote
    SetTimer("AntiBunnyHop",1000,1);


    4. Так же добавляем в паблик OnPlayerKeyStateChange, вот это:
    Quote
    if(newkeys & KEY_JUMP || (newkeys & KEY_SPRINT && newkeys & KEY_JUMP))
    {
    if(!IsPlayerInAnyVehicle(playerid))
    {
    if(BunnyHoppingTime[playerid] > 15)
    {
    BunnyHoppingTutTime[playerid] = 5; // 5 - на сколько будет замораживать игрока
    TogglePlayerControllable(playerid,0);
    SendClientMessage(playerid,COLOR_WHITE,"* Баннихоп заприщен, тебя замарозило на 5 секунд!");
    }
    BunnyHoppingTime[playerid] += 5;
    }
    }


    5. Добавляем в самый конец мода еще один паблик:
    Quote
    public AntiBunnyHop()
    {
    for(new i=0;i {
    if(!IsPlayerConnected(i))
    {
    continue;
    }
    if(BunnyHoppingTutTime[i] > 0)
    {
    BunnyHoppingPunTime[i] --;
    if(BunnyHoppingTutTime[i] == 0)
    {
    TogglePlayerControllable(i,1);
    }
    }
    }
    return 1;
    }
     
    • Страница 1 из 1
    • 1
    Поиск:


    SAMPFORYOU.ru © 2010-2011 Хостинг от uCoz