HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Dispatch-функции и другие неосновные элементы...
...глобальные переменные в библиотеке ентитей
  Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
LLAPb
Всея руси

Дата регистрации: Apr 2008
Проживает: Москва
Сообщений: 34
Возраст: 37

Рейтинг



Dispatch-функции и другие неосновные элементы...

Господа-форумчане, у меня таки накопилась к вам пара вопросов. Пишу все в одной теме, дабы не создавать несколько маленьктих тем на пару постов каждая.

Вопрос № 1: Есть такие Dispatch-функции, которые вызывает непосредственно движок. В первую очередь, это DispatchTouch и DispatchThink.
А вот вызывается ли вообще функция DispatchUse? В большинстве случаев CAnyEntity::Use вызывается непосредственно из библиотеки ентитей, а не через DispatchUse.
Так же интересно, когда вызывается DispatchSpawn? Как я помню, функция, создающая ентитю, экспортируется макросом LINK_ENTITY_TO_CLASS, и из неё непосредственно вызывается CAnyEntity::Spawn и ещё запрашивается память. А DispatchSpawn тут при чём?

И вот вопрос № 2: Что случается с глобальными переменными, объявленными в библиотеке ентитей, при смене уровня в сингплеере?
Ну то есть обнуляются они, или нет?

И ещё попутный вопрос № 3: При смене уровня в сингле вызываются ли функции ServerActivate/ServerDeactivate? Происходит ли при смене уровня сохранение всех нужных переменных в сэйвв-файл?

Заранее премного благодарен.

Сообщить модератору | IP: Записан
Сообщение: 38946

Старое сообщение 03-11-2008 16:10
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 35072
Нанёс повреждений: 515 ед.
Возраст: 39

Рейтинг



Награды
 
[1 награда]


Цитата:
LLAPb писал:
А вот вызывается ли вообще функция DispatchUse?

Из движка, имхо, не вызывается. Но может вызываться сторонними дллками, которые идут как прокладки между движком и игровой дллкой.
Цитата:
LLAPb писал:
Так же интересно, когда вызывается DispatchSpawn?

Энтити не всегда создаются через LINK_ENTITY_TO_CLASS. Иногда они создаются динамически. И еще - при смене уровня или загрузке сохранения вызываются спавн-функции.
Цитата:
LLAPb писал:
Что случается с глобальными переменными, объявленными в библиотеке ентитей, при смене уровня в сингплеере?
Ну то есть обнуляются они, или нет?

Нет, неявно они не обнуляются. Только при выгрузке/загрузке длл или явно в коде.
Цитата:
LLAPb писал:
При смене уровня в сингле вызываются ли функции ServerActivate/ServerDeactivate?

Тебе проще поставить MessageBox и проверить самому
Цитата:
LLAPb писал:
Происходит ли при смене уровня сохранение всех нужных переменных в сэйвв-файл?

Насколько я понимаю, при смене уровня сохранение идет не в файл, а в память. Т.е. файлы по идее не создаются.

__________________

Сообщить модератору | IP: Записан
Сообщение: 38947

Старое сообщение 03-11-2008 16:25
-
LLAPb
Всея руси

Дата регистрации: Apr 2008
Проживает: Москва
Сообщений: 34
Возраст: 37

Рейтинг



XaeroX Спасибо, ты сразу и исчерпывающе ответил на все мои вопросы

Сообщить модератору | IP: Записан
Сообщение: 38956

Старое сообщение 03-11-2008 17:03
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 33074
Нанёс повреждений: 392 ед.

Рейтинг



DispatchUse никак не вызывается из движка - попросту не нужно, хотя вальвовцы и предусмотрели подобную возможность.
а вот три остальных фундаментальных каллбэка - тоуч, тчинк и блокед - вызываются.

__________________
My Projects: download page

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

Цитата:

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

Сообщить модератору | IP: Записан
Сообщение: 39924

Старое сообщение 02-12-2008 09:36
-
LLAPb
Всея руси

Дата регистрации: Apr 2008
Проживает: Москва
Сообщений: 34
Возраст: 37

Рейтинг



Да, кстати, извиняюсь за 3,14здёж, DispatchSpawn тож вызывается всегда, LINK_ENTITY_TO_CLASS его не вызывает.

Сообщить модератору | IP: Записан
Сообщение: 39936

Старое сообщение 02-12-2008 10:52
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 33074
Нанёс повреждений: 392 ед.

Рейтинг



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'

Сообщить модератору | IP: Записан
Сообщение: 39948

Старое сообщение 02-12-2008 15:27
-
Тема: (Опционально)
Ваш ответ:



Переводчик транслита


[проверить длину сообщения]
Опции: Автоматическое формирование ссылок: автоматически добавлять [url] и [/url] вокруг интернет адресов.
Уведомление по E-Mail: отправить вам уведомление, если кто-то ответил в тему (только для зарегистрированных пользователей).
Отключить смайлики в сообщении: не преобразовывать текстовые смайлики в картинки.
Показать подпись: добавить вашу подпись в конец сообщения (только зарегистрированные пользователи могут иметь подписи).

Временная зона GMT. Текущее время 19:13. Новая тема    Ответить
  Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Dispatch-функции и другие неосновные элементы...
...глобальные переменные в библиотеке ентитей
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

Быстрый переход:
Оцените эту тему:

Правила Форума:
Вы not можете создавать новые темы
Вы not можете отвечать в темы
Вы not можете прикреплять вложения
Вы not можете редактировать ваши сообщения
HTML Код ВЫКЛ
vB Код ВКЛ
Смайлики ВКЛ
[IMG] Код ВКЛ
 

< Обратная связь - HLFX.ru >

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