/// <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); }
/// <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); }
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); } }
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(); } }
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); }
/// <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; }
/// <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; }