|
Стаж: 11 лет
Сообщений: 155
Благодарностей: 35
Полезность: 37
|
День добрый, пытаюсь добавить в версию 1.2 комплект: Цитата 4 - Ак47+дигл+все гранаты+Броня со шлемом (Доступ со 2 раунда) 5- М16+дигл+все гарнаты+Броня со шлемом (Доступ со 2 раунда) 6- AWP+дигл+все гарнаты+Броня со шлемом (Доступ с 3 раунда)  код комлектов(выдернул с версии 1.0 Код:
public cmdpack(id) { new menu = menu_create("\rВыберите оружие", "pa_menu_handler") menu_additem(menu, "M4A1 + Deagle + Все гранаты + Бронежилет", "1") menu_additem(menu, "AK47 + Deagle + Все гранаты + Бронежилет", "2") menu_additem(menu, "AWP + Deagle + Все гранаты + Бронежилет", "3") menu_setprop(menu, MPROP_NEXTNAME, "Далее") menu_setprop(menu, MPROP_BACKNAME, "Назад") menu_setprop(menu, MPROP_EXITNAME, "Выход") menu_display(id, menu, 0) }
public pa_menu_handler(id, menu, item) { if (item == MENU_EXIT) { //cmdmenu(id) menu_destroy(menu) return PLUGIN_HANDLED }
new s_Data[6], s_Name[64], i_Access, i_Callback menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)
new Key = str_to_num(s_Data) switch(Key) { case 1: cmdgiverifle(id, 22, 1) case 2: cmdgiverifle(id, 28, 1) case 3: { if(can_take_round < 3) { cmdpack(id) ChatColor(id,"^4[SERVER] ^3Данный комлект оружия доступен только с^4 3-го^3 раунда") return PLUGIN_HANDLED } cmdgiverifle(id, 18, 1) } } menu_destroy(menu) return PLUGIN_HANDLED } Код:
#include <amxmodx> #include <fun> #include <cstrike>
const PRIMARY_WEAPONS_BIT_SUM = (1<<CSW_XM1014)|(1<<CSW_MAC10)|(1<<CSW_AUG)|(1<<CSW_UMP45)|(1<<CSW_SG550)|(1<<CSW_GALIL)|(1<<CSW_FAMAS)|(1<<CSW_AWP)|(1<<CSW_MP5NAVY)|(1<<CSW_M249)|(1<<CSW_M3)|(1<<CSW_M4A1)|(1<<CSW_TMP)|(1<<CSW_G3SG1)|(1<<CSW_SG552)|(1<<CSW_AK47)|(1<<CSW_P90) const SECONDARY_WEAPONS_BIT_SUM = (1<<CSW_P228)|(1<<CSW_ELITE)|(1<<CSW_FIVESEVEN)|(1<<CSW_USP)|(1<<CSW_GLOCK18)|(1<<CSW_DEAGLE)
new givingweapon[33]
new g_maxplayers
new can_take_round
new can_take_pistols[33] new can_take_equipment[33] new can_take_shotguns[33] new can_take_smgs[33] new can_take_assaultrifles[33] new can_take_sniperrifles[33] new can_take_machineguns[33]
new bool:g_iBlockPlugin
public plugin_init() { register_plugin("Weaponmenu", "1.2", "ill | Ilya Korenkov (Remake)") register_clcmd("weaponmenu", "cmdmenu") register_clcmd("say /wpm", "cmdmenu") register_clcmd("say_team /wpm", "cmdmenu") register_event("HLTV", "event_round_start", "a", "1=0", "2=0") register_event("TextMsg", "event_restart", "a", "2&#Game_C", "2&#Game_w") g_maxplayers = get_maxplayers() new iMap_Name[32], iMap_Prefix[][] = { "awp_", "aim_", "35hp", "fy_" }; get_mapname(iMap_Name, charsmax(iMap_Name)) for(new i; i < sizeof iMap_Prefix; i++) { if(containi(iMap_Name, iMap_Prefix[i]) != -1) g_iBlockPlugin = true } }
public event_restart() { can_take_round = 0 }
public event_round_start() { can_take_round++ for (new id = 1; id <= g_maxplayers; id++) { can_take_pistols[id] = 0 can_take_equipment[id] = 0 can_take_shotguns[id] = 0 can_take_smgs[id] = 0 can_take_assaultrifles[id] = 0 can_take_sniperrifles[id] = 0 can_take_machineguns[id] = 0 } }
public cmdmenu(id) { if(g_iBlockPlugin) { ChatColor(id,"^4[SERVER] ^3Оружейное меню недоступно на этой карте"); return PLUGIN_HANDLED } if (!(get_user_flags(id) & ADMIN_LEVEL_G)) { ChatColor(id,"^4[SERVER] ^3У вас нет доступа к оружейному меню") return PLUGIN_HANDLED } if(!is_user_alive(id)) { ChatColor(id,"^4[SERVER] ^3Оружейное меню доступно только живым") return PLUGIN_HANDLED } new menu = menu_create("\rОружейное меню", "g_menu_handler") menu_additem(menu, "Пистолеты", "1") menu_additem(menu, "Снаряжение", "2") menu_additem(menu, "Дробовики", "3") menu_additem(menu, "Пистолеты-пулеметы", "4") menu_additem(menu, "Штурмовые винтовки", "5") menu_additem(menu, "Снайперские винтовки", "6") menu_additem(menu, "Пулеметы", "7") menu_setprop(menu, MPROP_EXITNAME, "Выход") menu_display(id, menu, 0) return PLUGIN_HANDLED }
public g_menu_handler(id, menu, item) { if (item == MENU_EXIT) { menu_destroy(menu) return PLUGIN_HANDLED } new s_Data[6], s_Name[64], i_Access, i_Callback menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback) new Key = str_to_num(s_Data) switch(Key) { case 1: cmdpistols(id) case 2: cmdequipment(id) case 3: cmdshotguns(id) case 4: cmdsmgs(id) case 5: cmdassaultrifles(id) case 6: cmdsniperrifles(id) case 7: cmdmachineguns(id) } menu_destroy(menu) return PLUGIN_HANDLED }
public cmdpistols(id) { if(can_take_pistols[id] >= 1) { ChatColor(id,"^4[SERVER] ^3Пистолеты можно брать только^4 1 ^3раз за раунд") return PLUGIN_HANDLED } new menu = menu_create("\rПистолеты", "pistols_menu_handler") menu_additem(menu, "Glock 18", "1") menu_additem(menu, "USP", "2") menu_additem(menu, "P228", "3") menu_additem(menu, "Deagle", "4") menu_additem(menu, "Five Seven", "5") menu_additem(menu, "Elite", "6") menu_setprop(menu, MPROP_EXITNAME, "Выход") menu_display(id, menu, 0) return PLUGIN_HANDLED }
public pistols_menu_handler(id, menu, item) { new s_Data[6], s_Name[64], i_Access, i_Callback menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback) new Key = str_to_num(s_Data) switch(Key) { case 1: cmdgivepistol(id, 17) case 2: cmdgivepistol(id, 16) case 3: cmdgivepistol(id, 1) case 4: cmdgivepistol(id, 26) case 5: cmdgivepistol(id, 11) case 6: cmdgivepistol(id, 10) } }
public cmdgivepistol(id, weapon) { givingweapon[id] = weapon drop_weapons(id, 2) can_take_pistols[id]++ if (is_user_alive(id)) { switch(givingweapon[id]) { case 17: { cs_set_user_bpammo(id, givingweapon[id], 120) give_item(id, "weapon_glock18") } case 16: { cs_set_user_bpammo(id, givingweapon[id], 100) give_item(id, "weapon_usp") } case 1: { cs_set_user_bpammo(id, givingweapon[id], 52) give_item(id, "weapon_p228") } case 26: { cs_set_user_bpammo(id, givingweapon[id], 35) give_item(id, "weapon_deagle") } case 11: { cs_set_user_bpammo(id, givingweapon[id], 100) give_item(id, "weapon_fiveseven") } case 10: { cs_set_user_bpammo(id, givingweapon[id], 120) give_item(id, "weapon_elite") } } } }
public cmdequipment(id) { if(can_take_equipment[id] >= 1) { ChatColor(id,"^4[SERVER] ^3Снаряжение можно брать только^4 1 ^3раз за раунд") return PLUGIN_HANDLED } new menu = menu_create("\rСнаряжение", "equipment_menu_handler") menu_additem(menu, "Все гранаты", "1") menu_additem(menu, "Бронежилет", "2") menu_setprop(menu, MPROP_EXITNAME, "Выход") menu_display(id, menu, 0) return PLUGIN_HANDLED }
public equipment_menu_handler(id, menu, item) { new s_Data[6], s_Name[64], i_Access, i_Callback menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback) new Key = str_to_num(s_Data) switch(Key) { case 1: cmdgiveequipment(id, 1) case 2: cmdgiveequipment(id, 2) } }
public cmdgiveequipment(id, item) { givingweapon[id] = item can_take_equipment[id]++ if (is_user_alive(id)) { switch(givingweapon[id]) { case 1: { give_item(id, "weapon_flashbang") give_item(id, "weapon_flashbang") give_item(id, "weapon_hegrenade") give_item(id, "weapon_smokegrenade") } case 2: { cs_set_user_armor(id, 100, CsArmorType:2) } } } }
public cmdshotguns(id) { if(can_take_shotguns[id] >= 1) { ChatColor(id,"^4[SERVER] ^3Дробовики можно брать только^4 1 ^3раз за раунд") return PLUGIN_HANDLED } if(can_take_round < 2) { ChatColor(id,"^4[SERVER] ^3Дробовики доступны только со^4 2-го ^3раунда") return PLUGIN_HANDLED } new menu = menu_create("\rДробовики", "shotguns_menu_handler") menu_additem(menu, "M3", "1") menu_additem(menu, "XM1014", "2") menu_setprop(menu, MPROP_EXITNAME, "Выход") menu_display(id, menu, 0) return PLUGIN_HANDLED }
public shotguns_menu_handler(id, menu, item) { new s_Data[6], s_Name[64], i_Access, i_Callback menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback) new Key = str_to_num(s_Data) switch(Key) { case 1: cmdgiveshotgun(id, 21) case 2: cmdgiveshotgun(id, 5) } }
public cmdgiveshotgun(id, weapon) { givingweapon[id] = weapon drop_weapons(id, 1) can_take_shotguns[id]++ if (is_user_alive(id)) { switch(givingweapon[id]) { case 21: { cs_set_user_bpammo(id, givingweapon[id], 32) give_item(id, "weapon_m3") } case 5: { cs_set_user_bpammo(id, givingweapon[id], 32) give_item(id, "weapon_xm1014") } } } }
public cmdsmgs(id) { if(can_take_smgs[id] >= 1) { ChatColor(id,"^4[SERVER] ^3Пистолеты-пулеметы можно брать только^4 1 ^3раз за раунд") return PLUGIN_HANDLED } if(can_take_round < 2) { ChatColor(id,"^4[SERVER] ^3Пистолеты-пулеметы доступны только со^4 2-го ^3раунда") return PLUGIN_HANDLED } new menu = menu_create("\rПистолеты-пулеметы", "smgs_menu_handler") menu_additem(menu, "Mac 10", "1") menu_additem(menu, "TMP", "2") menu_additem(menu, "MP5 Navy", "3") menu_additem(menu, "UMP 45", "4") menu_additem(menu, "P90", "5") menu_setprop(menu, MPROP_EXITNAME, "Выход") menu_display(id, menu, 0) return PLUGIN_HANDLED }
public smgs_menu_handler(id, menu, item) { new s_Data[6], s_Name[64], i_Access, i_Callback menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback) new Key = str_to_num(s_Data) switch(Key) { case 1: cmdgivesmg(id, 7) case 2: cmdgivesmg(id, 23) case 3: cmdgivesmg(id, 19) case 4: cmdgivesmg(id, 12) case 5: cmdgivesmg(id, 30) } }
public cmdgivesmg(id, weapon) { givingweapon[id] = weapon drop_weapons(id, 1) can_take_smgs[id]++ if (is_user_alive(id)) { switch(givingweapon[id]) { case 7: { cs_set_user_bpammo(id, givingweapon[id], 100) give_item(id, "weapon_mac10") } case 23: { cs_set_user_bpammo(id, givingweapon[id], 120) give_item(id, "weapon_tmp") } case 19: { cs_set_user_bpammo(id, givingweapon[id], 120) give_item(id, "weapon_mp5navy") } case 12: { cs_set_user_bpammo(id, givingweapon[id], 100) give_item(id, "weapon_ump45") } case 30: { cs_set_user_bpammo(id, givingweapon[id], 100) give_item(id, "weapon_p90") } } } }
public cmdassaultrifles(id) { if(can_take_assaultrifles[id] >= 1) { ChatColor(id,"^4[SERVER] ^3Штурмовые винтовки можно брать только^4 1 ^3раз за раунд") return PLUGIN_HANDLED } if(can_take_round < 2) { ChatColor(id,"^4[SERVER] ^3Штурмовые винтовки доступны только со^4 2-го ^3раунда") return PLUGIN_HANDLED } new menu = menu_create("\rШтурмовые винтовки", "assaultrifles_menu_handler") menu_additem(menu, "Famas", "1") menu_additem(menu, "Galil", "2") menu_additem(menu, "M4A1", "3") menu_additem(menu, "AK47", "4") menu_additem(menu, "AUG", "5") menu_additem(menu, "SG552", "6") menu_setprop(menu, MPROP_EXITNAME, "Выход") menu_display(id, menu, 0) return PLUGIN_HANDLED }
public assaultrifles_menu_handler(id, menu, item) { new s_Data[6], s_Name[64], i_Access, i_Callback menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback) new Key = str_to_num(s_Data) switch(Key) { case 1: cmdgiveassaultrifle(id, 15) case 2: cmdgiveassaultrifle(id, 14) case 3: cmdgiveassaultrifle(id, 22) case 4: cmdgiveassaultrifle(id, 28) case 5: cmdgiveassaultrifle(id, 8) case 6: cmdgiveassaultrifle(id, 27) } }
public cmdgiveassaultrifle(id, weapon) { givingweapon[id] = weapon drop_weapons(id, 1) can_take_assaultrifles[id]++ if (is_user_alive(id)) { switch(givingweapon[id]) { case 15: { cs_set_user_bpammo(id, givingweapon[id], 90) give_item(id, "weapon_famas") } case 14: { cs_set_user_bpammo(id, givingweapon[id], 90) give_item(id, "weapon_galil") } case 22: { cs_set_user_bpammo(id, givingweapon[id], 90) give_item(id, "weapon_m4a1") } case 28: { cs_set_user_bpammo(id, givingweapon[id], 90) give_item(id, "weapon_ak47") } case 8: { cs_set_user_bpammo(id, givingweapon[id], 90) give_item(id, "weapon_aug") } case 27: { cs_set_user_bpammo(id, givingweapon[id], 90) give_item(id, "weapon_sg552") } } } }
public cmdsniperrifles(id) { if(can_take_sniperrifles[id] >= 1) { ChatColor(id,"^4[SERVER] ^3Снайперские винтовки можно брать только^4 1 ^3раз за раунд") return PLUGIN_HANDLED } if(can_take_round < 3) { ChatColor(id,"^4[SERVER] ^3Снайперские винтовки доступны только с^4 3-го ^3раунда") return PLUGIN_HANDLED } new menu = menu_create("\rСнайперские винтовки", "sniperrifles_menu_handler") menu_additem(menu, "AWP", "1") menu_additem(menu, "SG550", "2") menu_additem(menu, "G3SG1", "3") menu_setprop(menu, MPROP_EXITNAME, "Выход") menu_display(id, menu, 0) return PLUGIN_HANDLED }
public sniperrifles_menu_handler(id, menu, item) { new s_Data[6], s_Name[64], i_Access, i_Callback menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback) new Key = str_to_num(s_Data) switch(Key) { case 1: cmdgivesniperrifle(id, 18) case 2: cmdgivesniperrifle(id, 13) case 3: cmdgivesniperrifle(id, 24) } }
public cmdgivesniperrifle(id, weapon) { givingweapon[id] = weapon drop_weapons(id, 1) can_take_sniperrifles[id]++ if (is_user_alive(id)) { switch(givingweapon[id]) { case 18: { cs_set_user_bpammo(id, givingweapon[id], 30) give_item(id, "weapon_awp") } case 13: { cs_set_user_bpammo(id, givingweapon[id], 90) give_item(id, "weapon_sg550") } case 24: { cs_set_user_bpammo(id, givingweapon[id], 90) give_item(id, "weapon_g3sg1") } } } }
public cmdmachineguns(id) { if(can_take_machineguns[id] >= 1) { ChatColor(id,"^4[SERVER] ^3Пулеметы можно брать только^4 1 ^3раз за раунд") return PLUGIN_HANDLED } if(can_take_round < 3) { ChatColor(id,"^4[SERVER] ^3Пулеметы доступны только с^4 3-го ^3раунда") return PLUGIN_HANDLED } new menu = menu_create("\rПулеметы", "machineguns_menu_handler") menu_additem(menu, "M249", "1") menu_setprop(menu, MPROP_EXITNAME, "Выход") menu_display(id, menu, 0) return PLUGIN_HANDLED }
public machineguns_menu_handler(id, menu, item) { new s_Data[6], s_Name[64], i_Access, i_Callback menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback) new Key = str_to_num(s_Data) switch(Key) { case 1: cmdgivemachinegun(id, 20) } }
public cmdgivemachinegun(id, weapon) { givingweapon[id] = weapon drop_weapons(id, 1) can_take_machineguns[id]++ if (is_user_alive(id)) { switch(givingweapon[id]) { case 20: { cs_set_user_bpammo(id, givingweapon[id], 200) give_item(id, "weapon_m249") } } } }
public cmdpack(id) { new menu = menu_create("\rВыберите оружие", "pa_menu_handler") menu_additem(menu, "M4A1 + Deagle + Все гранаты + Бронежилет", "1") menu_additem(menu, "AK47 + Deagle + Все гранаты + Бронежилет", "2") menu_additem(menu, "AWP + Deagle + Все гранаты + Бронежилет", "3") menu_setprop(menu, MPROP_NEXTNAME, "Далее") menu_setprop(menu, MPROP_BACKNAME, "Назад") menu_setprop(menu, MPROP_EXITNAME, "Выход") menu_display(id, menu, 0) }
public pa_menu_handler(id, menu, item) { if (item == MENU_EXIT) { //cmdmenu(id) menu_destroy(menu) return PLUGIN_HANDLED }
new s_Data[6], s_Name[64], i_Access, i_Callback menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)
new Key = str_to_num(s_Data) switch(Key) { case 1: cmdgiverifle(id, 22, 1) case 2: cmdgiverifle(id, 28, 1) case 3: { if(can_take_round < 3) { cmdpack(id) ChatColor(id,"^4[SERVER] ^3Данный комлект оружия доступен только с^4 3-го^3 раунда") return PLUGIN_HANDLED } cmdgiverifle(id, 18, 1) } } menu_destroy(menu) return PLUGIN_HANDLED }
stock ChatColor(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, "!team", "^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, get_user_msgid("SayText"), _, players[i]) write_byte(players[i]); write_string(msg); message_end(); } } } }
stock drop_weapons(id, dropwhat) { static weapons[32], num, i, weaponid num = 0 get_user_weapons(id, weapons, num) for (i = 0; i < num; i++) { weaponid = weapons[i] if ((dropwhat == 1 && ((1<<weaponid) & PRIMARY_WEAPONS_BIT_SUM)) || (dropwhat == 2 && ((1<<weaponid) & SECONDARY_WEAPONS_BIT_SUM))) { static wname[32] get_weaponname(weaponid, wname, sizeof wname - 1) engclient_cmd(id, "drop", wname) } } }  при попытки исправлении данных ошибок, в процессе повторного компила количество ошибок вырастает в разы), поэтому прошу помощи реализовать фичу
|