コード例 #1
0
 private static void transfer(
     Player player, PortalTemplate portalTemplate, WorldMapInstance instance, boolean reenter) {
   ExitPoint exitPoint = TeleportService.getExitPointByRace(portalTemplate, player.getRace());
   player.setInstanceStartPos(exitPoint.getX(), exitPoint.getY(), exitPoint.getZ());
   InstanceService.registerPlayerWithInstance(instance, player);
   TeleportService.teleportTo(
       player,
       exitPoint.getMapId(),
       instance.getInstanceId(),
       exitPoint.getX(),
       exitPoint.getY(),
       exitPoint.getZ(),
       3000,
       true);
   int instanceCooldownRate = InstanceService.getInstanceRate(player, exitPoint.getMapId());
   int useDelay = 0;
   int instanceCoolTime =
       DataManager.INSTANCE_COOLTIME_DATA.getInstanceEntranceCooltime(instance.getMapId());
   if (instanceCooldownRate > 0) {
     useDelay = instanceCoolTime * 60 * 1000 / instanceCooldownRate;
   }
   if (useDelay > 0 && !reenter) {
     player.getPortalCooldownList().addPortalCooldown(exitPoint.getMapId(), useDelay);
   }
 }
コード例 #2
0
 private static void port(Player requester, PortalTemplate portalTemplate, boolean reenter) {
   WorldMapInstance instance = null;
   int worldId =
       TeleportService.getExitPointByRace(portalTemplate, requester.getRace()).getMapId();
   if (portalTemplate.isInstance()) {
     instance = InstanceService.getNextAvailableInstance(worldId);
     InstanceService.registerPlayerWithInstance(instance, requester);
     transfer(requester, portalTemplate, instance, reenter);
   } else {
     /*WorldMap worldMap = World.getInstance().getWorldMap(worldId);
     if (worldMap == null) {
     	log.warn("There is no registered map with id " + worldId);
     	return;
     }
     instance = worldMap.getWorldMapInstance();*/
     easyTransfer(requester, portalTemplate, reenter);
   }
 }