Пример #1
0
        public void ThrowNewObject(int stdId, string desc, string ext, Vector3 location)
        {
            int           svrId = ItemStorage.NewItem(stdId, desc, ext);
            ThrownOutItem t     = new ThrownOutItem(svrId, location);

            Items.Add(t);
            SendAddMessage(t);
        }
Пример #2
0
 public void ThrowFromPlayer(int serverId, Vector3 location, Player player)
 {
     if (player.DeleteItem(serverId))
     {
         for (int i = 0; i < Items.Count; i++)
         {
             if (Items[i].ItemServerId == serverId)
             {
                 Logger.WriteLine(LogLevel.Info, "玩家{0}尝试扔出已经扔出的物品ID={1}", player.Name, serverId);
                 return;
             }
         }
         ThrownOutItem t = new ThrownOutItem(serverId, location);
         Items.Add(t);
         SendAddMessage(t);
         Logger.WriteLine(LogLevel.Info, "玩家{0}在位置{1}扔出了物品ID={2}", player.Name, location, serverId);
     }
 }
Пример #3
0
        public void SendAddMessage(ThrownOutItem item)
        {
            List <string> adData   = new List <string>();
            Item          itemDesc = ItemStorage.GetItemDesc(item.ItemServerId);

            adData.Add("addThrownItem");
            adData.Add(itemDesc.ItemStaticId.ToString());
            adData.Add(itemDesc.ServerId.ToString());
            adData.Add(ForgetiveServer.Base64Encode(itemDesc.DescribeMessage));
            adData.Add(ForgetiveServer.Base64Encode(itemDesc.ExtraInfo));
            adData.Add(item.Location.ToXYZ());
            for (int i = 0; i < Map.players.Count; i++)
            {
                try
                {
                    Map.players[i].SendDataPackage(adData);
                }
                catch { }
            }
        }