(Статья) Добавляем новое оружие в меню покупки zp 4.3/zpa 1.6.1

(Статья) Добавляем новое оружие в меню покупки zp 4.3/zpa 1.6.1

Описание:
[Статья] о том как добавить новое оружие в меню покупки zp/zpa


Этапы:
Доброго времени суток, сегодня мы будем добавлять новое оружие в меню покупки Zombie Plague. Для этого нам понадобится само оружие и нативы, которые мы в нем сделаем. Возьмем Golden AK-47 для примера.


Собственно, вот наш Golden AK-47:




Далее мы делаем натив give_golden_ak(id)
Для этого мы создаем новую функцию и регистрируем в ней натив

public plugin_natives()
{
register_native("give_golden_ak", "native_give_golden_ak", 1)
}


Далее мы создаем функцию, в которой описываем, что происходит при использовании натива give_golden_ak(id)
В ней мы должны подтвердить, что у игрока есть Golden AK-47

g_HasAk[player] = true;


Вставляем это в функцию native_give_golden_ak (она была зарегистрирована в нативе)

public native_give_golden_ak(player)
{
g_HasAk[player] = true;
}


Натив создан. Вот, что у нас вышло:


Дальше надо создать новый .inc файл: ( предположим: weapon.inc )
Пишешь в нем:

/*
* Gives Golden AK-47
*
* @param id Player index.
*/
native give_golden_ak(id)


А теперь этот .inc нужно вызвать в Zombie Plague
Пишем в главном плагине Zombie Plague:

#include


Теперь Переходим к самой zombie plague.
Для начала Нам нужно изменить название и цвет оружия ( По желанию )


Далее
Находим функцию, в которой и прописана выдача оружия.
Вот и она

// Buy Primary Weapon
buy_primary_weapon(id, selection)
{
// Drop previous weapons
drop_weapons(id, 1)
drop_weapons(id, 2)

// Strip off from weapons
fm_strip_user_weapons(id)
fm_give_item(id, "weapon_knife")

// Get weapon's id and name
static weaponid, wname[32]
weaponid = ArrayGetCell(g_primary_weaponids, selection)
ArrayGetString(g_primary_items, selection, wname, charsmax(wname))

// Give the new weapon and full ammо
fm_give_item(id, wname)
ExecuteHamB(Ham_GiveAmmo, id, MAXBPAMMO[weaponid], AMMOTYPE[weaponid], MAXBPAMMO[weaponid])

// Weapons bought
g_canbuy[id] = false

// Give additional items
static i
for (i = 0; i < ArraySize(g_additional_items); i++)
{
ArrayGetString(g_additional_items, i, wname, charsmax(wname))
fm_give_item(id, wname)
}


Итак, я изменил имя обычного АК на Golden AK-47, его мы и будем на него менять.
Вставляем этот код в функцию выдачи оружия, в здесь нам и потребуется натив.
Важно: Вставить его ( код оружия ) надо до того места, где выдается обычное оружие


if(weaponid == CSW_AK47)
{
give_golden_ak(id)
}


Вот, что у нас выходит.

// Buy Primary Weapon
buy_primary_weapon(id, selection)
{
// Drop previous weapons
drop_weapons(id, 1)
drop_weapons(id, 2)

// Strip off from weapons
fm_strip_user_weapons(id)
fm_give_item(id, "weapon_knife")

// Get weapon's id and name
static weaponid, wname[32]
weaponid = ArrayGetCell(g_primary_weaponids, selection)
ArrayGetString(g_primary_items, selection, wname, charsmax(wname))

// Give our Golden AK-47
if(weaponid == CSW_AK47)
{
give_golden_ak(id)
}

// Give the new weapon and full ammо
fm_give_item(id, wname)
ExecuteHamB(Ham_GiveAmmo, id, MAXBPAMMO[weaponid], AMMOTYPE[weaponid], MAXBPAMMO[weaponid])

// Weapons bought
g_canbuy[id] = false

// Give additional items
static i
for (i = 0; i < ArraySize(g_additional_items); i++)
{
ArrayGetString(g_additional_items, i, wname, charsmax(wname))
fm_give_item(id, wname)
}
}


Готово, компилируем оба плагина и наслаждаемся своим креативом. :byxat:

Автор: Doomsday (aka Weltgericht)


Если же у вас не чего не получаеться, попробуйте на все наплевать и скачать последние моды для gta 4 чтобы игра казалась более функциональнее и ярче. Вообще GTA 4 уже скоро состариться, на сайте есть новости о новой GTA 5.
Раздел: Статьи CS 1.6   Автор: antoniy Просмотров: 5182

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