Как сделать вот в этом плагине снятие шапок после смерти
я нашел (я так думаю) то что отвечает за снятие в конце раунда, меняю round_end на kill и не открывается меню
Помогите кто нибудь
Код:
#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <hamsandwich>
#include <cstrike>
#include <engine>
#define PLUGIN "Hats shop"
#define VERSION "1.1"
#define AUTHOR "R-2"
#define ypon 1.4 //На сколько умножать урон от атак. Если нанёс 50 то 50*1.4=70 урона
#define HATS1 4500 //цена шапки Скорость
#define HATS2 5000 //цена шапки Гравитация
#define HATS3 6500 //цена шапки скорость + грава
#define HATS4 8000 //цена шапки Дамаг
#define HATS5 10000 //VIP шапка Невидимость 50%
#define HATS6 10000 //Супер VIP шапка, все умелки
#define FLAG_VIP ADMIN_LEVEL_C //флаг доступа на покупку шапки 5 (вип)
#define FLAG_SVIP ADMIN_LEVEL_G //флаг доступа на покупку шапки 6 (Супер вип)
new Ent[33]
new OffSkill[33]
new g_speed[33]
new g_grava[33]
new g_damag[33]
new g_invis[33]
new const chebur[] = "models/shopr2/cheburashka.mdl"
new const cow[ ] = "models/shopr2/cow.mdl"
new const demon[ ] = "models/shopr2/demon.mdl"
new const elf[ ] = "models/shopr2/elf.mdl"
new const gena[ ] = "models/shopr2/gena.mdl"
new const kotan[ ] = "models/shopr2/kotan.mdl"
new const pristavka[ ] = "GoodGame"
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
RegisterHam(Ham_Item_PreFrame, "player", "PreFrame_Post", 1)
RegisterHam(Ham_TakeDamage, "player", "Player_TakeDamage")
register_logevent("round_end", 2, "1=Round_End")
register_clcmd("say /hats","hats_menu")
}
public plugin_precache( )
{
precache_model(chebur)
precache_model(cow)
precache_model(demon)
precache_model(elf)
precache_model(gena)
precache_model(kotan)
}
public round_end()
{
for(new id = 1; id <= get_maxplayers(); id++)
{
if(OffSkill[id] > 0) OffSkill[id] -= 1
if(OffSkill[id] <= 0 && (g_grava[id] || g_speed[id] || g_damag[id] || g_invis[id])){
color_chat(id, "!y[!g%s!y] !tУ вас закончился срок шапки.", pristavka)
remove_hat(id)
g_speed[id] = false
g_damag[id] = false
g_invis[id] = false
g_grava[id] = false
set_user_rendering(id)
set_user_gravity(id, 1.0)
ExecuteHam(Ham_Item_PreFrame, id)
}
}
}
public client_disconnect(id){
remove_hat(id)
g_speed[id] = false
g_invis[id] = false
g_damag[id] = false
g_grava[id] = false
}
public client_connect(id){
g_speed[id] = false
g_invis[id] = false
g_damag[id] = false
g_grava[id] = false
}
public hats_menu(id)
{
if(get_user_team(id) == 3){
color_chat(id, "!tВыберите !gкоманду !tчтобы открыть Магазин")
return PLUGIN_HANDLED
}
if(!is_user_alive(id)){
color_chat(id, "!gТы же мёртв! !tНафига тебе шапка, ты !yПРО!t, я в тебя верю !g:D")
return PLUGIN_HANDLED
}
new szText[ 555 char ];
new money = cs_get_user_money(id)
formatex( szText, charsmax( szText ), "\yМагазин шапочек:^nВаш счёт: %d", money)
new i_Menuh = menu_create(szText, "menu_hats")
if(money >= HATS1 && is_user_alive(id))
formatex( szText, charsmax( szText ), "\yГена \d[\rСкорость\w+\d] \w| \y%d\r$", HATS1)
else if(money <= HATS1 && is_user_alive(id))
formatex( szText, charsmax( szText ), "\dГена | \y%d\r$", HATS1)
else if(!is_user_alive(id))
formatex( szText, charsmax( szText ), "\dГена \w[\rВы мертвы\w]")
menu_additem(i_Menuh, szText, "1", 0)
if(money >= HATS2 && is_user_alive(id))
formatex( szText, charsmax( szText ), "\yЧебурашка \d[\rГравитация\w+\d] \w| \y%d\r$", HATS2)
else if(money <= HATS2 && is_user_alive(id))
formatex( szText, charsmax( szText ), "\dЧебурашка | \y%d\r$", HATS2)
else if(!is_user_alive(id))
formatex( szText, charsmax( szText ), "\dЧебурашка \w[\rВы мертвы!\w]")
menu_additem(i_Menuh, szText, "2", 0)
if(money >= HATS3 && is_user_alive(id))
formatex( szText, charsmax( szText ), "\yКорова \d[\rСкор\w+ \rГрав\w+\d] \w| \y%d\r$", HATS3)
else if(money <= HATS3 && is_user_alive(id))
formatex( szText, charsmax( szText ), "\dКорова | \y%d\r$", HATS3)
else if(!is_user_alive(id))
formatex( szText, charsmax( szText ), "\dКорова \w[\rВы мертвы!\w]")
menu_additem(i_Menuh, szText, "3", 0)
if(money >= HATS4 && is_user_alive(id))
formatex( szText, charsmax( szText ), "\yДемон \d[\rУрон\w+\d] \w| \y%d\r$", HATS4)
else if(money <= HATS4 && is_user_alive(id))
formatex( szText, charsmax( szText ), "\dДемон | \y%d\r$", HATS4)
else if(!is_user_alive(id))
formatex( szText, charsmax( szText ), "\dДемон \w[\rВы мертвы!\w]")
menu_additem(i_Menuh, szText, "4", 0)
if(get_user_flags(id) & FLAG_VIP || get_user_flags(id) & FLAG_SVIP)
menu_addtext(i_Menuh,"^n\rVIP\w: ",0)
else
menu_addtext(i_Menuh,"^n\yVIP: \d[\rНет доступа\d]\w: ",0)
if(money >= HATS5 && is_user_alive(id) && get_user_flags(id) & FLAG_VIP)
formatex( szText, charsmax( szText ), "\yЭльф \d[\rНевидимость\d] \w| \y%d\r$", HATS5)
else if(!is_user_alive(id) && get_user_flags(id) & FLAG_VIP)
formatex( szText, charsmax( szText ), "\dЭльф \w[\rВы мертвы!\w]")
else if(money <= HATS5 && get_user_flags(id) & FLAG_VIP)
formatex( szText, charsmax( szText ), "\dЭльф \w| \y%d\r$", HATS5)
else if(!(get_user_flags(id) & FLAG_VIP))
formatex( szText, charsmax( szText ), "\dЭльф \w[\rНет доступа\w]")
menu_additem(i_Menuh, szText, "5", 0)
if(get_user_flags(id) & FLAG_VIP || get_user_flags(id) & FLAG_SVIP)
menu_addtext(i_Menuh,"^n\rСупер VIP\w: ",0)
else
menu_addtext(i_Menuh,"^n\yСупер VIP \d[\rНет доступа\d]\w: ",0)
if(money >= HATS5 && is_user_alive(id) && get_user_flags(id) & FLAG_SVIP)
formatex( szText, charsmax( szText ), "\yКотан \d[\rВесь комплект\d] \w| \y%d\r$", HATS6)
else if(!is_user_alive(id) && get_user_flags(id) & FLAG_SVIP)
formatex( szText, charsmax( szText ), "\dКотан \w[\rВы мертвы!\w]")
else if(money <= HATS6 && get_user_flags(id) & FLAG_SVIP)
formatex( szText, charsmax( szText ), "\dКотан \w| \y%d\r$", HATS6)
else if(!(get_user_flags(id) & FLAG_SVIP))
formatex( szText, charsmax( szText ), "\dКотан \w[\rНет доступа\w]")
menu_additem(i_Menuh, szText, "6", 0)
menu_setprop(i_Menuh, MPROP_EXITNAME, "Выход")
menu_setprop(i_Menuh, MPROP_EXIT, MEXIT_ALL)
menu_display(id, i_Menuh, 0)
return PLUGIN_HANDLED
}
public menu_hats(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_Key = str_to_num(s_Data)
new money = cs_get_user_money(id)
switch(i_Key)
{
case 2:
{
if(Ent[id] > 0)
{
color_chat(id, "!y[!g%s!y] !tВы и так в шапке", pristavka)
return PLUGIN_HANDLED
}
if(!is_user_alive(id))
{
color_chat(id, "!y[!g%s!y] !tТы мёртв!", pristavka)
return PLUGIN_HANDLED
}
if(money < HATS2)
{
color_chat(id, "!y[!g%s!y] !tВам не хватает денег!", pristavka)
return PLUGIN_HANDLED
}
if(Ent[id] < 1)
{
Ent[id] = create_entity("info_target")
if(is_valid_ent(id))
{
OffSkill[id] = 2
entity_set_model(Ent[id] , chebur)
entity_set_int(Ent[id], EV_INT_movetype, MOVETYPE_FOLLOW)
entity_set_edict(Ent[id], EV_ENT_aiment, id)
set_user_gravity(id, 0.5)
g_grava[id] = true
cs_set_user_money(id, money - HATS2)
color_chat(id, "!y[!g%s!y] !tВы одели шапку !gЧебурашки", pristavka)
color_chat(id, "!y[!g%s!y] !tВы получили способность !gГравитация!y+", pristavka)
}
}
}
case 1:
{
if(Ent[id] > 0)
{
color_chat(id, "!y[!g%s!y] !tВы и так в шапке", pristavka)
return PLUGIN_HANDLED
}
if(!is_user_alive(id))
{
color_chat(id, "!y[!g%s!y] !tТы мёртв!", pristavka)
return PLUGIN_HANDLED
}
if(money < HATS1)
{
color_chat(id, "!y[!g%s!y] !tВам не хватает денег!", pristavka)
return PLUGIN_HANDLED
}
if(Ent[id] < 1)
{
Ent[id] = create_entity("info_target")
if(is_valid_ent(id))
{
OffSkill[id] = 2
entity_set_model(Ent[id] , gena)
entity_set_int(Ent[id], EV_INT_movetype, MOVETYPE_FOLLOW)
entity_set_edict(Ent[id], EV_ENT_aiment, id)
g_speed[id] = true
set_user_maxspeed(id, 360.0)
cs_set_user_money(id, money - HATS1)
color_chat(id, "!y[!g%s!y] !tВы одели шапку !gГеныча", pristavka)
color_chat(id, "!y[!g%s!y] !tВы получили способность !gСкорость!y+", pristavka)
}
}
}
case 3:
{
if(Ent[id] > 0)
{
color_chat(id, "!y[!g%s!y] !tВы и так в шапке", pristavka)
return PLUGIN_HANDLED
}
if(!is_user_alive(id))
{
color_chat(id, "!y[!g%s!y] !tТы мёртв!", pristavka)
return PLUGIN_HANDLED
}
if(money < HATS3)
{
color_chat(id, "!y[!g%s!y] !tВам не хватает денег!", pristavka)
return PLUGIN_HANDLED
}
if(Ent[id] < 1)
{
Ent[id] = create_entity("info_target")
if(is_valid_ent(id))
{
OffSkill[id] = 2
entity_set_model(Ent[id] , cow)
entity_set_int(Ent[id], EV_INT_movetype, MOVETYPE_FOLLOW)
entity_set_edict(Ent[id], EV_ENT_aiment, id)
set_user_gravity(id, 0.5)
g_speed[id] = true
g_grava[id] = true
set_user_maxspeed(id, 360.0)
cs_set_user_money(id, money - HATS3)
color_chat(id, "!y[!g%s!y] !tВы одели шапку !gКоровы", pristavka)
color_chat(id, "!y[!g%s!y] !tВы получили способность !gГравитация!y+ !t| !gСкорость!y+", pristavka)
}
}
}
case 4:
{
if(Ent[id] > 0)
{
color_chat(id, "!y[!g%s!y] !tВы и так в шапке", pristavka)
return PLUGIN_HANDLED
}
if(!is_user_alive(id))
{
color_chat(id, "!y[!g%s!y] !tТы мёртв!", pristavka)
return PLUGIN_HANDLED
}
if(money < HATS4)
{
color_chat(id, "!y[!g%s!y] !tВам не хватает денег!", pristavka)
return PLUGIN_HANDLED
}
if(Ent[id] < 1)
{
Ent[id] = create_entity("info_target")
if(is_valid_ent(id))
{
OffSkill[id] = 2
entity_set_model(Ent[id] , demon)
entity_set_int(Ent[id], EV_INT_movetype, MOVETYPE_FOLLOW)
entity_set_edict(Ent[id], EV_ENT_aiment, id)
g_damag[id] = true
cs_set_user_money(id, money - HATS4)
color_chat(id, "!y[!g%s!y] !tВы одели шапку !gДемона", pristavka)
color_chat(id, "!y[!g%s!y] !tВы получили способность !gУрон!y+", pristavka)
}
}
}
case 5:
{
if(!(get_user_flags(id) & FLAG_VIP))
{
color_chat(id, "!y[!g%s!y] !gУ вас нет доступа на покупку данной шапки.", pristavka)
return PLUGIN_HANDLED
}
if(Ent[id] > 0)
{
color_chat(id, "!y[!g%s!y] !tВы и так в шапке", pristavka)
return PLUGIN_HANDLED
}
if(!is_user_alive(id))
{
color_chat(id, "!y[!g%s!y] !tТы мёртв!", pristavka)
return PLUGIN_HANDLED
}
if(money < HATS5){
color_chat(id, "!y[!g%s!y] !tВам не хватает денег!", pristavka)
return PLUGIN_HANDLED
}
if(Ent[id] < 1)
{
Ent[id] = create_entity("info_target")
if(is_valid_ent(id))
{
OffSkill[id] = 4
entity_set_model(Ent[id] , elf)
entity_set_int(Ent[id], EV_INT_movetype, MOVETYPE_FOLLOW)
entity_set_edict(Ent[id], EV_ENT_aiment, id)
set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 50)
g_invis[id] = true
cs_set_user_money(id, money - HATS5)
color_chat(id, "!y[!g%s!y] !tВы одели шапку !gЭльфа", pristavka)
color_chat(id, "!y[!g%s!y] !tВы получили способность !gНевидимость!y 50%", pristavka)
}
}
}
case 6:
{
if(!(get_user_flags(id) & FLAG_SVIP))
{
color_chat(id, "!y[!g%s!y] !gУ вас нет доступа на покупку данной шапки.", pristavka)
return PLUGIN_HANDLED
}
if(Ent[id] > 0)
{
color_chat(id, "!y[!g%s!y] !tВы и так в шапке", pristavka)
return PLUGIN_HANDLED
}
if(!is_user_alive(id))
{
color_chat(id, "!y[!g%s!y] !tТы мёртв!", pristavka)
return PLUGIN_HANDLED
}
if(money < HATS6){
color_chat(id, "!y[!g%s!y] !tВам не хватает денег!", pristavka)
return PLUGIN_HANDLED
}
if(Ent[id] < 1)
{
Ent[id] = create_entity("info_target")
if(is_valid_ent(id))
{
OffSkill[id] = 4
entity_set_model(Ent[id] , kotan)
entity_set_int(Ent[id], EV_INT_movetype, MOVETYPE_FOLLOW)
entity_set_edict(Ent[id], EV_ENT_aiment, id)
set_user_maxspeed(id, 360.0)
set_user_gravity(id, 0.5)
set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 50)
g_speed[id] = true
g_grava[id] = true
g_invis[id] = true
g_damag[id] = true
cs_set_user_money(id, money - HATS6)
color_chat(id, "!y[!g%s!y] !tВы одели шапку !gКота", pristavka)
color_chat(id, "!y[!g%s!y] !tВы получили все способности !y[!gПолноценный комплект!y]", pristavka)
}
}
}
}
menu_destroy(menu)
return PLUGIN_HANDLED
}
public remove_hat(id)
{
if(Ent[id] > 0)
{
remove_entity(Ent[id])
Ent[id] = 0
}
}
public PreFrame_Post(id)
{
if(!is_user_connected(id) || !is_user_alive(id))
return
if(g_speed[id])
set_user_maxspeed(id, 360.0)
if(g_grava[id])
set_user_gravity(id, 0.5)
if(g_invis[id])
set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 50)
}
public Player_TakeDamage(victim, inflictor, attacker, Float:damage, damage_type)
{
if(!is_user_connected(victim) || !is_user_connected(attacker) || victim == attacker)
return HAM_IGNORED
if(!g_damag[attacker])
return HAM_IGNORED
SetHamParamFloat(4, damage * ypon)
return HAM_IGNORED
}
stock color_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")
replace_all(msg, 190, "!y", "^1")
replace_all(msg, 190, "!t", "^3")
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();
}
}
}
}
Код:
register_logevent("round_end", 2, "1=Round_End")
public round_end()
{
for(new id = 1; id <= get_maxplayers(); id++)
{
if(OffSkill[id] > 0) OffSkill[id] -= 1
if(OffSkill[id] <= 0 && (g_grava[id] || g_speed[id] || g_damag[id] || g_invis[id])){
color_chat(id, "!y[!g%s!y] !tУ вас закончился срок шапки.", pristavka)
remove_hat(id)
g_speed[id] = false
g_damag[id] = false
g_invis[id] = false
g_grava[id] = false
set_user_rendering(id)
set_user_gravity(id, 1.0)
ExecuteHam(Ham_Item_PreFrame, id)
}
}
}