예제 #1
0
파일: Map.cs 프로젝트: DomGrieco/server
 public bool Use(User target)
 {
     Logger.DebugFormat("warp: {0} from {1} ({2},{3}) to {4} ({5}, {6}", target.Name, SourceMap.Name, X, Y,
         DestinationMapName, DestinationX, DestinationY);
     switch (WarpType)
     {
         case WarpType.Map:
             Map map;
             if (SourceMap.World.MapCatalog.TryGetValue(DestinationMapName, out map))
             {
                 Thread.Sleep(250);
                 target.Teleport(map.Id, DestinationX, DestinationY);
             }
             Logger.ErrorFormat("User {0} tried to warp to nonexistent map {1} from {2}: {3},{4}", target.Name,
                 DestinationMapName, SourceMap.Name, X, Y);
             break;
         case WarpType.WorldMap:
             WorldMap wmap;
             if (SourceMap.World.WorldMaps.TryGetValue(DestinationMapName, out wmap))
             {
                 SourceMap.Remove(target);
                 target.SendWorldMap(wmap);
                 SourceMap.World.Maps[Hybrasyl.Constants.LAG_MAP].Insert(target, 5, 5, false);
             }
             Logger.ErrorFormat("User {0} tried to warp to nonexistent worldmap {1} from {2}: {3},{4}",
                 target.Name,
                 DestinationMapName, SourceMap.Name, X, Y);
             break;
     }
     return false;
 }