Увеличить урон HE

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

BeasT

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

PHP:
RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage")
PHP:
public fw_TakeDamage(victim, inflictor, attacker, Float:damage, bitsDamageType)
{
    #define DMG_GRENADE (1<<24)
    
    if(!is_valid_player(attacker))
    return HAM_IGNORED;

    if(bitsDamageType & DMG_GRENADE)
    {
        if(g_HasHe[attacker])
        {
            SetHamParamFloat( 4, damage * 200.0 )   
        }
    }
    
    return HAM_IGNORED
}
Добавлено спустя 1 час 22 минуты 17 секунд:
PHP:
public fw_TakeDamage(victim, inflictor, attacker, Float:damage, bitsDamageType)
{
    #define DMG_GRENADE (1<<24)
  
    if(!is_valid_player(attacker))
    return HAM_IGNORED;

    new classname[32]
        pev(inflictor,pev_classname,classname,31)
      
        if(g_HasHe[attacker] && strcmp(classname,"grenade"))
        {
            SetHamParamFloat( 4, damage * 2.0 )   
            return HAM_HANDLED    // tell the module we did something
        }
  
    return HAM_IGNORED
}
Тоже не прокатило
 

Vesuvius

НЕ СКРИПТЕР!!!
Команда форума
Администратор
Регистрация
8 Июн 2017
Сообщения
1.595
Симпатии
570
Пол
Мужской
Код:
public plugin_init()
    RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage_Pre", 0);

public fw_TakeDamage_Pre(victim, inflictor, attacker, Float:damage, damage_bits)
{
    // Если урон нанесен не с HE гранаты
    if (!(damage_bits & DMG_GRENADE))
        return HAM_IGNORED;

    // Меняем множитель Урона
    SetHamParamFloat(4, damage*2.0);

    return HAM_IGNORED;
}
а так?
писал не я
 
  • Мне нравится
Симпатии: BeasT

BeasT

Anubis
Пользователь
Регистрация
26 Июн 2017
Сообщения
390
Симпатии
53
Пол
Мужской
вот это бедааа
Проверять то надо было
if (!(damage_bits & DMG_GRENADE))
а я проверяю
if (damage_bits & DMG_GRENADE)
Спасибо, помог!
 

BeasT

Anubis
Пользователь
Регистрация
26 Июн 2017
Сообщения
390
Симпатии
53
Пол
Мужской
PHP:
public fw_TakeDamage_Pre(victim, inflictor, attacker, Float:damage, damage_bits)
{
  if(is_valid_player( attacker ))
  {
  if(g_HasHe[attacker])
  {
  #define DMG_GRENADE (1«24)
    // Если урон нанесен не с HE гранаты
  if (!(damage_bits & DMG_GRENADE))
  return HAM_IGNORED;
    
    // Меняем множитель Урона
    SetHamParamFloat(4, damage*2.0);

    return HAM_IGNORED;
  }
  }
  return HAM_IGNORED;
}
если проверку делать g_HasHe[attacker] = false то проходит и проходит на все гранаты
если на true то нет, но у игрока точно равно true
но мне надо только тем у кого true

Т.е. он как буд-то не видит что у игрока g_HasHe = true
 

Vesuvius

НЕ СКРИПТЕР!!!
Команда форума
Администратор
Регистрация
8 Июн 2017
Сообщения
1.595
Симпатии
570
Пол
Мужской
а если так?... не кидать камнями...
Код:
public fw_TakeDamage_Pre(victim, inflictor, attacker, Float:damage, damage_bits)
{
  if(is_valid_player( attacker ) && g_HasHe[attacker] && (1<<get_user_weapon(id, plrClip , plrAmmo) ) & SHOT_BITSUM) 
  {
  #define DMG_GRENADE (1«24)
    // Если урон нанесен не с HE гранаты
  if (!(damage_bits & DMG_GRENADE))
  return HAM_IGNORED;
    
    // Меняем множитель Урона
    SetHamParamFloat(4, damage*2.0);

    return HAM_IGNORED;
  }
}
 

BeasT

Anubis
Пользователь
Регистрация
26 Июн 2017
Сообщения
390
Симпатии
53
Пол
Мужской
не, походу с переменной косяк, скорее вс его всё норм работает.
 

BeasT

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