Advertisement
KidaCoding

Untitled

Dec 16th, 2024
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 6.21 KB | Source Code | 0 0
  1. case "drop":
  2.                                 {
  3.                                     if (data.Length > 1)
  4.                                     {
  5.                                         int itemCount;
  6.                                         if (int.TryParse(data[1], out itemCount) && itemCount >= 0 && itemCount <= ushort.MaxValue)
  7.                                         {
  8.                                             int delayInSeconds = 10;
  9.                                             if (data.Length > 2)
  10.                                             {
  11.                                                 int delay;
  12.                                                 if (int.TryParse(data[2], out delay))
  13.                                                 {
  14.                                                     delayInSeconds = delay;
  15.                                                 }
  16.                                             }
  17.  
  18.                                             string itemName = data.Length > 3 ? data[3].ToLower() : "db";
  19.                                             uint itemID = 0;
  20.                                             bool specialItem = false;
  21.  
  22.                                             var itemDict = new Dictionary<string, uint>
  23.             {
  24.                 { "chi", 729476 },
  25.                 { "cp", 729911 },
  26.                 { "db", 1088000 },
  27.                 { "met", 1088001 },
  28.                 { "stone1", 730001 },
  29.                 { "stone2", 730002 },
  30.                 { "stone3", 730003 },
  31.                 { "stone4", 730004 },
  32.                 { "stone5", 730005 },
  33.                 { "stone6", 730006 },
  34.                 { "stone7", 730007 },
  35.                 { "stone8", 730008 },
  36.                 { "soul", 800110 }
  37.             };
  38.  
  39.                                             foreach (var item in itemDict)
  40.                                             {
  41.                                                 if (itemName.Contains(item.Key))
  42.                                                 {
  43.                                                     itemID = item.Value;
  44.                                                     specialItem = true;
  45.                                                     break;
  46.                                                 }
  47.                                             }
  48.  
  49.                                             uint amount = 0;
  50.                                             if (data.Length > 4)
  51.                                             {
  52.                                                 uint parsedAmount;
  53.                                                 if (uint.TryParse(data[4], out parsedAmount))
  54.                                                 {
  55.                                                     amount = parsedAmount;
  56.                                                 }
  57.                                             }
  58.  
  59.                                             if (specialItem || itemID > 0)
  60.                                             {
  61.                                                 using (var rec = new ServerSockets.RecycledPacket())
  62.                                                 {
  63.                                                     var stream = rec.GetStream();
  64.                                                     for (int i = 0; i < itemCount; i++)
  65.                                                     {
  66.                                                         MsgGameItem item = new MsgGameItem
  67.                                                         {
  68.                                                             ITEM_ID = itemID,
  69.                                                             Durability = Database.Server.ItemsBase[itemID].Durability,
  70.                                                             MaximDurability = Database.Server.ItemsBase[itemID].Durability,
  71.                                                             Color = Role.Flags.Color.Red
  72.                                                         };
  73.  
  74.                                                         ushort dropX = (ushort)Program.GetRandom.Next(client.Player.X - 20, client.Player.X + 21);
  75.                                                         ushort dropY = (ushort)Program.GetRandom.Next(client.Player.Y - 20, client.Player.Y + 21);
  76.  
  77.                                                         if (client.Map.AddGroundItem(ref dropX, ref dropY))
  78.                                                         {
  79.                                                             MsgFloorItem.MsgItem.ItemType itemType = itemName.Contains("cp")
  80.                                                                 ? MsgFloorItem.MsgItem.ItemType.Cps
  81.                                                                 : MsgFloorItem.MsgItem.ItemType.Item;
  82.  
  83.                                                             MsgFloorItem.MsgItem dropItem = new MsgFloorItem.MsgItem(item, dropX, dropY, itemType, amount, client.Player.DynamicID, client.Player.Map, client.Player.UID, false, client.Map, delayInSeconds);
  84.  
  85.                                                             if (client.Map.EnqueueItem(dropItem))
  86.                                                             {
  87.                                                                 dropItem.SendAll(stream, MsgFloorItem.MsgDropID.Visible);
  88.                                                             }
  89.                                                         }
  90.                                                     }
  91.                                                 }
  92.                                             }
  93.                                             else
  94.                                             {
  95.                                                 client.SendSysMesage("Item type not recognized. Please use 'db', 'met','chi', 'stone', or 'soul'.");
  96.                                             }
  97.                                         }
  98.                                         else
  99.                                         {
  100.                                             client.SendSysMesage("Please enter a valid number of items.");
  101.                                         }
  102.                                     }
  103.                                     break;
  104.                                 }
Tags: MS
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement