public static void CreateTriggerCommand(string value, WorldClient client) { List <MapTriggerRecord> maptriggers = MapTriggerRecord.GetMapTriggerByMap(client.Character.Record.MapId); for (int i = 0; i < maptriggers.Count(); i++) { if (maptriggers[i].CellId == client.Character.Record.CellId) { client.Character.Reply("Trigger Allready exist"); return; } } string[] valuesplit = value.Split(' '); string type = valuesplit[0].ToLower(); MapTriggerRecord trigger; if (type == "teleport") { int TargetMap = Int32.Parse(valuesplit[1]); int TargetCell = Int32.Parse(valuesplit[2]); trigger = new MapTriggerRecord(MapTriggerRecord.PopNextId(), client.Character.Record.MapId, client.Character.Record.CellId, (int)MapTriggersEnum.TELEPORT, TargetMap, TargetCell); } else { trigger = new MapTriggerRecord(MapTriggerRecord.PopNextId(), client.Character.Record.MapId, client.Character.Record.CellId, 0, 0, 0); } trigger.AddElement(); client.Character.Reply("Trigger Added"); return; }
public static void HandleMapMovementConfirm(GameMapMovementConfirmMessage message, WorldClient client) { client.Character.Record.CellId = client.Character.MovedCell; List <MapTriggerRecord> triggers = MapTriggerRecord.GetMapTriggerByMap(client.Character.Record.MapId); for (int i = 0; i < triggers.Count(); i++) { if (triggers[i].CellId == client.Character.MovedCell) { if ((MapTriggersEnum)triggers[i].TriggerType == MapTriggersEnum.TELEPORT) { client.Character.Teleport(triggers[i].TargetMapId, (short)triggers[i].TargetCellId); } } } client.Character.MovedCell = 0; }