public void RPC_DonateGold(int gold, RPC.RPCForwardInfo fwd) { RPC.PackageWriter retPkg = new RPC.PackageWriter(); if (_IsMoneyEnough(CSCommon.eCurrenceType.Gold, gold) == false) { retPkg.Write((sbyte)CSCommon.eRet_DonateGold.LessGold); retPkg.DoReturnPlanes2Client(fwd); return; } RPC.PackageWriter pkg = new RPC.PackageWriter(); H_RPCRoot.smInstance.HGet_ComServer(pkg).HGet_UserRoleManager(pkg).RPC_DonateGold(pkg, PlayerData.RoleDetail.RoleId, gold); pkg.WaitDoCommand(IPlanesServer.Instance.ComConnect, RPC.CommandTargetType.DefaultType, null).OnFarCallFinished = delegate(RPC.PackageProxy _io, bool isTimeOut) { if (isTimeOut) { return; } sbyte success; _io.Read(out success); retPkg.Write(success); if (success == (sbyte)CSCommon.eRet_DonateGold.Succeed) { int todaycontribute; int contribute; _io.Read(out todaycontribute); _io.Read(out contribute); retPkg.Write(todaycontribute); retPkg.Write(contribute); _ChangeMoney(CSCommon.eCurrenceType.Gold, CSCommon.Data.eMoneyChangeType.GuildContribute, gold); } retPkg.DoReturnPlanes2Client(fwd); }; }
public void RPC_CreateGuild(string GuildName, RPC.RPCForwardInfo fwd) { RPC.PackageWriter retPkg = new RPC.PackageWriter(); if (!_IsLevelEnough(CSCommon.GuildCommon.Instance.NeedRoleLevel)) { retPkg.Write((sbyte)CSCommon.eRet_CreateGuild.LessLevel); retPkg.DoReturnPlanes2Client(fwd); return; } if (!_IsMoneyEnough(CSCommon.GuildCommon.Instance.NeedCurrenceType, CSCommon.GuildCommon.Instance.NeedMoneyNum)) { retPkg.Write((sbyte)CSCommon.eRet_CreateGuild.LessRmb); retPkg.DoReturnPlanes2Client(fwd); return; } RPC.PackageWriter pkg = new RPC.PackageWriter(); H_RPCRoot.smInstance.HGet_ComServer(pkg).HGet_UserRoleManager(pkg).RPC_CreateGuild(pkg, PlayerData.RoleDetail.RoleId, GuildName); pkg.WaitDoCommand(IPlanesServer.Instance.ComConnect, RPC.CommandTargetType.DefaultType, null).OnFarCallFinished = delegate(RPC.PackageProxy _io, bool isTimeOut) { if (isTimeOut) { return; } SByte success; _io.Read(out success); retPkg.Write(success); if (success == (sbyte)CSCommon.eRet_CreateGuild.Succeed) { _ChangeMoney(CSCommon.GuildCommon.Instance.NeedCurrenceType, CSCommon.Data.eMoneyChangeType.CreateGuild, -CSCommon.GuildCommon.Instance.NeedMoneyNum); } retPkg.DoReturnPlanes2Client(fwd); }; }
public void RPC_OneKeyGetItems(RPC.RPCForwardInfo fwd) { RPC.PackageWriter pkg = new RPC.PackageWriter(); H_RPCRoot.smInstance.HGet_ComServer(pkg).HGet_UserRoleManager(pkg).RPC_OneKeyGetItems(pkg, PlayerData.RoleDetail.RoleId); pkg.WaitDoCommand(IPlanesServer.Instance.ComConnect, RPC.CommandTargetType.DefaultType, null).OnFarCallFinished = delegate(RPC.PackageProxy _io, bool isTimeOut) { if (isTimeOut) { return; } RPC.PackageWriter retPkg = new RPC.PackageWriter(); List <CSCommon.Data.MailData> mails = new List <CSCommon.Data.MailData>(); int count = 0; _io.Read(out count); for (int i = 0; i < count; i++) { CSCommon.Data.MailData mail = new CSCommon.Data.MailData(); _io.Read(mail); if (_GetMailItems(mail.StrItems) == false) { retPkg.Write((sbyte)-1); //背包空间不足 retPkg.DoReturnPlanes2Client(fwd); return; } _GetMailCurrencies(mail.StrCurrencies); //删除邮件 RPC.PackageWriter delpkg = new RPC.PackageWriter(); H_RPCRoot.smInstance.HGet_ComServer(delpkg).HGet_UserRoleManager(delpkg).RPC_DelMail(delpkg, mail.MailId); delpkg.DoCommand(IPlanesServer.Instance.ComConnect, RPC.CommandTargetType.DefaultType); } retPkg.Write((sbyte)1); retPkg.DoReturnPlanes2Client(fwd); }; }
public void RPC_GetTeamPlayers(RPC.RPCForwardInfo fwd) { RPC.PackageWriter pkg = new RPC.PackageWriter(); H_RPCRoot.smInstance.HGet_ComServer(pkg).HGet_UserRoleManager(pkg).RPC_GetTeamPlayers(pkg, PlayerData.RoleDetail.RoleId); pkg.WaitDoCommand(IPlanesServer.Instance.ComConnect, RPC.CommandTargetType.DefaultType, null).OnFarCallFinished = delegate(RPC.PackageProxy _io, bool isTimeOut) { if (isTimeOut) { return; } RPC.PackageWriter retPkg = new RPC.PackageWriter(); retPkg.SetSinglePkg(); sbyte result = _io.ReadSByte(); retPkg.Write(result); if (result == (sbyte)CSCommon.eRet_Team.Succeed) { byte count = _io.ReadByte(); retPkg.Write(count); for (byte i = 0; i < count; i++) { RoleCom data = new RoleCom(); _io.Read(data); retPkg.Write(data); } } retPkg.DoReturnPlanes2Client(fwd); }; }
public void RPC_SelectCamp(byte camp, RPC.RPCForwardInfo fwd) { if (PlayerData.RoleDetail.Camp != (byte)eCamp.None) { return; } PlayerData.RoleDetail.Camp = camp; this.DispatchEvent(EventType.SelectCamp, camp); //TaskManager.mCurTask.SelectCamp(camp); //跳转地图 string maps = mCurTask.TaskData.Template.arg3; List <ushort> ids = new List <ushort>(); var strids = maps.Split('|'); foreach (var i in strids) { if (!string.IsNullOrEmpty(i)) { ids.Add(Convert.ToUInt16(i)); } } if (camp > ids.Count) { Log.Log.Common.Info("SelectCamp tpl error"); return; } ushort mapid = ids[((int)camp - 1)]; var x = CSTable.StaticDataManager.Maps[mapid].startX; var y = CSTable.StaticDataManager.Maps[mapid].startY; JumpToMap(mapid, x, 0, y, fwd); return; }
public override string GetPlayerInfoString(RPC.RPCForwardInfo fwd) { // Planes.PlanesInstance planes = mServer.GetPlanes(fwd.PlanesIndexInServer); // if (planes == null) // return "Unknown Planes"; return("Unknown Planes"); }
public void RPC_TakeOffFashion(ulong itemId, RPC.RPCForwardInfo fwd) { RPC.PackageWriter pkg = new RPC.PackageWriter(); var item = this.FashionBag.FindItemById(itemId); if (item == null || item.ItemData == null) { pkg.Write((sbyte)-1); pkg.DoReturnPlanes2Client(fwd); return; } if (item.ItemData.WearState == (byte)CSCommon.eBoolState.False) { pkg.Write((sbyte)-2); pkg.DoReturnPlanes2Client(fwd); return; } if (item.ItemTemplate == null) { pkg.Write((sbyte)-3); pkg.DoReturnPlanes2Client(fwd); return; } var tType = (item.ItemTemplate as CSTable.ItemFashionData).FashionType; this.FashionBag.TakeOffFashionByType(tType); pkg.Write((sbyte)1); pkg.DoReturnPlanes2Client(fwd); }
public void RPC_CreateTeam(ulong roleId, Iocp.NetConnection connect, RPC.RPCForwardInfo fwd) { RPC.PackageWriter pkg = new RPC.PackageWriter(); var role = GetRole(roleId); if (role == null) { pkg.Write((sbyte)CSCommon.eRet_Team.NoRole); pkg.DoReturnCommand2(connect, fwd.ReturnSerialId); return; } if (role.TeamHeaderId != 0) { pkg.Write((sbyte)CSCommon.eRet_Team.RoleHasTeam); pkg.DoReturnCommand2(connect, fwd.ReturnSerialId); return; } if (_CreateTeam(roleId) == false) { pkg.Write((sbyte)CSCommon.eRet_Team.NewTeamError); pkg.DoReturnCommand2(connect, fwd.ReturnSerialId); return; } if (_AddTeam(role, roleId) == false) { pkg.Write((sbyte)CSCommon.eRet_Team.OverTeamCount); pkg.DoReturnCommand2(connect, fwd.ReturnSerialId); return; } pkg.Write((sbyte)CSCommon.eRet_Team.Succeed); pkg.DoReturnCommand2(connect, fwd.ReturnSerialId); }
public void RPC_OpenShop(RPC.RPCForwardInfo fwd) { RPC.PackageWriter pkg = new RPC.PackageWriter(); pkg.Write((byte)CSCommon.eShopType.MaxType); for (byte type = (byte)CSCommon.eShopType.HotItem; type < (byte)CSCommon.eShopType.MaxType; type++) { var list = _GetShopItems((CSCommon.eShopType)type); pkg.Write(type); byte count = 0; if (list != null) { count = (byte)list.Count; } pkg.Write(count); foreach (var i in list) { pkg.Write(i.Id); pkg.Write((byte)i.Currencey); pkg.Write(i.Price); pkg.Write(i.Discount); int ishot = i.IsHot == true ? 1 : 0; pkg.Write((byte)ishot); pkg.Write(i.RmbIcon); } } pkg.DoReturnPlanes2Client(fwd); return; }
public void RPC_LeaveGuild(ulong roleId, Iocp.NetConnection connect, RPC.RPCForwardInfo fwd) { RPC.PackageWriter retPkg = new RPC.PackageWriter(); var role = GetRole(roleId); if (role == null) { retPkg.Write((sbyte)CSCommon.eRet_LeaveGuild.NoRole); retPkg.DoReturnCommand2(connect, fwd.ReturnSerialId); return; } if (role.RoleData.GuildId == 0 || role.GuildInstance == null) { retPkg.Write((sbyte)CSCommon.eRet_LeaveGuild.RoleNoGuild); retPkg.DoReturnCommand2(connect, fwd.ReturnSerialId); return; } if (role.RoleData.GuildPost == (byte)CSCommon.eGuildPost.BangZhu) { retPkg.Write((sbyte)CSCommon.eRet_LeaveGuild.RoleIsBangZhu); retPkg.DoReturnCommand2(connect, fwd.ReturnSerialId); return; } retPkg.Write((sbyte)CSCommon.eRet_LeaveGuild.Succeed); LeaveGuild(role); retPkg.DoReturnCommand2(connect, fwd.ReturnSerialId); }
public void RPC_GetMails(RPC.RPCForwardInfo fwd) { RPC.PackageWriter pkg = new RPC.PackageWriter(); H_RPCRoot.smInstance.HGet_ComServer(pkg).HGet_UserRoleManager(pkg).RPC_GetMails(pkg, PlayerData.RoleDetail.RoleId); pkg.WaitDoCommand(IPlanesServer.Instance.ComConnect, RPC.CommandTargetType.DefaultType, null).OnFarCallFinished = delegate(RPC.PackageProxy _io, bool isTimeOut) { if (isTimeOut) { return; } RPC.PackageWriter retPkg = new RPC.PackageWriter(); retPkg.SetSinglePkg(); List <CSCommon.Data.MailData> mails = new List <CSCommon.Data.MailData>(); int count = 0; _io.Read(out count); retPkg.Write(count); for (int i = 0; i < count; i++) { CSCommon.Data.MailData mail = new CSCommon.Data.MailData(); _io.Read(mail); retPkg.Write(mail); } retPkg.DoReturnPlanes2Client(fwd); }; }
public void RPC_GemCombine(int id, RPC.RPCForwardInfo fwd) { RPC.PackageWriter pkg = new RPC.PackageWriter(); int count = GemBag.GetItemCount(id); int need = CSCommon.ItemCommon.Instance.GemCombineNeedCount; if (count < need) { pkg.Write((sbyte)CSCommon.eRet_GemCombine.LessCount); pkg.DoReturnPlanes2Client(fwd); return; } var getId = id + 1; var getTpl = CSTable.ItemUtil.GetItem(getId); if (getTpl == null) { pkg.Write((sbyte)CSCommon.eRet_GemCombine.NotCombine); pkg.DoReturnPlanes2Client(fwd); return; } int getCount = count / need; int costCount = getCount * need; GemBag.RemoveItemCountByTid(id, costCount); CreateItemToBag(getId, getCount); pkg.Write((sbyte)CSCommon.eRet_GemCombine.Succeed); pkg.DoReturnPlanes2Client(fwd); }
public void RPC_UseItem(byte bag, int itemId, int count, RPC.RPCForwardInfo fwd) { RPC.PackageWriter retPkg = new RPC.PackageWriter(); BagBase opBag = _GetBagWithType(bag); if (opBag == null) { retPkg.Write((sbyte)CSCommon.eRet_UseItem.BagNull); retPkg.DoReturnPlanes2Client(fwd); return; } sbyte result = opBag.UseItem(itemId, count); opBag.Merge(); retPkg.Write(result); if (opBag == this.Bag && result == (sbyte)CSCommon.eRet_UseItem.Succeed) { var endtime = this.Bag.UseItemSucceed(itemId); if (endtime == System.DateTime.MinValue) { retPkg.Write((sbyte)-1); } else { retPkg.Write((sbyte)1); retPkg.Write(itemId); retPkg.Write(endtime); } } retPkg.DoReturnPlanes2Client(fwd); }
//Dictionary<ulong, TriggerProcessData_Server> mProcessDatas = new Dictionary<ulong, TriggerProcessData_Server>(); // delta为检测范围调整阈值 public eRet_EnterTrigger TryDoTrigger(RoleActor actor, RPC.RPCForwardInfo fwd, float delta = 1.0f) { if (!Enable) { return(eRet_EnterTrigger.NotEnable); } if (actor == null) { return(eRet_EnterTrigger.ActorIsNull); } if (!IsPositionIn(actor.GetPosition().X, actor.GetPosition().Z, delta)) { return(eRet_EnterTrigger.NotInArea); } var player = actor as PlayerInstance; if (player == null) { return(eRet_EnterTrigger.ActorIsNotPlayer); } if (TriggerData == null) { return(eRet_EnterTrigger.NotFindData); } player.JumpToMap((ushort)TriggerData.mapId, TriggerData.targetX, 0, TriggerData.targetZ, fwd); return(eRet_EnterTrigger.EnterMap); }
public void RPC_OpenExploitBox(RPC.RPCForwardInfo fwd) { RPC.PackageWriter pkg = new RPC.PackageWriter(); if (this.PlayerData.RankData.ExploitBox <= 0) { pkg.Write((sbyte)-1); pkg.DoReturnPlanes2Client(fwd); return; } var boxId = CSCommon.RoleCommon.Instance.ExploitBoxId; var tpl = CSTable.ItemUtil.GetItem(boxId) as CSTable.ItemPackageData; if (tpl == null) { return; } var dropId = tpl.DropId; List <IdNum> items = new List <IdNum>(); int mul = GetDropItems(dropId, items); this.PlayerData.RankData.ExploitBox -= 1; pkg.Write((sbyte)1); pkg.Write(mul); pkg.Write(items.Count); foreach (var i in items) { pkg.Write(i.templateId); pkg.Write(i.stackNum); } pkg.DoReturnPlanes2Client(fwd); return; }
public void RPC_InlayGem(UInt16 pos, int id, RPC.RPCForwardInfo fwd) { RPC.PackageWriter pkg = new RPC.PackageWriter(); var gem = this.GemBag.FindItemById(id); if (gem == null) { pkg.Write((sbyte)CSCommon.eRet_InlayGem.NoGem); pkg.DoReturnPlanes2Client(fwd); return; } if (gem.ItemTemplate.ItemType != (int)CSCommon.eItemType.Gem) { pkg.Write((sbyte)CSCommon.eRet_InlayGem.NotGem); pkg.DoReturnPlanes2Client(fwd); return; } Item item = Item.DangerousCreateItemById(this, id, 1); if (this.EquipGemBag.AddItem2Position(pos, item) == false) { pkg.Write((sbyte)CSCommon.eRet_InlayGem.NoPos); pkg.DoReturnPlanes2Client(fwd); return; } this.GemBag.RemoveItemCountByTid(id, 1); pkg.Write((sbyte)CSCommon.eRet_InlayGem.Succeed); CalcChangeType(eValueType.Gem); pkg.DoReturnPlanes2Client(fwd); }
public void RPC_GetRoleGirdByType(byte itemType, byte page, RPC.RPCForwardInfo fwd) { RPC.PackageWriter pkg = new RPC.PackageWriter(); H_RPCRoot.smInstance.HGet_ComServer(pkg).HGet_UserRoleManager(pkg).RPC_GetRoleGirdByType(pkg, PlayerData.RoleDetail.RoleId, itemType, page); pkg.WaitDoCommand(IPlanesServer.Instance.ComConnect, RPC.CommandTargetType.DefaultType, null).OnFarCallFinished = delegate(RPC.PackageProxy _io, bool isTimeOut) { if (isTimeOut) { return; } RPC.PackageWriter retPkg = new RPC.PackageWriter(); retPkg.SetSinglePkg(); sbyte result; _io.Read(out result); retPkg.Write(result); if (result == (sbyte)1) { int count = 0; _io.Read(out count); retPkg.Write(count); for (int i = 0; i < count; i++) { CSCommon.Data.ConsignGridData data = new CSCommon.Data.ConsignGridData(); _io.Read(data); pkg.Write(data); } } retPkg.DoReturnPlanes2Client(fwd); }; }
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_RandRoleName(Byte sex, Iocp.NetConnection connect, RPC.RPCForwardInfo fwd) { RPC.PackageWriter pkg = new RPC.PackageWriter(); string name = _RandRoleName(sex); pkg.Write(name); pkg.DoReturnCommand2(connect, fwd.ReturnSerialId); }
public void RPC_LeaveTrigger(ulong triggerId, RPC.RPCForwardInfo fwd) { // var trigger = this.HostMap.GetTrigger(triggerId); // if (trigger == null) // return; // // trigger.ProcessActorLeave(this, 0.7f); }
public void RPC_GetOffPlayerData(ulong roleId, Iocp.NetConnection connect, RPC.RPCForwardInfo fwd) { RPC.PackageWriter pkg = new RPC.PackageWriter(); var getRole = GetRoleRand(); pkg.Write(getRole.RoleData); pkg.DoReturnCommand2(connect, fwd.ReturnSerialId); }
public void ReturnToHostMap(RPC.RPCForwardInfo fwd) { ushort mapSourceId = mPlayerData.RoleDetail.MapSourceId; float posX = mPlayerData.RoleDetail.LocationX; float posY = mPlayerData.RoleDetail.LocationY; float posZ = mPlayerData.RoleDetail.LocationZ; JumpToMap(mapSourceId, posX, posY, posZ, fwd); }
private static void _JumpMapDoReturnClient(RPC.RPCForwardInfo fwd, sbyte successed) { // if (fwd != null) // { // var retPkg = new RPC.PackageWriter(); // retPkg.Write((sbyte)successed); // retPkg.DoReturnPlanes2Client(fwd); // } }
public void RPC_GetPlayerInfo(ulong id, RPC.RPCForwardInfo fwd) { RPC.PackageWriter retPkg = new RPC.PackageWriter(); PlayerInstance player = HostMap.FindPlayer(id); if (player == null) { retPkg.Write((sbyte)(-1)); retPkg.DoReturnPlanes2Client(fwd); return; } retPkg.Write((sbyte)1); ////一级属性 //retPkg.Write(player.FinalPoint.Power); //retPkg.Write(player.FinalPoint.Body); //retPkg.Write(player.FinalPoint.Dex); ////二级属性 //retPkg.Write(player.mFinalRoleValue.Atk); //retPkg.Write(player.mFinalRoleValue.MaxHP); //retPkg.Write(player.mFinalRoleValue.MaxMP); //retPkg.Write(player.mFinalRoleValue.Hit); //retPkg.Write(player.mFinalRoleValue.Dodge); //retPkg.Write(player.mFinalRoleValue.Crit); //retPkg.Write(player.mFinalRoleValue.CritDef); //retPkg.Write(player.mFinalRoleValue.DeadlyHitRate); //retPkg.Write(player.mFinalRoleValue.Def[0]); //retPkg.Write(player.mFinalRoleValue.Def[1]); //retPkg.Write(player.mFinalRoleValue.Def[2]); //retPkg.Write(player.mFinalRoleValue.Def[3]); //retPkg.Write(player.mFinalRoleValue.Def[4]); //retPkg.Write(player.mFinalRoleValue.UpHurtRate); //retPkg.Write(player.mFinalRoleValue.DownHurtRate); //retPkg.Write(player.mFinalRoleValue.UnusualDefRate); retPkg.Write(player.FinalRoleValue.Power); retPkg.Write(player.FinalRoleValue.Body); retPkg.Write(player.FinalRoleValue.Dex); //二级属性 retPkg.Write(player.FinalRoleValue.Atk); retPkg.Write(player.FinalRoleValue.MaxHP); retPkg.Write(player.FinalRoleValue.MaxMP); retPkg.Write(player.FinalRoleValue.Hit); retPkg.Write(player.FinalRoleValue.Dodge); retPkg.Write(player.FinalRoleValue.Crit); retPkg.Write(player.FinalRoleValue.CritDef); retPkg.Write(player.FinalRoleValue.DeadlyHitRate); retPkg.Write(player.FinalRoleValue.GetDef(eElemType.Gold)); retPkg.Write(player.FinalRoleValue.GetDef(eElemType.Wood)); retPkg.Write(player.FinalRoleValue.GetDef(eElemType.Water)); retPkg.Write(player.FinalRoleValue.GetDef(eElemType.Fire)); retPkg.Write(player.FinalRoleValue.GetDef(eElemType.Earth)); retPkg.Write(player.FinalRoleValue.UpHurtRate); retPkg.Write(player.FinalRoleValue.DownHurtRate); retPkg.Write(player.FinalRoleValue.UnusualDefRate); retPkg.DoReturnPlanes2Client(fwd); }
public void RPC_AddMoney(byte type, int num, RPC.RPCForwardInfo fwd) { var player = IPlanesServer.Instance.GetPlayerByForwordInfo(fwd); if (player == null) { return; } player._ChangeMoney((CSCommon.eCurrenceType)type, CSCommon.Data.eMoneyChangeType.GM, num); }
public void RPC_Revive(RPC.RPCForwardInfo fwd) { var player = IPlanesServer.Instance.GetPlayerByForwordInfo(fwd); if (player == null) { return; } player.Relive(CSCommon.eReliveMode.Current); }
public void RPC_JumpToMap(ushort mapid, float x, float z, RPC.RPCForwardInfo fwd) { var player = IPlanesServer.Instance.GetPlayerByForwordInfo(fwd); if (player == null) { return; } player.JumpToMap(mapid, x, 0, z, fwd); }
public void RPC_AddExp(int exp, RPC.RPCForwardInfo fwd) { var player = IPlanesServer.Instance.GetPlayerByForwordInfo(fwd); if (player == null) { return; } player.GainExp(exp); }
public void RPC_SuggestCamp(RPC.RPCForwardInfo fwd) { byte succeed = 1; byte camp = (byte)eCamp.Jing; RPC.PackageWriter retPkg = new RPC.PackageWriter(); retPkg.Write(succeed); retPkg.Write(camp); retPkg.DoReturnPlanes2Client(fwd); }
public Planes.PlayerInstance GetPlayerByForwordInfo(RPC.RPCForwardInfo fwd) { var mapInstance = Planes.MapInstanceManager.Instance.GetMapInstance(fwd.MapIndexInServer); if (mapInstance == null) { return(null); } return(mapInstance.GetPlayer(fwd.PlayerIndexInMap)); }