После закупки/выбора оружия вам будет предложен выбор ножа. 1. Нож (+Бег, +DMGx3)
2. Нож (+Отдача, +DMGx5)
3. Нож (+Прыжок, +DMGx2)
4. Нож (VIP) - имеет все способности.
Как настроить плагин.Находим: new KNIFE1_V_MODEL[] = "models/a.mdl"
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_V_MODEL[] = "models/a.mdl"
new KNIFE1_P_MODEL[] = "models/a.mdl"
на свою модель:new KNIFE1_V_MODEL[] = "models/cso/v_strong_knife.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
- 1 нож
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;
}