Главная » Статьи » Zombie Plague

Добавляем новое оружие в меню покупки zp/zpa
Для этого нам понадобится само оружие и нативы, которые мы в нем сделаем. Возьмем 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

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

// 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)
Категория: Zombie Plague | Добавил: ЭлДоРн (28.03.2012)
Просмотров: 1495 | Теги: ZE, extra iteam, ZP, оружие, Добавляем | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Вверх