Ejemplo n.º 1
0
        private void HireFollowerMessageImpl(NetIncomingMessage im, MessageBase msg)
        {
            var hireMsg = msg as HireFollowerMessage;
            var r       = new HireResultMessage();

            if (AdventurePluginDB.User.Get(hireMsg.PlayerId) != null)
            {
                r.Result = OkTag;
                var follower = AdventurePluginDB.PlayerFollower.GetPlayerFollower(hireMsg.PlayerId);

                var ObjectIdList = new List <int>();
                foreach (var id in hireMsg.FollowerId)
                {
                    var objId = ObjectId;
                    r.Followers.Add(new KeyValuePair <int, int>(objId, id));
                    ObjectIdList.Add(objId);

                    var info = new FollowerInfo()
                    {
                        FollowerID = id,
                        ObjectID   = objId,
                    };
                    AdventurePluginDB.Follower.Create(info);
                }

                follower.FollowerList.AddRange(ObjectIdList);
                AdventurePluginDB.PlayerFollower.Update(follower);
            }
            else
            {
                r.Result = ErrorTag;
            }
            SharedServer.SendMessage(r, im.SenderConnection);
        }
Ejemplo n.º 2
0
        private void btnSendFollowerRequest_Click(object sender, RoutedEventArgs e)
        {
            tbJsonResponse.Clear();
            FollowerInfo followerInfoResponse = DiabloService.GetFollowerInfo(RequestParameters.REGIONS.EU, RequestParameters.FOLLOWERS.TEMPLAR, "en_GB", tbApiKey.Text);
            string       output = JsonConvert.SerializeObject(followerInfoResponse, Formatting.Indented, new JsonSerializerSettings {
                NullValueHandling = NullValueHandling.Ignore
            });

            tbJsonResponse.Text = output;
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Returns follower information
        /// </summary>
        /// <param name="region">Player region</param>
        /// <param name="follower">Chosen follower</param>
        /// <param name="locale">Language code (locale)</param>
        /// <returns></returns>
        public static FollowerInfo GetFollowerInfo(RequestParameters.REGIONS region, RequestParameters.FOLLOWERS follower, string locale, string apiKeyValue)
        {
            using (HttpWebResponse response = RequestHandler.CreateFollowerRequest(region, Enum.GetName(typeof(RequestParameters.FOLLOWERS), follower).ToLower(), locale, apiKeyValue))
            {
                if (response.StatusCode != HttpStatusCode.OK)
                {
                    throw new Exception(String.Format("Server error (HTTP {0}: {1}).", response.StatusCode, response.StatusDescription));
                }

                DataContractJsonSerializer jsonSerializer = new DataContractJsonSerializer(typeof(FollowerInfo));
                object       objResponse  = jsonSerializer.ReadObject(response.GetResponseStream());
                FollowerInfo jsonResponse = objResponse as FollowerInfo;
                return(jsonResponse);
            }
        }
Ejemplo n.º 4
0
        private void RegisterMessageImpl(NetIncomingMessage im, MessageBase msg)
        {
            var registerMsg = msg as RegisterMessage;
            var r           = new RegisterResultMessage();

            if (AdventurePluginDB.User.Get(registerMsg.Name, registerMsg.Pass) == null)
            {
                var user = new UserInfo
                {
                    Name = registerMsg.Name,
                    Pass = registerMsg.Pass,
                };
                var id = AdventurePluginDB.User.Create(user);

                const int FreeId = 2; // 赠送路人乙

                var objid = ObjectId;
                var info  = new FollowerInfo()
                {
                    FollowerID = FreeId,
                    ObjectID   = objid,
                };
                AdventurePluginDB.Follower.Create(info);

                AdventurePluginDB.Customer.Create(new CustomerInfo()
                {
                    PlayerId = id,
                });
                AdventurePluginDB.PlayerFollower.Create(new PlayerFollowerInfo()
                {
                    PlayerId     = id,
                    FollowerList = { objid }
                });

                r.PlayerId = id;
                r.Result   = OkTag;
            }
            else
            {
                r.Result = ErrorTag;
            }
            SharedServer.SendMessage(r, im.SenderConnection);
        }
Ejemplo n.º 5
0
 public bool Update(FollowerInfo obj)
 {
     return(col.Update(obj.id, obj));
 }
Ejemplo n.º 6
0
        public int Create(FollowerInfo user)
        {
            var r = col.Insert(user);

            return(r.AsInt32);
        }
Ejemplo n.º 7
0
        // 列表排序
        public static long SortEquipments(ListViewSort.SortKind kind, FollowerInfo followerInfo, int followerIndex, long sortValue2)
        {
            var  leaderinfo = followerInfo.getServantLeaderInfo(followerIndex);
            long score      = (leaderinfo != null) ? (leaderinfo.lv << 4 | leaderinfo.limitCount) : 0;
            int  esvtid     = followerInfo.getEquipSvtId(followerIndex);

            if (esvtid > 0)
            {
                bool totsu = followerInfo.getEquipLimitCount(followerIndex) == 4;
                if (ListViewSort.SortKind.COST == kind)
                {
                    SkillDetailEntity sdent = SingletonMonoBehaviour <DataManager> .Instance.getMasterData(DataNameKind.Kind.SKILL_DETAIL).getEntityFromId <SkillDetailEntity>(followerInfo.getEquipSkillId(followerIndex));

                    if (sdent != null && sdent.detail.Contains("活动期间限定"))
                    {
                        ServantLimitEntity slent = SingletonMonoBehaviour <DataManager> .Instance.getMasterData(DataNameKind.Kind.SERVANT_LIMIT).getEntityFromId <ServantLimitEntity>(esvtid, followerInfo.getEquipLimitCount(followerIndex));

                        long rare = slent.rarity; // 最大8(4bit)为止
                        if (customSortValue > 0 && customSortValue == esvtid)
                        {
                            rare = 8;
                        }

                        if (customSortValue != 1)
                        {
                            // 稀有优先
                            score |= rare << 13 | Convert.ToInt64(totsu) << 12;
                        }
                        else
                        {
                            // 突破优先
                            score |= rare << 12 | Convert.ToInt64(totsu) << 16;
                        }
                    }
                    sortValue2 = score;
                }
                else if (kind == ListViewSort.SortKind.CLASS)
                {
                    score |= Convert.ToInt64(totsu) << 12;
                    ServantEntity sent = SingletonMonoBehaviour <DataManager> .Instance.getMasterData(DataNameKind.Kind.SERVANT).getEntityFromId <ServantEntity>(esvtid);

                    if (sent.name.Contains("英灵肖像")) // 絆礼装
                    {
                        score |= 6 << 13;
                    }
                    if (sent.id == 9400360) // 旅途的开始
                    {
                        score |= 5 << 13;
                    }
                    if (sent.id == 9401710 && totsu) // 个人练习 礼装EXP10%
                    {
                        score |= 4 << 13;
                    }
                    if (sent.id == 9400780 && totsu) // 蒙娜丽莎 QP10%
                    {
                        score |= 3 << 13;
                    }
                    if (sent.id == 9401340 && totsu) // パーソナル・トレーニング凸 マスターEXP10%
                    {
                        score |= 2 << 13;
                    }
                    else if (sent.id == 9400340) // カレイドスコープ
                    {
                        score |= 1 << 13;
                    }
                    sortValue2 = score;
                }
            }
            return(sortValue2);
        }