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

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


Отправлено DIMaN[BBc] 14-01-2007 в 12:24:

Новый слот для оружия

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

__________________
Сайт русского мода Half-Life: Confession


Отправлено Government-Man 14-01-2007 в 13:25:

У оружия в GetItemInfo(ItemInfo *p):

p->iSlot - слот
p->iPosition - позиция в слоте

А сами иконки оружия - в спрайтах.


Отправлено Дядя Миша 14-01-2007 в 13:41:

DIMaN[BBc] по стандарту вообще-то 10 слотов (кнопки 0-9 на клавиатуре). Не забудь также поправить дефайн MAX_WEAPON_SLOTS (найдешь поиском), нарисовать для нового слота спрайт и прописать его в hud.txt


Отправлено DIMaN[BBc] 14-01-2007 в 18:30:

Цитата:
Government-Man писал:
У оружия в GetItemInfo(ItemInfo *p):

p->iSlot - слот
p->iPosition - позиция в слоте

А сами иконки оружия - в спрайтах.

Это и так понятно

Цитата:
Дядя Миша писал:
DIMaN[BBc] по стандарту вообще-то 10 слотов (кнопки 0-9 на клавиатуре). Не забудь также поправить дефайн MAX_WEAPON_SLOTS (найдешь поиском), нарисовать для нового слота спрайт и прописать его в hud.txt

Вот ету переменную я как раз и искал. Спасибо.
Все ее обозначил за 6. в hud.txt определил спрайт. Все нормально с этим.
Зато оружие из этого, шестого слота не вызывается, его там попросту нет. Если его вызвать с помощью команды give, то оно не стерляет как положено. Наверно где-то еще что-то подправить нада. Дядь Миша хэлп.

__________________
Сайт русского мода Half-Life: Confession


Отправлено XaeroX 14-01-2007 в 20:49:

DIMaN[BBc] а ты клиент.длл перекомпилировал?

__________________

xaerox on Vivino


Отправлено DIMaN[BBc] 15-01-2007 в 03:54:

XaeroX, да естесно. Ладно ща постараюсь в этом разобраться. Хотя вроде все как нада сделано. Может что-то еще нужно, там какую-нить переменную проставить?

__________________
Сайт русского мода Half-Life: Confession


Отправлено XaeroX 15-01-2007 в 04:46:

DIMaN[BBc] вообще-то нет... Ну вот я в ретрибе добавлял 6 слот, а я тогда вообще кодить почти не умел. И особых проблем не было.

__________________

xaerox on Vivino


Отправлено Дядя Миша 15-01-2007 в 16:20:

DIMaN[BBc] я так полагаю, что это ты с самим оружием накосячил. попробуй ради интереса переставить какой-нибудь арбалет в шестой слот и проверить его поведение.


Отправлено DIMaN[BBc] 16-01-2007 в 09:10:

Я как раз и пробовал на арбалете и мп5.
Опишу симптомы.
1) Набираю команду импульс 101. Шестой слот пуст, ни в одном другом арбалета и мп5 нет
2) Вызываю с помощью команды give - арбалет появляется в руках, но отсутствует датчик с патронами, тоже и с мп5
3) Начинаю стрелять. У арбалета стрелы летят через раз и пролетают сквозь монстров. мп5 стреляет через раз и тоже никого не трогает, патроны не летят.
И все это сопровождается с глюками анимации.

Теперь я опишу то, что я сделал, чтобы не возникало лишних вопросов:
1) MAX_WEAPON_SLOTS задефайнел как 6
2) В шапке оружия (weapons.h) - int iItemSlot( void ) { return 6; }
3) В коде оружия: p->iSlot = 5;
p->iPosition = 0;

В чем дело так и незнаю

__________________
Сайт русского мода Half-Life: Confession


Отправлено Дядя Миша 16-01-2007 в 13:40:

надо еще MAX_WEAPON_POSITIONS подправить.
Забыл совсем.


Отправлено DIMaN[BBc] 16-01-2007 в 13:53:

А где именно? На сервере я эту переменную не нашел, а на клиенте она встречается, но нигде не задается конкретным значением.

__________________
Сайт русского мода Half-Life: Confession


Отправлено ToMMuK 30-01-2007 в 07:02:

C++ Source Code:
#define MAX_WEAPON_SLOTS		6	// hud item selection slots
#define MAX_ITEM_TYPES			6	// hud item selection slots


DIMaN[BBc] попробуй ка это. В файле cdll_dll.h .После чего перекомпилируй и сервер и клиент должно работать. По крайней мере у меня работает!

И ещё небось в коде пушки ты писал :

C++ Source Code:
p->iSlot = 6;
p->iPosition = 1;


Незабывай что в Слоте и Позиции счёт идёт с 0, и вместо 6 надо писать 5, а вместо 1 надо 0. Тогда у тебя получицца 6 позиция и 1 слот.

__________________
Сайт латвийского мода

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


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

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