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
// Added by Shidla public fw_SetModel(entity, model[]) { // Entity is not valid if(!is_valid_ent(entity)) return FMRES_IGNORED;
// Entity model is not w_ak47 if(!equal(model, "models/w_ak47.mdl")) return FMRES_IGNORED;
// Get classname static szClassName[33] entity_get_string(entity, EV_SZ_classname, szClassName, charsmax(szClassName))
// Not a Weapon box if(!equal(szClassName, "weaponbox")) return FMRES_IGNORED
// Some vars static iOwner, iStoredGalilID
// Get owner iOwner = entity_get_edict(entity, EV_ENT_owner)
// Get drop weapon index (galil) to use in fw_Galil_AddToPlayer forward iStoredGalilID = find_ent_by_owner(ENG_NULLENT, "weapon_ak47", entity)
// Entity classname is weaponbox, and galil has founded if(g_HasAk[iOwner] && is_valid_ent(iStoredGalilID)) { // Setting weapon options entity_set_int(iStoredGalilID, EV_INT_WEAPONKEY, GAK_WEAPONKEY)
// Reset user vars g_HasAk[iOwner] = false
// Set weaponbox new model entity_set_model(entity, AK_W_MODEL)
return FMRES_SUPERCEDE }
return FMRES_IGNORED }
// Added by Shidla public fw_GAK47AddToPlayer (GAK47, id) { // Make sure that this is M79 if( is_valid_ent(GAK47) && is_user_connected(id) && entity_get_int(GAK47, EV_INT_WEAPONKEY) == GAK_WEAPONKEY) { // Update g_HasAk[id] = true
stock drop_prim(id) { new weapons[32], num get_user_weapons(id, weapons, num) for (new i = 0; i < num; i++) { if (Wep_ak47 & (1<)) { static wname[32] get_weaponname(weapons[i], wname, sizeof wname - 1) engclient_cmd(id, "drop", wname) } } }
stock print_col_chat(const id, const input[], any:...) { new count = 1, players[32]; static msg[191]; vformat(msg, 190, input, 3); replace_all(msg, 190, "!g", "^4"); // Green Color replace_all(msg, 190, "!y", "^1"); // Default Color replace_all(msg, 190, "!t", "^3"); // Team Color if (id) players[0] = id; else get_players(players, count, "ch"); { for ( new i = 0; i < count; i++ ) { if ( is_user_connected(players[i]) ) { message_begin(MSG_ONE_UNRELIABLE, SayText, _, players[i]); write_byte(players[i]); write_string(msg); message_end(); } } } }
Quote
Далее мы делаем натив give_golden_ak(id)
Для этого мы создаем новую функцию и регистрируем в ней натив:
Quote
public plugin_natives() { register_native("give_golden_ak", "native_give_golden_ak", 1) }
Quote
Далее мы создаем функцию, в которой описываем, что происходит при использовании натива give_golden_ak(id) В ней мы должны подтвердить, что у игрока есть [i]Golden AK-47
Quote
g_HasAk[player] = true;
Вставляем это в функцию native_give_golden_ak (она была зарегистрирована в нативе)
Quote
public native_give_golden_ak(player) { g_HasAk[player] = true; }
Дальше надо создать новый .inc файл: ( предположим: weapon.inc ) Пишешь в нем:
Quote
/* * Gives Golden AK-47 * * @param id Player index. */ native give_golden_ak(id)
А теперь этот .inc нужно вызвать в Zombie Plague Пишем в главном плагине Zombie Plague:
Quote
#include
Теперь Переходим к самой zombie plague. Для начала Нам нужно изменить название и цвет оружия ( По желанию )
Далее Находим функцию, в которой и прописана выдача оружия. Вот и она
// 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) } }
Копирование информации с портала без указания первоначального источника ЗАПРЕЩЕННО! Бесплатный конструктор сайтов - uCoz | Все права защищены. | RIP сделан специально для CS-Bloody.3dn.Ru