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

    Статус
    Оффлайн
    Регистрация
    17.11.2015
    Адрес
    Stavropol
    Сообщений
    1,369
    Репутация:
    113 ±
    Ему мышку надо проверить, а не клавиатуру, GetPlayerKeys отпадает...
    Просто юзер не определился и не написал точно что он хочет чтобы клавиши при нажатии выводили или при зажатии...
    Я дал рабочий пример на нажатие кнопок, но если порыскать по ссылке которую я дал можно сделать и на зажатие
    [Anticheat]___Invisible Fly Hack
    [Anticheat]____Weapon/Ammo Hack
    [Function]______ResetPlayerWeaponSlot
    [Function]_______FIX_SetPlayerAmmo
    [ServerMod]______TDM | Zombie Apokalypse

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

    Статус
    Оффлайн
    Регистрация
    14.05.2015
    Сообщений
    1,181
    Репутация:
    790 ±
    Цитата Сообщение от vovandolg Посмотреть сообщение
    Ему мышку надо проверить, а не клавиатуру, GetPlayerKeys отпадает...
    Кнопки на мыши - это такие же кнопки, как и на клавиатуре, ничего не отпадает.

    Цитата Сообщение от Edward Morra Посмотреть сообщение
    Пример, можно?
    PHP код:
    #define HOLDING_DELAY 300
    new gPreviousKeyTime[MAX_PLAYERS];

    public 
    OnPlayerUpdate(playerid)
    {
        new 
    current_time GetTickCount();

        if (
    current_time >= gPreviousKeyTime[playerid] + HOLDING_DELAY) {
            new 
    keysupdownleftright;
            
    GetPlayerKeys(playeridkeysupdownleftright);

            if (
    keys & (KEY_HANDBRAKE KEY_FIRE)) {
                
    SendClientMessage(playerid, -1"HOLDING");
            }

            
    gPreviousKeyTime[playerid] = current_time;
        }
        return 
    1;


  3. 2 пользователя(ей) сказали cпасибо:
    Edward Morra (30.07.2016) vovandolg (30.07.2016)
  4. #13
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Используя макрос, что имеется в wiki.sa-mp.com, можно отследить момент, когда игрок зажал кнопку и когда отпустил.
    В момент нажатия делаем следующее:
    PHP код:
    SetTimerEx("@___ThisIsTimer"1000false"i"playerid);
    SetPVarInt(playerid"KrytorNazvaniePridymalDa?"1); 
    И вызываемую функцию делаем такой:
    PHP код:
    @___ThisIsTimer(playerid);
    @
    ___ThisIsTimer(playerid)
    {
        if(!
    GetPVarInt(playerid"KrytorNazvaniePridymalDa?")) return 1;
        
    // Тут код, который тебе нужно повторять пока зажаты кнопки
        
    return SetTimerEx("@___ThisIsTimer"1000false"i"playerid);

    А в момент, когда игрок отжал клавиши:
    PHP код:
    DeletePVar(playerid"KrytorNazvaniePridymalDa?"); 
    Это лишь пример. Можно то же самое провернуть, только с зацикленным таймером и KillTimer в момент, когда игрок отпустил клавишу (то бишь, без pVar).

    Общий смысл в том, что когда игрок зажимает клавиши, мы запускаем таймер и повторяем его, пока наш "маячок" активен (pVar равен 1). А как только игрок отпускает клавишу, тушим "маячок" (удаляем pVar), тем самым прерывая работу таймера
    Последний раз редактировалось DeimoS; 29.07.2016 в 19:56.
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

  5. #14
    Аватар для Edward Morra
    Пользователь

    Статус
    Оффлайн
    Регистрация
    06.10.2015
    Сообщений
    83
    Репутация:
    0 ±
    Цитата Сообщение от ziggi Посмотреть сообщение
    Кнопки на мыши - это такие же кнопки, как и на клавиатуре, ничего не отпадает.



    PHP код:
    #define HOLDING_DELAY 300
    new gPreviousKeyTime[MAX_PLAYERS];

    public 
    OnPlayerUpdate(playerid)
    {
        new 
    current_time GetTickCount();

        if (
    current_time >= gPreviousKeyTime[playerid] + HOLDING_DELAY) {
            new 
    keysupdownleftright;
            
    GetPlayerKeys(playeridkeysupdownleftright);

            if (
    keys & (KEY_HANDBRAKE KEY_FIRE)) {
                
    SendClientMessage(playerid, -1"HOLDING");
            }

            
    gPreviousKeyTime[playerid] = current_time;
        }
        return 
    1;

    Лишь нажатие опять палит, но не зажатие...
    Реагирует лишь на зажатие KEY_FIRE
    Последний раз редактировалось Edward Morra; 30.07.2016 в 19:30.

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

    Статус
    Оффлайн
    Регистрация
    17.11.2015
    Адрес
    Stavropol
    Сообщений
    1,369
    Репутация:
    113 ±
    Беру пример с Wiki,
    PHP код:
    new pKeyPress[MAX_PLAYERS]; 

    public 
    OnPlayerKeyStateChange(playeridnewkeysoldkeys)
    {
        if (
    PRESSED(KEY_ACTION)) //так же и для своих клавиш подставь просто
        
    {
            
    pKeyPress[playerid] = 1;
        }
        else if (
    RELEASED(KEY_ACTION)) //так же и для своих клавиш подставь просто
        
    {
            
    pKeyPress[playerid] = 0;
        }
        return 
    1;
    }

    //где то на просторах апдейта
    public UpdateTimer(playerid)
    {
        if (
    pKeyPress[playerid] == 1)
        {
            print(
    "ты KEY_ACTION зажал");
        }

    [Anticheat]___Invisible Fly Hack
    [Anticheat]____Weapon/Ammo Hack
    [Function]______ResetPlayerWeaponSlot
    [Function]_______FIX_SetPlayerAmmo
    [ServerMod]______TDM | Zombie Apokalypse

  7. #16
    Аватар для Edward Morra
    Пользователь

    Статус
    Оффлайн
    Регистрация
    06.10.2015
    Сообщений
    83
    Репутация:
    0 ±
    Цитата Сообщение от vovandolg Посмотреть сообщение
    Беру пример с Wiki,
    PHP код:
    new pKeyPress[MAX_PLAYERS]; 

    public 
    OnPlayerKeyStateChange(playeridnewkeysoldkeys)
    {
        if (
    PRESSED(KEY_ACTION)) //так же и для своих клавиш подставь просто
        
    {
            
    pKeyPress[playerid] = 1;
        }
        else if (
    RELEASED(KEY_ACTION)) //так же и для своих клавиш подставь просто
        
    {
            
    pKeyPress[playerid] = 0;
        }
        return 
    1;
    }

    //где то на просторах апдейта
    public UpdateTimer(playerid)
    {
        if (
    pKeyPress[playerid] == 1)
        {
            print(
    "ты KEY_ACTION зажал");
        }

    Там для одной.
    Пытался также для двух сделать - опять же либо левую зажимаешь проходит, а когда левую и правую то нет....

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

    Статус
    Оффлайн
    Регистрация
    17.11.2015
    Адрес
    Stavropol
    Сообщений
    1,369
    Репутация:
    113 ±
    PHP код:
        if (PRESSED(KEY_HANDBRAKE KEY_FIRE))
        {
            
    pKeyPress[playerid] = 1;
        }
        else if (
    RELEASED(KEY_FIRE KEY_HANDBRAKE))
        {
            
    pKeyPress[playerid] = 0;
        } 
    пытался он...
    [Anticheat]___Invisible Fly Hack
    [Anticheat]____Weapon/Ammo Hack
    [Function]______ResetPlayerWeaponSlot
    [Function]_______FIX_SetPlayerAmmo
    [ServerMod]______TDM | Zombie Apokalypse

 

 
Страница 2 из 2 ПерваяПервая 1 2

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

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

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

Ваши права

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