public void RPC_Whisper(string targetName, string msg, RPC.DataReader hyperlink, RPC.RPCForwardInfo fwd) { sbyte success = 0; RPC.DataWriter data = new RPC.DataWriter(); if (hyperlink != null) { hyperlink.Read(out success); data.Write(success); if (success == (sbyte)1)//物品 { CSCommon.Data.ItemData item = new CSCommon.Data.ItemData(); hyperlink.Read(item, true); data.Write(item, true); } } msg = CheckMaskWord(msg); RPC.PackageWriter pkg = new RPC.PackageWriter(); H_RPCRoot.smInstance.HGet_ComServer(pkg).HGet_UserRoleManager(pkg).RPC_SayToRole(pkg, this.Id, targetName, msg, data); pkg.WaitDoCommand(IPlanesServer.Instance.ComConnect, RPC.CommandTargetType.DefaultType, new System.Diagnostics.StackTrace(1, true)).OnFarCallFinished = delegate(RPC.PackageProxy _io, bool bTimeOut) { sbyte result = -1; _io.Read(out result); if (result < 0) { SendTalkMsg2Client(this, (sbyte)CSCommon.eSayChannel.WhisperChannel, "", "无效发送对象", new RPC.DataWriter()); } else { SendTalkMsg2Client(this, (sbyte)CSCommon.eSayChannel.WhisperChannel, this.RoleName, msg, data); } }; }
public void DeserializeArms(byte[] buffer) { HoldPoints.Clear(); RPC.DataReader dr = new RPC.DataReader(buffer, 0, buffer.Length, buffer.Length); var count = dr.ReadByte(); for (int i = 0; i < count; i++) { var hold = new HoldPoint(); HoldPoints.Add(hold); hold.ArmsCount = dr.ReadUInt32(); hold.Camp = (CSCommon.eCamp)dr.ReadByte(); } count = dr.ReadByte(); for (int i = 0; i < count; i++) { var val = dr.ReadUInt64(); if (i < Defender.Length) { Defender[i] = val; } } count = dr.ReadByte(); for (int i = 0; i < count; i++) { var val = dr.ReadUInt32(); if (i < AdvanceArms.Length) { AdvanceArms[i] = val; } } }
public void RPC_UpdateRoleComValue(ulong roleId, string name, RPC.DataReader value) { var role = GetRole(roleId); if (role == null) { return; } switch (name) { case "RoleLevel": { role.RoleData.Level = value.ReadUInt16(); } break; case "Camp": { role.RoleData.Camp = value.ReadByte(); } break; case "Profession": { role.RoleData.Profession = value.ReadByte(); } break; case "PlanesId": { role.RoleData.PlanesId = value.ReadUInt16(); } break; } }
public void Deserizle(RPC.DataReader dr) { for (var i = eElemType.Gold; i < eElemType.MAX; i++) { SetSecondAttrBase(eValueType.Image, CommonUtil.ElemTypeTranslate(i), (int)dr.ReadSingle()); } SetSecondAttrBase(eValueType.Image, eSkillAttrIndex.Def_All, (int)dr.ReadSingle()); SetSecondAttrBase(eValueType.Image, eSkillAttrIndex.MaxHPRate, (int)dr.ReadSingle()); SetSecondAttrBase(eValueType.Image, eSkillAttrIndex.MaxHP, dr.ReadInt32()); SetSecondAttrBase(eValueType.Image, eSkillAttrIndex.MaxMP, dr.ReadInt32()); SetSecondAttrBase(eValueType.Image, eSkillAttrIndex.Atk, dr.ReadInt32()); SetSecondAttrBase(eValueType.Image, eSkillAttrIndex.Crit, (int)dr.ReadSingle()); SetSecondAttrBase(eValueType.Image, eSkillAttrIndex.CritRate, (int)dr.ReadSingle()); SetSecondAttrBase(eValueType.Image, eSkillAttrIndex.CritDef, (int)dr.ReadSingle()); SetSecondAttrBase(eValueType.Image, eSkillAttrIndex.CritDefRate, (int)dr.ReadSingle()); SetSecondAttrBase(eValueType.Image, eSkillAttrIndex.DeadlyHit, dr.ReadInt32()); SetSecondAttrBase(eValueType.Image, eSkillAttrIndex.DeadlyHitRate, (int)dr.ReadSingle()); SetSecondAttrBase(eValueType.Image, eSkillAttrIndex.Hit, dr.ReadInt32()); SetSecondAttrBase(eValueType.Image, eSkillAttrIndex.Dodge, dr.ReadInt32()); SetSecondAttrBase(eValueType.Image, eSkillAttrIndex.UpHurt, (int)dr.ReadSingle()); SetSecondAttrBase(eValueType.Image, eSkillAttrIndex.DownHurt, (int)dr.ReadSingle()); SetSecondAttrBase(eValueType.Image, eSkillAttrIndex.UnusualDefRate, (int)dr.ReadSingle()); SetSecondAttrBase(eValueType.Image, eSkillAttrIndex.Block, (int)dr.ReadSingle()); SetSecondAttrBase(eValueType.Image, eSkillAttrIndex.BlockRate, (int)dr.ReadSingle()); SetSecondAttrBase(eValueType.Image, eSkillAttrIndex.HPRecover, dr.ReadInt32()); SetSecondAttrBase(eValueType.Image, eSkillAttrIndex.MPRecover, dr.ReadInt32()); SetSecondAttrBase(eValueType.Image, eSkillAttrIndex.UpExpRate, (int)dr.ReadSingle()); SetSecondAttrBase(eValueType.Image, eSkillAttrIndex.MoveSpeed, (int)dr.ReadSingle()); SetSecondAttrBase(eValueType.Image, eSkillAttrIndex.DamageReflect, (int)dr.ReadSingle()); }
public void RPC_Say(sbyte channel, string msg, RPC.DataReader hyperlink, RPC.RPCForwardInfo fwd) { msg = CheckMaskWord(msg); RPC.DataWriter data = new RPC.DataWriter(); data.Write(hyperlink.mHandle); RPC.PackageWriter pkg = new RPC.PackageWriter(); SayToComServer(channel, msg, data); }
public void RPC_SayToRole(ulong roleId, string tarName, string msg, RPC.DataReader hyperlink, Iocp.NetConnection connect, RPC.RPCForwardInfo fwd) { sbyte success = 0; RPC.DataWriter data = new RPC.DataWriter(); if (hyperlink != null) { hyperlink.Read(out success); data.Write(success); if (success == (sbyte)1)//物品 { CSCommon.Data.ItemData item = new CSCommon.Data.ItemData(); hyperlink.Read(item, true); data.Write(item, true); } } RPC.PackageWriter pkg = new RPC.PackageWriter(); var tarRole = GetRole(tarName); if (tarRole == null) { pkg.Write((sbyte)-1); pkg.DoReturnCommand2(connect, fwd.ReturnSerialId); return; } if (tarRole.PlanesConnect == null) { pkg.Write((sbyte)-2); pkg.DoReturnCommand2(connect, fwd.ReturnSerialId); return; } var role = GetRole(roleId); if (role == null) { Log.Log.Common.Print("RPC_SayToRole role is null,{0}", roleId); pkg.Write((sbyte)-3); pkg.DoReturnCommand2(connect, fwd.ReturnSerialId); return; } if (tarRole.RoleData.RoleId == roleId) { pkg.Write((sbyte)-4); pkg.DoReturnCommand2(connect, fwd.ReturnSerialId); return; } RPC.PackageWriter retPkg = new RPC.PackageWriter(); H_RPCRoot.smInstance.HGet_PlanesServer(retPkg).RPC_DSTalkMsg(retPkg, tarRole.RoleData.PlanesId, role.RoleData.Name, (sbyte)CSCommon.eSayChannel.WhisperChannel, tarRole.RoleData.RoleId, msg, data); retPkg.DoCommand(tarRole.PlanesConnect, RPC.CommandTargetType.DefaultType); pkg.Write((sbyte)1); pkg.DoReturnCommand2(connect, fwd.ReturnSerialId); }
public void Deserizle(CSCommon.Data.RoleCom rc) { var buffer = rc.FinalValue; if (buffer == null || buffer.Length <= 0) { return; } RPC.DataReader dr = new RPC.DataReader(buffer, 0, buffer.Length, buffer.Length); value.Deserizle(dr); WeapFacdeid = dr.ReadInt32(); RPC.IAutoSaveAndLoad.DaraReadList <CSCommon.Data.SkillData>(skills, dr, false); }
public override void DataRead(RPC.DataReader pkg, bool bToClient) { mRoleDetail.DataRead(pkg, bToClient); DaraReadList <ItemData>(mBagItems, pkg, bToClient); DaraReadList <ItemData>(mEquipedItems, pkg, bToClient); DaraReadList <ItemData>(mEquipGemItems, pkg, bToClient); DaraReadList <ItemData>(mGemItems, pkg, bToClient); DaraReadList <ItemData>(mFashionItems, pkg, bToClient); mTaskData.DataRead(pkg, bToClient); mAchieveData.DataRead(pkg, bToClient); DaraReadList <SkillData>(mSkillDatas, pkg, bToClient); mMartialData.DataRead(pkg, bToClient); mRankData.DataRead(pkg, bToClient); }
public static void DaraReadList <T>(List <T> list, RPC.DataReader pkg, bool bToClient) where T : RPC.IAutoSaveAndLoad, new() { UInt16 count; pkg.Read(out count); list.Clear(); for (int i = 0; i < count; i++) { RPC.DataReader idr; pkg.Read(out idr); T iv = new T(); iv.DataRead(idr, bToClient); list.Add(iv); } }
public void CopyUnSerialize(byte[] buffer) { CopyList.Clear(); if (buffer == null || buffer.Length <= 0) { return; } RPC.DataReader dr = new RPC.DataReader(buffer, 0, buffer.Length, buffer.Length); int count = dr.ReadInt32(); for (int i = 0; i < count; i++) { int id = dr.ReadInt32(); CopyList.Add(id); } }
public void RPC_SendPlayerTeamInfo(ulong id, RPC.DataReader dr) { var player = Planes.PlanesServerDataManager.Instance.FindPlayerInstance(id); if (player == null) { Log.Log.Common.Print("RPC_SendPlayerTeamInfo player is null"); return; } List <CSCommon.Data.RoleCom> infos = new List <CSCommon.Data.RoleCom>(); RPC.IAutoSaveAndLoad.DaraReadList <CSCommon.Data.RoleCom>(infos, dr, false); RPC.DataWriter dw = new RPC.DataWriter(); RPC.IAutoSaveAndLoad.DaraWriteList <CSCommon.Data.RoleCom>(infos, dw, true); Planes.PlayerInstance.SendTeam2Client(player, dw); }
public void AchieveUnSerialize(byte[] buffer) { AcceptAchieveDict.Clear(); if (buffer == null || buffer.Length <= 0) { return; } RPC.DataReader dr = new RPC.DataReader(buffer, 0, buffer.Length, buffer.Length); int count = dr.ReadInt32(); for (int i = 0; i < count; i++) { AcceptAchieveData data = new AcceptAchieveData(); data.id = dr.ReadInt32(); data.targetNum = dr.ReadInt32(); data.getReward = dr.ReadByte(); AcceptAchieveDict[data.id] = data; } }
public void RPC_Say(ulong roleId, sbyte channel, string msg, RPC.DataReader hyperlink, RPC.RPCForwardInfo fwd) { RPC.DataWriter data = new RPC.DataWriter(); var link = hyperlink.ReadDataReader(); data.Write(link.mHandle); var role = GetRole(roleId); if (role == null) { return; } switch ((CSCommon.eSayChannel)channel) { case CSCommon.eSayChannel.WorldChannel: case CSCommon.eSayChannel.SystemChannel: SayToWorld(role, channel, msg, data); break; case CSCommon.eSayChannel.CampChannel: if (!SayToCamp(role, channel, msg, data)) { SayError(role, channel, "未加入国家", new RPC.DataWriter()); } break; case CSCommon.eSayChannel.GuildChannel: if (!SayToGuild(role, channel, msg, data)) { SayError(role, channel, "未加入帮派", new RPC.DataWriter()); } break; case CSCommon.eSayChannel.TeamChannel: if (!SayToTeam(role, channel, msg, data)) { SayError(role, channel, "未加入队伍", new RPC.DataWriter()); } break; } }
//--------------------------------------数据存取--------------------------------------------------------- //初始化数据库数据 public void MartialUnSerialize(PlayerInstance role, byte[] buffer) { mRole = role; if (buffer == null || buffer.Length <= 0) { return; } RPC.DataReader dr = new RPC.DataReader(buffer, 0, buffer.Length, buffer.Length); byte count = dr.ReadByte(); for (byte i = 0; i < count; i++) { byte type = dr.ReadByte(); BuildOutPut output = new BuildOutPut(type); output.mStartTime = dr.ReadDateTime(); output.mOutCount = dr.ReadByte(); output.mUpOutIndex = dr.ReadSByte(); output.mUpStartTime = dr.ReadDateTime(); output.mOutPutTotalNum = dr.ReadInt32(); AddOutPut(output, false); } InitOutData(); }
public void RPC_UpdateRankDataValue(ulong roleId, string name, RPC.DataReader value) { RankData rank = GetRank(roleId); if (rank == null) { return; } switch (name) { case "RoleLevel": rank.Level = value.ReadUInt16(); break; case "Fighting": rank.Fighting = value.ReadInt32(); break; case "Exploit": rank.Exploit = value.ReadInt32(); break; case "ExploitBox": rank.ExploitBox = value.ReadByte(); break; case "KillEnemy": rank.KillEnemy = value.ReadInt32(); break; case "Challenge": rank.Challenge = value.ReadInt32(); break; } UPdateRankData(rank); }
//初始化数据库数据 public void VisitDataUnSerialize() { byte[] buffer = RoleData.VisitPlayers; VisitTopList.Clear(); VisitFriendList.Clear(); if (buffer == null || buffer.Length <= 0) { return; } RPC.DataReader dr = new RPC.DataReader(buffer, 0, buffer.Length, buffer.Length); byte count = dr.ReadByte(); for (byte i = 0; i < count; i++) { ulong id = dr.ReadUInt64(); VisitTopList.Add(id); } count = dr.ReadByte(); for (byte i = 0; i < count; i++) { ulong id = dr.ReadUInt64(); VisitFriendList.Add(id); } }
public void RPC_DSTalkMsg(ulong planesId, string sender, sbyte channel, ulong targetId, string msg, RPC.DataReader hyperlink) { RPC.DataWriter data = new RPC.DataWriter(); var link = hyperlink.ReadDataReader(); data.Write(link.mHandle); var player = Planes.PlanesServerDataManager.Instance.FindPlayerInstance(targetId); if (null != player) { Planes.PlayerInstance.SendTalkMsg2Client(player, channel, sender, msg, data); } }