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

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

Показано с 1 по 12 из 47

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Почетный флудер Аватар для BloodyMess
    Регистрация
    15.01.2012
    Сообщений
    1,542
    Поблагодарил(а)
    373
    Получено благодарностей: 457 (сообщений: 305).
    Репутация: 453
    уж не знаю как у розового войска с логикой.
    когда должен сработать хил по условиям от урона БОЛТА ХАОСА?

    урон, который МОГ БЫ оказаться смертельным, заместо этого хилит бла-бла-бла.

    за это самое сослагательное наклонение отвечает подушка безопасности с механикой абсорба

    БОТЛ ХАВАСА игнорирует эту механику, эту подушку. это как бронебойный патрон

    и тебе задают вопрос: он тебе труп должен похилить?

    если это удар не МОГ БЫ, а оказался смертельным

  2. #2
    Ветеран форума Аватар для Icyboy
    Регистрация
    22.06.2013
    Адрес
    Азэрот
    Сообщений
    1,410
    Поблагодарил(а)
    91
    Получено благодарностей: 71 (сообщений: 57).
    Репутация: 71
    Цитата Сообщение от BloodyMess Посмотреть сообщение
    отвечает подушка безопасности с механикой абсорба
    А-а-а-а, нет.
    Разные проки.
    Отличие между типом PvP и PvE заключается в том, что на игровом мире с типом PvE по умолчанию отключен PvP режим, т.е вы не сможете начать бить игрока другой фракции вне арены или бг если у него не будет вручную включен PvP режим.

  3. #3
    Дедушка форума Аватар для ciklopper
    Регистрация
    12.01.2012
    Адрес
    SPb
    Сообщений
    6,716
    Поблагодарил(а)
    703
    Получено благодарностей: 1,609 (сообщений: 952).
    Репутация: 5842
    Цитата Сообщение от Icyboy Посмотреть сообщение
    Разные проки.
    Не совсем

    Код последнего тринити

    Код:
    // 31850 - Ardent Defender
    class spell_pal_ardent_defender : public SpellScriptLoader
    {
        public:
            spell_pal_ardent_defender() : SpellScriptLoader("spell_pal_ardent_defender") { }
    
            class spell_pal_ardent_defender_AuraScript : public AuraScript
            {
                PrepareAuraScript(spell_pal_ardent_defender_AuraScript);
    
            public:
                spell_pal_ardent_defender_AuraScript()
                {
                    absorbPct = 0;
                    healPct = 0;
                }
    
            private:
                uint32 absorbPct, healPct;
    
                enum Spell
                {
                    PAL_SPELL_ARDENT_DEFENDER_HEAL = 66235,
                };
    
                bool Load() override
                {
                    healPct = GetSpellInfo()->Effects[EFFECT_1].CalcValue();
                    absorbPct = GetSpellInfo()->Effects[EFFECT_0].CalcValue();
                    return GetUnitOwner()->GetTypeId() == TYPEID_PLAYER;
                }
    
                void CalculateAmount(AuraEffect const* /*aurEff*/, int32 & amount, bool & /*canBeRecalculated*/)
                {
                    // Set absorbtion amount to unlimited
                    amount = -1;
                }
    
                void Absorb(AuraEffect* aurEff, DamageInfo & dmgInfo, uint32 & absorbAmount)
                {
                    Unit* victim = GetTarget();
                    int32 remainingHealth = victim->GetHealth() - dmgInfo.GetDamage();
                    uint32 allowedHealth = victim->CountPctFromMaxHealth(35);
                    // If damage kills us
                    if (remainingHealth <= 0 && !victim->ToPlayer()->HasSpellCooldown(PAL_SPELL_ARDENT_DEFENDER_HEAL))
                    {
                        // Cast healing spell, completely avoid damage
                        absorbAmount = dmgInfo.GetDamage();
    
                        uint32 defenseSkillValue = victim->GetDefenseSkillValue();
                        // Max heal when defense skill denies critical hits from raid bosses
                        // Formula: max defense at level + 140 (raiting from gear)
                        uint32 reqDefForMaxHeal  = victim->getLevel() * 5 + 140;
                        float pctFromDefense = (defenseSkillValue >= reqDefForMaxHeal)
                            ? 1.0f
                            : float(defenseSkillValue) / float(reqDefForMaxHeal);
    
                        int32 healAmount = int32(victim->CountPctFromMaxHealth(uint32(healPct * pctFromDefense)));
                        victim->CastCustomSpell(victim, PAL_SPELL_ARDENT_DEFENDER_HEAL, &healAmount, NULL, NULL, true, NULL, aurEff);
                        victim->ToPlayer()->AddSpellCooldown(PAL_SPELL_ARDENT_DEFENDER_HEAL, 0, time(NULL) + 120);
                    }
                    else if (remainingHealth < int32(allowedHealth))
                    {
                        // Reduce damage that brings us under 35% (or full damage if we are already under 35%) by x%
                        uint32 damageToReduce = (victim->GetHealth() < allowedHealth)
                            ? dmgInfo.GetDamage()
                            : allowedHealth - remainingHealth;
                        absorbAmount = CalculatePct(damageToReduce, absorbPct);
                    }
                }
    
                void Register() override
                {
                     DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_pal_ardent_defender_AuraScript::CalculateAmount, EFFECT_0, SPELL_AURA_SCHOOL_ABSORB);
                     OnEffectAbsorb += AuraEffectAbsorbFn(spell_pal_ardent_defender_AuraScript::Absorb, EFFECT_0);
                }
            };
    
            AuraScript* GetAuraScript() const override
            {
                return new spell_pal_ardent_defender_AuraScript();
            }
    };
    [свернуть]


    Собственно поймут не все... Но суть в чем, есть Абсорб, и только когда он сработал происходит проверка, на отхил т.е. 2й прок и это верно иначе эта структура вообще не имеет смысла.

    Собственно ссылку на Trinity и его код, для тех кто его не видел: https://github.com/TrinityCore/Trini...scripts/Spells добавлю в гайд по спеллам позже.
    Последний раз редактировалось ciklopper; 06.08.2015 в 18:42.
    Мой канал: https://www.youtube.com/c/CiklopperPlay
    Есть вопросы по игровой механике, подозрение на баг? Тогда тебе сюда Мастерская.

    Циклоппер x300 Ршам

    Этот мир спасёт шаман танк!

  4. #4
    Ветеран форума Аватар для Icyboy
    Регистрация
    22.06.2013
    Адрес
    Азэрот
    Сообщений
    1,410
    Поблагодарил(а)
    91
    Получено благодарностей: 71 (сообщений: 57).
    Репутация: 71
    Цитата Сообщение от BloodyMess Посмотреть сообщение
    ну так когда должен хилить ревностный против ЧАОС БОЛТА? после каждого? после первого? по понедельникам? или может в полнолуние?
    ХБ не отличается в отношении отхила РЗ от любого другого урона.

    - - - Updated - - -

    Цитата Сообщение от ciklopper Посмотреть сообщение
    Не совсем

    Код последнего тринити

    Код:
    // 31850 - Ardent Defender
    class spell_pal_ardent_defender : public SpellScriptLoader
    {
        public:
            spell_pal_ardent_defender() : SpellScriptLoader("spell_pal_ardent_defender") { }
    
            class spell_pal_ardent_defender_AuraScript : public AuraScript
            {
                PrepareAuraScript(spell_pal_ardent_defender_AuraScript);
    
            public:
                spell_pal_ardent_defender_AuraScript()
                {
                    absorbPct = 0;
                    healPct = 0;
                }
    
            private:
                uint32 absorbPct, healPct;
    
                enum Spell
                {
                    PAL_SPELL_ARDENT_DEFENDER_HEAL = 66235,
                };
    
                bool Load() override
                {
                    healPct = GetSpellInfo()->Effects[EFFECT_1].CalcValue();
                    absorbPct = GetSpellInfo()->Effects[EFFECT_0].CalcValue();
                    return GetUnitOwner()->GetTypeId() == TYPEID_PLAYER;
                }
    
                void CalculateAmount(AuraEffect const* /*aurEff*/, int32 & amount, bool & /*canBeRecalculated*/)
                {
                    // Set absorbtion amount to unlimited
                    amount = -1;
                }
    
                void Absorb(AuraEffect* aurEff, DamageInfo & dmgInfo, uint32 & absorbAmount)
                {
                    Unit* victim = GetTarget();
                    int32 remainingHealth = victim->GetHealth() - dmgInfo.GetDamage();
                    uint32 allowedHealth = victim->CountPctFromMaxHealth(35);
                    // If damage kills us
                    if (remainingHealth <= 0 && !victim->ToPlayer()->HasSpellCooldown(PAL_SPELL_ARDENT_DEFENDER_HEAL))
                    {
                        // Cast healing spell, completely avoid damage
                        absorbAmount = dmgInfo.GetDamage();
    
                        uint32 defenseSkillValue = victim->GetDefenseSkillValue();
                        // Max heal when defense skill denies critical hits from raid bosses
                        // Formula: max defense at level + 140 (raiting from gear)
                        uint32 reqDefForMaxHeal  = victim->getLevel() * 5 + 140;
                        float pctFromDefense = (defenseSkillValue >= reqDefForMaxHeal)
                            ? 1.0f
                            : float(defenseSkillValue) / float(reqDefForMaxHeal);
    
                        int32 healAmount = int32(victim->CountPctFromMaxHealth(uint32(healPct * pctFromDefense)));
                        victim->CastCustomSpell(victim, PAL_SPELL_ARDENT_DEFENDER_HEAL, &healAmount, NULL, NULL, true, NULL, aurEff);
                        victim->ToPlayer()->AddSpellCooldown(PAL_SPELL_ARDENT_DEFENDER_HEAL, 0, time(NULL) + 120);
                    }
                    else if (remainingHealth < int32(allowedHealth))
                    {
                        // Reduce damage that brings us under 35% (or full damage if we are already under 35%) by x%
                        uint32 damageToReduce = (victim->GetHealth() < allowedHealth)
                            ? dmgInfo.GetDamage()
                            : allowedHealth - remainingHealth;
                        absorbAmount = CalculatePct(damageToReduce, absorbPct);
                    }
                }
    
                void Register() override
                {
                     DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_pal_ardent_defender_AuraScript::CalculateAmount, EFFECT_0, SPELL_AURA_SCHOOL_ABSORB);
                     OnEffectAbsorb += AuraEffectAbsorbFn(spell_pal_ardent_defender_AuraScript::Absorb, EFFECT_0);
                }
            };
    
            AuraScript* GetAuraScript() const override
            {
                return new spell_pal_ardent_defender_AuraScript();
            }
    };
    [свернуть]


    Собственно поймут не все... Но суть в чем, есть Абсорб, и только когда он сработал происходит проверка, на отхил т.е. 2й прок и это верно иначе эта структура вообще не имеет смысла.

    Собственно ссылку на Trinity и его код, для тех кто его не видел: https://github.com/TrinityCore/Trini...scripts/Spells добавлю в гайд по спеллам позже.
    А-а-а-а... какой-то сайт... какие-то "типа оф" коды... и что-то тут не так...
    http://forum.wowcircle.com/showthrea...=1#post4244549
    Отличие между типом PvP и PvE заключается в том, что на игровом мире с типом PvE по умолчанию отключен PvP режим, т.е вы не сможете начать бить игрока другой фракции вне арены или бг если у него не будет вручную включен PvP режим.

  5. #5
    Дедушка форума Аватар для ciklopper
    Регистрация
    12.01.2012
    Адрес
    SPb
    Сообщений
    6,716
    Поблагодарил(а)
    703
    Получено благодарностей: 1,609 (сообщений: 952).
    Репутация: 5842
    Цитата Сообщение от Icyboy Посмотреть сообщение
    А-а-а-а... какой-то сайт... какие-то "типа оф" коды... и что-то тут не так...
    Эм, тринитикор это ядро на котором работает наш сервер да и наверное все пиратские сервера. Только у wowcircle за основу взята версия прошлых годов которую они поддерживают и улучшают.
    Мой канал: https://www.youtube.com/c/CiklopperPlay
    Есть вопросы по игровой механике, подозрение на баг? Тогда тебе сюда Мастерская.

    Циклоппер x300 Ршам

    Этот мир спасёт шаман танк!

  6. #6
    Почетный флудер Аватар для BloodyMess
    Регистрация
    15.01.2012
    Сообщений
    1,542
    Поблагодарил(а)
    373
    Получено благодарностей: 457 (сообщений: 305).
    Репутация: 453
    Цитата Сообщение от Icyboy Посмотреть сообщение
    ХБ не отличается в отношении отхила РЗ от любого другого урона.
    есть небольшое отличие - мертвого паладина уже не отхилить

Похожие темы

  1. Ревностный защитник(2)
    от Icyboy в разделе Мастерская
    Ответов: 31
    Последнее сообщение: 08.05.2015, 16:15
  2. Ревносный защитник
    от alewax2 в разделе Отклонено
    Ответов: 0
    Последнее сообщение: 31.01.2015, 18:29

Ваши права

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