А что самому протестировать невозможно? Нашол несколько ошибок, которые указывают на недостаточное знание языка и команд на стороне клиента
client_cmd(id,g_heart) - вот здесь мы вообще что делаем?). Хотим проиграть звук на стороне клиента. Должно быть так: client_cmd(id, "spk %s", g_heart)
Вот здесь:
Code
public func_menu(id,menu,key)
{
key++
if(key==1)
{
new money=cs_get_user_money(id)
new cost=get_pcvar_num(give_money)
if(money<cost)
return PLUGIN_HANDLED
formatex(message,255,"^x04Y Bac HegoCTaTo4HO cpegCTB gJI9I BOCCTAHOBJIEHu9I HP!",id)
cs_get_user_money(id)-get_pcvar_num(give_money)
set_user_health(id,100)
}
if(key==2)
{
m enu_cancel(id)
}
}
Здесь будет происходить следующее:
Когда клиент выберет первый пункт меню, то если у него недостаточно денег на востоновление то ничего не произойдет (даже ничего не напишеться).
Должно быть вот так:
Code
public func_menu(id,menu,key)
{
key++
if(key==1)
{
new money=cs_get_user_money(id)
new cost=get_pcvar_num(give_money)
if(money<cost)
{
formatex(message,255,"^x04Y Bac HegoCTaTo4HO cpegCTB gJI9I BOCCTAHOBJIEHu9I HP!",id)
return PLUGIN_HANDLED
}
else
{
cs_get_user_money(id)-get_pcvar_num(give_money)
set_user_health(i d,100)
}
}
if(key==2)
{
menu_cancel(id)
}
}
И я не уверен что это будет работать именно в тот момент когда у игрока отнимаються(добавляються) жизни public give_player_hp(id).
Вообще нада использовать register_event("DamageMsg", "PlayerHit", "a")