public CRegion(CrPlayer cRPlayer, string n, string action) { Name = n; this.Action = action; PosX = Math.Min(cRPlayer.Pos1.X, cRPlayer.Pos2.X); PosY = Math.Min(cRPlayer.Pos1.Y, cRPlayer.Pos2.Y); Width = Math.Abs(cRPlayer.Pos1.X - cRPlayer.Pos2.X); Height = Math.Abs(cRPlayer.Pos1.Y - cRPlayer.Pos2.Y); CrDatabase.AddRegion(PosX, PosY, Height, Width, n, action); }
public static void OnGetData(GetDataEventArgs args) { if (!args.Handled && !args.Handled && args.MsgID == PacketTypes.Tile) { using (BinaryReader binaryReader = new BinaryReader(new MemoryStream(args.Msg.readBuffer, args.Index, args.Length))) { TSPlayer tSPlayer = TShock.Players[args.Msg.whoAmI]; byte type = binaryReader.ReadByte(); short x = binaryReader.ReadInt16(); short y = binaryReader.ReadInt16(); if ((type == 0 || type == 1) && tSPlayer.HasPermission("server.admin")) { if (Players[tSPlayer.Index].Set[0]) { Players[tSPlayer.Index].Pos1.X = x; Players[tSPlayer.Index].Pos1.Y = y; Players[tSPlayer.Index].Set[0] = false; Players[tSPlayer.Index].Set[1] = true; tSPlayer.SendMessage($"[c/595959:»] Ustawiono punkt pierwszy. ({x}, {y})", Color.Gray); tSPlayer.SendMessage("[c/595959:»] Teraz ustaw drugi punkt w prawym dolnym rogu.", Color.Gray); tSPlayer.SendTileSquare(x, y); args.Handled = true; } else if (Players[tSPlayer.Index].Set[1]) { Players[tSPlayer.Index].Pos2.X = x; Players[tSPlayer.Index].Pos2.Y = y; Players[tSPlayer.Index].Set[1] = false; tSPlayer.SendMessage($"[c/595959:»] Ustawiono punkt drugi. ({x}, {y})", Color.Gray); tSPlayer.SendTileSquare(x, y); args.Handled = true; } else if (Players[tSPlayer.Index].Destroy) { CRegion region = CRegion.GetRegion(x, y); if (region == null) { tSPlayer.SendErrorMessage("[c/595959:»] Nie znaleziono regionu."); } else { CRegions.Remove(region); CrDatabase.DestroyRegion(region.Name); tSPlayer.SendMessage("[c/595959:»] Pomyslnie usunieto region [c/66ff66:" + region.Name + "].", Color.Gray); } Players[tSPlayer.Index].Destroy = false; tSPlayer.SendTileSquare(x, y); args.Handled = true; } else if (Players[tSPlayer.Index].Modify) { CRegion region = CRegion.GetRegion(x, y); if (region == null) { tSPlayer.SendErrorMessage("[c/595959:»] Nie znaleziono regionu."); } else { CRegions.Find((CRegion c) => c == region).Action = Players[tSPlayer.Index].Cmd; CrDatabase.ModifyRegion(region.Name, Players[tSPlayer.Index].Cmd); tSPlayer.SendMessage("[c/595959:»] Pomyslnie zmodyfikowano region [c/66ff66:" + region.Name + "].", Color.Gray); } Players[tSPlayer.Index].Modify = false; tSPlayer.SendTileSquare(x, y); args.Handled = true; } } } } }