Нужно юзать +USE
|
|
ZHosTik | Дата: Воскресенье, 15.11.2009, 01:25:17 | Сообщение # 1 |
Сержант
Группа: Пользователи
Сообщений: 20
Статус: Не в сети
| Два класа зомби из [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
Сообщение отредактировал ZHosTik - Воскресенье, 15.11.2009, 01:27:20 |
|
| |
PomanoB | Дата: Воскресенье, 15.11.2009, 09:54:21 | Сообщение # 2 |
Генералиссимус
Группа: Cупер-модеры
Сообщений: 1313
Статус: Не в сети
| get_user_button - текущие нажатые кнопки get_user_oldbutton - нажатые в пердыдущем Think'e Но Е ведь используется и для других целей, неудобно ведь будет
http://romanov4400.mybrute.com
|
|
| |
ZHosTik | Дата: Воскресенье, 15.11.2009, 11:51:24 | Сообщение # 3 |
Сержант
Группа: Пользователи
Сообщений: 20
Статус: Не в сети
| Quote (PomanoB) Но Е ведь используется и для других целей, неудобно ведь будет В данном случае - ето единнственное доступное действие, кроме +setlaser. Неудобно вручную биндить на удобную клавишу и обратно. Интерес от части спортивный: хотел сам переделать - не вышло. Что такое Think'e, где об етом узнать побольше?
Сообщение отредактировал ZHosTik - Воскресенье, 15.11.2009, 11:52:16 |
|
| |
PomanoB | Дата: Воскресенье, 15.11.2009, 11:59:23 | Сообщение # 4 |
Генералиссимус
Группа: Cупер-модеры
Сообщений: 1313
Статус: Не в сети
| Добавь в конец плагина это -> 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
Статус: Не в сети
| А если зажал и держит, то и в текущем, и в предыдущем, или я не так понимаю???
|
|
| |
PomanoB | Дата: Воскресенье, 15.11.2009, 12:08:01 | Сообщение # 6 |
Генералиссимус
Группа: Cупер-модеры
Сообщений: 1313
Статус: Не в сети
| Да, именно так
http://romanov4400.mybrute.com
|
|
| |
ZHosTik | Дата: Воскресенье, 15.11.2009, 12:13:54 | Сообщение # 7 |
Сержант
Группа: Пользователи
Сообщений: 20
Статус: Не в сети
| 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
Статус: Не в сети
| хм странно, а вообще вызывается client_PreThink ?
http://romanov4400.mybrute.com
|
|
| |
ZHosTik | Дата: Воскресенье, 15.11.2009, 13:17:58 | Сообщение # 9 |
Сержант
Группа: Пользователи
Сообщений: 20
Статус: Не в сети
| а вот так работает: 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
Статус: Не в сети
| По идее pev(id, pev_button, button) тоже должно работать)
http://romanov4400.mybrute.com
|
|
| |
PAHANCS | Дата: Понедельник, 16.11.2009, 01:21:08 | Сообщение # 11 |
Полковник
Группа: Пользователи
Сообщений: 183
Статус: Не в сети
| 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
Статус: Не в сети
| Так я про что и говорю, что по идее тоже должно работать, pev_health - float, но new health = pev(id, pev_health) прекрасно работает
http://romanov4400.mybrute.com
|
|
| |