HLFX.Ru Forum
Показать все 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'


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

Дядя Миша пихнуть кого, мессагу? А обработчики? И куда вообще пихнуть? Да,

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

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

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

Ιερά λάμδα

Quisque moritur Gordon sinistram. Alex Gordon.



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

Цитата:
Alex_Gordon писал:
но не понимаю, что ты говоришь сделать.

убери свою мессагу вообще нахрен, чтобы я её тут больше не видел.
А свою UpdateWorldTextures(); пихни в функцию void CHud :: MsgFunc_InitHUD( const char *pszName, int iSize, void *pbuf ).
Или в int CHud :: MsgFunc_ResetHUD(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 в 13:07:

Пихаю в ресет - ошибка двига.
Пихаю в инит - не выполняется функция. Тестуры не гузятся.

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

Ιερά λάμδα

Quisque moritur Gordon sinistram. Alex Gordon.



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

Ну значит ищи более другое место.

__________________
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 в 14:19:

я уже не знаю, куда его пихать.. везде либо вылет, либо не работает. У кого-нибудь есть варианты?

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

Ιερά λάμδα

Quisque moritur Gordon sinistram. Alex Gordon.



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

Alex_Gordon дык это ты буржуйский код мучаешь? или свой собственный? А то разведка донесла, что там уже какой-то Unabeliveable Xash намечается

__________________
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 в 15:17:

Дядя Миша не unbelievable xash, а Unbelievable Graphic mod on xash. Опенсорс, успокойтесь.
Нет, код не буржуйский, а Crazy Russian'a

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

Ιερά λάμδα

Quisque moritur Gordon sinistram. Alex Gordon.



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

Цитата:
Alex_Gordon писал:
Unbelievable Graphic mod on xash

а в чём разница от такого же мода, но под халфу?
Цитата:
Alex_Gordon писал:
Нет, код не буржуйский, а Crazy Russian'a

ну тогда, может быть стоит спросить его самого?

__________________
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 в 15:33:

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

Цитата:
Дядя Миша писал:
а в чём разница от такого же мода, но под халфу?

Не совсем ведь такого же Модельки получше и т.д.

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

Ιερά λάμδα

Quisque moritur Gordon sinistram. Alex Gordon.



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

Alex_Gordon когда пациент сам себе помочь не хочет - доктор ему не поможет. Работает ли оно под халфу, для начала?
И сам код было бы неплохо показать.

__________________
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 в 15:50:

Ну сам код собственно вот: http://pastebin.com/buhXFG8X
CrazyRussian его в теме про буржуйский код постил.
В ориг. халфе работает, но тоже до первого чейнджлевела.

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

Ιερά λάμδα

Quisque moritur Gordon sinistram. Alex Gordon.



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

Alex_Gordon я тебе дам совет. Открой сорцы ксаш 0.45 и погляди как там подменяются текстуры для зеркала и порталов.
На этом и строй свою систему - перезаписывай gl_texturenum.
Не надо генерить новые номера, бинди на уже существующие.
И будет у тебя хай-рес текстуры. А еще лучше - включи поддержку таковых в самом ксаше, благо всё необходимое для этого уже имеется, надо только продумать "пути к файлам".
Поясню на примере: в ксаше, в файле engine\common\model.c функция Mod_LoadTextures.
там вот такой код

C++ Source Code:
1
// convert to lowercase
2
Q_strnlwr( mt->name, mt->name, sizeof( mt->name ));
3
Q_strncpy( tx->name, mt->name, sizeof( tx->name ));
4
Q_snprintf( texname, sizeof( texname ), "%s%s.mip", ( mt->offsets[0] > 0 ) ? "#" : "", mt->name );
5
 
6
tx->width = mt->width;
7
tx->height = mt->height;
8
 
9
// check for sky texture (quake1 only!)
10
if( world.version == Q1BSP_VERSION && !Q_strncmp( mt->name, "sky", 3 ))
11
{
12
  R_InitSky( mt, tx );
13
}
14
else if( mt->offsets[0] > 0 )
15
{
16
  // NOTE: imagelib detect miptex version by size
17
  // 770 additional bytes is indicated custom palette
18
  int size = (int)sizeof( mip_t ) + ((mt->width * mt->height * 85)>>6);
19
  if( world.version == HLBSP_VERSION ) size += sizeof( short ) + 768;
20
 
21
  tx->gl_texturenum = GL_LoadTexture( texname, (byte *)mt, size, 0 );
22
}
23
else
24
{
25
  // okay, loading it from wad
26
  tx->gl_texturenum = GL_LoadTexture( texname, NULL, 0, 0 );
27
}

GL_LoadTexture, на самом деле умеет грузить не только из вада. Он умеет грузить все текстуры, что прописаны в имидж-либе.
А если ему вообще не указывать расширение - попробует найти разные текстуры. Поэтому твоя задача - для начала пристроить ему другой путь для текстур, например так
C++ Source Code:
Q_snprintf( texname, sizeof( texname ), "textures/%s/%s.tga", loadmodel->name, mt->name );

В случае если GL_LoadTexture вернет ноль мы должны перейти к стандартному варианту загрузки текстур - к приведенному выше коду.
Ну это просто как пример.

__________________
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 в 16:32:

Дядя Миша то бишь в ксаше это уже есть, нужно лишь пути указать, так? И где же пути прописывать, если не секрет)

Добавлено 03-05-2011 в 21:32:

Прости, не совсем понял просто

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

Ιερά λάμδα

Quisque moritur Gordon sinistram. Alex Gordon.



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

Цитата:
Alex_Gordon писал:
И где же пути прописывать, если не секрет)

как ты собираешься создать Unabeliveable Graphic если в такую элементарщину въехать не можыш?

__________________
My Projects: download page

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

Цитата:

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


Отправлено FiEctro 03-05-2011 в 16:46:

Alex_Gordon
>> В ориг. халфе работает, но тоже до первого чейнджлевела.

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

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!


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

Дядя Миша пытаюсь учиться в процессе. Как я понял, требуется создать два аналога приведенного тобой кода: один - когда текстура подгружается из вада, другой - когда из тга. Если текстуры-тга нет - то подгружается текстура из вада, так? То бишь проверка, или я не прав?

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

Ιερά λάμδα

Quisque moritur Gordon sinistram. Alex Gordon.



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

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

__________________
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 в 17:13:

Дядя Миша, try-except?

Добавлено 03-05-2011 в 22:13:

FiEctro если есть, скин сорц глянуть где я чего нахимичил

Добавлено 03-05-2011 в 22:13:

И еще, Дядя Миша, в твоем коде loadmodel->name, mt->name это что?

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

Ιερά λάμδα

Quisque moritur Gordon sinistram. Alex Gordon.



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

Alex_Gordon у меня в последнее время стойкое ощущение, что весна украла у тебя остатки мозга. Раньше ты так не тупил.

__________________
My Projects: download page

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

Цитата:

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


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

Цитата:
Дядя Миша писал:
Раньше ты так не тупил.

Ещё как тупил. Я даже прямо спрашивал у него - "ты что, тупой?"

__________________

xaerox on Vivino


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

И тем не менее. У меня два варианта: либо один из них тупой, либо оба.
loadmodel->name это либо название вадника, либо карты, так? mt->name ясно что такое.

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

Ιερά λάμδα

Quisque moritur Gordon sinistram. Alex Gordon.



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

Цитата:
Alex_Gordon писал:
loadmodel->name это либо название вадника, либо карты, так?

зачем угадывать? вставь алерт и посмотри что он тебе выведет.

__________________
My Projects: download page

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

Цитата:

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


Отправлено FiEctro 03-05-2011 в 18:25:

Alex_Gordon
>> если есть, скин сорц глянуть где я чего нахимичил

Ну а ты сам подумай что нада сделать, перед тем как пройти через чанжлевел .

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!


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

Цитата:
FiEctro писал:
Ну а ты сам подумай что нада сделать, перед тем как пройти через чанжлевел

*заинтерисовалсо*
А что надо сделать?

__________________
My Projects: download page

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

Цитата:

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


Отправлено PomanoB 03-05-2011 в 19:04:

Наверное положить толопу монстров и одолеть финального босса?
Или просто зайти в комнату с 2 дверями противоположными


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

кстать я юзал этот же код CR и всё отлично(!!!) работает. Так что это ты накосячил.


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

Цитата:
FiEctro писал:
Ну а ты сам подумай что нада сделать, перед тем как пройти через чанжлевел

Сохраниться!

__________________

xaerox on Vivino


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

еще , если хочешь делать действительно Unbelievable Graphic,то делай сам,а не копипасть, по теме: зачем там мессага?! у меня всё и так работает, а если надо сделать что оно обновлялось при ченжлевеле ,то для этого есть другие методы


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

Цитата:
HAWK0044 писал:
то делай сам,а не копипасть, по теме

ну так новая мессага это и есть попытка сделать самому

__________________
My Projects: download page

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

Цитата:

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


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

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