xmolex
28.03.2010, 13:18
Не знал в каком разделе лучше написать, поэтому пишу здесь.
Заметил, что на сервере не совсем корректно работает спелл Planning for the Future: Create Snowfall Glade Pup Cover (http://www.wowhead.com/?spell=46167), предмет не создается, хотя моб умирает. Он имеет dummy эффект. Отлично идем в SpellEffects.cpp и видим код:
case 46167: // Planning for the Future: Create Snowfall Glade Pup Cover
case 50926: // Gluttonous Lurkers: Create Zul'Drak Rat Cover
case 51026: // Create Drakkari Medallion Cover
case 51592: // Pickup Primordial Hatchling
case 51961: // Captured Chicken Cover
{
if (!unitTarget || unitTarget->GetTypeId() != TYPEID_UNIT || m_caster->GetTypeId() != TYPEID_PLAYER)
return;
uint32 spellId = 0;
switch(m_spellInfo->Id)
{
case 46167: spellId = 46773; break;
case 50926: spellId = 50927; break;
case 51026: spellId = 50737; break;
case 51592: spellId = 51593; break;
case 51961: spellId = 51037; break;
}
if (const SpellEntry *pSpell = sSpellStore.LookupEntry(spellId))
{
unitTarget->CastSpell(m_caster, spellId, true);
Creature* creatureTarget = (Creature*)unitTarget;
if (const SpellCastTimesEntry *pCastTime = sSpellCastTimesStore.LookupEntry(pSpell->CastingTimeIndex))
creatureTarget->ForcedDespawn(pCastTime->CastTime + 1);
}
return;
}
Все вроде бы цивильно. Запускаю отладку и вижу, что условия все выполняются нормально. spellId становится равным 46773. потом выполняется unitTarget->CastSpell(m_caster, spellId, true), тоесть передается в castspell все чинно.
46773 имеет эффект Create Item. Ставлю в EffectCreateItem флаг и начинаю отладку. До него не доходит. Тоесть мы на перса кастуем спелл 46773, но его эффект не проходит. Однако, если я кастую с помощью команды .cast 46773 на себя, то предмет создается.
Если мы работаем с 50926 (аналогичный спелл), то до EffectCreateItem доходит и предмет создается. Куда копать? Почему не доходит до EffectCreateItem?
Заметил, что на сервере не совсем корректно работает спелл Planning for the Future: Create Snowfall Glade Pup Cover (http://www.wowhead.com/?spell=46167), предмет не создается, хотя моб умирает. Он имеет dummy эффект. Отлично идем в SpellEffects.cpp и видим код:
case 46167: // Planning for the Future: Create Snowfall Glade Pup Cover
case 50926: // Gluttonous Lurkers: Create Zul'Drak Rat Cover
case 51026: // Create Drakkari Medallion Cover
case 51592: // Pickup Primordial Hatchling
case 51961: // Captured Chicken Cover
{
if (!unitTarget || unitTarget->GetTypeId() != TYPEID_UNIT || m_caster->GetTypeId() != TYPEID_PLAYER)
return;
uint32 spellId = 0;
switch(m_spellInfo->Id)
{
case 46167: spellId = 46773; break;
case 50926: spellId = 50927; break;
case 51026: spellId = 50737; break;
case 51592: spellId = 51593; break;
case 51961: spellId = 51037; break;
}
if (const SpellEntry *pSpell = sSpellStore.LookupEntry(spellId))
{
unitTarget->CastSpell(m_caster, spellId, true);
Creature* creatureTarget = (Creature*)unitTarget;
if (const SpellCastTimesEntry *pCastTime = sSpellCastTimesStore.LookupEntry(pSpell->CastingTimeIndex))
creatureTarget->ForcedDespawn(pCastTime->CastTime + 1);
}
return;
}
Все вроде бы цивильно. Запускаю отладку и вижу, что условия все выполняются нормально. spellId становится равным 46773. потом выполняется unitTarget->CastSpell(m_caster, spellId, true), тоесть передается в castspell все чинно.
46773 имеет эффект Create Item. Ставлю в EffectCreateItem флаг и начинаю отладку. До него не доходит. Тоесть мы на перса кастуем спелл 46773, но его эффект не проходит. Однако, если я кастую с помощью команды .cast 46773 на себя, то предмет создается.
Если мы работаем с 50926 (аналогичный спелл), то до EffectCreateItem доходит и предмет создается. Куда копать? Почему не доходит до EffectCreateItem?