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

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

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

У меня будет на примере оружие Petrol Boomer от Dias'a. Скачать плагин можно от сюда: https://cs-wz.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://cs-wz.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. Ну и идём туда, где вы будете выдавать само оружие и прописываете один из нужных вам нативов. Обязательно с указанием правильного индекса игрока.
На этом всё, если у кого то есть желания отблагодарить автора за столь полезную статью, то кнопка ниже

Привет, наша адмнистрация публикует только пушечный контент, поставь лайк под постом ниже и напишите самый топовый комментарий, мы готовим материал только для тебя, любимый Гость.

Пожертвовать Вы можете сделать автору xUnicorn, подарок в виде пожертвования на его электронную копилку ;)


Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.


Основа для вашей сборки
ReHLDS 3.13.0.788

ReHLDS (Reverse-engineered) - это новый шаг вперед, который дает второе дыхание нашим серверам. ReHLDS работает в 2 раза быстрей, чем HLDS.

AmxModx 5.2.9.4

AMXModX - это Metamod дополнение, которое позволяет создавать новые модификации для Half-Life на языке Pawn

Reunion 0.1.0.137

Reunion является продолжением Dproto для ReHLDS. Это metamod плагин, который позволяет заходить 47/48 Non-Steam на сервер.

Revoice 0.1.0.34

Revoice - это Metamod plugin, который дает возможность общения голосовым чатом между non-steam и steam клиентами.

Metamod-r 1.3.0.131

Новый Metamod-r содержит огромное количество оптимизаций производительности и намного более чистый код. Ядро было написано с использованием JIT-компилятора.

Ultimate Unprecacher 1.1

Ultimate Unprecacher являет плагином для MetaMod, работает он по принципу отключение не нужных ресурсов на вашем сервере, тем самым вы сможете освободить места для ресурсов под ваши плагины, с помощью данного модуля можно избавиться от ошибки 512!

ReAuthCheck 0.1.6

ReAuthCheck - это Metamod плагин, который занимается проверкой ваших игроков на валидность, с помощью данного модуля для REHLDS вы сможете защитить свой сервер от ботов, которые постоянно спамят рекламу или просто забивают слот на сервере!

NetBufExtender (NBEX) 1.0

NetBufExtender или NBEX - это метамод-плагин, который расширяет "интернет-буфер": буферы сервера и клиента(гарантия не 100%). Расширяет до 64 кб. Это значит, что у игроков уменьшается вероятность быть кикнутыми с ошибкой "Reliable channel overflowed".

UserInfoNetOptimizer (UINO) 1.0

UINO — metamod-плагин, который позволяет удалять ненужные поля из userinfo(setinfo) когда движок передаёт его другим игрокам на сервере. Данная мера уменьшает объём передаваемых данных и немного сокращает шанс быть кикнутым с "Reliable channel overflowed".

Информация

Добро пожаловать на CS-WZ.COM!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запись!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт