using System; using ProtoCSStruct; namespace MysqlHandling { class Role { public DBRoleBase m_RoleBase = new DBRoleBase(); public DBRoleData m_RoleData = new DBRoleData(); public DBRoleUnimportanceData m_UnimportanceData = new DBRoleUnimportanceData(); public int m_bagCount; public int m_heroCount; public int m_equipmentCount; public Role(long uid, int bagCount, int heroCount, int equipmentCount) { m_bagCount = bagCount; m_heroCount = heroCount; m_equipmentCount = equipmentCount; MakeRoleBase(uid); MakeRoleData(); MakeUnimportanceData(heroCount, bagCount); } public void MakeRoleData() { MakeRoleBagData(); MakeRoleHerosData(); MakeRoleEquipmentData(); } /// /// 构建角色数据 /// DBRoleData roleData /// /// public void MakeRoleBagData() { // 构建物品背包数据 MakeBagIterms(); } /// /// 构建英雄背包数据 /// public void MakeRoleHerosData() { MakeDBHeroList(); MakeHeroLineUp(); } /// /// 构建英雄装备数据 /// public void MakeRoleEquipmentData() { MakeEquipmentList(); } public void MakeEquipmentList() { // 装备数量是随机值 int randValue = m_equipmentCount; for (int i = 0; i < m_equipmentCount; ++i) { randValue++; var item = new DBEquipment { DescId = randValue, Exp = randValue, Level = randValue, SerialNum = randValue, OwnerHero = randValue }; m_RoleData.EquipmentData.List.Add(ref item); } } public void MakeHeroLineUp() { int randValue = m_heroCount; // 上阵阵容 for (int i = 0; i < m_RoleData.LineupData.List.GetMaxCount(); ++i) { randValue++; var lineupOne = new DBLineupOne { CommanderSerialNum = randValue, MainlandScene = i, SubType = i, Type = i }; for (int j = 0; j < 5; j++) { IDValue32 item = new IDValue32 {Id = randValue, Value = randValue }; lineupOne.HeroList.Add(ref item); } m_RoleData.LineupData.List.Add(ref lineupOne); } // 编队 string s = "attack team "; for (int i = 0; i < m_RoleData.LineupData.FormattionList.GetMaxCount(); ++i) { randValue++; var formOne = new DBFormationOne { CommanderSerialNum = randValue, Id = randValue, }; formOne.Name.SetString(s + i); for (int j = 0; j < 5; j++) { IDValue32 item = new IDValue32 { Id = randValue, Value = randValue }; formOne.HeroList.Add(ref item); } m_RoleData.LineupData.FormattionList.Add(ref formOne); } } public void MakeDBHeroList() { // 英雄数量是随机值 int randValue = m_heroCount; for (int i = 0; i < m_heroCount; i++) { randValue++; DBHero item = new DBHero { SerialNum = randValue, DescId = randValue, Level = randValue, Star = randValue, Exp = randValue, HeroTalent = randValue, TalentSteps = randValue, IsJoinBattle = randValue, HeroPower = randValue, RaceIconLevel = randValue, WeaponId = randValue, WeaponLevel = randValue, PowerChangeSeq = randValue, ArtifactSerialNum = randValue, TempWeaponLevel = randValue, }; m_RoleData.HerosData.List.Add(ref item); } } public void MakeBagIterms() { int randValue = m_bagCount; m_RoleData.Bag.Items.Clear(); for (int i = 0; i < m_bagCount; i++) { randValue++; var item = new DBItemInfo { Id = (uint) randValue, UniqueID = randValue, Count = randValue, ExpireTime = 0 }; m_RoleData.Bag.Items.Add(ref item); } } /// /// 构建游戏角色基础数据 /// ref DBRoleBase roleBase, /// public void MakeRoleBase(long uid) { int randValue = m_heroCount; m_RoleBase.Uid = uid; m_RoleBase.Chip = randValue; m_RoleBase.CreateTime = randValue; m_RoleBase.Diamond = randValue; m_RoleBase.Exp = randValue; m_RoleBase.Gender = randValue; m_RoleBase.HeroExpPool = randValue; m_RoleBase.LastLoginTime = randValue; m_RoleBase.Level = randValue; m_RoleBase.OnlineTime = randValue; m_RoleBase.Power = randValue; m_RoleBase.RoleCreateComplete = randValue; m_RoleBase.UnionId = randValue; m_RoleBase.VipExp = randValue; m_RoleBase.VipLevel = randValue; m_RoleBase.Nick.SetString($"dbtest_{uid}"); m_RoleBase.Icon.SetString($"icon_{uid}"); m_RoleBase.Lang.SetString("test lang"); } public void MakeUnimportanceData(int count, int randValue) { int max = m_UnimportanceData.DBBagChangeRecordList.GetMaxCount(); for (int i = 0; i < count && i < max; i++) { randValue++; var item = new DBBagChangeRecord { Type = randValue, ChangeTime = randValue, ChangeValue = randValue, NewValue = randValue, Reason = randValue }; m_UnimportanceData.DBBagChangeRecordList.Add(ref item); } m_UnimportanceData.ClientData.SetString("testmyClientData" + count); } } }