NEoMASTERR писал(а):
- Код: Выделить всё
m = (timeGravity[id] - systime) / 60; s = (timeGravity[id] - systime) % 60;
Len += formatex(menu[Len], charsmax(menu) - Len, "\d[2] Взять гравитацию: (%d) [\y%d:%s%d\d]^n", Gravity[id], m, s < 10 ? "0" : "", s)
keys &= ~MENU_KEY_2
Добавлено спустя 16 минут 19 секунд:
- Код: Выделить всё
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <hamsandwich>
#include <engine>
#include <cstrike>
#include <fun>
#include <dhudmessage>
#include <colorchat>
#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|MENU_KEY_8|MENU_KEY_9|MENU_KEY_0
new Spawn[33]
new Gravity[33]
new SpeedA[33]
new Invis[33]
new Money[33]
new HP[33]
new Grenade[33]
new Spead[33]
new timeMoney[33];
new timeGravity[33];
new timeSpeedA[33];
new timeInvis[33];
new cvar_time_for_money;
new cvar_time_for_gravity;
new cvar_time_for_speeda;
new cvar_time_for_invis;
new cvar_time_invis;
#define PLUGIN "AdminMenu"
#define VERSION "v0.2 Fix"
#define AUTHOR "Jeka_Pro"
#define OFFSET_WEAPONSPEED 58
#define OFFSET_CLIPAMMO 51
#define OFFSET_LINUX_WEAPONS 4
#define fm_cs_set_weapon_ammo(%1,%2) set_pdata_int(%1, OFFSET_CLIPAMMO, %2, OFFSET_LINUX_WEAPONS)
#define m_pActiveItem 373
const NOCLIP_WPN_BS = ((1<<CSW_HEGRENADE)|(1<<CSW_SMOKEGRENADE)|(1<<CSW_FLASHBANG)|(1<<CSW_KNIFE)|(1<<CSW_C4))
//new const g_iMaxClip[CSW_P90 + 1] = { -1, 13, -1, 10, 1, 7, 1, 30, 30, 1, 30, 20, 25, 30, 35, 25, 12, 20, 10, 30, 100, 8, 30, 30, 20, 2, 7, 30, 30, -1, 50 };
new bool:g_bDamage[33], bool:g_bUnlimitedAmmo[33];
#define MAX_PLAYERS 32
#if defined AMXX_VERSION_NUM < 183
#define Ham_CS_Player_ResetMaxSpeed Ham_Item_PreFrame
#endif
new bool:g_bSpeed[MAX_PLAYERS+1] = false;
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_menu("Menu 1", keys, "func_menu")
register_clcmd("adminmenu", "adminmenu")
register_event("CurWeapon" , "Event_CurWeapon" , "be" , "1=1" );
register_event("HLTV", "RoundNew", "a", "1=0", "2=0")
RegisterHam(Ham_CS_Player_ResetMaxSpeed, "player", "Check_Speed", 0);
RegisterHam(Ham_Spawn, "player", "Player_Spawn", 0)
RegisterHam(Ham_Killed, "player", "HamHook_Killed_Post", true);
RegisterHam(Ham_TakeDamage, "player", "HamHook_TakeDamage_Player", false);
cvar_time_for_money = register_cvar("time_for_money","15") //время в минутах
cvar_time_for_gravity = register_cvar("time_for_gravity","15") //время в минутах
cvar_time_for_speeda = register_cvar("time_for_speeda","15") //время в минутах
cvar_time_for_invis = register_cvar("time_for_invis","15") //время в минутах
cvar_time_invis = register_cvar("adminmenu_time_invis","300") //Время в секундах
}
public client_putinserver(id)
{
static systime; systime = get_systime();
timeMoney[id] = systime + get_pcvar_num(cvar_time_for_money)*60;
timeGravity[id] = systime + get_pcvar_num(cvar_time_for_gravity)*60;
timeSpeedA[id] = systime + get_pcvar_num(cvar_time_for_speeda)*60;
timeInvis[id] = systime + get_pcvar_num(cvar_time_for_invis)*60;
Spawn[id] = 2
Gravity[id] = 2
SpeedA[id] = 2
Invis[id] = 2
Money[id] = 3
HP[id] = 3
Grenade[id] = 3
g_bDamage[id] = false;
g_bUnlimitedAmmo[id] = false;
}
public HamHook_Killed_Post(pIdv, pIda)
{
g_bDamage[pIdv] = false;
g_bUnlimitedAmmo[pIdv] = false;
}
public HamHook_TakeDamage_Player(pIdv, iInflictor, pIda, Float:fDamage, iDamageBitsum)
{
if(!is_user_connected(pIdv) || !is_user_connected(pIda) || pIdv == pIda) return;
if(g_bDamage[pIda])
{
SetHamParamFloat(4, fDamage * 2.0);
}
}
public RoundNew()
{
for(new id = 1;id <= 32; id++)
{
Spawn[id] = 2
Gravity[id] = 2
SpeedA[id] = 2
Invis[id] = 2
Money[id] = 3
HP[id] = 3
Grenade[id] = 3
g_bDamage[id] = false;
g_bUnlimitedAmmo[id] = false;
}
}
public adminmenu(id)
{
static systime; systime = get_systime();
static flags; flags = get_user_flags(id);
static m, s;
static menu[650], Len
Len = 0
Len = formatex(menu[Len], charsmax(menu) - Len, "\r[\yCSDM\r] \wADMIN Меню^n^n");
if(!is_user_alive(id))
{
if(flags & ADMIN_MAP)
{
if(!Spawn[id])
{
Len += formatex(menu[Len], charsmax(menu) - Len, "\d[1] Воскреснуть^n")
keys &= ~MENU_KEY_1
}
else
{
Len += formatex(menu[Len], charsmax(menu) - Len, "\r[\y1\r] \wВоскреснуть: \r(\y%d\r)^n", Spawn[id])
keys |= MENU_KEY_1
}
}
}
else
{
Len += formatex(menu[Len], charsmax(menu) - Len, "\d[1] Воскреснуть^n")
keys &= ~MENU_KEY_1
}
if(flags & ADMIN_MAP)
{
if (!Gravity[id])
{
Len += formatex(menu[Len], charsmax(menu) - Len, "\d[2] Взять гравитацию^n")
keys &= ~MENU_KEY_2
}
else
{
if (timeGravity[id] < systime)
{
Len += formatex(menu[Len], charsmax(menu) - Len, "\r[\y2\r] \wВзять гравитацию: \r(\y%d\r)^n", Gravity[id])
keys |= MENU_KEY_2
}
else
{
m = (timeGravity[id] - systime) / 60; s = (timeGravity[id] - systime) % 60;
Len += formatex(menu[Len], charsmax(menu) - Len, "\d[2] Взять гравитацию: (%d) [\y%d:%s%d\d]^n", Gravity[id], m, s < 10 ? "0" : "", s)
keys &= ~MENU_KEY_2
}
}
}
else
{
Len += formatex(menu[Len], charsmax(menu) - Len, "\d[2] Взять гравитацию^n")
keys &= ~MENU_KEY_2
}
if(flags & ADMIN_MAP)
{
if (!SpeedA[id])
{
Len += formatex(menu[Len], charsmax(menu) - Len, "\d[3] Взять скорость^n")
keys &= ~MENU_KEY_3
}
else
{
if (timeSpeedA[id] < systime)
{
Len += formatex(menu[Len], charsmax(menu) - Len, "\r[\y3\r] \wВзять скорость: \r(\y%d\r)^n", SpeedA[id])
keys |= MENU_KEY_3
}
else
{
m = (timeSpeedA[id] - systime) / 60; s = (timeSpeedA[id] - systime) % 60;
Len += formatex(menu[Len], charsmax(menu) - Len, "\d[3] Взять скорость: (%d) [\y%d:%s%d\d]^n", SpeedA[id], m, s < 10 ? "0" : "", s)
keys &= ~MENU_KEY_3
}
}
}
else
{
Len += formatex(menu[Len], charsmax(menu) - Len, "\d[3] Взять скорость^n")
keys &= ~MENU_KEY_3
}
if(flags & ADMIN_MAP)
{
if (!Invis[id])
{
Len += formatex(menu[Len], charsmax(menu) - Len, "\d[4] Взять невидимость^n")
keys &= ~MENU_KEY_4
}
else
{
if (timeInvis[id] < systime)
{
Len += formatex(menu[Len], charsmax(menu) - Len, "\r[\y4\r] \wВзять невидимость: \r(\y%d\r)^n", Invis[id])
keys |= MENU_KEY_4
}
else
{
m = (timeInvis[id] - systime) / 60; s = (timeInvis[id] - systime) % 60;
Len += formatex(menu[Len], charsmax(menu) - Len, "\d[4] Взять невидимость: (%d) [\y%d:%s%d\d]^n", Invis[id], m, s < 10 ? "0" : "", s)
keys &= ~MENU_KEY_4
}
}
}
else
{
Len += formatex(menu[Len], charsmax(menu) - Len, "\d[4] Взять невидимость^n")
keys &= ~MENU_KEY_4
}
if(flags & ADMIN_MAP)
{
if (!Money[id])
{
Len += formatex(menu[Len], charsmax(menu) - Len, "\d[5] Взять (5000$)^n")
keys &= ~MENU_KEY_5
}
else
{
if (timeMoney[id] < systime)
{
Len += formatex(menu[Len], charsmax(menu) - Len, "\r[\y5\r] \wВзять (5000$): \r(\y%d\r)^n", Money[id])
keys |= MENU_KEY_5
}
else
{
m = (timeMoney[id] - systime) / 60; s = (timeMoney[id] - systime) % 60;
Len += formatex(menu[Len], charsmax(menu) - Len, "\d[5] Взять (5000$): (%d) [\y%d:%s%d\d]^n", Money[id], m, s < 10 ? "0" : "", s)
keys &= ~MENU_KEY_5
}
}
}
else
{
Len += formatex(menu[Len], charsmax(menu) - Len, "\d[5] Взять (5000$)^n")
keys &= ~MENU_KEY_5
}
if(flags & ADMIN_MAP)
{
if(!HP[id])
{
Len += formatex(menu[Len], charsmax(menu) - Len, "\d[6] Взять 500HP и 500AP^n", HP[id])
keys &= ~MENU_KEY_6
}
else
{
Len += formatex(menu[Len], charsmax(menu) - Len, "\r[\y6\r] \wВзять \y500HP и 500AP: \r(\y%d\r)^n", HP[id])
keys |= MENU_KEY_6
}
}
else
{
Len += formatex(menu[Len], charsmax(menu) - Len, "\d[6] Взять 250HP и 250AP^n", HP[id])
keys &= ~MENU_KEY_6
}
if(flags & ADMIN_MAP)
{
if(!Grenade[id])
{
Len += formatex(menu[Len], charsmax(menu) - Len, "\d[7] Взять гранаты^n^n", Grenade[id])
keys &= ~MENU_KEY_7
}
else
{
Len += formatex(menu[Len], charsmax(menu) - Len, "\r[\y7\r] \wВзять гранаты: \r(\y%d\r)^n^n", Grenade[id])
keys |= MENU_KEY_7
}
}
else
{
Len += formatex(menu[Len], charsmax(menu) - Len, "\d[7] Взять гранаты^n^n", Grenade[id])
keys &= ~MENU_KEY_7
}
if(g_bDamage[id])
{
Len += formatex(menu[Len], charsmax(menu) - Len, "\d[8] AmxModMenu \yNew\r*^n")
keys &= ~MENU_KEY_8
}
else
{
Len += formatex(menu[Len], charsmax(menu) - Len, "\r[\y8\r] \wAmxModMenu \yNew\r*^n")
keys |= MENU_KEY_8
}
Len += formatex(menu[Len], charsmax(menu) - Len, "\r[\y0\r] \wВыход^n")
keys |= MENU_KEY_0
show_menu(id, keys, menu, -1, "Menu 1");
return PLUGIN_HANDLED
}
public func_menu(id, key)
{
static systime; systime = get_systime();
switch(key)
{
case 0:
{
if(!is_user_alive(id))
{
if(!Spawn[id])
{
return PLUGIN_CONTINUE
}
else
{
--Spawn[id]
ExecuteHam(Ham_CS_RoundRespawn, id)
}
}
}
case 1:
{
--Gravity[id]
set_user_gravity(id, 0.5)
timeGravity[id] = systime + get_pcvar_num(cvar_time_for_gravity)*60;
}
case 2:
{
--SpeedA[id]
set_user_maxspeed(id, 300.0)
Spead[id] = true
timeSpeedA[id] = systime + get_pcvar_num(cvar_time_for_speeda)*60;
}
case 3:
{
--Invis[id]
set_user_rendering(id,kRenderFxGlowShell,0,0,0,kRenderTransAlpha,60)
set_task(get_pcvar_float(cvar_time_invis),"invisEnd",id);
timeInvis[id] = systime + get_pcvar_num(cvar_time_for_invis)*60;
}
case 4:
{
--Money[id]
cs_set_user_money(id, cs_get_user_money(id) + 5000)
timeMoney[id] = systime + get_pcvar_num(cvar_time_for_money)*60;
}
case 5:
{
--HP[id]
set_user_health(id, 250)
set_user_armor(id, 250)
}
case 6:
{
--Grenade[id]
give_item( id, "weapon_hegrenade")
give_item( id, "weapon_smokegrenade")
}
case 7:
{
client_cmd(id, "amxmodmenu")
}
}
if (key < 7)
adminmenu(id)
return PLUGIN_HANDLED
}
public invisEnd(id)
{
set_rendering(id,kRenderFxNone,255,255,255,kRenderNormal,16)
ColorChat(id,GREEN,"[ADMIN Меню] ^1Действие невидимости закончилось, вас снова видят.")
}
public Check_Speed(id)
{
if(g_bSpeed[id])
{
return HAM_SUPERCEDE;
}
return HAM_IGNORED;
}
public Player_Spawn(id)
{
if(g_bSpeed[id])
{
g_bSpeed[id] = false;
}
}
public Event_CurWeapon(id)
{
if(Spead[id])
{
set_user_maxspeed(id, 300.0)
}
}
все вполне получилось, но 1 косяк, меняю в кварах время через сколько будет активен пункт, но все равно 15 минут стоит)
вот скрин что получилось