Итак откройте item_ammo.cpp и найдите например это: LINK_ENTITY_TO_CLASS(item_ar2_grenade, CItem_AR2_Grenade); LINK_ENTITY_TO_CLASS(item_ammo_smg1_grenade, CItem_AR2_Grenade); После добавьте это: // ======================================================================== // >> Custom Ammo // ======================================================================== #define SIZE_AMMO_-CUSTOM- 30 //Количество патронов, даваемых при прикосновении class CItem_-Custom- : public CItem { public: DECLARE_CLASS( CItem_-Custom-, CItem ); void Spawn( void ) { Precache( ); SetModel( "models/items/boxsrounds.mdl"); //Моделька коробочки. Здесь я использую пистолетную BaseClass::Spawn( ); } void Precache( void ) { PrecacheModel ("models/items/boxsrounds.mdl"); //Опять модель коробки } bool MyTouch( CBasePlayer *pPlayer ) { if (ITEM_GiveAmmo( pPlayer, SIZE_AMMO_-CUSTOM-, "-Custom-")) { if ( g_pGameRules->ItemShouldRespawn( this ) == GR_ITEM_RESPAWN_NO ) { UTIL_Remove(this); } return true; } return false; } }; LINK_ENTITY_TO_CLASS(item_box_-Custom-, CItem_-Custom-); //Название ентити LINK_ENTITY_TO_CLASS(item_ammo_-Custom-, CItem_-Custom-); //Название ентити Дальше ищем файл hl2_gamerules.cpp. Ищем строку: CAmmoDef *GetAmmoDef() И под ней вставляем после неё: def.AddAmmoType("-Custom-", DMG_BULLET, TRACER_LINE_AND_WHIZ, "sk_plr_dmg_-custom-", "sk_npc_dmg_-custom-", "sk_max_-custom-", BULLET_IMPULSE(200, 1225), 0 ); Так же ищем: ConVar sk_max_ar2_altfire ( "sk_max_ar2_altfire","0", FCVAR_REPLICATED); И ниже добавляем: ConVar sk_plr_dmg_-custom- ( "sk_plr_dmg_-custom-","0", FCVAR_REPLICATED ); ConVar sk_npc_dmg_-custom- ( "sk_npc_dmg_-custom-","0", FCVAR_REPLICATED); ConVar sk_max_-custom- ( "sk_max_-custom-","0", FCVAR_REPLICATED); Теперь замените все выделенные -Custom- на собственное, например AlyxGun, причём с учётом регистра и без "-". А в скриптах оружия измените название с, например AlyxGun на ваши патроны Вот так. Компильте и радуйтесь! Так же советую прописать патроны в импульс 101 Туториал от Страйдера.
|