CBasePlayer_TakeDamage помогите допилить код

Статус
В этой теме нельзя размещать новые ответы.

BeasT

Anubis
Пользователь
Регистрация
26 Июн 2017
Сообщения
393
Симпатии
55
Пол
Мужской
Добрый вечер ув. форумчане!
Помогите допилить код

Код:
public CBasePlayer_TakeDamage(const pevVictim, pevInflictor, pevAttacker, Float:damage, bitsDamageType)
{
    if(is_valid_player(pevAttacker))
    {
        if(pevAttacker != pevVictim && rg_is_player_can_takedamage(pevVictim, pevAttacker))
        {
            g_Damage[pevAttacker] + damage
            g_Hits[pevAttacker] ++
        }
        return;
    }
}
При выводе в чат хиты показывает правильно, а dmg всегда показывает 0.[DOUBLEPOST=1507829680][/DOUBLEPOST]Этот вопрос решил.
 

BeasT

Anubis
Пользователь
Регистрация
26 Июн 2017
Сообщения
393
Симпатии
55
Пол
Мужской
Подскажите пожалуйста как отловить все хитбоксы?
 

pheel

Заблокированные
Пользователь
Регистрация
9 Июн 2017
Сообщения
195
Симпатии
92
Пол
Мужской
floatround(damage) или что то типа того. Это не целое число.
 

BeasT

Anubis
Пользователь
Регистрация
26 Июн 2017
Сообщения
393
Симпатии
55
Пол
Мужской

neygomon

Его Темнейшество :j
Заблокированные
Пользователь
Регистрация
8 Июн 2017
Сообщения
819
Симпатии
388
Пол
Мужской
как бы так:
g_Damage[pevAttacker] += damage
 
  • Мне нравится
Симпатии: pheel

BeasT

Anubis
Пользователь
Регистрация
26 Июн 2017
Сообщения
393
Симпатии
55
Пол
Мужской
Не могу ни какой инфы найти по Last Hit Group:Wacko2:
 

neygomon

Его Темнейшество :j
Заблокированные
Пользователь
Регистрация
8 Июн 2017
Сообщения
819
Симпатии
388
Пол
Мужской
get_member(victim, m_iLastHitGroup)
так вроде
почекай инклюды
 
  • Мне нравится
Симпатии: BeasT

sonyx

Заблокированные
Регистрация
8 Июн 2017
Сообщения
488
Симпатии
242
m_LastHitGroup
 
  • Мне нравится
Симпатии: BeasT

BeasT

Anubis
Пользователь
Регистрация
26 Июн 2017
Сообщения
393
Симпатии
55
Пол
Мужской
Код:
    m_LastHitGroup,

    /*
    * Description:      -
    * Member type:      int
    * Get params:       get_member(index, member);
    * Set params:       set_member(index, member, value);
    */
value типо 1,2,3 и так до 8(по-моему)?
 

BalbuR

Пользователь
Регистрация
26 Июл 2017
Сообщения
131
Симпатии
25
Пол
Мужской
Код:
    m_LastHitGroup,

    /*
    * Description:      -
    * Member type:      int
    * Get params:       get_member(index, member);
    * Set params:       set_member(index, member, value);
    */
value типо 1,2,3 и так до 8(по-моему)?
Код:
//Amxconst.inc

/**
 * Parts of body for hits
 */
#define HIT_GENERIC     0   /* none */
#define HIT_HEAD        1
#define HIT_CHEST       2
#define HIT_STOMACH     3
#define HIT_LEFTARM     4
#define HIT_RIGHTARM    5
#define HIT_LEFTLEG     6
#define HIT_RIGHTLEG    7
#define HIT_SHIELD      8 // CS only
 
  • Мне нравится
Симпатии: BeasT

BeasT

Anubis
Пользователь
Регистрация
26 Июн 2017
Сообщения
393
Симпатии
55
Пол
Мужской
Отсюда вопрос, подскажите, как будет лучше составить сообщение, куда попал?
Есть идея проверить каждый hit через if, если есть в formatex.
Может есть проще способ?
 

sonyx

Заблокированные
Регистрация
8 Июн 2017
Сообщения
488
Симпатии
242
switch case[DOUBLEPOST=1507961845][/DOUBLEPOST]или же через массив
{ "-", "голова", "грудь", "живот", "левая рука", "правая рука", "левая нога", "правая нога" }
 

BeasT

Anubis
Пользователь
Регистрация
26 Июн 2017
Сообщения
393
Симпатии
55
Пол
Мужской
Щас только заметил, у get нет value?
Код:
    * Get params:       get_member(index, member);
    * Set params:       set_member(index, member, value);
[DOUBLEPOST=1507962183][/DOUBLEPOST]
Код:
    m_LastHitGroup,

    /*
    * Description:      -
    * Member type:      int
    * Get params:       get_member(index, member);
    * Set params:       set_member(index, member, value);
    */
 

BalbuR

Пользователь
Регистрация
26 Июл 2017
Сообщения
131
Симпатии
25
Пол
Мужской
new value = get_member(index, m_LastHitGroup);

switch(value)
{
case HIT_HEAD : formatex(szText, charsmax(szText), "Привет я голова");
}
 

BeasT

Anubis
Пользователь
Регистрация
26 Июн 2017
Сообщения
393
Симпатии
55
Пол
Мужской
отсюда вообще не понимаю, как тогда сформировать сообщение так, чтобы если нет попаданий в голову, то о ней и не упоминать.
Только одна мысль приходит так же через проверки, но это ведь ерунда..?
 

neygomon

Его Темнейшество :j
Заблокированные
Пользователь
Регистрация
8 Июн 2017
Сообщения
819
Симпатии
388
Пол
Мужской
switch(value)
{
case HIT_HEAD : formatex(szText, charsmax(szText), "Привет я голова");
}

или

if(value == HIT_HEAD) formatex(szText, charsmax(szText), "Привет я голова");
 
  • Мне нравится
Симпатии: BeasT

BeasT

Anubis
Пользователь
Регистрация
26 Июн 2017
Сообщения
393
Симпатии
55
Пол
Мужской
Подумав, пришла такая идея, там же в кейсах проверять, если уже было сформировано сообщение, повторно его не формировать.
Может есть проще вариант?
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу