Возможность проверить если ли у игрока то или иное оружие .


Сегодня я расскажу как сделать проверку на доступность оружия которое находится у игрока на примере огнемета.

И так приступим : откроем файл Нud.cpp

Он находится в проекте : EntitiesMP/Source Files/Common sources/Нud.cpp.



Найдем вот такие строки :

struct WeaponInfo {
enum WeaponType wi_wtWeapon;
CTextureObject *wi_ptoWeapon;
struct AmmoInfo *wi_paiAmmo;
BOOL wi_bHasWeapon;
};

extern struct WeaponInfo _awiWeapons[18];

Копируем их - далее открываем файл Player.es (Он находится в проекте : EntitiesMP/Class Files/Players/Player.es.)

Открываем находим вот такое содержимое :


Теперь вставляем наши строчки , должно получиться вот так :



С вставкой закончили нужно условие и информацию в консоль.

В Player.es находим такие строчки которые отвечают за стрельбу оружия

вот Код :

if (ulNewButtons&PLACT_FIRE )
{

((CPlayerWeapons&)*m_penWeapons).SendEvent(EFireWeapon());
}

Сюда я вставлю информацию о том есть у меня огнемет или нет :

if (_awiWeapons[11].wi_bHasWeapon)
{
CPrintF("Yes !!.\n");

}
else
{
CPrintF("No!! .\n");

}

11 - это и есть наш огнемет

И получается вот так:



собираем игру ставим на карту огнемет ,

и проверяем

Теперь когда вы будете стрелять вам будет выводиться надпись No или Yes в

консоль



Комментарии   

[Материал]  |  № 1  |  05.05.2023  |  0  
У класса CPlayerWeapons есть поле m_iAvailableWeapons. которое собственно и кодирует доступное оружие.

Если нужно проверить доступное оружие внутри энтити игрока, то достаточно:
Код
GetPlayerWeapons()->m_iAvailableWeapons & (1 << (wt - 1));

где wt - одно из значений enum WeaponType. Например WEAPON_FLAMER для огнемента.
Ответ Цитата

Оставьте комментарий

Мини-профиль

Гость

Вы в группе: Гости
Ваш IP: 3.237.16.173

Сейчас обсуждают

zorgpro8
kotgg22812
Incurso1612
Ar2R-devil-PiNKy22
Ar2R-devil-PiNKy18
Ar2R-devil-PiNKy21
Ar2R-devil-PiNKy62
5709das522
Molodec12
BuhBuhich2425

МЕМЫ

НОВЫЙ
Petrukovich 4 2

Файлы

Serious_Chrel
349 27 1

Ar2R-devil-PiNKy
18689 4693 54

Vlad
2040 585 7

ZIM
3391 578 14

vovan_stryukov
3705 775 36

Категории раздела

Croteam [4]
Материалы по студии разработчика игр CroTeam.
Интервью с разработчиками [9]
Интервью с разработчиками, а также их издателями.
Serious Sam 1 [11]
Статьи о Serious Sam 1
Serious Sam 2 [6]
Статьи о Serious Sam 2
Serious Sam HD [4]
Статьи о HD-серии, ремейков классических версий Сэма.
Serious Sam 3: BFE [10]
Статьи о Serious Sam 3: BFE
Уроки по Serious Editor 1 [60]
Уроки по Serious Editor 2 [3]
Самое серьёзное редактирование, на русском!
Уроки по Serious Editor 3 [40]
Уроки по работе с редактором.
Serious Engine [6]
Описание возможностей всех движков компании Croteam
Разное [28]
Всё что не подошло не под одну из вышеупомянутых категорий.
Serious Sam: Revolution [1]
Материалы по SS: Revolution, серьёзном обновлении классических Крутых Сэмов.
Serious Sam 1.05/1.07 SDK [10]
SDK - набор исходников для Serious Sam: The Second Encounter 1.05/1.07.

Видео

ГОРОД БЕЗУМИЯ | Serious Sam: Hell Encounter Impossible+++ | #5
7 0.0

Duke Nukem Forever best game
25 5.0

Страшные и радостные лица. Ты играешь в эту игру про Крутого Сэма...
292 0.0

Wrong Destination - краткий обзор
144 5.0

Путь воина.
130 5.0

Статистика



На сайте: 4
Гостей: 4
Пользователей: 0

Кто сегодня был