
После закупки/выбора оружия вам будет предложен выбор ножа.
2. Нож (+Отдача, +DMGx5)
3. Нож (+Прыжок, +DMGx2)
4. Нож (VIP) – имеет все способности.
Автор: CHyCMyMpNk
После закупки/выбора оружия вам будет предложен выбор ножа.
2. Нож (+Отдача, +DMGx5)
3. Нож (+Прыжок, +DMGx2)
4. Нож (VIP) – имеет все способности.
Как настроить плагин.
Находим:
new KNIFE1_P_MODEL[] = \”models/a.mdl\”
new KNIFE2_V_MODEL[] = \”models/b.mdl\”
new KNIFE2_P_MODEL[] = \”models/b.mdl\”
new KNIFE3_V_MODEL[] = \”models/c.mdl\”
new KNIFE3_P_MODEL[] = \”models/c.mdl\”
new KNIFE4_V_MODEL[] = \”models/d.mdl\”
new KNIFE4_P_MODEL[] = \”models/d.mdl\”
Можно заметить что у каждой модели своё название – KNIFE1_V_MODEL ,KNIFE2_V_MODEL ,KNIFE3_P_MODEL ,KNIFE4_P_MODEL и т.д.
Берём например модель Strong ножа
Изменяем:
new KNIFE1_P_MODEL[] = \”models/a.mdl\”
на свою модель:
new KNIFE1_P_MODEL[] = \”models/cso/p_strong_knife.mdl\”
Идём к звукам. Находим такие строчки:
new const a_sounds[][] ={ "1/knife_deploy1.wav", "1/knife_hit1.wav", "1/knife_hit2.wav", "1/knife_hit3.wav", "1/knife_hit4.wav", "1/knife_hitwall1.wav", "1/knife_slash1.wav", "1/knife_slash2.wav", "1/knife_stab.wav"}new const b_sounds[][] ={ "2/knife_deploy1.wav", "2/knife_hit1.wav", "2/knife_hit2.wav", "2/knife_hit3.wav", "2/knife_hit4.wav", "2/knife_hitwall1.wav", "2/knife_slash1.wav", "2/knife_slash2.wav", "2/knife_stab.wav"}new const c_sounds[][] ={ "3/knife_deploy1.wav", "3/knife_hit1.wav", "3/knife_hit2.wav", "3/knife_hit3.wav", "3/knife_hit4.wav", "3/knife_hitwall1.wav", "3/knife_slash1.wav", "3/knife_slash2.wav", "3/knife_stab.wav"}new const d_sounds[][] ={ "4/knife_deploy1.wav", "4/knife_hit1.wav", "4/knife_hit2.wav", "4/knife_hit3.wav", "4/knife_hit4.wav", "4/knife_hitwall1.wav", "4/knife_slash1.wav", "4/knife_slash2.wav", "4/knife_stab.wav"}
Тут вам нужно будет прописать путь до ваших звуков. В a_sounds[][] = находятся звуки для KNIFE1_ ,соответственно для b_ , c_ и d_ это звуки от 2, 3, и 4 ножей. Выставляем путь :
new const a_sounds[][] ={ "cso/strong/knife_deploy1.wav", "cso/strong/knife_hit1.wav", "cso/strong/knife_hit2.wav", "cso/strong/knife_hit3.wav", "cso/strong/knife_hit4.wav", "cso/strong/knife_hitwall1.wav", "cso/strong/knife_slash1.wav", "cso/strong/knife_slash2.wav", "cso/strong/knife_stab.wav"}
Далее находим меню:
build_menu(){ menu_additem(g_knife_menu, "1 (+Бег, +DMGx3", "1") menu_additem(g_knife_menu, "2 (+Отдача, +DMGx5)", "2") menu_additem(g_knife_menu, "3 (+Прыжок, +DMGx2)", "3") menu_additem(g_knife_menu, "4 (VIP)", "4") menu_setprop(g_knife_menu, MPROP_PERPAGE, 0)}
Изменяем:
menu_additem(g_knife_menu, "1 (+Бег, +DMGx3", "1")
на:
menu_additem(g_knife_menu, "Strong (+Бег, +DMGx3", "1")
Таким образом в игре выбрав этот нож, вам выдаться модель какую вы указали со своими звуками.
Дальше можно указать сообщение которое идёт в логи. Находим функцию public message_DeathMsg. В ней видим:
if(equal(szTruncatedWeapon, "knife") && get_user_weapon(iattacker) == CSW_KNIFE) { if(g_KNIFE1[iattacker]) set_msg_arg_string(4, "1 knife") } if(equal(szTruncatedWeapon, "knife") && get_user_weapon(iattacker) == CSW_KNIFE) { if(g_KNIFE2[iattacker]) set_msg_arg_string(4, "2 knife") } if(equal(szTruncatedWeapon, "knife") && get_user_weapon(iattacker) == CSW_KNIFE) { if(g_KNIFE3[iattacker]) set_msg_arg_string(4, "3 knife") } if(equal(szTruncatedWeapon, "knife") && get_user_weapon(iattacker) == CSW_KNIFE) { if(g_KNIFE4[iattacker]) set_msg_arg_string(4, "4 knife") } if(equal(szTruncatedWeapon, "knife") && get_user_weapon(iattacker) == CSW_KNIFE) { if(!g_KNIFE1[iattacker] && !g_KNIFE2[iattacker] && !g_KNIFE3[iattacker] && !g_KNIFE4[iattacker] && !zp_get_user_zombie(iattacker)) set_msg_arg_string(4, "knife") }
Меняем:
if(equal(szTruncatedWeapon, "knife") && get_user_weapon(iattacker) == CSW_KNIFE) { if(g_KNIFE1[iattacker]) set_msg_arg_string(4, "1 knife") }
на:
if(equal(szTruncatedWeapon, "knife") && get_user_weapon(iattacker) == CSW_KNIFE) { if(g_KNIFE1[iattacker]) set_msg_arg_string(4, "Strong") }
Далее выставляем свои значения:
cvar_knock = register_cvar("zp_knife_power" , "10"); cvar_jump = register_cvar("zp_knife_jump" , "300.0"); cvar_knife_gore = register_cvar("zp_knife_effect" , "1"); cvar_dmgmult1 = register_cvar("zp_knife_dmg_muiti1" , "3"); cvar_dmgmult2 = register_cvar("zp_knife_dmg_muiti2" , "5"); cvar_dmgmult3 = register_cvar("zp_knife_dmg_muiti3" , "2"); cvar_knife_spd = register_cvar("zp_knife_spd" , "300"); cvar_jump_vip = register_cvar("zp_knife_jump_vip" , "280.0"); cvar_dmgmult_vip = register_cvar("zp_knife_dmg_vip" , "4"); cvar_knife_spd_vip = register_cvar("zp_knife_spd_vip" , "280"); cvar_knock_vip = register_cvar("zp_knife_power_vip" , "15"); - вкл/выкл дополнительную кровь для ножей
zp_knife_effect
zp_knife_dmg_muiti1 – урон
zp_knife_spd – бег
– 2 нож
zp_knife_dmg_muiti2 – урон
zp_knife_power – сила отдачи
– 3 нож
zp_knife_dmg_muiti3 – урон
zp_knife_jump – прыжок
– 4 нож его можгут использовать только админы или випы с пределённым флагом
zp_knife_jump_vip – прыжок
zp_knife_dmg_vip – урон
zp_knife_spd_vip – бег
zp_knife_power_vip – сила отдачи
Флаг доступа можно изменить тут – #define VIP ADMIN_LEVEL_H
Теперь когда вы всё сделали, нужно включить показ этого меню в игре. Открываем исходник зомби мода. Ищем функцию – public menu_buy2 В самом конце кода вам нужно добавить строчку client_cmd(id, \”/knife\”);
Должно получится так :
// бла бла бла // Give the new weapon and full ammo fm_give_item(id, wname) ExecuteHamB(Ham_GiveAmmo, id, MAXBPAMMO[weaponid], AMMOTYPE[weaponid], MAXBPAMMO[weaponid]) client_cmd(id, "/knife"); return PLUGIN_HANDLED;}
От автора: