Все вопросы по скриптингу для AMXX, помощь в редактировании плагинов.
Модераторы: Subb98, liFe iS GoOD
Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.
В данном разделе форума разрешено создавать темы, касающие только скриптинга для AMX Mod X.
Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [code=php].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник sma плагина.
Jeka_Pro » 09 янв 2017, 16:20
поставил ограничение по времени на некие пункты, при нажатие на него,в чат должно выходить сообщение сколько осталось времени до взятия,с пунктом "деньги" это работает.а с остальными не хочет, что не так сделал?
КОД
- Код: Выделить всё
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
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 Float:timeMoney[33];
new Float:timeGravity[33];
new Float:timeSpeedA[33];
new Float:timeInvis[33];
new Float:timeInvisEnd[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;
const NOCLIP_WPN_BS = ((1<<CSW_HEGRENADE)|(1<<CSW_SMOKEGRENADE)|(1<<CSW_FLASHBANG)|(1<<CSW_KNIFE)|(1<<CSW_C4))
new bool:g_bDamage[33], bool:g_bUnlimitedAmmo[33];
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") for(new i=1;i<get_maxplayers();i++)
timeMoney[i] = (get_gametime() + get_pcvar_float(cvar_time_for_money)*60);
for(new i=1;i<get_maxplayers();i++)
timeGravity[i] = (get_gametime() + get_pcvar_float(cvar_time_for_gravity)*60);
for(new i=1;i<get_maxplayers();i++)
timeSpeedA[i] = (get_gametime() + get_pcvar_float(cvar_time_for_speeda)*60);
for(new i=1;i<get_maxplayers();i++)
timeInvis[i] = (get_gametime() + get_pcvar_float(cvar_time_for_invis)*60);
}
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 <= get_maxplayers(); 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 menu[650], Len
Len = 0
Len = formatex(menu[Len], charsmax(menu) - Len, "\r[\yCSDM\r] \wADMIN Меню^n^n");
if(get_user_flags(id) & ADMIN_MAP)
{
if(!is_user_alive(id))
{
if(Spawn[id] == 0)
{
Len += formatex(menu[Len], charsmax(menu) - Len, "\d[1] Воскреснуть^n", Spawn[id])
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", Spawn[id])
keys &= ~MENU_KEY_1
}
}
if(get_user_flags(id) & ADMIN_MAP)
{
if(Gravity[id] == 0 || timeGravity[id] > get_gametime())
{
Len += formatex(menu[Len], charsmax(menu) - Len, "\d[2] Взять гравитацию^n", Gravity[id])
keys &= ~MENU_KEY_2
}else{
Len += formatex(menu[Len], charsmax(menu) - Len, "\r[\y2\r] \wВзять гравитацию: \r(\y%d\r)^n", Gravity[id])
keys |= MENU_KEY_2
}
}else{
Len += formatex(menu[Len], charsmax(menu) - Len, "\d[2] Взять гравитацию^n", Gravity[id])
keys &= ~MENU_KEY_2
}
if(get_user_flags(id) & ADMIN_MAP)
{
if(SpeedA[id] == 0 || timeSpeedA[id] > get_gametime())
{
Len += formatex(menu[Len], charsmax(menu) - Len, "\d[3] Взять скорость^n", SpeedA[id])
keys &= ~MENU_KEY_3
}else{
Len += formatex(menu[Len], charsmax(menu) - Len, "\r[\y3\r] \wВзять скорость: \r(\y%d\r)^n", SpeedA[id])
keys |= MENU_KEY_3
}
}else{
Len += formatex(menu[Len], charsmax(menu) - Len, "\d[3] Взять скорость^n", SpeedA[id])
keys &= ~MENU_KEY_3
}
if(get_user_flags(id) & ADMIN_MAP)
{
if(Invis[id] == 0 || timeInvis[id] > get_gametime())
{
Len += formatex(menu[Len], charsmax(menu) - Len, "\d[4] Взять Невидимость^n", Invis[id])
keys &= ~MENU_KEY_4
}else{
Len += formatex(menu[Len], charsmax(menu) - Len, "\r[\y4\r] \wВзять Невидимость: \r(\y%d\r)^n", Invis[id])
keys |= MENU_KEY_4
}
}else{
Len += formatex(menu[Len], charsmax(menu) - Len, "\d[4] Взять Невидимость^n", Invis[id])
keys &= ~MENU_KEY_4
}
if(get_user_flags(id) & ADMIN_MAP)
{
if(Money[id] == 0 || timeMoney[id] > get_gametime())
{
Len += formatex(menu[Len], charsmax(menu) - Len, "\d[5] Взять (5000$)^n", Money[id])
keys |= MENU_KEY_5
}else{
Len += formatex(menu[Len], charsmax(menu) - Len, "\r[\y5\r] \wВзять \r(\y5000$\r) \r(\y%d\r)^n", Money[id])
keys |= MENU_KEY_5
}
}else{
Len += formatex(menu[Len], charsmax(menu) - Len, "\d[5] Взять (5000$)^n", Money[id])
keys &= ~MENU_KEY_5
}
if(get_user_flags(id) & ADMIN_MAP)
{
if(HP[id] == 0)
{
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(get_user_flags(id) & ADMIN_MAP)
{
if(Grenade[id] == 0)
{
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)
{
switch(key)
{
case 0:
{
if(!is_user_alive(id))
{
if(Spawn[id] == 0)
{
return PLUGIN_CONTINUE
}
else
{
Spawn[id] = Spawn[id] -1
ExecuteHam(Ham_CS_RoundRespawn, id)
adminmenu(id)
}
}
}
case 1:
{
if(Gravity[id] == 0)
{
return PLUGIN_CONTINUE
}
else
{
if(timeGravity[id] <= get_gametime())
{
Gravity[id] = Gravity[id] -1
set_user_gravity(id, 0.5)
adminmenu(id)
}
else
{
new minutes = floatround((timeGravity[id] - get_gametime()),floatround_round)/60;
new seconds = floatround((timeGravity[id] - get_gametime()),floatround_round)%60;
ColorChat(id,GREEN,"[ADMIN Меню] ^1До взятия гравитации подождите ^4%d:%d",minutes,seconds)
adminmenu(id)
}
}
}
case 2:
{
if(SpeedA[id] == 0)
{
return PLUGIN_CONTINUE
}
else
{
if(timeSpeedA[id] <= get_gametime())
{
SpeedA[id] = SpeedA[id] -1
set_user_maxspeed(id, 300.0)
Spead[id] = true
adminmenu(id)
}
else
{
new minutes = floatround((timeSpeedA[id] - get_gametime()),floatround_round)/60;
new seconds = floatround((timeSpeedA[id] - get_gametime()),floatround_round)%60;
ColorChat(id,GREEN,"[ADMIN Меню] ^1До взятия скорости подождите ^4%d:%d",minutes,seconds)
adminmenu(id)
}
}
}
case 3:
{
if(Invis[id] == 0)
{
return PLUGIN_CONTINUE
}
else
{
if(timeInvis[id] <= get_gametime())
{
Invis[id] = Invis[id] -1
set_user_rendering(id,kRenderFxGlowShell,0,0,0,kRenderTransAlpha,60)
timeInvisEnd[id] = get_gametime() + get_pcvar_float(cvar_time_invis);
set_task(get_pcvar_float(cvar_time_invis)+0.5,"invisEnd",id);
adminmenu(id)
}
else
{
new minutes = floatround((timeInvis[id] - get_gametime()),floatround_round)/60;
new seconds = floatround((timeInvis[id] - get_gametime()),floatround_round)%60;
ColorChat(id,GREEN,"[ADMIN Меню] ^1До взятия невидимости подождите ^4%d:%d",minutes,seconds)
adminmenu(id)
}
}
}
case 4:
{
if(Money[id] == 0)
{
return PLUGIN_CONTINUE
}
else
{
if(timeMoney[id] <= get_gametime())
{
Money[id] = Money[id] -1
cs_set_user_money(id, cs_get_user_money(id) + 5000)
adminmenu(id)
}
else
{
new minutes = floatround((timeMoney[id] - get_gametime()),floatround_round)/60;
new seconds = floatround((timeMoney[id] - get_gametime()),floatround_round)%60;
ColorChat(id,GREEN,"[ADMIN Меню] ^1До взятия денег подождите ^4%d:%d",minutes,seconds)
adminmenu(id)
}
}
}
case 5:
{
if(HP[id] == 0)
{
return PLUGIN_CONTINUE
}
else
{
HP[id] = HP[id] -1
set_user_health(id, 250)
set_user_armor(id, 250)
adminmenu(id)
}
}
case 6:
{
if(Grenade[id] == 0)
{
return PLUGIN_CONTINUE
}
else
{
Grenade[id] = Grenade[id] -1
give_item( id, "weapon_hegrenade")
give_item( id, "weapon_smokegrenade")
adminmenu(id)
}
}
case 7:
{
client_cmd(id, "amxmodmenu")
}
}
return PLUGIN_HANDLED
}
public invisEnd(id)
{
if(timeInvisEnd[id] < get_gametime())
{
timeInvisEnd[id] = 0.0;
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)
}
}
-
Jeka_Pro
-
- Сообщения: 43
- Зарегистрирован: 20 мар 2016, 00:07
- Откуда: Одесса
- Благодарил (а): 3 раз.
- Поблагодарили: 0 раз.
- Языки программирования: Counter-Strike 1.6
NEoMASTERR » 09 янв 2017, 16:41
- Код: Выделить всё
for(new i=1;i<get_maxplayers();i++)
timeMoney[i] = (get_gametime() + get_pcvar_float(cvar_time_for_money)*60);
for(new i=1;i<get_maxplayers();i++)
timeGravity[i] = (get_gametime() + get_pcvar_float(cvar_time_for_gravity)*60);
for(new i=1;i<get_maxplayers();i++)
timeSpeedA[i] = (get_gametime() + get_pcvar_float(cvar_time_for_speeda)*60);
for(new i=1;i<get_maxplayers();i++)
timeInvis[i] = (get_gametime() + get_pcvar_float(cvar_time_for_invis)*60);
сомнительная конструкция)
Добавлено спустя 4 минуты 14 секунд:Там пишется время ДО взятия чего либо? Т.е. любой игрок сможет взять только спустя это общее время (15 мин со старта карты) или там индивидуальные настройки и брать может каждые 15 минут?
-
NEoMASTERR
-
- Сообщения: 832
- Зарегистрирован: 05 янв 2015, 16:38
- Благодарил (а): 43 раз.
- Поблагодарили: 188 раз.
- Опыт программирования: Около года
- Языки программирования: Counter-Strike 1.6
-
Jeka_Pro » 09 янв 2017, 16:44
ну по идее должно работать каждые 15 минут, то есть взял например "скорость" она закрывается на 15 минут,и через это время снова стает доступна
-
Jeka_Pro
-
- Сообщения: 43
- Зарегистрирован: 20 мар 2016, 00:07
- Откуда: Одесса
- Благодарил (а): 3 раз.
- Поблагодарили: 0 раз.
- Языки программирования: Counter-Strike 1.6
NEoMASTERR » 09 янв 2017, 16:50
Каждые 15 минут, при входе на сервер сразу доступно или надо 15 мин отыграть и только потом доступно будет?
-
NEoMASTERR
-
- Сообщения: 832
- Зарегистрирован: 05 янв 2015, 16:38
- Благодарил (а): 43 раз.
- Поблагодарили: 188 раз.
- Опыт программирования: Около года
- Языки программирования: Counter-Strike 1.6
-
Jeka_Pro » 09 янв 2017, 16:55
15 минут отыграть нужно после входа на сервер
-
Jeka_Pro
-
- Сообщения: 43
- Зарегистрирован: 20 мар 2016, 00:07
- Откуда: Одесса
- Благодарил (а): 3 раз.
- Поблагодарили: 0 раз.
- Языки программирования: Counter-Strike 1.6
NEoMASTERR » 09 янв 2017, 17:31
- Код: Выделить всё
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;
const NOCLIP_WPN_BS = ((1<<CSW_HEGRENADE)|(1<<CSW_SMOKEGRENADE)|(1<<CSW_FLASHBANG)|(1<<CSW_KNIFE)|(1<<CSW_C4))
new bool:g_bDamage[33], bool:g_bUnlimitedAmmo[33];
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;
timeInvis[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;
}
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 <= get_maxplayers(); 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 menu[650], Len
Len = 0
Len = formatex(menu[Len], charsmax(menu) - Len, "\r[\yCSDM\r] \wADMIN Меню^n^n");
if(get_user_flags(id) & ADMIN_MAP)
{
if(!is_user_alive(id))
{
if(Spawn[id] == 0)
{
Len += formatex(menu[Len], charsmax(menu) - Len, "\d[1] Воскреснуть^n", Spawn[id])
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", Spawn[id])
keys &= ~MENU_KEY_1
}
}
if(get_user_flags(id) & ADMIN_MAP)
{
if(Gravity[id] == 0 || timeGravity[id] > systime)
{
Len += formatex(menu[Len], charsmax(menu) - Len, "\d[2] Взять гравитацию^n", Gravity[id])
keys &= ~MENU_KEY_2
}else{
Len += formatex(menu[Len], charsmax(menu) - Len, "\r[\y2\r] \wВзять гравитацию: \r(\y%d\r)^n", Gravity[id])
keys |= MENU_KEY_2
}
}else{
Len += formatex(menu[Len], charsmax(menu) - Len, "\d[2] Взять гравитацию^n", Gravity[id])
keys &= ~MENU_KEY_2
}
if(get_user_flags(id) & ADMIN_MAP)
{
if(SpeedA[id] == 0 || timeSpeedA[id] > systime)
{
Len += formatex(menu[Len], charsmax(menu) - Len, "\d[3] Взять скорость^n", SpeedA[id])
keys &= ~MENU_KEY_3
}else{
Len += formatex(menu[Len], charsmax(menu) - Len, "\r[\y3\r] \wВзять скорость: \r(\y%d\r)^n", SpeedA[id])
keys |= MENU_KEY_3
}
}else{
Len += formatex(menu[Len], charsmax(menu) - Len, "\d[3] Взять скорость^n", SpeedA[id])
keys &= ~MENU_KEY_3
}
if(get_user_flags(id) & ADMIN_MAP)
{
if(Invis[id] == 0 || timeInvis[id] > systime)
{
Len += formatex(menu[Len], charsmax(menu) - Len, "\d[4] Взять Невидимость^n", Invis[id])
keys &= ~MENU_KEY_4
}else{
Len += formatex(menu[Len], charsmax(menu) - Len, "\r[\y4\r] \wВзять Невидимость: \r(\y%d\r)^n", Invis[id])
keys |= MENU_KEY_4
}
}else{
Len += formatex(menu[Len], charsmax(menu) - Len, "\d[4] Взять Невидимость^n", Invis[id])
keys &= ~MENU_KEY_4
}
if(get_user_flags(id) & ADMIN_MAP)
{
if(Money[id] == 0 || timeMoney[id] > systime)
{
Len += formatex(menu[Len], charsmax(menu) - Len, "\d[5] Взять (5000$)^n", Money[id])
keys |= MENU_KEY_5
}else{
Len += formatex(menu[Len], charsmax(menu) - Len, "\r[\y5\r] \wВзять \r(\y5000$\r) \r(\y%d\r)^n", Money[id])
keys |= MENU_KEY_5
}
}else{
Len += formatex(menu[Len], charsmax(menu) - Len, "\d[5] Взять (5000$)^n", Money[id])
keys &= ~MENU_KEY_5
}
if(get_user_flags(id) & ADMIN_MAP)
{
if(HP[id] == 0)
{
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(get_user_flags(id) & ADMIN_MAP)
{
if(Grenade[id] == 0)
{
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();
static m, s;
switch(key)
{
case 0:
{
if(!is_user_alive(id))
{
if(Spawn[id] == 0)
{
return PLUGIN_CONTINUE
}
else
{
Spawn[id] = Spawn[id] -1
ExecuteHam(Ham_CS_RoundRespawn, id)
adminmenu(id)
}
}
}
case 1:
{
if(Gravity[id] == 0)
{
return PLUGIN_CONTINUE
}
else
{
if(timeGravity[id] <= systime)
{
Gravity[id] = Gravity[id] -1
set_user_gravity(id, 0.5)
timeGravity[id] = systime + get_pcvar_num(cvar_time_for_gravity)*60;
adminmenu(id)
}
else
{
m = (timeGravity[id] - systime) / 60;
s = (timeGravity[id] - systime) % 60;
ColorChat(id,GREEN,"[ADMIN Меню] ^1До взятия гравитации подождите ^4%d:%d",m,s)
adminmenu(id)
}
}
}
case 2:
{
if(SpeedA[id] == 0)
{
return PLUGIN_CONTINUE
}
else
{
if(timeSpeedA[id] <= systime)
{
SpeedA[id] = SpeedA[id] -1
set_user_maxspeed(id, 300.0)
Spead[id] = true
adminmenu(id)
timeSpeedA[id] = systime + get_pcvar_num(cvar_time_for_speeda)*60;
}
else
{
m = (timeSpeedA[id] - systime) / 60;
s = (timeSpeedA[id] - systime) % 60;
ColorChat(id,GREEN,"[ADMIN Меню] ^1До взятия скорости подождите ^4%d:%d",m,s)
adminmenu(id)
}
}
}
case 3:
{
if(Invis[id] == 0)
{
return PLUGIN_CONTINUE
}
else
{
if(timeInvis[id] <= systime)
{
Invis[id] = Invis[id] -1
set_user_rendering(id,kRenderFxGlowShell,0,0,0,kRenderTransAlpha,60)
set_task(get_pcvar_float(cvar_time_invis),"invisEnd",id);
adminmenu(id)
timeInvis[id] = systime + get_pcvar_num(cvar_time_for_invis)*60;
}
else
{
m = (timeInvis[id] - systime) / 60;
s = (timeInvis[id] - systime) % 60;
ColorChat(id,GREEN,"[ADMIN Меню] ^1До взятия невидимости подождите ^4%d:%d",m,s)
adminmenu(id)
}
}
}
case 4:
{
if(Money[id] == 0)
{
return PLUGIN_CONTINUE
}
else
{
if(timeMoney[id] <= systime)
{
Money[id] = Money[id] -1
cs_set_user_money(id, cs_get_user_money(id) + 5000)
adminmenu(id)
timeMoney[id] = systime + get_pcvar_num(cvar_time_for_money)*60;
}
else
{
m = (timeMoney[id] - systime) / 60;
s = (timeMoney[id] - systime) % 60;
ColorChat(id,GREEN,"[ADMIN Меню] ^1До взятия денег подождите ^4%d:%d",m,s)
adminmenu(id)
}
}
}
case 5:
{
if(HP[id] == 0)
{
return PLUGIN_CONTINUE
}
else
{
HP[id] = HP[id] -1
set_user_health(id, 250)
set_user_armor(id, 250)
adminmenu(id)
}
}
case 6:
{
if(Grenade[id] == 0)
{
return PLUGIN_CONTINUE
}
else
{
Grenade[id] = Grenade[id] -1
give_item( id, "weapon_hegrenade")
give_item( id, "weapon_smokegrenade")
adminmenu(id)
}
}
case 7:
{
client_cmd(id, "amxmodmenu")
}
}
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)
}
}
Примерно
-
NEoMASTERR
-
- Сообщения: 832
- Зарегистрирован: 05 янв 2015, 16:38
- Благодарил (а): 43 раз.
- Поблагодарили: 188 раз.
- Опыт программирования: Около года
- Языки программирования: Counter-Strike 1.6
-
Jeka_Pro » 09 янв 2017, 17:41
Сейчас проверю, и отпишусь
Добавлено спустя 6 минут 20 секунд:
нет, все так же)
сообщение не выводится в чат
-
Jeka_Pro
-
- Сообщения: 43
- Зарегистрирован: 20 мар 2016, 00:07
- Откуда: Одесса
- Благодарил (а): 3 раз.
- Поблагодарили: 0 раз.
- Языки программирования: Counter-Strike 1.6
NEoMASTERR » 09 янв 2017, 18:29
У тебя пункты недоступны если выдать нельзя, поэтому и сообщения нет, пункт не нажимается)
Добавлено спустя 1 минуту 46 секунд:Либо сделать пункты меню доступными в любом случае и выводить сообщение при нажатии, либо не выводить сообщение и отображать время прямо в пункте меню аля
2. Взять гравитацию (1) [14:59]
Добавлено спустя 1 минуту 28 секунд:Либо оставить пункты серыми, но сделать чтоб нажимались и выводили сообщение в чат
-
NEoMASTERR
-
- Сообщения: 832
- Зарегистрирован: 05 янв 2015, 16:38
- Благодарил (а): 43 раз.
- Поблагодарили: 188 раз.
- Опыт программирования: Около года
- Языки программирования: Counter-Strike 1.6
-
Jeka_Pro » 09 янв 2017, 19:08
как вывести время прямо в пункт?
-
Jeka_Pro
-
- Сообщения: 43
- Зарегистрирован: 20 мар 2016, 00:07
- Откуда: Одесса
- Благодарил (а): 3 раз.
- Поблагодарили: 0 раз.
- Языки программирования: Counter-Strike 1.6
NEoMASTERR » 09 янв 2017, 21:05
- Код: Выделить всё
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 секунд:- Код: Выделить всё
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;
const NOCLIP_WPN_BS = ((1<<CSW_HEGRENADE)|(1<<CSW_SMOKEGRENADE)|(1<<CSW_FLASHBANG)|(1<<CSW_KNIFE)|(1<<CSW_C4))
new bool:g_bDamage[33], bool:g_bUnlimitedAmmo[33];
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)
}
}
-
NEoMASTERR
-
- Сообщения: 832
- Зарегистрирован: 05 янв 2015, 16:38
- Благодарил (а): 43 раз.
- Поблагодарили: 188 раз.
- Опыт программирования: Около года
- Языки программирования: Counter-Strike 1.6
-
Вернуться в Скриптинг
Кто сейчас на конференции
Сейчас этот форум просматривают: Bing [Bot], sb123, Yandex [Bot] и гости: 8