|
Во-первых, гранат в Call of Duty2 даётся изначально по четыре штуки. Исправляют это строчки: maxAmmo\4\startAmmo\4\clipName\russiangrenade\clipSize\4\sharedAmmoCapName\WEAPON_FRAGGRENADE\sharedAmmoCap\4\dropAmmoMin\0\dropAmmoMax\0
Для пущей уверенности поставьте в первых четырёх значениях одинаковое число.
Что касается dropAmmoMin, то это минимальное кол-во, которое можно подобрать из чужой сумки, а dropAmmoMax - соответственно максимальное. clipSize - и есть "сумка". Так что, максимальное кол-во не должно превышать размер сумки (clipSize)
Находятся эти строки в оружейных файлах по маршруту: iw_13/weapons/sp (и mp) Нам для одиночной игры нужна папка sp.
Там находятся файлы
fraggrenade - американские осколочные
mk1britishfrag - британские осколочные
rgd-33russianfrag - русские осколочные
stielhandgranate - немецкие осколочные
smoke_grenade_russian - русские дымовые
smoke_grenade_german - немецкие дымовые
smoke_grenade_american - американские
smoke_grenade_american_night - американские ночные дымовые
smoke_grenade_british - британские дымовые
Но не всё так просто. У всех гранат должны быть одинаковые показатели. Иначе "американцы" откажутся играть, если у кого-то будет больше гранат или меньше, даже дымовых.
Если вы не хотите назначать на каждую гранату свой эффект, чтобы все были разные, то на этом и остановитесь. Для остальных рассказываю дальше. По-умолчанию все играют только немецкими гранатами и американскими, по-крайней мере дымовыми точно. Исправить это положение нам поможет файл _loadout.gsc, который живет в iw_07/maps
Вот так, например, выглядит миссия "Железнодорожная станция".
if(level.script == "trainyard")
{
thread setup_russian();
level.campaign = "russian";
level.player setnormalhealth (1);
if(game["gaveweapons"] == 1)
{
thread refill_ammo();
// weapons carry over but are REFILLED
return;
}
level.player giveWeapon("SVT40");
level.player giveWeapon("tt30");
level.player giveWeapon("RGD-33russianfrag");
level.player giveWeapon("smoke_grenade_american");
level.player switchToWeapon("SVT40");
level.player switchToOffhand("RGD-33russianfrag");
game["gaveweapons"] = 1;
return;
}
Обратите внимание на level.player giveWeapon("smoke_grenade_american");
Исправляем smoke_grenade_american на smoke_grenade_russian
И теперь мы знаем точно, что в этой миссии у нас будут русские дымовые гранаты.
Открываем снова файл smoke_grenade_russian (iw_13/weapons/sp) и изучаем дальше.
Значение damage/0/ означает урон от физического воздействия предметом на врага (попадание непосредственно гранаты в противника). Поставим значение 200 и можем убить противника, как простым кирпичом.
cookOffHold\0\ - Если вместо ноля поставить единицу - это даст задержку. То есть если взять гранату и удерживать в руке - вы увидите пульсирующее перекрестие прицела. Через четыре-пять секунд граната взорвется в руке, со всеми вытекающими.
explosionRadius\0\explosionInnerDamage\0\explosionOuterDamage\0\ - названия говорят за себя: радиус поражения от взрыва, убойность в эпицентре, ущерб находящимся поблизости. То есть обычную дымовую гранату можно сделать осколочной.
projectileSpeed\960\projectileSpeedUp\120 - это ускорения броска. Дымовая граната легче и летит дальше осколочной.
projImpactExplode\0 - заставляет взрываться гранату от встречи с любым препятствием. Это самый последний показатель в коде файла.
Вот в принципе и всё. Осталось рассмотреть эффекты. Смотрим строку projExplosionEffect\fx/props/brit_smoke_grenade.efx\
\fx/props/ - это маршрут папки, где находится назначенный ей эффект.
brit_smoke_grenade.efx - это сам эффект. Можно назначить любой который вам нравится. Только, если он "лежит" в другом месте - маршрут (\fx/props/) нужно переписать. Про эффекты я расскажу в другой раз.
|