HLFX.Ru Forum
Показать все 18 сообщений этой темы на одной странице

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Half-Life SDK (https://hlfx.ru/forum/forumdisplay.php?forumid=8)
-- "Удобные" гранаты (https://hlfx.ru/forum/showthread.php?threadid=1626)


Отправлено [)r0n 08-12-2008 в 05:51:

"Удобные" гранаты

Решил сделать бросок гранаты на отдельную клавишу. Т.к. в С++ я чайник то решил сделать все это по примерно так:
Все что написано в PrimaryAttack я переместил в самое начало WeaponIdle, а PrimaryAttack просто удалил. Затем, в WeaponIdle вместо

C++ Source Code:
m_flNextPrimaryAttack = UTIL_WeaponTimeBase() + 0.5;


Я воткнул что-то вроде:
C++ Source Code:
m_pPlayer->m_flNextAttack = UTIL_WeaponTimeBase() + 0.5;


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

Теперь вопрос: Как сделать, чтобы после броска гранаты, выбиралось последнее оружие, которое было в руках у игрока?
Тоесть, держим мы в руках мп5, затем бросаем гранату, а после броска у нас оружие в руках вновь меняется на мп5.


Отправлено Scrama 08-12-2008 в 06:19:

[)r0n Привяжи бросок гранаты на какой-нибудь impulse - это правильнее.

Добавлено 08-12-2008 в 12:19:

А вообще можешь глянуть код, который выполняется по кнопочке "Last used weapon" и скопипастить его в конец твоего кода.

__________________
"Злобным гениям не нужна харизма." © Shooter__Andy
"Making stuff for an "old ugly game" can be ten times more fun than grinding on a map for a dull, next-gen title." © Lunaran


Отправлено Дядя Миша 08-12-2008 в 08:57:

[)r0n тебе надо было alias написать - выбор гранат, кинуть гранату, переключится на последнее использованное оружие.
Кодить тут совершенно не нужно.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено [)r0n 08-12-2008 в 12:24:

to Дядя Миша

Да если бы было б все так просто, я б тут вопрос не задавал. При написании вот такого Alias:

Alias grena “Slot5; +attack; lastinv”

Bind “5” “grena”

Вместо броска происходит такая картина: Чел переключается на гранаты, потом сразу переключается на предыдущее оружие, потом начинает из него безостановочно палить.
Короче, вариант с Alias у меня не прошел


to Scrama

Посмотрел я на действие кнопочки Last Used Weapon, попытался оттуда что-нить передрать, и… у меня ничего не вышло. Почему? Читай самое начало первого поста По этому я сейчас, честно говоря, в тупике.

В общем, самому мне там разобраться не удалось. По этому вся надежда на этот форум.


Отправлено BioHazard 08-12-2008 в 21:18:

Ну так конечно! Ты стрелять начал( +attack ) а останавливаться не захотел

code:
alias grenade "weapon_handgrenade; +attack; wait; -attack; lastinv"

Вот и все


Отправлено [)r0n 09-12-2008 в 02:01:

to BioHazard

Ты хоть сам-то проверял то, что предложил? Вариант с Alias – дохлый номер.


Отправлено Дядя Миша 09-12-2008 в 10:28:

[)r0n ну значит надо не 1 wait поставить, а штук 20-30.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено [)r0n 09-12-2008 в 12:27:

40 wait не хватает, перс даже не успевает выдернуть чеку, а при большем количестве Wait игра отказывается биндить этот Alias на клавишу.

Также пытался вместо просто Wait писать в Alias что-то вроде “Wait 1”, но тогда Wait врубается, и больше не выключается. Т.е. игрок берет в руки гранату, дергает чеку, а гранату не кидает… Совсем.

Появился такой вопрос: а можно ли из кода оружия вызвать консольную команду?


Отправлено XaeroX 09-12-2008 в 13:33:

Цитата:
[)r0n писал:
а можно ли из кода оружия вызвать консольную команду?

Конечно, можно.

__________________

xaerox on Vivino


Отправлено Дядя Миша 09-12-2008 в 13:45:

Цитата:
вместо просто Wait писать в Alias что-то вроде “Wait 1”,

эта фишка работает только для Quake3 к сожалению.
Ну значит я неправ, пиши код.
Цитата:
а можно ли из кода оружия вызвать консольную команду?

можно через SERVER_COMMAND, и ловить её в client.cpp
в void ClientCommand( edict_t *pEntity )
как-то так.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено BioHazard 09-12-2008 в 14:14:

С чего ты вял что мой алиас работать не будет? Я по этим делам уже поднатаскался


Отправлено XaeroX 09-12-2008 в 17:43:

BioHazard с того, что граната бросается не при нажатии атаки, а через некоторое время, в функции WeaponIdle.

__________________

xaerox on Vivino


Отправлено FaL_DissecTor 09-12-2008 в 19:17:

Эмм а зачем primmary attack удалил? просто бы в idle primaryattack(); написал бы и все.
Что касается алиаса, в кс я написал такой:

alias "+dropgrenade" "weapon_flashbang;wait;+attack"
alias "-dropgrenade" "-attack;wait;lastin

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

p.s. А нет исходников teamfortress? там было что-то подобное, только без анимации.

__________________
Такие дела...


Отправлено XaeroX 09-12-2008 в 19:22:

Цитата:
FaL_DissecTor писал:
А нет исходников teamfortress?

Увы, нет.

__________________

xaerox on Vivino


Отправлено FaL_DissecTor 09-12-2008 в 19:22:

Или даже не в idle а в deploy - то есть он не достает а сразу кидает.

__________________
Такие дела...


Отправлено Дядя Миша 09-12-2008 в 19:57:

XaeroX неправда можно декомпилировать tfc.dat файл из первой кваки.
Хотя бы общие принципы да увидишь.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено [)r0n 10-12-2008 в 01:42:

Цитата:
Дядя Миша писал:
можно через SERVER_COMMAND, и ловить её в client.cpp
в void ClientCommand( edict_t *pEntity )
как-то так.


Ну вы... Надо было с этого начинать Терь все работает как надо, спасибо всем за помощь.


Отправлено Дядя Миша 10-12-2008 в 09:45:

[)r0n как говорил политрук Фурманов в старой доброй игрушке "Петька и Василий Иванович Спасают Галактику" -
я знаю очень много, но вы задаете неточные вопросы. Если бы вы выстраивали предельно четкие и понятные смысловые конструкции, формируя свою мысль в понятном для меня ключе, то я бы с удовольствием рассказал вам гораздо больше.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Временная зона GMT. Текущее время 11:32.
Показать все 18 сообщений этой темы на одной странице

На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024