
Стаж: 10 лет
Город: Иваново
Сообщений: 693
Благодарностей: 139
Полезность: 79
|
Код #include <amxmodx> #include <amxmisc> #include <fakemeta_util> #include <hamsandwich>
new g_numRound; new g_iEnable[33], g_iPistol[33]; new const WPNBLOCK = 3; new const VIPBLOCK = 2; new const PREFIX[] = "Сервер кс 1.6"; new g_szKeysMenu = (1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<4)|(1<<5)|(1<<9); new g_szCswSecond[6] = {CSW_P228, CSW_ELITE, CSW_FIVESEVEN, CSW_GALIL, CSW_USP, CSW_GLOCK18}; new g_szCswPrim[18] = {CSW_SCOUT, CSW_XM1014, CSW_MAC10, CSW_AUG, CSW_UMP45, CSW_SG550, CSW_GALIL, CSW_FAMAS, CSW_AWP, CSW_MP5NAVY, CSW_M249, CSW_M3, CSW_M4A1, CSW_TMP, CSW_G3SG1, CSW_SG552, CSW_AK47, CSW_P90} new bool:has_used[32] public plugin_init() { register_plugin("[AMX] Vip", "1.0", "di.alyabev"); register_event("HLTV", "Event_Start_Round", "a", "1=0", "2=0"); register_event("TextMsg", "Event_Restart_Round", "a", "2=#Game_Commencing", "2=#Game_will_restart_in"); RegisterHam(Ham_Spawn, "player", "Ham_PlayerSpawn_Post", true); register_clcmd("vipmenu", "Show_VipMenu"); register_clcmd("say /vipmenu", "Show_VipMenu"); register_menu("VipMenu", g_szKeysMenu, "Handle_VipMenu"); }
public client_putinserver(id) { g_iEnable[id] = 0; g_iPistol[id] = -1; }
public Event_Restart_Round() g_numRound = 0; public Event_Start_Round() g_numRound++; public Ham_PlayerSpawn_Post(id) { if(!is_user_alive(id) || ~get_user_flags(id) & ADMIN_LEVEL_H || g_numRound < VIPBLOCK) return; if(!g_iEnable[id]) Show_VipMenu(id); GivePistol(id, g_iPistol[id]); fm_give_item(id, "weapon_smokegrenade"); fm_give_item(id, "weapon_hegrenade"); fm_give_item(id, "weapon_flashbang"); fm_give_item(id, "weapon_flashbang"); fm_give_item(id, "item_thighpack"); }
public Show_VipMenu(id) { if(~get_user_flags(id) & ADMIN_LEVEL_H) { PrintChat(id, "^1[^4%s^1]^1 Недостаточно прав, чтобы открыть ^3VIP^1.", PREFIX); return PLUGIN_HANDLED; } if(!is_user_alive(id)) { PrintChat(id, "^1[^4%s^1]^1 Вы умерли и не можете открыть ^3VIP^1.", PREFIX); return PLUGIN_HANDLED; } new iPistol[64], iMenu[512], iLen = 0; iLen = formatex(iMenu[iLen], charsmax(iMenu) - iLen, "\rVIP меню [\d%s\r]:^n\wПривет \y%s!^n^n", PREFIX, Player_GetName(id)); iLen += formatex(iMenu[iLen], charsmax(iMenu) - iLen, "\r1. %sВзять AK-47^n", g_numRound < WPNBLOCK ? "\d" : "\w"); iLen += formatex(iMenu[iLen], charsmax(iMenu) - iLen, "\r2. %sВзять M4A1^n", g_numRound < WPNBLOCK ? "\d" : "\w"); iLen += formatex(iMenu[iLen], charsmax(iMenu) - iLen, "\r3. %sВзять FAMAS^n", g_numRound < WPNBLOCK ? "\d" : "\w"); iLen += formatex(iMenu[iLen], charsmax(iMenu) - iLen, "\r4. %sВзять AWP^n^n", g_numRound < WPNBLOCK ? "\d" : "\w"); switch(g_iPistol[id]) { case -1: format(iPistol, charsmax(iPistol), "Не выбран!"); case 0: format(iPistol, charsmax(iPistol), "Deagle"); case 1: format(iPistol, charsmax(iPistol), "Glock18"); case 2: format(iPistol, charsmax(iPistol), "Usp"); } if(g_numRound < VIPBLOCK) { iLen += formatex(iMenu[iLen], charsmax(iMenu) - iLen, "\r5. \dПистолет: %s^n", iPistol); iLen += formatex(iMenu[iLen], charsmax(iMenu) - iLen, "\r6. \dНе Показывать меню %s^n", g_iEnable[id] != 0 ? "\r[Включено]" : "\y[Выключено]"); } else { iLen += formatex(iMenu[iLen], charsmax(iMenu) - iLen, "\r5. \yПистолет: \w%s^n", iPistol); iLen += formatex(iMenu[iLen], charsmax(iMenu) - iLen, "\r6. \wНе Показывать меню %s^n", g_iEnable[id] != 0 ? "\r[Включено]" : "\y[Выключено]"); } iLen += formatex(iMenu[iLen], charsmax(iMenu) - iLen, "^n\r0. Выход"); show_menu(id, g_szKeysMenu, iMenu, -1, "VipMenu"); return PLUGIN_HANDLED; }
public Handle_VipMenu(id, key) { if(!is_user_alive(id) && key != 9) { PrintChat(id, "^1[^4%s^1]^1 Вы умерли и не можете взять в ^3VIP^1.", PREFIX); return PLUGIN_HANDLED; } if(is_user_alive(id)&& !has_used[id] ) { switch(key) { case 0: { if(!isAllowRound(id, WPNBLOCK)) return PLUGIN_HANDLED; fm_strip_prim(id); fm_give_item(id, "weapon_ak47"); fm_set_user_bpammo(id, CSW_AK47, 90); } case 1: { if(!isAllowRound(id, WPNBLOCK)) return PLUGIN_HANDLED; fm_strip_prim(id); fm_give_item(id, "weapon_m4a1"); fm_set_user_bpammo(id, CSW_M4A1, 90); } case 2: { if(!isAllowRound(id, WPNBLOCK)) return PLUGIN_HANDLED; fm_strip_prim(id); fm_give_item(id, "weapon_famas"); fm_set_user_bpammo(id, CSW_FAMAS, 90); } case 3: { if(!isAllowRound(id, WPNBLOCK)) return PLUGIN_HANDLED; fm_strip_prim(id); fm_give_item(id, "weapon_awp"); fm_set_user_bpammo(id, CSW_AWP, 30); } case 4: { if(!isAllowRound(id, VIPBLOCK)) return PLUGIN_HANDLED; if(g_iPistol[id] >= 2) g_iPistol[id] = 0; else g_iPistol[id]++; GivePistol(id, g_iPistol[id]); Show_VipMenu(id); } case 5: { if(!isAllowRound(id, VIPBLOCK)) return PLUGIN_HANDLED; g_iEnable[id] = g_iEnable[id] ? 0 : 1; Show_VipMenu(id); } } has_used[id] = true; } else { PrintChat( id, "^1[^4%s^1]^1 Вы уже использовали .Дождитесь след раунда", PREFIX ) return PLUGIN_HANDLED; } return PLUGIN_HANDLED; }
bool:isAllowRound(id, blockid) { if(g_numRound < blockid) { PrintChat(id, "^1[^4%s^1]^1 Ждите %d раунд%s, чтобы взять в ^3VIP^1.", PREFIX, blockid - g_numRound, blockid - g_numRound == 1 ? "" : "а"); Show_VipMenu(id); return false; } return true; }
stock GivePistol(const id, pistol) { switch(pistol) { case -1: return; case 0: { fm_strip_second(id); fm_give_item(id, "weapon_deagle"); fm_set_user_bpammo(id, CSW_DEAGLE, 35); } case 1: { fm_strip_second(id); fm_give_item(id, "weapon_glock18"); fm_set_user_bpammo(id, CSW_GLOCK18, 100); } case 2: { fm_strip_second(id); fm_give_item(id, "weapon_usp"); fm_set_user_bpammo(id, CSW_USP, 100); } } }
stock fm_strip_second(const id) { for(new i = 0; i < 6; i++) { if(user_has_weapon(id, g_szCswSecond[i])) { fm_strip_user_gun(id, g_szCswSecond[i]); break; } } }
stock fm_strip_prim(const id) { for(new i = 0; i < 18; i++) { if(user_has_weapon(id, g_szCswPrim[i])) { fm_strip_user_gun(id, g_szCswPrim[i]); break; } } }
stock Player_GetName(const id) { new szName[32]; get_user_name(id, szName, charsmax(szName)); return szName; }
stock fm_set_user_bpammo(id, wpnid, ammoid) { new iOffset; switch(wpnid) { case CSW_AWP: iOffset = 377; // ammo_338magnum case CSW_SCOUT, CSW_AK47, CSW_G3SG1: iOffset = 378; // ammo_762nato case CSW_M249: iOffset = 379; // ammo_556natobox case CSW_FAMAS, CSW_M4A1, CSW_AUG, CSW_SG550, CSW_GALI, CSW_SG552: iOffset = 380; // ammo_556nato case CSW_M3, CSW_XM1014: iOffset = 381; // ammo_buckshot case CSW_USP, CSW_UMP45, CSW_MAC10: iOffset = 382; // ammo_45acp case CSW_FIVESEVEN, CSW_P90: iOffset = 383; // ammo_57mm case CSW_DEAGLE: iOffset = 384; // ammo_50ae case CSW_P228: iOffset = 385; // ammo_357sig case CSW_GLOCK18, CSW_MP5NAVY, CSW_TMP, CSW_ELITE: iOffset = 386; // ammo_9mm case CSW_FLASHBANG: iOffset = 387; case CSW_HEGRENADE: iOffset = 388; case CSW_SMOKEGRENADE: iOffset = 389; case CSW_C4: iOffset = 390; default: return; } set_pdata_int(id, iOffset, ammoid, 5); }
stock PrintChat(const id, const input[], any:...) { new count = 1, players[32], msg[191], i; vformat(msg, 190, input, 3) replace_all(msg, 190, "!g", "^4") replace_all(msg, 190, "!y", "^1") replace_all(msg, 190, "!t", "^3") if(id) players[0] = id; else get_players(players, count, "ch") for(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(); } } } Код #include <amxmodx> #include <amxmisc> #include <fakemeta_util> #include <hamsandwich>
new g_numRound; new g_iEnable[33], g_iPistol[33]; new const WPNBLOCK = 3; new const VIPBLOCK = 2; new const PREFIX[] = "Сервер кс 1.6"; new g_szKeysMenu = (1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<4)|(1<<5)|(1<<9); new g_szCswSecond[6] = {CSW_P228, CSW_ELITE, CSW_FIVESEVEN, CSW_GALIL, CSW_USP, CSW_GLOCK18}; new g_szCswPrim[18] = {CSW_SCOUT, CSW_XM1014, CSW_MAC10, CSW_AUG, CSW_UMP45, CSW_SG550, CSW_GALIL, CSW_FAMAS, CSW_AWP, CSW_MP5NAVY, CSW_M249, CSW_M3, CSW_M4A1, CSW_TMP, CSW_G3SG1, CSW_SG552, CSW_AK47, CSW_P90} new bool:has_used[32] public plugin_init() { register_plugin("[AMX] Vip", "1.0", "di.alyabev"); register_event("HLTV", "Event_Start_Round", "a", "1=0", "2=0"); register_event("TextMsg", "Event_Restart_Round", "a", "2=#Game_Commencing", "2=#Game_will_restart_in"); RegisterHam(Ham_Spawn, "player", "Ham_PlayerSpawn_Post", true); register_clcmd("vipmenu", "Show_VipMenu"); register_clcmd("say /vipmenu", "Show_VipMenu"); register_menu("VipMenu", g_szKeysMenu, "Handle_VipMenu"); }
public client_putinserver(id) { g_iEnable[id] = 0; g_iPistol[id] = -1; }
public Event_Restart_Round() g_numRound = 0; public Event_Start_Round() g_numRound++; public Ham_PlayerSpawn_Post(id) { if(!is_user_alive(id) || ~get_user_flags(id) & ADMIN_LEVEL_H || g_numRound < VIPBLOCK) return; if(!g_iEnable[id]) Show_VipMenu(id); GivePistol(id, g_iPistol[id]); fm_give_item(id, "weapon_smokegrenade"); fm_give_item(id, "weapon_hegrenade"); fm_give_item(id, "weapon_flashbang"); fm_give_item(id, "weapon_flashbang"); fm_give_item(id, "item_thighpack"); }
public Show_VipMenu(id) { if(~get_user_flags(id) & ADMIN_LEVEL_H) { PrintChat(id, "^1[^4%s^1]^1 Недостаточно прав, чтобы открыть ^3VIP^1.", PREFIX); return PLUGIN_HANDLED; } if(!is_user_alive(id)) { PrintChat(id, "^1[^4%s^1]^1 Вы умерли и не можете открыть ^3VIP^1.", PREFIX); return PLUGIN_HANDLED; } if(is_user_alive(id)&& !has_used[id] ) { new iPistol[64], iMenu[512], iLen = 0; iLen = formatex(iMenu[iLen], charsmax(iMenu) - iLen, "\rVIP меню [\d%s\r]:^n\wПривет \y%s!^n^n", PREFIX, Player_GetName(id)); iLen += formatex(iMenu[iLen], charsmax(iMenu) - iLen, "\r1. %sВзять AK-47^n", g_numRound < WPNBLOCK ? "\d" : "\w"); iLen += formatex(iMenu[iLen], charsmax(iMenu) - iLen, "\r2. %sВзять M4A1^n", g_numRound < WPNBLOCK ? "\d" : "\w"); iLen += formatex(iMenu[iLen], charsmax(iMenu) - iLen, "\r3. %sВзять FAMAS^n", g_numRound < WPNBLOCK ? "\d" : "\w"); iLen += formatex(iMenu[iLen], charsmax(iMenu) - iLen, "\r4. %sВзять AWP^n^n", g_numRound < WPNBLOCK ? "\d" : "\w"); switch(g_iPistol[id]) { case -1: format(iPistol, charsmax(iPistol), "Не выбран!"); case 0: format(iPistol, charsmax(iPistol), "Deagle"); case 1: format(iPistol, charsmax(iPistol), "Glock18"); case 2: format(iPistol, charsmax(iPistol), "Usp"); } if(g_numRound < VIPBLOCK) { iLen += formatex(iMenu[iLen], charsmax(iMenu) - iLen, "\r5. \dПистолет: %s^n", iPistol); iLen += formatex(iMenu[iLen], charsmax(iMenu) - iLen, "\r6. \dНе Показывать меню %s^n", g_iEnable[id] != 0 ? "\r[Включено]" : "\y[Выключено]"); } else { iLen += formatex(iMenu[iLen], charsmax(iMenu) - iLen, "\r5. \yПистолет: \w%s^n", iPistol); iLen += formatex(iMenu[iLen], charsmax(iMenu) - iLen, "\r6. \wНе Показывать меню %s^n", g_iEnable[id] != 0 ? "\r[Включено]" : "\y[Выключено]"); } iLen += formatex(iMenu[iLen], charsmax(iMenu) - iLen, "^n\r0. Выход"); show_menu(id, g_szKeysMenu, iMenu, -1, "VipMenu"); has_used[id] = true; } else { PrintChat( id, "^1[^4%s^1]^1 Вы уже использовали .Дождитесь след раунда", PREFIX ) return PLUGIN_HANDLED; } return PLUGIN_HANDLED; }
public Handle_VipMenu(id, key) { if(!is_user_alive(id) && key != 9) { PrintChat(id, "^1[^4%s^1]^1 Вы умерли и не можете взять в ^3VIP^1.", PREFIX); return PLUGIN_HANDLED; } switch(key) { case 0: { if(!isAllowRound(id, WPNBLOCK)) return PLUGIN_HANDLED; fm_strip_prim(id); fm_give_item(id, "weapon_ak47"); fm_set_user_bpammo(id, CSW_AK47, 90); } case 1: { if(!isAllowRound(id, WPNBLOCK)) return PLUGIN_HANDLED; fm_strip_prim(id); fm_give_item(id, "weapon_m4a1"); fm_set_user_bpammo(id, CSW_M4A1, 90); } case 2: { if(!isAllowRound(id, WPNBLOCK)) return PLUGIN_HANDLED; fm_strip_prim(id); fm_give_item(id, "weapon_famas"); fm_set_user_bpammo(id, CSW_FAMAS, 90); } case 3: { if(!isAllowRound(id, WPNBLOCK)) return PLUGIN_HANDLED; fm_strip_prim(id); fm_give_item(id, "weapon_awp"); fm_set_user_bpammo(id, CSW_AWP, 30); } case 4: { if(!isAllowRound(id, VIPBLOCK)) return PLUGIN_HANDLED; if(g_iPistol[id] >= 2) g_iPistol[id] = 0; else g_iPistol[id]++; GivePistol(id, g_iPistol[id]); Show_VipMenu(id); } case 5: { if(!isAllowRound(id, VIPBLOCK)) return PLUGIN_HANDLED; g_iEnable[id] = g_iEnable[id] ? 0 : 1; Show_VipMenu(id); } }
return PLUGIN_HANDLED; }
bool:isAllowRound(id, blockid) { if(g_numRound < blockid) { PrintChat(id, "^1[^4%s^1]^1 Ждите %d раунд%s, чтобы взять в ^3VIP^1.", PREFIX, blockid - g_numRound, blockid - g_numRound == 1 ? "" : "а"); Show_VipMenu(id); return false; } return true; }
stock GivePistol(const id, pistol) { switch(pistol) { case -1: return; case 0: { fm_strip_second(id); fm_give_item(id, "weapon_deagle"); fm_set_user_bpammo(id, CSW_DEAGLE, 35); } case 1: { fm_strip_second(id); fm_give_item(id, "weapon_glock18"); fm_set_user_bpammo(id, CSW_GLOCK18, 100); } case 2: { fm_strip_second(id); fm_give_item(id, "weapon_usp"); fm_set_user_bpammo(id, CSW_USP, 100); } } }
stock fm_strip_second(const id) { for(new i = 0; i < 6; i++) { if(user_has_weapon(id, g_szCswSecond[i])) { fm_strip_user_gun(id, g_szCswSecond[i]); break; } } }
stock fm_strip_prim(const id) { for(new i = 0; i < 18; i++) { if(user_has_weapon(id, g_szCswPrim[i])) { fm_strip_user_gun(id, g_szCswPrim[i]); break; } } }
stock Player_GetName(const id) { new szName[32]; get_user_name(id, szName, charsmax(szName)); return szName; }
stock fm_set_user_bpammo(id, wpnid, ammoid) { new iOffset; switch(wpnid) { case CSW_AWP: iOffset = 377; // ammo_338magnum case CSW_SCOUT, CSW_AK47, CSW_G3SG1: iOffset = 378; // ammo_762nato case CSW_M249: iOffset = 379; // ammo_556natobox case CSW_FAMAS, CSW_M4A1, CSW_AUG, CSW_SG550, CSW_GALI, CSW_SG552: iOffset = 380; // ammo_556nato case CSW_M3, CSW_XM1014: iOffset = 381; // ammo_buckshot case CSW_USP, CSW_UMP45, CSW_MAC10: iOffset = 382; // ammo_45acp case CSW_FIVESEVEN, CSW_P90: iOffset = 383; // ammo_57mm case CSW_DEAGLE: iOffset = 384; // ammo_50ae case CSW_P228: iOffset = 385; // ammo_357sig case CSW_GLOCK18, CSW_MP5NAVY, CSW_TMP, CSW_ELITE: iOffset = 386; // ammo_9mm case CSW_FLASHBANG: iOffset = 387; case CSW_HEGRENADE: iOffset = 388; case CSW_SMOKEGRENADE: iOffset = 389; case CSW_C4: iOffset = 390; default: return; } set_pdata_int(id, iOffset, ammoid, 5); }
stock PrintChat(const id, const input[], any:...) { new count = 1, players[32], msg[191], i; vformat(msg, 190, input, 3) replace_all(msg, 190, "!g", "^4") replace_all(msg, 190, "!y", "^1") replace_all(msg, 190, "!t", "^3") if(id) players[0] = id; else get_players(players, count, "ch") for(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(); } } }

Помог ? Нажми спасибку »
|