Ru-MaNGOS

Вернуться   Ru-MaNGOS > Документация > Новичкам

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

Новичкам Информация для всех новичков, новичкам рекомендуется задавать свои вопросы здесь

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 11.11.2013, 20:45   #1
Felzewell
Гость
 
Сообщений: n/a
По умолчанию Немножечко о талантах

Доброго времени суток, если не трудно уточните пожалуйста пару вещей.
Последняя сборка CMaNGOS(4.3.4), решил реализовать талант Энханс Шамана: "Жгучее пламя"(ссылку не могу дать т.к. в МоР нету этого таланта уже) и в связи с ним столкнулся с рядом проблем:

1)Имеются ли в DBC файлах шанс на прок спелла(надеюсь правильно выразился)?
2) Талант имеет ауру "SPELL_AURA_DUMMY" т.е следовательно его надо реализовывать в SpellAura.cpp в разделе:
Код:
void Aura::HandleAuraDummy(bool apply, bool Real)
?
Или все же в SpellEffect.cpp в разделе "EffectDummy" ?
(Догадки падают именно на реализацию в SpellEffect.cpp)

Как работает талант: Опаляющий тотем() использовав спелл "Опаляющая стрела()" накладывает на врага спелл: "Жгучее пламя"(Уровень 1,2,3)(), который стакается до 5 штук и за 15 секунд наносит урон от "Опаляющая стрела" (При 5 стаках урон равен 5 опаляющим стрелам)

Будьте любезны подскажите пожалуйста правильную дорожку. Заранее спасибо.

P.S Пустые скобочки я оставил чтоб вставить ссылки на wowhead, щас нету возможности т.к. интернет еле работает((( Еще раз заранее спаибо

Последний раз редактировалось Felzewell; 11.11.2013 в 21:01.
  Ответить с цитированием
Старый 11.11.2013, 22:07   #2
Amaru
MaNGOS Dev
 
Регистрация: 16.01.2011
Сообщений: 262
Сказал(а) спасибо: 57
Поблагодарили 73 раз(а) в 59 сообщениях
Amaru На верном пути
По умолчанию

Для справки о dbc используй http://ru-mangos.ru/showthread.php?t=3501
А аур таланта нет прок данных, а шанс лежит в basepoints.
Насколько я помню, ауры мастера могут прокать от атак пета (тотема), так что по идее можно через HandleDummyAuraProc все сделать. Если в проке просто кастовать жгучее пламя то оно само собой будет стакаться до нужного количества раз.
То, что ты написал про HandleAuraDummy и EffectDummy тут никак не поможет, это всего лишь обработчики наложения ауры таланта и и его эффекта.
Если уж совсем невтерпеж, то можешь посмотреть как реализовано тут https://github.com/Dramacydal/murloc...ects.cpp#L1453, но это в другом варианте, хаково и неправильно.

Последний раз редактировалось Amaru; 11.11.2013 в 22:11.
Amaru вне форума   Ответить с цитированием
Старый 12.11.2013, 07:26   #3
Felzewell
Гость
 
Сообщений: n/a
По умолчанию

Спасибо за информацию, буду ковыряться, пытаться понять. а вот вопрос не по теме, как понять хаковая реализация или нет ?
  Ответить с цитированием
Старый 12.11.2013, 10:16   #4
Amaru
MaNGOS Dev
 
Регистрация: 16.01.2011
Сообщений: 262
Сказал(а) спасибо: 57
Поблагодарили 73 раз(а) в 59 сообщениях
Amaru На верном пути
По умолчанию

Вообще это сложно сказать, чтобы понимать это, нужно понимать как устроен эмулятор.
В моем понимании правильная реализация талантов - это сведение всего к написанию кода в обработчиках эффектов, аур и проков.
Но и там можно столько хаков наворотить, что потом людям страшно будет.
Amaru вне форума   Ответить с цитированием
Старый 12.11.2013, 12:30   #5
Felzewell
Гость
 
Сообщений: n/a
По умолчанию

Понятно, спасибо еще раз... думаю я взялся сразу за сложный талант... Подскажите пожалуйста есть ли талант или спелл который проще реализовать ?
  Ответить с цитированием
Старый 12.11.2013, 12:35   #6
Amaru
MaNGOS Dev
 
Регистрация: 16.01.2011
Сообщений: 262
Сказал(а) спасибо: 57
Поблагодарили 73 раз(а) в 59 сообщениях
Amaru На верном пути
По умолчанию

Таких полно)
Нерабочий талант подразумевает то, что стандартными механиками ядра он по какой-то причине не обрабатывается. Тут по любому нужно будет разбираться что, где и на каком этапе не работает.
Amaru вне форума   Ответить с цитированием
Старый 12.11.2013, 13:15   #7
Felzewell
Гость
 
Сообщений: n/a
По умолчанию

Ахах))) ясненько, в общем решил взяться за показавшийся легким на первый взгляд спелл ("Высвободить чары стихий")

По сути спелы шаманских бафов на оружие из за этого спела тригерят соответствующие спеллы т.е. если стоит Оружие языка пламени то на противника тригериться спелл: Высвободить чары огня и т.д.

в SpellEffect.cpp в разделе EffectDummy в case SPELL_FAMILY_SHAMAN
прописал следующий код:
Код:
			
/// Unleash Elements (Fix by Felzewell)
	switch (m_spellInfo->Id)
	{
			case 73680:                              
                {
                    if (!unitTarget || unitTarget->GetTypeId() != TYPEID_PLAYER)
                        return;

                    uint32 triggered_spell_id;
			switch (m_spellInfo->Id)
                    {
			case 8017:	triggered_spell_id = 73684; break;    // Rockbiter Weapon
                        case 8024:	triggered_spell_id = 73683; break;    // Flametongue Weapon
			case 8033:	triggered_spell_id = 73682; break;    // Frostbrand Weapon
			case 8232:	triggered_spell_id = 73681; break;	  // Windfury Weapon
			case 51730: triggered_spell_id = 73685; break;    // Earthliving Weapon
                    }
                    unitTarget->CastSpell(unitTarget, triggered_spell_id, true);
                    return;
                }
	}
Но при этом спелл все равно не заработал, подтолкните пожалуйста на правильную дорожку, заранее благодарен

P.S : Не пинайте сильно, первый раз пытаюсь починить спелл)))
сори незнал как пропорционально на форуме прописать код

Последний раз редактировалось Felzewell; 12.11.2013 в 13:21. Причина: добавил P.S
  Ответить с цитированием
Старый 12.11.2013, 14:18   #8
Amaru
MaNGOS Dev
 
Регистрация: 16.01.2011
Сообщений: 262
Сказал(а) спасибо: 57
Поблагодарили 73 раз(а) в 59 сообщениях
Amaru На верном пути
По умолчанию

Ну этот код даже с точки зрения языка логики не имеет
Amaru вне форума   Ответить с цитированием
Старый 12.11.2013, 15:33   #9
Felzewell
Гость
 
Сообщений: n/a
По умолчанию

Понятно.... порыскав по ссылке которую вы мне дали нашел у него тоже реализацию "Высвободить чары стихий" https://github.com/Dramacydal/murloc...ects.cpp#L5306

Подскажите пожалуйста
Это тоже хаковая реализация ? просто хочу как бы... пример
Ах да параметр case должен иметь id Чар стихий(огонь, вода, и т.д)? или число используемое в case не имеет значения ?
Заранее спасибо
  Ответить с цитированием
Старый 12.11.2013, 15:45   #10
YuruY
YTDB Dev
 
Аватар для YuruY
 
Регистрация: 01.02.2010
Сообщений: 288
Сказал(а) спасибо: 125
Поблагодарили 97 раз(а) в 53 сообщениях
YuruY Скоро придёт к известностиYuruY Скоро придёт к известности
По умолчанию

__________________
http://ytdb.ru/
http://svn2.assembla.com/svn/ytdbase/
YuruY вне форума   Ответить с цитированием
Старый 12.11.2013, 16:05   #11
Felzewell
Гость
 
Сообщений: n/a
По умолчанию

Цитата:
Сообщение от YuruY Посмотреть сообщение
Сори)) Незнал))

Посмотрев код повнимательнее заметил такую функцию как GetEnchantmenId()
Именно значение EnchantmentId вставляется в case?

Как ставить оффтопик ?))

Последний раз редактировалось Felzewell; 12.11.2013 в 16:23.
  Ответить с цитированием
Старый 12.11.2013, 16:36   #12
Amaru
MaNGOS Dev
 
Регистрация: 16.01.2011
Сообщений: 262
Сказал(а) спасибо: 57
Поблагодарили 73 раз(а) в 59 сообщениях
Amaru На верном пути
По умолчанию

https://www.google.ru/?q=c%2B%2B+cas...q=c%2B%2B+case

Последний раз редактировалось Amaru; 12.11.2013 в 16:39.
Amaru вне форума   Ответить с цитированием
Старый 13.11.2013, 10:24   #13
Felzewell
Гость
 
Сообщений: n/a
По умолчанию

Цитата:
Сообщение от Amaru Посмотреть сообщение
Спасибо большое, наконец понял как работает switch-case,
Не могли бы вы подсказать из какого файла вы брали значение EnchantmentId, Заранее благодарен
  Ответить с цитированием
Старый 13.11.2013, 13:58   #14
Amaru
MaNGOS Dev
 
Регистрация: 16.01.2011
Сообщений: 262
Сказал(а) спасибо: 57
Поблагодарили 73 раз(а) в 59 сообщениях
Amaru На верном пути
По умолчанию

Цитата:
Сообщение от Felzewell Посмотреть сообщение
Спасибо большое, наконец понял как работает switch-case,
Не могли бы вы подсказать из какого файла вы брали значение EnchantmentId, Заранее благодарен
SpellItemEnchantment.dbc
Amaru вне форума   Ответить с цитированием
Ответ


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

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



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


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