• Страница 1 из 1
  • 1
Модератор форума: Dimitro  
Где взять спелл к квесту с SPELL_EFFECT_KILL_CREDIT
Explain
Капрал
Доброго дня! Нужна помощь, столкнулся с такой вещью: во многих квестах просто выдавать Kill credit через SmartAI не корректно,  для большинства квестов есть спелл с эффектом SPELL_EFFECT_KILL_CREDIT. Так вот, подскажите, пожалуйста,  откуда взять инфу  какой спелл к какому квесту? SpellWork есть, но что там искать, четно - не знаю.

Добавлено (20.09.2017, 18:01)
---------------------------------------------
Способ не самый лучший, но если сделаете так - то точно разберётесь.
Короче дошёл сам. мне понадобился SpellWork(надо качать под свою версию игры) и DBCViewer\DBCExplorer.
Для начала нам необходимо описание таблиц файла SpellEffect.dbc, но в интернете оно есть не под каждую версию игры, именно поэтому мы используем SpellWork, чтобы составить его самостоятельно(если его нет).
Открываем в одном окне SpellWork, во втором DBCViewer и файл SpellEffect.dbc. Открываем в SpellWork любой спелл  с эффектом 90 - SPELL_EFFECT_KILL_CREDIT(у вас номер эффекта может отличаться), например 43300 "Попадание!". Видим, что у него есть EFFECT_0 с Id 90 SPELL_EFFECT_KILL_CREDIT и параметром EffectMiscValueA = 54231. Это значит, что спелл 43300 даёт kill credit 54231. Нам остаётся пойти в  DBCViewer и сопоставить значения. Итак, в SpellEffect.dbc куча столбцов и цифр, однако известно, что самый последний столбец с большими цифрами содержит Id спелла, т. е. 43300. У меня этот столбец был 3 с конца, на катаклизме, насколько мне известно, он 2 с конца. В DBCViewer можно поменять название столбца, на будущее рекомендую переименовать в SpellId.  Далее, можно добавить фильтр, который отобразит только те строки, где столбец с Id спелла будет равен 43300, если это сделать, то увидим 2 строки. Ищем столбец, в котором есть значение с номером эффекта SPELL_EFFECT_KILL_CREDIT(у меня это 90), переименовываем в SpellId. В сроке со SPELL_EFFECT_KILL_CREDIT ищем где значение равно 54231 и переименовываем в EffectMiscValueA.
Теперь, если нам надо узнать есть ли спелл, который даёт kill credit, то выставляем фильтрацию по EffectId со значением SPELL_EFFECT_KILL_CREDIT(у меня 90) и ищем есть ли нужный нам kill credit в столбце EffectMiscValueA - если есть, выдаём через SpellId(можно удостовериться через SpellWork). Если нет - используем SMART_ACTION_KILLEDMONSTER в smart_scripts.
Надеюсь кому-нибудь поможет)

Добавлено (20.09.2017, 20:56)
---------------------------------------------
Есть ещё SPELL_EFFECT_KILL_CREDIT2 (у меня 134).

Сообщение # 1 отредактировано Explain - Среда, 20.09.2017, 18:05
  • Страница 1 из 1
  • 1
Поиск: