В этом туториале я расскажу вам как создать новое оружие, а точнее weapon_sniperrifle. Итак начнем, добавив в server_hl2 файл weapon_sniperrifle.cpp нажав правой кнопкой на server_hl2 и там ищем вкладку Add>Add New Item. Name: weapon_sniperrifle Location: src\dlls\hl2_dll Все с добавлением в проект закончили. Теперь открылся новый чистый файл и туда вписываете код из этого файла ( туториал сперва получился очень большой, поэтому пришлось выложить его в этом файле ). Ну что продолжим доделование нашей пушки, откройте файл: src\cl_dll\hl2_hud\c_weapon__stubs_hl2.cpp и в нем где то после этой строчки: STUB_WEAPON_CLASS( weapon_crossbow, WeaponCrossbow, C_BaseHLCombatWeapon ); Вставте эту строку: STUB_WEAPON_CLASS( weapon_sniperrifle, WeaponSniperrifle, C_BaseHLCombatWeapon ); С клиетовской частью закончили. Теперь если так подумать то нехватает такой фигни как impulse 101. Давайте же это исправим. Идите в файл: src\dlls\player.cpp и в ней с помощью поиска найдите строку сase 101 и там чуть ниже вы увидите список патронов и где нибудь после строки: GiveAmmo( 16, "XBowBolt" ); Вставте: GiveAmmo( 32, "SniperRound" ); И если вы еще чуть спуститесь вниз по файлу по увидите списки оружия и там тоже надо прописать нашу снайперку, так что после: GiveNamedItem( "weapon_crossbow" ); Вставте: GiveNamedItem( "weapon_sniperrifle" ); Всё, теперь наша пушка забита на команду impulse 101. Все, теперь компилируем проект. Теперь перейдем в папку “scripts” и там создадим файл weapon_sniperrifle.txt и туда впишем следующие: // // Sniper rifle // WeaponData { // Weapon data is loaded by both the Game and Client DLLs. "printname" "Sniperrifle" "viewmodel" "models/weapons/v_sniper.mdl" "playermodel" "models/weapons/w_sniper.mdl" "anim_prefix" "sniper" "bucket" "3" "bucket_position" "2" "clip_size" "1" "primary_ammo" "SniperRound" "secondary_ammo" "None" "default_clip" "5" "weight" "2" "item_flags" "0" // Sounds for the weapon. There is a max of 16 sounds per category (i.e. max 16 "single_shot" sounds) SoundData { "special1" "Weapon_SniperRifle.Special1" "special2" "Weapon_SniperRifle.Special2" "reload" "Weapon_SniperRifle.Reload" "reload_npc" "Weapon_SniperRifle.NPC_Reload" "single_shot" "Weapon_SniperRifle.Single" "single_shot_npc" "Weapon_SniperRifle.NPC_Single" } // Weapon Sprite data is loaded by the Client DLL. TextureData { "weapon" { "file" "sprites/w_icons2b" "x" "0" //128 "y" "193" //0 "width" "128" "height" "64" } "weapon_s" { "file" "sprites/w_icons2b" "x" "0" "y" "193" "width" "128" "height" "64" } "ammo" { "file" "sprites/a_icons1" "x" "55" "y" "30" "width" "73" "height" "15" } "crosshair" { "font" "Crosshairs" "character" "Q" } "autoaim" { "font" "Crosshairs" "character" "Q" } "zoom" { "font" "Crosshairs" "character" "Q" } "zoom_autoaim" { "font" "Crosshairs" "character" "Q" } } } Все, теперь идем сода и качаем модели для туториала и здесь звуки для него. Надеюсь вам понравился туториал.
|