|
Принятые патчи Иногда выкладывают патчи, которые потом в итоге все-таки принимают в ядро.
Повод для гордости. |
|
Опции темы | Поиск в этой теме | Опции просмотра |
16.08.2010, 17:33 | #1 |
Умный
Старожил
Регистрация: 06.03.2010
Сообщений: 886
Сказал(а) спасибо: 698
Поблагодарили 433 раз(а) в 181 сообщениях
Записей в дневнике: 4
|
[10910] [fix] Spell::EffectQuestComplete
Сейчас разбирался с квестом и наткнулся на один спелл:
http://ru.wowhead.com/spell=31336 По логике спелла и данным с ВХ - данный спелл должен быть скастован НПС. Попробовал реализовать через EvemtAI, однако квест не засчитался. Механика квеста и самого спелла не позволяет сделать грамотно так, чтобы этот спелл кастовался игроком (квест может выполняться группой игроков (и должен), таргетов у НПС может быть несколько и не обязательно это будет игрок). Решил покопаться и понял. Спелла 31336 имеет второй эффект - квест комплит и целью его должны стать цели: TARGET_ALL_ENEMY_IN_AREA. Почему же не происходит комплит? Стал копать обработки и наткнулся на то, что для мангоса спеллы с комплитом кастует или только игрок или они не обрабатываются вообще, что неверно, учитывая указание цели в самом спелле. Доработал обработчик следующим образом - тогда получается всё верно и есть страховка от ошибки если цель - не игрок: PHP код:
|
16.08.2010, 18:38 | #2 |
Пользователь
Регистрация: 23.03.2010
Сообщений: 51
Сказал(а) спасибо: 14
Поблагодарили 32 раз(а) в 15 сообщениях
|
Здорово.
А случаев, когда кастер - игрок, чей квест должен завершиться, но цель - не игрок, быть не может? |
16.08.2010, 19:02 | #3 | |
Умный
Старожил
Регистрация: 06.03.2010
Сообщений: 886
Сказал(а) спасибо: 698
Поблагодарили 433 раз(а) в 181 сообщениях
Записей в дневнике: 4
|
Цитата:
Два: неоднократно видел спеллы, завершающие квест, которые должны кастоваться НПС, но базе и скриптам приходится выёживаться вызывая каст спелла именно игроком именно из-за текущей реализации. Три: цель не игроком быть не может, т.к. не игрок не может иметь квеста. |
|
16.08.2010, 19:53 | #4 |
Пользователь
Регистрация: 23.03.2010
Сообщений: 51
Сказал(а) спасибо: 14
Поблагодарили 32 раз(а) в 15 сообщениях
|
Ну почему же. Такое бы даже корректно работало раньше. Впрочем, подобных заклинаний нет, и, видимо, так быть не должно.
|
16.08.2010, 22:06 | #5 |
Администратор
|
Было бы неплохо узнать, как поведет себя ядро с данным патчем в случае таких целей с данным эффектом:
http://ru.wowhead.com/spell=19719 - TARGET_SELF http://ru.wowhead.com/spell=23658 - TARGET_SINGLE_FRIEND http://ru.wowhead.com/spell=24875 - TARGET_DUELVSPLAYER http://ru.wowhead.com/spell=25201 - TARGET_CASTER_COORDINATES, TARGET_AREAEFFECT_INSTANT http://ru.wowhead.com/spell=30790 - TARGET_CASTER_COORDINATES, TARGET_ALL_ENEMY_IN_AREA http://ru.wowhead.com/spell=31377 - TARGET_CASTER_COORDINATES, TARGET_ALL_FRIENDLY_UNITS_AROUND_CASTER http://ru.wowhead.com/spell=44124 - TARGET_MASTER, TARGET_AREAEFFECT_PARTY Для квеста на поимку Матиса есть спеллы: http://ru.wowhead.com/spell=31336 http://ru.wowhead.com/spell=31337 http://ru.wowhead.com/spell=31339 http://ru.wowhead.com/spell=31377 Может, просто не тот спелл кастуется? Нужен снифф. |
16.08.2010, 22:14 | #6 |
Умный
Старожил
Регистрация: 06.03.2010
Сообщений: 886
Сказал(а) спасибо: 698
Поблагодарили 433 раз(а) в 181 сообщениях
Записей в дневнике: 4
|
Цели для комплита квеста будут определяться точно также как и при касте любого другого спелла с подобными целями.
Да и в любом случае - целью спелла должны быть именно те цели, которые указаны в спелле в дбц. Что-то я не часто вижу, чтобы в спеллах подменялись цели, которые указаны у них в дбц, почему же для этого эффекта делается исключение? Спеллы для поимки Матиса: В текущем варианте работы ядра все эти спеллы должны быть обязательно скастованы от игрока, что даже скриптом SD2 реализовать не так просто будет + ни один из приведённых спеллов не имеет для эффекта комплита цели self, что было бы логично если бы спелл должен был быть скастован игроком. |
16.08.2010, 22:18 | #7 |
Администратор
|
31339 - TARGET_DUELVSPLAYER
Может, госсип? Тут уже нужна точная инфа по данному квесту. |
16.08.2010, 22:26 | #8 |
Умный
Старожил
Регистрация: 06.03.2010
Сообщений: 886
Сказал(а) спасибо: 698
Поблагодарили 433 раз(а) в 181 сообщениях
Записей в дневнике: 4
|
Это всё равно сути не меняет. Почему для данного эффекта игнорируется цель и сущестует лишь одна цель: если кастер игрок - цель - кастер. Если кастре не игрок - эффект просто не обрабатывается, хотя срабатывал бы совершенно нормально, без костылей в ЭвентАИ типа "каст этого спелла целью".
|
22.08.2010, 16:01 | #10 | |
Гость
Сообщений: n/a
|
Цитата:
Вот пример квеста, когда игрок должен скастовать (использовать спелл - http://www.wowhead.com/spell=53428), но не на NPC или GO.... а на итем..... не знаю как в мангосе, а в тринити последней ревизии данный квест невыполним (без ремонта ядра). Вот сейчас чистое ядро мангоса откомпилю, посмотрим как там. __________________________________________________ ______________ На мангосе данный квест выполняется нормально... Подскажите где копать в ядре? Где обработка таких квестов находится? Последний раз редактировалось tmuc; 22.08.2010 в 16:45. |
|
22.08.2010, 20:00 | #11 | |
Умный
Старожил
Регистрация: 06.03.2010
Сообщений: 886
Сказал(а) спасибо: 698
Поблагодарили 433 раз(а) в 181 сообщениях
Записей в дневнике: 4
|
Цитата:
|
|
22.08.2010, 21:31 | #12 |
Гость
Сообщений: n/a
|
С офф репо триньки, после компила квест не выполняется... значит в офф не исправили данный косяк..
|
22.08.2010, 21:39 | #13 | |
Умный
Старожил
Регистрация: 06.03.2010
Сообщений: 886
Сказал(а) спасибо: 698
Поблагодарили 433 раз(а) в 181 сообщениях
Записей в дневнике: 4
|
Цитата:
SpellEffects.cpp: PHP код:
Кв этот и на тринити 100% работал, а значит был реализован скорее всего скриптом, советую вам копать в этом направлении. |
|
22.08.2010, 21:52 | #14 |
Гость
Сообщений: n/a
|
Спс.... буду копать.... Что интересно.. включил логи - 3 и на мангосе и на тринити....
абсолютно идентичны все вызовы...((( и 53343 есть... |
23.12.2010, 18:04 | #17 |
MaNGOS Dev
Регистрация: 07.03.2010
Сообщений: 314
Сказал(а) спасибо: 30
Поблагодарили 153 раз(а) в 83 сообщениях
|
В 10910. Спасибо
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
[10939] Check non-unit target case for avoid crash in EffectQuestComplete. | newsbot | CMaNGOS Commits | 0 | 30.12.2010 02:21 |
[10910] Use provided target instead of caster for SPELL_EFFECT_QUEST_COMPLETE | newsbot | CMaNGOS Commits | 0 | 23.12.2010 18:10 |