void WaypointMovementGenerator<Creature>::MoveToNextNode(CreatureTraveller &traveller) { Creature* owner = &(traveller.i_traveller); i_destinationHolder.SetDestination(traveller, node->x, node->y, node->z, false); PathInfo sub_path(owner, node->x, node->y, node->z); PointPath pointPath = sub_path.getFullPath(); float speed = traveller.Speed()*0.001f; // in ms uint32 traveltime = uint32(pointPath.GetTotalLength()/speed); owner->SendMonsterMoveByPath(pointPath, 1, pointPath.size(), traveltime); i_nextMoveTime.Reset(traveltime); }
void WaypointMovementGenerator<Creature>::MoveToNextNode(CreatureTraveller &traveller) { Creature* owner = &(traveller.i_traveller); const WaypointNode &node = i_path->at(i_currentNode); i_destinationHolder.SetDestination(traveller, node.x, node.y, node.z, false); PathInfo sub_path(owner, node.x, node.y, node.z); PointPath myPath = sub_path.getFullPath(); float speed = traveller.Speed()*0.001f; // in ms uint32 traveltime = uint32(myPath.GetTotalLength()/speed); owner->SendMonsterMoveByPath(myPath, 1, myPath.size(), owner->GetSplineFlags(), traveltime); i_nextMoveTime.Reset(traveltime); }