rendered paste bodyIndex: Player.cpp===================================================================--- Player.cpp (revision 5587)+++ Player.cpp (working copy)@@ -1833,14 +1833,12 @@ bool Player::CanInteractWithNPCs(bool alive) const { if(alive && !isAlive()) return false; if(isInFlight()) return false;- if(isInCombat())- return false; return true; } bool Player::IsUnderWater() const {@@ -15140,32 +15138,24 @@ WorldPacket data(SMSG_ACTIVATETAXIREPLY, 4); data << uint32(ERR_TAXIPLAYERSHAPESHIFTED); GetSession()->SendPacket(&data); return false; } - // not let cheating with start flight in time of logout process- if(GetSession()->isLogingOut())+ // not let cheating with start flight in time of logout process || if casting not finished || while in combat+ if(GetSession()->isLogingOut() || IsNonMeleeSpellCasted(false) || isInCombat()) { WorldPacket data(SMSG_ACTIVATETAXIREPLY, 4); data << uint32(ERR_TAXIPLAYERBUSY); GetSession()->SendPacket(&data); return false; } if(HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE)) return false; - // not let flight if casting not finished- if(IsNonMeleeSpellCasted(false))- {- WorldPacket data(SMSG_ACTIVATETAXIREPLY, 4);- data << uint32(ERR_TAXIPLAYERBUSY);- GetSession()->SendPacket(&data);- return false;- } uint32 sourcenode = nodes[0]; // starting node too far away (cheat?) TaxiNodesEntry const* node = sTaxiNodesStore.LookupEntry(sourcenode); if( !node || node->map_id != GetMapId() ||