Ru-MaNGOS

Вернуться   Ru-MaNGOS > Флуд > Флудильня

Важная информация

Флудильня Разговоры на любые темы.

Мы устаем постоянно работать. Иногда надо где-то немного отдохнуть. Пожалуйста, не надо здесь устраивать бардак.

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 30.05.2010, 10:26   #1
PSZ
Ученый
 
Регистрация: 07.03.2010
Сообщений: 138
Сказал(а) спасибо: 200
Поблагодарили 143 раз(а) в 49 сообщениях
PSZ Обладатель прекрасной аурыPSZ Обладатель прекрасной ауры
По умолчанию

Еще причина в том, что сейчас при бое с мобами учитывается ресайленс. Ресайленс должен учитываться только при бое с игроками. Точно так же, как дефенс должен учитываться только при бое с мобами, но не при бое с игроками.
Хотел как раз написать такой патч...
PSZ вне форума   Ответить с цитированием
Старый 30.05.2010, 12:27   #2
VBB
Гость
 
Сообщений: n/a
По умолчанию

Очень хотелось бы видеть такой патчик. К сожалению, сам в кодинге не силен.
  Ответить с цитированием
Старый 30.05.2010, 13:08   #3
LordJZ
Супер-модератор
 
Аватар для LordJZ
 
Регистрация: 07.03.2010
Сообщений: 647
Сказал(а) спасибо: 100
Поблагодарили 252 раз(а) в 123 сообщениях
LordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранита
По умолчанию

Цитата:
Сообщение от PSZ Посмотреть сообщение
Еще причина в том, что сейчас при бое с мобами учитывается ресайленс. Ресайленс должен учитываться только при бое с игроками. Точно так же, как дефенс должен учитываться только при бое с мобами, но не при бое с игроками.
Хотел как раз написать такой патч...
В каком месте он учитывается-то?

При мили/рендж атаке вот этот код вызывается для босса на pVictim - игрока. Проверка есть.
Код:
void Unit::CalculateMeleeDamage(Unit *pVictim, uint32 damage, CalcDamageInfo *damageInfo, WeaponAttackType attackType)
{
...
    // only from players
    if (GetTypeId() == TYPEID_PLAYER)
    {
        uint32 redunction_affected_damage = CalcNotIgnoreDamageRedunction(damageInfo->damage,damageInfo->damageSchoolMask);
        uint32 resilienceReduction;
        if (attackType != RANGED_ATTACK)
            resilienceReduction = pVictim->GetMeleeDamageReduction(redunction_affected_damage);
        else
            resilienceReduction = pVictim->GetRangedDamageReduction(redunction_affected_damage);
        damageInfo->damage      -= resilienceReduction;
        damageInfo->cleanDamage += resilienceReduction;
    }
А вот этот код для спеллов. Проверка есть.
Код:
void Unit::CalculateSpellDamage(SpellNonMeleeDamage *damageInfo, int32 damage, SpellEntry const *spellInfo, WeaponAttackType attackType)
{
...
    // only from players
    if (GetTypeId() == TYPEID_PLAYER)
    {
        uint32 redunction_affected_damage = CalcNotIgnoreDamageRedunction(damage,damageSchoolMask);
        damage -= pVictim->GetSpellDamageReduction(redunction_affected_damage);
    }
Далее для дотов и лич эффектов, с проверками.
Код:
void Aura::PeriodicTick()
...
        case SPELL_AURA_PERIODIC_DAMAGE:
        case SPELL_AURA_PERIODIC_DAMAGE_PERCENT:
...
            // only from players
            // FIXME: need use SpellDamageBonus instead?
            if (IS_PLAYER_GUID(m_caster_guid))
                pdamage -= m_target->GetSpellDamageReduction(pdamage);
...
        case SPELL_AURA_PERIODIC_LEECH:
            // only from players
            // FIXME: need use SpellDamageBonus instead?
            if (IS_PLAYER_GUID(m_caster_guid))
                pdamage -= m_target->GetSpellDamageReduction(pdamage);
LordJZ вне форума   Ответить с цитированием
Ответ


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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Класс Thread в Мангосе. alien Новичкам 8 27.11.2010 22:01


Текущее время: 18:31. Часовой пояс GMT +3.


ru-mangos.ru - Русское сообщество MaNGOS
Главная цель проекта MaNGOS - обучающая, поэтому разрешается использовать исходный код и собранную программу только для образовательных целей.
Вы не можете использовать MaNGOS в коммерческих целях, а также не разрешается устанавливать публичные серверы на базе MaNGOS.
Любое копирование материалов, информации в любом виде без указания источника - форума Ru-MaNGOS будет считаться нарушением авторских прав и нарушением Уголовного Кодекса РФ, ст. 146 ст. 147.
Перевод vBulletin: zCarot