И так начнём пожалуй.Это мой первый тутор, так что непинать очень сильно. Каждый хоть раз добавлял в Хл новое оружие но ему ненравилось что оно или слишком мощно стреляет или слишком слабо.Я подумал и решил всё таки написать тутор.
Вообщето ето очень просто.И делать тут практически ничего ненадо.
Первое.Откроем файл с вашим оружием.
Например: python.срр
И найдем там строку
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 добавим ето
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
Добавим
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
Добавим
Code |
//358 CVAR_REGISTER ( &sk_plr_358_1 ); CVAR_REGISTER ( &sk_plr_358_2 ); CVAR_REGISTER ( &sk_plr_358_3 ); |
Так осталось совсем чуть-чуть.
Откроем gamerules.cpp и пойдем к строчке 270
После //Tripmine
Добавим
Code |
//358 gSkillData.plrDmg358 = GetSkillCvar( "sk_plr_358_"); |
Фактически мы можем уже компилить.И если у вас всё скомпилилось.Идём дальше.В самом Хл открываем файл skill.cfg
и в конце добавляем:
Code |
//358 ammo sk_plr_358_1 "30" sk_plr_358_2 "25" sk_plr_358_3 "20" |
И запомните что цыфры 30,25,20 могут быть любыми.Они означяют сколько урона нанесёт оружии при каждой сложности игры.
Открываем Клиентскую часть.
Открываем файл ev_hldm.cpp
Ищем строчку 299
И после
Code |
case BULLET_PLAYER_357: |
вставляем
Code |
case BULLET_PLAYER_358: |
Далее ищем строчку 434 и после
Code |
case BULLET_PLAYER_357: EV_HLDM_PlayTextureSound( idx, &tr, vecSrc, vecEnd, iBulletType ); EV_HLDM_DecalGunshot( &tr, iBulletType ); break; |
Вставляем
Code |
case BULLET_PLAYER_358: EV_HLDM_PlayTextureSound( idx, &tr, vecSrc, vecEnd, iBulletType ); EV_HLDM_DecalGunshot( &tr, iBulletType ); break; |
Далее открываем ev_hldm.h
Ищем строку 17 и после
Code |
BULLET_PLAYER_CROWBAR, // crowbar swipe |
вставляем
Code |
BULLET_PLAYER_358, // наш тип патронов |
Вот и всё.Можете смело компилить оба проекта.
Только незабудте в ev_hldm.cpp где ваше оружие поменять дефаултный тип патронов на свой.
Например у Револьвера ето строка 798.
Вот теперь я думаю всё.Кому надо тот поймёт как создавать новые типы патронов, а кто умнее может ещё и декали пропишет новые.