Гостевая
книга:
|
"Мой первый водянной пистолетик" Здравствуй мой маленький дружок. Сегодня я расскажу тебе о том, как сделать новое оружие для твоего мода. Что нам потребуется: Microsoft Visual studio 6.0 (а именно Microsoft Visual
C++ 6.0) Для начала откроем hl.dsp (или mp.dsp, если вы пользуетесь
SDK 2.0). Затем в меню Files выберем New, чтобы создать новый фаил.
В открывшемся окне выберем С++ Source code а в строке File name введём
название нашего оружия, что-нибудь типа weapon_mp5navy. |
Наши
друзья:
|
Оставить
запись в книге Полистать
книгу
|
Стать другом |
|
Архив
новостей:
|
Наш
счётчик:
|
|
|
||
Обратная
связь:
|
||
L-studio®
all rights reserved |
||
Перед нами откроется чистый лист. Ну что ж, приступим. Для начала вставте: // L-studio boss wepon code 1.0 Здесь мы включаем в наш код уже существующие файлы. Данный набор обязателен для любого оружия. Вставлшяем дальше: int first_step_mp5navy = 0; Эта переменная, которая нужна будет нам, для отображения IDLE анимации. Далее: enum mp5navy_e Это список анимации нашей модели. Думаю здесь всё понятно. Следующие: class CMP5NAVY : public CBasePlayerWeapon
int CMP MP5NAVY::SecondaryAmmoIndex(
void ) Инициализирует вторичные боеприпасы. В нашем случае их нет. Следующее: void CMP5NAVY::Spawn( ) Функция появления оружия на карте. Всё что вас может здесь интересовать, я указал в комментариях. Далее вставляем: void CMP5NAVY::Precache( void )
Эта функция загружает необходимые нам файлы. Следующее: int CMP5NAVY::GetItemInfo(ItemInfo
*p) p->iMaxClip = 30; // int CMP5NAVY::AddToPlayer( CBasePlayer
*pPlayer ) BOOL CMP5NAVY::Deploy( ) Это функции информации и получения оружия игроком. Следующее: void CMP5NAVY::PrimaryAttack() if (m_iClip // m_iClip--; /* Первый параметр - количество выстрелов,
если ставить больше 1, то будет аналог дроби. m_flNextPrimaryAttack = gpGlobals->time
+ 0.1; // время следующей атаки, т.е. интервал
времени между выстрелами } Это была функция первичной атаки. Вставляем далее: void CMP5NAVY::SecondaryAttack( void ) { } Функция вторичной атаки. В нашем случае у нас пока её не будет. Следующее: void CMP5NAVY::Reload( void ) if(m_iClip//
проверка, если в магазине осталось 29 и меньше потронов, то перезарядка
работает. Как вы поняли это функция перезарядки. И последнее, функция IDLE состояния оружия: void CMP5NAVY::WeaponIdle( void
) if(first_step_mp5navy == 0) } Всё код оружия готов. Теперь осталось только сделать так, чтоб его начала воспринимать непосредственно сама игра. Для этого открываем фаил wepons.cpp и после строки «UTIL_PrecacheOtherWeapon( "weapon_9mmAR" );» добавляем: UTIL_PrecacheOtherWeapon( "weapon_mp5navy" ); Затем открываем wepons.h и после строчки «#define WEAPON_SNARK 15» добавляем: #define WEAPON_MP5NAVY 16 Всё готова, компилируем кнопкой F7. @PointClass base(Weapon, Targetx) = weapon_mp5navy : "MP5NAVY" [] Теперь у вас появилась новая поинт-енети, добавляещее
на карту ваше новое оружие. |