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); }
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); } }
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 { } } }