private void AppendInfoPair(BulletInfoPair pair) { _stringBuilder.Append("Seq : "); _stringBuilder.Append(pair.Seq); _stringBuilder.AppendLine(); _stringBuilder.Append("Server :"); if (null != pair.Server) { _stringBuilder.AppendLine(pair.Server.ToString()); } else { _stringBuilder.AppendLine("No Server Data"); } _stringBuilder.Append("Client :"); if (null != pair.Client) { _stringBuilder.AppendLine(pair.Client.ToString()); } else { _stringBuilder.AppendLine("No Client Data"); } _stringBuilder.AppendLine(); }
public void AddClientBulletData(int seq, Vector3 startPoint, Vector3 emitPoint, Vector3 startDir, Vector3 hitPoint, int hitType, INetworkChannel networkChannel) { if (!_infos.ContainsKey(seq)) { _infos[seq] = new BulletInfoPair { Seq = seq, }; } var pair = _infos[seq]; pair.Client = new BulletInfo { CmdSeq = seq, StartPoint = startPoint, EmitPoint = emitPoint, StartDir = startDir, HitPoint = hitPoint, HitType = (EHitType)hitType, }; SendMismatch(seq, _infos[seq], networkChannel); }
private void SendMismatch(int cmdSeq, BulletInfoPair pair, INetworkChannel networkChannel) { if (!pair.Matched.HasValue) { if (null != pair.Client && null != pair.Server) { pair.Matched = pair.Client.IsMatched(pair.Server); if (!pair.Matched.Value) { var msg = FireInfoAckMessage.Allocate(); msg.Seq = cmdSeq; networkChannel.SendReliable((int)EServer2ClientMessage.FireInfoAck, msg); msg.ReleaseReference(); } } } }