Русское сообщество по скриптингу

Vampire при самоубийстве выводит две смерти

Все вопросы по скриптингу для AMXX, помощь в редактировании плагинов.

Модераторы: Subb98, liFe iS GoOD

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только скриптинга для AMX Mod X.

Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [code=php].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник sma плагина.

Vampire при самоубийстве выводит две смерти

Сообщение Visual » 19 дек 2016, 04:53

При убийстве с гранаты себя или просто разбившись (kill в консоли не подходит) выдает две смерти справа сверху. Как решить проблему?

fuck.jpg


Код: Выделить всё
/*
*   http://games.qwerty.ru
*
*    AmxModX
*   Vampire plugin
*    by Shalfey
*
*   CVars
*   amx_vampire_hp - hp add for kill
*   amx_vampire_hp_hs - hp add for kill in head
*   amx_vampire_max_hp - max player hp
*
*   Players gets HP for kills.
*/
#include <amxmodx>
#include <fun>

#define PLUGIN_VERSION "1.0c"

new health_add
new health_hs_add
new health_max

new nKiller
new nKiller_hp
new nHp_add
new nHp_max

public plugin_init
()
{
   register_plugin("Vampire", PLUGIN_VERSION, "Shalfey")

   health_add = register_cvar("amx_vampire_hp", "15")
   health_hs_add = register_cvar("amx_vampire_hp_hs", "40")
   health_max = register_cvar("amx_vampire_max_hp", "100")

   register_event("DeathMsg", "hook_death", "a", "1>0")     
}

public hook_death()
{
   // Killer id
   nKiller = read_data(1)

   if ( (read_data(3) == 1) && (read_data(5) == 0) )
   {
      nHp_add = get_pcvar_num (health_hs_add)
   }
   else
      nHp_add 
= get_pcvar_num (health_add)

   nHp_max = get_pcvar_num (health_max)

   // Updating Killer HP
   nKiller_hp = get_user_health(nKiller)
   nKiller_hp += nHp_add

   
// Maximum HP check
   if (nKiller_hp > nHp_max) nKiller_hp = nHp_max

   set_user_health
(nKiller, nKiller_hp)

   // Hud message "Healed +15/+40 hp"
   set_hudmessage(0, 255, 0, -1.0, 0.15, 0, 1.0, 1.0, 0.1, 0.1, -1)
   show_hudmessage(nKiller, "Healed +%d hp", nHp_add)

   // Screen fading
   message_begin(MSG_ONE, get_user_msgid("ScreenFade"), {0,0,0}, nKiller)
   write_short(1<<10)
   write_short(1<<10)
   write_short(0x0000)
   write_byte(0)
   write_byte(0)
   write_byte(200)
   write_byte(75)
   message_end()
   
} 



Если комментирую строку с выдачей hp,тогда отображает нормально смерть,но при этой за убийство не дает hp.

Код: Выделить всё
//set_user_health(nKiller, nKiller_hp)    
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Visual
 
Сообщения: 17
Зарегистрирован: 15 янв 2013, 18:33
Благодарил (а): 12 раз.
Поблагодарили: 0 раз.
Опыт программирования: Меньше недели
Языки программирования: Counter-Strike 1.6

Вернуться в Скриптинг

Кто сейчас на конференции

Сейчас этот форум просматривают: Bing [Bot], Yandex [Bot] и гости: 13