tonline_kms65
(Member)
Зарегистрирован: Mar 2008
Проживает: Russian Federation/Комсомольск на Амуре
Написал: 82 сообщений
Оценка: 2 чел.
|
Проблема такая - создаю свое оружие. Проще энтитьку от которой взрыв - ущерб. Когда игрока убивают, получается что он как бы сам себя убил, в моем случае гранатой. Не отображается атакующий. Какой функцией это отобразить?
Кусок кода:
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");
Делаю 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 - я так понимаю их нужно сначала определить в радиусе поражения, делать наверно надо в цикле. Цикл судя по всему нужно запускать в момент взрыва.
Что то заморочено напрочь. Может я что то не так понимаю?
Поправил tonline_kms65 07-11-2015 в 10:55
|