Гранаты

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

  1. Hejter

    Hejter Mapper Source Engine

    Сообщения:
    1.771
    Симпатии:
    259
    1. Возможно ли у флеш гранаты, убрать ослепление и заменить его на взрывную гранату с огнем?
    2. Возможно ли у взрываной гранаты убрать свойство наносить урон и заменить на отталкивание.
    Пример: Оффтоп
    Если да, то как?
     
  2. Vit_ amin

    Vit_ amin BotManager001

    Сообщения:
    1.060
    Симпатии:
    345
    Чисто теоретически:
    1. Убираем ослепление, создание env_explosion и env_fire, задаем им необходимые KeyValues, делаем перехват на flashbang_detinate и посылаем input Expode и ... (забыл у env_fire input)
    Ну с практики я голову еще не чесал (
     
  3. AlmazON

    AlmazON деревянный © yand3xmail

    Сообщения:
    4.563
    Симпатии:
    1.988
    Куда проще поменять их местами. Взрывной просто поджигать противников при уроне (всего 1 событие + огненный хвост в полете, если требуется), а флешке убрать её свойства и добавить отталкивание.
     
  4. Hejter

    Hejter Mapper Source Engine

    Сообщения:
    1.771
    Симпатии:
    259
    Тоже вариант и просто сменить модель на сервере.
    Подскажешь как реализовать флешку?
    С гранатой я уже сделал.

    Добавлено через 46 секунд
    Оффтоп
     
    Последнее редактирование: 9 ноя 2015
  5. AlmazON

    AlmazON деревянный © yand3xmail

    Сообщения:
    4.563
    Симпатии:
    1.988
    Очень просто так: это (альтернатива) + TeleportEntity(entity, const Float:origin[3], const Float:angles[3], const Float:velocity[3]); - меняешь последнее и получаешь отталкивание указанного игрока (вместо entity).
     
  6. Primo

    Primo Где мои манеры

    Сообщения:
    1.192
    Симпатии:
    310
    AlmazON, нужно же направить толчок относительно гранаты.
     
  7. AlmazON

    AlmazON деревянный © yand3xmail

    Сообщения:
    4.563
    Симпатии:
    1.988
    В событии её детонации есть координаты.
     
  8. R1KO

    R1KO Супер-модератор

    Сообщения:
    6.000
    Симпатии:
    2.992
    Primo, получаешь координаты гранаты, координаты игрока, считаешь в каком направлении находится игрок от гранаты и в этом направлении его толкаешь.
     
  9. Primo

    Primo Где мои манеры

    Сообщения:
    1.192
    Симпатии:
    310
    R1KO, всё я должен вытягивать :D
    Оффтоп
     
  10. Hejter

    Hejter Mapper Source Engine

    Сообщения:
    1.771
    Симпатии:
    259
    Понятно, спасибо.
    Но, только одно не понял. В этом случае если флешка попадет в игрока он отлетит? или в радиусе действия его откинет.
     
  11. AlmazON

    AlmazON деревянный © yand3xmail

    Сообщения:
    4.563
    Симпатии:
    1.988
    PHP:
    public Event_FlashgrenadeDetonate(Handle:event, const String:name[], bool:dontBroadcast)
    {
        
    decl Float:origin[3], Float:vector[3];
        
    origin[0] = GetEventFloat(event"x");
        
    origin[1] = GetEventFloat(event"y");
        
    origin[2] = GetEventFloat(event"z");
        for (new 
    1<= MaxClientsi++)
        {
            if (
    IsClientInGame(i) && IsPlayerAlive(i))
            {
                
    GetClientAbsOrigin(ivector);
                if (
    GetVectorDistance(originvector) < 500.0)
                {
                    
    //Расстояние от взрыва гранаты до игрока менее 500.0
                
    }
            }
        }
    }
    Правда сработает, даже если игрок за глухой стеной.
     
  12. Primo

    Primo Где мои манеры

    Сообщения:
    1.192
    Симпатии:
    310
    Hejter, он тебе просто сказал, как толкнуть игрока, чтобы оттолкнуть в нужном направлении, нужно найти вектор.

    Код:
    new Float:Push[3];
    MakeVectorFromPoints(grenadexyz, clientxyz, Push);
    NormalizeVector(Push, Push);
    Push[0] = (FloatMul(-50.0, Cosine(DegToRad(EyeAngles[1]))));
    Push[1] = (FloatMul(-50.0, Sine(DegToRad(EyeAngles[1]))));
    Push[2] = (FloatMul(-50.0, Sine(DegToRad(EyeAngles[0]))));
    ScaleVector(Push, 50.0);
    
    TeleportEntity(client, NULL_VECTOR, NULL_VECTOR, Push);
    что-то вроде такого
     
  13. Hejter

    Hejter Mapper Source Engine

    Сообщения:
    1.771
    Симпатии:
    259
    Мне это и нужно.