![]() |
Показать все 6 сообщений этой темы на одной странице |
HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Half-Life SDK (https://hlfx.ru/forum/forumdisplay.php?forumid=8)
-- Dispatch-функции и другие неосновные элементы... (https://hlfx.ru/forum/showthread.php?threadid=1566)
Dispatch-функции и другие неосновные элементы...
Господа-форумчане, у меня таки накопилась к вам пара вопросов. Пишу все в одной теме, дабы не создавать несколько маленьктих тем на пару постов каждая.
Вопрос № 1: Есть такие Dispatch-функции, которые вызывает непосредственно движок. В первую очередь, это DispatchTouch и DispatchThink.
А вот вызывается ли вообще функция DispatchUse? В большинстве случаев CAnyEntity::Use вызывается непосредственно из библиотеки ентитей, а не через DispatchUse.
Так же интересно, когда вызывается DispatchSpawn? Как я помню, функция, создающая ентитю, экспортируется макросом LINK_ENTITY_TO_CLASS, и из неё непосредственно вызывается CAnyEntity::Spawn и ещё запрашивается память. А DispatchSpawn тут при чём?
И вот вопрос № 2: Что случается с глобальными переменными, объявленными в библиотеке ентитей, при смене уровня в сингплеере?
Ну то есть обнуляются они, или нет?
И ещё попутный вопрос № 3: При смене уровня в сингле вызываются ли функции ServerActivate/ServerDeactivate? Происходит ли при смене уровня сохранение всех нужных переменных в сэйвв-файл?
Заранее премного благодарен.
__________________
XaeroX Спасибо, ты сразу и исчерпывающе ответил на все мои вопросы
DispatchUse никак не вызывается из движка - попросту не нужно, хотя вальвовцы и предусмотрели подобную возможность.
а вот три остальных фундаментальных каллбэка - тоуч, тчинк и блокед - вызываются.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Да, кстати, извиняюсь за 3,14здёж, DispatchSpawn тож вызывается всегда, LINK_ENTITY_TO_CLASS его не вызывает.
LLAPb LINK_ENTITY_TO_CLASS попросту превращает имя энтити в экспорт из библиотеки.
Движок вызывает spawn через getProcAddress
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Временная зона GMT. Текущее время 18:54. | Показать все 6 сообщений этой темы на одной странице |
На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024