rendered paste bodyIndex: src/game/NPCHandler.cpp
===================================================================
--- src/game/NPCHandler.cpp (revision 5237)
+++ src/game/NPCHandler.cpp (working copy)
@@ -414,7 +414,7 @@
_player->m_homebindX = _player->GetPositionX();
_player->m_homebindY = _player->GetPositionY();
_player->m_homebindZ = _player->GetPositionZ();
-
+/*
// if a player lost/dropped hist hearthstone, he will get a new one
if ( !_player->HasItemCount(hearthstone_itemid, 1) && _player->GetBankItemCount(hearthstone_itemid) <1)
{
@@ -429,33 +429,12 @@
{
_player->SendEquipError( msg, NULL, NULL );
}
- }
+ }*/
// send spell for bind 3286 bind magic
- WorldPacket data(SMSG_SPELL_START, (8+8+4+2+4+2+8) );
- data.append(npc->GetPackGUID());
- data.append(npc->GetPackGUID());
- data << bindspell; // spell id
- data << uint8(0); // unk 2.3.0
- data << uint16(0); // cast flags
- data << uint32(0); // time
- data << uint16(0x0002); // target mask
- data.append(_player->GetPackGUID()); // target's packed guid
- SendPacket( &data );
+ npc->CastSpell(_player, bindspell, true);
- data.Initialize(SMSG_SPELL_GO, (8+8+4+2+1+8+1+2+8));
- data.append(npc->GetPackGUID());
- data.append(npc->GetPackGUID());
- data << bindspell; // spell id
- data << uint16(0x0100); // cast flags
- data << uint8(0x01); // targets count
- data << _player->GetGUID(); // target's full guid
- data << uint8(0x00); // ?
- data << uint16(0x0002); // target mask
- data.append(_player->GetPackGUID()); // target's packed guid
- SendPacket( &data );
-
- data.Initialize( SMSG_TRAINER_BUY_SUCCEEDED, (8+4));
+ WorldPacket data( SMSG_TRAINER_BUY_SUCCEEDED, (8+4));
data << npc->GetGUID();
data << bindspell;
SendPacket( &data );
Index: src/game/SkillHandler.cpp
===================================================================
--- src/game/SkillHandler.cpp (revision 5237)
+++ src/game/SkillHandler.cpp (working copy)
@@ -162,20 +162,8 @@
return;
}
- // send spell 14867
- WorldPacket data(SMSG_SPELL_START, (2+2+2+4+2+8+8));
- data.append(_player->GetPackGUID());
- data.append(unit->GetPackGUID());
- data << uint16(14867) << uint8(0);
- data << uint16(0x00) << uint16(0x0F) << uint32(0x00)<< uint16(0x00);
- SendPacket( &data );
+ unit->CastSpell(_player, 14867, true); //spell: "Untalent Visual Effect"
- data.Initialize(SMSG_SPELL_GO, (2+2+1+1+1+8+4+2+2+8+8));
- data.append(_player->GetPackGUID());
- data.append(unit->GetPackGUID());
- data << uint16(14867) << uint16(0x00) << uint8(0x0D) << uint8(0x01)<< uint8(0x01) << _player->GetGUID();
- data << uint32(0x00) << uint16(0x0200) << uint16(0x00);
- SendPacket( &data );
}
void WorldSession::HandleUnlearnSkillOpcode(WorldPacket & recv_data)
Index: src/game/SpellEffects.cpp
===================================================================
--- src/game/SpellEffects.cpp (revision 5237)
+++ src/game/SpellEffects.cpp (working copy)
@@ -1861,10 +1861,10 @@
void Spell::DoCreateItem(uint32 i, uint32 itemtype)
{
- if (m_caster->GetTypeId() != TYPEID_PLAYER)
+ if (!unitTarget || unitTarget->GetTypeId() != TYPEID_PLAYER)
return;
- Player* player = (Player*)m_caster;
+ Player* player = (Player*)unitTarget;
uint32 newitemid = itemtype;
ItemPrototype const *pProto = objmgr.GetItemPrototype( newitemid );