Сабж собственно.
Все манипуляции по замене спеллсета проводятся корректно. Однако при замене спеллов на отсутствующие в спеллбуке мы имеем следующее (спасибо Selector за репорт):
Код:
2010-12-25 23:10:19 ERROR:World: Player 343512169 casts spell 70946 which he shouldn't have
это обусловлено следующими строками в SpellHandler.cpp
Код:
if (mover->GetTypeId()==TYPEID_PLAYER)
{
// not have spell in spellbook or spell passive and not casted by client
if (!((Player*)mover)->HasActiveSpell (spellId) || IsPassiveSpell(spellInfo))
{
sLog.outError("World: Player %u casts spell %u which he shouldn't have", mover->GetGUIDLow(), spellId);
//cheater? kick? ban?
recvPacket.rpos(recvPacket.wpos()); // prevent spam at ignore packet
return;
}
}
то есть если мы добавляем спеллы не имевшиеся ранее в спеллбуке - то мы не сможем его скастить.
решение (хак! реальную проверку делать пока не стал, не уверен в ее нужности)
https://github.com/rsa/mangos/commit...317cdb5ce84d8f