コード例 #1
0
        public void SynchroInfo(bool announce = false)
        {
            var info  = GetInfo();
            var guild = GuildManager.GetGuild(GuildId);

            _client.Send(GuildAttrInfoPacket.Create(info, guild));
            //_client.Send(GuildDonationPacket.Create(info));

            if (guild != null)
            {
                guild.SendAllyList(_client);
                guild.SendEnemyList(_client);
            }

            _client.SendToScreen(Packets.Game.SpawnEntityPacket.Create(_client), true);


            if (announce)
            {
                string ann = string.Empty;
                if (guild != null)
                {
                    var master = guild.MasterGuild;
                    ann = master.Announce;
                }
                _client.SendMessage(ann);
            }
        }
コード例 #2
0
        public bool LeaveGuild(bool deleteRecord = true, bool synchro = true)
        {
            if (_data == null)
            {
                return(false);
            }

            var oldGuildId = GuildId;

            if (deleteRecord)
            {
                ServerDatabase.Context.GuildAttributes.Remove(_data);
            }
            _data = null;

            if (synchro)
            {
                var guild = GuildManager.GetGuild(oldGuildId);
                if (guild != null && guild.Amount > 0)
                {
                    guild.Amount--;
                    guild.RemoveMemberList(_client.Name);
                }

                SynchroInfo();
            }

            return(true);
        }
コード例 #3
0
        public bool DisbandGuild()
        {
            var guildId = GuildId;

            if (guildId == 0)
            {
                return(false);
            }

            if (Rank != GuildRank.GuildLeader)
            {
                _client.SendSysMessage("You have not been authorized!");
                return(false);
            }

            uint masterGuildId = 0;
            var  guild         = GuildManager.GetGuild(guildId);

            if (guild != null)
            {
                masterGuildId = guild.FealtyGuild;
            }

            GuildManager.DestroyGuild(guildId, masterGuildId);
            return(true);
        }
コード例 #4
0
        public bool JoinGuild(uint id, GuildRank rank = GuildRank.Member, int donation = 0)
        {
            if (_data != null)
            {
                return(false);
            }

            _data = new DbGuildAttr
            {
                Id       = _client.UID,
                GuildId  = id,
                Rank     = rank,
                JoinDate = (uint)Common.Clock
            };
            ServerDatabase.Context.GuildAttributes.AddOrUpdate(_data);

            var guild = GuildManager.GetGuild(GuildId);

            if (guild != null)
            {
                guild.Amount++;
                guild.SaveInfo();
            }

            AddMemberList(id, _client.Name, Rank, _client.Level);

            SynchroInfo(true);
            if (guild != null)
            {
                guild.SendInfoToClient(_client);
            }

            return(true);
        }
コード例 #5
0
        public bool SetRank(GuildRank rank, bool leader = false)
        {
            if (!(rank != GuildRank.GuildLeader && _data.Rank != GuildRank.GuildLeader || leader))
            {
                return(false);
            }

            var guild = GuildManager.GetGuild(GuildId);

            if (guild == null)
            {
                return(false);
            }

            _data.Rank = rank;
            SaveInfo();

            if (!guild.EditMemberList(_client.Name, rank))
            {
                return(false);
            }

            SynchroInfo();
            return(true);
        }
コード例 #6
0
        public bool SendPromotionInfoToClient()
        {
            if (GuildId == 0)
            {
                return(false);
            }

            var guild = GuildManager.GetGuild(GuildId);

            if (guild == null)
            {
                return(false);
            }

            var msg = GuildPackets.Create(GuildAction.PromoteInfo, 0, 0);

            msg.Strings.AddString(guild.GetRankString(GuildRank.GuildLeader));
            msg.Strings.AddString(guild.GetRankString(GuildRank.DeputyLeader));
            //msg.Strings.AddString("980 0 1 0 650");
            //msg.Strings.AddString("880 0 1 0 320");
            //msg.Strings.AddString("840 0 1 0 270");
            //msg.Strings.AddString("680 0 1 0 100");
            //msg.Strings.AddString("602 0 0 0 0");
            _client.Send(msg);

            return(true);
        }
コード例 #7
0
        public bool SendInfoToClient()
        {
            var info = GetInfo();

            var guild = GuildManager.GetGuild(GuildId);

            if (guild != null)
            {
                guild = guild.MasterGuild;
            }

            _client.Send(GuildAttrInfoPacket.Create(info, guild));

            if (guild != null)
            {
                var msgAnnounce = Redux.Packets.Game.GuildPackets.Create(GuildAction.SetAnnounce, guild.AnnounceDate, 0);
                msgAnnounce.Strings.AddString(guild.Announce);
                _client.Send(msgAnnounce);

                guild.SendAllyList(_client);
                guild.SendEnemyList(_client);
            }

            return(true);
        }
コード例 #8
0
        public bool BoostDonateMoney(uint money)
        {
            if (_data == null)
            {
                return(false);
            }
            if (money <= 0)
            {
                return(false);
            }

            var guild = GuildManager.GetGuild(GuildId);

            if (guild == null)
            {
                return(false);
            }

            guild = guild.MasterGuild;
            if (guild == null)
            {
                return(false);
            }

            guild.Money += money;
            AddSilverDonation(money);
            guild.EditMemberList(_client.Name, SilverDonation);

            SynchroInfo();
            return(true);
        }
コード例 #9
0
        public static void On_WorldClient_AcademyMemberLeft(WorldConnector pConnector, InterPacket pPacket)
        {
            int guildID, characterID;

            if (!pPacket.TryReadInt(out guildID) ||
                !pPacket.TryReadInt(out characterID))
            {
                return;
            }


            Guild guild;

            if (GuildManager.GetGuildByID(guildID, out guild))
            {
                GuildAcademyMember member;
                if (guild.Academy.GetMember(characterID, out member))
                {
                    guild.Academy.Members.Remove(member);
                    member.Dispose();


                    ZoneCharacter character;
                    if (CharacterManager.GetLoggedInCharacter(characterID, out character))
                    {
                        character.Guild              = null;
                        character.GuildAcademy       = null;
                        character.GuildAcademyMember = null;


                        GuildManager.RemoveGuildBuff(character);
                    }
                }
            }
        }
コード例 #10
0
        /// <summary>
        /// Does the actual handling of promoting a guild member.
        /// </summary>
        /// <param name="invoker">The guild member is who promoting the <paramref name="target"/>.</param>
        /// <param name="target">The guild member being promoted.</param>
        /// <returns>True if the <paramref name="invoker"/> successfully promoted the <paramref name="target"/>;
        /// otherwise false.</returns>
        protected virtual bool InternalTryPromoteMember(IGuildMember invoker, IGuildMember target)
        {
            // Promote
            ++target.GuildRank;

            if (target.GuildRank > invoker.GuildRank)
            {
                const string errmsg =
                    "Somehow, when `{0}` promoted `{1}`, their rank [{2}] ended up greater than that of" +
                    " the member who promoted them [{3}].";
                if (log.IsErrorEnabled)
                {
                    log.ErrorFormat(errmsg, invoker, target, target.GuildRank, invoker.GuildRank);
                }
                Debug.Fail(string.Format(errmsg, invoker, target, target.GuildRank, invoker.GuildRank));
                target.GuildRank = invoker.GuildRank;
            }

            // Log the event
            GuildManager.LogEvent(invoker, GuildEvents.Promote, target);

            if (MemberPromoted != null)
            {
                MemberPromoted.Raise(invoker, EventArgsHelper.Create(target));
            }

            OnMemberPromoted(invoker, target);

            return(true);
        }
コード例 #11
0
ファイル: GuildTest.cs プロジェクト: tai-engineer/Imgeneus
        public async Task CanCreateGuild_SuccessTest()
        {
            var config = new GuildConfiguration()
            {
                MinMembers = 2
            };

            var character1 = CreateCharacter(testMap);
            var character2 = CreateCharacter(testMap);

            var party = new Party();

            character1.SetParty(party);
            character2.SetParty(party);

            var database = new Mock <IDatabase>();

            database.Setup(x => x.Characters.FindAsync(character1.Id)).ReturnsAsync(new DbCharacter());
            database.Setup(x => x.Characters.FindAsync(character2.Id)).ReturnsAsync(new DbCharacter());

            var guildManager = new GuildManager(guildLoggerMock.Object, config, new GuildHouseConfiguration(), database.Object, gameWorldMock.Object, timeMock.Object);
            var result       = await guildManager.CanCreateGuild(character1, "guild_name");

            Assert.Equal(GuildCreateFailedReason.Success, result);
        }
コード例 #12
0
 private void OnQuery_JOIN()
 {
     GameSection.StayEvent();
     MonoBehaviourSingleton <GuildManager> .I.SendRequestJoin(_clanId, -1, delegate(bool isSuccess, Error error)
     {
         InGameGuildInvitedJoinDialog inGameGuildInvitedJoinDialog = this;
         DoWaitProtocolBusyFinish(delegate
         {
             if (!GuildManager.IsValidInGuild())
             {
                 GameSection.ChangeStayEvent("REQUEST", null);
             }
             GameSection.ResumeEvent(isSuccess, null);
             if (GuildManager.IsValidInGuild())
             {
                 MonoBehaviourSingleton <GuildManager> .I.guildInviteList.Clear();
                 MonoBehaviourSingleton <UserInfoManager> .I.ClearPartyInvite();
                 MonoBehaviourSingleton <UIManager> .I.invitationButton.Close(UITransition.TYPE.CLOSE);
                 MonoBehaviourSingleton <UIManager> .I.invitationInGameButton.Close(UITransition.TYPE.CLOSE);
                 MonoBehaviourSingleton <UserInfoManager> .I.showJoinClanInGame = true;
                 inGameGuildInvitedJoinDialog.BackToHome();
             }
         });
     });
 }
コード例 #13
0
        public bool Create()
        {
            if (_data != null)
            {
                return(false);
            }
            if (_client == null)
            {
                return(false);
            }

            _data = ServerDatabase.Context.GuildAttributes.GetById(_client.UID);
            if (_data == null)
            {
                return(true);
            }

            if (GuildManager.GetGuild(GuildId) == null)
            {
                _data = null;
                return(true);
            }

            return(true);
        }
コード例 #14
0
        public void ReloadGuild(TPlayObject PlayObject, string[] @Params)
        {
            int    nPermission = @Params.Length > 0 ? int.Parse(@Params[0]) : 0;
            string sParam1     = @Params.Length > 1 ? @Params[1] : "";

            if ((sParam1 == "") || ((sParam1 != "") && (sParam1[1] == '?')))
            {
                PlayObject.SysMsg(String.Format(GameMsgDef.g_sGameCommandParamUnKnow, this.Attributes.Name, GameMsgDef.g_sGameCommandReloadGuildHelpMsg),
                                  TMsgColor.c_Red, TMsgType.t_Hint);
                return;
            }
            if (M2Share.nServerIndex != 0)
            {
                PlayObject.SysMsg(GameMsgDef.g_sGameCommandReloadGuildOnMasterserver, TMsgColor.c_Red, TMsgType.t_Hint);
                return;
            }
            TGUild Guild = GuildManager.FindGuild(sParam1);

            if (Guild == null)
            {
                PlayObject.SysMsg(String.Format(GameMsgDef.g_sGameCommandReloadGuildNotFoundGuildMsg, sParam1), TMsgColor.c_Red, TMsgType.t_Hint);
                return;
            }
            Guild.LoadGuild();
            PlayObject.SysMsg(String.Format(GameMsgDef.g_sGameCommandReloadGuildSuccessMsg, sParam1), TMsgColor.c_Red, TMsgType.t_Hint);
            // UserEngine.SendServerGroupMsg(SS_207, nServerIndex, sParam1);
        }
コード例 #15
0
        public async Task CanCreateGuild_GuildNameTest()
        {
            var guildManager = new GuildManager(guildLoggerMock.Object, new GuildConfiguration(), new GuildHouseConfiguration(), databaseMock.Object, gameWorldMock.Object, timeMock.Object, inventoryMock.Object, partyMock.Object, countryMock.Object, etinMock.Object);
            var result       = await guildManager.CanCreateGuild("");

            Assert.Equal(GuildCreateFailedReason.WrongName, result);
        }
コード例 #16
0
ファイル: FoxDb.cs プロジェクト: Kiritsu/FoxBot
        public FoxDb(LogService lgr, ConfigurationService cfg)
        {
            Logger        = lgr;
            Configuration = cfg;

            LiteCollection <GuildEntity>   lcGuild;
            LiteCollection <UserEntity>    lcUser;
            LiteCollection <MemberEntity>  lcMember;
            LiteCollection <ChannelEntity> lcChannel;

            if (!Directory.Exists("databases"))
            {
                Directory.CreateDirectory("databases");
            }

            using (var guilds = new LiteDatabase($"Filename=databases/guilds.db; Password={cfg.DbPassword}"))
            {
                lcGuild = guilds.GetCollection <GuildEntity>("guilds");
            }

            using (var users = new LiteDatabase($"Filename=databases/users.db; Password={cfg.DbPassword}"))
            {
                lcUser = users.GetCollection <UserEntity>("users");
            }

            using (var members = new LiteDatabase($"Filename=databases/members.db; Password={cfg.DbPassword}"))
            {
                lcMember = members.GetCollection <MemberEntity>("members");
            }

            using (var channels = new LiteDatabase($"Filename=databases/channels.db; Password={cfg.DbPassword}"))
            {
                lcChannel = channels.GetCollection <ChannelEntity>("channels");
            }

            var mapper = BsonMapper.Global;

            mapper.Entity <ChannelEntity>()
            .Ignore(x => x.Region);

            lcGuild.EnsureIndex(x => x.Id);
            lcUser.EnsureIndex(x => x.Id);
            lcMember.EnsureIndex(x => x.Id);
            lcChannel.EnsureIndex(x => x.Id);

            _dbEntities = new List <object>
            {
                lcGuild,
                lcUser,
                lcMember,
                lcChannel
            };

            GuildManager   = new GuildManager(this);
            MemberManager  = new MemberManager(this);
            UserManager    = new UserManager(this);
            ChannelManager = new ChannelManager(this);

            lgr.Print(LogLevel.Info, "Database", "Database loaded with success.");
        }
コード例 #17
0
        public static void On_WorldClient_AcademyMemberOnline(WorldConnector pConnector, InterPacket pPacket)
        {
            int guildID, characterID;

            if (!pPacket.TryReadInt(out guildID) ||
                !pPacket.TryReadInt(out characterID))
            {
                return;
            }


            Guild guild;

            if (GuildManager.GetGuildByID(guildID, out guild))
            {
                GuildAcademyMember member;
                if (guild.Academy.GetMember(characterID, out member))
                {
                    member.IsOnline = true;


                    ZoneCharacter character;
                    if (CharacterManager.GetLoggedInCharacter(characterID, out character))
                    {
                        character.Guild              = guild;
                        character.GuildAcademy       = guild.Academy;
                        character.GuildAcademyMember = member;

                        member.Character = character;
                    }
                }
            }
        }
コード例 #18
0
ファイル: MsgrClient.cs プロジェクト: xKamuna/aura-1
        public override void CleanUp()
        {
            if (this.User == null)
            {
                return;
            }

            MsgrServer.Instance.UserManager.Remove(this.User);

            // Notify friends about user going offline
            var friendUsers = MsgrServer.Instance.UserManager.Get(this.User.GetFriendIds());

            if (friendUsers.Count != 0)
            {
                Network.Send.FriendOffline(friendUsers, this.User);
            }

            var guild = MsgrServer.Instance.GuildManager.FindGuildWithMember(this.User.CharacterId);

            if (guild != null)
            {
                var member = guild.GetMember(this.User.CharacterId);
                GuildManager.ForOnlineMembers(guild, memberUser => Network.Send.GuildMemberState(memberUser.Client, guild, member, this.User, ContactStatus.Offline));
            }
        }
コード例 #19
0
        public void ReloadGuild(TPlayObject PlayObject, string[] @Params)
        {
            string sParam1 = @Params.Length > 0 ? @Params[0] : "";

            if ((sParam1 == "") || ((sParam1 != "") && (sParam1[0] == '?')))
            {
                if (GameConfig.boGMShowFailMsg)
                {
                    PlayObject.SysMsg(string.Format(GameMsgDef.g_sGameCommandParamUnKnow, Attributes.Name, GameMsgDef.g_sGameCommandReloadGuildHelpMsg), TMsgColor.c_Red, TMsgType.t_Hint);
                }
                return;
            }
            if (M2Share.nServerIndex != 0)
            {
                PlayObject.SysMsg(GameMsgDef.g_sGameCommandReloadGuildOnMasterserver, TMsgColor.c_Red, TMsgType.t_Hint);
                return;
            }
            TGUild Guild = GuildManager.FindGuild(sParam1);

            if (Guild == null)
            {
                PlayObject.SysMsg(string.Format(GameMsgDef.g_sGameCommandReloadGuildNotFoundGuildMsg, sParam1), TMsgColor.c_Red, TMsgType.t_Hint);
                return;
            }
            Guild.LoadGuild();
            PlayObject.SysMsg(string.Format(GameMsgDef.g_sGameCommandReloadGuildSuccessMsg, sParam1), TMsgColor.c_Red, TMsgType.t_Hint);
            UserEngine.SendServerGroupMsg(Grobal2.SS_207, M2Share.nServerIndex, sParam1);
        }
コード例 #20
0
        public static void OneLoadGuildInCharacter(WorldCharacter pChar)
        {
            var dbClient  = Program.DatabaseManager.GetClient();
            var GuildID   = dbClient.ReadInt32("SELECT GuildID FROM guildmembers WHERE CharID='" + pChar.ID + "'");
            var AcademyID =
                dbClient.ReadInt32("SELECT GuildID FROM guildacademymembers WHERE CharID='" + pChar.ID + "'");

            if (AcademyID > 0 && GuildID == 0)
            {
                Guild g;
                if (!GuildManager.GetGuildByID(AcademyID, out g))
                {
                    return;
                }
                pChar.GuildAcademy     = g.Academy;
                pChar.IsInGuildAcademy = true;
            }
            else if (GuildID > 0 && AcademyID == 0)
            {
                Guild g;
                if (!GuildManager.GetGuildByID(GuildID, out g))
                {
                    return;
                }
                pChar.Guild        = g;
                pChar.GuildAcademy = g.Academy;
                pChar.IsInGuild    = true;
                var GuildMember = g.Members.Find(m => m.Character.Character.Name == pChar.Character.Name);
                GuildMember.Character.Client = pChar.Client;
            }
        }
コード例 #21
0
ファイル: GuildTest.cs プロジェクト: tai-engineer/Imgeneus
        public void SendGuildRequest_PartyChangeTest()
        {
            var config = new GuildConfiguration()
            {
                MinMembers = 2
            };

            var character1 = CreateCharacter(testMap);
            var character2 = CreateCharacter(testMap);

            var party = new Party();

            character1.SetParty(party);
            character2.SetParty(party);

            var guildManager = new GuildManager(guildLoggerMock.Object, config, new GuildHouseConfiguration(), databaseMock.Object, gameWorldMock.Object, timeMock.Object);

            guildManager.SendGuildRequest(character1, "guild_name", "guild_message");

            Assert.NotEmpty(GuildManager.CreationRequests);
            Assert.True(GuildManager.CreationRequests.ContainsKey(party));

            character2.SetParty(null);

            Assert.Empty(GuildManager.CreationRequests);
            Assert.False(GuildManager.CreationRequests.ContainsKey(party));
        }
コード例 #22
0
        public void ChangeSabukLord(TPlayObject PlayObject, string[] @Params)
        {
            string sCASTLENAME = @Params.Length > 0 ? @Params[0] : "";
            string sGuildName  = @Params.Length > 1 ? @Params[1] : "";
            bool   boFlag      = @Params.Length > 2 ? bool.Parse(@Params[2]) : false;

            if ((sCASTLENAME == "") || (sGuildName == ""))
            {
                PlayObject.SysMsg("命令格式: @" + this.Attributes.Name + " 城堡名称 行会名称", TMsgColor.c_Red, TMsgType.t_Hint);
                return;
            }
            TUserCastle Castle = M2Share.g_CastleManager.Find(sCASTLENAME);

            if (Castle == null)
            {
                PlayObject.SysMsg(String.Format(GameMsgDef.g_sGameCommandSbkGoldCastleNotFoundMsg, sCASTLENAME), TMsgColor.c_Red, TMsgType.t_Hint);
                return;
            }
            TGUild Guild = GuildManager.FindGuild(sGuildName);

            if (Guild != null)
            {
                M2Share.AddGameDataLog("27" + "\09" + Castle.m_sOwnGuild + "\09" + '0' + "\09" + '1' + "\09" + "sGuildName" + "\09"
                                       + PlayObject.m_sCharName + "\09" + '0' + "\09" + '1' + "\09" + '0');
                Castle.GetCastle(Guild);

                UserEngine.SendServerGroupMsg(Grobal2.SS_211, M2Share.nServerIndex, sGuildName);
                PlayObject.SysMsg(Castle.m_sName + " 所属行会已经更改为 " + sGuildName, TMsgColor.c_Green, TMsgType.t_Hint);
            }
            else
            {
                PlayObject.SysMsg("行会 " + sGuildName + "还没建立!!!", TMsgColor.c_Red, TMsgType.t_Hint);
            }
        }
コード例 #23
0
 public void OnPurchaseFailure(string str)
 {
     /*Application.ExternalEval(
      * @"console.log('Purchased failed: " + str + "');"
      * );*/
     GuildManager.showPurchaseFailure(str);
 }
コード例 #24
0
        /// <summary>
        /// Does the actual handling of demoting a guild member.
        /// </summary>
        /// <param name="invoker">The guild member is who demoting the <paramref name="target"/>.</param>
        /// <param name="target">The guild member being demoted.</param>
        /// <returns>True if the <paramref name="invoker"/> successfully demoted the <paramref name="target"/>;
        /// otherwise false.</returns>
        protected virtual bool InternalTryDemoteMember(IGuildMember invoker, IGuildMember target)
        {
            // Demote
            --target.GuildRank;

            if (target.GuildRank < 0 || target.GuildRank > _guildSettings.HighestRank)
            {
                const string errmsg =
                    "Somehow, when `{0}` demoted `{1}`, their rank ended up at the invalid value of `{2}`." +
                    " Rank being reset to 0.";
                if (log.IsErrorEnabled)
                {
                    log.ErrorFormat(errmsg, invoker, target, target.GuildRank);
                }
                Debug.Fail(string.Format(errmsg, invoker, target, target.GuildRank));
                target.GuildRank = 0;
            }

            // Log the event
            GuildManager.LogEvent(invoker, GuildEvents.Demote, target);

            OnMemberDemoted(invoker, target);

            if (MemberDemoted != null)
            {
                MemberDemoted.Raise(invoker, EventArgsHelper.Create(target));
            }

            return(true);
        }
コード例 #25
0
        public bool IsEnemied(uint targetId, bool nest = true)
        {
            if (targetId == 0)
            {
                return(false);
            }

            var target = GuildManager.GetGuild(targetId);

            if (target == null)
            {
                return(false);
            }
            targetId = target.MasterGuildId;

            if (nest && FealtyGuild != 0)
            {
                var guild = GuildManager.GetGuild(FealtyGuild);
                if (guild != null)
                {
                    return(guild.IsEnemied(targetId));
                }
            }

            for (var i = 0; i < 5; i++)
            {
                if (GetEnemy(i) == targetId)
                {
                    return(true);
                }
            }

            return(false);
        }
コード例 #26
0
    public override void UpdateUI()
    {
        if (!PartyManager.IsValidNotEmptyList() && !GuildManager.IsValidNotEmptyInviteList() && !GuildManager.IsValidNotEmptyDonateInviteList())
        {
            MonoBehaviourSingleton <UserInfoManager> .I.ClearPartyInvite();

            MonoBehaviourSingleton <UIManager> .I.invitationButton.Close(UITransition.TYPE.CLOSE);

            MonoBehaviourSingleton <UIManager> .I.invitationInGameButton.Close(UITransition.TYPE.CLOSE);
        }
        if (!PartyManager.IsValidNotEmptyList() && !LoungeMatchingManager.IsValidNotEmptyList() && !LoungeMatchingManager.IsValidNotEmptyRallyList() && !GuildManager.IsValidNotEmptyInviteList() && !GuildManager.IsValidNotEmptyDonateInviteList())
        {
            SetActive((Enum)UI.GRD_QUEST, false);
            SetActive((Enum)UI.TBL_QUEST, false);
            SetActive((Enum)UI.STR_NON_LIST, true);
        }
        else
        {
            parties = MonoBehaviourSingleton <PartyManager> .I.partys.ToArray();

            lounges = MonoBehaviourSingleton <LoungeMatchingManager> .I.lounges.ToArray();

            rallyInvites = MonoBehaviourSingleton <LoungeMatchingManager> .I.rallyInvite.ToArray();

            guildInvites = MonoBehaviourSingleton <GuildManager> .I.guildInviteList.ToArray();

            guildDonateInvites = MonoBehaviourSingleton <GuildManager> .I.donateInviteList.ToArray();

            SetActive((Enum)UI.TBL_QUEST, true);
            SetActive((Enum)UI.GRD_QUEST, true);
            SetActive((Enum)UI.STR_NON_LIST, false);
            UpdateTable();
        }
    }
コード例 #27
0
        public void DelGuild(TPlayObject PlayObject, string[] @Params)
        {
            string sGuildName = @Params.Length > 0 ? @Params[0] : "";

            if (M2Share.nServerIndex != 0)
            {
                PlayObject.SysMsg("只能在主服务器上才可以使用此命令删除行会!!!", TMsgColor.c_Red, TMsgType.t_Hint);
                return;
            }
            if (sGuildName == "")
            {
                if (GameConfig.boGMShowFailMsg)
                {
                    PlayObject.SysMsg("命令格式: @" + base.Attributes.Name + " 行会名称", TMsgColor.c_Red, TMsgType.t_Hint);
                }
                return;
            }
            if (GuildManager.DelGuild(sGuildName))
            {
                UserEngine.SendServerGroupMsg(Grobal2.SS_206, M2Share.nServerIndex, sGuildName);
            }
            else
            {
                PlayObject.SysMsg("没找到" + sGuildName + "这个行会!!!", TMsgColor.c_Red, TMsgType.t_Hint);
            }
        }
コード例 #28
0
        /// <summary>
        /// 申请开启行会战
        /// </summary>
        /// <param name="PlayObject"></param>
        /// <param name="sGuildName"></param>
        /// <returns></returns>
        private int ReQuestGuildWar(TPlayObject PlayObject, string sGuildName)
        {
            int result = 0;

            try
            {
                if (GuildManager.FindGuild(sGuildName) != null)
                {
                    if (PlayObject.m_nGold >= M2Share.g_Config.nGuildWarPrice)
                    {
                        PlayObject.DecGold(M2Share.g_Config.nGuildWarPrice);
                        PlayObject.GoldChanged();
                        PlayObject.ReQuestGuildWar(sGuildName);
                    }
                    else
                    {
                        PlayObject.SysMsg("您没有足够的金币!!!", TMsgColor.c_Red, TMsgType.t_Hint);
                    }
                }
                else
                {
                    PlayObject.SysMsg("行会 " + sGuildName + " 不存在!!!", TMsgColor.c_Red, TMsgType.t_Hint);
                }
                result = 1;
            }
            catch
            {
                M2Share.MainOutMessage("{异常} TGuildOfficial.ReQuestGuildWar");
            }
            return(result);
        }
コード例 #29
0
        public bool RemoveAlly(string name)
        {
            if (string.IsNullOrEmpty(name))
            {
                return(false);
            }

            var guildId = GuildId;

            if (guildId == 0)
            {
                return(false);
            }

            var guild = GuildManager.GetGuild(guildId);

            if (guild == null)
            {
                return(false);
            }

            if (Rank != GuildRank.GuildLeader)
            {
                return(false);
            }

            var targetGuild = GuildManager.GetGuildByName(name);

            if (targetGuild == null)
            {
                return(false);
            }
            targetGuild = targetGuild.MasterGuild;

            for (var i = 0; i < 5; i++)
            {
                var targetId = guild.GetAlly(i);
                if (targetId == targetGuild.Id)
                {
                    guild.SetAlly(i, 0);
                    guild.BroadcastGuildMsg(GuildPackets.Create(GuildAction.ClearAlly, targetId, 0));

                    foreach (var member in guild.Members())
                    {
                    }
                    guild.BroadcastMessage(string.Format("Guild Leader {0} has removed Guild {1} from the allied list!", guild.LeaderName, targetGuild.Name));
                    targetGuild.BroadcastMessage(string.Format("Guild {1}`s Guild Leader {0} has removed our Guild from the allied list!", guild.LeaderName, guild.Name));
                }

                var targetguildId = targetGuild.GetAlly(i);
                if (targetguildId == guild.Id)
                {
                    targetGuild.SetAlly(i, 0);
                    targetGuild.BroadcastGuildMsg(GuildPackets.Create(GuildAction.ClearAlly, guild.Id, 0));
                }
            }

            return(true);
        }
コード例 #30
0
 public EntityManager()
 {
     Guilds      = new GuildManager("guilds.json");
     Characters  = new CharacterManager("characters.xml");
     Map         = new MapManager("map.xml");
     Villages    = new VillageManager("villages.json");
     Inventories = new InventoryManager("inventories.xml");
 }