Показать сообщение отдельно
Старый 31.10.2010, 16:25   #7
Insider42
Ученый
 
Регистрация: 15.03.2010
Сообщений: 261
Сказал(а) спасибо: 84
Поблагодарили 257 раз(а) в 96 сообщениях
Insider42 Как самоцвет среди гранитаInsider42 Как самоцвет среди гранитаInsider42 Как самоцвет среди гранита
По умолчанию

Цитата:
Сообщение от virusav Посмотреть сообщение
В итоге при новом значении 1.05f и старом 1.03f получим 0.02f.
Если есть только новое значение, то 1.05f.
Всё верно, так и задумано. Дело в том, что если у нас есть старая аура, то мы попросту добавляем разницу между ними (т.к. новая более сильная)

Цитата:
Сообщение от virusav Посмотреть сообщение
По идее, можно
Код:
-    GetTarget()->HandleStatModifier(UNIT_MOD_ATTACK_POWER, TOTAL_VALUE, float(m_modifier.m_amount), apply);
+	float value = ReplaceByMorePowerfulAura(m_modifier.m_auraname, m_modifier.m_amount);
+    GetTarget()->HandleStatModifier(UNIT_MOD_ATTACK_POWER, TOTAL_VALUE, value, apply);
заменить на
Код:
-    GetTarget()->HandleStatModifier(UNIT_MOD_ATTACK_POWER, TOTAL_VALUE, float(m_modifier.m_amount), apply);
+    GetTarget()->HandleStatModifier(UNIT_MOD_ATTACK_POWER, TOTAL_VALUE, float(ReplaceByMorePowerfulAura(m_modifier.m_auraname, m_modifier.m_amount)), apply);
И так в каждой функции.
я тоже об этом подумывал, но пугала слишком длинная строчка которая получалсь в итоге %)
У меня просто до сих пор сомнения о надобности параметров тут вообще, но и проверять этот вариант поленился :/ я до сих пор не понял, наследует ли вызванная функция все известное той из которой была вызвана... тут сыграло роль моё нупство в C++
__________________
Если ты видишь это сообщение то ты просто обязан нажать "Спасибо"

Последний раз редактировалось Insider42; 31.10.2010 в 16:29.
Insider42 вне форума   Ответить с цитированием