Regen

Сообщения
24
Реакции
0
Что сделать чтобы регенерировало до 100 хп, если урон от падения <=30
Код:
#include <amxmodx>
#include <hamsandwich>
#include <hlsdk_const>
#include <fun>
#include <cstrike>




public plugin_init()
{
    RegisterHam(Ham_TakeDamage, "player", "showHP")
 
  
}

public showHP(id, iInflictor, iAttacker, Float:flDamage, iDamageBits)
{


 

new g_myhp
g_myhp = get_user_health(id)



   if(iDamageBits & DMG_FALL)
  {
      set_user_health(id, g_myhp + 35)
    set_hudmessage(42, 255, 85, 0.0, 0.90, 0, 6.0, 3.0)
    show_hudmessage(id, "Fall dmg:%f", flDamage)   
  }
}
 
Сообщения
1,419
Реакции
2,509
Помог
59 раз(а)
Проверить что нанесённый урон 30 или ниже и прибавить к текущему количество здоровья нужное либо просто установить нужное количество здоровья.
 
Сообщения
24
Реакции
0
w0w, вот так?
if(iDamageBits & DMG_FALL <= 30)
просто так у меня не работает
 
Сообщения
285
Реакции
251
Помог
7 раз(а)
NeZo, и лучше всего внести получение хп в проверку типа дамага, чтобы на каждый полученный урон не получать хп.
 
Сообщения
24
Реакции
0
NeZo, и лучше всего внести получение хп в проверку типа дамага, чтобы на каждый полученный урон не получать хп.
это так будет выглядеть?
Код:
{
if(iDamageBits & DMG_FALL; flDamage <=30)
или так?
Код:
if(iDamageBits & DMG_FALL & flDamage <=30)
 
Сообщения
285
Реакции
251
Помог
7 раз(а)
это так будет выглядеть?
Код:
{
if(iDamageBits & DMG_FALL; flDamage <=30)
или так?
Код:
if(iDamageBits & DMG_FALL & flDamage <=30)
C++:
if(iDamageBits & DMG_FALL){
    
    new iHealth = get_user_health(id);
    set_user_health(id, iHealth + flDamage);
    set_hudmessage(42, 255, 85, 0.0, 0.90, 0, 6.0, 3.0);
    show_hudmessage(id, "Fall dmg:%f", flDamage);
}
 
Сообщения
24
Реакции
0
C++:
if(iDamageBits & DMG_FALL){
   
    new iHealth = get_user_health(id);
    set_user_health(id, iHealth + flDamage);
    set_hudmessage(42, 255, 85, 0.0, 0.90, 0, 6.0, 3.0);
    show_hudmessage(id, "Fall dmg:%f", flDamage);
}
мне именно нужно чтобы полностью весь урон восстанавливало если <= 30 хп потеряно, а тут всегда до 100 будет
 
Сообщения
285
Реакции
251
Помог
7 раз(а)
мне именно нужно чтобы полностью весь урон восстанавливало если <= 30 хп потеряно, а тут всегда до 100 будет
C++:
if(iDamageBits & DMG_FALL){//игрок получил урон от падения
    
    new iHealth = get_user_health(id);//получаем его здоровье после падения
    set_user_health(id, iHealth + flDamage);//прибавляем к его здоровью после падения урон который он получил
    set_hudmessage(42, 255, 85, 0.0, 0.90, 0, 6.0, 3.0);
    show_hudmessage(id, "Fall dmg:%f", flDamage);
}
 
Сообщения
24
Реакции
0
C++:
if(iDamageBits & DMG_FALL){//игрок получил урон от падения
   
    new iHealth = get_user_health(id);//получаем его здоровье после падения
    set_user_health(id, iHealth + flDamage);//прибавляем к его здоровью после падения урон который он получил
    set_hudmessage(42, 255, 85, 0.0, 0.90, 0, 6.0, 3.0);
    show_hudmessage(id, "Fall dmg:%f", flDamage);
}
если он получит больше 30 хп урона я другой процент от здоровья буду лечить, а тут в любом случае после лубого урона будет 100 хп
 
Сообщения
285
Реакции
251
Помог
7 раз(а)
если он получит больше 30 хп урона я другой процент от здоровья буду лечить, а тут в любом случае после лубого урона будет 100 хп
после какого любого урона, если идёт условие конкретно урон после падения!
 
Сообщения
2,143
Реакции
1,223
Помог
44 раз(а)
Код:
if(iDamageBits & DMG_FALL){//игрок получил урон от падения
    new iHealth = get_user_health(id);//получаем его здоровье после падения
--    set_user_health(id, iHealth + flDamage);//прибавляем к его здоровью после падения урон который он получил
++    set_user_health(id, iHealth + floatround(flDamage));//прибавляем к его здоровью после падения урон который он получил
    set_hudmessage(42, 255, 85, 0.0, 0.90, 0, 6.0, 3.0);
    show_hudmessage(id, "Fall dmg:%f", flDamage);
}
 
Сообщения
24
Реакции
0
Код:
if(iDamageBits & DMG_FALL){//игрок получил урон от падения
    new iHealth = get_user_health(id);//получаем его здоровье после падения
--    set_user_health(id, iHealth + flDamage);//прибавляем к его здоровью после падения урон который он получил
++    set_user_health(id, iHealth + floatround(flDamage));//прибавляем к его здоровью после падения урон который он получил
    set_hudmessage(42, 255, 85, 0.0, 0.90, 0, 6.0, 3.0);
    show_hudmessage(id, "Fall dmg:%f", flDamage);
}
ты меня не понимаешь, надо прибавлять урон который он получил, только если этот урон меньше 30 хп!!!
 
Сообщения
2,143
Реакции
1,223
Помог
44 раз(а)
NeZo,
Код:
if(iDamageBits & DMG_FALL) {
    if(flDamage > 30.0) {
        return;
    }
    
    new iHealth = get_user_health(id);
    
    set_user_health(id, iHealth + floatround(flDamage));
    set_hudmessage(42, 255, 85, 0.0, 0.90, 0, 6.0, 3.0);
    show_hudmessage(id, "Fall dmg:%f", flDamage);
}
 
Сообщения
2,143
Реакции
1,223
Помог
44 раз(а)
NeZo, лучше так, чтобы мертвому не выдавать хп)
Код:
if(iDamageBits & DMG_FALL) {
    new iHealth = get_user_health(id);
    
    if(flDamage < 30.0 && iHealth > 30) {
        set_user_health(id, iHealth + floatround(flDamage));
        set_hudmessage(42, 255, 85, 0.0, 0.90, 0, 6.0, 3.0);
        show_hudmessage(id, "Fall dmg:%f", flDamage);
    }
}
 

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу