Lacosta Дата: Вторник, 04.10.2011, 15:39 | Сообщение # 1
Сообщений: 70
Группа:
Гл. Администратор
Что нужно: 1. Руки 2. Знание хоть чуть-чуть скриптинга! Создаем файл с именем weapon_menu.sma(буду описывать предметы из extra item's CSO WEAPON). Code
#include <amxmodx> #include <amxmisc> #include <cstrike> #include <hamsandwich> #include <fun> #include <zombieplague> new SayText; public plugin_init() { register_plugin("New Weapon Menu", "1.0", "Ath[U]Lon") RegisterHam(Ham_Spawn, "player", "Spawn_post", 1) register_clcmd("wpn_menu","clcmd_menu") register_clcmd("wpn_menu2","clcmd_menu2") SayText = get_user_msgid("SayText") } public Spawn_post(id) { if(is_user_alive(id) && is_user_connected(id) && !zp_get_user_zombie(id)) { my_wpn(id) } } public clcmd_menu(id) { if(is_user_alive(id) && !zp_get_user_zombie(id) && !zp_get_user_survivor(id)) { my_wpn(id) } else { print_col_chat( id, "^4Menus are accessible only to ^3Humans") } } public clcmd_menu2(id) { if(is_user_alive(id) && !zp_get_user_zombie(id) && !zp_get_user_survivor(id)) { my_wpn_menu(id) } else { print_col_chat( id, "^4Menus are accessible only to ^3Humans") } } public my_wpn(id) { new menu = menu_create("\rОсновное меню ", "new_wpn") menu_additem(menu, "\w\rАвтомат\y[M4A1]", "1", 0); menu_additem(menu, "\w\rАвтомат\y[AK-47]", "2", 0); menu_additem(menu, "\w\rАвтомат\y[Galil]", "3", 0); menu_additem(menu, "\w\rДробовик\y[Xm1014]", "4", 0); menu_additem(menu, "\w\rПулемет\y[M249]", "5", 0); menu_additem(menu, "\w\r[Винтовка]\w[M24](20 ammo)", "6", 0); menu_setprop(menu, MPROP_EXIT, MEXIT_ALL) menu_display(id, menu, 0) return PLUGIN_HANDLED } public new_wpn(id, menu, item) { if (item == MENU_EXIT) { menu_destroy(menu) return PLUGIN_HANDLED } new data[15], iName[64] new access, callback menu_item_getinfo(menu, item, access, data,15, iName, 64, callback) new key = str_to_num(data) switch(key) { case 1: { give_item(id, "weapon_m4a1") cs_set_user_bpammo (id, CSW_M4A1, 100) client_cmd(id, "wpn_menu2"); menu_destroy(menu) return PLUGIN_HANDLED } case 2: { give_item(id, "weapon_ak47") cs_set_user_bpammo (id, CSW_AK47, 100) client_cmd(id, "wpn_menu2"); menu_destroy(menu) return PLUGIN_HANDLED } case 3: { give_item(id, "weapon_galil") cs_set_user_bpammo (id, CSW_GALIL, 120) client_cmd(id, "wpn_menu2"); menu_destroy(menu) return PLUGIN_HANDLED } case 4: { give_item(id, "weapon_xm1014") cs_set_user_bpammo (id, CSW_XM1014, 35) client_cmd(id, "wpn_menu2"); menu_destroy(menu) return PLUGIN_HANDLED } case 5: { give_item(id, "weapon_m249") cs_set_user_bpammo (id, CSW_M3, 40) client_cmd(id, "wpn_menu2"); menu_destroy(menu) return PLUGIN_HANDLED } case 6: { zp_force_buy_extra_item(id, zp_get_extra_item_id("\r[Винтовка]\w[M24]"), 0); client_cmd(id, "wpn_menu2"); menu_destroy(menu) return PLUGIN_HANDLED } } menu_destroy(menu) return PLUGIN_HANDLED } public my_wpn_menu(id) { new menu = menu_create("\yВторичное меню выбора оружия", "new_wpn_menu") menu_additem(menu, "\w\r[Пистолет]\y[Usp]", "1", 0); menu_additem(menu, "\w\r[Пистолет]\y[Deagle]", "2", 0); menu_additem(menu, "\w\r[Пистолет]\y[Dual Elite]", "3", 0); menu_additem(menu, "\w\r[Пистолет]\y[mushket](10 ammo)", "4", 0); menu_setprop(menu, MPROP_EXIT, MEXIT_ALL) menu_display(id, menu, 0) return PLUGIN_HANDLED } public new_wpn_menu(id, menu, item) { if (item == MENU_EXIT) { menu_destroy(menu) return PLUGIN_HANDLED } new data[15], iName[64] new access, callback menu_item_getinfo(menu, item, access, data,15, iName, 64, callback) new key = str_to_num(data) switch(key) { case 1: { give_item(id, "weapon_usp") cs_set_user_bpammo (id, CSW_USP, 60) client_cmd(id, "/knife"); give_item(id, "weapon_hegrenade") give_item(id, "weapon_flashbang") menu_destroy(menu) return PLUGIN_HANDLED } case 2: { give_item(id, "weapon_deagle") cs_set_user_bpammo (id, CSW_DEAGLE, 40) client_cmd(id, "/knife"); give_item(id, "weapon_hegrenade") give_item(id, "weapon_flashbang") menu_destroy(menu) return PLUGIN_HANDLED } case 3: { give_item(id, "weapon_elite") cs_set_user_bpammo (id, CSW_ELITE, 80) client_cmd(id, "/knife"); give_item(id, "weapon_hegrenade") give_item(id, "weapon_flashbang") client_cmd(id, "knife"); return PLUGIN_HANDLED } case 4: { zp_force_buy_extra_item(id, zp_get_extra_item_id("[Мушкет]\r[new]"), 0); client_cmd(id, "/knife"); give_item(id, "weapon_hegrenade") give_item(id, "weapon_flashbang") menu_destroy(menu) return PLUGIN_HANDLED } } menu_destroy(menu) return PLUGIN_HANDLED } 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(); } } } } public zp_user_infected_post(id, infector) { menu_cancel(id) }
Расшифровка: Тут мы регистрируем какое оружие будет добавлено! Ищем: Code
menu_additem(menu, "\w\r[Винтовка]\w[M24](20 ammo)", "6", 0);
Тут мы пишем команду которая будет выдавать оружие Code
case 6: { zp_force_buy_extra_item(id, zp_get_extra_item_id("\r[Винтовка]\w[M24]"), 0); client_cmd(id, "wpn_menu2"); menu_destroy(menu) return PLUGIN_HANDLED }
Тоже самое идет с второстепенным оружием.
Подпись
Lacosta Дата: Суббота, 19.11.2011, 17:58 | Сообщение # 3
Сообщений: 70
Группа:
Гл. Администратор
Quote (mafiozi )
я использовал эту функцыю zp_force_buy_extra_item(id, zp_get_extra_item_id("\r[Винтовка]\w[M24]"), 0); client_cmd(id, "wpn_menu2"); menu_destroy(menu) return PLUGIN_HANDLED все получилось но как теперь это оружие из extra item убрать ?
mafiozi , открываешь плагин оружия cso и где идет: Пример: Quote
g_itemid = zp_register_extra_item("[Автомат]\r[cart blue]", 30, ZP_TEAM_HUMAN)
заменяем или добавляем: Quote
\\g_itemid = zp_register_extra_item("[Автомат]\r[cart blue]", 30, ZP_TEAM_HUMAN)
Подпись