Zed-Time

Тема в разделе "Killing Floor", создана пользователем Dr_Killjoy, 23 май 2012.

  1. Dr_Killjoy

    Dr_Killjoy Заблокированные

    Многих зед-тайм раздражает, но есть и любители. Когда его вмеру - вполне приятное дополнение к игровому процессу. Однако ни для кого ни секрет, что система вызова зед-тайма в классическом Killing Floor мягко говоря недоработана. Мне интересно было бы услышать мнения, какие игровые события / действия игроков могли бы вызывать зед-тайм, т.е. интересные моменты когда он нужен, и вообще соображения по поводу общей системы зед-тайм. Спрашиваю не из любопытсва, если что-то интересное сформулируется, я напишу проапргрейженную систему зед тайма.
     
  2. Flack

    Flack Солдат

    5 хэдов в течение 3-х секунд у снайпера вроде, чащще всего вызывает коммандос, надо отследить каким образом он вызывает
     
  3. Dr_Killjoy

    Dr_Killjoy Заблокированные

    Отслеживать не надо) Это легко в коде смотрится. Я жду в этой теме ваши предложения, когда интересно будет вызывать зед-тайм.
     
  4. Flack

    Flack Солдат

    Просто фраза двояко построена, как-будто неизвестно когда оно (ZED-Time) случается :)
     
  5. Фрэгл

    Фрэгл Administrator

    Говорили уже об этом,жаль с технической стороны вряд ли это возможно(скорее невозможно вообще).А идея-сделать зед-тайм для каждого игрока свой.Ввести доп.параметр который как шкала набирается за определенные действия в игре и потом игрок может его сам активировать.Грубо говоря-кнопка слоумо по желанию.
     
  6. Flack

    Flack Солдат

    таки-да, по желанию был-бы наикошэрнейший вариант :-D
     
  7. alter87

    alter87 Соучастник

    меня впринципе и в реализации от разработчиков ничего не напрягает. единственно, что если бы его сделать как говорилось ранее для каждого игрока отдельно, было бы прикольно.
     
  8. Flack

    Flack Солдат

    На самом деле (ИМХО) от общего сломо страдает только берс - в общем случае, а все остальные - во время смены магазина/перезарядки.
     
  9. Dr_Killjoy

    Dr_Killjoy Заблокированные

    Почему нет? Такое реально замутить. Но только картинка для шкалы будет какая-нибудь стандартная, если никто не нарисует.

    Поиграй на сервере с 12 человек даже, не говоря о 15+, сразу поймёшь в чём дело.
     
  10. Папка01

    Папка01 ۞ Всевидящее око форума ۞

    придумать можно немало, только действительно хотелось бы чтобы сообщили те, которые уже есть. Раз в коде посмотреть не сложно.
    А так
    - Прошибание Дробовиком/абралетом 5 (лучше даже 6) и более мутантов а в итоге их убийство.;
    - Смерть Флешпаунда (если разговор идет о сложном сервере, близком к классике, а не о паблике, где флехи в куче с клотами шарашатся);
    - Поджигание более 10 мутантов за 1,5 секунды... хотя тут начнут пользоваться...;
    А шкала - будет как с ZED-катаной на Протоне, когда 6-7 берсов играют беззаботно, потом 1 вспоминает. что у него уже перезарядилось, делает ЗТ, потом вспоминают остальные 6 берсов и каждый нажимает после предыдущего. И того - Зэд-Тайм на 10-15 секунд. :confused:
    Только тут ограничится Зэд катаной, без неё ЗТ не сделать - а шкала то у каждого игрока.
     
  11. Фрэгл

    Фрэгл Administrator

    Я имел в виду,что зедтайм будет действовать только на игрока,который его вызвал.
    То-есть,у меня заполнилась шкала-я нажал кнопку-и зедтайм действует только для меня.Все другие игроки,находящиеся на сервере под него не попадают.

    Если просто сделать возможность вызывать зедтайм любому игроку,и он будет как и сейчас действовать на всех игроков,то это плохо,ибо будет как с ртд дрочерами-надо,не надо,но кнопку нажмем.
     
  12. offutt

    offutt Капо

    Зед нужен для эффекта, для подчеркивания каких либо событий !!!
    И этих событий должно быть немного, что бы остальные игроки не теряли ориентацию во время сражения.
    Ни для кого не секрет, что во время ЗЕД тайма "целкость" пропадает, пуля летий буй знает куда..
    По сему.. ЗЕД был бы кстати в моменты, которые редки, убийство моба в полете, разрыв моба в воздухе, взрыв фп на мине..
    Милое дело.. :biggrin:
     
  13. Dr_Killjoy

    Dr_Killjoy Заблокированные

    1.Зед-тайм должен быть на всех. Опять же вы смотрите на эту тему со стороны игрока, который не влияет конкретно на происходящее. На самом деле всё фиксится и настраивается, главное только грамотный алгоритм сделать. И даже общий зед тайм и даже у всех не будет избыточным, если это хорошо отбалансить. К примеру у меня на сервере стоит обратно пропорциональная зависимость шанса зед-тайм от количества игроков (т.е. чем больше игроков тем шанс меньше, поэтому частота зед-тайма не зависит от их количества).
    2. Дрочить им придётся не часто, ибо для зед-тайма придется вырезать толпы мобов, и желательно хэдшотами, сносить толпы, или убивать крупняк. А можно сделать бонус, если шкала заполнена на 3 зед-тайма, при получении смертельного урона игрок отматывает время назад и вместо смерти возвращается на старую позицию со старым хп на 5 сек назад (либо только хп возвращает), тогда будет и бонус, и придется думать как распоряжаться зед-тайм.

    П.С. Не на всех пабликах флэшка это просто большой кусок кача.
     
  14. Фрэгл

    Фрэгл Administrator

    :unsure: Ого ты замахнулся.Timeshift элементы,не иначе.
    Весьма спорно.Почему возможность зед тайма должна зависить от кого-то,кроме меня,как игрока? Если мне удобнее использовать его именно сейчас,в сложной ситуации,а не когда он вдруг сам наступит и я нахожусь вне опасности.
     
  15. Dr_Killjoy

    Dr_Killjoy Заблокированные

    1. Это всего лишь предложение.

    2. Ни разу не спорно. Выбор такой - либо зед-тайм действует на всех, либо мобы и игроки двигаются с нормальной скоростью, а тот кто активизировал зед-тайм, тормозит и получает люлей. Третьего не дано. Делать просто ускорение - глупо.

    Забываем о командной игре - берс не набрал шкалу зед-тайма, а на него бежит толпа горчиков, хп 1-10 у него. Он просит по голосовому каналу своего приятеля снайпера включить зед-тайм, под слоу раскашивает горчиков без риска для жизни (ибо попадать ему будет очень легко). Вот где тимплэй и будет проявляться.

    ------------------------------------------------------------------------------------

    По просьбе Папка01:

    Зед-тайм вызывается функцией DramaticEvent(float BaseZedTimePossibility), где BaseZedTimePossibility, это предполагаемый шанс вызова зед-тайм. Т.е. эта функция не обязательно вызывает зед-тайм, она решает, надо ли его вызывать. Некоторые особенности:

    - Для повторного зед-тайма должно пройти как минимум 10 секунд с момента предыдущего.
    - если с момента произошедшего зед-тайм прошло 30 секунд, шанс вызова зед-тайм увеличивается вдвое, если 60 секунд - в 4 раза.
    - Если функция была вызвана с параметром равным 1.0, зед-тайм вызывается с 100% вероятностью игнорируя все условия (в оригинальном кф, такой зед-тайм случается только при продлении зед-тайма перками Берсеркер и Коммандос).

    А теперь, объекты, могущие вызвать зед-тайм:

    Снаряд хаск-гана:

    class HuskGunProjectile extends LAWProj;

    ...

    simulated function HurtRadius( float DamageAmount, float DamageRadius, class<DamageType> DamageType, float Momentum, vector HitLocation )
    {

    ...

    if( Role == ROLE_Authority )
    {
    if( NumKilled >= 4 )
    {
    KFGameType(Level.Game).DramaticEvent(0.05);
    }
    else if( NumKilled >= 2 )
    {
    KFGameType(Level.Game).DramaticEvent(0.03);
    }
    }

    ...

    При одновременном убийстве более чем 4 мобов, вызывается зед-тайм с вероятностью 5%, при убийстве от 2 до 3 мобов - вероятность 3%.

    Тип игры:

    class KFGameType extends Invasion
    config;

    ...

    function Killed(Controller Killer, Controller Killed, Pawn KilledPawn, class<DamageType> damageType)
    {

    ...


    if ( PlayerController(Killer) != none )
    {
    if ( KFMonster(KilledPawn) != None && Killed != Killer )
    {
    if ( bZEDTimeActive && KFPlayerReplicationInfo(Killer.PlayerReplicationInfo) != none &&
    KFPlayerReplicationInfo(Killer.PlayerReplicationInfo).ClientVeteranSkill != none &&
    KFPlayerReplicationInfo(Killer.PlayerReplicationInfo).ClientVeteranSkill.static.ZedTimeExtensions(KFPlayerReplicationInfo(Killer.PlayerReplicationInfo)) > ZedTimeExtensionsUsed )
    {
    // Force Zed Time extension for every kill as long as the Player's Perk has Extensions left
    DramaticEvent(1.0);

    ZedTimeExtensionsUsed++;
    }
    else if ( Level.TimeSeconds - LastZedTimeEvent > 0.1 )
    {
    // Possibly do a slomo event when a zombie dies, with a higher chance if the zombie is closer to a player
    if( Killer.Pawn != none && VSizeSquared(Killer.Pawn.Location - KilledPawn.Location) < 22500 ) // 3 meters
    {
    DramaticEvent(0.05);
    }
    else
    {
    DramaticEvent(0.025);
    }
    }

    ...

    При бонусе перка к продлению зед-тайм, убийство моба вызывает 100% зед-тайм. Если же бонуса нет, и зед-тайм не активен в данный момент, моб находящийся в 3 метрах от игрока, будучи убитым, вызывает 5% шанс зед-тайма. Если расстояние больше 3 метров, шанс равняется 2.5%. (Поэтому берсы чаще вызывают зед-тайм).

    Монстр:

    class KFMonster extends Skaarj
    hidecategories(AnimTweaks,DeRes,Force,Gib,Karma,Udamage,UnrealPawn)
    Abstract;

    ...

    function TakeDamage(int Damage, Pawn instigatedBy, Vector hitlocation, Vector momentum, class<DamageType> damageType, optional int HitIndex )
    {

    ...


    if( bIsHeadShot && Health <= 0 )
    {
    KFGameType(Level.Game).DramaticEvent(0.03);
    }

    ...

    При потере головы, монстр вызывает зед-тайм с вероятностью 3%.

    Снаряд LAW:

    class LAWProj extends ROBallisticProjectile;

    ...

    simulated function HurtRadius( float DamageAmount, float DamageRadius, class<DamageType> DamageType, float Momentum, vector HitLocation )
    {

    ...

    if( Role == ROLE_Authority )
    {
    if( NumKilled >= 4 )
    {
    KFGameType(Level.Game).DramaticEvent(0.05);
    }
    else if( NumKilled >= 2 )
    {
    KFGameType(Level.Game).DramaticEvent(0.03);
    }
    }

    ...

    Смотреть снаряд хаск-гана.

    Снаряд М79,М32, Граната, Мина - те же самые условия что и у LAW и Хаск-ган.

    Так же, не реализовано, но было задумано разработчиками: Винчестер мог бы в будущем с 100% вероятностью вызывать зед-тайм, при определённых условиях. Но это так и не было сделано.

    // KFTODO - Slomo compensation R&D, finish later if I have time - Ramm
    //function Timer()
    //{
    // if( Weapon.Level.TimeDilation == 1.1 )
    // {
    // KFGameType(Level.Game).DramaticEvent(1.0);
    // }
    //}

    Так же, если выстрел хаска убивает 2+ цели (что очень маловероятно), зед тайм вызывается с теми же вероятностями, как и у других взрывных снарядов.
     
    Flame нравится это.
  16. Фрэгл

    Фрэгл Administrator

    Да почему? Почему на меня должен действовать зедтайм,который активировал зед-катаной берс на другом конце карты,потому что ему это нужно в данный момент?Мне на другом конце карты этот зедтайм например наоборот только помешает.
    Если исходить из того,что так изначально задумано разрабами,что зедтайм действует на всех и менять тут ничего не надо,то да-тут обсуждать нечего.
    Когда 2-3 берса один за другим включают его своими катанами,это реально раздражает.Давай тогда вернем возможность вызова зедтайма командосу и тогда из зедтайма вообще вылазить не будут.
    Я понимаю,что хочешь просто улучшить стандартную систему вызова и условий зедтайма,я просто описал свою точку зрения.
     
  17. Flack

    Flack Солдат

    Фрэгл, человек ясно дает понять, что на 1 игрока ЗТ делать нет смысла, ибо - если все, грубо-говоря, передвигаются со скоростью 1, то игрок в ЗТ должен бегать, ну скажем со скоростью 2.5, теперь попробуй прицелиться в таком сосотоянии (да, да, все верно, берсу целиться не надо а меду нужно тупо догнать погибающего товарища), в существующем-же ЗТ время как-бы притормаживатся для всего окружения кроме бойцов команды, что позволяет стрелкам - точнее навестись или больше покрошить берсу или "обстрелять" погибающих медиком.
     
  18. Фрэгл

    Фрэгл Administrator

    Опять же,ничто не мешает самому погибающему и активировавшему для себя зедтайм игроку,взять и подбежать со скоростью 2.5 к меду самому,а не отсреливаться с 10хп в толпе мобов.Ну или просто сменить позицию.
    Я не собираюсь на чем либо настаивать,как захочет Килджой,так и сделает.В конце концов,это его право как автора модификации.Я лишь пытаюсь посмотреть на это с другой стороны.
     
  19. SayBeR

    SayBeR Новенький

    а можно сделать так чтоб ЗТ влиял только на мобов а на самого игрока нет!тоесть представте картину врубился ЗТ мобы все замедлились а ты как не в чем не бывало убил их или убежал!а может такое уже есть?
     
  20. Flame

    Flame -Заслуженый кодер форума-

    Зед тайм это ж изменение скорости игры на временной промежуток порядка 1 секунды. Какой ещё персональный зедтайм? ) Может я что не понимаю, но мне казалось что никаких инвариантов при изменении скорости игры нет. Это действует на всех и только на всех. И можно только изменить параметры игроков или зомби во время этого замедления, как делается при использовании спец. катаны. Ну или поменять параметры замедления (степень замедления и продолжительность)

    Я вот всё собираюсь сделать DramaticEvent с возможностью задавать продолжительность зедтайма. Никак руки не дойдут )