Приветствуем вас на форуме проекта WoW Circle. Если вы читаете это, значит не зарегистрировались у нас. Для того, чтобы получить доступ к расширенным возможностям нашего форума нажмите сюда и пройди регистрацию, которая не займет у вас много времени. После регистрации будут доступны новые, более расширенные, возможности.
Crowd Control Delay

Упомянутые в теме пользователи:

Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 12 из 18
  1. #1
    Местный
    Регистрация
    05.01.2012
    Сообщений
    26
    Поблагодарил(а)
    14
    Получено благодарностей: 27 (сообщений: 14).
    Репутация: 37

    Crowd Control Delay

    Сто раз поднималась это тема, но была проигнорирована, да и думаю что сейчас будет тоже самое, но все равно запостю.
    Инфа: https://github.com/TrinityCore/TrinityCore/issues/1755
    http://www.wowwiki.com/Crowd_control
    Видео: http://www.youtube.com/watch?feature...Dgp6SyA4#t=28s

    Готовый патч от Walkline (хотя администрация даже готовый патч врятли закинет, не то чтобы свой)
    https://gist.github.com/2762988

    Код HTML:
    From 8134c487669745b74d09b2cc4333cdccc240d26f Mon Sep 17 00:00:00 2001
    From: walkline <walkline.ua@gmail.com>
    Date: Mon, 21 May 2012 18:45:30 +0300
    Subject: [PATCH] Implemented Crowd Control Delay.
    
    ---
     src/server/game/Spells/Spell.cpp |   55 ++++++++++++++++++++++++++++++++++++-
     src/server/game/Spells/Spell.h   |    2 +
     2 files changed, 55 insertions(+), 2 deletions(-)
    
    diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp
    index 1ecee94..322b497 100755
    --- a/src/server/game/Spells/Spell.cpp
    +++ b/src/server/game/Spells/Spell.cpp
    @@ -2165,7 +2165,11 @@ void Spell::AddUnitTarget(Unit* target, uint32 effectMask, bool checkIfValid /*=
                 m_delayMoment = targetInfo.timeDelay;
         }
         else
    -        targetInfo.timeDelay = 0LL;
    +    {
    +        targetInfo.timeDelay = GetCCDelay(m_spellInfo);
    +        if (m_delayMoment == 0 || m_delayMoment > targetInfo.timeDelay)
    +            m_delayMoment = targetInfo.timeDelay;
    +    }
     
         // If target reflect spell back to caster
         if (targetInfo.missCondition == SPELL_MISS_REFLECT)
    @@ -3246,7 +3250,7 @@ void Spell::cast(bool skipCheck)
         SendSpellGo();
     
         // Okay, everything is prepared. Now we need to distinguish between immediate and evented delayed spells
    -    if ((m_spellInfo->Speed > 0.0f && !m_spellInfo->IsChanneled()) || m_spellInfo->Id == 14157)
    +    if (((m_spellInfo->Speed > 0.0f || GetCCDelay(m_spellInfo) > 0) && !m_spellInfo->IsChanneled()) || m_spellInfo->Id == 14157)
         {
             // Remove used for cast item if need (it can be already NULL after TakeReagents call
             // in case delayed spell remove item at cast delay start
    @@ -5601,6 +5605,53 @@ SpellCastResult Spell::CheckPetCast(Unit* target)
         return CheckCast(true);
     }
     
    +uint32 Spell::GetCCDelay(SpellInfo const* _spell)
    +{
    +    // CCD for spell with auras
    +    AuraType auraWithCCD[] = {
    +        SPELL_AURA_MOD_STUN,
    +        SPELL_AURA_MOD_CONFUSE,
    +        SPELL_AURA_MOD_FEAR,
    +        SPELL_AURA_MOD_SILENCE,
    +        SPELL_AURA_MOD_DISARM,
    +        SPELL_AURA_MOD_POSSESS
    +    };
    +    uint8 CCDArraySize = 6;
    +
    +    const uint32 delayForInstantSpells = 200;
    +
    +    switch(_spell->SpellFamilyName)
    +    {
    +        case SPELLFAMILY_HUNTER:
    +            // Traps
    +            if (_spell->SpellFamilyFlags[0] & 0x8 ||      // Frozen trap
    +                _spell->Id == 57879 ||                    // Snake Trap
    +                _spell->SpellFamilyFlags[2] & 0x00024000) // Explosive and Immolation Trap
    +                return 0;
    +
    +            // Entrapment
    +            if (_spell->SpellIconID == 20)
    +                return 0;
    +            break;
    +        case SPELLFAMILY_DEATHKNIGHT:
    +            // Death Grip
    +            if (_spell->Id == 49576)
    +                return delayForInstantSpells;
    +            break;
    +        case SPELLFAMILY_ROGUE:
    +            // Blind
    +            if (_spell->Id == 2094)
    +                return delayForInstantSpells;
    +            break;
    +    }
    +
    +    for (uint8 i = 0; i < CCDArraySize; ++i)
    +        if (_spell->HasAura(auraWithCCD[i]))
    +            return delayForInstantSpells;
    +
    +    return 0;
    +}
    +
     SpellCastResult Spell::CheckCasterAuras() const
     {
         // spells totally immuned to caster auras (wsg flag drop, give marks etc)
    diff --git a/src/server/game/Spells/Spell.h b/src/server/game/Spells/Spell.h
    index db2ad24..ac3e175 100755
    --- a/src/server/game/Spells/Spell.h
    +++ b/src/server/game/Spells/Spell.h
    @@ -384,6 +384,8 @@ class Spell
             SpellCastResult CheckCast(bool strict);
             SpellCastResult CheckPetCast(Unit* target);
     
    +        static uint32 GetCCDelay(SpellInfo const* _spell);
    +
             // handlers
             void handle_immediate();
             uint64 handle_delayed(uint64 t_offset);
    -- 
    1.7.5.4

  2. 6 пользователей сказали cпасибо Слайнер за это полезное сообщение:

    6ECKOHE4HOCTb (05.07.2012),alu (19.07.2012),Gizmo (24.07.2012),Irønìçsmìlé (28.07.2012),JessyStorm# (23.07.2012),Андсуперстар (24.07.2012)

  3. #2
    Ветеран форума
    Регистрация
    03.02.2012
    Сообщений
    1,180
    Поблагодарил(а)
    27
    Получено благодарностей: 180 (сообщений: 95).
    Репутация: 119
    Ни в коем случае нельзя делать подобные вещи на циркле!

  4. #3
    Местный
    Регистрация
    05.01.2012
    Сообщений
    26
    Поблагодарил(а)
    14
    Получено благодарностей: 27 (сообщений: 14).
    Репутация: 37
    Цитата Сообщение от sin000711 Посмотреть сообщение
    Ни в коем случае нельзя делать подобные вещи на циркле!

  5. #4
    Заблокирован
    Регистрация
    08.07.2012
    Сообщений
    1
    Поблагодарил(а)
    0
    Получено благодарностей: 0 (сообщений: 0).
    Репутация: 0
    Я понимаю, что посмотрев и прочитав месседж вы будете настроены "слегка" пессимистично. Но об этом стоит знать. Вдруг вы все решите в нашу пользу.

    Играю на свове с весны 2009 года. И хочу отметить, что в 2012 году, этот ресурс совершил свой самый большой сдвиг в плане ПвП контента. Раньше можно было услышать много нытья по поводу того, что абилки и различные баги, которые вносили дисбаланс в игру, не чинились по пол года. Однако, спешу и рад сообщить, о том, что все-различные баги и значительные и не очень, фиксятся теперь с молниеносной быстротой, благодаря слаженной работе группы разработчиков.
    Более того, на нашем свове и ТОЛЬКО здесь, недавно было реализовано меж-реалмовое пространство для боев на арене и бг. То есть, утомительное ожидание бг и арен на высоких ммр`ах теперь в прошлом. Подключены все реалмы, кроме фана.
    Вкратце о плюсах:
    * Работоспособность классов ~ 95-97% (в том числе и скрытые баги, механика и тп)
    * Работоспособность инстов контента Лича ~ 87% (Рабочие корабли и Ульдуар в процессе починки)
    * Работает ОЛО ~ 92% (Есть небольшие недочеты. Рейд кстати создается автоматически, не нужно его собирать).
    * Нет никаких откатов. Пинг отличный. Аптайм 1д.+
    * Донат практически отсутствует. В лк вещи доступные для покупки не превышают 245 левла, исключение - фан реалм.
    * За читерами и сливерами в последнее время внимательно следят и регулярно банят, отбирают набаганный или сливной шмот. Рлов кидал банят и изымают награбленное. Так что играйте честно! :)
    * Арена-спектатор (ждет пока его перепишут после заключительных доработок баттл-реалма).
    * Арены доработаны на 100% (На арене Даларана вы больше не упадете на 1ый ярус со 2го под дезориентирующими эффектами, на арене Огриммара можно бить абилками по зоне действия на лифтах).
    * Реализован Crowd Control и уже с пол года в работе. good
    Если решите перебраться на х100 реалм, за Орду, то снабжу вас первоначальным капиталом для изучения скилов и флаймаунтов. На 80ом уровне, когда будете одеты в эпик шмот, можете расчитывать на мою вторую профессию - Ювелира.
    Регистрируйтесь на нашем форуме - forum.swow.net и пишите ПМ Cleo, убедитесь, что я самый простой игрок, которому по душе нынешнее положение дел на свове. Да, и я непрочь немного попиарить его. ;O)


    Приятной игры!
    Последний раз редактировалось DB_KiLLeR; 10.07.2012 в 07:42.

  6. #5
    Гуру Аватар для ahtoxa_74
    Регистрация
    19.02.2012
    Адрес
    SverdLOVEsk
    Сообщений
    288
    Поблагодарил(а)
    69
    Получено благодарностей: 43 (сообщений: 35).
    Репутация: 37
    обьясните нубу что делает этот патч? оч интересно )

  7. #6
    Ветеран форума Аватар для 6ECKOHE4HOCTb
    Регистрация
    05.01.2012
    Сообщений
    975
    Поблагодарил(а)
    244
    Получено благодарностей: 132 (сообщений: 99).
    Репутация: 126
    Там же видяха есть - по ней всё понятно)
    Вот ещё на эту тему:
    http://www.wegame.com/watch/akrios-rvr/

  8. #7
    Местный
    Регистрация
    05.01.2012
    Сообщений
    26
    Поблагодарил(а)
    14
    Получено благодарностей: 27 (сообщений: 14).
    Репутация: 37
    В общем тут все как обычно

  9. #8
    Заблокирован
    Регистрация
    14.06.2012
    Сообщений
    6
    Поблагодарил(а)
    4
    Получено благодарностей: 3 (сообщений: 2).
    Репутация: 3
    Приоритет: 20/10! Это очень важная часть пвп механики.

  10. #9
    Местный
    Регистрация
    05.01.2012
    Сообщений
    26
    Поблагодарил(а)
    14
    Получено благодарностей: 27 (сообщений: 14).
    Репутация: 37
    Администрация походу слишком ленивая, чтобы потратить 5 минут и накатить готовый патч на ядро.

  11. 1 пользователь сказал cпасибо Слайнер за это полезное сообщение:

    Gizmo (24.07.2012)

  12. #10
    Старожил
    Регистрация
    05.01.2012
    Сообщений
    242
    Поблагодарил(а)
    49
    Получено благодарностей: 30 (сообщений: 16).
    Репутация: 39
    Цитата Сообщение от Слайнер Посмотреть сообщение
    Администрация походу слишком ленивая, чтобы потратить 5 минут и накатить готовый патч на ядро.
    Ты так говоришь, как будто это легко. Патч скорее всего и на чистое ядро не сразу ляжет и сам по себе глюкавый. Ну вот поэтому никто и не занимается.

  13. #11
    Местный Аватар для Gizmo
    Регистрация
    05.01.2012
    Адрес
    Россия
    Сообщений
    30
    Поблагодарил(а)
    50
    Получено благодарностей: 7 (сообщений: 7).
    Репутация: 10
    Цитата Сообщение от Слайнер Посмотреть сообщение
    Администрация походу слишком ленивая, чтобы потратить 5 минут и накатить готовый патч на ядро.
    все слишком ленивы и не только

  14. #12
    Местный
    Регистрация
    05.01.2012
    Сообщений
    26
    Поблагодарил(а)
    14
    Получено благодарностей: 27 (сообщений: 14).
    Репутация: 37
    Цитата Сообщение от Ugarik Посмотреть сообщение
    Ты так говоришь, как будто это легко. Патч скорее всего и на чистое ядро не сразу ляжет и сам по себе глюкавый. Ну вот поэтому никто и не занимается.
    Почему у меня и еще у троих знакомых все накатилось без пролем?
    Последний раз редактировалось Слайнер; 24.07.2012 в 03:03.

Страница 1 из 2 12 ПоследняяПоследняя

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •