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

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Half-Life SDK (https://hlfx.ru/forum/forumdisplay.php?forumid=8)
-- More weapons ! (https://hlfx.ru/forum/showthread.php?threadid=3452)


Отправлено MisterDeath 03-06-2012 в 01:17:

Хитрота More weapons !

How to add more than 32 weapons ???

actually modified values to

C++ Source Code:
#define WEAPON_SUIT 256 // ?????
#define MAX_WEAPONS 128


But... in deathmatch just respawn player respawn with weapon without ammo...



sorry bad english

__________________
hl 4 ever


Отправлено Дядя Миша 03-06-2012 в 06:55:

weapon bits goes into pev->weapons variable that a 32-bit integer.
So it's hardware limit. You need a create array like a visdata and store weapon bits into them.

__________________
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-06-2012 в 14:28:

Дядя Миша
I make 128 weapons by this method.

MisterDeath
Why u love paranoia renderer?


Отправлено MisterDeath 03-06-2012 в 17:30:

HAWK0044

ins't paranoia renderer, is trinity engine in my mod

Добавлено 03-06-2012 в 21:30:

Дядя Миша

How to create this ?

__________________
hl 4 ever


Отправлено HAWK0044 03-06-2012 в 19:13:

MisterDeath
just create a array for weapons:

int wp_array[MAX_WEAPONS];

Later if u want get answer for question "Do player has weapons" check it with
wp_array[weapon_id] == 1 , i use this method.

And in addweapon use wp_array[ur_weapon_id] = 1;
For drop - wp_array[drop_weapon_id] = 0;

And send update to client.

MESSAGE_BEGIN(MSG_ONE,gmsgHWeapons,NULL,ur_player->pev);

for(int i=0;i<MAX_WEAPONS;i++)
WRITE_BYTE(wp_array[i];

MESSAGE_END();


Отправлено MisterDeath 03-06-2012 в 22:24:

HAWK0044

Sorry, can't apply, no where to put the codes...

Tell me more detail if you want

sorry bad english

__________________
hl 4 ever


Отправлено Дядя Миша 04-06-2012 в 06:37:

Цитата:
MisterDeath писал:
Tell me more detail if you want

Then you create's a super-mod and give no any credits with us right?

__________________
My Projects: download page

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

Цитата:

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


Отправлено fire64 04-06-2012 в 08:04:

Цитата:
HAWK0044 писал:
MESSAGE_BEGIN(MSG_ONE,gmsgHWeapons,NULL,ur_player->pev);

for(int i=0;i<MAX_WEAPONS;i++)
WRITE_BYTE(wp_array[i];

MESSAGE_END();


Why?
It's so awful, it spends a lot of traffic.

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


Отправлено ONeiLL 04-06-2012 в 08:30:

fire64 , а по другому нельзя, только масивом, разве что unsigned __int64


Отправлено fire64 04-06-2012 в 08:52:

ONeiLL, да лучше уж __int64, а не то, что он написал, в крайнем случае __int128


Кстати, почему массив объявлен в виде int, а посылает он WRITE_BYTE ?

Так бы и делал

C++ Source Code:
byte wp_array[MAX_WEAPONS];




Добавлено 04-06-2012 в 12:52:

Да и еще.

А ничего, что в структуре client_data_t тоже указывается int

C++ Source Code:
1
typedef struct client_data_s
2
{
3
  // fields that cannot be modified  (ie. have no effect if changed)
4
  vec3_t origin;
5
 
6
  // fields that can be changed by the cldll
7
  vec3_t viewangles;
8
  int		iWeaponBits;
9
  float	fov;	// field of view
10
} client_data_t;


Да и вweapon_data_t тоже.

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


Отправлено HAWK0044 04-06-2012 в 13:50:

fire64
send it ONLY FOR UPDATE , non 1 frame. Just if player pickup/drop weapon.

Добавлено 04-06-2012 в 17:50:

fire64
ну то что там iWeaponsBits ничего страшного .Всё равно отдельный массив юзаеться.


Отправлено Дядя Миша 04-06-2012 в 14:00:

я вообще-то имел в виду битовые маски...

__________________
My Projects: download page

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

Цитата:

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


Отправлено ONeiLL 04-06-2012 в 14:12:

fire64 , раз уж на то пошло, как заставить работать __int128 ????
А то даёт ошибку
nonstandard extension used : '__int128' keyword not supported on this architecture


Отправлено Дядя Миша 04-06-2012 в 15:11:

Цитата:
ONeiLL писал:
как заставить работать __int128 ????

а с чего ты взял, что она вообще есть?
у тебя 128 битный процессор?

__________________
My Projects: download page

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

Цитата:

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


Отправлено ONeiLL 04-06-2012 в 15:23:

Дядя Миша , просто fire64 сказал

Цитата:
fire64 писал:
в крайнем случае __int128


Я не знал, что такое есть, но попробывал =)
Ладно, буду ждать 128 битный камп =)


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

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