tonline_kms65
Участник
- Сообщения
- 65
- Реакции
- 13
Проблема такая - создаю свое оружие. Проще энтитьку от которой взрыв - ущерб. Когда игрока убивают, получается что он как бы сам себя убил, в моем случае гранатой. Не отображается атакующий. Какой функцией это отобразить?
Кусок кода:
Делаю HookEvent("bullet_impact", Event_BulletImpact);
public Action:Event_BulletImpact(Handle:event, const String:weaponName[], bool:dontBroadcast)
Может быть ошибка в регистрации?
Порывшись в интернете вот что я нашел.
new Handle:HookDeathMsg = CreateEvent ( "player_death" );
SetEventInt ( HookDeathMsg, "userid", GetClientUserId ( Player ) );
SetEventInt ( HookDeathMsg, "attacker", GetClientUserId ( Index ) );
SetEventString ( HookDeathMsg, "weapon", "world" );
FireEvent ( HookDeathMsg );
И это явно то что нужно. Но как это использовать ума не приложу. Если так как я себе это представляю - аж страшно становится.
Player и Index - я так понимаю их нужно сначала определить в радиусе поражения, делать наверно надо в цикле. Цикл судя по всему нужно запускать в момент взрыва.
Что то заморочено напрочь. Может я что то не так понимаю?
Кусок кода:
new ExplosionIndex = CreateEntityByName("env_explosion");
if (IsValidEntity(ExplosionIndex))
{
DispatchKeyValue(ExplosionIndex, "iMagnitude", "100");
DispatchKeyValue(ExplosionIndex, "iRadiusOverride", "100");
DispatchKeyValue(ExplosionIndex, "classname", "weapon_hegrenade"); // Показать оружие убийства в HUD ( weapon_hegrenade граната)
DispatchSpawn(ExplosionIndex);
ActivateEntity(ExplosionIndex);
SetEntPropEnt(ExplosionIndex, Prop_Data, "m_hOwnerEntity", client); // От кого сам взрыв (я не нашел в свойствах энтитьки этого значения)
TeleportEntity(ExplosionIndex, pos, NULL_VECTOR, NULL_VECTOR);
AcceptEntityInput(ExplosionIndex, "Explode");
if (IsValidEntity(ExplosionIndex))
{
DispatchKeyValue(ExplosionIndex, "iMagnitude", "100");
DispatchKeyValue(ExplosionIndex, "iRadiusOverride", "100");
DispatchKeyValue(ExplosionIndex, "classname", "weapon_hegrenade"); // Показать оружие убийства в HUD ( weapon_hegrenade граната)
DispatchSpawn(ExplosionIndex);
ActivateEntity(ExplosionIndex);
SetEntPropEnt(ExplosionIndex, Prop_Data, "m_hOwnerEntity", client); // От кого сам взрыв (я не нашел в свойствах энтитьки этого значения)
TeleportEntity(ExplosionIndex, pos, NULL_VECTOR, NULL_VECTOR);
AcceptEntityInput(ExplosionIndex, "Explode");
public Action:Event_BulletImpact(Handle:event, const String:weaponName[], bool:dontBroadcast)
Может быть ошибка в регистрации?
Порывшись в интернете вот что я нашел.
new Handle:HookDeathMsg = CreateEvent ( "player_death" );
SetEventInt ( HookDeathMsg, "userid", GetClientUserId ( Player ) );
SetEventInt ( HookDeathMsg, "attacker", GetClientUserId ( Index ) );
SetEventString ( HookDeathMsg, "weapon", "world" );
FireEvent ( HookDeathMsg );
И это явно то что нужно. Но как это использовать ума не приложу. Если так как я себе это представляю - аж страшно становится.
Player и Index - я так понимаю их нужно сначала определить в радиусе поражения, делать наверно надо в цикле. Цикл судя по всему нужно запускать в момент взрыва.
Что то заморочено напрочь. Может я что то не так понимаю?