HLFX.Ru Forum Страницы (3): [1] 2 3 »
Показать все 44 сообщений этой темы на одной странице

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=2793)


Отправлено Alex_Gordon 02-05-2011 в 17:12:

Вызов клиентских функций с сервера.

Я знаю, что это делается мессагами. Можете дать какой-нибудть пример такой мессаги, или объяснить основной синтаксис?

__________________
Ха, тюремный автомобиль!!!

Ιερά λάμδα

Quisque moritur Gordon sinistram. Alex Gordon.



Отправлено Дядя Миша 02-05-2011 в 19:05:

Alex_Gordon и это человек спрашивает, который ковыряет систему субтитров?
ну вон же твой любимый UTIL_ShowMessage это что по твоему?

__________________
My Projects: download page

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

Цитата:

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


Отправлено HAWK0044 03-05-2011 в 06:48:

опять же ,удивляюсь, как он смог написать UG3 там же почти все эффекты на мессагах...
эх ты...
вобщем. в плеер.цпп объявляем мессагу к примеру int gmsgFirstMessage = 0;
далее ищем что-то с рег_мессэйдж , добавляем по аналогии имя мессаги там в ковычках , к примеру "FirstMessageName" ,далее можешь отправлять... но учти отправлять надо каждый кадр , если хочешь сделать хад... Лучше для этого юзать UpdateClientData в том же плеер.цпп. Далее на клиенте как и везде хукаем мессагу (HOOK_MESSAGE) в худ_мсг.цпп добавляем её,в hud.h соответственно декларим. Я смог разобраться в этом сам! Это же очень просто, за пример ,если что-то не понятно ,возьми gmsgHealth


Отправлено Alex_Gordon 03-05-2011 в 08:23:

gmsgSomeMessage = REG_USER_MSG("SomeMessage", 3);
Что значит эта цифра?

__________________
Ха, тюремный автомобиль!!!

Ιερά λάμδα

Quisque moritur Gordon sinistram. Alex Gordon.



Отправлено XaeroX 03-05-2011 в 08:39:

Размер мессаги в байтах.

__________________

xaerox on Vivino


Отправлено Alex_Gordon 03-05-2011 в 08:43:

XaeroX понятно. И еще, у меня при хуке
HOOK_MESSAGE(SomeThing);
выдается ошибка:
error C2065: '__MsgFunc_SomeThing' : undeclared identifier
хотя я hud.h проинклюдил.

__________________
Ха, тюремный автомобиль!!!

Ιερά λάμδα

Quisque moritur Gordon sinistram. Alex Gordon.



Отправлено Дядя Миша 03-05-2011 в 09:14:

а ты своей мессаге сделал вот такую процедурную обёртку?

C++ Source Code:
1
int __MsgFunc_ViewMode(const char *pszName, int iSize, void *pbuf)
2
{
3
  gHUD.MsgFunc_ViewMode( pszName, iSize, pbuf );
4
  return 1;
5
}

Ну разумеется ViewMode на SomeThing заменить.

__________________
My Projects: download page

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

Цитата:

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


Отправлено Alex_Gordon 03-05-2011 в 09:38:

Да, сделал

__________________
Ха, тюремный автомобиль!!!

Ιερά λάμδα

Quisque moritur Gordon sinistram. Alex Gordon.



Отправлено Дядя Миша 03-05-2011 в 09:53:

а в hud.h в class Chud добавил декларацию?

C++ Source Code:
int  _cdecl MsgFunc_SomeThing( const char *pszName, int iSize, void *pbuf );

__________________
My Projects: download page

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

Цитата:

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


Отправлено Alex_Gordon 03-05-2011 в 09:57:

У меня void, но да, добавил.

__________________
Ха, тюремный автомобиль!!!

Ιερά λάμδα

Quisque moritur Gordon sinistram. Alex Gordon.



Отправлено Дядя Миша 03-05-2011 в 10:00:

__________________
My Projects: download page

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

Цитата:

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


Отправлено Alex_Gordon 03-05-2011 в 10:02:

Дядя Миша я соответственно добавил как void, а ты как думал? Я уж не настолько тупой)

__________________
Ха, тюремный автомобиль!!!

Ιερά λάμδα

Quisque moritur Gordon sinistram. Alex Gordon.



Отправлено fire64 03-05-2011 в 10:48:

omg

Alex_Gordon, неужели копипаста это так трудно ?

Функция должна иметь только такой вид:

C++ Source Code:
int _cdecl MsgFunc_YourFunc(const char *pszName, int iSize, void *pbuf );


И никакой другой, не меняй никакие типы, оставь все так как есть.

__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей


Отправлено Alex_Gordon 03-05-2011 в 11:33:

Да я уж понял, пока 8 минут инет не работал)

Добавлено 03-05-2011 в 16:33:

Сейчас бы понять, как отослать ее, чтобы функция на каждой карте активировалась. Нет, ну понятно что из ParmsChangeLevel, но как вообще отослать...
Обработчик там такой:
int CHud::MsgFunc_SomeThing( const char *pszName, int iSize, void *pbuf )
{
UploadWorldHDTextures();
return 1;
}

__________________
Ха, тюремный автомобиль!!!

Ιερά λάμδα

Quisque moritur Gordon sinistram. Alex Gordon.



Отправлено Дядя Миша 03-05-2011 в 12:07:

Цитата:
Alex_Gordon писал:
Я уж не настолько тупой)

Цитаты:
Цитата:
Alex_Gordon писал:
Нет, ну понятно что из ParmsChangeLevel, но как вообще отослать...

Цитата:
Alex_Gordon писал:
Обработчик там такой:
int CHud::MsgFunc_SomeThing( const char *pszName, int iSize, void *pbuf )
{
UploadWorldHDTextures();
return 1;
}

Не отошлешь ты ничего из ParamsChangelevel. Движок убьет сетевое подключение, сразу же после сохранения даты в сейв. Кроме этого ParmsChangelevel вызывается всякий раз, когда ты ты жмешь квик-сейв или обычный сейв.
И зачем тебе посылать отдельную миссагу в этом случае? Ну пихни её в InitHUD и всё.

__________________
My Projects: download page

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

Цитата:

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


Временная зона GMT. Текущее время 13:20. Страницы (3): [1] 2 3 »
Показать все 44 сообщений этой темы на одной странице

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