Заказать игровой сервер Контакты (заказать плагин/исправить ошибки/другое) Пожертвовать Поиск

[ вход ]
[ последние сообщения ]

  • Страница 1 из 1
  • 1
Доп. урон инфектам
IIPO100_HY6 Дата: Четверг, 09.01.2014, 09:47:22 | Сообщение # 1
Сообщений: 10
Репутация: 1 [ +/- ]
В своих же опять ПОИНТАХ я сделал прокачку урона каждой пушке кроме пулемёта и гранатомёта. Дополнительный урон сохраняется но! Я могу легко нанести доп урон игроку а обычным инфектам не могу. Пробую так:
Код

public OnPluginStart()
{
    HookEvent("infected_hurt", infected_hurt);
}

public Action:infected_hurt(Handle:event, const String:name[], bool:dontBroadcast)
{
       
    new client = GetClientOfUserId(GetEventInt(event, "attacker"));    // player userid who attacked    
    new target = GetEventInt(event, "entityid");
       
    new damage = 0;
       
    new String:weapon[64];
    GetClientWeapon(client, weapon, sizeof(weapon));
       
    new health = GetEntProp(target, Prop_Send, "m_iHealth");
    PrintToChat(client,"Хп %d!",health);

    if ( (StrEqual(weapon, "weapon_pistol"))||(StrEqual(weapon, "weapon_pistol_magnum"))||
    (StrEqual(weapon, "weapon_smg_silenced"))||(StrEqual(weapon, "weapon_smg"))||(StrEqual(weapon, "weapon_smg_mp5"))||
    (StrEqual(weapon, "weapon_pumpshotgun"))||(StrEqual(weapon, "weapon_shotgun_chrome"))||(StrEqual(weapon, "weapon_autoshotgun"))||
    (StrEqual(weapon, "weapon_shotgun_spas"))||(StrEqual(weapon, "weapon_sniper_awp"))||(StrEqual(weapon, "weapon_sniper_military"))||
    (StrEqual(weapon, "weapon_sniper_scout"))||(StrEqual(weapon, "weapon_hunting_rifle"))||(StrEqual(weapon, "weapon_rifle"))||
    (StrEqual(weapon, "weapon_rifle_ak47"))||(StrEqual(weapon, "weapon_rifle_desert"))||(StrEqual(weapon, "weapon_rifle_sg552")) )
    {
       
     if (StrEqual(weapon, "weapon_pistol"))
     {
      damage = dmgmod_pistol[client];
     }
       
     if (StrEqual(weapon, "weapon_pistol_magnum"))
     {
      damage = dmgmod_deagle[client];
     }
       
     if (StrEqual(weapon, "weapon_smg_silenced"))
     {
      damage = dmgmod_smg_sil[client];
     }
       
     if (StrEqual(weapon, "weapon_smg"))
     {
      damage = dmgmod_smg[client];
     }
       
     if (StrEqual(weapon, "weapon_smg_mp5"))
     {
      damage = dmgmod_mp5[client];
     }
       
     if (StrEqual(weapon, "weapon_pumpshotgun"))
     {
      damage = dmgmod_shotgun[client];
     }
       
     if (StrEqual(weapon, "weapon_shotgun_chrome"))
     {
      damage = dmgmod_chrome[client];
     }
       
     if (StrEqual(weapon, "weapon_autoshotgun"))
     {
      damage = dmgmod_autoshotgun[client];
     }
       
     if (StrEqual(weapon, "weapon_shotgun_spas"))
     {
      damage = dmgmod_spas[client];
     }
       
     if (StrEqual(weapon, "weapon_sniper_awp"))
     {
      damage = dmgmod_awp[client];
     }
       
     if (StrEqual(weapon, "weapon_sniper_military"))
     {
      damage = dmgmod_military[client];
     }
       
     if (StrEqual(weapon, "weapon_sniper_scout"))
     {
      damage = dmgmod_scout[client];
     }
       
     if (StrEqual(weapon, "weapon_hunting_rifle"))
     {
      damage = dmgmod_hunting[client];
     }
       
     if (StrEqual(weapon, "weapon_rifle"))
     {
      damage = dmgmod_rifle[client];
     }
       
     if (StrEqual(weapon, "weapon_rifle_ak47"))
     {
      damage = dmgmod_ak47[client];
     }
       
     if (StrEqual(weapon, "weapon_rifle_desert"))
     {
      damage = dmgmod_scar[client];
     }
       
     if (StrEqual(weapon, "weapon_rifle_sg552"))
     {
      damage = dmgmod_sg552[client];
     }
       
       
     if (damage > 0)
     {
        
      if (health-damage < 0)    
      {
       SetEntityHealth(target, 0);
       PrintToChat(client,"Убит!");
      }
      else    
      {
       SetEntityHealth(target, health-damage);
       PrintToChat(client,"Упс!Хелс-дамаг:%d,дамаг %d!",health,damage);
      }
     }
     else
     {
      PrintToChat(client,"Дамаг = 0!");
     }
    }
}


в итоге чат пустой так как я сделал эти сообщения для себя ибо заметил сразу что урон дополнительный они не получают потому что от доп. урона песта они должны сразу помирать с своими то 50хп на сложной. Может я неправильно получаю ID инфекта? Я чёт не понимаю
я даже не получаю сообщение PrintToChat(client,"Хп %d!",health);

Добавлено (08.01.2014, 09:56:07)
---------------------------------------------
в консоли Native "GetEntProp" reported. Property "m_iHealth" not found (entity 428/infected)

значит ентити получил правильно а ХП нет

Добавлено (09.01.2014, 09:47:22)
---------------------------------------------
а над было не проп сенд а проп дата )



Сообщение отредактировал IIPO100_HY6 - Среда, 08.01.2014, 09:56:32
 
Sallcom Дата: Четверг, 09.01.2014, 10:00:48 | Сообщение # 2
Сообщений: 205
Репутация: 31 [ +/- ]
Цитата IIPO100_HY6 ()
new client = GetClientOfUserId(GetEventInt(event, "attacker"));    // player userid who attacked
new target = GetEventInt(event, "entityid");


Код
new victim = GetClientOfUserId(GetEventInt(event, "userid"));//Цель     
new attacker = GetClientOfUserId(GetEventInt(event, "attacker"));//Атакующий


Цитата IIPO100_HY6 ()
new health = GetEntProp(target, Prop_Send, "m_iHealth");
PrintToChat(client,"Хп %d!",health);


Код
GetClientHealth(victim);


Сообщение отредактировал Sallmap - Четверг, 09.01.2014, 10:03:10
 
IIPO100_HY6 Дата: Четверг, 09.01.2014, 13:51:04 | Сообщение # 3
Сообщений: 10
Репутация: 1 [ +/- ]
Цитата Sallmap ()
GetClientHealth(victim);

Инфект обычный это энтити а не клиент не? Клиенты это SI(special infected) толстяки курильщики. Тем более этот способ работает:
Код
new health = GetEntProp(target, Prop_Data, "m_iHealth");


Сообщение отредактировал IIPO100_HY6 - Четверг, 09.01.2014, 13:53:55
 
Sallcom Дата: Пятница, 10.01.2014, 13:42:19 | Сообщение # 4
Сообщений: 205
Репутация: 31 [ +/- ]
Цитата IIPO100_HY6 ()
Инфект обычный это энтити а не клиент не?

Не досмотрел)


Сообщение отредактировал Sallmap - Пятница, 10.01.2014, 13:42:27
 
  • Страница 1 из 1
  • 1
Поиск: