コード例 #1
0
ファイル: PlayerTitleMgr.cs プロジェクト: mywebext/DOL
        /// <summary>
        /// Registers a title.
        /// </summary>
        /// <param name="title">The title to register.</param>
        /// <returns>true if successful.</returns>
        public static bool RegisterTitle(IPlayerTitle title)
        {
            if (title == null)
            {
                return(false);
            }

            Type t = title.GetType();

            if (m_titles.Any(ttl => ttl.GetType() == t))
            {
                return(false);
            }

            m_titles.Add(title);
            return(true);
        }
コード例 #2
0
        /// <summary>
        /// Registers a title.
        /// </summary>
        /// <param name="title">The title to register.</param>
        /// <returns>true if successful.</returns>
        public static bool RegisterTitle(IPlayerTitle title)
        {
            if (title == null)
            {
                return(false);
            }

            Type t = title.GetType();

            foreach (IPlayerTitle ti in m_titles)
            {
                if (ti.GetType() == t)
                {
                    return(false);
                }
            }
            m_titles.Add(title);
            return(true);
        }
コード例 #3
0
 public override void SendPlayerTitleUpdate(GamePlayer player)
 {
     using (GSTCPPacketOut pak = new GSTCPPacketOut(GetPacketCode(eServerPackets.VisualEffect)))
     {
         pak.WriteShort((ushort)player.ObjectID);
         pak.WriteByte(0x0B);                 // subcode
         IPlayerTitle title = player.CurrentTitle;
         if (title == PlayerTitleMgr.ClearTitle)
         {
             pak.WriteByte(0);                    // flag
             pak.WriteInt(0);                     // unk1 + str len
         }
         else
         {
             pak.WriteByte(1);                     // flag
             string val = GameServer.ServerRules.GetPlayerTitle(m_gameClient.Player, player);
             pak.WriteShort((ushort)val.Length);
             pak.WriteShort(0);                     // unk1
             pak.WriteStringBytes(val);
         }
         SendTCP(pak);
     }
 }
コード例 #4
0
        public void OnCommand(GameClient client, string[] args)
        {
            if (IsSpammingCommand(client.Player, "settitle"))
            {
                return;
            }

            int index = -1;

            if (args.Length > 1)
            {
                try { index = int.Parse(args[1]); }
                catch { }

                IPlayerTitle current = client.Player.CurrentTitle;
                if (current != null && current.IsForced(client.Player))
                {
                    client.Out.SendMessage("You cannot change the current title.", eChatType.CT_System, eChatLoc.CL_SystemWindow);
                }
                else
                {
                    var titles = client.Player.Titles.ToArray();
                    if (index < 0 || index >= titles.Length)
                    {
                        client.Player.CurrentTitle = PlayerTitleMgr.ClearTitle;
                    }
                    else
                    {
                        client.Player.CurrentTitle = (IPlayerTitle)titles[index];
                    }
                }
            }
            else
            {
                client.Out.SendPlayerTitles();
            }
        }
コード例 #5
0
ファイル: titlegm.cs プロジェクト: mywebext/DOL
        public void OnCommand(GameClient client, string[] args)
        {
            GamePlayer target = client.Player.TargetObject as GamePlayer;

            if (target == null)
            {
                client.Out.SendMessage("You must target a player to change his titles!", eChatType.CT_System, eChatLoc.CL_SystemWindow);
                return;
            }

            if (args.Length > 2)
            {
                IPlayerTitle title = PlayerTitleMgr.GetTitleByTypeName(args[2]);
                if (title == null)
                {
                    client.Out.SendMessage("Title '" + args[2] + "' not found.", eChatType.CT_System, eChatLoc.CL_SystemWindow);
                    return;
                }

                switch (args[1].ToLower())
                {
                case "add":
                {
                    target.AddTitle(title);
                    return;
                }

                case "remove":
                {
                    target.RemoveTitle(title);
                    return;
                }

                case "set":
                {
                    target.CurrentTitle = title;
                    return;
                }
                }
            }
            else if (args.Length > 1)
            {
                switch (args[1].ToLower())
                {
                case "list":
                {
                    var list = new List <string>();
                    foreach (IPlayerTitle title in target.Titles)
                    {
                        list.Add("- " + title.GetDescription(target));
                        list.Add(" (" + title.GetType().FullName + ")");
                    }
                    list.Add(" ");
                    list.Add("Current:");
                    list.Add("- " + target.CurrentTitle.GetDescription(target));
                    list.Add(" (" + target.CurrentTitle.GetType().FullName + ")");
                    client.Out.SendCustomTextWindow(target.Name + "'s titles", list);
                    return;
                }
                }
            }

            DisplaySyntax(client);
        }
コード例 #6
0
ファイル: PlayerTitleMgr.cs プロジェクト: mynew4/DOLSharp
		/// <summary>
		/// Registers a title.
		/// </summary>
		/// <param name="title">The title to register.</param>
		/// <returns>true if successful.</returns>
		public static bool RegisterTitle(IPlayerTitle title)
		{
			if (title == null)
				return false;
			
			Type t = title.GetType();
			
			if (m_titles.Any(ttl => ttl.GetType() == t))
				return false;
			
			m_titles.Add(title);
			return true;
		}
コード例 #7
0
ファイル: PlayerTitleMgr.cs プロジェクト: mynew4/DAoC
		/// <summary>
		/// Registers a title.
		/// </summary>
		/// <param name="title">The title to register.</param>
		/// <returns>true if successful.</returns>
		public static bool RegisterTitle(IPlayerTitle title)
		{
			if (title == null)
				return false;
			
			Type t = title.GetType();
			foreach (IPlayerTitle ti in m_titles)
			{
				if (ti.GetType() == t)
					return false;
			}
			m_titles.Add(title);
			return true;
		}