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_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_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_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_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_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); }
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_SendGift(ulong roleId, int templateId, int count, RPC.RPCForwardInfo fwd) { RPC.PackageWriter retPkg = new RPC.PackageWriter(); var itemtemplate = CSTable.ItemUtil.GetItem(templateId) as CSTable.ItemGiftData; if (itemtemplate == null) { Log.Log.Social.Print("itemtemplate is null:{0}", templateId); retPkg.Write((sbyte)CSCommon.sRet_SendGift.NoGftTpl); retPkg.DoReturnPlanes2Client(fwd); return; } if (itemtemplate.ItemType != (int)CSCommon.eItemType.Gift) { retPkg.Write((sbyte)CSCommon.sRet_SendGift.NotGiftType); retPkg.DoReturnPlanes2Client(fwd); return; } if (CSCommon.SocialCommon.Instance.GiftList.Contains(templateId) == false) { retPkg.Write((sbyte)CSCommon.sRet_SendGift.ListNoGift); retPkg.DoReturnPlanes2Client(fwd); return; } if (_IsMoneyEnough((CSCommon.eCurrenceType)itemtemplate.BuyCurrenceType, itemtemplate.PurchasePrice * count) == false) { retPkg.Write((sbyte)CSCommon.sRet_SendGift.LessMoney); retPkg.DoReturnPlanes2Client(fwd); return; } int index = CSCommon.SocialCommon.Instance.GiftList.IndexOf(templateId); int addvalue = itemtemplate.AddIntimacy * count; RPC.PackageWriter pkg = new RPC.PackageWriter(); H_RPCRoot.smInstance.HGet_ComServer(pkg).HGet_UserRoleManager(pkg).RPC_SendGift(pkg, this.PlayerData.RoleDetail.RoleId, roleId, index, count, addvalue); pkg.WaitDoCommand(IPlanesServer.Instance.ComConnect, RPC.CommandTargetType.DefaultType, null).OnFarCallFinished = delegate(RPC.PackageProxy _io, bool bTimeOut) { RPC.PackageWriter retpkg = new RPC.PackageWriter(); sbyte result = -1; _io.Read(out result); if (result == (sbyte)CSCommon.sRet_SendGift.Succeed) { _ChangeMoney((CSCommon.eCurrenceType)itemtemplate.BuyCurrenceType, CSCommon.Data.eMoneyChangeType.SendGift, -count); } retpkg.Write(result); retpkg.DoReturnPlanes2Client(fwd); }; }
public void RPC_AddRoleBasePoint(byte type, RPC.RPCForwardInfo fwd) { RPC.PackageWriter retPkg = new RPC.PackageWriter(); if (this.PlayerData.RoleDetail.RemainPoint <= 0) { retPkg.Write((sbyte)-1); retPkg.DoReturnPlanes2Client(fwd); return; } retPkg.Write((sbyte)1); _AddBasePoint(type); this.PlayerData.RoleDetail.RemainPoint--; CalcAllValues(); WriteRoleValueToClient(fwd, retPkg); retPkg.DoReturnPlanes2Client(fwd); }
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_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_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_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_GetAchieveReward(int id, RPC.RPCForwardInfo fwd) { RPC.PackageWriter pkg = new RPC.PackageWriter(); var achieve = mRecordMgr.GetAchieve(id); if (!achieve.IsFinished()) { //未完成 pkg.Write((sbyte)CSCommon.eRet_GetAchieveReward.NoFinish); pkg.DoReturnPlanes2Client(fwd); return; } var tpl = CSTable.ItemUtil.GetAchieve(id); if (tpl == null) { //id错误 pkg.Write((sbyte)CSCommon.eRet_GetAchieveReward.IdError); pkg.DoReturnPlanes2Client(fwd); return; } if (tpl.atype == (int)CSCommon.eAchieveType.Achieve) { if (achieve.data.getReward == (byte)CSCommon.eBoolState.True) { //已领取 pkg.Write((sbyte)CSCommon.eRet_GetAchieveReward.YetGet); pkg.DoReturnPlanes2Client(fwd); return; } var achievetpl = tpl as CSTable.AchieveTplData; GetReward(achievetpl.currencyReward, achievetpl.itemsReward); } else if (tpl.atype == (int)CSCommon.eAchieveType.AchieveName) { //启用称号 mRecordMgr.UseAchieveName(id); var achieveNametpl = tpl as CSTable.AchieveNameData; this.PlayerData.RoleDetail.AchieveName = achieveNametpl.name; } achieve.data.getReward = (byte)CSCommon.eBoolState.True; pkg.Write((sbyte)CSCommon.eRet_GetAchieveReward.Succeed); pkg.DoReturnPlanes2Client(fwd); }
public void RPC_RemoveGem(UInt16 pos, RPC.RPCForwardInfo fwd) { RPC.PackageWriter pkg = new RPC.PackageWriter(); var gem = this.EquipGemBag.FindItemByPos(pos); if (gem == null) { pkg.Write((sbyte)CSCommon.eRet_RemoveGem.NoGem); pkg.DoReturnPlanes2Client(fwd); return; } if (this.GemBag.GetEmptyCount() <= 0) { pkg.Write((sbyte)CSCommon.eRet_RemoveGem.BagNoPos); pkg.DoReturnPlanes2Client(fwd); return; } var itemcom = CSCommon.ItemCommon.Instance; if (itemcom == null) { pkg.Write((sbyte)CSCommon.eRet_RemoveGem.NoItemCom); pkg.DoReturnPlanes2Client(fwd); return; } // CSCommon.eCurrenceType type = itemcom.RemoveGemMoneyType; // int count = itemcom.RemoveGemMoney; // if (_IsMoneyEnough(type, count) == false) // { // pkg.Write((sbyte)CSCommon.eRet_RemoveGem.LessMoney); // pkg.DoReturnPlanes2Client(fwd); // return; // } if (this.GemBag.AutoAddItem(gem) == false) { pkg.Write((sbyte)CSCommon.eRet_RemoveGem.AddToBagFailed); pkg.DoReturnPlanes2Client(fwd); return; } this.EquipGemBag.RemoveItem(gem); // _ChangeMoney(type, CSCommon.Data.eMoneyChangeType.RemoveGem, -count); pkg.Write((sbyte)CSCommon.eRet_RemoveGem.Succeed); CalcChangeType(eValueType.Gem); pkg.DoReturnPlanes2Client(fwd); }
public void RPC_GetMartialInfo(byte type, RPC.RPCForwardInfo fwd) { RPC.PackageWriter pkg = new RPC.PackageWriter(); var build = GetBuild((CSCommon.eBuildType)type); if (build == null) { Log.Log.Item.Info("GetMartialOutPut Failed eBuildType : {0}", type); pkg.Write((sbyte)CSCommon.eRet_GetMartialInfo.NoBuild); pkg.DoReturnPlanes2Client(fwd); return; } if (build.Level < 1) { pkg.Write((sbyte)CSCommon.eRet_GetMartialInfo.NoOpen); pkg.DoReturnPlanes2Client(fwd); return; } if (build.OutPutInfo == null) { Log.Log.Item.Info("GetMartialOutPut Failed OutPutInfo is null}"); pkg.Write((sbyte)CSCommon.eRet_GetMartialInfo.NoOutPut); pkg.DoReturnPlanes2Client(fwd); return; } pkg.Write((sbyte)CSCommon.eRet_GetMartialInfo.Succeed); pkg.Write(build.Level); byte count = (byte)build.OutPutInfo.Count;//几种类型 pkg.Write(count); foreach (var i in build.OutPutInfo) { byte index = (byte)i.Key; //类型 int num = i.Value; //数量 var output = mBuildOutPutManager.GetBuildOutPut(index); byte total = output.mOutCount; //总次数 float uprate = output.GetUpRate(System.DateTime.Now); //加成率 float remainUpHour = output.mRemainUpHour; pkg.Write(index); pkg.Write(num); pkg.Write(total); pkg.Write(uprate); pkg.Write(remainUpHour); } pkg.DoReturnPlanes2Client(fwd); }
public void RPC_BuyConsignItem(ulong itemId, RPC.RPCForwardInfo fwd) { RPC.PackageWriter pkg = new RPC.PackageWriter(); H_RPCRoot.smInstance.HGet_ComServer(pkg).HGet_UserRoleManager(pkg).RPC_GetConsignItem(pkg, PlayerData.RoleDetail.RoleId, itemId); 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(); sbyte result; _io.Read(out result); if ((CSCommon.eRet_BuyConsignItem)result == CSCommon.eRet_BuyConsignItem.Succeed) { int price = 0; _io.Read(out price); if (_IsMoneyEnough(CSCommon.eCurrenceType.Rmb, price) == false) { retPkg.Write((sbyte)CSCommon.eRet_BuyConsignItem.LessMoney); retPkg.DoReturnPlanes2Client(fwd); return; } RPC.PackageWriter rpkg = new RPC.PackageWriter(); H_RPCRoot.smInstance.HGet_ComServer(rpkg).HGet_UserRoleManager(rpkg).RPC_BuyConsignItem(rpkg, PlayerData.RoleDetail.RoleId, itemId); pkg.WaitDoCommand(IPlanesServer.Instance.ComConnect, RPC.CommandTargetType.DefaultType, null).OnFarCallFinished = delegate(RPC.PackageProxy _io2, bool isTimeOut2) { _io2.Read(out result); if ((CSCommon.eRet_BuyConsignItem)result == CSCommon.eRet_BuyConsignItem.Succeed) { _ChangeMoney(CSCommon.eCurrenceType.Rmb, CSCommon.Data.eMoneyChangeType.BuyConsignItem, -price); } retPkg.Write(result); retPkg.DoReturnPlanes2Client(fwd); return; }; } else { retPkg.Write(result); retPkg.DoReturnPlanes2Client(fwd); return; } }; }
public void RPC_UpMartialLevel(byte type, RPC.RPCForwardInfo fwd) { RPC.PackageWriter pkg = new RPC.PackageWriter(); var build = GetBuild((CSCommon.eBuildType)type); if (build == null) { Log.Log.Item.Info("UpMartialLevel GetBuild Failed eBuildType : {0}", type); pkg.Write((sbyte)CSCommon.eRet_UpMartialLevel.NoBuild); pkg.DoReturnPlanes2Client(fwd); return; } sbyte result = build.UpLevel(); CreateOutPutToDict(build.OutPutInfo); pkg.Write(result); pkg.DoReturnPlanes2Client(fwd); }
public void RPC_TakeOffEquip(ulong equipId, RPC.RPCForwardInfo fwd) { return; RPC.PackageWriter pkg = new RPC.PackageWriter(); var equip = this.EquipBag.FindItemById(equipId); if (equip == null) { pkg.Write((sbyte)-1); pkg.DoReturnPlanes2Client(fwd); return; } this.EquipBag.RemoveItem(equip); this.Bag.AutoAddItem(equip); pkg.Write((sbyte)1); pkg.DoReturnPlanes2Client(fwd); }
public void RPC_ConsignItem(ulong itemId, int stack, int price, RPC.RPCForwardInfo fwd) { RPC.PackageWriter retPkg = new RPC.PackageWriter(); if (CSCommon.ItemCommon.Instance == null) { Log.Log.Item.Print("RPC_ConsignItem,CSCommon.ItemCommon.Instance == null"); retPkg.Write((sbyte)CSCommon.eRet_ConsignItem.LessTemp); retPkg.DoReturnPlanes2Client(fwd); return; } var rent = CSCommon.ItemCommon.Instance.Rent; int needPayRent = stack * rent; if (_IsMoneyEnough(CSCommon.eCurrenceType.Gold, needPayRent) == false) { retPkg.Write((sbyte)CSCommon.eRet_ConsignItem.LessRent); retPkg.DoReturnPlanes2Client(fwd); return; } var item = this.Bag.FindItemById(itemId); if (item.StackNum < stack) { retPkg.Write((sbyte)CSCommon.eRet_ConsignItem.LessStack); retPkg.DoReturnPlanes2Client(fwd); return; } //通知从comserver已寄售背包里面创建寄售的物品 RPC.PackageWriter pkg = new RPC.PackageWriter(); H_RPCRoot.smInstance.HGet_ComServer(pkg).HGet_UserRoleManager(pkg).RPC_ConsignItem(pkg, PlayerData.RoleDetail.RoleId, item.ItemData.ItemTemlateId, stack, price); pkg.WaitDoCommand(IPlanesServer.Instance.ComConnect, RPC.CommandTargetType.DefaultType, null).OnFarCallFinished = delegate(RPC.PackageProxy _io, bool isTimeOut) { sbyte result; _io.Read(out result); retPkg.Write(result); if (result == (sbyte)CSCommon.eRet_ConsignItem.Succeed) { _ChangeMoney(CSCommon.eCurrenceType.Gold, CSCommon.Data.eMoneyChangeType.ConsignItem, -needPayRent); this.Bag.RemoveItemCountById(itemId, stack); } retPkg.DoReturnPlanes2Client(fwd); }; }
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 void RPC_CastSpell(ulong targetId, int skillId, RPC.RPCForwardInfo fwd) { eSkillResult ret = eSkillResult.CastFailed; this.CastSpell(skillId, targetId, ref ret); RPC.PackageWriter retPkg = new RPC.PackageWriter(); retPkg.Write((sbyte)ret); retPkg.Write(skillId); retPkg.Write(targetId); retPkg.DoReturnPlanes2Client(fwd); }
public void RPC_Visit(byte type, ulong otherId, RPC.RPCForwardInfo fwd) { RPC.PackageWriter pkg = new RPC.PackageWriter(); H_RPCRoot.smInstance.HGet_ComServer(pkg).HGet_UserRoleManager(pkg).RPC_Visit(pkg, type, this.PlayerData.RoleDetail.RoleId, otherId); pkg.WaitDoCommand(IPlanesServer.Instance.ComConnect, RPC.CommandTargetType.DefaultType, null).OnFarCallFinished = delegate(RPC.PackageProxy _io, bool bTimeOut) { RPC.PackageWriter retPkg = new RPC.PackageWriter(); sbyte result = _io.ReadSByte(); retPkg.Write(result); retPkg.DoReturnPlanes2Client(fwd); }; }
public void RPC_WearEquip(int itemId, RPC.RPCForwardInfo fwd) { RPC.PackageWriter pkg = new RPC.PackageWriter(); var item = this.Bag.FindItemById(itemId); if (item == null) { pkg.Write((sbyte)CSCommon.eRet_WearEquip.NoItem); pkg.DoReturnPlanes2Client(fwd); return; } var temp = CSTable.ItemUtil.GetItem(item.ItemData.ItemTemlateId); if (temp == null) { pkg.Write((sbyte)CSCommon.eRet_WearEquip.NoTpl); pkg.DoReturnPlanes2Client(fwd); return; } if (temp.ItemType != (int)CSCommon.eItemType.Equip) { pkg.Write((sbyte)CSCommon.eRet_WearEquip.NotEquip); pkg.DoReturnPlanes2Client(fwd); return; } var etemp = temp as CSTable.ItemEquipData; UInt16 index = (UInt16)etemp.EquipType; var equip = this.EquipBag[index]; if (equip != null) { this.EquipBag.RemoveItem(equip); this.Bag.AutoAddItem(equip); } this.EquipBag.WearEquip(index, item); this.Bag.RemoveItem(item); CalcChangeType(eValueType.Equip); pkg.Write((sbyte)CSCommon.eRet_WearEquip.Succeed); pkg.DoReturnPlanes2Client(fwd); }
public void RPC_GetRewardTask(int npcId, int templateId, RPC.RPCForwardInfo fwd) { RPC.PackageWriter pkg = new RPC.PackageWriter(); var tpl = CSTable.StaticDataManager.TaskTpl[templateId]; if (null == tpl) { return; } if (PlayerData.RoleDetail.MapSourceId != tpl.FinishMapId) { pkg.Write((sbyte)-1); pkg.DoReturnPlanes2Client(fwd); return; } if (npcId != tpl.FinishNpcId) { pkg.Write((sbyte)-2); pkg.DoReturnPlanes2Client(fwd); return; } if (mCurTask.TaskState != CSCommon.eTaskState.Finished) { pkg.Write((sbyte)-3); pkg.DoReturnPlanes2Client(fwd); return; } GetReward(tpl.CurrencyReward, tpl.ItemsReward); mCurTask.SetTaskState(CSCommon.eTaskState.Rewarded); if (mCurTask.UpdateNextTask()) { AcceptTask(); } pkg.Write((sbyte)1); pkg.DoReturnPlanes2Client(fwd); }
public void RPC_UpCheats(int skillId, byte costType, RPC.RPCForwardInfo fwd) { RPC.PackageWriter pkg = new RPC.PackageWriter(); var sk = SkillMgr.GetSkill(skillId); if (sk == null) { pkg.Write((sbyte)eRet_UpSkillLv.NotLearn); pkg.DoReturnPlanes2Client(fwd); return; } var sktpl = CSTable.SkillUtil.GetSkillTpl(skillId); if (sktpl == null) { pkg.Write((sbyte)eRet_UpSkillLv.NoSkill); pkg.DoReturnPlanes2Client(fwd); return; } //升级 if (sk.Level >= PlayerData.RoleDetail.RoleLevel) { pkg.Write((sbyte)eRet_UpSkillLv.LessRoleLv); pkg.DoReturnPlanes2Client(fwd); return; } if (sk.Level >= sk.Data.maxLv) { pkg.Write((sbyte)eRet_UpSkillLv.MaxLv); pkg.DoReturnPlanes2Client(fwd); return; } //下级模板 var sklvtpl = CSTable.SkillUtil.GetSkillLevelTpl(skillId, sk.Level + 1); if (sklvtpl == null) { pkg.Write((sbyte)eRet_UpSkillLv.NoSkillLvTpl); pkg.DoReturnPlanes2Client(fwd); return; } sbyte result = UpCheats(sklvtpl, costType); if (result != (sbyte)eRet_UpSkillLv.Succeed) { pkg.Write(result); pkg.DoReturnPlanes2Client(fwd); return; } sk.Init(sklvtpl.id, (byte)sklvtpl.level); sk.SetOwner(this); pkg.Write((sbyte)eRet_UpSkillLv.Succeed); pkg.DoReturnPlanes2Client(fwd); }
public void RPC_FetchBarrack(RPC.RPCForwardInfo fwd) { byte succeed = 1; int totalForce = 50000; int captiveNum = 50000; int efficiency = 200; int level = 1; int forceLevel = 150; int totalStationed = 100000; int todayStationed = 10000; List <CSCommon.Data.CityForceData> cityData = new List <CityForceData>(); for (int i = 1; i <= 1; ++i) { CityForceData data = new CityForceData(); data.CityId = i; data.TotalForce = i * 10000; data.MyForceNum = i * 1000; cityData.Add(data); } int stationExp = 9999; int damageExp = 8888; int damageExpTime = 20; int damageItem = 10; int damageItemTime = 5; int addForceTime = 2; RPC.PackageWriter retPkg = new RPC.PackageWriter(); retPkg.Write(succeed); retPkg.Write(level); retPkg.Write(forceLevel); retPkg.Write(totalForce); retPkg.Write(captiveNum); retPkg.Write(efficiency); retPkg.Write(totalStationed); retPkg.Write(todayStationed); retPkg.Write((UInt16)cityData.Count); for (int i = 0; i < cityData.Count; ++i) { retPkg.Write(cityData[i].CityId); retPkg.Write(cityData[i].TotalForce); retPkg.Write(cityData[i].MyForceNum); } retPkg.Write(stationExp); retPkg.Write(damageExp); retPkg.Write(damageExpTime); retPkg.Write(damageItem); retPkg.Write(damageItemTime); retPkg.Write(addForceTime); retPkg.DoReturnPlanes2Client(fwd); }
public void RPC_GetItemCdInfo(RPC.RPCForwardInfo fwd) { RPC.PackageWriter retPkg = new RPC.PackageWriter(); Dictionary <int, ItemCoolDownTime> ItemCdList = CdManager.Instance.mItemCdList; retPkg.Write(ItemCdList.Count); foreach (var t in ItemCdList.Values) { retPkg.Write(t.Id); retPkg.Write(t.EndTime); retPkg.Write(t.Total); } retPkg.DoReturnPlanes2Client(fwd); }