Но могли бы дать понять , что тут не так? Я вроде сверял с другими кодами , всё схоже . У них скорость не пропадала при смене оружия.
- Код: Выделить всё
#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <engine>
#include <cstrike>
#include <fun>
#include <fakemeta>
#define PLUGIN "AdminMenu"
#define VERSION "4.0"
#define AUTHOR "SkocH"
#define ADMIN_FLAG ADMIN_BAN
new keys = MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5|MENU_KEY_6|MENU_KEY_7|MENU_KEY_8|MENU_KEY_9|MENU_KEY_0
new keys2 = MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5|MENU_KEY_0
new PlayerSpawn[33]
new PlayerGrav[33]
new PlayerSpeed[33]
new PlayerHp[33]
new PlayerMoney[33]
new SayText
new cvar_limit_menu
new g_Round
new Spawn[33],Grava[33], Speed[33], GodMode[33], Spead[33], szTwoJump[33], szTwoJumpNum[33], szDoTwoJump[33]
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_menu("Menu 1", keys, "func_menu")
register_menu("Menu 2", keys2, "func_menu2")
register_clcmd("elite_menu", "AdminMenu")
RegisterHam(Ham_Spawn, "player", "PlayerSpawns",1)
register_forward(FM_PlayerPreThink, "TwoJump")
register_forward(FM_PlayerPostThink, "PostTwoJump")
register_event("HLTV", "EventRoundStart", "a", "1=0", "2=0");
register_event("TextMsg", "EventRoundRestart", "a", "2=#Game_will_restart_in","2=#Game_Commencing");
cvar_limit_menu = register_cvar("amx_round_limit", "3")
}
public EventRoundStart() g_Round++;
public EventRoundRestart() g_Round = 0;
public PlayerSpawns()
{
for(new id = 1;id <= get_maxplayers(); id++)
{
Grava[id] = false
Speed[id] = false
GodMode[id] = false
Spead[id] = false
szTwoJump[id] = false
}
}
public RoundNew()
{
for(new id = 1;id <= get_maxplayers(); id++)
{
Spawn[id] = 5
PlayerSpawn[id] = 3
PlayerGrav[id] = 3
PlayerSpeed[id] = 3
PlayerHp[id] = 3
PlayerMoney[id] = 3
}
}
public AdminMenu(id)
{
if ( ! ( get_user_flags ( id ) & ADMIN_FLAG ) )
{
client_print(0,print_chat, "")
}
else if(g_Round <= get_pcvar_num(cvar_limit_menu) -1)
{
client_print(id,print_chat, "Меню с 3 раунда", get_pcvar_num(cvar_limit_menu))
return PLUGIN_HANDLED;
}
else
{
}
static menu[650], Len
Len = 0
Len = formatex(menu[Len], charsmax(menu) - Len, "\d[~] \wЭлитное Меню^n^n");
if(get_user_flags(id) & ADMIN_LEVEL_A)
{
Len += formatex(menu[Len], charsmax(menu) - Len, "\y[•][1] \wВоскреснуть^n\d[\r~\d] \yОдин раз за карту^n")
keys |= MENU_KEY_1
}else{
Len += formatex(menu[Len], charsmax(menu) - Len, "\y[\r•\y][1] \wВоскреснуть^n\d[\r~\d] \yОдин раз за карту^n")
keys |= MENU_KEY_1
}
if(get_user_flags(id) & ADMIN_LEVEL_A)
{
if(Speed[id])
{
Len += formatex(menu[Len], charsmax(menu) - Len, "\y[•][2] \wСкорость: \r[Включено]^n")
keys |= MENU_KEY_2
}else{
Len += formatex(menu[Len], charsmax(menu) - Len, "\y[\r•\y][2] \wСкорость: \r[Выключено]^n")
keys |= MENU_KEY_2
}
}else{
Len += formatex(menu[Len], charsmax(menu) - Len, "\y[\r•\y][2] \wСкорость: \r[Выключено]^n")
keys &= ~MENU_KEY_2
}
if(get_user_flags(id) & ADMIN_LEVEL_A)
{
if(szTwoJump[id])
{
Len += formatex(menu[Len], charsmax(menu) - Len, "\y[•][3] \wДвойной Прыжок: \r[Включено]^n^n")
keys |= MENU_KEY_3
}else{
Len += formatex(menu[Len], charsmax(menu) - Len, "\y[\r•\y][3] \wДвойной Прыжок: \r[Выключено]^n^n")
keys |= MENU_KEY_3
}
}else{
Len += formatex(menu[Len], charsmax(menu) - Len, "\y[\r•\y][3] \wДвойной Прыжок: \r[Выключено]^n^n")
keys &= ~MENU_KEY_3
}
if(get_user_flags(id) & ADMIN_LEVEL_A)
{
Len += formatex(menu[Len], charsmax(menu) - Len, "\y[•][4] \wОружейка \rЭлиты^n")
keys |= MENU_KEY_4
}else{
Len += formatex(menu[Len], charsmax(menu) - Len, "\y[\r•\y][4] \wОружейка \rЭлиты^n")
keys &= ~MENU_KEY_4
}
if(get_user_flags(id) & ADMIN_LEVEL_E)
{
Len += formatex(menu[Len], charsmax(menu) - Len, "\y[•][5] \wАдминское Меню^n^n")
keys |= MENU_KEY_5
}else{
Len += formatex(menu[Len], charsmax(menu) - Len, "\y[\r•\y][5] \wАдминское Меню^n^n")
keys &= ~MENU_KEY_5
}
Len += formatex(menu[Len], charsmax(menu) - Len, "\y[•][6] \wАвтобинд граба^n\d[\r~\d] \yБиндится на клавишу ALT^n^n")
keys |= MENU_KEY_6
Len += formatex(menu[Len], charsmax(menu) - Len, "\y[•][0] \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:
{
client_cmd (id, "resp1")
}
case 1:
{
if(!Speed[id])
{
Speed[id] = true
Spead[id] = true
set_user_maxspeed(id,300.0)
}
else
{
Speed[id] = false
Spead[id] = false
set_user_maxspeed(id,250.0)
}
AdminMenu(id)
}
case 2:
{
if(!szTwoJump[id])
{
szTwoJump[id] = true
AdminMenu(id)
}
else
{
szTwoJump[id] = false
}
AdminMenu(id)
}
case 3:
{
client_cmd(id, "elite_guns")
}
case 4:
{
client_cmd(id, "adm_menu")
}
case 5:
{
client_cmd(id, "bind alt +grab")
}
}
return PLUGIN_HANDLED
}
public OnOff(id)
{
if(!szTwoJump[id])
{
szTwoJump[id] = true
}else{
szTwoJump[id] = false
}
}
public TwoJump(id)
{
if(szTwoJump[id])
{
new szButton = pev(id, pev_button)
new szOldButton = pev(id, pev_oldbuttons)
if((szButton & IN_JUMP) && !(pev(id, pev_flags) & FL_ONGROUND) && !(szOldButton & IN_JUMP))
{
if(szTwoJumpNum[id] < 1)
{
szDoTwoJump[id] = true
szTwoJumpNum[id]++
return PLUGIN_CONTINUE
}
}
if((szButton & IN_JUMP) && (pev(id, pev_flags) & FL_ONGROUND))
{
szTwoJumpNum[id] = 0
}
}
return PLUGIN_CONTINUE
}
public PostTwoJump(id)
{
if(szTwoJump[id])
{
if(!is_user_alive(id))
return PLUGIN_CONTINUE
if(szDoTwoJump[id])
{
new Float:szVelocity[3]
pev(id, pev_velocity, szVelocity)
szVelocity[2] = random_float(295.0,305.0)
set_pev(id, pev_velocity, szVelocity)
szDoTwoJump[id] = false
return PLUGIN_CONTINUE
}
}
return PLUGIN_CONTINUE
}
public WeaponChange(id)
{
if(Spead[id])
{
set_user_maxspeed(id, 400.0)
}
}
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_gagmenu")
}
case 8:
{
client_cmd(id, "amx_speechmenu")
}
case 9:
{
client_cmd(id, "adminmenu")
}
}
return PLUGIN_HANDLED
}
public GiveAdmin(id)
{
static menu[650], Len
Len = 0
Len = formatex(menu[Len], charsmax(menu) - Len, "\wПодарочное Меню^n^n");
if(get_user_flags(id) & ADMIN_LEVEL_F)
{
if(PlayerSpawn[id] == 0)
{
Len += formatex(menu[Len], charsmax(menu) - Len, "\d1.Возродить Игрока\d[\r%d\d]^n^n", PlayerSpawn[id])
keys2 &= ~MENU_KEY_1
}else{
Len += formatex(menu[Len], charsmax(menu) - Len, "\y1. \wВозродить Игрока\d[\r%d\d]^n^n", PlayerSpawn[id])
keys2|= MENU_KEY_1
}
}else{
Len += formatex(menu[Len], charsmax(menu) - Len, "\d1. Возродить Игрока\d[\r%d\d]^n^n", PlayerSpawn[id])
keys2 &= ~MENU_KEY_1
}
if(get_user_flags(id) & ADMIN_LEVEL_F)
{
if(PlayerGrav[id] == 0)
{
Len += formatex(menu[Len], charsmax(menu) - Len, "\d2.Дать Гравитацию\d[\r%d\d]^n", PlayerGrav[id])
keys2 &= ~MENU_KEY_2
}else{
Len += formatex(menu[Len], charsmax(menu) - Len, "[•][2] \wДать Гравитацию\d[\r%d\d]^n", PlayerGrav[id])
keys2|= MENU_KEY_2
}
}else{
Len += formatex(menu[Len], charsmax(menu) - Len, "\d2. Дать Гравитацию\d[\r%d\d]^n", PlayerGrav[id])
keys2 &= ~MENU_KEY_2
}
if(get_user_flags(id) & ADMIN_LEVEL_F)
{
if(PlayerSpeed[id] == 0)
{
Len += formatex(menu[Len], charsmax(menu) - Len, "\d3.Дать Скорость\d[\r%d\d]^n", PlayerSpeed[id])
keys2 &= ~MENU_KEY_3
}else{
Len += formatex(menu[Len], charsmax(menu) - Len, "\y[•][3] \wДать Скорость\d[\r%d\d]^n", PlayerSpeed[id])
keys2|= MENU_KEY_3
}
}else{
Len += formatex(menu[Len], charsmax(menu) - Len, "\d3. Дать Скорость\d[\r%d\d]^n", PlayerSpeed[id])
keys2 &= ~MENU_KEY_3
}
if(get_user_flags(id) & ADMIN_LEVEL_F)
{
if(PlayerHp[id] == 0)
{
Len += formatex(menu[Len], charsmax(menu) - Len, "\d4.Дать Жизни\d[\r%d\d]^n", PlayerHp[id])
keys2 &= ~MENU_KEY_4
}else{
Len += formatex(menu[Len], charsmax(menu) - Len, "\y4. \wДать Жизни\d[\r%d\d]^n", PlayerHp[id])
keys2|= MENU_KEY_4
}
}else{
Len += formatex(menu[Len], charsmax(menu) - Len, "\d4. Дать Жизни\d[\r%d\d]^n", PlayerHp[id])
keys2 &= ~MENU_KEY_4
}
if(get_user_flags(id) & ADMIN_LEVEL_F)
{
if(PlayerMoney[id] == 0)
{
Len += formatex(menu[Len], charsmax(menu) - Len, "\d5.Дать Денег\d[\r%d\d]^n^n", PlayerMoney[id])
keys2 &= ~MENU_KEY_5
}else{
Len += formatex(menu[Len], charsmax(menu) - Len, "\y5. \wДать Денег\d[\r%d\d]^n^n", PlayerMoney[id])
keys2|= MENU_KEY_5
}
}else{
Len += formatex(menu[Len], charsmax(menu) - Len, "\d5. Дать Денег\d[\r%d\d]^n^n", PlayerMoney[id])
keys2 &= ~MENU_KEY_5
}
Len += formatex(menu[Len], charsmax(menu) - Len, "\y0. \wВыход^n")
keys2 |= MENU_KEY_0
show_menu(id, keys2, menu, -1, "Menu 2");
return PLUGIN_HANDLED
}
public func_menu2(id, key)
{
switch(key)
{
case 0:
{
if(PlayerSpawn[id] == 0)
{
return PLUGIN_CONTINUE
}else{
PlayerSpawn[id] = PlayerSpawn[id] -1
SpawnPlayer(id)
}
}
case 1:
{
if(PlayerGrav[id] == 0)
{
return PLUGIN_CONTINUE
}else{
PlayerGrav[id] = PlayerGrav[id] -1
GravPlayer(id)
}
}
case 2:
{
if(PlayerSpeed[id] == 0)
{
return PLUGIN_CONTINUE
}else{
PlayerSpeed[id] = PlayerSpeed[id] -1
SpeedPlayer(id)
}
}
case 3:
{
if(PlayerHp[id] == 0)
{
return PLUGIN_CONTINUE
}else{
PlayerHp[id] = PlayerHp[id] -1
HpPlayer(id)
}
}
case 4:
{
if(PlayerMoney[id] == 0)
{
return PLUGIN_CONTINUE
}else{
PlayerMoney[id] = PlayerMoney[id] -1
MoneyPlayer(id)
}
}
}
return PLUGIN_HANDLED
}
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)
{
SpawnPlayer(id)
}
else
{
ExecuteHam(Ham_CS_RoundRespawn, i_Player)
GiveAdmin(id)
}
menu_destroy(menu)
return PLUGIN_HANDLED
}
public GravPlayer(id)
{
if(get_user_flags(id) & ADMIN_LEVEL_H)
{
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)
GiveAdmin(id)
}
menu_destroy(menu)
return PLUGIN_HANDLED
}
public SpeedPlayer(id)
{
if(get_user_flags(id) & ADMIN_LEVEL_F)
{
new menu = menu_create( "\wВыбири Игрока", "menu_speed" )
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_display(id, menu, 0)
}
return PLUGIN_HANDLED
}
public menu_speed(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, 700.0)
client_cmd(id,"speed_menu")
Spead[id] = true
menu_destroy(menu)
return PLUGIN_HANDLED
}
public HpPlayer(id)
{
if(get_user_flags(id) & ADMIN_LEVEL_H)
{
new menu = menu_create( "\wВыбири Игрока", "menu_health" )
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_health(tempid) < 250)
{
get_user_name(tempid, szName, 31)
num_to_str(tempid, szTempid, 9)
menu_additem(menu, szName, szTempid, 0)
}
}
menu_display(id, menu, 0)
}
return PLUGIN_HANDLED
}
public menu_health(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_health(tempid, 250)
client_cmd(id,"health_menu")
menu_destroy(menu)
return PLUGIN_HANDLED
}
public MoneyPlayer(id)
{
if(get_user_flags(id) & ADMIN_LEVEL_H)
{
new menu = menu_create( "\wВыбири Игрока", "menu_money" )
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(cs_get_user_money(tempid) < 16000)
{
get_user_name(tempid, szName, 31)
num_to_str(tempid, szTempid, 9)
menu_additem(menu, szName, szTempid, 0)
}
}
menu_display(id, menu, 0)
}
return PLUGIN_HANDLED
}
public menu_money(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)
cs_set_user_money(tempid, 16000)
client_cmd(id,"money_menu")
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();
}
}
}
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1049\\ f0\\ fs16 \n\\ par }
*/