public override void Write(ByteArray by) { base.Write(by); by.WriteUInt(packet_idx); by.WriteUShort(data_verify); client_uid.Write(by); }
public void Set(ClientUID client_uid, ushort header, ByteArray by) { data.WriteUShort(header); //必须填入id client_uid.Write(data); by.Skip(ClientUID.Size()); //由于by是C2S消息,带ClientUID,所以跳过 by.Read(data, by.Available); }
public void Write(ByteArray by) { by.WriteLong(char_idx); by.WriteUShort(spid); by.WriteString(char_name); by.WriteByte(char_type); by.WriteUShort(ws_id); by.WriteUInt(flags); by.WriteUInt(model_idx); by.WriteByte(job); by.WriteUShort(level); by.WriteUInt(exp); by.WriteUInt(gold); by.WriteUInt(coin); by.WriteUInt(vip_grade); }
public void Write(ByteArray by) { by.WriteLong(char_idx); by.WriteString(char_name); by.WriteByte(char_type); by.WriteUShort(level); }
/// <summary> /// 发包 /// </summary> /// <param name="conn_idx"></param> /// <param name="packet"></param> public void Send(long conn_idx, PacketBase packet) { if (m_sockets.Contains(conn_idx)) { //包索引 uint packet_idx = 0; if (packet is PackBaseC2S) { packet_idx = PacketEncrypt.GetPacketIndex(); (packet as PackBaseC2S).packet_idx = PacketEncrypt.EncrpytPacketIndex(packet_idx, GlobalID.ENCRYPT_KEY); } m_send_by.Clear(); m_send_by.WriteUShort(0);//先写入长度占位 packet.Write(m_send_by); int data_len = m_send_by.Available - NetID.PacketHeadSize; m_send_by.ModifyUShort((ushort)data_len, 0); //数据有效性 if (packet is PackBaseC2S) { //包长2 + 协议头2 + 包索引id4 + 有效性校验2 = 10 ushort data_verify = PacketEncrypt.CalcPacketDataVerify(m_send_by.Buffer, 10, m_send_by.Available - 10, packet_idx, GlobalID.ENCRYPT_KEY); m_send_by.ModifyUShort((ushort)data_verify, 8); } int size = NetConnectManager.Instance.Send(conn_idx, m_send_by); m_send_msg_count++; m_send_msg_size += size; } PacketPools.Recover(packet); }
/// <summary> /// 发包 /// </summary> /// <param name="conn_idx"></param> /// <param name="packet"></param> public void Send(PacketBase packet) { if (m_cur_conn_idx > 0) { //包索引 uint packet_idx = 0; if (packet is PackBaseC2S) { packet_idx = PacketEncrypt.GetPacketIndex(); (packet as PackBaseC2S).packet_idx = PacketEncrypt.EncrpytPacketIndex(packet_idx, GlobalID.ENCRYPT_KEY); } //数据写入stream m_send_by.Clear(); m_send_by.WriteUShort(0); //先写入长度占位 packet.Write(m_send_by); int data_len = m_send_by.Available - NetID.PacketHeadSize; //总长度 m_send_by.ModifyUShort((ushort)data_len, 0); //数据有效性 if (packet is PackBaseC2S) { //包长2 + 协议头2 + 包索引id4 + 有效性校验2 = 10 ushort data_verify = PacketEncrypt.CalcPacketDataVerify(m_send_by.Buffer, 10, m_send_by.Available - 10, packet_idx, GlobalID.ENCRYPT_KEY); m_send_by.ModifyUShort((ushort)data_verify, 8); } NetConnectManager.Instance.Send(m_cur_conn_idx, m_send_by); } PacketPools.Recover(packet); }
public void Write(ByteArray by) { int start_pos = by.Tail; by.WriteLong(char_idx); by.WriteUShort(spid); by.WriteString(char_name); by.WriteByte(char_type); by.WriteUShort(ws_id); by.WriteByte((byte)flags); by.WriteUInt(model_idx); by.WriteByte(job); by.WriteUShort(level); by.WriteUInt(exp); by.WriteUInt(gold); by.WriteUInt(coin); by.WriteUInt(vip_grade); by.WriteEmpty(200 - (by.Tail - start_pos)); }
public void Write(ByteArray by) { ushort count = (ushort)recv_mails.Count; by.WriteUShort(count); for (int i = 0; i < count; ++i) { by.WriteLong(recv_mails[i]); } }
public int Send(long conn_idx, PacketBase packet) { m_send_by.Clear(); m_send_by.WriteUShort(0);//先写入长度占位 packet.Write(m_send_by); int len = NetConnectManager.Instance.Send(conn_idx, m_send_by); PacketPools.Recover(packet); return(len); }
public void Write(ByteArray by) { by.WriteLong(item_idx); by.WriteLong(char_idx); by.WriteUInt((uint)type); by.WriteUShort((ushort)type); by.WriteUInt(ui_pos); by.WriteUInt(number); by.WriteLong(create_time); bin_content.Write(by); }
public void Write(ByteArray by) { ushort count = (ushort)mods.Count; by.WriteUShort(count); for (int i = 0; i < count; ++i) { ModInfo obj = mods[i]; obj.Write(by); } }
public void Write(ByteArray by) { by.WriteString(subject); by.WriteString(content); ushort count = (ushort)items.Count; by.WriteUShort(count); for (int i = 0; i < count; ++i) { ItemID obj = items[i]; obj.Write(by); } }
public int Send(long conn_idx, PacketBase packet) { int size = 0; if (m_net_socket != null) { m_send_by.Clear(); m_send_by.WriteUShort(0);//先写入长度占位 packet.Write(m_send_by); size = m_net_socket.Send(conn_idx, m_send_by); } PacketPools.Recover(packet); return(size); }
public void Write(ByteArray by) { by.WriteUShort((ushort)type); switch (type) { case eUnitModType.UMT_char_name: by.WriteString(value_str); break; default: by.WriteLong(value_i); break; } }
public void Write(ByteArray by) { by.WriteLong(mail_idx); by.WriteByte((byte)mail_type); by.WriteUShort(spid); by.WriteLong(receiver_idx); by.WriteLong(sender_idx); by.WriteString(sender_name); by.WriteLong(send_time); by.WriteInt(expire_time); by.WriteInt(delivery_time); by.WriteUInt(flags); by.WriteString(subject); bin_mail_content.Write(by); }
public void Write(ByteArray by) { by.WriteLong(char_idx); by.WriteString(char_name); by.WriteByte(char_type); by.WriteUInt(flags); by.WriteUInt(model_idx); by.WriteByte(job); by.WriteUShort(level); by.WriteUInt(exp); by.WriteUInt(energy); by.WriteUInt(gold); by.WriteUInt(coin); by.WriteUInt(hp); by.WriteUInt(hp_max); by.WriteUInt(hurt); by.WriteUInt(range); by.WriteUInt(run_speed); by.WriteUInt(vip_grade); by.WriteUInt(vip_flags); }
public void Write(ByteArray by) { by.WriteUShort((ushort)type); by.WriteUInt(obj_type); by.WriteLong(obj_idx); }
public void Write(ByteArray by) { by.WriteUShort((ushort)type); by.WriteUShort(count); by.WriteLong(cd_time); }
public virtual void Write(ByteArray by) { by.WriteUShort(header); }
public void Write(ByteArray by) { by.WriteUShort(srv_uid); by.WriteLong(conn_idx); }
public void Write(ByteArray by) { by.WriteUInt(ip); by.WriteUShort(port); }
public static ByteArray AllocSendPacket() { tmpSendBy.Clear(); tmpSendBy.WriteUShort(0);//协议头,包长度 return(tmpSendBy); }