AMX MOD X
Четверг, 05.12.2024, 01:34:10



Приветствую Вас Гость | RSS
[ Главная ] [ Нужно юзать +USE - AMX Mod X Форум ] [ Регистрация ] [ Вход ]
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]

Вниманию участников! Данный форум теперь является архивом и вскором времени здесь нельзя будет создавать новых тем! Просьба всем для общения и создания новых тем перейти на наш новый форум: http://amxmodx.su/

  • Страница 1 из 1
  • 1
Модератор форума: slogic, AlMod  
Нужно юзать +USE
ZHosTikДата: Воскресенье, 15.11.2009, 01:25:17 | Сообщение # 1
Сержант
Группа: Пользователи
Сообщений: 20
Репутация: 0
Статус: Не в сети
Два класа зомби из [ZP]: zp_zclass_smoker.sma и zp_class_flame.sma. У каждого своё особенное действие.
В первом случае предлогается забиндить +drag или повестись на автобинд. В любом случае, после раунд_старт ваш бинд остаётся прежним => приходится искать удобную и свободную клавишу, а ведь их и так не хватает :(
Во втором - пример для подражания: привязка к IN_USE.
Помогите переделать первый по примеру второго.
Подскажите в чём разница get_user_button(id) и get_user_oldbutton(id)
Где можно использовать содержимое \cstrike\gfx\shell\kb_act.lst
Прикрепления: zp_zclass_smoke.sma (10.3 Kb) · zp_class_flame.sma (14.4 Kb)


Сообщение отредактировал ZHosTik - Воскресенье, 15.11.2009, 01:27:20
 
PomanoBДата: Воскресенье, 15.11.2009, 09:54:21 | Сообщение # 2
Генералиссимус
Группа: Cупер-модеры
Сообщений: 1313
Репутация: 70
Статус: Не в сети
get_user_button - текущие нажатые кнопки
get_user_oldbutton - нажатые в пердыдущем Think'e

Но Е ведь используется и для других целей, неудобно ведь будет


http://romanov4400.mybrute.com
 
ZHosTikДата: Воскресенье, 15.11.2009, 11:51:24 | Сообщение # 3
Сержант
Группа: Пользователи
Сообщений: 20
Репутация: 0
Статус: Не в сети
Quote (PomanoB)
Но Е ведь используется и для других целей, неудобно ведь будет

В данном случае - ето единнственное доступное действие, кроме +setlaser. Неудобно вручную биндить на удобную клавишу и обратно.
Интерес от части спортивный: хотел сам переделать - не вышло.
Что такое Think'e, где об етом узнать побольше?


Сообщение отредактировал ZHosTik - Воскресенье, 15.11.2009, 11:52:16
 
PomanoBДата: Воскресенье, 15.11.2009, 11:59:23 | Сообщение # 4
Генералиссимус
Группа: Cупер-модеры
Сообщений: 1313
Репутация: 70
Статус: Не в сети
Добавь в конец плагина это ->
Code

public client_PreThink(id)
{
   static button, oldButtons
   pev(id, pev_button, button)
   pev(id, pev_oldbuttons)
   if ((button & IN_USE) && !(oldButtons & IN_USE))
    drag_start(id)
   else
   if (!(button & IN_USE) && (oldButtons & IN_USE))
    drag_end(id)   
}

Пояснения:
if ((button & IN_USE) && !(oldButtons & IN_USE))
если у юзера в текущем Think'е нажата кнопка USE, а в предыдущем нет - значит только нажал,
если наоборот отпустил

Добавлено (15.11.2009, 11:59:23)
---------------------------------------------
Think - это как бы где движок всё обрабатывает
У игрока есть PreThink и PostThink, между ними движок обрабатывает всю физику


http://romanov4400.mybrute.com

Сообщение отредактировал PomanoB - Воскресенье, 15.11.2009, 12:08:38
 
ZHosTikДата: Воскресенье, 15.11.2009, 12:05:42 | Сообщение # 5
Сержант
Группа: Пользователи
Сообщений: 20
Репутация: 0
Статус: Не в сети
А если зажал и держит, то и в текущем, и в предыдущем, или я не так понимаю???
 
PomanoBДата: Воскресенье, 15.11.2009, 12:08:01 | Сообщение # 6
Генералиссимус
Группа: Cупер-модеры
Сообщений: 1313
Репутация: 70
Статус: Не в сети
Да, именно так

http://romanov4400.mybrute.com
 
ZHosTikДата: Воскресенье, 15.11.2009, 12:13:54 | Сообщение # 7
Сержант
Группа: Пользователи
Сообщений: 20
Репутация: 0
Статус: Не в сети
Quote (PomanoB)
У игрока есть PreThink и PostThink, между ними движок обрабатывает всю физику

PreThink - выполнен............................\
PostThink-в очереди.............................> теперь верно?
и всё ето в пределах одного Think`a../

Code
public client_PreThink(id)    
{    
     static button, oldButtons    
     pev(id, pev_button, button)    
     pev(id, pev_oldbuttons, oldButtons)    
     if ((button & IN_USE) && !(oldButtons & IN_USE))    
      drag_start(id)    
     else    
     if (!(button & IN_USE) && (oldButtons & IN_USE))    
      drag_end(id)     
}

не работает


Сообщение отредактировал ZHosTik - Воскресенье, 15.11.2009, 13:17:05
 
PomanoBДата: Воскресенье, 15.11.2009, 12:52:55 | Сообщение # 8
Генералиссимус
Группа: Cупер-модеры
Сообщений: 1313
Репутация: 70
Статус: Не в сети
хм странно, а вообще вызывается client_PreThink ?

http://romanov4400.mybrute.com
 
ZHosTikДата: Воскресенье, 15.11.2009, 13:17:58 | Сообщение # 9
Сержант
Группа: Пользователи
Сообщений: 20
Репутация: 0
Статус: Не в сети
а вот так работает:
Code
public client_PreThink(id)     
{     
     static button, oldButtons     
     button = get_user_button(id)
     oldButtons = get_user_oldbutton(id)
     if ((button & IN_USE) && !(oldButtons & IN_USE))      
      drag_start(id)      
     else
     if (!(button & IN_USE) && (oldButtons & IN_USE))      
      drag_end(id)       
}

а такое видел?
#define fm_get_user_button(%1) pev(%1, pev_button)
/* stock fm_get_user_button(index)
return pev(index, pev_button) */
...
new button = fm_get_user_button(id)


Сообщение отредактировал ZHosTik - Воскресенье, 15.11.2009, 13:22:17
 
PomanoBДата: Воскресенье, 15.11.2009, 13:28:10 | Сообщение # 10
Генералиссимус
Группа: Cупер-модеры
Сообщений: 1313
Репутация: 70
Статус: Не в сети
По идее pev(id, pev_button, button) тоже должно работать)

http://romanov4400.mybrute.com
 
PAHANCSДата: Понедельник, 16.11.2009, 01:21:08 | Сообщение # 11
Полковник
Группа: Пользователи
Сообщений: 183
Репутация: 4
Статус: Не в сети
Quote (PomanoB)

По идее pev(id, pev_button, button) тоже должно работать)

Quote (PomanoB)

public client_PreThink(id) {    
static button, oldButtons    
pev(id, pev_button, button)    
pev(id, pev_oldbuttons)    
if ((button & IN_USE) && !(oldButtons & IN_USE))     
drag_start(id)    
else    if (!(button & IN_USE) && (oldButtons & IN_USE))     
drag_end(id)   
}

Просто немного ошибся:

Code

static button, oldButtons     
button = pev(id, pev_button)     
oldButtons = pev(id, pev_oldbuttons)     



PAHANCS
 
PomanoBДата: Понедельник, 16.11.2009, 18:10:43 | Сообщение # 12
Генералиссимус
Группа: Cупер-модеры
Сообщений: 1313
Репутация: 70
Статус: Не в сети
Так я про что и говорю, что по идее тоже должно работать, pev_health - float, но new health = pev(id, pev_health) прекрасно работает

http://romanov4400.mybrute.com
 
  • Страница 1 из 1
  • 1
Поиск:

AMX Mod X Russian Community © 2006-2024