[ZP] Server Addon: Knife

[ZP] Server Addon: Knife

Описание:
Плагин дает возможность выбора ножей в начале раунда для ZP 4.3

Особенности ножей:
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;
}


Чистый исходник: Вы не можете скачивать файлы с нашего сервера
R.S: Если Вы скачали настроенный плагин, то рaскидайте файлы по папкам
Раздел: Плагины CS 1.6   Автор: antoniy Просмотров: 3794

ЗАбыл еще дописать, если скачали настроенный исходник, то обязательно сделайте это:

Теперь когда вы всё сделали, нужно включить показ этого меню в игре. Открываем исходник зомби мода. Ищем функцию - 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;
}
Это ты который покупал?
DeViL13697,
нет
Понятно...
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.
Вход на Amxservera.com