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

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


Отправлено pRoxxx 20-05-2011 в 08:37:

Запиливание спрайта клиенту.

Вобщем создал message, с отправкой нет проблем, но немогу вывести спрайт, у мню проблема с координатами. =/

code:
int CHud::MsgFunc_NVG(const char *pszName, int iSize, void *pbuf) { BEGIN_READ( pbuf, iSize ); int mode = READ_BYTE(); HSPRITE m_hRadarSpr; if(mode) { m_hRadarSpr = LoadSprite("sprites/nvg.spr"); // Load the sprite into memory from disk int x, y; SPR_Set(m_hRadarSpr, 255, 255, 255); x = ScreenWidth; y = ScreenHeight; SPR_Draw(0, x, y, NULL ); } else { } return 1; }

Если указываю левый спрайт, то при отправке мессаги получаю в консоли
Error: Failde to load sprites/..., что значит что мессадж отправляет удачно. =)

Буду благодарен если просветите с координатами. =)

p.s. приатачил спрайт.


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

есть такой прикол , что скорее всего ты просто не прекешил спрайт на сервере, такое бывает, но насколько я помню его не надо прекешить для хада. Так вот, попробуй вместо LoadSprite , сделать SPR_Load();


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

Цитата:
HAWK0044 писал:
Так вот, попробуй вместо LoadSprite , сделать SPR_Load();


C++ Source Code:
1
HSPRITE LoadSprite(const char *pszName)
2
{
3
  int i;
4
  char sz[256];
5
 
6
  if (ScreenWidth < 640)
7
    i = 320;
8
  else
9
    i = 640;
10
 
11
  sprintf(sz, pszName, i);
12
 
13
  return SPR_Load(sz);
14
}


Если в пути к спрайту нету заветной секвенции %d то функция полностью аналогична SPR_Load. А косяки с отображением, потому что надо ректангл настроить, что-то типа
C++ Source Code:
1
wrect_t rc;
2
rc.left = 0;
3
rc.top = 0;
4
rc.bottom = 256;
5
rc.right = 256;
6
SPR_Draw(0,  x, y, &rc );

__________________
My Projects: download page

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

Цитата:

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


Отправлено pRoxxx 22-05-2011 в 08:21:

Разобрался, спарйт был унылый О_о. Заменил на спрайт с ОПФ все заработало как часы.


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

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