Как создать натив на выдачу оружия в CS 1.6?
Как создать натив на выдачу оружия в CS 1.6?

Все чаще и чаще вижу в разных группах подобный вопрос "как добавить натив в extra item", в данной статье я попробую подробно рассказать как добавить натив в любую пушку!

Начнём с того, что мы скачаем любой плагин оружия для Zombie Plague 4.3 (и выше).

У меня будет на примере оружие Petrol Boomer от Dias'a. Скачать плагин можно от сюда: https://tb-team.com/counter-strike/zombie-plague/extra_items/971-zp-extra-item-petrol-boomer.html.

Для того, чтобы сделать натив, нам нужна функция выдачи оружия, а так как оружие для Zombie Plague 4.3, значит оно автоматически будет добавляться в Extra-Items. Это нам упростит задачу.

1. Ищем функцию zp_extra_item_selected
public zp_extra_item_selected(id, itemid)
{
	if(itemid == g_pet) Get_PB(id)
}


2. Видим что после проверки на itemid идёт функция выдачи оружия: Get_PB(id)

3. Создаём натив
public plugin_natives()
{
	register_native("zp_give_user_petrolboomer", "Get_PB", 1);
}


Где zp_give_user_petrolboomer - это наш натив будет в сторонних плагинах
Где Get_PB - это название функции выдачи оружия



Однако, бывает так, что оружия выдаются не через отдельную функцию, а сразу же в zp_extra_item_selected написан весь код выдачи оружия. Наглядный вариант мы видим здесь: https://tb-team.com/counter-strike/zombie-plague/extra_items/538-zp-extra-item-m4a1-frost.html



1. Ищем также zp_extra_item_selected

public zp_extra_item_selected(player, itemid)
{
	if (itemid == g_iItemID) 
	{
		g_bHasFrostM4A1[player] = true
		ham_strip_weapon(player, "weapon_m4a1")
		give_item(player, "weapon_m4a1")
		cs_set_user_bpammo(player, CSW_M4A1, 90)
		new sName[32]
		get_user_name(player, sName, 31)
		set_hudmessage(random(255), random(255), random(255), -1.0, 0.17, 1, 0.0, 5.0, 1.0, 1.0, -1)
		show_hudmessage(0, "%s Купил Frost M4A1!", sName)
		ColorPrint(player, "^1[^4Zombie-Amxx.Ru^1] ^3Вы купили Frost M4A1^1!")
	}
}

2. Всё что идёт после if (itemid == g_iItemID) можно копировать, а именно этот код

g_bHasFrostM4A1[player] = true
ham_strip_weapon(player, "weapon_m4a1")
give_item(player, "weapon_m4a1")
cs_set_user_bpammo(player, CSW_M4A1, 90)
new sName[32]
get_user_name(player, sName, 31)
set_hudmessage(random(255), random(255), random(255), -1.0, 0.17, 1, 0.0, 5.0, 1.0, 1.0, -1)
show_hudmessage(0, "%s Купил Frost M4A1!", sName)
ColorPrint(player, "^1[^4Zombie-Amxx.Ru^1] ^3Вы купили Frost M4A1^1!")

3. Создаём функцию для выдачи данного оружия. У меня же это будет
public give_frost_m4(player)


Прошу заметить, что я указал player для индекса игрока, так как в выдаче оружия было указано player, а не id / iPlayer и тому подобное.
4. Вписываем в функцию то, что мы скопировали
public give_frost_m4(player)
{
	g_bHasFrostM4A1[player] = true
	ham_strip_weapon(player, "weapon_m4a1")
	give_item(player, "weapon_m4a1")
	cs_set_user_bpammo(player, CSW_M4A1, 90)
	new sName[32]
	get_user_name(player, sName, 31)
	set_hudmessage(random(255), random(255), random(255), -1.0, 0.17, 1, 0.0, 5.0, 1.0, 1.0, -1)
	show_hudmessage(0, "%s Купил Frost M4A1!", sName)
	ColorPrint(player, "^1[^4Zombie-Amxx.Ru^1] ^3Вы купили Frost M4A1^1!")
}


5. Ну и теперь создаём сам натив
public plugin_natives()
{
	register_native("zp_give_user_frostm4", "give_frost_m4", 1);
}



Ну и теперь нам осталось добавить данные нативы например в VIP меню.


1.Открываем VIP меню и в начале плагина, вписываем данный код
native zp_give_user_petrolboomer(iPlayer);
native zp_give_user_frostm4(iPlayer);

2. Ну и идём туда, где вы будете выдавать само оружие и прописываете один из нужных вам нативов. Обязательно с указанием правильного индекса игрока.
На этом всё, если у кого то есть желания отблагодарить автора за столь полезную статью, то кнопка ниже

Hello, Our administration publishes only cannon content, put like under the post below and write the top comment, we are preparing the material just for you, Darling Гость.

Donate You can make the author xUnicorn, a gift in the form of a donation to his Paypal ;)


Comments 6
  1. kHRYSTAL
    Напиши статью как добавить jump grenade для зомби.
    • 22 December 2018 20:18
    1. Mort3m
      Mort3m
      • +2
      зарегать деплой на три вида гранат и в деплое выставлять модель
      источник: коды тёрки
      • 23 December 2018 00:14
      1. DeMNiX
        DeMNiX
        • +1
        в зп curweapon сбивает deploy
        держу в курсе
        • 23 December 2018 19:39
        1. xUnicorn
          Нет, так как в ЗП для зомби прописана v_ модель гранаты только для HEGRENADE (то есть инфекционная граната), другие не используются в ЗП для зомби.
          • 25 December 2018 16:40
          1. Mort3m
            Mort3m
            • 0
            буду знать, а так, брал пример с твоего кода
            • 28 December 2018 03:09
  2. ipman11223
    Слушай а вот если после проверки нет команды , тогда что делать ? 
    public zp_extra_item_selected(id, itemid)
    {
    if(itemid == g_itemid_svd)
    {
    drop_weapons(id, 1);
    new iWep2 = give_item(id,"weapon_xm1014")
    if( iWep2 > 0 )
    {
    cs_set_weapon_ammo( iWep2, get_pcvar_num(cvar_clip_svd) )
    cs_set_user_bpammo (id, CSW_XM1014, get_pcvar_num(cvar_ammo_svd))
    }
    • 24 June 2019 22:45
Users belonging to group Guests cannot add comments to this article.
Base for Your Build
Information

Welcome to TB-TEAM.COM!

To become a full-fledged user of our portal, you need to register.
Register
Create your own account!

Register Now
Log In
Already registered? Go ahead and log in!

Log In