void OnAddBombReceived(EventData eventData) { byte[] bytes = (byte[])DictTool.GetValue <byte, object>(eventData.Parameters, 1); ProtoData.AddBombS2CEvt addBombS2CEvt = BinSerializer.DeSerialize <ProtoData.AddBombS2CEvt>(bytes); BombData bombData = new BombData(); bombData.username = addBombS2CEvt.username; bombData.type = (BombType)addBombS2CEvt.bombType; bombData.id = addBombS2CEvt.bombId; bombData.startPos = new Vector3(addBombS2CEvt.startX, addBombS2CEvt.startY, addBombS2CEvt.startZ); bombData.endPos = new Vector3(addBombS2CEvt.endX, addBombS2CEvt.endY, addBombS2CEvt.endZ); BattleMgr.Instance.bombMgr.AddBomb(bombData); }
//获取客户端位置请求的处理的代码 public void OnAddBombReceived(Client peer, OperationRequest operationRequest, SendParameters sendParameters) { //接收位置并保持起来 byte[] bytes = (byte[])DictTool.GetValue <byte, object>(operationRequest.Parameters, 1); ProtoData.AddBombC2S addBombC2S = BinSerializer.DeSerialize <ProtoData.AddBombC2S>(bytes); ProtoData.AddBombS2CEvt addBombS2CEvt = new ProtoData.AddBombS2CEvt(); addBombS2CEvt.username = peer.playerData.username; addBombS2CEvt.bombType = addBombC2S.bombType; addBombS2CEvt.bombId = BombMgr.Instance.GetBombId(); addBombS2CEvt.startX = addBombC2S.startX; addBombS2CEvt.startY = addBombC2S.startY; addBombS2CEvt.startZ = addBombC2S.startZ; addBombS2CEvt.endX = addBombC2S.endX; addBombS2CEvt.endY = addBombC2S.endY; addBombS2CEvt.endZ = addBombC2S.endZ; byte[] bytes2 = BinSerializer.Serialize(addBombS2CEvt); foreach (Client tempPeer in ClientMgr.Instance.BattlePeerList) { if (!string.IsNullOrEmpty(tempPeer.playerData.username)) { EventData ed = new EventData((byte)MessageCode.AddBomb); Dictionary <byte, object> data = new Dictionary <byte, object>(); data.Add(1, bytes2); // 把新进来的用户名传递给其它客户端 ed.Parameters = data; tempPeer.SendEvent(ed, sendParameters); // 发送事件 } } BombData bombData = new BombData(); bombData.username = peer.playerData.username; bombData.nickName = peer.playerData.nickname; bombData.bombId = addBombS2CEvt.bombId; bombData.damageRange = addBombC2S.damageRange; bombData.durationTime = addBombC2S.durationTime; bombData.endX = addBombS2CEvt.endX; bombData.endY = addBombS2CEvt.endY; bombData.endZ = addBombS2CEvt.endZ; ServerMgr.Instance.bombUpdate.AddBomb(bombData); }