Заказать игровой сервер Контакты (заказать плагин/исправить ошибки/другое) Пожертвовать Поиск

[ вход ]
[ последние сообщения ]

  • Страница 1 из 1
  • 1
Импульс
panorama Дата: Вторник, 09.07.2013, 11:20:20 | Сообщение # 1
Сообщений: 203
Репутация: 2 [ +/- ]
Здравствуйте !
Подскажите как можно отследить именно зажатие кнопки mouse1
Вот мои мысли
Код
public Action:OnPlayerRunCmd(client, &buttons, &impulse, Float:vel[3], Float:angles[3], &weapon)
{

     if (buttons & IN_ATTACK1)
     {
      buttons &= ~IN_ATTACK1;
      return Plugin_Changed;
{
/// Функция / Но мне кажется что я намудрил  )
}
       
     }

  return Plugin_Continue;  
}
 
ThRunningMan Дата: Вторник, 09.07.2013, 17:52:49 | Сообщение # 2
Сообщений: 140
Репутация: 12 [ +/- ]
IN_ATTACK без единицы это первое
и как понять зажатие, просто лови событие что кнопка 1 нажата, я так понял ты хочешь сделать типо накопителя энергии, по длительности удерживания мыши?
 
panorama Дата: Четверг, 11.07.2013, 16:33:21 | Сообщение # 3
Сообщений: 203
Репутация: 2 [ +/- ]
Нет я просто хочу сделать ускорение во время зажатия mouse1 (Импульс) :D
Ладно тогда другой вопрос как отловить что игрок отпустил кнопку ?

Добавлено (11.07.2013, 16:33:21)
---------------------------------------------
Ну кто нибудь знает как решить проблему ?

 
TEIN Дата: Четверг, 11.07.2013, 16:41:21 | Сообщение # 4
Сообщений: 563
Репутация: 78 [ +/- ]
if (buttons & IN_ATTACK1) - зажата
else - не зажата
 
_wS_ Дата: Четверг, 11.07.2013, 18:02:36 | Сообщение # 5
Код
new bool:g_Hold[MAXPLAYERS + 1];

public Action:OnPlayerRunCmd(client, &buttons, &impulse, Float:vel[3], Float:angles[3], &weapon)
{
    if (buttons & IN_ATTACK)
    {
       if (!g_Hold[client])
       {
          // зажал
          g_Hold[client] = true;
       }
    }
    else if (g_Hold[client])
    {
       // отпустил
       g_Hold[client] = false;
    }
}
 
panorama Дата: Четверг, 11.07.2013, 18:30:53 | Сообщение # 6
Сообщений: 203
Репутация: 2 [ +/- ]
Цитата (_wS_)
new bool:g_Hold[MAXPLAYERS + 1];

public Action:OnPlayerRunCmd(client, &buttons, &impulse, Float:vel[3], Float:angles[3], &weapon)
{
    if (buttons & IN_ATTACK)
    {
       if (!g_Hold[client])
       {
          // зажал
          g_Hold[client] = true;
       }
    }
    else if (g_Hold[client])
    {
       // отпустил
       g_Hold[client] = false;
    }
}

Спасибо за ответ , но дабы этот урок был не бесполезен , скажи пожалуйста :
Код
public Action:OnPlayerRunCmd

Эта функция проверяет каждую секунду любые нажатия клавиш пользователя ?
 
TEIN Дата: Четверг, 11.07.2013, 18:48:15 | Сообщение # 7
Сообщений: 563
Репутация: 78 [ +/- ]
ну так проверь
new i = 0;

public Action:OnPlayerRunCmd(client, &buttons, &impulse, Float:vel[3], Float:angles[3], &weapon)
PrintToServer("%d", i++);
 
panorama Дата: Четверг, 11.07.2013, 20:10:27 | Сообщение # 8
Сообщений: 203
Репутация: 2 [ +/- ]
Цитата (TEIN)
ну так проверь
new i = 0;

public Action:OnPlayerRunCmd(client, &buttons, &impulse, Float:vel[3], Float:angles[3], &weapon)
PrintToServer("%d", i++);

Прикольно )
И еще один вопрос
#define IN_ALT1 (1 << 14)
#define IN_ALT2 (1 << 15)
Это обычные ALT кнопки ?
 
TEIN Дата: Пятница, 12.07.2013, 06:11:35 | Сообщение # 9
Сообщений: 563
Репутация: 78 [ +/- ]
Проверь))
 
panorama Дата: Суббота, 13.07.2013, 13:31:14 | Сообщение # 10
Сообщений: 203
Репутация: 2 [ +/- ]
Цитата (TEIN)
Проверь))

В том то и дело проверяю не работает !
public Action:OnPlayerRunCmd(client, &buttons, &impulse, Float:vel[3], Float:angles[3])
{
if (client > 0)
{

if (buttons & IN_ALT1)
{
PrintToChat(client, "\x03Ля ля ля :D.");
}
}

return Plugin_Continue;
}

Добавлено (13.07.2013, 13:31:14)
---------------------------------------------
Ну подскажите пожалуйста )

 
  • Страница 1 из 1
  • 1
Поиск: