Для этого нам понадобится само оружие и нативы, которые мы в нем сделаем. Возьмем Golden AK-47 для примера. Собственно, вот наш Golden AK-47
[ZP] Extra Item: Golden Ak 47 Team: Humans
Description: This plugin adds a new weapon for Human Teams. Weapon Cost: 30
Features: - This weapon do more damage - This weapon has zoom - Launch Lasers - This weapon has unlimited bullets
Credits:
KaOs - For his Dual MP5 mod
Cvars:
- zp_goldenak_dmg_multiplier - Damage Multiplier for Golden Ak 47 - zp_goldenak_gold_bullets - Golden bullets effect ? - zp_goldenak_custom_model - Golden ak Custom Model - zp_goldenak_unlimited_clip - Golden ak Unlimited Clip
new vec1[3], vec2[3] get_user_origin(id, vec1, 1) // origin; your camera point. get_user_origin(id, vec2, 4) // termina; where your bullet goes (4 is cs-only)
Далее мы создаем функцию, в которой описываем, что происходит при использовании натива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;
Натив создан. Вот, что у нас вышло:
[ZP] Extra Item: Golden Ak 47 Team: Humans
Description: This plugin adds a new weapon for Human Teams. Weapon Cost: 30
Features: - This weapon do more damage - This weapon has zoom - Launch Lasers - This weapon has unlimited bullets
Credits:
KaOs - For his Dual MP5 mod
Cvars:
- zp_goldenak_dmg_multiplier - Damage Multiplier for Golden Ak 47 - zp_goldenak_gold_bullets - Golden bullets effect ? - zp_goldenak_custom_model - Golden ak Custom Model - zp_goldenak_unlimited_clip - Golden ak Unlimited Clip
new vec1[3], vec2[3] get_user_origin(id, vec1, 1) // origin; your camera point. get_user_origin(id, vec2, 4) // termina; where your bullet goes (4 is cs-only)
Дальше надо создать новый.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)