Среда, 18.10.2017, 19:35

Свежая информация доставка воздушных шаров здесь.
logo

Пользовательский поиск

Меню сайта
Категории раздела
Разное [15]
Tutorials
Создание карт [13]
Создание моделей [2]
Кодинг [14]
Создание карт CS [197]
Учебник cs-mapper
Свойства entity HL-CS [117]
Форма входа
Логин:
Пароль:
Наш сервер CS 1.6
Поиск
Наш опрос
Оцените мой сайт
Всего ответов: 119
Атмосфера
Друзья сайта


Главная » Статьи » HL Development » Кодинг

Новые типы патронов

Новые типы патронов

И так начнём пожалуй.Это мой первый тутор, так что непинать очень сильно.

Каждый хоть раз добавлял в Хл новое оружие но ему ненравилось что оно или слишком мощно стреляет или слишком слабо.Я подумал и решил всё таки написать тутор.
Вообщето ето очень просто.И делать тут практически ничего ненадо.

Первое.Откроем файл с вашим оружием.
Например: python.срр
И найдем там строку

C++ Source Code:
vecDir = m_pPlayer->FireBulletsPlayer( 1, vecSrc, vecAiming, VECTOR_CONE_1DEGREES, 8192, BULLET_PLAYER_357, 0, 0, m_pPlayer->pev, m_pPlayer->random_seed );


Нашли? Так теперь заменим BULLET_PLAYER_357 на своё название патронов.Например: BULLET_PLAYER_358.

Далее.Откроем файл: combat.cpp
И где-то после строки 1576 добавим ето

C++ Source Code:
case BULLET_PLAYER_358:
    pEntity->TraceAttack(pevAttacker, gSkillData.plrDmg358, vecDir, &tr, DMG_BULLET);
break;


Как вы заметили там есть строчка gSkillData.plrDmg358.Но к ней мы вернёмся попозже.

Сейчас откройте файл weapons.cpp и идите настроку 179
и после BULLET_PLAYER_357:
добавте BULLET_PLAYER_358:

Теперь откроем файл weapons.h строка 188

и после BULLET_PLAYER_357, // python
добавить BULLET_PLAYER_358, // наш тип патронов

Так теперь вернёмся к gSkillData.plrDmg358
Откроем файл skill.h
найдём 97 строку и в конце
после float plrDmgTripmine;
добавим float plrDmg358;

Далее откроем файл game.cpp
к строке 371
И после // Tripmine
Добавим
C++ Source Code:
//358
cvar_t sk_plr_358_1 = {"sk_plr_358_1","0"};
cvar_t sk_plr_358_2 = {"sk_plr_358_2","0"};
cvar_t sk_plr_358_3 = {"sk_plr_358_3","0"};



Далее спускаемя на строчку 840
И после //Tripmine
Добавим
C++ Source Code:
//358
CVAR_REGISTER ( &sk_plr_358_1 );
CVAR_REGISTER ( &sk_plr_358_2 );
CVAR_REGISTER ( &sk_plr_358_3 );



Так осталось совсем чуть-чуть.
Откроем gamerules.cpp и пойдем к строчке 270
После //Tripmine
Добавим
C++ Source Code:
//358
gSkillData.plrDmg358 = GetSkillCvar( "sk_plr_358_");



Фактически мы можем уже компилить.И если у вас всё скомпилилось.Идём дальше.В самом Хл открываем файл skill.cfg
и в конце добавляем:

//358 ammo
sk_plr_358_1 "30"
sk_plr_358_2 "25"
sk_plr_358_3 "20"

И запомните что цыфры 30,25,20 могут быть любыми.Они означяют сколько урона нанесёт оружии при каждой сложности игры.
Фуууух ну вот и всё я думаю.
Удачи вам при создании новых типов патронов.

Открываем Клиентскую часть.
Открываем файл ev_hldm.cpp
Ищем строчку 299

И после
C++ Source Code:
case BULLET_PLAYER_357:

вставляем
C++ Source Code:
case BULLET_PLAYER_358:


Далее ищем строчку 434 и после
C++ Source Code:
case BULLET_PLAYER_357:
    
EV_HLDM_PlayTextureSound( idx, &tr, vecSrc, vecEnd, iBulletType );
EV_HLDM_DecalGunshot( &tr, iBulletType );

break;

Вставляем
C++ Source Code:
case BULLET_PLAYER_357:
    
EV_HLDM_PlayTextureSound( idx, &tr, vecSrc, vecEnd, iBulletType );
EV_HLDM_DecalGunshot( &tr, iBulletType );

break;

Далее открываем ev_hldm.h
Ищем строку 17 и после
C++ Source Code:
BULLET_PLAYER_CROWBAR, // crowbar swipe

вставляем
C++ Source Code:
BULLET_PLAYER_358, // наш тип патронов


Вот и всё.Можете смело компилить оба проекта.
Только незабудте в ev_hldm.cpp где ваше оружие поменять дефаултный тип патронов на свой.
Например у Револьвера ето строка 798.
Вот теперь я думаю всё.Кому надо тот поймёт как создавать новые типы патронов, а кто умнее может ещё и декали пропишет новые.


В коде пушки изменяем строку :

C++ Source Code:
p->pszAmmo1 = "Патроны";


И в конце где патроны :

C++ Source Code:
int bResult = (pOther->GiveAmmo( AMMO_XXX_GIVE, "Патроны", _XXX_MAX_CARRY) != -1);


Также незабудте залинковать их как ентитю : LINK_ENTITY_TO_CLASS( ammo_вашеназвание, CWeapAmmo );

Незабудте это дело запрекашить. Вот и всё.

Категория: Кодинг | Добавил: SuperStart (23.11.2010)
Просмотров: 1624 | Рейтинг: 0.0/0 |


Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]

Copyright www.akksimo.net © 2017