Код
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <engine>
#include <cstrike>
#include <fun>
#include <dhudmessage>
#pragma tabsize 0
new keys = MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5|MENU_KEY_6|MENU_KEY_7|MEN
U_KEY_8|MENU_KEY_9|MENU_KEY_0
#define PLUGIN "AdminMenu"
#define VERSION "3.2"
#define AUTHOR "SkocH"
new Spawn[33], Money[33], PlayerSpawn[33], PlayerSpeed[33], Spead[33], HP[33], PlayerGrav[33], Speed[33], Grava[33]
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_menu("Menu 1", keys, "func_menu")
register_clcmd("adminmenu", "AdminMenu")
register_event("CurWeapon", "MaxPlayerSpeed", "be", "1=1")
register_clcmd("menu_admin", "MenuAdmin")
RegisterHam(Ham_Spawn, "player", "PlayerSpawns",1)
register_event("HLTV", "RoundNew", "a", "1=0", "2=0")
}
public RoundNew()
{
for(new id = 1;id <= get_maxplayers(); id++)
{
Spawn[id] = 30
Speed[id] = 30
Grava[id] = 30
PlayerSpawn[id] = 30
PlayerSpeed[id] = 10
PlayerGrav[id] = 10
Money[id] = 10
HP[id] = 3
}
}
public PlayerSpawns()
{
for(new id = 1;id <= get_maxplayers(); id++)
{
Spead[id] = false
}
}
public client_authorized(id)
{
if (get_user_flags(id) & ADMIN_LEVEL_A)
{
new player_name[32]
get_user_name(id, player_name, 31)
set_dhudmessage( 255, 0, 0, -1.0, 0.25, 0, 6.0, 3.0, 0.1, 1.5 );
show_dhudmessage(0, "Админ [ %s ] заходит на сервер!",player_name );
}
}
public AdminMenu(id)
{
static menu[650], Len
Len = 0
Len = formatex(menu[Len], charsmax(menu) - Len, "\rАдминское меню^n^n");
if(get_user_flags(id) & ADMIN_LEVEL_A)
{
if(Spawn[id] == 0)
{
Len += formatex(menu[Len], charsmax(menu) - Len, "\d1. Воскреснуть \d[\r%d\d]^n", Spawn[id])
keys &= ~MENU_KEY_1
}else{
Len += formatex(menu[Len], charsmax(menu) - Len, "\y1. \wВоскреснуть \d[\r%d\d]^n", Spawn[id])
keys |= MENU_KEY_1
}
}else{
Len += formatex(menu[Len], charsmax(menu) - Len, "\d1. Воскреснуть \d[\r%d\d]^n", Spawn[id])
keys &= ~MENU_KEY_1
}
if(get_user_flags(id) & ADMIN_LEVEL_A)
{
if(Grava[id] == 0)
{
Len += formatex(menu[Len], charsmax(menu) - Len, "\d2. Гравитация \d[\r%d\d]^n", Grava[id])
keys &= ~MENU_KEY_2
}else{
Len += formatex(menu[Len], charsmax(menu) - Len, "\y2. \wГравитация \d[\r%d\d]^n", Grava[id])
keys |= MENU_KEY_2
}
}else{
Len += formatex(menu[Len], charsmax(menu) - Len, "\d2. Гравитация \d[\r%d\d]^n", Grava[id])
keys &= ~MENU_KEY_2
}
if(get_user_flags(id) & ADMIN_LEVEL_A)
{
if(Speed[id] == 0)
{
Len += formatex(menu[Len], charsmax(menu) - Len, "\d3. Скорость \d[\r%d\d]^n", Speed[id])
keys &= ~MENU_KEY_3
}else{
Len += formatex(menu[Len], charsmax(menu) - Len, "\y3. \wСкорость \d[\r%d\d]^n", Speed[id])
keys |= MENU_KEY_3
}
}else{
Len += formatex(menu[Len], charsmax(menu) - Len, "\d3. Скорость \d[\r%d\d]^n", Speed[id])
keys &= ~MENU_KEY_3
}
if(get_user_flags(id) & ADMIN_LEVEL_A)
{
if(HP[id] == 0)
{
Len += formatex(menu[Len], charsmax(menu) - Len, "\d4. Взять \d[\r1500 ХП/Брони\d] \d[\r%d\d]^n", HP[id])
keys &= ~MENU_KEY_4
}else{
Len += formatex(menu[Len], charsmax(menu) - Len, "\y4. Взять \d[\r1500 ХП/Брони\d] \d[\r%d\d]^n", HP[id])
keys |= MENU_KEY_4
}
}else{
Len += formatex(menu[Len], charsmax(menu) - Len, "\d4. Взять \d[\r1500 ХП/Брони\d] \d[\r%d\d]^n", HP[id])
keys &= ~MENU_KEY_4
}
if(get_user_flags(id) & ADMIN_LEVEL_A)
{
if(Money[id] == 0)
{
Len += formatex(menu[Len], charsmax(menu) - Len, "\d5. Взять \d[\r16000$\d] \d[\r%d\d]^n", Money[id])
keys &= ~MENU_KEY_5
}else{
Len += formatex(menu[Len], charsmax(menu) - Len, "\y5. \wВзять \d[\r16000$\d] \d[\r%d\d]^n", Money[id])
keys |= MENU_KEY_5
}
}else{
Len += formatex(menu[Len], charsmax(menu) - Len, "\d5. Взять \d[\r16000$\d] \d[\r%d\d]^n", Money[id])
keys &= ~MENU_KEY_5
}
if(get_user_flags(id) & ADMIN_LEVEL_A)
{
if(PlayerSpawn[id] == 0)
{
Len += formatex(menu[Len], charsmax(menu) - Len, "\d6. Возродить Игрока \d[\r%d\d]^n", PlayerSpawn[id])
keys &= ~MENU_KEY_6
}else{
Len += formatex(menu[Len], charsmax(menu) - Len, "\y6. \wВозродить Игрока \d[\r%d\d]^n", PlayerSpawn[id])
keys|= MENU_KEY_6
}
}else{
Len += formatex(menu[Len], charsmax(menu) - Len, "\d6. Возродить Игрока \d[\r%d\d]^n", PlayerSpawn[id])
keys &= ~MENU_KEY_6
}
if(get_user_flags(id) & ADMIN_LEVEL_A)
{
switch(get_user_team(id))
{
case 1:
{
Len += formatex(menu[Len], charsmax(menu) - Len, "\y7. \wКоманда: \d[\rТеррорист\d]^n")
keys |= MENU_KEY_7
}
case 2:
{
Len += formatex(menu[Len], charsmax(menu) - Len, "\y7. \wКоманда: \d[\rCT\d]^n")
keys |= MENU_KEY_7
}
case 3:
{
Len += formatex(menu[Len], charsmax(menu) - Len, "\y7. \wКоманда: \d[\rНаблюдатель\d]^n")
keys |= MENU_KEY_7
}
}
}else{
switch(get_user_team(id))
{
case 1:
{
Len += formatex(menu[Len], charsmax(menu) - Len, "\d7. Команда: \d[\rТеррорист\d]^n")
keys &= ~MENU_KEY_7
}
case 2:
{
Len += formatex(menu[Len], charsmax(menu) - Len, "\d7. Команда: \d[\rCT\d]^n")
keys &= ~MENU_KEY_7
}
case 3:
{
Len += formatex(menu[Len], charsmax(menu) - Len, "\d7. Команда: \d[\rНаблюдатель\d]^n")
keys &= ~MENU_KEY_7
}
}
}
if(get_user_flags(id) & ADMIN_LEVEL_A)
{
if(PlayerSpeed[id] == 0)
{
Len += formatex(menu[Len], charsmax(menu) - Len, "\d8. Подарить Скорость \d[\r%d\d]^n^n", PlayerSpeed[id])
keys &= ~MENU_KEY_8
}else{
Len += formatex(menu[Len], charsmax(menu) - Len, "\y8. \wПодарить Скорость \d[\r%d\d]^n^n", PlayerSpeed[id])
keys|= MENU_KEY_8
}
}else{
Len += formatex(menu[Len], charsmax(menu) - Len, "\d8. Подарить Скорость \d[\r%d\d]^n^n", PlayerSpeed[id])
keys &= ~MENU_KEY_8
}
if(get_user_flags(id) & ADMIN_LEVEL_A)
{
Len += formatex(menu[Len], charsmax(menu) - Len, "\y9. \wМеню Управлений^n^n")
keys |= MENU_KEY_9
}else{
Len += formatex(menu[Len], charsmax(menu) - Len, "\d9. Меню Управлений^n^n")
keys &= ~MENU_KEY_9
}
Len += formatex(menu[Len], charsmax(menu) - Len, "\y0. \wВыход^n")
keys |= MENU_KEY_0
show_menu(id, keys, menu, -1, "Menu 1");
return PLUGIN_HANDLED
}
public func_menu(id, key)
{
switch(key)
{
case 0:
{
if(Spawn[id] == 0)
{
return PLUGIN_CONTINUE
}
else
{
Spawn[id] = Spawn[id] -1
ExecuteHam(Ham_CS_RoundRespawn, id)
AdminMenu(id)
}
}
case 1:
{
{
if(Grava[id] == 0)
{
return PLUGIN_CONTINUE
}else{
Grava[id] = Grava[id] -1
set_user_gravity(id, 0.3)
AdminMenu(id)
}
}
}
case 2:
{
{
if(Speed[id] == 0)
{
return PLUGIN_CONTINUE
}else{
Speed[id] = Speed[id] -1
set_user_maxspeed(id, 520.0)
Spead[id] = true
AdminMenu(id)
}
}
}
case 3:
{
if(HP[id] == 0)
{
return PLUGIN_CONTINUE
}else{
HP[id] = HP[id] -1
set_user_health(id, 1500)
set_user_armor(id, 1500)
AdminMenu(id)
}
}
case 4:
{
if(Money[id] == 0)
{
return PLUGIN_CONTINUE
}else{
Money[id] = Money[id] -1
cs_set_user_money(id, cs_get_user_money(id) + 16000)
AdminMenu(id)
}
}
case 5:
{
if(PlayerSpawn[id] == 0)
{
return PLUGIN_CONTINUE
}else{
PlayerSpawn[id] = PlayerSpawn[id] -1
SpawnPlayer(id)
}
}
case 6:
{
switch (get_user_team(id))
{
case 1:
{
cs_set_user_team(id, 2)
}
case 2:
{
cs_set_user_team(id, 3)
}
case 3:
{
if(get_user_flags(id) & ADMIN_BAN)
{
cs_set_user_team(id, 1)
}
else
{
cs_set_user_team(id, 2)
}
}
}
AdminMenu(id)
}
case 7:
{
if(PlayerSpeed[id] == 0)
{
return PLUGIN_CONTINUE
}else{
PlayerSpeed[id] = PlayerSpeed[id] -1
SpeedPlayer(id)
}
}
case 8:
{
client_cmd(id, "menu_admin")
}
}
return PLUGIN_HANDLED
}
public MaxPlayerSpeed(id)
{
if(Spead[id])
{
set_user_maxspeed(id, 550.0)
}
}
public SpawnPlayer(id)
{
new i_Menu = menu_create("\wВыбери Игрока", "menu_handler")
new s_Players[32], i_Num, i_Player, msg[222]
new s_Name[32], s_Player[10]
get_players(s_Players, i_Num)
for (new i; i < i_Num; i++)
{
i_Player = s_Players[i]
get_user_name(i_Player, s_Name, charsmax(s_Name))
num_to_str(i_Player, s_Player, charsmax(s_Player))
if(is_user_alive(i_Player))
{
formatex(msg, charsmax(msg), "\d%s (\rЖивой\d)", s_Name)
menu_additem(i_Menu, msg, s_Player, 0)
}
else
{
formatex(msg, charsmax(msg), "%s", s_Name)
menu_additem(i_Menu, msg, s_Player, 0)
}
menu_setprop(i_Menu, MPROP_NEXTNAME, "Дальше")
menu_setprop(i_Menu, MPROP_BACKNAME, "Назад")
menu_setprop(i_Menu, MPROP_EXITNAME, "Закрыть")
}
menu_display(id, i_Menu, 0)
}
public 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 i_Player = str_to_num(s_Data)
new name[32]
new name2[32]
get_user_name(id, name, 31)
get_user_name(i_Player, name2, 31)
if(id == i_Player)
{
AdminMenu(id)
}
else
{
ExecuteHam(Ham_CS_RoundRespawn, i_Player)
ChatColor(0, "!y[!gАдмин Меню!y] !yАдминистратор !g%s !yвоскресил игрока !g%s", name, name2)
AdminMenu(id)
}
menu_destroy(menu)
return PLUGIN_HANDLED
}
public SpeedPlayer(id)
{
if(get_user_flags(id) & ADMIN_LEVEL_A)
{
new menu = menu_create( "\wВыбери Игрока", "SpeedName" )
new players[32], pnum, tempid
new szName[32], szTempid[10]
cs_get_user_team(id)
get_players(players, pnum)
for(new i; i<pnum; i++)
{
cs_get_user_team(players[i])
tempid = players[i]
if(!is_user_alive(tempid))
{
}
else if(get_user_maxspeed(tempid) < 700)
{
get_user_name(tempid, szName, 31)
num_to_str(tempid, szTempid, 9)
menu_additem(menu, szName, szTempid, 0)
}
menu_setprop(menu, MPROP_NEXTNAME, "Дальше")
menu_setprop(menu, MPROP_BACKNAME, "Назад")
menu_setprop(menu, MPROP_EXITNAME, "Закрыть")
}
menu_display(id, menu, 0)
}
return PLUGIN_HANDLED
}
public SpeedName(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}
new data[6], iName[64], playername[33], playername2[33]
new access, callback
menu_item_getinfo(menu, item, access, data,5, iName, 63, callback)
new tempid = str_to_num(data)
cs_get_user_team(tempid)
get_user_name(id, playername, 32)
get_user_name(tempid, playername2, 32)
set_user_maxspeed(tempid, 500.0)
ChatColor(0, "!y[!gАдмин Меню!y] !yАдминистратор !g%s !yДал Скорость игроку !g%s", playername, playername2)
Spead[id] = true
AdminMenu(id)
menu_destroy(menu)
return PLUGIN_HANDLED
}
public GravPlayer(id)
{
if(get_user_flags(id) & ADMIN_LEVEL_A)
{
new menu = menu_create( "\yВыбири Игрока", "GravaPlayer" )
new players[32], pnum, tempid
new szName[32], szTempid[10]
cs_get_user_team(id)
get_players(players, pnum)
for(new i; i<pnum; i++)
{
cs_get_user_team(players[i])
tempid = players[i]
if(!is_user_alive(tempid))
{
}
else if(get_user_gravity(tempid) > 0.35)
{
get_user_name(tempid, szName, 31)
num_to_str(tempid, szTempid, 9)
menu_additem(menu, szName, szTempid, 0)
}
}
menu_setprop( menu, MPROP_NEXTNAME, "Дальше")
menu_setprop( menu, MPROP_BACKNAME, "Назад")
menu_setprop( menu, MPROP_EXITNAME, "Выход")
//menu_setprop( menu, MPROP_PERPAGE, 0)
menu_display(id, menu, 0)
}
return PLUGIN_HANDLED
}
public GravaPlayer(id, menu, item)
{
{
if(item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}
new data[6], iName[64], playername[33], playername2[33]
new access, callback
menu_item_getinfo(menu, item, access, data,5, iName, 63, callback)
new tempid = str_to_num(data)
cs_get_user_team(tempid)
get_user_name(id, playername, 32)
get_user_name(tempid, playername2, 32)
set_user_gravity(tempid, 0.5)
ChatColor(0, "!y[!gАдмин Меню!y] !yАдминистратор !g%s !yДал Гравитацию игроку !g%s", playername, playername2)
AdminMenu(id)
}
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
replace_all(msg, 190, "!team2", "^0") // Team2 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();
}
}
}
}
public MenuAdmin(id)
{
new Menu = menu_create("\yМеню Управления", "Admin")
menu_additem(Menu, "\wКикнуть Игрока", "1")
menu_additem(Menu, "\wЗабанить Игрока", "2")
menu_additem(Menu, "\wСтукнуть/Убить Игрока", "3")
menu_additem(Menu, "\wСменить Команду Игроку^n", "4")
menu_additem(Menu, "\wГолосование За Карту", "5")
menu_additem(Menu, "\wСменить Карту^n", "6")
menu_additem(Menu, "\wЗаткнуть Игрока", "7")
menu_additem(Menu, "\wГолосовое Сообщение^n", "8")
menu_additem(Menu,"Назад", "9", 0)
menu_additem(Menu,"Выход", "0", 0)
menu_setprop(Menu, MPROP_PERPAGE, 0)
menu_display(id, Menu, 0)
}
public Admin(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}
new data[6], iName[64], access, callback
menu_item_getinfo(menu, item, access, data, 5, iName, 63, callback)
new key = str_to_num(data)
switch(key)
{
case 1:
{
client_cmd(id,"amx_kickmenu")
}
case 2:
{
client_cmd(id,"amx_banmenu")
}
case 3:
{
client_cmd(id,"amx_slapmenu")
}
case 4:
{
client_cmd(id,"amx_teammenu")
}
case 5:
{
client_cmd(id,"amx_votemapmenu")
}
case 6:
{
client_cmd(id,"amx_mapmenu")
}
case 7:
{
client_cmd(id,"amx_mute")
client_cmd(id,"mute")
client_cmd(id,"amx_gag")
client_cmd(id,"amx_gagmenu")
}
case 8:
{
client_cmd(id, "amx_speechmenu")
}
case 9:
{
client_cmd(id, "adminmenu")
}
}
return PLUGIN_HANDLED
}