/// <summary> /// 复制(潜拷贝) /// </summary> protected override void toShadowCopy(BaseData data) { if (!(data is PlayerListData)) { return; } PlayerListData mData = (PlayerListData)data; this.system = mData.system; this.func = mData.func; this.activity = mData.activity; this.role = mData.role; this.scene = mData.scene; this.character = mData.character; this.social = mData.social; this.bag = mData.bag; this.mail = mData.mail; this.quest = mData.quest; this.guide = mData.guide; this.friend = mData.friend; this.equip = mData.equip; this.team = mData.team; this.union = mData.union; this.achievement = mData.achievement; this.pet = mData.pet; }
/// <summary> /// 复制(潜拷贝) /// </summary> protected override void toShadowCopy(BaseData data) { if (!(data is SystemPartData)) { return; } SystemPartData mData = (SystemPartData)data; this.version = mData.version; this.serverTime = mData.serverTime; this.isBlock = mData.isBlock; this.flowStep = mData.flowStep; this.keepSave = mData.keepSave; this.clientRandomSeeds = mData.clientRandomSeeds; this.clientRandomSeedIndex = mData.clientRandomSeedIndex; this.clientOfflineWorkReceiveIndex = mData.clientOfflineWorkReceiveIndex; this.gmCommandSet = mData.gmCommandSet; this.gmType = mData.gmType; this.serverBornCode = mData.serverBornCode; this.serverStartTime = mData.serverStartTime; this.logQueue = mData.logQueue; this.nextDailyTime = mData.nextDailyTime; this.createDate = mData.createDate; this.clientRandomSeedKey = mData.clientRandomSeedKey; }
/// <summary> /// 初始化列表数据 /// </summary> public override void initListData() { system = new SystemPartData(); gfunc = new GFuncPartData(); func = gfunc; activity = new ActivityPartData(); grole = new GRolePartData(); role = grole; gscene = new GScenePartData(); scene = gscene; gcharacter = new GCharacterPartData(); character = gcharacter; social = new SocialPartData(); gbag = new GBagPartData(); bag = gbag; mail = new MailPartData(); quest = new QuestPartData(); guide = new GuidePartData(); gfriend = new GFriendPartData(); friend = gfriend; gunion = new GUnionPartData(); union = gunion; gteam = new GTeamPartData(); team = gteam; }
/// <summary> /// 回池 /// </summary> protected override void toRelease(DataPool pool) { this.system = null; this.func = null; this.activity = null; this.role = null; this.scene = null; this.character = null; this.social = null; this.bag = null; this.mail = null; this.quest = null; this.guide = null; this.friend = null; this.equip = null; this.team = null; this.union = null; this.achievement = null; this.pet = null; }
/** 创建单人角色 */ protected virtual PlayerListData createSinglePlayer(CreatePlayerData createData) { Player player = GameC.player; player.newInitData(); RolePartData rolePartData = player.role.getPartData(); //设置基础键组 rolePartData.playerID = 1; rolePartData.name = createData.name; rolePartData.userID = 1; rolePartData.uid = getVisitorUID(); rolePartData.createAreaID = 1; rolePartData.platform = PlatformType.Visitor; rolePartData.isAdult = true; SystemPartData systemPartData = player.system.getPartData(); systemPartData.createDate = DateData.getNow(); //记录创建时间 //逻辑相关 player.role.doCreatePlayer(createData); //创建调用 player.onNewCreate(); //创建角色日志 GameC.log.createPlayer(player); PlayerListData listData = player.createListData(); player.writeListData(listData); return(listData); }
/// <summary> /// 读取字节流(简版) /// </summary> protected override void toReadBytesSimple(BytesReadStream stream) { this.system = (SystemPartData)stream.readDataSimpleNotNull(); this.func = (FuncPartData)stream.readDataSimpleNotNull(); this.activity = (ActivityPartData)stream.readDataSimpleNotNull(); this.role = (RolePartData)stream.readDataSimpleNotNull(); this.scene = (ScenePartData)stream.readDataSimpleNotNull(); this.character = (CharacterPartData)stream.readDataSimpleNotNull(); this.social = (SocialPartData)stream.readDataSimpleNotNull(); this.bag = (BagPartData)stream.readDataSimpleNotNull(); this.mail = (MailPartData)stream.readDataSimpleNotNull(); this.quest = (QuestPartData)stream.readDataSimpleNotNull(); this.guide = (GuidePartData)stream.readDataSimpleNotNull(); this.friend = (FriendPartData)stream.readDataSimpleNotNull(); this.equip = (EquipPartData)stream.readDataSimpleNotNull(); this.team = (TeamPartData)stream.readDataSimpleNotNull(); this.union = (UnionPartData)stream.readDataSimpleNotNull(); this.achievement = (AchievementPartData)stream.readDataSimpleNotNull(); this.pet = (PetPartData)stream.readDataSimpleNotNull(); }
/// <summary> /// 是否数据一致 /// </summary> protected override bool toDataEquals(BaseData data) { SystemPartData mData = (SystemPartData)data; if (mData.version != null) { if (this.version == null) { return(false); } if (!this.version.dataEquals(mData.version)) { return(false); } } else { if (this.version != null) { return(false); } } if (this.serverTime != mData.serverTime) { return(false); } if (this.isBlock != mData.isBlock) { return(false); } if (this.flowStep != mData.flowStep) { return(false); } if (mData.keepSave != null) { if (this.keepSave == null) { return(false); } if (!this.keepSave.dataEquals(mData.keepSave)) { return(false); } } else { if (this.keepSave != null) { return(false); } } if (mData.clientRandomSeeds != null) { if (this.clientRandomSeeds == null) { return(false); } if (this.clientRandomSeeds.Length != mData.clientRandomSeeds.Length) { return(false); } int[] clientRandomSeedsT = this.clientRandomSeeds; int[] clientRandomSeedsR = mData.clientRandomSeeds; int clientRandomSeedsLen = clientRandomSeedsT.Length; for (int clientRandomSeedsI = 0; clientRandomSeedsI < clientRandomSeedsLen; ++clientRandomSeedsI) { int clientRandomSeedsU = clientRandomSeedsT[clientRandomSeedsI]; int clientRandomSeedsV = clientRandomSeedsR[clientRandomSeedsI]; if (clientRandomSeedsU != clientRandomSeedsV) { return(false); } } } else { if (this.clientRandomSeeds != null) { return(false); } } if (this.clientRandomSeedIndex != mData.clientRandomSeedIndex) { return(false); } if (this.clientOfflineWorkReceiveIndex != mData.clientOfflineWorkReceiveIndex) { return(false); } if (mData.gmCommandSet != null) { if (this.gmCommandSet == null) { return(false); } if (this.gmCommandSet.size() != mData.gmCommandSet.size()) { return(false); } SSet <string> gmCommandSetR = mData.gmCommandSet; if (!this.gmCommandSet.isEmpty()) { string[] gmCommandSetVKeys = this.gmCommandSet.getKeys(); for (int gmCommandSetVI = gmCommandSetVKeys.Length - 1; gmCommandSetVI >= 0; --gmCommandSetVI) { if (gmCommandSetVKeys[gmCommandSetVI] != null) { string gmCommandSetV = gmCommandSetVKeys[gmCommandSetVI]; if (!gmCommandSetR.contains(gmCommandSetV)) { return(false); } } } } } else { if (this.gmCommandSet != null) { return(false); } } if (this.gmType != mData.gmType) { return(false); } if (this.serverBornCode != mData.serverBornCode) { return(false); } if (this.serverStartTime != mData.serverStartTime) { return(false); } if (mData.logQueue != null) { if (this.logQueue == null) { return(false); } if (this.logQueue.size() != mData.logQueue.size()) { return(false); } SQueue <InfoLogData> logQueueT = this.logQueue; SQueue <InfoLogData> logQueueR = mData.logQueue; int logQueueLen = logQueueT.size(); for (int logQueueI = 0; logQueueI < logQueueLen; ++logQueueI) { InfoLogData logQueueU = logQueueT.get(logQueueI); InfoLogData logQueueV = logQueueR.get(logQueueI); if (logQueueV != null) { if (logQueueU == null) { return(false); } if (!logQueueU.dataEquals(logQueueV)) { return(false); } } else { if (logQueueU != null) { return(false); } } } } else { if (this.logQueue != null) { return(false); } } if (this.nextDailyTime != mData.nextDailyTime) { return(false); } if (mData.createDate != null) { if (this.createDate == null) { return(false); } if (!this.createDate.dataEquals(mData.createDate)) { return(false); } } else { if (this.createDate != null) { return(false); } } if (this.clientRandomSeedKey != mData.clientRandomSeedKey) { return(false); } return(true); }
/// <summary> /// 复制(深拷贝) /// </summary> protected override void toCopy(BaseData data) { if (!(data is SystemPartData)) { return; } SystemPartData mData = (SystemPartData)data; if (mData.version != null) { this.version = (SaveVersionData)mData.version.clone(); } else { this.version = null; nullObjError("version"); } this.serverTime = mData.serverTime; this.isBlock = mData.isBlock; this.flowStep = mData.flowStep; if (mData.keepSave != null) { this.keepSave = (KeepSaveData)BytesControl.createData(KeepSaveData.dataID); this.keepSave.copy(mData.keepSave); } else { this.keepSave = null; nullObjError("keepSave"); } if (mData.clientRandomSeeds != null) { int[] clientRandomSeedsR = mData.clientRandomSeeds; int clientRandomSeedsLen = clientRandomSeedsR.Length; if (this.clientRandomSeeds == null || this.clientRandomSeeds.Length != clientRandomSeedsLen) { this.clientRandomSeeds = new int[clientRandomSeedsLen]; } BytesControl.arrayCopy(mData.clientRandomSeeds, this.clientRandomSeeds, clientRandomSeedsLen); } else { this.clientRandomSeeds = null; } this.clientRandomSeedIndex = mData.clientRandomSeedIndex; this.clientOfflineWorkReceiveIndex = mData.clientOfflineWorkReceiveIndex; if (mData.gmCommandSet != null) { if (this.gmCommandSet != null) { this.gmCommandSet.clear(); this.gmCommandSet.ensureCapacity(mData.gmCommandSet.size()); } else { this.gmCommandSet = new SSet <string>(); } SSet <string> gmCommandSetT = this.gmCommandSet; if (!mData.gmCommandSet.isEmpty()) { string[] gmCommandSetVKeys = mData.gmCommandSet.getKeys(); for (int gmCommandSetVI = gmCommandSetVKeys.Length - 1; gmCommandSetVI >= 0; --gmCommandSetVI) { if (gmCommandSetVKeys[gmCommandSetVI] != null) { string gmCommandSetV = gmCommandSetVKeys[gmCommandSetVI]; string gmCommandSetU; gmCommandSetU = gmCommandSetV; gmCommandSetT.add(gmCommandSetU); } } } } else { this.gmCommandSet = null; } this.gmType = mData.gmType; this.serverBornCode = mData.serverBornCode; this.serverStartTime = mData.serverStartTime; if (mData.logQueue != null) { if (this.logQueue != null) { this.logQueue.clear(); this.logQueue.ensureCapacity(mData.logQueue.size()); } else { this.logQueue = new SQueue <InfoLogData>(); } SQueue <InfoLogData> logQueueT = this.logQueue; if (!mData.logQueue.isEmpty()) { InfoLogData[] logQueueVValues = mData.logQueue.getValues(); int logQueueVMark = mData.logQueue.getMark(); int logQueueVStart = mData.logQueue.getStart(); for (int logQueueVI = 0, logQueueVLen = mData.logQueue.length(); logQueueVI < logQueueVLen; ++logQueueVI) { InfoLogData logQueueV = logQueueVValues[(logQueueVI + logQueueVStart) & logQueueVMark]; InfoLogData logQueueU; if (logQueueV != null) { logQueueU = (InfoLogData)logQueueV.clone(); } else { logQueueU = null; nullObjError("logQueueU"); } logQueueT.offer(logQueueU); } } } else { this.logQueue = null; nullObjError("logQueue"); } this.nextDailyTime = mData.nextDailyTime; if (mData.createDate != null) { this.createDate = (DateData)BytesControl.createData(DateData.dataID); this.createDate.copy(mData.createDate); } else { this.createDate = null; nullObjError("createDate"); } this.clientRandomSeedKey = mData.clientRandomSeedKey; }
/// <summary> /// 复制(深拷贝) /// </summary> protected override void toCopy(BaseData data) { if (!(data is PlayerListData)) { return; } PlayerListData mData = (PlayerListData)data; if (mData.system != null) { this.system = (SystemPartData)mData.system.clone(); } else { this.system = null; nullObjError("system"); } if (mData.func != null) { this.func = (FuncPartData)mData.func.clone(); } else { this.func = null; nullObjError("func"); } if (mData.activity != null) { this.activity = (ActivityPartData)mData.activity.clone(); } else { this.activity = null; nullObjError("activity"); } if (mData.role != null) { this.role = (RolePartData)mData.role.clone(); } else { this.role = null; nullObjError("role"); } if (mData.scene != null) { this.scene = (ScenePartData)mData.scene.clone(); } else { this.scene = null; nullObjError("scene"); } if (mData.character != null) { this.character = (CharacterPartData)mData.character.clone(); } else { this.character = null; nullObjError("character"); } if (mData.social != null) { this.social = (SocialPartData)mData.social.clone(); } else { this.social = null; nullObjError("social"); } if (mData.bag != null) { this.bag = (BagPartData)mData.bag.clone(); } else { this.bag = null; nullObjError("bag"); } if (mData.mail != null) { this.mail = (MailPartData)mData.mail.clone(); } else { this.mail = null; nullObjError("mail"); } if (mData.quest != null) { this.quest = (QuestPartData)mData.quest.clone(); } else { this.quest = null; nullObjError("quest"); } if (mData.guide != null) { this.guide = (GuidePartData)mData.guide.clone(); } else { this.guide = null; nullObjError("guide"); } if (mData.friend != null) { this.friend = (FriendPartData)mData.friend.clone(); } else { this.friend = null; nullObjError("friend"); } if (mData.equip != null) { this.equip = (EquipPartData)mData.equip.clone(); } else { this.equip = null; nullObjError("equip"); } if (mData.team != null) { this.team = (TeamPartData)mData.team.clone(); } else { this.team = null; nullObjError("team"); } if (mData.union != null) { this.union = (UnionPartData)mData.union.clone(); } else { this.union = null; nullObjError("union"); } if (mData.achievement != null) { this.achievement = (AchievementPartData)mData.achievement.clone(); } else { this.achievement = null; nullObjError("achievement"); } if (mData.pet != null) { this.pet = (PetPartData)mData.pet.clone(); } else { this.pet = null; nullObjError("pet"); } }
/// <summary> /// 读取字节流(完整版) /// </summary> protected override void toReadBytesFull(BytesReadStream stream) { stream.startReadObj(); BaseData systemT = stream.readDataFullNotNull(); if (systemT != null) { if (systemT is SystemPartData) { this.system = (SystemPartData)systemT; } else { this.system = new SystemPartData(); if (!(systemT.GetType().IsAssignableFrom(typeof(SystemPartData)))) { stream.throwTypeReadError(typeof(SystemPartData), systemT.GetType()); } this.system.shadowCopy(systemT); } } else { this.system = null; } BaseData funcT = stream.readDataFullNotNull(); if (funcT != null) { if (funcT is FuncPartData) { this.func = (FuncPartData)funcT; } else { this.func = new FuncPartData(); if (!(funcT.GetType().IsAssignableFrom(typeof(FuncPartData)))) { stream.throwTypeReadError(typeof(FuncPartData), funcT.GetType()); } this.func.shadowCopy(funcT); } } else { this.func = null; } BaseData activityT = stream.readDataFullNotNull(); if (activityT != null) { if (activityT is ActivityPartData) { this.activity = (ActivityPartData)activityT; } else { this.activity = new ActivityPartData(); if (!(activityT.GetType().IsAssignableFrom(typeof(ActivityPartData)))) { stream.throwTypeReadError(typeof(ActivityPartData), activityT.GetType()); } this.activity.shadowCopy(activityT); } } else { this.activity = null; } BaseData roleT = stream.readDataFullNotNull(); if (roleT != null) { if (roleT is RolePartData) { this.role = (RolePartData)roleT; } else { this.role = new RolePartData(); if (!(roleT.GetType().IsAssignableFrom(typeof(RolePartData)))) { stream.throwTypeReadError(typeof(RolePartData), roleT.GetType()); } this.role.shadowCopy(roleT); } } else { this.role = null; } BaseData sceneT = stream.readDataFullNotNull(); if (sceneT != null) { if (sceneT is ScenePartData) { this.scene = (ScenePartData)sceneT; } else { this.scene = new ScenePartData(); if (!(sceneT.GetType().IsAssignableFrom(typeof(ScenePartData)))) { stream.throwTypeReadError(typeof(ScenePartData), sceneT.GetType()); } this.scene.shadowCopy(sceneT); } } else { this.scene = null; } BaseData characterT = stream.readDataFullNotNull(); if (characterT != null) { if (characterT is CharacterPartData) { this.character = (CharacterPartData)characterT; } else { this.character = new CharacterPartData(); if (!(characterT.GetType().IsAssignableFrom(typeof(CharacterPartData)))) { stream.throwTypeReadError(typeof(CharacterPartData), characterT.GetType()); } this.character.shadowCopy(characterT); } } else { this.character = null; } BaseData socialT = stream.readDataFullNotNull(); if (socialT != null) { if (socialT is SocialPartData) { this.social = (SocialPartData)socialT; } else { this.social = new SocialPartData(); if (!(socialT.GetType().IsAssignableFrom(typeof(SocialPartData)))) { stream.throwTypeReadError(typeof(SocialPartData), socialT.GetType()); } this.social.shadowCopy(socialT); } } else { this.social = null; } BaseData bagT = stream.readDataFullNotNull(); if (bagT != null) { if (bagT is BagPartData) { this.bag = (BagPartData)bagT; } else { this.bag = new BagPartData(); if (!(bagT.GetType().IsAssignableFrom(typeof(BagPartData)))) { stream.throwTypeReadError(typeof(BagPartData), bagT.GetType()); } this.bag.shadowCopy(bagT); } } else { this.bag = null; } BaseData mailT = stream.readDataFullNotNull(); if (mailT != null) { if (mailT is MailPartData) { this.mail = (MailPartData)mailT; } else { this.mail = new MailPartData(); if (!(mailT.GetType().IsAssignableFrom(typeof(MailPartData)))) { stream.throwTypeReadError(typeof(MailPartData), mailT.GetType()); } this.mail.shadowCopy(mailT); } } else { this.mail = null; } BaseData questT = stream.readDataFullNotNull(); if (questT != null) { if (questT is QuestPartData) { this.quest = (QuestPartData)questT; } else { this.quest = new QuestPartData(); if (!(questT.GetType().IsAssignableFrom(typeof(QuestPartData)))) { stream.throwTypeReadError(typeof(QuestPartData), questT.GetType()); } this.quest.shadowCopy(questT); } } else { this.quest = null; } BaseData guideT = stream.readDataFullNotNull(); if (guideT != null) { if (guideT is GuidePartData) { this.guide = (GuidePartData)guideT; } else { this.guide = new GuidePartData(); if (!(guideT.GetType().IsAssignableFrom(typeof(GuidePartData)))) { stream.throwTypeReadError(typeof(GuidePartData), guideT.GetType()); } this.guide.shadowCopy(guideT); } } else { this.guide = null; } BaseData friendT = stream.readDataFullNotNull(); if (friendT != null) { if (friendT is FriendPartData) { this.friend = (FriendPartData)friendT; } else { this.friend = new FriendPartData(); if (!(friendT.GetType().IsAssignableFrom(typeof(FriendPartData)))) { stream.throwTypeReadError(typeof(FriendPartData), friendT.GetType()); } this.friend.shadowCopy(friendT); } } else { this.friend = null; } BaseData equipT = stream.readDataFullNotNull(); if (equipT != null) { if (equipT is EquipPartData) { this.equip = (EquipPartData)equipT; } else { this.equip = new EquipPartData(); if (!(equipT.GetType().IsAssignableFrom(typeof(EquipPartData)))) { stream.throwTypeReadError(typeof(EquipPartData), equipT.GetType()); } this.equip.shadowCopy(equipT); } } else { this.equip = null; } BaseData teamT = stream.readDataFullNotNull(); if (teamT != null) { if (teamT is TeamPartData) { this.team = (TeamPartData)teamT; } else { this.team = new TeamPartData(); if (!(teamT.GetType().IsAssignableFrom(typeof(TeamPartData)))) { stream.throwTypeReadError(typeof(TeamPartData), teamT.GetType()); } this.team.shadowCopy(teamT); } } else { this.team = null; } BaseData unionT = stream.readDataFullNotNull(); if (unionT != null) { if (unionT is UnionPartData) { this.union = (UnionPartData)unionT; } else { this.union = new UnionPartData(); if (!(unionT.GetType().IsAssignableFrom(typeof(UnionPartData)))) { stream.throwTypeReadError(typeof(UnionPartData), unionT.GetType()); } this.union.shadowCopy(unionT); } } else { this.union = null; } BaseData achievementT = stream.readDataFullNotNull(); if (achievementT != null) { if (achievementT is AchievementPartData) { this.achievement = (AchievementPartData)achievementT; } else { this.achievement = new AchievementPartData(); if (!(achievementT.GetType().IsAssignableFrom(typeof(AchievementPartData)))) { stream.throwTypeReadError(typeof(AchievementPartData), achievementT.GetType()); } this.achievement.shadowCopy(achievementT); } } else { this.achievement = null; } BaseData petT = stream.readDataFullNotNull(); if (petT != null) { if (petT is PetPartData) { this.pet = (PetPartData)petT; } else { this.pet = new PetPartData(); if (!(petT.GetType().IsAssignableFrom(typeof(PetPartData)))) { stream.throwTypeReadError(typeof(PetPartData), petT.GetType()); } this.pet.shadowCopy(petT); } } else { this.pet = null; } stream.endReadObj(); }
public override void setData(BaseData data) { base.setData(data); _d = (SystemPartData)data; }