Суицидники на сервере.

Тема в разделе "Программирование / Скриптинг", создана пользователем tonline_kms65, 8 ноя 2015.

  1. tonline_kms65

    tonline_kms65 Read Only

    Сообщения:
    77
    Симпатии:
    10
    Проблема такая - создаю свое оружие. Проще энтитьку от которой взрыв - ущерб. Когда игрока убивают, получается что он как бы сам себя убил, в моем случае гранатой. Не отображается атакующий. Какой функцией это отобразить?
    Кусок кода:

    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 - я так понимаю их нужно сначала определить в радиусе поражения, делать наверно надо в цикле. Цикл судя по всему нужно запускать в момент взрыва.
    Что то заморочено напрочь. Может я что то не так понимаю?