|
Регистрация | Файлы | Правила | Альбомы | Дневники | Справка | Пользователи | Календарь | Поиск | Сообщения за день | Все разделы прочитаны |
Принятые патчи Иногда выкладывают патчи, которые потом в итоге все-таки принимают в ядро.
Повод для гордости. |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
07.11.2010, 15:00 | #1 |
Администратор
|
[10706]Манакорм[30326]
Описание: "Когда вы получаете ману при помощи заклинаний "Похищение маны" или "Жизнеотвод", ваш питомец получает 100% от полученной вами маны".
Жизнеотвод восстанавливает ману пета, а Похищение маны - нет. Патч: Код:
diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp index 3975e1e..42ba154 100644 --- a/src/game/SpellAuras.cpp +++ b/src/game/SpellAuras.cpp @@ -6879,6 +6879,10 @@ void Aura::PeriodicTick() if(gain_amount) { int32 gain = pCaster->ModifyPower(power, gain_amount); + if (pCaster->GetTypeId() == TYPEID_PLAYER && spellProto->Id == 5138 && pCaster->HasSpell(30326)) + if (Unit* pPet = pCaster->GetPet()) + int32 temp = pPet->ModifyPower(power, gain_amount); + target->AddThreat(pCaster, float(gain) * 0.5f, pInfo.critical, GetSpellSchoolMask(spellProto), spellProto); } break; Код:
diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp index 320fef2..f6fa41c 100644 --- a/src/game/SpellAuras.cpp +++ b/src/game/SpellAuras.cpp @@ -6881,6 +6881,9 @@ void Aura::PeriodicTick() if(gain_amount) { int32 gain = pCaster->ModifyPower(power, gain_amount); + if (pCaster->GetTypeId() == TYPEID_PLAYER && spellProto->Id == 5138 && pCaster->HasSpell(30326)) + pCaster->CastCustomSpell(pCaster, 32554, &gain_amount, NULL, NULL, true, NULL); + target->AddThreat(pCaster, float(gain) * 0.5f, pInfo.critical, GetSpellSchoolMask(spellProto), spellProto); } break; |
07.11.2010, 18:01 | #2 |
Ученый
Регистрация: 15.03.2010
Сообщений: 261
Сказал(а) спасибо: 84
Поблагодарили 257 раз(а) в 96 сообщениях
|
только вот зачем там "int32 temp = "?
__________________
Если ты видишь это сообщение то ты просто обязан нажать "Спасибо" |
07.11.2010, 19:51 | #3 |
Модератор
|
Раз от 'Жизнеотвода' работает, скорее всего - это должен быть прок, ну и модификация маны - какой-то из http://www.wowhead.com/search?q=Mana+Feed#spells
|
07.11.2010, 20:48 | #4 | |
Администратор
|
Писал по образу и подобию строки
Код:
int32 gain = pCaster->ModifyPower(power, gain_amount); Добавлено через 55 минут Цитата:
В SpellEffects.cpp есть блок обработки группы спеллов жизнеотвода, там же идет каст спелла 32553 с указанием количества передаваемой маны. Для спеллов жизнеотвода использовался CastCustomSpell. По идее, для спелла "Похищение маны" можно было сделать также через CastCustomSpell, но раз уж для кастера сделано через ModifyPower, то и для пета сделал точно также. Решающий ответ за ядерщиками, как правильно. |
|
08.11.2010, 08:23 | #5 | |
Умный
Регистрация: 02.07.2010
Сообщений: 434
Сказал(а) спасибо: 27
Поблагодарили 73 раз(а) в 45 сообщениях
|
Цитата:
То есть вместо Код:
int32 temp = pPet->ModifyPower(power, gain_amount); Код:
pPet->ModifyPower(power, gain_amount); |
|
07.11.2010, 21:05 | #6 |
Ученый
Регистрация: 13.03.2010
Сообщений: 110
Сказал(а) спасибо: 55
Поблагодарили 23 раз(а) в 14 сообщениях
|
ID - 32554 Mana Feed - Drain Mana
Effect 0: Id 30 (SPELL_EFFECT_ENERGIZE) BasePoints = 1 Targets (5, 0) (TARGET_PET, NO_TARGET) ? |
07.11.2010, 21:44 | #7 |
Администратор
|
Да, спелл 32554.
Об этом я и писал, что можно использовать его в CastCustomSpell, а можно, как в патче. О правильности пусть судят разработчики. |
07.11.2010, 23:47 | #9 |
Администратор
|
Добавил в первый пост второй вариант патча, хотя мне первый больше нравится.
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
[10706] Implement talent 30326 for spell 5138. | newsbot | CMaNGOS Commits | 0 | 09.11.2010 04:12 |