Пример #1
0
        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);
            };
        }
Пример #2
0
        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);
            };
        }
Пример #3
0
 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);
     };
 }
Пример #4
0
 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);
     };
 }
Пример #5
0
        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;
        }
Пример #6
0
        public override string GetPlayerInfoString(RPC.RPCForwardInfo fwd)
        {
//             Planes.PlanesInstance planes = mServer.GetPlanes(fwd.PlanesIndexInServer);
//             if (planes == null)
//                 return "Unknown Planes";
            return("Unknown Planes");
        }
Пример #7
0
        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);
        }
Пример #8
0
        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);
        }
Пример #9
0
 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;
 }
Пример #10
0
        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);
        }
Пример #11
0
 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);
     };
 }
Пример #12
0
        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);
        }
Пример #13
0
        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);
        }
Пример #14
0
        //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);
        }
Пример #15
0
        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;
        }
Пример #16
0
        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);
        }
Пример #17
0
 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);
     };
 }
Пример #18
0
 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);
 }
Пример #19
0
        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);
        }
Пример #20
0
        public void RPC_LeaveTrigger(ulong triggerId, RPC.RPCForwardInfo fwd)
        {
//             var trigger = this.HostMap.GetTrigger(triggerId);
//             if (trigger == null)
//                 return;
//
//             trigger.ProcessActorLeave(this, 0.7f);
        }
Пример #21
0
        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);
        }
Пример #22
0
        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);
        }
Пример #23
0
        private static void _JumpMapDoReturnClient(RPC.RPCForwardInfo fwd, sbyte successed)
        {
//             if (fwd != null)
//             {
//                 var retPkg = new RPC.PackageWriter();
//                 retPkg.Write((sbyte)successed);
//                 retPkg.DoReturnPlanes2Client(fwd);
//             }
        }
Пример #24
0
        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);
        }
Пример #25
0
        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);
        }
Пример #26
0
        public void RPC_Revive(RPC.RPCForwardInfo fwd)
        {
            var player = IPlanesServer.Instance.GetPlayerByForwordInfo(fwd);

            if (player == null)
            {
                return;
            }
            player.Relive(CSCommon.eReliveMode.Current);
        }
Пример #27
0
        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);
        }
Пример #28
0
        public void RPC_AddExp(int exp, RPC.RPCForwardInfo fwd)
        {
            var player = IPlanesServer.Instance.GetPlayerByForwordInfo(fwd);

            if (player == null)
            {
                return;
            }
            player.GainExp(exp);
        }
Пример #29
0
        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);
        }
Пример #30
0
        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));
        }