コード例 #1
0
 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);
 }
コード例 #2
0
 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;
                 }
             }
         }
     }
 }