public byte IsPutOn; //是否穿戴 public byte[] ToArray() { MMO_MemoryStream ms = GameEntry.Socket.SocketSendMS; ms.SetLength(0); ms.WriteUShort(ProtoCode); ms.WriteInt(EnchantLevel); ms.WriteByte(BaseAttr1Type); ms.WriteInt(BaseAttr1Value); ms.WriteByte(BaseAttr2Type); ms.WriteInt(BaseAttr2Value); ms.WriteInt(HP); ms.WriteInt(MP); ms.WriteInt(Attack); ms.WriteInt(Defense); ms.WriteInt(Hit); ms.WriteInt(Dodge); ms.WriteInt(Cri); ms.WriteInt(Res); ms.WriteByte(IsPutOn); return(ms.ToArray()); }
public int LastInWorldMapId; //最后进入的世界地图编号 public byte[] ToArray() { using (MMO_MemoryStream ms = new MMO_MemoryStream()) { ms.WriteUShort(ProtoCode); ms.WriteBool(IsSucess); if (IsSucess) { ms.WriteInt(RoldId); ms.WriteUTF8String(RoleNickName); ms.WriteByte(JobId); ms.WriteInt(Level); ms.WriteInt(Money); ms.WriteInt(Gold); ms.WriteInt(Exp); ms.WriteInt(MaxHP); ms.WriteInt(MaxMP); ms.WriteInt(CurrHP); ms.WriteInt(CurrMP); ms.WriteInt(Attack); ms.WriteInt(Defense); ms.WriteInt(Hit); ms.WriteInt(Dodge); ms.WriteInt(Cri); ms.WriteInt(Res); ms.WriteInt(Fighting); ms.WriteInt(LastInWorldMapId); } else { ms.WriteShort(MessageId); } return(ms.ToArray()); } }
public int Equip_RingTableId; //穿戴戒指 public byte[] ToArray() { MMO_MemoryStream ms = GameEntry.Socket.SocketSendMS; ms.SetLength(0); ms.WriteUShort(ProtoCode); ms.WriteBool(IsSuccess); if (IsSuccess) { ms.WriteInt(RoldId); ms.WriteUTF8String(RoleNickName); ms.WriteByte(JobId); ms.WriteInt(Level); ms.WriteInt(TotalRechargeMoney); ms.WriteInt(Money); ms.WriteInt(Gold); ms.WriteInt(Exp); ms.WriteInt(MaxHP); ms.WriteInt(MaxMP); ms.WriteInt(CurrHP); ms.WriteInt(CurrMP); ms.WriteInt(Attack); ms.WriteInt(Defense); ms.WriteInt(Hit); ms.WriteInt(Dodge); ms.WriteInt(Cri); ms.WriteInt(Res); ms.WriteInt(Fighting); ms.WriteInt(LastInWorldMapId); ms.WriteUTF8String(LastInWorldMapPos); ms.WriteInt(Equip_Weapon); ms.WriteInt(Equip_Pants); ms.WriteInt(Equip_Clothes); ms.WriteInt(Equip_Belt); ms.WriteInt(Equip_Cuff); ms.WriteInt(Equip_Necklace); ms.WriteInt(Equip_Shoe); ms.WriteInt(Equip_Ring); ms.WriteInt(Equip_WeaponTableId); ms.WriteInt(Equip_PantsTableId); ms.WriteInt(Equip_ClothesTableId); ms.WriteInt(Equip_BeltTableId); ms.WriteInt(Equip_CuffTableId); ms.WriteInt(Equip_NecklaceTableId); ms.WriteInt(Equip_ShoeTableId); ms.WriteInt(Equip_RingTableId); } else { ms.WriteInt(MsgCode); } return(ms.ToArray()); }
public static void AssetBundleCopyToStreamingAsstes() { string toPath = Application.streamingAssetsPath + "/AssetBundles/"; if (Directory.Exists(toPath)) { Directory.Delete(toPath, true); } Directory.CreateDirectory(toPath); IOUtil.CopyDirectory(Application.persistentDataPath, toPath); //重新生成版本文件 //1.先读取persistentDataPath里边的版本文件 这个版本文件里 存放了所有的资源包信息 byte[] buffer = IOUtil.GetFileBuffer(Application.persistentDataPath + "/VersionFile.bytes"); string version = ""; Dictionary <string, AssetBundleInfoEntity> dic = ResourceManager.GetAssetBundleVersionList(buffer, ref version); Dictionary <string, AssetBundleInfoEntity> newDic = new Dictionary <string, AssetBundleInfoEntity>(); DirectoryInfo directory = new DirectoryInfo(toPath); //拿到文件夹下所有文件 FileInfo[] arrFiles = directory.GetFiles("*", SearchOption.AllDirectories); for (int i = 0; i < arrFiles.Length; i++) { FileInfo file = arrFiles[i]; string fullName = file.FullName.Replace("\\", "/"); //全名 包含路径扩展名 string name = fullName.Replace(toPath, "").Replace(".assetbundle", "").Replace(".unity3d", ""); if (name.Equals("AssetInfo.json", StringComparison.CurrentCultureIgnoreCase) || name.Equals("Windows", StringComparison.CurrentCultureIgnoreCase) || name.Equals("Windows.manifest", StringComparison.CurrentCultureIgnoreCase) || name.Equals("Android", StringComparison.CurrentCultureIgnoreCase) || name.Equals("Android.manifest", StringComparison.CurrentCultureIgnoreCase) || name.Equals("iOS", StringComparison.CurrentCultureIgnoreCase) || name.Equals("iOS.manifest", StringComparison.CurrentCultureIgnoreCase) ) { File.Delete(file.FullName); continue; } AssetBundleInfoEntity entity = null; dic.TryGetValue(name, out entity); if (entity != null) { newDic[name] = entity; } } StringBuilder sbContent = new StringBuilder(); sbContent.AppendLine(version); foreach (var item in newDic) { AssetBundleInfoEntity entity = item.Value; string strLine = string.Format("{0}|{1}|{2}|{3}|{4}", entity.AssetBundleName, entity.MD5, entity.Size, entity.IsFirstData ? 1 : 0, entity.IsEncrypt ? 1 : 0); sbContent.AppendLine(strLine); } IOUtil.CreateTextFile(toPath + "VersionFile.txt", sbContent.ToString()); //======================= MMO_MemoryStream ms = new MMO_MemoryStream(); string str = sbContent.ToString().Trim(); string[] arr = str.Split('\n'); int len = arr.Length; ms.WriteInt(len); for (int i = 0; i < len; i++) { if (i == 0) { ms.WriteUTF8String(arr[i]); } else { string[] arrInner = arr[i].Split('|'); ms.WriteUTF8String(arrInner[0]); ms.WriteUTF8String(arrInner[1]); ms.WriteInt(int.Parse(arrInner[2])); ms.WriteByte(byte.Parse(arrInner[3])); ms.WriteByte(byte.Parse(arrInner[4])); } } string filePath = toPath + "/VersionFile.bytes"; //版本文件路径 buffer = ms.ToArray(); buffer = ZlibHelper.CompressBytes(buffer); FileStream fs = new FileStream(filePath, FileMode.Create); fs.Write(buffer, 0, buffer.Length); fs.Close(); AssetDatabase.Refresh(); Debug.Log("初始资源拷贝到StreamingAsstes完毕"); }
public int MagicDefense; //魔法防御力 public byte[] ToArray(bool isChild = false) { MMO_MemoryStream ms = null; if (!isChild) { ms = GameEntry.Socket.SocketSendMS; ms.SetLength(0); ms.WriteUShort(ProtoCode); } else { ms = GameEntry.Pool.DequeueClassObject <MMO_MemoryStream>(); ms.SetLength(0); } ms.WriteBool(IsSuccess); if (IsSuccess) { ms.WriteInt(RoldId); ms.WriteUTF8String(RoleNickName); ms.WriteByte(JobId); ms.WriteInt(Level); ms.WriteInt(TotalRechargeMoney); ms.WriteInt(Money); ms.WriteInt(Gold); ms.WriteInt(Exp); ms.WriteInt(MaxHP); ms.WriteInt(MaxMP); ms.WriteInt(CurrHP); ms.WriteInt(CurrMP); ms.WriteInt(ToSpeed); ms.WriteInt(WeaponDamageMin); ms.WriteInt(WeaponDamageMax); ms.WriteInt(AttackNumber); ms.WriteInt(StrikePower); ms.WriteInt(PiercingPower); ms.WriteInt(MagicPower); ms.WriteInt(LastInWorldMapId); ms.WriteUTF8String(LastInWorldMapPos); ms.WriteInt(Equip_Weapon); ms.WriteInt(Equip_Pants); ms.WriteInt(Equip_Clothes); ms.WriteInt(Equip_Belt); ms.WriteInt(Equip_Cuff); ms.WriteInt(Equip_Necklace); ms.WriteInt(Equip_Shoe); ms.WriteInt(Equip_Ring); ms.WriteInt(Equip_WeaponTableId); ms.WriteInt(Equip_PantsTableId); ms.WriteInt(Equip_ClothesTableId); ms.WriteInt(Equip_BeltTableId); ms.WriteInt(Equip_CuffTableId); ms.WriteInt(Equip_NecklaceTableId); ms.WriteInt(Equip_ShoeTableId); ms.WriteInt(Equip_RingTableId); ms.WriteInt(ChoppingDefense); ms.WriteInt(PuncturDefense); ms.WriteInt(MagicDefense); } else { ms.WriteInt(MsgCode); } byte[] retBuffer = ms.ToArray(); if (isChild) { GameEntry.Pool.EnqueueClassObject(ms); } return(retBuffer); }
public byte IsPutOn; //是否穿戴 public byte[] ToArray() { using (MMO_MemoryStream ms = new MMO_MemoryStream()) { ms.WriteUShort(ProtoCode); ms.WriteInt(EnchantLevel); ms.WriteByte(BaseAttr1Type); ms.WriteInt(BaseAttr1Value); ms.WriteByte(BaseAttr2Type); ms.WriteInt(BaseAttr2Value); ms.WriteInt(HP); ms.WriteInt(MP); ms.WriteInt(Attack); ms.WriteInt(Defense); ms.WriteInt(Hit); ms.WriteInt(Dodge); ms.WriteInt(Cri); ms.WriteInt(Res); ms.WriteByte(IsPutOn); return(ms.ToArray()); } }
/// <summary> /// 创建数据 /// </summary> /// <param name="path"></param> /// <param name="table"></param> private void CreateData(string path, DataTable table) { //文件路径 string filePath = path.Substring(0, path.LastIndexOf("\\") + 1); //文件完整名字 string fileFullName = path.Substring(path.LastIndexOf("\\") + 1); //文件名 string fileName = fileFullName.Substring(0, fileFullName.LastIndexOf(".")); int row = table.Rows.Count; int columns = table.Columns.Count; byte[] buffer = null; //头三行用来做脚本创建 string[,] titleStr = null; using (MMO_MemoryStream ms = new MMO_MemoryStream()) { //写入行 列数 ms.WriteInt(row); ms.WriteInt(columns); titleStr = new string[columns, 3]; for (int i = 0; i < row; i++) { for (int j = 0; j < columns; j++) { //头三行 用来脚本信息 if (i < 3) { titleStr[j, i] = table.Rows[i][j].ToString().Trim(); } ms.WriteUTF8String(table.Rows[i][j].ToString().Trim()); } } buffer = ms.ToArray(); } //------------------ //第1步:xor加密 //------------------ int iScaleLen = xorScale.Length; for (int i = 0; i < buffer.Length; i++) { buffer[i] = (byte)(buffer[i] ^ xorScale[i % iScaleLen]); } //------------------ ////第2步:写入文件 ////------------------ FileStream fs = new FileStream(string.Format("{0}{1}.bytes", filePath, fileName), FileMode.Create); fs.Write(buffer, 0, buffer.Length); fs.Close(); CreateEntity(filePath, fileName, titleStr); CreateDBModel(filePath, fileName, titleStr); }