void OnMapTeleport(NetConnection <NetSession> conn, MapTeleportRequest request) { Log.InfoFormat("MapTeleportRequest: TeleportID: {0}", request.teleporterId); TeleporterDefine from = DataManager.Instance.Teleporters[request.teleporterId]; TeleporterDefine destination = DataManager.Instance.Teleporters[from.LinkTo]; if (from == null) { Log.ErrorFormat("TeleportID {0} cannot be found", request.teleporterId); } if (destination == null) { Log.ErrorFormat("TeleportID {0} cannot be found", from.LinkTo); } Log.InfoFormat("character {0} requests teleportation {1}", conn.Session.Character.Info.Name, from.Descript); MapManager.Instance[from.MapID].RemoveCharacter(conn.Session.Character); conn.Session.Character.Position = destination.Position; conn.Session.Character.Direction = destination.Direction; MapManager.Instance[destination.MapID].CharacterEnter(conn, conn.Session.Character); }
void OnMapTeleport(NetConnection <NetSession> sender, MapTeleportRequest request) { Character character = sender.Session.Character; Log.InfoFormat("OnMapTeleport: characterID:{0}:{1} TeleporterId:{2}", character.Id, character.Data, request.teleporterId); if (!DataManager.Instance.Teleporters.ContainsKey(request.teleporterId)) { Log.WarningFormat("Source TeleporterID [{0}] not existed", request.teleporterId); return; } TeleporterDefine source = DataManager.Instance.Teleporters[request.teleporterId]; if (source.LinkTo == 0 || !DataManager.Instance.Teleporters.ContainsKey(source.LinkTo)) { Log.WarningFormat("Source TeleporterID [{0}] LinkTo ID [{1}] not existed", request.teleporterId, source.LinkTo); } TeleporterDefine target = DataManager.Instance.Teleporters[source.LinkTo]; MapManager.Instance[source.MapID].CharacterLeave(character); character.Position = target.Position; character.Direction = target.Direction; MapManager.Instance[target.MapID].CharacterEnter(sender, character); }
private void OnMapTeleport(NetConnection <NetSession> sender, MapTeleportRequest message) { if (!DataManager.Instance.Teleporters.ContainsKey(message.teleporterId)) { Log.WarningFormat("character {0} request teleport {1} not exist", sender.Session.Character.Info.Id, message.teleporterId); return; } TeleporterDefine sourse = DataManager.Instance.Teleporters[message.teleporterId]; if (sourse.LinkTo == 0 || !DataManager.Instance.Teleporters.ContainsKey(sourse.LinkTo)) { Log.WarningFormat("character {0} request teleport linkto {1} not exist", sender.Session.Character.Info.Id, message.teleporterId); return; } TeleporterDefine target = DataManager.Instance.Teleporters[sourse.LinkTo]; MapManager.Instance[sourse.MapID].CharacterLeave(sender.Session.Character); sender.Session.Character.Info.mapId = target.MapID; sender.Session.Character.Position = target.Position; sender.Session.Character.Direction = target.Direction; MapManager.Instance[target.MapID].CharacterEnter(sender, sender.Session.Character); }
private void OnMapTeleportRequest(NetConnection <NetSession> sender, MapTeleportRequest message) { int TeleportId = message.teleporterId; if (!DataManager.Instance.Teleporters.ContainsKey(TeleportId)) { return; } Common.Data.TeleporterDefine from = DataManager.Instance.Teleporters[TeleportId]; if (from.LinkTo == 0 || !DataManager.Instance.Teleporters.ContainsKey(from.LinkTo)) { return; } Common.Data.TeleporterDefine to = DataManager.Instance.Teleporters[from.LinkTo]; Character character = sender.Session.Character; Managers.MapManager.Instance[from.MapID].CharacterLeave(character); character.Position = to.Position; character.Direction = to.Direction; Managers.MapManager.Instance[to.MapID].CharacterEnter(sender, character); EntityManager.Instance.TransEntityMap(from.MapID, to.MapID, character); }
private void OnMapTeleport(NetConnection <NetSession> sender, MapTeleportRequest message) { Character character = sender.Session.Character; Common.Data.TeleporterDefine td = DataManager.Instance.Teleporters[message.teleporterId]; if (td == null) { Log.WarningFormat("OnMapTeleport not exist character name{0}, teleporterId id:{1}", character.Info.Name, message.teleporterId); return; } Common.Data.MapDefine targetMap = DataManager.Instance.Maps[td.LinkTo]; if (targetMap == null) { Log.WarningFormat("OnMapTeleport target map not exist teleporterId:{0}", message.teleporterId); return; } MapManager.Instance[td.MapID].CharacterLeave(character); MapManager.Instance[targetMap.ID].CharacterEnter(sender, character); //Common.Data.TeleporterDefine taget = DataManager.Instance.Teleporters[td.LinkTo]; //if (taget == null) //{ // Log.WarningFormat("OnMapTeleport target not exist teleporterId:{0}", td.LinkTo); // return; //} //MapManager.Instance[td.MapID].CharacterLeave(character); //MapManager.Instance[taget.MapID].CharacterEnter(sender, character); NetMessage res = new NetMessage(); res.Response = new NetMessageResponse(); res.Response.mapTeleportRes = new MapTeleportResponse(); res.Response.mapTeleportRes.teleporterId = message.teleporterId; sender.SendData(res); }