bool ChatHandler::HandleWPDeleteCommand(const char* args, WorldSession *m_session) { uint64 guid = m_session->GetPlayer()->GetSelection(); if (guid == 0) { SystemMessage(m_session, "No selection."); return true; } if(GET_TYPE_FROM_GUID(guid) != HIGHGUID_TYPE_WAYPOINT) { SystemMessage(m_session, "You should select a Waypoint."); return true; } Player* pPlayer = m_session->GetPlayer(); AIInterface* ai = pPlayer->waypointunit; if(!ai || !ai->GetUnit()) { SystemMessage(m_session, "Invalid Creature, please select another one."); return true; } std::stringstream ss; uint32 wpid = GUID_LOPART(guid); if(wpid) { //Refresh client //Hide all bool show = ai->WayPointsShowing(); if(show == true) ai->hideWayPoints(pPlayer); ai->deleteWayPoint(wpid); //Show All again after delete if(show == true) ai->showWayPoints(pPlayer, ai->WayPointsShowingBackwards()); SystemMessage(m_session, "Waypoint %u deleted.", wpid); } else { SystemMessage(m_session, "Invalid Waypoint."); return true; } return true; }