Сегодня мы сделаем weapon_slam из HL2: Deathmatch в просто в HL2. Итак начнем, добавим в серверную часть проекта (src/dlls/hl2_dll) 3 файла ( так же к ним созадйте 3 файла с разширеним .h ): weapon_slam.cpp, grenade_satchel.cpp и grenade_tripmine.cpp (Качаем эти исходники здесь). Повписываем в свои файлы которые вы добавили в проект. В клиентовскую часть вписывать ничего не надо, так как там уже вписано от HL2: Deathmatch'a. Теперь мы идем сюда (src\game_shared\hl2\hl2_gamerules.cpp) и разцитируем эти две строчки: //ConVarsk_max_slam ( "sk_max_slam","0", FCVAR_REPLICATED); //ConVar sk_max_tripwire ( "sk_max_tripwire","0", FCVAR_REPLICATED); Обязательно поставте значение sk_max_slam на 10, иначе в игре работать не будет! Потом в этом же файле спускаемся в самый низ до строчек def.AddAmmoType и там где то после строчки: def.AddAmmoType("Grenade", DMG_BURN, TRACER_NONE, "sk_plr_dmg_grenade", "sk_npc_dmg_grenade", "sk_max_grenade", 0, 0); Вставим эту: def.AddAmmoType("Slam", DMG_BURN, TRACER_NONE, NULL, NULL, "sk_max_slam", 0, 0); Всё, можно компилить Теперь сделаем скрипт, для этого заходите в папку вашего мода/Scripts и там создадим файл под названием weapon_slam.txt и туда впишем это: // Slam WeaponData { // Weapon data is loaded by both the Game and Client DLLs. "printname" "Slam" "viewmodel" "models/weapons/v_slam.mdl" "playermodel" "models/weapons/w_slam.mdl" "anim_prefix" "slam" "bucket" "4" "bucket_position" "1" "clip_size" "3" "primary_ammo" "None" "secondary_ammo" "slam" "default_clip2" "3" "weight" "1" "item_flags" "2" // Weapon Sprite data is loaded by the Client DLL. TextureData { "weapon" { "file" "sprites/w_icons2b" "x" "128" "y" "64" "width" "128" "height" "64" } "weapon_s" { "file" "sprites/w_icons2b" "x" "128" "y" "64" "width" "128" "height" "64" } "ammo" { "font" "WeaponIcons" "character" "o" } "crosshair" { "font" "Crosshairs" "character" "Q" } "autoaim" { "file" "sprites/crosshairs" "x" "48" "y" "72" "width" "24" "height" "24" } } Теперь надо сделать звуки к нашему слэму, так что идем сюда Scripts/Game_sounds_weapons.txt и там где то после обозначений звуков гранаты (weapon_frag) впишем наши звуки: "Weapon_SLAM.ThrowMode" { "channel" "CHAN_VOICE" "volume" "1.0" "soundlevel" "SNDLVL_75dB" "wave" "weapons/slam/throw_mode.wav" } "Weapon_SLAM.TripMineMode" { "channel" "CHAN_VOICE" "volume" "1.0" "soundlevel" "SNDLVL_75dB" "wave" "weapons/slam/mine_mode.wav" } "Weapon_SLAM.SatchelDetonate" { "channel" "CHAN_VOICE" "volume" "1.0" "soundlevel" "SNDLVL_75dB" "wave" "weapons/slam/detonator_button.wav" } "Weapon_SLAM.TripMineAttach" { "channel" "CHAN_VOICE" "volume" "1.0" "soundlevel" "SNDLVL_75dB" "wave" "weapons/slam/mine_deploy.wav" } "Weapon_SLAM.SatchelThrow" { "channel" "CHAN_VOICE" "volume" "1.0" "soundlevel" "SNDLVL_75dB" "wave" "weapons/slam/throw.wav" } "Weapon_SLAM.SatchelAttach" { "channel" "CHAN_VOICE" "volume" "1.0" "soundlevel" "SNDLVL_75dB" "wave" "weapons/slam/mine_deploy.wav" } И осталось совсем чуть-чуть! Зайдите в папку вашего мода\cfg\skill.cfg там найдите и там разцитируйте эти строчки: //sk_plr_dmg_satchel "150" //sk_npc_dmg_satchel "75" //sk_satchel_radius "150" А потом эти: //sk_plr_dmg_tripmine "150" //sk_npc_dmg_tripmine "125" //sk_tripmine_radius "200" Всё, можно запускать игру и смотреть как всё это дело работает Звуки, материалы и модели качать здесь или вытаскивать из Миссинг Инфо.
|