public int creatRole(int userId, string RoleName, byte sex) { byte[] userid = g.uintToByte(userId); byte[] rolename = Encoding.Unicode.GetBytes(RoleName); byte[] namelength = g.DateLenthToByte((ulong)rolename.Length); byte[] datepak = g.copybyte(g.strToToHexByte("8000006500000001"), userid); datepak = g.copybyte(datepak, g.strToToHexByte("00000000")); datepak = g.copybyte(datepak, namelength); datepak = g.copybyte(datepak, rolename); datepak = g.copybyte(g.DateLenthToByte((ulong)datepak.Length), datepak); datepak = g.copybyte(g.strToToHexByte("8BDD"), datepak); byte[] rd; byte[] newroleid; if (unname.sendDate(datepak)) { rd = unname.ReceiveDate(); newroleid = g.SubByteArray(rd, rd.Length - 8, 4); int fromroleid =(int) g.ByteToInt(g.SubByteArray(rd, rd.Length - 4, 4)); if (fromroleid <= 0) return 0; datepak = g.copybyte(g.strToToHexByte("80000001"), userid); datepak = g.copybyte(datepak, g.uintToByte(fromroleid)); datepak = g.copybyte(datepak, newroleid); datepak = g.copybyte(datepak, g.strToToHexByte("FFFFFFFF")); datepak = g.copybyte(datepak, g.uintToByte(sex)); datepak = g.copybyte(datepak, g.strToToHexByte("020200000000000096")); datepak = g.copybyte(datepak, namelength); datepak = g.copybyte(datepak, rolename); datepak = g.copybyte(datepak, g.strToToHexByte("0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000")); byte[] length = g.DateLenthToByte((ulong)datepak.Length); datepak = g.copybyte( length,datepak); datepak = g.copybyte( g.strToToHexByte("8BBF"),datepak); Debug.WriteLine(g.byteToHexStr(datepak)); if( [COLOR=#ff0000]gamed.sendDate(datepak)[/COLOR]) { rd = gamed.ReceiveDate(); int newid = (int)g.ByteToInt(g.SubByteArray(rd, 12, 4)); Debug.WriteLine(g.byteToHexStr(rd)); if (newid > 0) { return newid; } else { return -1; } } } return -1; }