Example #1
0
 public PlayerInfo Read(BinaryReader br)
 {
     Pid = br.ReadUInt64();
     Uid = br.ReadUInt32();
     if (br.ReadByte() == (byte)SerializeObjectMark.Common)
     {
         Name = br.ReadString();
     }
     Level = br.ReadUInt32();
     if (br.ReadByte() == (byte)SerializeObjectMark.Common)
     {
         Skill = (new PlayerInfoSkill()).Read(br);
     }
     if (br.ReadByte() == (byte)SerializeObjectMark.Common)
     {
         Item = (new PlayerInfoItem()).Read(br);
     }
     return(this);
 }
        public async Task<bool> AskLearnSkill(ulong pid, uint skillId)
        {
            if (!await CheckValid(pid))
            {
                return false;
            }

            using (var accesser = await Program.CacheService.GetPlayerInfoAccesser(pid))
            {
                var infoSkill = await accesser.LoadSkillAtPlayerInfoAsync();

                Console.WriteLine("LogicServiceImpl.AskLearnSkill load InfoSkill complete pid={0}", pid);

                if (infoSkill == null)
                {
                    Console.WriteLine("LogicServiceImpl.AskLearnSkill InfoSkill is null pid={0}", pid);
                    infoSkill = new PlayerInfoSkill() { SkillList = new List<uint>() };
                }
                if (infoSkill.SkillList == null)
                {
                    infoSkill.SkillList = new List<uint>();
                }

                infoSkill.SkillList.Add(skillId);

                accesser.UpdateSkillAtPlayerInfo(infoSkill);

                await accesser.SubmitChanges();

                Program.Logic2CliService.Forward(sessionId).ServerMessageOk();

                return true;
            }
        }
 public PlayerInfo Read(BinaryReader br)
 {
     Pid = br.ReadUInt64();
     Uid = br.ReadUInt32();
     if (br.ReadByte() == (byte)SerializeObjectMark.Common)
     {
         Name = br.ReadString();
     }
     Level = br.ReadUInt32();
     if (br.ReadByte() == (byte)SerializeObjectMark.Common)
     {
         Skill = (new PlayerInfoSkill()).Read(br);
     }
     if (br.ReadByte() == (byte)SerializeObjectMark.Common)
     {
         Item = (new PlayerInfoItem()).Read(br);
     }
     return this;
 }