Ejemplo n.º 1
0
    //公会刷新成员信息
    public void onGuilRefreshMemeber(Dictionary <string, object> data)
    {
        GuildMemberInfo info = ChangeMemberData(data);

        for (int i = 0; i < GuildMainMediator.mMyGuild.memberList.Count; i++)
        {
            GuildMemberInfo item = GuildMainMediator.mMyGuild.memberList[i];
            if (item.id == info.id)
            {
                GuildMainMediator.mMyGuild.memberList.Remove(item);
                GuildMainMediator.mMyGuild.memberList.Add(info);
            }
        }

        if (GUIManager.HasView("guildofficepanel"))
        {
            GuildOfficeMediator.guildOfficeMediator.SetMemberGridData();
        }
        if (GUIManager.HasView("guilddonationpanel"))
        {
            GuildDonationMediator.guilddonationMediator.SetDayDonateData();
            GuildDonationMediator.guilddonationMediator.SetDonationInfo();
        }
        if (GUIManager.HasView("guildinteractpanel"))
        {
            if (GuildInteractMediator.guildinteractMediator.mInfo.id != info.id)
            {
                return;
            }
            GuildInteractMediator.guildinteractMediator.mInfo = info;
            GuildInteractMediator.guildinteractMediator.SetPowerGridDate();
        }
    }
Ejemplo n.º 2
0
 //周贡献
 private int CompareWeekDonate(GuildMemberInfo info1, GuildMemberInfo info2)
 {
     if (info1.weekDonate > info2.weekDonate)
     {
         return(-1);
     }
     else if (info1.weekDonate < info2.weekDonate)
     {
         return(1);
     }
     else if (info1.onlineState < info2.onlineState)
     {
         return(-1);
     }
     else if (info1.onlineState > info2.onlineState)
     {
         return(1);
     }
     else if (info1.power > info2.power)
     {
         return(-1);
     }
     else if (info1.power < info2.power)
     {
         return(1);
     }
     else
     {
         return(0);
     }
 }
        public void SendMemberList(Player client, int startIndex)
        {
            if (startIndex < 0 || startIndex >= _members.Count)
            {
                return;
            }

            GuildMemberPacket msg;

            if (GuildMemberPacket.Create(out msg))
            {
                var count = 0;
                for (var i = startIndex; i < Amount && count < 12; i++)
                {
                    var member = _members[i];
                    var info   = new GuildMemberInfo
                    {
                        Name     = member.Name,
                        Rank     = member.Rank,
                        Donation = member.TotalDonation
                    };
                    msg.AddInfo(info);
                    count++;
                }

                client.Send(msg);
            }
        }
Ejemplo n.º 4
0
    //捐钱成功
    public void onGuildDonateSucc(object val, Dictionary <string, object> data)
    {
        GuildMainMediator.mMyGuild.guildFunds = GameConvert.IntConvert(val);
        GuildMemberInfo info = ChangeMemberData(data);

        for (int i = 0; i < GuildMainMediator.mMyGuild.memberList.Count; i++)
        {
            GuildMemberInfo item = GuildMainMediator.mMyGuild.memberList[i];
            if (item.id == info.id)
            {
                GuildMainMediator.mMyGuild.memberList.Remove(item);
                GuildMainMediator.mMyGuild.memberList.Add(info);
            }
        }
        if (GUIManager.HasView("guildmainpanel"))
        {
            GuildMainMediator.guildmainMediator.SetGuildFunds();
        }

        if (GUIManager.HasView("guilddonationpanel"))
        {
            GuildDonationMediator.guilddonationMediator.SetDayDonateData();
            GuildDonationMediator.guilddonationMediator.SetDonationInfo();
        }
    }
Ejemplo n.º 5
0
        /// <inheritdoc/>
        public bool DeleteGuildMember(GuildMemberInfo guildMember)
        {
            try
            {
                var repository = this.repositoryManager.GetRepository <GuildMemberInfo>();
                if (repository.Delete(guildMember))
                {
                    if (this.guildDictionary.TryGetValue(guildMember.GuildId, out GuildContainer guild))
                    {
                        guild.Members.Remove(guildMember.Name);
                        guild.Guild.Members.Remove(guildMember);
                    }

                    return(true);
                }

                return(false);
            }
            catch (Exception ex)
            {
                Log.Error(ex);
            }

            return(false);
        }
Ejemplo n.º 6
0
    //能否弹劾 领袖
    private bool GetIsImpeach()
    {
        bool isPower = GuildMainMediator.guildmainMediator.IsPowerEnough("13");

        if (!isPower)
        {
            return(false);
        }
        int needTime = GuildBaseConfig.GetGuildBase(1).impeachTime;

        for (int i = 0; i < GuildMainMediator.mMyGuild.memberList.Count; i++)
        {
            GuildMemberInfo info = GuildMainMediator.mMyGuild.memberList[i];
            if (info.power == 5 && info.onlineState > 1)
            {
                TimeSpan timeSpan = (DateTime.UtcNow - new DateTime(1970, 1, 1));
                int      cstName  = (int)timeSpan.TotalSeconds;
                int      leftTime = cstName - info.onlineState;
                if (leftTime >= needTime * 24 * 60 * 60)
                {
                    return(true);
                }
            }
        }
        return(false);
    }
Ejemplo n.º 7
0
        public static void Handle(Entities.GameClient client, DataPacket packet)
        {
            if (client.Guild == null)
            {
                return;
            }

            using (var info = new GuildMemberListPacket(packet))
            {
                Data.GuildMember[] members = client.Guild.SelectFromIndex(info.StartIndex);
                using (var sinfo = new GuildMemberListPacket(members.Length))
                {
                    foreach (Data.GuildMember member in members)
                    {
                        sinfo.AddInfo(GuildMemberInfo.Create(member));
                    }
                    int offset = 16;
                    foreach (GuildMemberInfo minfo in sinfo.MemberList)
                    {
                        minfo.Append(sinfo, offset, out offset);
                    }
                    client.Send(sinfo);
                }
            }
        }
        public void AddInfo(GuildMemberInfo info)
        {
            if ((MemberList.Count + 1) > Amount)
                return;

            MemberList.Add(info);
        }
Ejemplo n.º 9
0
    //公会开除
    public void onKictOutSucc(object val)
    {
        int roleId = GameConvert.IntConvert(val);

        for (int i = 0; i < GuildMainMediator.mMyGuild.memberList.Count; i++)
        {
            GuildMemberInfo info = GuildMainMediator.mMyGuild.memberList[i];
            if (info.id == roleId)
            {
                GuildMainMediator.mMyGuild.memberList.Remove(info);
            }
        }

        if (GUIManager.HasView("guildofficepanel"))
        {
            GuildOfficeMediator.guildOfficeMediator.SetMemberGridData();
        }
        if (GUIManager.HasView("guilddonationpanel"))
        {
            GuildDonationMediator.guilddonationMediator.SetDayDonateData();
            GuildDonationMediator.guilddonationMediator.SetDonationInfo();
        }
        if (GUIManager.HasView("guildinteractpanel"))
        {
            GuildInteractMediator.guildinteractMediator.SetPowerGridDate();
        }
    }
Ejemplo n.º 10
0
        public void AddInfo(GuildMemberInfo info)
        {
            if ((MemberList.Count + 1) > Amount)
            {
                return;
            }

            MemberList.Add(info);
        }
Ejemplo n.º 11
0
    protected override void OnShow(INotification notification)
    {
        if (guildinteractMediator == null)
        {
            guildinteractMediator = Facade.RetrieveMediator("GuildInteractMediator") as GuildInteractMediator;
        }

        mInfo = notification.Body as GuildMemberInfo;

        Init();
    }
Ejemplo n.º 12
0
    private void OnInteractClick(GameObject go)
    {
        UIGridItem      item = go.transform.parent.GetComponent <UIGridItem>();
        GuildMemberInfo info = item.oData as GuildMemberInfo;

        if (info.id == PlayerMediator.playerInfo.roleId)
        {
            return;
        }
        Facade.SendNotification(NotificationID.GuildInteract_Show, info);
    }
Ejemplo n.º 13
0
    //获取公会副会长及简介
    public void onGuildViceIntroduce(List <object> list, object val)
    {
        string introduce = GameConvert.StringConvert(val);
        List <GuildMemberInfo> listMember = new List <GuildMemberInfo>();
        GuildMemberInfo        info       = null;

        for (int i = 0; i < list.Count; i++)
        {
            Dictionary <string, object> data = list[i] as Dictionary <string, object>;
            info = ChangeMemberData(data);
            listMember.Add(info);
        }

        GuildInfoMediator.guildinfoMediator.SetGuildInfo(introduce, listMember);
    }
Ejemplo n.º 14
0
    private void UpdateDonationGridItem(UIGridItem item)
    {
        if (item == null || item.mScripts == null || item.oData == null)
        {
            return;
        }
        GuildMemberInfo info = item.oData as GuildMemberInfo;

        item.onClick = OnClickItem;
        UILabel name  = item.mScripts[0] as UILabel;
        UILabel money = item.mScripts[1] as UILabel;

        name.text  = info.playerName;
        money.text = info.dayDonate.ToString();
    }
Ejemplo n.º 15
0
    //获取职位数量
    private int GetGuildPowerNum(int power)
    {
        int num = 0;

        for (int i = 0; i < GuildMainMediator.mMyGuild.memberList.Count; i++)
        {
            GuildMemberInfo info = GuildMainMediator.mMyGuild.memberList[i];
            if (info.power == power)
            {
                num++;
            }
        }

        return(num);
    }
Ejemplo n.º 16
0
    //成员数据转换
    private GuildMemberInfo ChangeMemberData(Dictionary <string, object> data)
    {
        GuildMemberInfo info = new GuildMemberInfo();

        info.id          = GameConvert.IntConvert(data["dbid"]);
        info.playerName  = GameConvert.StringConvert(data["playerName"]);
        info.power       = GameConvert.IntConvert(data["power"]);
        info.level       = GameConvert.IntConvert(data["level"]);
        info.offical     = GameConvert.IntConvert(data["offical"]);
        info.dayDonate   = GameConvert.IntConvert(data["dayDonate"]);
        info.weekDonate  = GameConvert.IntConvert(data["weekDonate"]);
        info.sumDonate   = GameConvert.IntConvert(data["sumDonate"]);
        info.onlineState = GameConvert.IntConvert(data["onlineState"]);
        return(info);
    }
Ejemplo n.º 17
0
 private void OnClick(GameObject go)
 {
     if (go == panel.off_btn.gameObject)
     {
         Facade.SendNotification(NotificationID.GuildInfo_Hide);
     }
     else
     {
         if (mTransMemInfoDict.ContainsKey(go.transform))
         {
             GuildMemberInfo info = mTransMemInfoDict[go.transform];
             UtilTools.RoleShowInfo(info.id);
         }
         Facade.SendNotification(NotificationID.GuildInfo_Hide);
     }
 }
Ejemplo n.º 18
0
        public void SetGroupMemberInfo(HeroesGuildMemberInfo groupMemberInfo, HeroesDataContext context)
        {
            this.HeroesGuildMemberInfo = groupMemberInfo;
            string text = groupMemberInfo.CharacterName.RemoveServerHeader();
            GetCharacterInfoByName getCharacterInfoByName = context.GetCharacterInfoByName(text).FirstOrDefault <GetCharacterInfoByName>();
            int      level = (getCharacterInfoByName == null) ? 0 : getCharacterInfoByName.Level;
            long     cid   = (getCharacterInfoByName == null) ? -1L : getCharacterInfoByName.ID;
            long     guildCharacterPoint = context.GetGuildCharacterPoint(cid);
            DateTime?dateTime            = null;

            context.GetLatestConnectedDateByName(text, ref dateTime);
            DateTime lastLoginTime = (dateTime == null || dateTime == null) ? DateTime.UtcNow : dateTime.Value;

            this.Key             = new GuildMemberKey(cid, (int)groupMemberInfo.CharacterSN, groupMemberInfo.NexonSN, text);
            this.GuildMemberInfo = new GuildMemberInfo(text, level, groupMemberInfo.emGroupUserType.ToGuildMemberRank(), guildCharacterPoint, lastLoginTime, this.Parent.OnlineMembers.ContainsKey(text));
        }
Ejemplo n.º 19
0
    //离线时间
    private int CompareOutLineTime(GuildMemberInfo info1, GuildMemberInfo info2)
    {
        if (info1.onlineState == 1 || info2.onlineState == 1)
        {
            if (info1.onlineState < info2.onlineState)
            {
                return(1);
            }
            else if (info1.onlineState > info2.onlineState)
            {
                return(-1);
            }
            else if (info1.power > info2.power)
            {
                return(-1);
            }
            else if (info1.power < info2.power)
            {
                return(1);
            }
        }
        else
        {
            if (info1.onlineState > info2.onlineState)
            {
                return(1);
            }
            else if (info1.onlineState < info2.onlineState)
            {
                return(-1);
            }
            else if (info1.power > info2.power)
            {
                return(-1);
            }
            else if (info1.power < info2.power)
            {
                return(1);
            }
        }

        return(0);
    }
Ejemplo n.º 20
0
    public override void SetInfo(object data)
    {
        _info                = (GuildMemberInfo)data;
        _txtName.text        = _info.Name;
        _txtLevel.text       = _info.Level.ToString();
        _txtPosition.text    = GuildManager.Instance.GetPositionText(_info.Position);
        _txtFightScore.text  = _info.FightScore.ToString();
        _txtActiveScore.text = _info.ActiveScore.ToString();
        _txtTime.text        = GuildManager.Instance.GetLoginTimeString(_info.LoginTime.GetTime());

        if (_info.LoginTime.GetTime() > 0)
        {
            _txtTime.color = _offlineColor;
        }
        else
        {
            _txtTime.color = _onlineColor;
        }
    }
Ejemplo n.º 21
0
        /// <inheritdoc/>
        public bool UpdateGuildMember(GuildMemberInfo guildMember)
        {
            try
            {
                if (this.guildDictionary.TryGetValue(guildMember.GuildId, out GuildContainer guild))
                {
                    using (this.repositoryManager.UseContext(guild.DatabaseContext))
                    {
                        var guildMemberInfo = guild.Members[guildMember.Name];
                        guildMemberInfo.Status = guildMember.Status; // its just the status which can be changed
                        return(guild.DatabaseContext.SaveChanges());
                    }
                }
            }
            catch (Exception ex)
            {
                Log.Error(ex);
            }

            return(false);
        }
Ejemplo n.º 22
0
    //刷新成员列表
    private void UpdateMemberGrid(UIGridItem item)
    {
        if (item == null || item.mScripts == null || item.oData == null)
        {
            return;
        }
        GuildMemberInfo memberinfo         = item.oData as GuildMemberInfo;
        UITexture       portrait_texture   = item.mScripts[0] as UITexture;
        UILabel         post_label         = item.mScripts[1] as UILabel;
        UILabel         name_label         = item.mScripts[2] as UILabel;
        UILabel         G_post_label       = item.mScripts[3] as UILabel;
        UILabel         level_label        = item.mScripts[4] as UILabel;
        UILabel         weekgongxian_label = item.mScripts[5] as UILabel;
        UILabel         allgongxian_label  = item.mScripts[6] as UILabel;
        UISprite        interaction_btn    = item.mScripts[7] as UISprite;
        UILabel         state_label        = item.mScripts[8] as UILabel;

        name_label.text         = memberinfo.playerName;
        post_label.text         = TextManager.GetUIString("UIGuildPower" + memberinfo.power);
        G_post_label.text       = TextManager.GetUIString("UIOffical" + memberinfo.offical);
        level_label.text        = memberinfo.level.ToString();
        weekgongxian_label.text = memberinfo.weekDonate.ToString();
        allgongxian_label.text  = memberinfo.sumDonate.ToString();

        interaction_btn.transform.GetComponent <UIButton>().isEnabled = PlayerMediator.playerInfo.roleId != memberinfo.id;
        if (memberinfo.onlineState > 1)
        {
            TimeSpan timeSpan = (DateTime.UtcNow - new DateTime(1970, 1, 1));
            int      cstName  = (int)timeSpan.TotalSeconds;
            state_label.color = Color.white;
            state_label.text  = string.Format(TextManager.GetUIString("UIFriend2"), UtilTools.GetMaxTimeFomat(cstName - memberinfo.onlineState));
        }
        else
        {
            state_label.color = Color.green;
            state_label.text  = TextManager.GetUIString("UIFriend1");
        }

        UIEventListener.Get(interaction_btn.transform.gameObject).onClick = OnInteractClick;
    }
Ejemplo n.º 23
0
 //日贡献
 private int CompareDayDonate(GuildMemberInfo info1, GuildMemberInfo info2)
 {
     if (info1.dayDonate > info2.dayDonate)
     {
         return(-1);
     }
     else if (info1.dayDonate < info2.dayDonate)
     {
         return(1);
     }
     else if (info1.onlineState < info2.onlineState)
     {
         return(-1);
     }
     else if (info1.onlineState > info2.onlineState)
     {
         return(1);
     }
     else
     {
         return(0);
     }
 }
Ejemplo n.º 24
0
    //公会成员列表信息
    public void onGuildMemberList(List <object> list)
    {
        MyGuildInfo guild = GuildMainMediator.mMyGuild;

        guild.memberList.Clear();

        GuildMemberInfo info = null;

        for (int i = 0; i < list.Count; i++)
        {
            Dictionary <string, object> data = list[i] as Dictionary <string, object>;
            info = ChangeMemberData(data);
            guild.memberList.Add(info);
        }

        if (GUIManager.HasView("guildofficepanel"))
        {
            GuildOfficeMediator.guildOfficeMediator.SetMemberGridData();
        }
        if (GUIManager.HasView("guilddonationpanel"))
        {
            GuildDonationMediator.guilddonationMediator.SetDayDonateData();
        }
    }
Ejemplo n.º 25
0
    private void OnClickItem(UIGridItem item)
    {
        GuildMemberInfo info = item.oData as GuildMemberInfo;

        UtilTools.RoleShowInfo(info.id);
    }
Ejemplo n.º 26
0
        /// <inheritdoc/>
        public Guild CreateGuild(string name, string masterName, Guid masterId, byte[] logo, out ushort shortGuildId, out GuildMemberInfo masterGuildMemberInfo)
        {
            shortGuildId = NonGuild;
            var context = this.repositoryManager.CreateNewContext();

            using (this.repositoryManager.UseContext(context))
            {
                var guild = this.repositoryManager.CreateNew <Guild>();
                guild.Name     = name;
                guild.Master   = masterName;
                guild.MasterId = masterId;
                guild.Logo     = logo;

                masterGuildMemberInfo             = this.repositoryManager.CreateNew <GuildMemberInfo>();
                masterGuildMemberInfo.GuildId     = guild.Id;
                masterGuildMemberInfo.CharacterId = masterId;
                masterGuildMemberInfo.Name        = masterName;
                masterGuildMemberInfo.Status      = GuildPosition.GuildMaster;
                guild.Members.Add(masterGuildMemberInfo);

                if (context.SaveChanges())
                {
                    var container = this.CreateGuildContainer(guild, context);
                    shortGuildId = container.ShortId;
                    return(guild);
                }
            }

            return(null);
        }