Cleanup & Fixes for .NET 5 (#309)
- [X] Fixes several bugs - [X] Updates more ordinal issues - [X] Cleans up the code a bit - [X] Turns classes static that should have been - [X] Changes TcpServer.Instances to a HashSet Bumps release version
This commit is contained in:
parent
4ad8811df2
commit
525cda5413
266 changed files with 1348 additions and 1800 deletions
|
|
@ -16,7 +16,7 @@ namespace Server
|
|||
{
|
||||
try
|
||||
{
|
||||
var ip = ((IPEndPoint)e.Connection.RemoteEndPoint).Address;
|
||||
var ip = (e.Connection.RemoteEndPoint as IPEndPoint)?.Address;
|
||||
|
||||
if (Firewall.IsBlocked(ip))
|
||||
{
|
||||
|
|
|
|||
|
|
@ -775,7 +775,7 @@ namespace Server.Accounting
|
|||
}
|
||||
|
||||
m_PasswordAlgorithm = algorithm;
|
||||
Password = password?.Replace("-", string.Empty);
|
||||
Password = password.Replace("-", string.Empty, StringComparison.Ordinal);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ using Server.Regions;
|
|||
|
||||
namespace Server.Misc
|
||||
{
|
||||
public class AccountHandler
|
||||
public static class AccountHandler
|
||||
{
|
||||
private static int MaxAccountsPerIP;
|
||||
private static bool AutoAccountCreation;
|
||||
|
|
@ -100,10 +100,9 @@ namespace Server.Misc
|
|||
}
|
||||
}
|
||||
|
||||
[Usage("Password <newPassword> <repeatPassword>")]
|
||||
[Description(
|
||||
"Changes the password of the commanding players account. Requires the same C-class IP address as the account's creator."
|
||||
)]
|
||||
[Usage("Password <newPassword> <repeatPassword>"), Description(
|
||||
"Changes the password of the commanding players account. Requires the same C-class IP address as the account's creator."
|
||||
)]
|
||||
public static void Password_OnCommand(CommandEventArgs e)
|
||||
{
|
||||
var from = e.Mobile;
|
||||
|
|
@ -177,7 +176,7 @@ namespace Server.Misc
|
|||
|
||||
if (entry != null)
|
||||
{
|
||||
if (entry.Message.StartsWith("[Automated: Change Password]"))
|
||||
if (entry.Message.StartsWith("[Automated: Change Password]", StringComparison.Ordinal))
|
||||
{
|
||||
from.SendMessage("You already have a password change request in the help system queue.");
|
||||
}
|
||||
|
|
@ -289,7 +288,9 @@ namespace Server.Misc
|
|||
return null;
|
||||
}
|
||||
|
||||
var isSafe = !(un.StartsWith(" ") || un.EndsWith(" ") || un.EndsWith("."));
|
||||
var isSafe = !(un.StartsWith(" ", StringComparison.Ordinal) ||
|
||||
un.EndsWith(" ", StringComparison.Ordinal) ||
|
||||
un.EndsWith(".", StringComparison.Ordinal));
|
||||
|
||||
for (var i = 0; isSafe && i < un.Length; ++i)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ using System.Xml;
|
|||
|
||||
namespace Server.Accounting
|
||||
{
|
||||
public class Accounts
|
||||
public static class Accounts
|
||||
{
|
||||
private static Dictionary<string, IAccount> m_Accounts = new Dictionary<string, IAccount>();
|
||||
|
||||
|
|
@ -56,6 +56,11 @@ namespace Server.Accounting
|
|||
|
||||
var root = doc["accounts"];
|
||||
|
||||
if (root == null)
|
||||
{
|
||||
throw new FileLoadException("Unable to load xml file");
|
||||
}
|
||||
|
||||
foreach (XmlElement account in root.GetElementsByTagName("account"))
|
||||
{
|
||||
try
|
||||
|
|
|
|||
|
|
@ -1,10 +1,11 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Net;
|
||||
|
||||
namespace Server
|
||||
{
|
||||
public class Firewall
|
||||
public static class Firewall
|
||||
{
|
||||
static Firewall()
|
||||
{
|
||||
|
|
@ -30,13 +31,13 @@ namespace Server
|
|||
|
||||
/*
|
||||
object toAdd;
|
||||
|
||||
|
||||
IPAddress addr;
|
||||
if (IPAddress.TryParse( line, out addr ))
|
||||
toAdd = addr;
|
||||
else
|
||||
toAdd = line;
|
||||
|
||||
|
||||
m_Blocked.Add( toAdd.ToString() );
|
||||
* */
|
||||
}
|
||||
|
|
@ -47,22 +48,13 @@ namespace Server
|
|||
|
||||
public static IFirewallEntry ToFirewallEntry(object entry)
|
||||
{
|
||||
if (entry is IFirewallEntry firewallEntry)
|
||||
return entry switch
|
||||
{
|
||||
return firewallEntry;
|
||||
}
|
||||
|
||||
if (entry is IPAddress address)
|
||||
{
|
||||
return new IPFirewallEntry(address);
|
||||
}
|
||||
|
||||
if (entry is string s)
|
||||
{
|
||||
return ToFirewallEntry(s);
|
||||
}
|
||||
|
||||
return null;
|
||||
IFirewallEntry firewallEntry => firewallEntry,
|
||||
IPAddress address => new IPFirewallEntry(address),
|
||||
string s => ToFirewallEntry(s),
|
||||
_ => null
|
||||
};
|
||||
}
|
||||
|
||||
public static IFirewallEntry ToFirewallEntry(string entry)
|
||||
|
|
@ -73,9 +65,9 @@ namespace Server
|
|||
}
|
||||
|
||||
// Try CIDR parse
|
||||
var str = entry.Split('/');
|
||||
var str = entry?.Split('/');
|
||||
|
||||
if (str.Length == 2)
|
||||
if (str?.Length == 2)
|
||||
{
|
||||
if (IPAddress.TryParse(str[0], out var cidrPrefix))
|
||||
{
|
||||
|
|
@ -180,7 +172,7 @@ namespace Server
|
|||
return false;
|
||||
/*
|
||||
bool contains = false;
|
||||
|
||||
|
||||
for ( int i = 0; !contains && i < m_Blocked.Count; ++i )
|
||||
{
|
||||
if (m_Blocked[i] is IPAddress)
|
||||
|
|
@ -188,14 +180,14 @@ namespace Server
|
|||
else if (m_Blocked[i] is String)
|
||||
{
|
||||
string s = (string)m_Blocked[i];
|
||||
|
||||
|
||||
contains = Utility.IPMatchCIDR( s, ip );
|
||||
|
||||
|
||||
if (!contains)
|
||||
contains = Utility.IPMatch( s, ip );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return contains;
|
||||
* */
|
||||
}
|
||||
|
|
@ -312,10 +304,10 @@ namespace Server
|
|||
return obj.Equals(m_Entry);
|
||||
}
|
||||
|
||||
return obj is WildcardIPFirewallEntry entry && m_Entry.Equals(entry.m_Entry);
|
||||
return obj is WildcardIPFirewallEntry entry && m_Entry == entry.m_Entry;
|
||||
}
|
||||
|
||||
public override int GetHashCode() => m_Entry.GetHashCode();
|
||||
public override int GetHashCode() => m_Entry.GetHashCode(StringComparison.Ordinal);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,11 +4,11 @@ using Server.Network;
|
|||
|
||||
namespace Server.Misc
|
||||
{
|
||||
public class IPLimiter
|
||||
public static class IPLimiter
|
||||
{
|
||||
public static IPAddress[] Exemptions =
|
||||
public static readonly IPAddress[] Exemptions =
|
||||
{
|
||||
// IPAddress.Parse( "127.0.0.1" ),
|
||||
IPAddress.Parse( "127.0.0.1" )
|
||||
};
|
||||
|
||||
public static bool Enabled { get; private set; }
|
||||
|
|
@ -31,15 +31,11 @@ namespace Server.Misc
|
|||
return true;
|
||||
}
|
||||
|
||||
var netStates = TcpServer.Instances;
|
||||
|
||||
var count = 0;
|
||||
|
||||
for (var i = 0; i < netStates.Count; ++i)
|
||||
foreach (var ns in TcpServer.Instances)
|
||||
{
|
||||
var compState = netStates[i];
|
||||
|
||||
if (ourAddress.Equals(compState.Address))
|
||||
if (ourAddress.Equals(ns.Address))
|
||||
{
|
||||
++count;
|
||||
|
||||
|
|
|
|||
|
|
@ -22,7 +22,9 @@ namespace Server.Accounting.Security
|
|||
public class MD5PasswordProtection : IPasswordProtection
|
||||
{
|
||||
public static IPasswordProtection Instance = new MD5PasswordProtection();
|
||||
#pragma warning disable CA5351
|
||||
private readonly MD5CryptoServiceProvider m_MD5HashProvider = new MD5CryptoServiceProvider();
|
||||
#pragma warning restore CA5351
|
||||
|
||||
public string EncryptPassword(string plainPassword)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -26,8 +26,7 @@ namespace Server.Accounting.Security
|
|||
private const int m_SaltSize = 8;
|
||||
private const int m_HashSize = 32;
|
||||
private const int m_OutputSize = 2 + m_SaltSize + m_HashSize;
|
||||
public static IPasswordProtection Instance = new PBKDF2PasswordProtection();
|
||||
private static readonly HashAlgorithmName m_Algorithm = HashAlgorithmName.SHA256;
|
||||
public static readonly IPasswordProtection Instance = new PBKDF2PasswordProtection();
|
||||
|
||||
public string EncryptPassword(string plainPassword)
|
||||
{
|
||||
|
|
@ -35,7 +34,7 @@ namespace Server.Accounting.Security
|
|||
var iterations = Utility.RandomMinMax(m_MinIterations, m_MaxIterations);
|
||||
BinaryPrimitives.WriteUInt16LittleEndian(output.Slice(0, 2), (ushort)iterations);
|
||||
|
||||
var rfc2898 = new Rfc2898DeriveBytes(plainPassword, m_SaltSize, iterations, m_Algorithm);
|
||||
var rfc2898 = new Rfc2898DeriveBytes(plainPassword, m_SaltSize, iterations, HashAlgorithmName.SHA256);
|
||||
rfc2898.Salt.CopyTo(output.Slice(2, m_SaltSize));
|
||||
rfc2898.GetBytes(m_HashSize).CopyTo(output.Slice(m_SaltSize + 2));
|
||||
|
||||
|
|
@ -51,7 +50,7 @@ namespace Server.Accounting.Security
|
|||
var salt = encryptedBytes.Slice(2, m_SaltSize);
|
||||
|
||||
ReadOnlySpan<byte> hash =
|
||||
new Rfc2898DeriveBytes(plainPassword, salt.ToArray(), iterations, m_Algorithm).GetBytes(m_HashSize);
|
||||
new Rfc2898DeriveBytes(plainPassword, salt.ToArray(), iterations, HashAlgorithmName.SHA256).GetBytes(m_HashSize);
|
||||
|
||||
return hash.SequenceEqual(encryptedBytes.Slice(m_SaltSize + 2));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -22,7 +22,9 @@ namespace Server.Accounting.Security
|
|||
public class SHA1PasswordProtection : IPasswordProtection
|
||||
{
|
||||
public static IPasswordProtection Instance = new SHA1PasswordProtection();
|
||||
#pragma warning disable CA5350
|
||||
private readonly SHA1CryptoServiceProvider m_SHA1HashProvider = new SHA1CryptoServiceProvider();
|
||||
#pragma warning restore CA5350
|
||||
|
||||
public string EncryptPassword(string plainPassword)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ using System;
|
|||
|
||||
namespace Server
|
||||
{
|
||||
[AttributeUsage(AttributeTargets.Method)]
|
||||
public class UsageAttribute : Attribute
|
||||
{
|
||||
public UsageAttribute(string usage) => Usage = usage;
|
||||
|
|
@ -9,6 +10,7 @@ namespace Server
|
|||
public string Usage { get; }
|
||||
}
|
||||
|
||||
[AttributeUsage(AttributeTargets.Method)]
|
||||
public class DescriptionAttribute : Attribute
|
||||
{
|
||||
public DescriptionAttribute(string description) => Description = description;
|
||||
|
|
@ -16,6 +18,7 @@ namespace Server
|
|||
public string Description { get; }
|
||||
}
|
||||
|
||||
[AttributeUsage(AttributeTargets.Method)]
|
||||
public class AliasesAttribute : Attribute
|
||||
{
|
||||
public AliasesAttribute(params string[] aliases) => Aliases = aliases;
|
||||
|
|
|
|||
|
|
@ -187,8 +187,7 @@ namespace Server.Commands
|
|||
CommandSystem.Register("Batch", AccessLevel.Counselor, Batch_OnCommand);
|
||||
}
|
||||
|
||||
[Usage("Batch")]
|
||||
[Description("Allows multiple commands to be run at the same time.")]
|
||||
[Usage("Batch"), Description("Allows multiple commands to be run at the same time.")]
|
||||
public static void Batch_OnCommand(CommandEventArgs e)
|
||||
{
|
||||
e.Mobile.SendGump(new BatchGump(e.Mobile, new Batch()));
|
||||
|
|
@ -209,7 +208,7 @@ namespace Server.Commands
|
|||
|
||||
public void GetDetails(out string command, out string argString, out string[] args)
|
||||
{
|
||||
var indexOf = Command.IndexOf(' ');
|
||||
var indexOf = Command.IndexOf(' ', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ using Server.Network;
|
|||
|
||||
namespace Server.Commands
|
||||
{
|
||||
public class Docs
|
||||
public static class Docs
|
||||
{
|
||||
private const int Iron = 0xCCCCDD;
|
||||
private const int DullCopper = 0xAAAAAA;
|
||||
|
|
@ -109,8 +109,7 @@ namespace Server.Commands
|
|||
CommandSystem.Register("DocGen", AccessLevel.Administrator, DocGen_OnCommand);
|
||||
}
|
||||
|
||||
[Usage("DocGen")]
|
||||
[Description("Generates RunUO documentation.")]
|
||||
[Usage("DocGen"), Description("Generates RunUO documentation.")]
|
||||
private static void DocGen_OnCommand(CommandEventArgs e)
|
||||
{
|
||||
World.Broadcast(0x35, true, "Documentation is being generated, please wait.");
|
||||
|
|
@ -332,7 +331,7 @@ namespace Server.Commands
|
|||
|
||||
if (type.IsGenericType)
|
||||
{
|
||||
var index = type.Name.IndexOf('`');
|
||||
var index = type.Name.IndexOf('`', StringComparison.Ordinal);
|
||||
|
||||
if (index > 0)
|
||||
{
|
||||
|
|
@ -346,7 +345,7 @@ namespace Server.Commands
|
|||
: new StringBuilder($"<a href=\"@directory@{rootType}-T-.html\">{rootType}</a>");
|
||||
|
||||
nameBuilder.Append("<");
|
||||
fnamBuilder.Append("-");
|
||||
fnamBuilder.Append('-');
|
||||
linkBuilder.Append("<");
|
||||
|
||||
var typeArguments = type.GetGenericArguments();
|
||||
|
|
@ -364,7 +363,7 @@ namespace Server.Commands
|
|||
var aliasedName = AliasForName(sanitizedName);
|
||||
|
||||
nameBuilder.Append(sanitizedName);
|
||||
fnamBuilder.Append("T");
|
||||
fnamBuilder.Append('T');
|
||||
if (DontLink(typeArguments[i]))
|
||||
{
|
||||
linkBuilder.Append($"<font color=\"blue\">{aliasedName}</font>");
|
||||
|
|
@ -378,7 +377,7 @@ namespace Server.Commands
|
|||
}
|
||||
|
||||
nameBuilder.Append(">");
|
||||
fnamBuilder.Append("-");
|
||||
fnamBuilder.Append('-');
|
||||
linkBuilder.Append(">");
|
||||
|
||||
name = nameBuilder.ToString();
|
||||
|
|
@ -407,7 +406,7 @@ namespace Server.Commands
|
|||
|
||||
public static string SanitizeType(string name)
|
||||
{
|
||||
var anonymousType = name.Contains("<");
|
||||
var anonymousType = name.Contains('<', StringComparison.Ordinal);
|
||||
var sb = new StringBuilder(name);
|
||||
for (var i = 0; i < ReplaceChars.Length; ++i)
|
||||
{
|
||||
|
|
@ -466,7 +465,7 @@ namespace Server.Commands
|
|||
return true;
|
||||
}
|
||||
|
||||
if (type.Namespace.StartsWith("Server"))
|
||||
if (type.Namespace.StartsWith("Server", StringComparison.Ordinal))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
|
@ -489,11 +488,12 @@ namespace Server.Commands
|
|||
}
|
||||
|
||||
var index = 0;
|
||||
var file = string.Concat(name, ext);
|
||||
var file = $"{name}{ext}";
|
||||
|
||||
while (File.Exists(Path.Combine(root, file)))
|
||||
{
|
||||
file = string.Concat(name, ++index, ext);
|
||||
index++;
|
||||
file = $"{name}{index}{ext}";
|
||||
}
|
||||
|
||||
return file;
|
||||
|
|
@ -604,7 +604,7 @@ namespace Server.Commands
|
|||
if (realType?.IsGenericType == true)
|
||||
{
|
||||
FormatGeneric(realType, out _, out _, out var linkName);
|
||||
aliased = linkName.Replace("@directory@", null);
|
||||
aliased = linkName.Replace("@directory@", null, StringComparison.Ordinal);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -621,7 +621,7 @@ namespace Server.Commands
|
|||
aliased ??= realType?.Name ?? "";
|
||||
}
|
||||
|
||||
return string.Concat(prepend, aliased, append, name);
|
||||
return $"{prepend}{aliased}{append}{name}";
|
||||
}
|
||||
|
||||
private static bool Document()
|
||||
|
|
@ -1719,7 +1719,7 @@ namespace Server.Commands
|
|||
{
|
||||
line = line.Trim();
|
||||
|
||||
if (line.Length == 0 || line.StartsWith("#"))
|
||||
if (line.Length == 0 || line.StartsWith("#", StringComparison.Ordinal))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
|
@ -2029,16 +2029,11 @@ namespace Server.Commands
|
|||
|
||||
var aliases = attrs.Length == 0 ? null : attrs[0] as AliasesAttribute;
|
||||
|
||||
var descString = desc.Description.Replace("<", "<").Replace(">", ">");
|
||||
var descString = desc.Description
|
||||
.Replace("<", "<", StringComparison.Ordinal)
|
||||
.Replace(">", ">", StringComparison.Ordinal);
|
||||
|
||||
if (aliases == null)
|
||||
{
|
||||
list.Add(new DocCommandEntry(e.AccessLevel, e.Command, null, usage.Usage, descString));
|
||||
}
|
||||
else
|
||||
{
|
||||
list.Add(new DocCommandEntry(e.AccessLevel, e.Command, aliases.Aliases, usage.Usage, descString));
|
||||
}
|
||||
list.Add(new DocCommandEntry(e.AccessLevel, e.Command, aliases?.Aliases, usage.Usage, descString));
|
||||
}
|
||||
|
||||
for (var i = 0; i < TargetCommands.AllCommands.Count; ++i)
|
||||
|
|
@ -2062,7 +2057,9 @@ namespace Server.Commands
|
|||
aliases[j] = cmds[j + 1];
|
||||
}
|
||||
|
||||
desc = desc.Replace("<", "<").Replace(">", ">");
|
||||
desc = desc
|
||||
.Replace("<", "<", StringComparison.Ordinal)
|
||||
.Replace(">", ">", StringComparison.Ordinal);
|
||||
|
||||
if (command.Supports != CommandSupport.Single)
|
||||
{
|
||||
|
|
@ -2138,7 +2135,9 @@ namespace Server.Commands
|
|||
aliases[j] = cmds[j + 1];
|
||||
}
|
||||
|
||||
desc = desc.Replace("<", "<").Replace(">", ">");
|
||||
desc = desc
|
||||
.Replace("<", "<", StringComparison.Ordinal)
|
||||
.Replace(">", ">", StringComparison.Ordinal);
|
||||
|
||||
list.Add(new DocCommandEntry(command.AccessLevel, cmd, aliases, usage, desc));
|
||||
}
|
||||
|
|
@ -2237,7 +2236,9 @@ namespace Server.Commands
|
|||
{
|
||||
html.Write(
|
||||
"<td class=\"rentry\"><b>Usage: {0}</b><br>{1}</td>",
|
||||
usage.Replace("<", "<").Replace(">", ">"),
|
||||
usage
|
||||
.Replace("<", "<", StringComparison.Ordinal)
|
||||
.Replace(">", ">", StringComparison.Ordinal),
|
||||
desc
|
||||
);
|
||||
}
|
||||
|
|
@ -2245,7 +2246,9 @@ namespace Server.Commands
|
|||
{
|
||||
html.Write(
|
||||
"<td class=\"rentry\"><b>Usage: {0}</b><br>Alias{1}: ",
|
||||
usage.Replace("<", "<").Replace(">", ">"),
|
||||
usage
|
||||
.Replace("<", "<", StringComparison.Ordinal)
|
||||
.Replace(">", ">", StringComparison.Ordinal),
|
||||
aliases.Length == 1 ? "" : "es"
|
||||
);
|
||||
|
||||
|
|
@ -2564,7 +2567,7 @@ namespace Server.Commands
|
|||
if (ifaceInfo == null)
|
||||
{
|
||||
FormatGeneric(iface, out _, out _, out var linkName);
|
||||
typeHtml.Write($"<!-- DBG-2.1 -->{linkName.Replace("@directory@", null)}");
|
||||
typeHtml.Write($"<!-- DBG-2.1 -->{linkName.Replace("@directory@", null, StringComparison.Ordinal)}");
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -2910,7 +2913,7 @@ namespace Server.Commands
|
|||
public string FileName => m_FileName;
|
||||
public string TypeName => m_TypeName;
|
||||
|
||||
public string LinkName(string dirRoot) => m_LinkName.Replace("@directory@", dirRoot);
|
||||
public string LinkName(string dirRoot) => m_LinkName.Replace("@directory@", dirRoot, StringComparison.Ordinal);
|
||||
}
|
||||
|
||||
private class SpeechEntry
|
||||
|
|
@ -3009,7 +3012,7 @@ namespace Server.Commands
|
|||
return Body == e?.Body && BodyType == e.BodyType && Name == e.Name;
|
||||
}
|
||||
|
||||
public override int GetHashCode() => Body.BodyID ^ (int)BodyType ^ Name.GetHashCode();
|
||||
public override int GetHashCode() => Body.BodyID ^ (int)BodyType ^ Name.GetHashCode(StringComparison.Ordinal);
|
||||
}
|
||||
|
||||
public class BodyEntrySorter : IComparer<BodyEntry>
|
||||
|
|
|
|||
|
|
@ -7,8 +7,7 @@ namespace Server.Commands
|
|||
CommandSystem.Register("DragEffects", AccessLevel.Developer, DragEffects_OnCommand);
|
||||
}
|
||||
|
||||
[Usage("DragEffects [enable=false]")]
|
||||
[Description("Enables or disables the item drag and drop effects.")]
|
||||
[Usage("DragEffects [enable=false]"), Description("Enables or disables the item drag and drop effects.")]
|
||||
public static void DragEffects_OnCommand(CommandEventArgs e)
|
||||
{
|
||||
if (e.Length == 0)
|
||||
|
|
|
|||
|
|
@ -13,8 +13,7 @@ namespace Server.Commands
|
|||
CommandSystem.Register("DupeInBag", AccessLevel.GameMaster, DupeInBag_OnCommand);
|
||||
}
|
||||
|
||||
[Usage("Dupe [amount]")]
|
||||
[Description("Dupes a targeted item.")]
|
||||
[Usage("Dupe [amount]"), Description("Dupes a targeted item.")]
|
||||
private static void Dupe_OnCommand(CommandEventArgs e)
|
||||
{
|
||||
var amount = 1;
|
||||
|
|
@ -27,8 +26,7 @@ namespace Server.Commands
|
|||
e.Mobile.SendMessage("What do you wish to dupe?");
|
||||
}
|
||||
|
||||
[Usage("DupeInBag <count>")]
|
||||
[Description("Dupes an item at it's current location (count) number of times.")]
|
||||
[Usage("DupeInBag <count>"), Description("Dupes an item at it's current location (count) number of times.")]
|
||||
private static void DupeInBag_OnCommand(CommandEventArgs e)
|
||||
{
|
||||
var amount = 1;
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ using Server.Items;
|
|||
|
||||
namespace Server.Commands
|
||||
{
|
||||
public class ExportCommand
|
||||
public static class ExportCommand
|
||||
{
|
||||
private const string ExportFile = @"C:\Uo\WorldForge\items.wsc";
|
||||
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ using Server.Spells;
|
|||
|
||||
namespace Server.Commands.Generic
|
||||
{
|
||||
public class TargetCommands
|
||||
public static class TargetCommands
|
||||
{
|
||||
public static List<BaseCommand> AllCommands { get; } = new List<BaseCommand>();
|
||||
|
||||
|
|
@ -788,7 +788,7 @@ namespace Server.Commands.Generic
|
|||
var result = Properties.GetValue(e.Mobile, obj, e.GetString(i));
|
||||
|
||||
if (result == "Property not found." || result == "Property is write only." ||
|
||||
result.StartsWith("Getting this property"))
|
||||
result.StartsWith("Getting this property", StringComparison.Ordinal))
|
||||
{
|
||||
LogFailure(result);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -194,7 +194,7 @@ namespace Server.Commands.Generic
|
|||
sb.Append(' ');
|
||||
}
|
||||
|
||||
if (args[i].IndexOf(' ') >= 0)
|
||||
if (args[i].Contains(' ', StringComparison.Ordinal))
|
||||
{
|
||||
sb.Append('"');
|
||||
sb.Append(args[i]);
|
||||
|
|
|
|||
|
|
@ -38,11 +38,8 @@ namespace Server.Commands.Generic
|
|||
var list = new List<object>();
|
||||
var addresses = new List<IPAddress>();
|
||||
|
||||
var states = TcpServer.Instances;
|
||||
|
||||
for (var i = 0; i < states.Count; ++i)
|
||||
foreach (var ns in TcpServer.Instances)
|
||||
{
|
||||
var ns = states[i];
|
||||
var mob = ns.Mobile;
|
||||
|
||||
if (mob != null && !addresses.Contains(ns.Address) && ext.IsValid(mob))
|
||||
|
|
|
|||
|
|
@ -103,22 +103,20 @@ namespace Server.Commands.Generic
|
|||
return Empty;
|
||||
}
|
||||
|
||||
var index = 0;
|
||||
|
||||
var objectType = AssemblyHandler.FindFirstTypeForName(args[offset + index], true);
|
||||
var objectType = AssemblyHandler.FindFirstTypeForName(args[offset], true);
|
||||
|
||||
if (objectType == null)
|
||||
{
|
||||
throw new Exception($"No type with that name ({args[offset + index]}) was found.");
|
||||
throw new Exception($"No type with that name ({args[offset]}) was found.");
|
||||
}
|
||||
|
||||
++index;
|
||||
|
||||
var conditions = new List<ICondition[]>();
|
||||
var current = new List<ICondition>();
|
||||
|
||||
current.Add(TypeCondition.Default);
|
||||
|
||||
var index = 1;
|
||||
|
||||
while (index < size)
|
||||
{
|
||||
var cur = args[offset + index];
|
||||
|
|
|
|||
|
|
@ -36,11 +36,8 @@ namespace Server.Commands.Generic
|
|||
|
||||
var list = new List<object>();
|
||||
|
||||
var states = TcpServer.Instances;
|
||||
|
||||
for (var i = 0; i < states.Count; ++i)
|
||||
foreach (var ns in TcpServer.Instances)
|
||||
{
|
||||
var ns = states[i];
|
||||
var mob = ns.Mobile;
|
||||
|
||||
if (mob == null)
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ using Server.Targets;
|
|||
|
||||
namespace Server.Commands
|
||||
{
|
||||
public class CommandHandlers
|
||||
public static class CommandHandlers
|
||||
{
|
||||
public static void Initialize()
|
||||
{
|
||||
|
|
@ -76,8 +76,7 @@ namespace Server.Commands
|
|||
CommandSystem.Register(command, access, handler);
|
||||
}
|
||||
|
||||
[Usage("SpeedBoost [true|false]")]
|
||||
[Description("Enables a speed boost for the invoker. Disable with parameters.")]
|
||||
[Usage("SpeedBoost [true|false]"), Description("Enables a speed boost for the invoker. Disable with parameters.")]
|
||||
private static void SpeedBoost_OnCommand(CommandEventArgs e)
|
||||
{
|
||||
var from = e.Mobile;
|
||||
|
|
@ -101,8 +100,7 @@ namespace Server.Commands
|
|||
}
|
||||
}
|
||||
|
||||
[Usage("Where")]
|
||||
[Description("Tells the commanding player his coordinates, region, and facet.")]
|
||||
[Usage("Where"), Description("Tells the commanding player his coordinates, region, and facet.")]
|
||||
public static void Where_OnCommand(CommandEventArgs e)
|
||||
{
|
||||
var from = e.Mobile;
|
||||
|
|
@ -132,10 +130,9 @@ namespace Server.Commands
|
|||
}
|
||||
}
|
||||
|
||||
[Usage("DropHolding")]
|
||||
[Description(
|
||||
"Drops the item, if any, that a targeted player is holding. The item is placed into their backpack, or if that's full, at their feet."
|
||||
)]
|
||||
[Usage("DropHolding"), Description(
|
||||
"Drops the item, if any, that a targeted player is holding. The item is placed into their backpack, or if that's full, at their feet."
|
||||
)]
|
||||
public static void DropHolding_OnCommand(CommandEventArgs e)
|
||||
{
|
||||
e.Mobile.BeginTarget(-1, false, TargetFlags.None, DropHolding_OnTarget);
|
||||
|
|
@ -221,8 +218,8 @@ namespace Server.Commands
|
|||
}
|
||||
}
|
||||
|
||||
[Usage("ClearFacet")]
|
||||
[Description("Deletes all items and mobiles in your facet. Players and their inventory will not be deleted.")]
|
||||
[Usage("ClearFacet"),
|
||||
Description("Deletes all items and mobiles in your facet. Players and their inventory will not be deleted.")]
|
||||
public static void ClearFacet_OnCommand(CommandEventArgs e)
|
||||
{
|
||||
var from = e.Mobile;
|
||||
|
|
@ -282,8 +279,7 @@ namespace Server.Commands
|
|||
}
|
||||
}
|
||||
|
||||
[Usage("GetFollowers")]
|
||||
[Description("Teleports all pets of a targeted player to your location.")]
|
||||
[Usage("GetFollowers"), Description("Teleports all pets of a targeted player to your location.")]
|
||||
public static void GetFollowers_OnCommand(CommandEventArgs e)
|
||||
{
|
||||
e.Mobile.BeginTarget(-1, false, TargetFlags.None, GetFollowers_OnTarget);
|
||||
|
|
@ -376,17 +372,16 @@ namespace Server.Commands
|
|||
}
|
||||
}
|
||||
|
||||
[Usage("ViewEquip")]
|
||||
[Description("Lists equipment of a targeted mobile. From the list you can move, delete, or open props.")]
|
||||
[Usage("ViewEquip"),
|
||||
Description("Lists equipment of a targeted mobile. From the list you can move, delete, or open props.")]
|
||||
public static void ViewEquip_OnCommand(CommandEventArgs e)
|
||||
{
|
||||
e.Mobile.Target = new ViewEqTarget();
|
||||
}
|
||||
|
||||
[Usage("Sound <index> [toAll=true]")]
|
||||
[Description(
|
||||
"Plays a sound to players within 12 tiles of you. The (toAll) argument specifies to everyone, or just those who can see you."
|
||||
)]
|
||||
[Usage("Sound <index> [toAll=true]"), Description(
|
||||
"Plays a sound to players within 12 tiles of you. The (toAll) argument specifies to everyone, or just those who can see you."
|
||||
)]
|
||||
public static void Sound_OnCommand(CommandEventArgs e)
|
||||
{
|
||||
if (e.Length == 1)
|
||||
|
|
@ -433,8 +428,7 @@ namespace Server.Commands
|
|||
}
|
||||
}
|
||||
|
||||
[Usage("Echo <text>")]
|
||||
[Description("Relays (text) as a system message.")]
|
||||
[Usage("Echo <text>"), Description("Relays (text) as a system message.")]
|
||||
public static void Echo_OnCommand(CommandEventArgs e)
|
||||
{
|
||||
var toEcho = e.ArgString.Trim();
|
||||
|
|
@ -449,29 +443,25 @@ namespace Server.Commands
|
|||
}
|
||||
}
|
||||
|
||||
[Usage("Bank")]
|
||||
[Description("Opens the bank box of a given target.")]
|
||||
[Usage("Bank"), Description("Opens the bank box of a given target.")]
|
||||
public static void Bank_OnCommand(CommandEventArgs e)
|
||||
{
|
||||
e.Mobile.Target = new BankTarget();
|
||||
}
|
||||
|
||||
[Usage("Client")]
|
||||
[Description("Opens the client gump menu for a given player.")]
|
||||
[Usage("Client"), Description("Opens the client gump menu for a given player.")]
|
||||
private static void Client_OnCommand(CommandEventArgs e)
|
||||
{
|
||||
e.Mobile.Target = new ClientTarget();
|
||||
}
|
||||
|
||||
[Usage("Move")]
|
||||
[Description("Repositions a targeted item or mobile.")]
|
||||
[Usage("Move"), Description("Repositions a targeted item or mobile.")]
|
||||
private static void Move_OnCommand(CommandEventArgs e)
|
||||
{
|
||||
e.Mobile.Target = new PickMoveTarget();
|
||||
}
|
||||
|
||||
[Usage("Save")]
|
||||
[Description("Saves the world.")]
|
||||
[Usage("Save"), Description("Saves the world.")]
|
||||
private static void Save_OnCommand(CommandEventArgs e)
|
||||
{
|
||||
AutoSave.Save();
|
||||
|
|
@ -494,10 +484,9 @@ namespace Server.Commands
|
|||
return validMap;
|
||||
}
|
||||
|
||||
[Usage("Go [name | serial | (x y [z]) | (deg min (N | S) deg min (E | W))]")]
|
||||
[Description(
|
||||
"With no arguments, this command brings up the go menu. With one argument, (name), you are moved to that regions \"go location.\" Or, if a numerical value is specified for one argument, (serial), you are moved to that object. Two or three arguments, (x y [z]), will move your character to that location. When six arguments are specified, (deg min (N | S) deg min (E | W)), your character will go to an approximate of those sextant coordinates."
|
||||
)]
|
||||
[Usage("Go [name | serial | (x y [z]) | (deg min (N | S) deg min (E | W))]"), Description(
|
||||
"With no arguments, this command brings up the go menu. With one argument, (name), you are moved to that regions \"go location.\" Or, if a numerical value is specified for one argument, (serial), you are moved to that object. Two or three arguments, (x y [z]), will move your character to that location. When six arguments are specified, (deg min (N | S) deg min (E | W)), your character will go to an approximate of those sextant coordinates."
|
||||
)]
|
||||
private static void Go_OnCommand(CommandEventArgs e)
|
||||
{
|
||||
var from = e.Mobile;
|
||||
|
|
@ -707,8 +696,7 @@ namespace Server.Commands
|
|||
}
|
||||
}
|
||||
|
||||
[Usage("Help")]
|
||||
[Description("Lists all available commands.")]
|
||||
[Usage("Help"), Description("Lists all available commands.")]
|
||||
public static void Help_OnCommand(CommandEventArgs e)
|
||||
{
|
||||
var m = e.Mobile;
|
||||
|
|
@ -755,17 +743,13 @@ namespace Server.Commands
|
|||
}
|
||||
}
|
||||
|
||||
[Usage("SMsg <text>")]
|
||||
[Aliases("S", "SM")]
|
||||
[Description("Broadcasts a message to all online staff.")]
|
||||
[Usage("SMsg <text>"), Aliases("S", "SM"), Description("Broadcasts a message to all online staff.")]
|
||||
public static void StaffMessage_OnCommand(CommandEventArgs e)
|
||||
{
|
||||
BroadcastMessage(AccessLevel.Counselor, e.Mobile.SpeechHue, $"[{e.Mobile.Name}] {e.ArgString}");
|
||||
}
|
||||
|
||||
[Usage("BCast <text>")]
|
||||
[Aliases("B", "BC")]
|
||||
[Description("Broadcasts a message to everyone online.")]
|
||||
[Usage("BCast <text>"), Aliases("B", "BC"), Description("Broadcasts a message to everyone online.")]
|
||||
public static void BroadcastMessage_OnCommand(CommandEventArgs e)
|
||||
{
|
||||
BroadcastMessage(AccessLevel.Player, 0x482, $"Staff message from {e.Mobile.Name}:");
|
||||
|
|
@ -785,9 +769,7 @@ namespace Server.Commands
|
|||
}
|
||||
}
|
||||
|
||||
[Usage("AutoPageNotify")]
|
||||
[Aliases("APN")]
|
||||
[Description("Toggles your auto-page-notify status.")]
|
||||
[Usage("AutoPageNotify"), Aliases("APN"), Description("Toggles your auto-page-notify status.")]
|
||||
public static void APN_OnCommand(CommandEventArgs e)
|
||||
{
|
||||
var m = e.Mobile;
|
||||
|
|
@ -797,8 +779,8 @@ namespace Server.Commands
|
|||
m.SendMessage("Your auto-page-notify has been turned {0}.", m.AutoPageNotify ? "on" : "off");
|
||||
}
|
||||
|
||||
[Usage("Animate <action> <frameCount> <repeatCount> <forward> <repeat> <delay>")]
|
||||
[Description("Makes your character do a specified animation.")]
|
||||
[Usage("Animate <action> <frameCount> <repeatCount> <forward> <repeat> <delay>"),
|
||||
Description("Makes your character do a specified animation.")]
|
||||
public static void Animate_OnCommand(CommandEventArgs e)
|
||||
{
|
||||
if (e.Length == 6)
|
||||
|
|
@ -818,8 +800,7 @@ namespace Server.Commands
|
|||
}
|
||||
}
|
||||
|
||||
[Usage("Cast <name>")]
|
||||
[Description("Casts a spell by name.")]
|
||||
[Usage("Cast <name>"), Description("Casts a spell by name.")]
|
||||
public static void Cast_OnCommand(CommandEventArgs e)
|
||||
{
|
||||
if (e.Length == 1)
|
||||
|
|
@ -846,22 +827,19 @@ namespace Server.Commands
|
|||
}
|
||||
}
|
||||
|
||||
[Usage("Stuck")]
|
||||
[Description("Opens a menu of towns, used for teleporting stuck mobiles.")]
|
||||
[Usage("Stuck"), Description("Opens a menu of towns, used for teleporting stuck mobiles.")]
|
||||
public static void Stuck_OnCommand(CommandEventArgs e)
|
||||
{
|
||||
e.Mobile.Target = new StuckMenuTarget();
|
||||
}
|
||||
|
||||
[Usage("Light <level>")]
|
||||
[Description("Set your local lightlevel.")]
|
||||
[Usage("Light <level>"), Description("Set your local lightlevel.")]
|
||||
public static void Light_OnCommand(CommandEventArgs e)
|
||||
{
|
||||
e.Mobile.LightLevel = e.GetInt32(0);
|
||||
}
|
||||
|
||||
[Usage("Stats")]
|
||||
[Description("View some stats about the server.")]
|
||||
[Usage("Stats"), Description("View some stats about the server.")]
|
||||
public static void Stats_OnCommand(CommandEventArgs e)
|
||||
{
|
||||
e.Mobile.SendMessage("Open Connections: {0}", TcpServer.Instances.Count);
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using Server.Commands.Generic;
|
||||
|
|
@ -8,7 +9,7 @@ using CommandInfoSorter = Server.Commands.Docs.CommandEntrySorter;
|
|||
|
||||
namespace Server.Commands
|
||||
{
|
||||
public class HelpInfo
|
||||
public static class HelpInfo
|
||||
{
|
||||
public static Dictionary<string, CommandInfo> HelpInfos { get; } = new Dictionary<string, CommandInfo>();
|
||||
|
||||
|
|
@ -22,10 +23,9 @@ namespace Server.Commands
|
|||
FillTable();
|
||||
}
|
||||
|
||||
[Usage("HelpInfo [<command>]")]
|
||||
[Description(
|
||||
"Gives information on a specified command, or when no argument specified, displays a gump containing all commands"
|
||||
)]
|
||||
[Usage("HelpInfo [<command>]"), Description(
|
||||
"Gives information on a specified command, or when no argument specified, displays a gump containing all commands"
|
||||
)]
|
||||
private static void HelpInfo_OnCommand(CommandEventArgs e)
|
||||
{
|
||||
if (e.Length > 0)
|
||||
|
|
@ -93,7 +93,9 @@ namespace Server.Commands
|
|||
|
||||
var aliases = attrs.Length == 0 ? null : attrs[0] as AliasesAttribute;
|
||||
|
||||
var descString = desc.Description.Replace("<", "(").Replace(">", ")");
|
||||
var descString = desc.Description
|
||||
.Replace("<", "(", StringComparison.Ordinal)
|
||||
.Replace(">", ")", StringComparison.Ordinal);
|
||||
|
||||
if (aliases == null)
|
||||
{
|
||||
|
|
@ -137,7 +139,9 @@ namespace Server.Commands
|
|||
aliases[j] = cmds[j + 1];
|
||||
}
|
||||
|
||||
desc = desc.Replace("<", "(").Replace(">", ")");
|
||||
desc = desc
|
||||
.Replace("<", "(", StringComparison.Ordinal)
|
||||
.Replace(">", ")", StringComparison.Ordinal);
|
||||
|
||||
if (command.Supports != CommandSupport.Single)
|
||||
{
|
||||
|
|
@ -224,7 +228,9 @@ namespace Server.Commands
|
|||
aliases[j] = cmds[j + 1];
|
||||
}
|
||||
|
||||
desc = desc.Replace("<", ")").Replace(">", ")");
|
||||
desc = desc
|
||||
.Replace("<", ")", StringComparison.Ordinal)
|
||||
.Replace(">", ")", StringComparison.Ordinal);
|
||||
|
||||
list.Add(new CommandInfo(command.AccessLevel, cmd, aliases, usage, desc));
|
||||
|
||||
|
|
@ -406,7 +412,10 @@ namespace Server.Commands
|
|||
var sb = new StringBuilder();
|
||||
|
||||
sb.Append("Usage: ");
|
||||
sb.Append(info.Usage.Replace("<", "(").Replace(">", ")"));
|
||||
var usage = info.Usage
|
||||
.Replace("<", "(", StringComparison.Ordinal)
|
||||
.Replace(">", ")", StringComparison.Ordinal);
|
||||
sb.Append(usage);
|
||||
sb.Append("<BR>");
|
||||
|
||||
var aliases = info.Aliases;
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using Server.Commands.Generic;
|
||||
using Server.Items;
|
||||
using Server.Targeting;
|
||||
|
|
@ -43,9 +42,7 @@ namespace Server.Commands
|
|||
graphics = new List<int>();
|
||||
foreach (var arg in e.Arguments)
|
||||
{
|
||||
var numberStyles = arg.ToLower().StartsWith("0x") ? NumberStyles.HexNumber : NumberStyles.Integer;
|
||||
|
||||
if (int.TryParse(arg, numberStyles, CultureInfo.InvariantCulture, out var result))
|
||||
if (Utility.ToInt32(arg, out var result))
|
||||
{
|
||||
graphics.Add(result);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ using Server.Accounting;
|
|||
|
||||
namespace Server.Commands
|
||||
{
|
||||
public class CommandLogging
|
||||
public static class CommandLogging
|
||||
{
|
||||
private static readonly char[] m_NotSafe = { '\\', '/', ':', '*', '?', '"', '<', '>', '|' };
|
||||
public static bool Enabled { get; set; } = true;
|
||||
|
|
@ -44,25 +44,13 @@ namespace Server.Commands
|
|||
}
|
||||
}
|
||||
|
||||
public static object Format(object o)
|
||||
{
|
||||
if (o is Mobile m)
|
||||
public static object Format(object o) =>
|
||||
o switch
|
||||
{
|
||||
if (m.Account == null)
|
||||
{
|
||||
return $"{m} (no account)";
|
||||
}
|
||||
|
||||
return $"{m} ('{m.Account.Username}')";
|
||||
}
|
||||
|
||||
if (o is Item item)
|
||||
{
|
||||
return $"0x{item.Serial.Value:X} ({item.GetType().Name})";
|
||||
}
|
||||
|
||||
return o;
|
||||
}
|
||||
Mobile m => m.Account == null ? $"{m} (no account)" : $"{m} ('{m.Account.Username}')",
|
||||
Item item => $"0x{item.Serial.Value:X} ({item.GetType().Name})",
|
||||
_ => o
|
||||
};
|
||||
|
||||
public static void WriteLine(Mobile from, string format, params object[] args)
|
||||
{
|
||||
|
|
@ -126,7 +114,7 @@ namespace Server.Commands
|
|||
|
||||
for (var i = 0; isSafe && i < m_NotSafe.Length; ++i)
|
||||
{
|
||||
isSafe = ip.IndexOf(m_NotSafe[i]) == -1;
|
||||
isSafe = !ip.Contains(m_NotSafe[i], StringComparison.Ordinal);
|
||||
}
|
||||
|
||||
if (isSafe)
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ using CPA = Server.CommandPropertyAttribute;
|
|||
|
||||
namespace Server.Commands
|
||||
{
|
||||
public class Add
|
||||
public static class Add
|
||||
{
|
||||
private static readonly Type m_EntityType = typeof(IEntity);
|
||||
|
||||
|
|
@ -72,7 +72,7 @@ namespace Server.Commands
|
|||
sb.AppendFormat("from {0} to {1} in {2}", start, end, from.Map);
|
||||
}
|
||||
|
||||
sb.Append(":");
|
||||
sb.Append(':');
|
||||
|
||||
for (var i = 0; i < args.Length; ++i)
|
||||
{
|
||||
|
|
@ -300,7 +300,7 @@ namespace Server.Commands
|
|||
|
||||
object obj = value;
|
||||
|
||||
if (value?.StartsWith("0x") == true)
|
||||
if (value?.StartsWith("0x", StringComparison.Ordinal) == true)
|
||||
{
|
||||
if (IsSignedNumeric(type))
|
||||
{
|
||||
|
|
@ -670,91 +670,81 @@ namespace Server.Commands
|
|||
}
|
||||
}
|
||||
|
||||
[Usage("Tile <name> [params] [set {<propertyName> <value> ...}]")]
|
||||
[Description(
|
||||
"Tiles an item or npc by name into a targeted bounding box. Optional constructor parameters. Optional set property list."
|
||||
)]
|
||||
[Usage("Tile <name> [params] [set {<propertyName> <value> ...}]"), Description(
|
||||
"Tiles an item or npc by name into a targeted bounding box. Optional constructor parameters. Optional set property list."
|
||||
)]
|
||||
public static void Tile_OnCommand(CommandEventArgs e)
|
||||
{
|
||||
Internal_OnCommand(e, false);
|
||||
}
|
||||
|
||||
[Usage("TileRXYZ <x> <y> <w> <h> <z> <name> [params] [set {<propertyName> <value> ...}]")]
|
||||
[Description(
|
||||
"Tiles an item or npc by name into a given bounding box, (x, y) parameters are relative to your characters position. Optional constructor parameters. Optional set property list."
|
||||
)]
|
||||
[Usage("TileRXYZ <x> <y> <w> <h> <z> <name> [params] [set {<propertyName> <value> ...}]"), Description(
|
||||
"Tiles an item or npc by name into a given bounding box, (x, y) parameters are relative to your characters position. Optional constructor parameters. Optional set property list."
|
||||
)]
|
||||
public static void TileRXYZ_OnCommand(CommandEventArgs e)
|
||||
{
|
||||
InternalRXYZ_OnCommand(e, false);
|
||||
}
|
||||
|
||||
[Usage("TileXYZ <x> <y> <w> <h> <z> <name> [params] [set {<propertyName> <value> ...}]")]
|
||||
[Description(
|
||||
"Tiles an item or npc by name into a given bounding box. Optional constructor parameters. Optional set property list."
|
||||
)]
|
||||
[Usage("TileXYZ <x> <y> <w> <h> <z> <name> [params] [set {<propertyName> <value> ...}]"), Description(
|
||||
"Tiles an item or npc by name into a given bounding box. Optional constructor parameters. Optional set property list."
|
||||
)]
|
||||
public static void TileXYZ_OnCommand(CommandEventArgs e)
|
||||
{
|
||||
InternalXYZ_OnCommand(e, false);
|
||||
}
|
||||
|
||||
[Usage("TileZ <z> <name> [params] [set {<propertyName> <value> ...}]")]
|
||||
[Description(
|
||||
"Tiles an item or npc by name into a targeted bounding box at a fixed Z location. Optional constructor parameters. Optional set property list."
|
||||
)]
|
||||
[Usage("TileZ <z> <name> [params] [set {<propertyName> <value> ...}]"), Description(
|
||||
"Tiles an item or npc by name into a targeted bounding box at a fixed Z location. Optional constructor parameters. Optional set property list."
|
||||
)]
|
||||
public static void TileZ_OnCommand(CommandEventArgs e)
|
||||
{
|
||||
InternalZ_OnCommand(e, false);
|
||||
}
|
||||
|
||||
[Usage("TileAvg <name> [params] [set {<propertyName> <value> ...}]")]
|
||||
[Description(
|
||||
"Tiles an item or npc by name into a targeted bounding box on the map's average Z elevation. Optional constructor parameters. Optional set property list."
|
||||
)]
|
||||
[Usage("TileAvg <name> [params] [set {<propertyName> <value> ...}]"), Description(
|
||||
"Tiles an item or npc by name into a targeted bounding box on the map's average Z elevation. Optional constructor parameters. Optional set property list."
|
||||
)]
|
||||
public static void TileAvg_OnCommand(CommandEventArgs e)
|
||||
{
|
||||
InternalAvg_OnCommand(e, false);
|
||||
}
|
||||
|
||||
[Usage("Outline <name> [params] [set {<propertyName> <value> ...}]")]
|
||||
[Description(
|
||||
"Tiles an item or npc by name around a targeted bounding box. Optional constructor parameters. Optional set property list."
|
||||
)]
|
||||
[Usage("Outline <name> [params] [set {<propertyName> <value> ...}]"), Description(
|
||||
"Tiles an item or npc by name around a targeted bounding box. Optional constructor parameters. Optional set property list."
|
||||
)]
|
||||
public static void Outline_OnCommand(CommandEventArgs e)
|
||||
{
|
||||
Internal_OnCommand(e, true);
|
||||
}
|
||||
|
||||
[Usage("OutlineRXYZ <x> <y> <w> <h> <z> <name> [params] [set {<propertyName> <value> ...}]")]
|
||||
[Description(
|
||||
"Tiles an item or npc by name around a given bounding box, (x, y) parameters are relative to your characters position. Optional constructor parameters. Optional set property list."
|
||||
)]
|
||||
[Usage("OutlineRXYZ <x> <y> <w> <h> <z> <name> [params] [set {<propertyName> <value> ...}]"), Description(
|
||||
"Tiles an item or npc by name around a given bounding box, (x, y) parameters are relative to your characters position. Optional constructor parameters. Optional set property list."
|
||||
)]
|
||||
public static void OutlineRXYZ_OnCommand(CommandEventArgs e)
|
||||
{
|
||||
InternalRXYZ_OnCommand(e, true);
|
||||
}
|
||||
|
||||
[Usage("OutlineXYZ <x> <y> <w> <h> <z> <name> [params] [set {<propertyName> <value> ...}]")]
|
||||
[Description(
|
||||
"Tiles an item or npc by name around a given bounding box. Optional constructor parameters. Optional set property list."
|
||||
)]
|
||||
[Usage("OutlineXYZ <x> <y> <w> <h> <z> <name> [params] [set {<propertyName> <value> ...}]"), Description(
|
||||
"Tiles an item or npc by name around a given bounding box. Optional constructor parameters. Optional set property list."
|
||||
)]
|
||||
public static void OutlineXYZ_OnCommand(CommandEventArgs e)
|
||||
{
|
||||
InternalXYZ_OnCommand(e, true);
|
||||
}
|
||||
|
||||
[Usage("OutlineZ <z> <name> [params] [set {<propertyName> <value> ...}]")]
|
||||
[Description(
|
||||
"Tiles an item or npc by name around a targeted bounding box at a fixed Z location. Optional constructor parameters. Optional set property list."
|
||||
)]
|
||||
[Usage("OutlineZ <z> <name> [params] [set {<propertyName> <value> ...}]"), Description(
|
||||
"Tiles an item or npc by name around a targeted bounding box at a fixed Z location. Optional constructor parameters. Optional set property list."
|
||||
)]
|
||||
public static void OutlineZ_OnCommand(CommandEventArgs e)
|
||||
{
|
||||
InternalZ_OnCommand(e, true);
|
||||
}
|
||||
|
||||
[Usage("OutlineAvg <name> [params] [set {<propertyName> <value> ...}]")]
|
||||
[Description(
|
||||
"Tiles an item or npc by name around a targeted bounding box on the map's average Z elevation. Optional constructor parameters. Optional set property list."
|
||||
)]
|
||||
[Usage("OutlineAvg <name> [params] [set {<propertyName> <value> ...}]"), Description(
|
||||
"Tiles an item or npc by name around a targeted bounding box on the map's average Z elevation. Optional constructor parameters. Optional set property list."
|
||||
)]
|
||||
public static void OutlineAvg_OnCommand(CommandEventArgs e)
|
||||
{
|
||||
InternalAvg_OnCommand(e, true);
|
||||
|
|
|
|||
|
|
@ -93,10 +93,9 @@ namespace Server.Gumps
|
|||
CommandSystem.Register("AddMenu", AccessLevel.GameMaster, AddMenu_OnCommand);
|
||||
}
|
||||
|
||||
[Usage("AddMenu [searchString]")]
|
||||
[Description(
|
||||
"Opens an add menu, with an optional initial search string. This menu allows you to search for Items or Mobiles and add them interactively."
|
||||
)]
|
||||
[Usage("AddMenu [searchString]"), Description(
|
||||
"Opens an add menu, with an optional initial search string. This menu allows you to search for Items or Mobiles and add them interactively."
|
||||
)]
|
||||
private static void AddMenu_OnCommand(CommandEventArgs e)
|
||||
{
|
||||
var val = e.ArgString.Trim();
|
||||
|
|
@ -135,7 +134,7 @@ namespace Server.Gumps
|
|||
var t = types[i];
|
||||
|
||||
if ((typeofMobile.IsAssignableFrom(t) || typeofItem.IsAssignableFrom(t)) &&
|
||||
t.Name.ToLower().IndexOf(match, StringComparison.Ordinal) >= 0 && !results.Contains(t))
|
||||
t.Name.ToLower().Contains(match, StringComparison.Ordinal) && !results.Contains(t))
|
||||
{
|
||||
var ctors = t.GetConstructors();
|
||||
|
||||
|
|
|
|||
|
|
@ -48,8 +48,7 @@ namespace Server.Commands
|
|||
CommandSystem.Register("RebuildCategorization", AccessLevel.Administrator, RebuildCategorization_OnCommand);
|
||||
}
|
||||
|
||||
[Usage("RebuildCategorization")]
|
||||
[Description("Rebuilds the categorization data file used by the Add command.")]
|
||||
[Usage("RebuildCategorization"), Description("Rebuilds the categorization data file used by the Add command.")]
|
||||
public static void RebuildCategorization_OnCommand(CommandEventArgs e)
|
||||
{
|
||||
var root = new CategoryEntry(null, "Add Menu", new[] { Items, Mobiles });
|
||||
|
|
@ -305,7 +304,7 @@ namespace Server.Commands
|
|||
|
||||
var text = lines[index].Text;
|
||||
|
||||
var start = text.IndexOf('(');
|
||||
var start = text.IndexOf('(', StringComparison.Ordinal);
|
||||
|
||||
if (start < 0)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -20,8 +20,7 @@ namespace Server.Commands
|
|||
CommandSystem.Register("Decorate", AccessLevel.Administrator, Decorate_OnCommand);
|
||||
}
|
||||
|
||||
[Usage("Decorate")]
|
||||
[Description("Generates world decoration.")]
|
||||
[Usage("Decorate"), Description("Generates world decoration.")]
|
||||
private static void Decorate_OnCommand(CommandEventArgs e)
|
||||
{
|
||||
m_Mobile = e.Mobile;
|
||||
|
|
@ -104,9 +103,9 @@ namespace Server.Commands
|
|||
|
||||
for (var i = 0; i < m_Params.Length; ++i)
|
||||
{
|
||||
if (m_Params[i].StartsWith("LabelNumber"))
|
||||
if (m_Params[i].StartsWith("LabelNumber", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
|
|
@ -124,9 +123,9 @@ namespace Server.Commands
|
|||
|
||||
for (var i = 0; i < m_Params.Length; ++i)
|
||||
{
|
||||
if (m_Params[i].StartsWith("LabelNumber"))
|
||||
if (m_Params[i].StartsWith("LabelNumber", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
|
|
@ -172,9 +171,9 @@ namespace Server.Commands
|
|||
{
|
||||
locked = true;
|
||||
}
|
||||
else if (m_Params[i].StartsWith("TargetMap"))
|
||||
else if (m_Params[i].StartsWith("TargetMap", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
|
|
@ -201,54 +200,54 @@ namespace Server.Commands
|
|||
|
||||
for (var i = 0; i < m_Params.Length; ++i)
|
||||
{
|
||||
if (m_Params[i].StartsWith("Range"))
|
||||
if (m_Params[i].StartsWith("Range", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
range = Utility.ToInt32(m_Params[i].Substring(++indexOf));
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("WarningString"))
|
||||
else if (m_Params[i].StartsWith("WarningString", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
messageString = m_Params[i].Substring(++indexOf);
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("WarningNumber"))
|
||||
else if (m_Params[i].StartsWith("WarningNumber", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
messageNumber = Utility.ToInt32(m_Params[i].Substring(++indexOf));
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("HintString"))
|
||||
else if (m_Params[i].StartsWith("HintString", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
hintString = m_Params[i].Substring(++indexOf);
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("HintNumber"))
|
||||
else if (m_Params[i].StartsWith("HintNumber", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
hintNumber = Utility.ToInt32(m_Params[i].Substring(++indexOf));
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("ResetDelay"))
|
||||
else if (m_Params[i].StartsWith("ResetDelay", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
|
|
@ -274,36 +273,36 @@ namespace Server.Commands
|
|||
|
||||
for (var i = 0; i < m_Params.Length; ++i)
|
||||
{
|
||||
if (m_Params[i].StartsWith("Range"))
|
||||
if (m_Params[i].StartsWith("Range", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
range = Utility.ToInt32(m_Params[i].Substring(++indexOf));
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("WarningString"))
|
||||
else if (m_Params[i].StartsWith("WarningString", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
messageString = m_Params[i].Substring(++indexOf);
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("WarningNumber"))
|
||||
else if (m_Params[i].StartsWith("WarningNumber", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
messageNumber = Utility.ToInt32(m_Params[i].Substring(++indexOf));
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("ResetDelay"))
|
||||
else if (m_Params[i].StartsWith("ResetDelay", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
|
|
@ -325,9 +324,9 @@ namespace Server.Commands
|
|||
|
||||
for (var i = 0; i < m_Params.Length; ++i)
|
||||
{
|
||||
if (m_Params[i].StartsWith("CannonDirection"))
|
||||
if (m_Params[i].StartsWith("CannonDirection", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
|
|
@ -349,27 +348,27 @@ namespace Server.Commands
|
|||
|
||||
for (var i = 0; i < m_Params.Length; ++i)
|
||||
{
|
||||
if (m_Params[i].StartsWith("Word"))
|
||||
if (m_Params[i].StartsWith("Word", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
word = m_Params[i].Substring(++indexOf);
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("DestStart"))
|
||||
else if (m_Params[i].StartsWith("DestStart", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
destination.Start = Point2D.Parse(m_Params[i].Substring(++indexOf));
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("DestEnd"))
|
||||
else if (m_Params[i].StartsWith("DestEnd", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
|
|
@ -387,9 +386,9 @@ namespace Server.Commands
|
|||
|
||||
for (var i = 0; !fill && i < m_Params.Length; ++i)
|
||||
{
|
||||
if (m_Params[i].StartsWith("Content"))
|
||||
if (m_Params[i].StartsWith("Content", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
|
|
@ -418,9 +417,9 @@ namespace Server.Commands
|
|||
|
||||
for (var i = 0; i < m_Params.Length; ++i)
|
||||
{
|
||||
if (m_Params[i].StartsWith("Facing"))
|
||||
if (m_Params[i].StartsWith("Facing", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
|
|
@ -448,9 +447,9 @@ namespace Server.Commands
|
|||
{
|
||||
for (var i = 0; i < m_Params.Length; ++i)
|
||||
{
|
||||
if (m_Params[i].StartsWith("SpawnLocation"))
|
||||
if (m_Params[i].StartsWith("SpawnLocation", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
|
|
@ -516,45 +515,45 @@ namespace Server.Commands
|
|||
|
||||
for (var i = 0; i < m_Params.Length; ++i)
|
||||
{
|
||||
if (m_Params[i].StartsWith("Spawn"))
|
||||
if (m_Params[i].StartsWith("Spawn", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
sp.AddEntry(m_Params[i].Substring(++indexOf));
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("MinDelay"))
|
||||
else if (m_Params[i].StartsWith("MinDelay", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
sp.MinDelay = TimeSpan.Parse(m_Params[i].Substring(++indexOf));
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("MaxDelay"))
|
||||
else if (m_Params[i].StartsWith("MaxDelay", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
sp.MaxDelay = TimeSpan.Parse(m_Params[i].Substring(++indexOf));
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("NextSpawn"))
|
||||
else if (m_Params[i].StartsWith("NextSpawn", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
sp.NextSpawn = TimeSpan.Parse(m_Params[i].Substring(++indexOf));
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("Count"))
|
||||
else if (m_Params[i].StartsWith("Count", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
|
|
@ -565,36 +564,36 @@ namespace Server.Commands
|
|||
}
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("Team"))
|
||||
else if (m_Params[i].StartsWith("Team", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
sp.Team = Utility.ToInt32(m_Params[i].Substring(++indexOf));
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("HomeRange"))
|
||||
else if (m_Params[i].StartsWith("HomeRange", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
sp.HomeRange = Utility.ToInt32(m_Params[i].Substring(++indexOf));
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("Running"))
|
||||
else if (m_Params[i].StartsWith("Running", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
sp.Running = Utility.ToBoolean(m_Params[i].Substring(++indexOf));
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("Group"))
|
||||
else if (m_Params[i].StartsWith("Group", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
|
|
@ -607,36 +606,36 @@ namespace Server.Commands
|
|||
{
|
||||
for (var i = 0; i < m_Params.Length; ++i)
|
||||
{
|
||||
if (m_Params[i].StartsWith("Description"))
|
||||
if (m_Params[i].StartsWith("Description", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
rune.Description = m_Params[i].Substring(++indexOf);
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("Marked"))
|
||||
else if (m_Params[i].StartsWith("Marked", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
rune.Marked = Utility.ToBoolean(m_Params[i].Substring(++indexOf));
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("TargetMap"))
|
||||
else if (m_Params[i].StartsWith("TargetMap", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
rune.TargetMap = Map.Parse(m_Params[i].Substring(++indexOf));
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("Target"))
|
||||
else if (m_Params[i].StartsWith("Target", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
|
|
@ -649,108 +648,108 @@ namespace Server.Commands
|
|||
{
|
||||
for (var i = 0; i < m_Params.Length; ++i)
|
||||
{
|
||||
if (m_Params[i].StartsWith("Skill"))
|
||||
if (m_Params[i].StartsWith("Skill", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
st.Skill = (SkillName)Enum.Parse(typeof(SkillName), m_Params[i].Substring(++indexOf), true);
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("RequiredFixedPoint"))
|
||||
else if (m_Params[i].StartsWith("RequiredFixedPoint", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
st.Required = Utility.ToInt32(m_Params[i].Substring(++indexOf)) * 0.1;
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("Required"))
|
||||
else if (m_Params[i].StartsWith("Required", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
st.Required = Utility.ToDouble(m_Params[i].Substring(++indexOf));
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("MessageString"))
|
||||
else if (m_Params[i].StartsWith("MessageString", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
st.MessageString = m_Params[i].Substring(++indexOf);
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("MessageNumber"))
|
||||
else if (m_Params[i].StartsWith("MessageNumber", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
st.MessageNumber = Utility.ToInt32(m_Params[i].Substring(++indexOf));
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("PointDest"))
|
||||
else if (m_Params[i].StartsWith("PointDest", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
st.PointDest = Point3D.Parse(m_Params[i].Substring(++indexOf));
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("MapDest"))
|
||||
else if (m_Params[i].StartsWith("MapDest", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
st.MapDest = Map.Parse(m_Params[i].Substring(++indexOf));
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("Creatures"))
|
||||
else if (m_Params[i].StartsWith("Creatures", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
st.Creatures = Utility.ToBoolean(m_Params[i].Substring(++indexOf));
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("SourceEffect"))
|
||||
else if (m_Params[i].StartsWith("SourceEffect", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
st.SourceEffect = Utility.ToBoolean(m_Params[i].Substring(++indexOf));
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("DestEffect"))
|
||||
else if (m_Params[i].StartsWith("DestEffect", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
st.DestEffect = Utility.ToBoolean(m_Params[i].Substring(++indexOf));
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("SoundID"))
|
||||
else if (m_Params[i].StartsWith("SoundID", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
st.SoundID = Utility.ToInt32(m_Params[i].Substring(++indexOf));
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("Delay"))
|
||||
else if (m_Params[i].StartsWith("Delay", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
|
|
@ -768,90 +767,90 @@ namespace Server.Commands
|
|||
{
|
||||
for (var i = 0; i < m_Params.Length; ++i)
|
||||
{
|
||||
if (m_Params[i].StartsWith("Substring"))
|
||||
if (m_Params[i].StartsWith("Substring", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
kt.Substring = m_Params[i].Substring(++indexOf);
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("Keyword"))
|
||||
else if (m_Params[i].StartsWith("Keyword", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
kt.Keyword = Utility.ToInt32(m_Params[i].Substring(++indexOf));
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("Range"))
|
||||
else if (m_Params[i].StartsWith("Range", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
kt.Range = Utility.ToInt32(m_Params[i].Substring(++indexOf));
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("PointDest"))
|
||||
else if (m_Params[i].StartsWith("PointDest", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
kt.PointDest = Point3D.Parse(m_Params[i].Substring(++indexOf));
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("MapDest"))
|
||||
else if (m_Params[i].StartsWith("MapDest", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
kt.MapDest = Map.Parse(m_Params[i].Substring(++indexOf));
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("Creatures"))
|
||||
else if (m_Params[i].StartsWith("Creatures", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
kt.Creatures = Utility.ToBoolean(m_Params[i].Substring(++indexOf));
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("SourceEffect"))
|
||||
else if (m_Params[i].StartsWith("SourceEffect", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
kt.SourceEffect = Utility.ToBoolean(m_Params[i].Substring(++indexOf));
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("DestEffect"))
|
||||
else if (m_Params[i].StartsWith("DestEffect", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
kt.DestEffect = Utility.ToBoolean(m_Params[i].Substring(++indexOf));
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("SoundID"))
|
||||
else if (m_Params[i].StartsWith("SoundID", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
kt.SoundID = Utility.ToInt32(m_Params[i].Substring(++indexOf));
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("Delay"))
|
||||
else if (m_Params[i].StartsWith("Delay", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
|
|
@ -869,63 +868,63 @@ namespace Server.Commands
|
|||
{
|
||||
for (var i = 0; i < m_Params.Length; ++i)
|
||||
{
|
||||
if (m_Params[i].StartsWith("PointDest"))
|
||||
if (m_Params[i].StartsWith("PointDest", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
tp.PointDest = Point3D.Parse(m_Params[i].Substring(++indexOf));
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("MapDest"))
|
||||
else if (m_Params[i].StartsWith("MapDest", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
tp.MapDest = Map.Parse(m_Params[i].Substring(++indexOf));
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("Creatures"))
|
||||
else if (m_Params[i].StartsWith("Creatures", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
tp.Creatures = Utility.ToBoolean(m_Params[i].Substring(++indexOf));
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("SourceEffect"))
|
||||
else if (m_Params[i].StartsWith("SourceEffect", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
tp.SourceEffect = Utility.ToBoolean(m_Params[i].Substring(++indexOf));
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("DestEffect"))
|
||||
else if (m_Params[i].StartsWith("DestEffect", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
tp.DestEffect = Utility.ToBoolean(m_Params[i].Substring(++indexOf));
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("SoundID"))
|
||||
else if (m_Params[i].StartsWith("SoundID", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
tp.SoundID = Utility.ToInt32(m_Params[i].Substring(++indexOf));
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("Delay"))
|
||||
else if (m_Params[i].StartsWith("Delay", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
|
|
@ -943,9 +942,9 @@ namespace Server.Commands
|
|||
{
|
||||
for (var i = 0; i < m_Params.Length; ++i)
|
||||
{
|
||||
if (m_Params[i].StartsWith("ContentType"))
|
||||
if (m_Params[i].StartsWith("ContentType", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
|
|
@ -972,18 +971,18 @@ namespace Server.Commands
|
|||
|
||||
for (var i = 0; i < m_Params.Length; ++i)
|
||||
{
|
||||
if (m_Params[i].StartsWith("Light"))
|
||||
if (m_Params[i].StartsWith("Light", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
item.Light = (LightType)Enum.Parse(typeof(LightType), m_Params[i].Substring(++indexOf), true);
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("Hue"))
|
||||
else if (m_Params[i].StartsWith("Hue", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
|
|
@ -999,18 +998,18 @@ namespace Server.Commands
|
|||
}
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("Name"))
|
||||
else if (m_Params[i].StartsWith("Name", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
item.Name = m_Params[i].Substring(++indexOf);
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("Amount"))
|
||||
else if (m_Params[i].StartsWith("Amount", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
|
|
@ -1249,7 +1248,7 @@ namespace Server.Commands
|
|||
{
|
||||
line = line.Trim();
|
||||
|
||||
if (line.Length > 0 && !line.StartsWith("#"))
|
||||
if (line.Length > 0 && !line.StartsWith("#", StringComparison.Ordinal))
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
|
@ -1262,7 +1261,7 @@ namespace Server.Commands
|
|||
|
||||
var list = new DecorationList();
|
||||
|
||||
var indexOf = line.IndexOf(' ');
|
||||
var indexOf = line.IndexOf(' ', StringComparison.Ordinal);
|
||||
|
||||
list.m_Type = AssemblyHandler.FindFirstTypeForName(line.Substring(0, indexOf++), true);
|
||||
|
||||
|
|
@ -1272,14 +1271,14 @@ namespace Server.Commands
|
|||
}
|
||||
|
||||
line = line.Substring(indexOf);
|
||||
indexOf = line.IndexOf('(');
|
||||
indexOf = line.IndexOf('(', StringComparison.Ordinal);
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
list.m_ItemID = Utility.ToInt32(line.Substring(0, indexOf - 1));
|
||||
|
||||
var parms = line.Substring(++indexOf);
|
||||
|
||||
if (line.EndsWith(")"))
|
||||
if (line.EndsWith(")", StringComparison.Ordinal))
|
||||
{
|
||||
parms = parms.Substring(0, parms.Length - 1);
|
||||
}
|
||||
|
|
@ -1308,7 +1307,7 @@ namespace Server.Commands
|
|||
break;
|
||||
}
|
||||
|
||||
if (line.StartsWith("#"))
|
||||
if (line.StartsWith("#", StringComparison.Ordinal))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
|
@ -1338,7 +1337,7 @@ namespace Server.Commands
|
|||
|
||||
public static void Pop(out string v, ref string line)
|
||||
{
|
||||
var space = line.IndexOf(' ');
|
||||
var space = line.IndexOf(' ', StringComparison.Ordinal);
|
||||
|
||||
if (space >= 0)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -21,8 +21,7 @@ namespace Server.Commands
|
|||
CommandSystem.Register("DecorateMag", AccessLevel.Administrator, DecorateMag_OnCommand);
|
||||
}
|
||||
|
||||
[Usage("DecorateMag")]
|
||||
[Description("Generates world decoration.")]
|
||||
[Usage("DecorateMag"), Description("Generates world decoration.")]
|
||||
private static void DecorateMag_OnCommand(CommandEventArgs e)
|
||||
{
|
||||
m_Mobile = e.Mobile;
|
||||
|
|
@ -101,9 +100,9 @@ namespace Server.Commands
|
|||
|
||||
for (var i = 0; i < m_Params.Length; ++i)
|
||||
{
|
||||
if (m_Params[i].StartsWith("LabelNumber"))
|
||||
if (m_Params[i].StartsWith("LabelNumber", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
|
|
@ -121,9 +120,9 @@ namespace Server.Commands
|
|||
|
||||
for (var i = 0; i < m_Params.Length; ++i)
|
||||
{
|
||||
if (m_Params[i].StartsWith("LabelNumber"))
|
||||
if (m_Params[i].StartsWith("LabelNumber", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
|
|
@ -169,9 +168,9 @@ namespace Server.Commands
|
|||
{
|
||||
locked = true;
|
||||
}
|
||||
else if (m_Params[i].StartsWith("TargetMap"))
|
||||
else if (m_Params[i].StartsWith("TargetMap", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
|
|
@ -198,54 +197,54 @@ namespace Server.Commands
|
|||
|
||||
for (var i = 0; i < m_Params.Length; ++i)
|
||||
{
|
||||
if (m_Params[i].StartsWith("Range"))
|
||||
if (m_Params[i].StartsWith("Range", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
range = Utility.ToInt32(m_Params[i].Substring(++indexOf));
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("WarningString"))
|
||||
else if (m_Params[i].StartsWith("WarningString", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
messageString = m_Params[i].Substring(++indexOf);
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("WarningNumber"))
|
||||
else if (m_Params[i].StartsWith("WarningNumber", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
messageNumber = Utility.ToInt32(m_Params[i].Substring(++indexOf));
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("HintString"))
|
||||
else if (m_Params[i].StartsWith("HintString", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
hintString = m_Params[i].Substring(++indexOf);
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("HintNumber"))
|
||||
else if (m_Params[i].StartsWith("HintNumber", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
hintNumber = Utility.ToInt32(m_Params[i].Substring(++indexOf));
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("ResetDelay"))
|
||||
else if (m_Params[i].StartsWith("ResetDelay", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
|
|
@ -271,36 +270,36 @@ namespace Server.Commands
|
|||
|
||||
for (var i = 0; i < m_Params.Length; ++i)
|
||||
{
|
||||
if (m_Params[i].StartsWith("Range"))
|
||||
if (m_Params[i].StartsWith("Range", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
range = Utility.ToInt32(m_Params[i].Substring(++indexOf));
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("WarningString"))
|
||||
else if (m_Params[i].StartsWith("WarningString", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
messageString = m_Params[i].Substring(++indexOf);
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("WarningNumber"))
|
||||
else if (m_Params[i].StartsWith("WarningNumber", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
messageNumber = Utility.ToInt32(m_Params[i].Substring(++indexOf));
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("ResetDelay"))
|
||||
else if (m_Params[i].StartsWith("ResetDelay", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
|
|
@ -322,9 +321,9 @@ namespace Server.Commands
|
|||
|
||||
for (var i = 0; i < m_Params.Length; ++i)
|
||||
{
|
||||
if (m_Params[i].StartsWith("CannonDirection"))
|
||||
if (m_Params[i].StartsWith("CannonDirection", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
|
|
@ -346,27 +345,27 @@ namespace Server.Commands
|
|||
|
||||
for (var i = 0; i < m_Params.Length; ++i)
|
||||
{
|
||||
if (m_Params[i].StartsWith("Word"))
|
||||
if (m_Params[i].StartsWith("Word", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
word = m_Params[i].Substring(++indexOf);
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("DestStart"))
|
||||
else if (m_Params[i].StartsWith("DestStart", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
destination.Start = Point2D.Parse(m_Params[i].Substring(++indexOf));
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("DestEnd"))
|
||||
else if (m_Params[i].StartsWith("DestEnd", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
|
|
@ -384,9 +383,9 @@ namespace Server.Commands
|
|||
|
||||
for (var i = 0; !fill && i < m_Params.Length; ++i)
|
||||
{
|
||||
if (m_Params[i].StartsWith("Content"))
|
||||
if (m_Params[i].StartsWith("Content", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
|
|
@ -415,9 +414,9 @@ namespace Server.Commands
|
|||
|
||||
for (var i = 0; i < m_Params.Length; ++i)
|
||||
{
|
||||
if (m_Params[i].StartsWith("Facing"))
|
||||
if (m_Params[i].StartsWith("Facing", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
|
|
@ -445,9 +444,9 @@ namespace Server.Commands
|
|||
{
|
||||
for (var i = 0; i < m_Params.Length; ++i)
|
||||
{
|
||||
if (m_Params[i].StartsWith("SpawnLocation"))
|
||||
if (m_Params[i].StartsWith("SpawnLocation", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
|
|
@ -513,45 +512,45 @@ namespace Server.Commands
|
|||
|
||||
for (var i = 0; i < m_Params.Length; ++i)
|
||||
{
|
||||
if (m_Params[i].StartsWith("Spawn"))
|
||||
if (m_Params[i].StartsWith("Spawn", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
sp.AddEntry(m_Params[i].Substring(++indexOf));
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("MinDelay"))
|
||||
else if (m_Params[i].StartsWith("MinDelay", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
sp.MinDelay = TimeSpan.Parse(m_Params[i].Substring(++indexOf));
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("MaxDelay"))
|
||||
else if (m_Params[i].StartsWith("MaxDelay", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
sp.MaxDelay = TimeSpan.Parse(m_Params[i].Substring(++indexOf));
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("NextSpawn"))
|
||||
else if (m_Params[i].StartsWith("NextSpawn", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
sp.NextSpawn = TimeSpan.Parse(m_Params[i].Substring(++indexOf));
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("Count"))
|
||||
else if (m_Params[i].StartsWith("Count", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
|
|
@ -562,36 +561,36 @@ namespace Server.Commands
|
|||
}
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("Team"))
|
||||
else if (m_Params[i].StartsWith("Team", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
sp.Team = Utility.ToInt32(m_Params[i].Substring(++indexOf));
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("HomeRange"))
|
||||
else if (m_Params[i].StartsWith("HomeRange", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
sp.HomeRange = Utility.ToInt32(m_Params[i].Substring(++indexOf));
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("Running"))
|
||||
else if (m_Params[i].StartsWith("Running", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
sp.Running = Utility.ToBoolean(m_Params[i].Substring(++indexOf));
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("Group"))
|
||||
else if (m_Params[i].StartsWith("Group", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
|
|
@ -604,36 +603,36 @@ namespace Server.Commands
|
|||
{
|
||||
for (var i = 0; i < m_Params.Length; ++i)
|
||||
{
|
||||
if (m_Params[i].StartsWith("Description"))
|
||||
if (m_Params[i].StartsWith("Description", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
rune.Description = m_Params[i].Substring(++indexOf);
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("Marked"))
|
||||
else if (m_Params[i].StartsWith("Marked", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
rune.Marked = Utility.ToBoolean(m_Params[i].Substring(++indexOf));
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("TargetMap"))
|
||||
else if (m_Params[i].StartsWith("TargetMap", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
rune.TargetMap = Map.Parse(m_Params[i].Substring(++indexOf));
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("Target"))
|
||||
else if (m_Params[i].StartsWith("Target", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
|
|
@ -646,108 +645,108 @@ namespace Server.Commands
|
|||
{
|
||||
for (var i = 0; i < m_Params.Length; ++i)
|
||||
{
|
||||
if (m_Params[i].StartsWith("Skill"))
|
||||
if (m_Params[i].StartsWith("Skill", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
st.Skill = (SkillName)Enum.Parse(typeof(SkillName), m_Params[i].Substring(++indexOf), true);
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("RequiredFixedPoint"))
|
||||
else if (m_Params[i].StartsWith("RequiredFixedPoint", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
st.Required = Utility.ToInt32(m_Params[i].Substring(++indexOf)) * 0.1;
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("Required"))
|
||||
else if (m_Params[i].StartsWith("Required", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
st.Required = Utility.ToDouble(m_Params[i].Substring(++indexOf));
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("MessageString"))
|
||||
else if (m_Params[i].StartsWith("MessageString", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
st.MessageString = m_Params[i].Substring(++indexOf);
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("MessageNumber"))
|
||||
else if (m_Params[i].StartsWith("MessageNumber", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
st.MessageNumber = Utility.ToInt32(m_Params[i].Substring(++indexOf));
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("PointDest"))
|
||||
else if (m_Params[i].StartsWith("PointDest", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
st.PointDest = Point3D.Parse(m_Params[i].Substring(++indexOf));
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("MapDest"))
|
||||
else if (m_Params[i].StartsWith("MapDest", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
st.MapDest = Map.Parse(m_Params[i].Substring(++indexOf));
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("Creatures"))
|
||||
else if (m_Params[i].StartsWith("Creatures", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
st.Creatures = Utility.ToBoolean(m_Params[i].Substring(++indexOf));
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("SourceEffect"))
|
||||
else if (m_Params[i].StartsWith("SourceEffect", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
st.SourceEffect = Utility.ToBoolean(m_Params[i].Substring(++indexOf));
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("DestEffect"))
|
||||
else if (m_Params[i].StartsWith("DestEffect", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
st.DestEffect = Utility.ToBoolean(m_Params[i].Substring(++indexOf));
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("SoundID"))
|
||||
else if (m_Params[i].StartsWith("SoundID", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
st.SoundID = Utility.ToInt32(m_Params[i].Substring(++indexOf));
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("Delay"))
|
||||
else if (m_Params[i].StartsWith("Delay", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
|
|
@ -765,90 +764,90 @@ namespace Server.Commands
|
|||
{
|
||||
for (var i = 0; i < m_Params.Length; ++i)
|
||||
{
|
||||
if (m_Params[i].StartsWith("Substring"))
|
||||
if (m_Params[i].StartsWith("Substring", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
kt.Substring = m_Params[i].Substring(++indexOf);
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("Keyword"))
|
||||
else if (m_Params[i].StartsWith("Keyword", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
kt.Keyword = Utility.ToInt32(m_Params[i].Substring(++indexOf));
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("Range"))
|
||||
else if (m_Params[i].StartsWith("Range", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
kt.Range = Utility.ToInt32(m_Params[i].Substring(++indexOf));
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("PointDest"))
|
||||
else if (m_Params[i].StartsWith("PointDest", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
kt.PointDest = Point3D.Parse(m_Params[i].Substring(++indexOf));
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("MapDest"))
|
||||
else if (m_Params[i].StartsWith("MapDest", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
kt.MapDest = Map.Parse(m_Params[i].Substring(++indexOf));
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("Creatures"))
|
||||
else if (m_Params[i].StartsWith("Creatures", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
kt.Creatures = Utility.ToBoolean(m_Params[i].Substring(++indexOf));
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("SourceEffect"))
|
||||
else if (m_Params[i].StartsWith("SourceEffect", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
kt.SourceEffect = Utility.ToBoolean(m_Params[i].Substring(++indexOf));
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("DestEffect"))
|
||||
else if (m_Params[i].StartsWith("DestEffect", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
kt.DestEffect = Utility.ToBoolean(m_Params[i].Substring(++indexOf));
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("SoundID"))
|
||||
else if (m_Params[i].StartsWith("SoundID", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
kt.SoundID = Utility.ToInt32(m_Params[i].Substring(++indexOf));
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("Delay"))
|
||||
else if (m_Params[i].StartsWith("Delay", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
|
|
@ -866,63 +865,63 @@ namespace Server.Commands
|
|||
{
|
||||
for (var i = 0; i < m_Params.Length; ++i)
|
||||
{
|
||||
if (m_Params[i].StartsWith("PointDest"))
|
||||
if (m_Params[i].StartsWith("PointDest", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
tp.PointDest = Point3D.Parse(m_Params[i].Substring(++indexOf));
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("MapDest"))
|
||||
else if (m_Params[i].StartsWith("MapDest", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
tp.MapDest = Map.Parse(m_Params[i].Substring(++indexOf));
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("Creatures"))
|
||||
else if (m_Params[i].StartsWith("Creatures", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
tp.Creatures = Utility.ToBoolean(m_Params[i].Substring(++indexOf));
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("SourceEffect"))
|
||||
else if (m_Params[i].StartsWith("SourceEffect", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
tp.SourceEffect = Utility.ToBoolean(m_Params[i].Substring(++indexOf));
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("DestEffect"))
|
||||
else if (m_Params[i].StartsWith("DestEffect", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
tp.DestEffect = Utility.ToBoolean(m_Params[i].Substring(++indexOf));
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("SoundID"))
|
||||
else if (m_Params[i].StartsWith("SoundID", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
tp.SoundID = Utility.ToInt32(m_Params[i].Substring(++indexOf));
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("Delay"))
|
||||
else if (m_Params[i].StartsWith("Delay", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
|
|
@ -940,9 +939,9 @@ namespace Server.Commands
|
|||
{
|
||||
for (var i = 0; i < m_Params.Length; ++i)
|
||||
{
|
||||
if (m_Params[i].StartsWith("ContentType"))
|
||||
if (m_Params[i].StartsWith("ContentType", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
|
|
@ -969,18 +968,18 @@ namespace Server.Commands
|
|||
|
||||
for (var i = 0; i < m_Params.Length; ++i)
|
||||
{
|
||||
if (m_Params[i].StartsWith("Light"))
|
||||
if (m_Params[i].StartsWith("Light", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
item.Light = (LightType)Enum.Parse(typeof(LightType), m_Params[i].Substring(++indexOf), true);
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("Hue"))
|
||||
else if (m_Params[i].StartsWith("Hue", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
|
|
@ -996,18 +995,18 @@ namespace Server.Commands
|
|||
}
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("Name"))
|
||||
else if (m_Params[i].StartsWith("Name", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
item.Name = m_Params[i].Substring(++indexOf);
|
||||
}
|
||||
}
|
||||
else if (m_Params[i].StartsWith("Amount"))
|
||||
else if (m_Params[i].StartsWith("Amount", StringComparison.Ordinal))
|
||||
{
|
||||
var indexOf = m_Params[i].IndexOf('=');
|
||||
var indexOf = m_Params[i].IndexOf('=', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
|
|
@ -1236,7 +1235,7 @@ namespace Server.Commands
|
|||
{
|
||||
line = line.Trim();
|
||||
|
||||
if (line.Length > 0 && !line.StartsWith("#"))
|
||||
if (line.Length > 0 && !line.StartsWith("#", StringComparison.Ordinal))
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
|
@ -1249,7 +1248,7 @@ namespace Server.Commands
|
|||
|
||||
var list = new DecorationListMag();
|
||||
|
||||
var indexOf = line.IndexOf(' ');
|
||||
var indexOf = line.IndexOf(' ', StringComparison.Ordinal);
|
||||
|
||||
list.m_Type = AssemblyHandler.FindFirstTypeForName(line.Substring(0, indexOf++), true);
|
||||
|
||||
|
|
@ -1259,14 +1258,14 @@ namespace Server.Commands
|
|||
}
|
||||
|
||||
line = line.Substring(indexOf);
|
||||
indexOf = line.IndexOf('(');
|
||||
indexOf = line.IndexOf('(', StringComparison.Ordinal);
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
list.m_ItemID = Utility.ToInt32(line.Substring(0, indexOf - 1));
|
||||
|
||||
var parms = line.Substring(++indexOf);
|
||||
|
||||
if (line.EndsWith(")"))
|
||||
if (line.EndsWith(")", StringComparison.Ordinal))
|
||||
{
|
||||
parms = parms.Substring(0, parms.Length - 1);
|
||||
}
|
||||
|
|
@ -1295,7 +1294,7 @@ namespace Server.Commands
|
|||
break;
|
||||
}
|
||||
|
||||
if (line.StartsWith("#"))
|
||||
if (line.StartsWith("#", StringComparison.Ordinal))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
|
@ -1325,7 +1324,7 @@ namespace Server.Commands
|
|||
|
||||
public void Pop(out string v, ref string line)
|
||||
{
|
||||
var space = line.IndexOf(' ');
|
||||
var space = line.IndexOf(' ', StringComparison.Ordinal);
|
||||
|
||||
if (space >= 0)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -19,13 +19,6 @@ namespace Server.Commands
|
|||
public bool Back { get; set; }
|
||||
|
||||
public override string ToString() => $"{{{Source},{Destination},{Back}}}";
|
||||
|
||||
public bool Equals(TeleporterDefinition other) =>
|
||||
Source.Equals(other.Source) && Destination.Equals(other.Destination) && Back == other.Back;
|
||||
|
||||
public override bool Equals(object obj) => obj is TeleporterDefinition other && Equals(other);
|
||||
|
||||
public override int GetHashCode() => HashCode.Combine(Source, Destination, Back);
|
||||
}
|
||||
|
||||
public static class GenTeleporter
|
||||
|
|
@ -39,8 +32,7 @@ namespace Server.Commands
|
|||
CommandSystem.Register("TelGenDelete", AccessLevel.Administrator, TelGenDelete_OnCommand);
|
||||
}
|
||||
|
||||
[Usage("TelGenDelete")]
|
||||
[Description("Destroys world/dungeon teleporters for all facets.")]
|
||||
[Usage("TelGenDelete"), Description("Destroys world/dungeon teleporters for all facets.")]
|
||||
public static void TelGenDelete_OnCommand(CommandEventArgs e)
|
||||
{
|
||||
var from = e.Mobile;
|
||||
|
|
@ -70,8 +62,7 @@ namespace Server.Commands
|
|||
from.SendMessage(WarningHue, $"{count} Teleporters Removed.");
|
||||
}
|
||||
|
||||
[Usage("TelGen")]
|
||||
[Description("Generates world/dungeon teleporters for all facets.")]
|
||||
[Usage("TelGen"), Description("Generates world/dungeon teleporters for all facets.")]
|
||||
public static void GenTeleporter_OnCommand(CommandEventArgs e)
|
||||
{
|
||||
var from = e.Mobile;
|
||||
|
|
|
|||
|
|
@ -19,8 +19,7 @@ namespace Server.Commands
|
|||
CommandSystem.Register("SetProfiles", AccessLevel.Administrator, SetProfiles_OnCommand);
|
||||
}
|
||||
|
||||
[Usage("WriteProfiles")]
|
||||
[Description("Generates a log files containing performance diagnostic information.")]
|
||||
[Usage("WriteProfiles"), Description("Generates a log files containing performance diagnostic information.")]
|
||||
public static void WriteProfiles_OnCommand(CommandEventArgs e)
|
||||
{
|
||||
try
|
||||
|
|
@ -55,8 +54,8 @@ namespace Server.Commands
|
|||
}
|
||||
}
|
||||
|
||||
[Usage("SetProfiles [true | false]")]
|
||||
[Description("Enables, disables, or toggles the state of core packet and timer profiling.")]
|
||||
[Usage("SetProfiles [true | false]"),
|
||||
Description("Enables, disables, or toggles the state of core packet and timer profiling.")]
|
||||
public static void SetProfiles_OnCommand(CommandEventArgs e)
|
||||
{
|
||||
if (e.Length == 1)
|
||||
|
|
@ -71,8 +70,8 @@ namespace Server.Commands
|
|||
e.Mobile.SendMessage("Profiling has been {0}.", Core.Profiling ? "enabled" : "disabled");
|
||||
}
|
||||
|
||||
[Usage("DumpTimers")]
|
||||
[Description("Generates a log file of all currently executing timers. Used for tracing timer leaks.")]
|
||||
[Usage("DumpTimers"),
|
||||
Description("Generates a log file of all currently executing timers. Used for tracing timer leaks.")]
|
||||
public static void DumpTimers_OnCommand(CommandEventArgs e)
|
||||
{
|
||||
try
|
||||
|
|
@ -86,8 +85,7 @@ namespace Server.Commands
|
|||
}
|
||||
}
|
||||
|
||||
[Usage("CountObjects")]
|
||||
[Description("Generates a log file detailing all item and mobile types in the world.")]
|
||||
[Usage("CountObjects"), Description("Generates a log file detailing all item and mobile types in the world.")]
|
||||
public static void CountObjects_OnCommand(CommandEventArgs e)
|
||||
{
|
||||
using (var op = new StreamWriter("objects.log"))
|
||||
|
|
@ -141,8 +139,7 @@ namespace Server.Commands
|
|||
e.Mobile.SendMessage("Object table has been generated. See the file : <runuo root>/objects.log");
|
||||
}
|
||||
|
||||
[Usage("TraceExpanded")]
|
||||
[Description("Generates a log file describing all items using expanded memory.")]
|
||||
[Usage("TraceExpanded"), Description("Generates a log file describing all items using expanded memory.")]
|
||||
public static void TraceExpanded_OnCommand(CommandEventArgs e)
|
||||
{
|
||||
var typeTable = new Dictionary<Type, int[]>();
|
||||
|
|
@ -253,8 +250,7 @@ namespace Server.Commands
|
|||
}
|
||||
}
|
||||
|
||||
[Usage("TraceInternal")]
|
||||
[Description("Generates a log file describing all items in the 'internal' map.")]
|
||||
[Usage("TraceInternal"), Description("Generates a log file describing all items in the 'internal' map.")]
|
||||
public static void TraceInternal_OnCommand(CommandEventArgs e)
|
||||
{
|
||||
var totalCount = 0;
|
||||
|
|
@ -297,8 +293,8 @@ namespace Server.Commands
|
|||
}
|
||||
}
|
||||
|
||||
[Usage("ProfileWorld")]
|
||||
[Description("Prints the amount of data serialized for every object type in your world file.")]
|
||||
[Usage("ProfileWorld"),
|
||||
Description("Prints the amount of data serialized for every object type in your world file.")]
|
||||
public static void ProfileWorld_OnCommand(CommandEventArgs e)
|
||||
{
|
||||
ProfileWorld("items", "worldprofile_items.log");
|
||||
|
|
|
|||
|
|
@ -49,8 +49,8 @@ namespace Server.Commands
|
|||
CommandSystem.Register("Props", AccessLevel.Counselor, Props_OnCommand);
|
||||
}
|
||||
|
||||
[Usage("Props [serial]")]
|
||||
[Description("Opens a menu where you can view and edit all properties of a targeted (or specified) object.")]
|
||||
[Usage("Props [serial]"),
|
||||
Description("Opens a menu where you can view and edit all properties of a targeted (or specified) object.")]
|
||||
private static void Props_OnCommand(CommandEventArgs e)
|
||||
{
|
||||
if (e.Length == 1)
|
||||
|
|
@ -254,7 +254,7 @@ namespace Server.Commands
|
|||
{
|
||||
var valueString = args[1 + i * 2];
|
||||
|
||||
if (valueString.StartsWith("0x"))
|
||||
if (valueString.StartsWith("0x", StringComparison.Ordinal))
|
||||
{
|
||||
realValues[i] = Convert.ToInt32(valueString.Substring(2), 16);
|
||||
}
|
||||
|
|
@ -483,7 +483,7 @@ namespace Server.Commands
|
|||
{
|
||||
toSet = null;
|
||||
}
|
||||
else if (value.StartsWith("0x") && IsNumeric(type))
|
||||
else if (value.StartsWith("0x", StringComparison.Ordinal) && IsNumeric(type))
|
||||
{
|
||||
try
|
||||
{
|
||||
|
|
@ -620,7 +620,7 @@ namespace Server.Commands
|
|||
|
||||
namespace Server
|
||||
{
|
||||
public abstract class PropertyException : ApplicationException
|
||||
public abstract class PropertyException : Exception
|
||||
{
|
||||
protected Property m_Property;
|
||||
|
||||
|
|
@ -739,13 +739,15 @@ namespace Server
|
|||
|
||||
public PropertyAccess Access { get; private set; }
|
||||
|
||||
private void NotYetBound() => throw new NotYetBoundException(this);
|
||||
|
||||
public PropertyInfo[] Chain
|
||||
{
|
||||
get
|
||||
{
|
||||
if (!IsBound)
|
||||
{
|
||||
throw new NotYetBoundException(this);
|
||||
NotYetBound();
|
||||
}
|
||||
|
||||
return m_Chain;
|
||||
|
|
@ -758,7 +760,7 @@ namespace Server
|
|||
{
|
||||
if (!IsBound)
|
||||
{
|
||||
throw new NotYetBoundException(this);
|
||||
NotYetBound();
|
||||
}
|
||||
|
||||
return m_Chain[^1].PropertyType;
|
||||
|
|
|
|||
|
|
@ -1,19 +1,19 @@
|
|||
using System;
|
||||
using System.Globalization;
|
||||
|
||||
namespace Server.Commands
|
||||
{
|
||||
public class ShardTime
|
||||
public static class ShardTime
|
||||
{
|
||||
public static void Initialize()
|
||||
{
|
||||
CommandSystem.Register("Time", AccessLevel.Player, Time_OnCommand);
|
||||
}
|
||||
|
||||
[Usage("Time")]
|
||||
[Description("Returns the server's local time.")]
|
||||
[Usage("Time"), Description("Returns the server's local time.")]
|
||||
private static void Time_OnCommand(CommandEventArgs e)
|
||||
{
|
||||
e.Mobile.SendMessage(DateTime.UtcNow.ToString());
|
||||
e.Mobile.SendMessage(DateTime.UtcNow.ToString(CultureInfo.InvariantCulture));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,10 +1,11 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Commands
|
||||
{
|
||||
public class SignParser
|
||||
public static class SignParser
|
||||
{
|
||||
private static readonly Queue<Item> m_ToDelete = new Queue<Item>();
|
||||
|
||||
|
|
@ -13,8 +14,7 @@ namespace Server.Commands
|
|||
CommandSystem.Register("SignGen", AccessLevel.Administrator, SignGen_OnCommand);
|
||||
}
|
||||
|
||||
[Usage("SignGen")]
|
||||
[Description("Generates world/shop signs on all facets.")]
|
||||
[Usage("SignGen"), Description("Generates world/shop signs on all facets.")]
|
||||
public static void SignGen_OnCommand(CommandEventArgs c)
|
||||
{
|
||||
Parse(c.Mobile);
|
||||
|
|
@ -108,14 +108,13 @@ namespace Server.Commands
|
|||
|
||||
Item sign;
|
||||
|
||||
if (name.StartsWith("#"))
|
||||
if (name.StartsWith("#", StringComparison.Ordinal))
|
||||
{
|
||||
sign = new LocalizedSign(itemID, Utility.ToInt32(name.Substring(1)));
|
||||
}
|
||||
else
|
||||
{
|
||||
sign = new Sign(itemID);
|
||||
sign.Name = name;
|
||||
sign = new Sign(itemID) { Name = name };
|
||||
}
|
||||
|
||||
if (map == Map.Malas)
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ using Server.Targeting;
|
|||
|
||||
namespace Server.Commands
|
||||
{
|
||||
public class SkillsCommand
|
||||
public static class SkillsCommand
|
||||
{
|
||||
public static void Initialize()
|
||||
{
|
||||
|
|
@ -12,8 +12,7 @@ namespace Server.Commands
|
|||
CommandSystem.Register("SetAllSkills", AccessLevel.GameMaster, SetAllSkills_OnCommand);
|
||||
}
|
||||
|
||||
[Usage("SetSkill <name> <value>")]
|
||||
[Description("Sets a skill value by name of a targeted mobile.")]
|
||||
[Usage("SetSkill <name> <value>"), Description("Sets a skill value by name of a targeted mobile.")]
|
||||
public static void SetSkill_OnCommand(CommandEventArgs arg)
|
||||
{
|
||||
if (arg.Length != 2)
|
||||
|
|
@ -33,8 +32,7 @@ namespace Server.Commands
|
|||
}
|
||||
}
|
||||
|
||||
[Usage("SetAllSkills <name> <value>")]
|
||||
[Description("Sets all skill values of a targeted mobile.")]
|
||||
[Usage("SetAllSkills <name> <value>"), Description("Sets all skill values of a targeted mobile.")]
|
||||
public static void SetAllSkills_OnCommand(CommandEventArgs arg)
|
||||
{
|
||||
if (arg.Length != 1)
|
||||
|
|
@ -47,8 +45,7 @@ namespace Server.Commands
|
|||
}
|
||||
}
|
||||
|
||||
[Usage("GetSkill <name>")]
|
||||
[Description("Gets a skill value by name of a targeted mobile.")]
|
||||
[Usage("GetSkill <name>"), Description("Gets a skill value by name of a targeted mobile.")]
|
||||
public static void GetSkill_OnCommand(CommandEventArgs arg)
|
||||
{
|
||||
if (arg.Length != 1)
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ using Server.Targeting;
|
|||
|
||||
namespace Server.Commands
|
||||
{
|
||||
public class Skills
|
||||
public static class SkillsMenu
|
||||
{
|
||||
public static void Initialize()
|
||||
{
|
||||
|
|
@ -15,8 +15,7 @@ namespace Server.Commands
|
|||
CommandSystem.Register("Skills", AccessLevel.Counselor, Skills_OnCommand);
|
||||
}
|
||||
|
||||
[Usage("Skills")]
|
||||
[Description("Opens a menu where you can view or edit skills of a targeted mobile.")]
|
||||
[Usage("Skills"), Description("Opens a menu where you can view or edit skills of a targeted mobile.")]
|
||||
private static void Skills_OnCommand(CommandEventArgs e)
|
||||
{
|
||||
e.Mobile.Target = new SkillsTarget();
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ using Server.Items;
|
|||
|
||||
namespace Server
|
||||
{
|
||||
public class Statics
|
||||
public static class Statics
|
||||
{
|
||||
public delegate void FreezeCallback(Mobile from, bool okay, StateInfo si);
|
||||
|
||||
|
|
@ -47,16 +47,14 @@ namespace Server
|
|||
CommandSystem.Register("UnfreezeWorld", AccessLevel.Administrator, UnfreezeWorld_OnCommand);
|
||||
}
|
||||
|
||||
[Usage("Freeze")]
|
||||
[Description("Makes a targeted area of dynamic items static.")]
|
||||
[Usage("Freeze"), Description("Makes a targeted area of dynamic items static.")]
|
||||
public static void Freeze_OnCommand(CommandEventArgs e)
|
||||
{
|
||||
var from = e.Mobile;
|
||||
BoundingBoxPicker.Begin(from, (map, start, end) => FreezeBox_Callback(from, map, start, end));
|
||||
}
|
||||
|
||||
[Usage("FreezeMap")]
|
||||
[Description("Makes every dynamic item in your map static.")]
|
||||
[Usage("FreezeMap"), Description("Makes every dynamic item in your map static.")]
|
||||
public static void FreezeMap_OnCommand(CommandEventArgs e)
|
||||
{
|
||||
var from = e.Mobile;
|
||||
|
|
@ -76,8 +74,7 @@ namespace Server
|
|||
}
|
||||
}
|
||||
|
||||
[Usage("FreezeWorld")]
|
||||
[Description("Makes every dynamic item on all maps static.")]
|
||||
[Usage("FreezeWorld"), Description("Makes every dynamic item on all maps static.")]
|
||||
public static void FreezeWorld_OnCommand(CommandEventArgs e)
|
||||
{
|
||||
SendWarning(
|
||||
|
|
@ -406,16 +403,14 @@ namespace Server
|
|||
}
|
||||
}
|
||||
|
||||
[Usage("Unfreeze")]
|
||||
[Description("Makes a targeted area of static items dynamic.")]
|
||||
[Usage("Unfreeze"), Description("Makes a targeted area of static items dynamic.")]
|
||||
public static void Unfreeze_OnCommand(CommandEventArgs e)
|
||||
{
|
||||
var from = e.Mobile;
|
||||
BoundingBoxPicker.Begin(from, (map, start, end) => UnfreezeBox_Callback(from, map, start, end));
|
||||
}
|
||||
|
||||
[Usage("UnfreezeMap")]
|
||||
[Description("Makes every static item in your map dynamic.")]
|
||||
[Usage("UnfreezeMap"), Description("Makes every static item in your map dynamic.")]
|
||||
public static void UnfreezeMap_OnCommand(CommandEventArgs e)
|
||||
{
|
||||
var map = e.Mobile.Map;
|
||||
|
|
@ -434,8 +429,7 @@ namespace Server
|
|||
}
|
||||
}
|
||||
|
||||
[Usage("UnfreezeWorld")]
|
||||
[Description("Makes every static item on all maps dynamic.")]
|
||||
[Usage("UnfreezeWorld"), Description("Makes every static item on all maps dynamic.")]
|
||||
public static void UnfreezeWorld_OnCommand(CommandEventArgs e)
|
||||
{
|
||||
SendWarning(
|
||||
|
|
|
|||
|
|
@ -21,10 +21,9 @@ namespace Server.Commands
|
|||
(m as PlayerMobile)?.VisibilityList.Clear();
|
||||
}
|
||||
|
||||
[Usage("Vis")]
|
||||
[Description(
|
||||
"Adds or removes a targeted player from your visibility list. Anyone on your visibility list will be able to see you at all times, even when you're hidden."
|
||||
)]
|
||||
[Usage("Vis"), Description(
|
||||
"Adds or removes a targeted player from your visibility list. Anyone on your visibility list will be able to see you at all times, even when you're hidden."
|
||||
)]
|
||||
public static void Vis_OnCommand(CommandEventArgs e)
|
||||
{
|
||||
if (e.Mobile is PlayerMobile)
|
||||
|
|
@ -34,8 +33,7 @@ namespace Server.Commands
|
|||
}
|
||||
}
|
||||
|
||||
[Usage("VisList")]
|
||||
[Description("Shows the names of everyone in your visibility list.")]
|
||||
[Usage("VisList"), Description("Shows the names of everyone in your visibility list.")]
|
||||
public static void VisList_OnCommand(CommandEventArgs e)
|
||||
{
|
||||
if (e.Mobile is PlayerMobile pm)
|
||||
|
|
@ -58,8 +56,7 @@ namespace Server.Commands
|
|||
}
|
||||
}
|
||||
|
||||
[Usage("VisClear")]
|
||||
[Description("Removes everyone from your visibility list.")]
|
||||
[Usage("VisClear"), Description("Removes everyone from your visibility list.")]
|
||||
public static void VisClear_OnCommand(CommandEventArgs e)
|
||||
{
|
||||
if (e.Mobile is PlayerMobile pm)
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ using Server.Multis;
|
|||
|
||||
namespace Server.Commands
|
||||
{
|
||||
public class Wipe
|
||||
public static class Wipe
|
||||
{
|
||||
[Flags]
|
||||
public enum WipeType
|
||||
|
|
@ -24,29 +24,25 @@ namespace Server.Commands
|
|||
CommandSystem.Register("WipeMultis", AccessLevel.GameMaster, WipeMultis_OnCommand);
|
||||
}
|
||||
|
||||
[Usage("Wipe")]
|
||||
[Description("Wipes all items and npcs in a targeted bounding box.")]
|
||||
[Usage("Wipe"), Description("Wipes all items and npcs in a targeted bounding box.")]
|
||||
private static void WipeAll_OnCommand(CommandEventArgs e)
|
||||
{
|
||||
BeginWipe(e.Mobile, WipeType.Items | WipeType.Mobiles);
|
||||
}
|
||||
|
||||
[Usage("WipeItems")]
|
||||
[Description("Wipes all items in a targeted bounding box.")]
|
||||
[Usage("WipeItems"), Description("Wipes all items in a targeted bounding box.")]
|
||||
private static void WipeItems_OnCommand(CommandEventArgs e)
|
||||
{
|
||||
BeginWipe(e.Mobile, WipeType.Items);
|
||||
}
|
||||
|
||||
[Usage("WipeNPCs")]
|
||||
[Description("Wipes all npcs in a targeted bounding box.")]
|
||||
[Usage("WipeNPCs"), Description("Wipes all npcs in a targeted bounding box.")]
|
||||
private static void WipeNPCs_OnCommand(CommandEventArgs e)
|
||||
{
|
||||
BeginWipe(e.Mobile, WipeType.Mobiles);
|
||||
}
|
||||
|
||||
[Usage("WipeMultis")]
|
||||
[Description("Wipes all multis in a targeted bounding box.")]
|
||||
[Usage("WipeMultis"), Description("Wipes all multis in a targeted bounding box.")]
|
||||
private static void WipeMultis_OnCommand(CommandEventArgs e)
|
||||
{
|
||||
BeginWipe(e.Mobile, WipeType.Multis);
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
using Server.Items;
|
||||
using Server.Network;
|
||||
using Server.Targeting;
|
||||
|
||||
namespace Server.ContextMenus
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ namespace Server.Engines.BulkOrders
|
|||
Leather
|
||||
}
|
||||
|
||||
public class BGTClassifier
|
||||
public static class BGTClassifier
|
||||
{
|
||||
public static BulkGenericType Classify(BODType deedType, Type itemType)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -65,7 +65,7 @@ namespace Server.Engines.BulkOrders
|
|||
|
||||
while ((line = ip.ReadLine()) != null)
|
||||
{
|
||||
if (line.Length == 0 || line.StartsWith("#"))
|
||||
if (line.Length == 0 || line.StartsWith("#", StringComparison.Ordinal))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
using System;
|
||||
|
||||
namespace Server.Engines.Chat
|
||||
{
|
||||
public class ChatActionHandlers
|
||||
public static class ChatActionHandlers
|
||||
{
|
||||
private static readonly ChatActionHandler[] m_Handlers;
|
||||
|
||||
|
|
@ -84,7 +86,7 @@ namespace Server.Engines.Chat
|
|||
|
||||
public static void PrivateMessage(ChatUser from, Channel channel, string param)
|
||||
{
|
||||
var indexOf = param.IndexOf(' ');
|
||||
var indexOf = param.IndexOf(' ', StringComparison.Ordinal);
|
||||
|
||||
var name = param.Substring(0, indexOf);
|
||||
var text = param.Substring(indexOf + 1);
|
||||
|
|
@ -171,7 +173,7 @@ namespace Server.Engines.Chat
|
|||
string name;
|
||||
string password = null;
|
||||
|
||||
var start = param.IndexOf('\"');
|
||||
var start = param.IndexOf('\"', StringComparison.Ordinal);
|
||||
|
||||
if (start >= 0)
|
||||
{
|
||||
|
|
@ -189,7 +191,7 @@ namespace Server.Engines.Chat
|
|||
}
|
||||
else
|
||||
{
|
||||
var indexOf = param.IndexOf(' ');
|
||||
var indexOf = param.IndexOf(' ', StringComparison.Ordinal);
|
||||
|
||||
if (indexOf >= 0)
|
||||
{
|
||||
|
|
@ -226,7 +228,7 @@ namespace Server.Engines.Chat
|
|||
string name;
|
||||
string password = null;
|
||||
|
||||
var start = param.IndexOf('{');
|
||||
var start = param.IndexOf('{', StringComparison.Ordinal);
|
||||
|
||||
if (start >= 0)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -800,7 +800,7 @@ namespace Server.Engines.ConPVP
|
|||
{
|
||||
if (!m_Bomb.m_Flying && m_Bomb.Map != Map.Internal)
|
||||
{
|
||||
Effects.SendLocationEffect(m_Bomb.GetWorldLocation(), m_Bomb.Map, 0x377A, 16, 10, m_Bomb.Hue, 0);
|
||||
Effects.SendLocationEffect(m_Bomb.GetWorldLocation(), m_Bomb.Map, 0x377A, 16, 10, m_Bomb.Hue);
|
||||
}
|
||||
|
||||
if (m_Bomb.Location != m_Bomb.m_Game.Controller.BombHome)
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@ namespace Server.Engines.ConPVP
|
|||
hasAppended = true;
|
||||
}
|
||||
|
||||
sb.Append(".");
|
||||
sb.Append('.');
|
||||
|
||||
part.AddLog(sb.ToString());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
using System;
|
||||
using System.Linq;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
|
@ -25,7 +26,7 @@ namespace Server.Engines.ConPVP
|
|||
private const int BlackColor32 = 0x000008;
|
||||
private const int LabelColor32 = 0xFFFFFF;
|
||||
private readonly Mobile m_From;
|
||||
private readonly List<object> m_List;
|
||||
private List<object> m_List;
|
||||
private readonly object m_Object;
|
||||
private readonly int m_Page;
|
||||
private readonly Tournament m_Tournament;
|
||||
|
|
@ -279,9 +280,8 @@ namespace Server.Engines.ConPVP
|
|||
AddPage(0);
|
||||
AddBackground(0, 0, 300, 300, 9380);
|
||||
|
||||
var pList = m_List != null
|
||||
? Utility.CastListCovariant<object, TourneyParticipant>(m_List)
|
||||
: new List<TourneyParticipant>(tourney.Participants);
|
||||
var pList = m_List?.CastListCovariant<object, TourneyParticipant>()
|
||||
?? new List<TourneyParticipant>(tourney.Participants);
|
||||
|
||||
AddLeftArrow(25, 11, ToButtonID(0, 0));
|
||||
AddHtml(25, 35, 250, 20, Center($"{pList.Count} Participant{(pList.Count == 1 ? "" : "s")}"));
|
||||
|
|
@ -440,7 +440,7 @@ namespace Server.Engines.ConPVP
|
|||
}
|
||||
|
||||
var matchesList = m_List != null
|
||||
? Utility.CastListCovariant<object, TourneyMatch>(m_List)
|
||||
? m_List.CastListCovariant<object, TourneyMatch>()
|
||||
: new List<TourneyMatch>(level.Matches);
|
||||
|
||||
AddRightArrow(
|
||||
|
|
@ -522,31 +522,14 @@ namespace Server.Engines.ConPVP
|
|||
{
|
||||
if (m_Tournament.ParticipantsPerMatch == 4)
|
||||
{
|
||||
var name = "(null)";
|
||||
|
||||
switch (j)
|
||||
var name = j switch
|
||||
{
|
||||
case 0:
|
||||
{
|
||||
name = "Minax";
|
||||
break;
|
||||
}
|
||||
case 1:
|
||||
{
|
||||
name = "Council of Mages";
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
{
|
||||
name = "True Britannians";
|
||||
break;
|
||||
}
|
||||
case 3:
|
||||
{
|
||||
name = "Shadowlords";
|
||||
break;
|
||||
}
|
||||
}
|
||||
0 => "Minax",
|
||||
1 => "Council of Mages",
|
||||
2 => "True Britannians",
|
||||
3 => "Shadowlords",
|
||||
_ => "(null)"
|
||||
};
|
||||
|
||||
txt = $"{name} ({part.Players.Count})";
|
||||
}
|
||||
|
|
@ -658,31 +641,14 @@ namespace Server.Engines.ConPVP
|
|||
{
|
||||
if (m_Tournament.ParticipantsPerMatch == 4)
|
||||
{
|
||||
var name = "(null)";
|
||||
|
||||
switch (i)
|
||||
var name = i switch
|
||||
{
|
||||
case 0:
|
||||
{
|
||||
name = "Minax";
|
||||
break;
|
||||
}
|
||||
case 1:
|
||||
{
|
||||
name = "Council of Mages";
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
{
|
||||
name = "True Britannians";
|
||||
break;
|
||||
}
|
||||
case 3:
|
||||
{
|
||||
name = "Shadowlords";
|
||||
break;
|
||||
}
|
||||
}
|
||||
0 => "Minax",
|
||||
1 => "Council of Mages",
|
||||
2 => "True Britannians",
|
||||
3 => "Shadowlords",
|
||||
_ => "(null)"
|
||||
};
|
||||
|
||||
AddRightArrow(
|
||||
25,
|
||||
|
|
|
|||
|
|
@ -478,7 +478,7 @@ namespace Server.Engines.ConPVP
|
|||
hasAppended = true;
|
||||
}
|
||||
|
||||
sb.Append(".");
|
||||
sb.Append('.');
|
||||
|
||||
if (TourneyType == TourneyType.Standard)
|
||||
{
|
||||
|
|
@ -784,35 +784,14 @@ namespace Server.Engines.ConPVP
|
|||
{
|
||||
if (m_ParticipantsPerMatch == 4)
|
||||
{
|
||||
var name = "(null)";
|
||||
|
||||
switch (Pyramid.Levels[0]
|
||||
.Matches[0]
|
||||
.Participants.IndexOf(
|
||||
winner
|
||||
))
|
||||
var name = Pyramid.Levels[0].Matches[0].Participants.IndexOf(winner) switch
|
||||
{
|
||||
case 0:
|
||||
{
|
||||
name = "Minax";
|
||||
break;
|
||||
}
|
||||
case 1:
|
||||
{
|
||||
name = "Council of Mages";
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
{
|
||||
name = "True Britannians";
|
||||
break;
|
||||
}
|
||||
case 3:
|
||||
{
|
||||
name = "Shadowlords";
|
||||
break;
|
||||
}
|
||||
}
|
||||
0 => "Minax",
|
||||
1 => "Council of Mages",
|
||||
2 => "True Britannians",
|
||||
3 => "Shadowlords",
|
||||
_ => "(null)"
|
||||
};
|
||||
|
||||
Alert("The tournament has completed!", $"The {name} team has won!");
|
||||
}
|
||||
|
|
@ -940,33 +919,14 @@ namespace Server.Engines.ConPVP
|
|||
{
|
||||
if (m_ParticipantsPerMatch == 4)
|
||||
{
|
||||
var name = "(null)";
|
||||
|
||||
switch (Pyramid.Levels[0]
|
||||
.Matches[0]
|
||||
.Participants.IndexOf(winner))
|
||||
var name = Pyramid.Levels[0].Matches[0].Participants.IndexOf(winner) switch
|
||||
{
|
||||
case 0:
|
||||
{
|
||||
name = "Minax";
|
||||
break;
|
||||
}
|
||||
case 1:
|
||||
{
|
||||
name = "Council of Mages";
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
{
|
||||
name = "True Britannians";
|
||||
break;
|
||||
}
|
||||
case 3:
|
||||
{
|
||||
name = "Shadowlords";
|
||||
break;
|
||||
}
|
||||
}
|
||||
0 => "Minax",
|
||||
1 => "Council of Mages",
|
||||
2 => "True Britannians",
|
||||
3 => "Shadowlords",
|
||||
_ => "(null)"
|
||||
};
|
||||
|
||||
Alert("The tournament has completed!", $"The {name} team has won!");
|
||||
}
|
||||
|
|
|
|||
|
|
@ -456,7 +456,7 @@ namespace Server.Engines.Craft
|
|||
{
|
||||
if (types.Length != amounts.Length)
|
||||
{
|
||||
throw new ArgumentException();
|
||||
throw new ArgumentOutOfRangeException(nameof(types));
|
||||
}
|
||||
|
||||
var items = new Item[types.Length][];
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ namespace Server.Engines.Craft
|
|||
NoSkill
|
||||
}
|
||||
|
||||
public class Enhance
|
||||
public static class Enhance
|
||||
{
|
||||
public static EnhanceResult Invoke(
|
||||
Mobile from, CraftSystem craftSystem, BaseTool tool, Item item,
|
||||
|
|
|
|||
|
|
@ -43,8 +43,7 @@ namespace Server.Engines.Craft
|
|||
CommandSystem.Register("ForgetAllRecipes", AccessLevel.GameMaster, ForgetAllRecipes_OnCommand);
|
||||
}
|
||||
|
||||
[Usage("LearnAllRecipes")]
|
||||
[Description("Teaches a player all available recipes.")]
|
||||
[Usage("LearnAllRecipes"), Description("Teaches a player all available recipes.")]
|
||||
private static void LearnAllRecipes_OnCommand(CommandEventArgs e)
|
||||
{
|
||||
var m = e.Mobile;
|
||||
|
|
@ -73,8 +72,7 @@ namespace Server.Engines.Craft
|
|||
);
|
||||
}
|
||||
|
||||
[Usage("ForgetAllRecipes")]
|
||||
[Description("Makes a player forget all the recipes they've learned.")]
|
||||
[Usage("ForgetAllRecipes"), Description("Makes a player forget all the recipes they've learned.")]
|
||||
private static void ForgetAllRecipes_OnCommand(CommandEventArgs e)
|
||||
{
|
||||
var m = e.Mobile;
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ using Server.Targeting;
|
|||
|
||||
namespace Server.Engines.Craft
|
||||
{
|
||||
public class Repair
|
||||
public static class Repair
|
||||
{
|
||||
public static void Do(Mobile from, CraftSystem craftSystem, BaseTool tool)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1351,10 +1351,12 @@ namespace Server.Engines.Craft
|
|||
}
|
||||
}
|
||||
|
||||
[AttributeUsage(AttributeTargets.Class)]
|
||||
public class ForgeAttribute : Attribute
|
||||
{
|
||||
}
|
||||
|
||||
[AttributeUsage(AttributeTargets.Class)]
|
||||
public class AnvilAttribute : Attribute
|
||||
{
|
||||
}
|
||||
|
|
|
|||
|
|
@ -189,8 +189,7 @@ namespace Server.Engines.Doom
|
|||
CommandSystem.Register("GenLeverPuzzle", AccessLevel.Administrator, GenLampPuzzle_OnCommand);
|
||||
}
|
||||
|
||||
[Usage("GenLeverPuzzle")]
|
||||
[Description("Generates lamp room and lever puzzle in doom.")]
|
||||
[Usage("GenLeverPuzzle"), Description("Generates lamp room and lever puzzle in doom.")]
|
||||
public static void GenLampPuzzle_OnCommand(CommandEventArgs e)
|
||||
{
|
||||
if (Map.Malas.GetItemsInRange(lp_Center, 0).OfType<LeverPuzzleController>().Any())
|
||||
|
|
@ -372,7 +371,7 @@ namespace Server.Engines.Doom
|
|||
SendLocationEffect(lp_Center, 0x1153, 0, 60, 1);
|
||||
PlaySounds(lp_Center, cs1);
|
||||
|
||||
Effects.SendBoltEffect(player, true);
|
||||
Effects.SendBoltEffect(player);
|
||||
player.MoveToWorld(lr_Enter, Map.Malas);
|
||||
|
||||
m_Timer = new LampRoomTimer(this);
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ using System.Linq;
|
|||
|
||||
namespace Server.Factions
|
||||
{
|
||||
public class Generator
|
||||
public static class Generator
|
||||
{
|
||||
public static void Initialize()
|
||||
{
|
||||
|
|
@ -35,14 +35,14 @@ namespace Server.Factions
|
|||
|
||||
var def = town.Definition;
|
||||
|
||||
if (!CheckExistance(def.Monolith, facet, typeof(TownMonolith)))
|
||||
if (!CheckExistence(def.Monolith, facet, typeof(TownMonolith)))
|
||||
{
|
||||
var mono = new TownMonolith(town);
|
||||
mono.MoveToWorld(def.Monolith, facet);
|
||||
mono.Sigil = new Sigil(town);
|
||||
}
|
||||
|
||||
if (!CheckExistance(def.TownStone, facet, typeof(TownStone)))
|
||||
if (!CheckExistence(def.TownStone, facet, typeof(TownStone)))
|
||||
{
|
||||
new TownStone(town).MoveToWorld(def.TownStone, facet);
|
||||
}
|
||||
|
|
@ -56,12 +56,12 @@ namespace Server.Factions
|
|||
|
||||
var stronghold = faction.Definition.Stronghold;
|
||||
|
||||
if (!CheckExistance(stronghold.JoinStone, facet, typeof(JoinStone)))
|
||||
if (!CheckExistence(stronghold.JoinStone, facet, typeof(JoinStone)))
|
||||
{
|
||||
new JoinStone(faction).MoveToWorld(stronghold.JoinStone, facet);
|
||||
}
|
||||
|
||||
if (!CheckExistance(stronghold.FactionStone, facet, typeof(FactionStone)))
|
||||
if (!CheckExistence(stronghold.FactionStone, facet, typeof(FactionStone)))
|
||||
{
|
||||
new FactionStone(faction).MoveToWorld(stronghold.FactionStone, facet);
|
||||
}
|
||||
|
|
@ -70,14 +70,14 @@ namespace Server.Factions
|
|||
{
|
||||
var monolith = stronghold.Monoliths[i];
|
||||
|
||||
if (!CheckExistance(monolith, facet, typeof(StrongholdMonolith)))
|
||||
if (!CheckExistence(monolith, facet, typeof(StrongholdMonolith)))
|
||||
{
|
||||
new StrongholdMonolith(towns[i], faction).MoveToWorld(monolith, facet);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static bool CheckExistance(Point3D loc, Map facet, Type type) =>
|
||||
private static bool CheckExistence(Point3D loc, Map facet, Type type) =>
|
||||
facet.GetItemsInRange(loc, 0).Any(type.IsInstanceOfType);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ namespace Server.Factions
|
|||
public TextDefinition Assigned { get; }
|
||||
}
|
||||
|
||||
public class MerchantTitles
|
||||
public static class MerchantTitles
|
||||
{
|
||||
public static MerchantTitleInfo[] Info { get; } =
|
||||
{
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ using Server.Utilities;
|
|||
|
||||
namespace Server.Factions
|
||||
{
|
||||
public class Reflector
|
||||
public static class Reflector
|
||||
{
|
||||
private static List<Town> m_Towns;
|
||||
|
||||
|
|
|
|||
|
|
@ -286,7 +286,7 @@ namespace Server.Factions
|
|||
|
||||
public void ConstructGuardLists()
|
||||
{
|
||||
var defs = Owner?.Definition.Guards ?? new GuardDefinition[0];
|
||||
var defs = Owner?.Definition.Guards ?? Array.Empty<GuardDefinition>();
|
||||
|
||||
GuardLists = new List<GuardList>();
|
||||
|
||||
|
|
|
|||
|
|
@ -80,7 +80,7 @@ namespace Server.Factions
|
|||
|
||||
var silverToAward = from.Alive ? 20 : 40;
|
||||
|
||||
if (silverToAward > 0 && Placer != null && Faction != null)
|
||||
if (Placer != null && Faction != null)
|
||||
{
|
||||
var victimState = PlayerState.Find(from);
|
||||
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ namespace Server.Factions
|
|||
|
||||
public override void DoVisibleEffect()
|
||||
{
|
||||
Effects.SendLocationEffect(GetWorldLocation(), Map, 0x36BD, 15, 10);
|
||||
Effects.SendLocationEffect(GetWorldLocation(), Map, 0x36BD, 15);
|
||||
}
|
||||
|
||||
public override void DoAttackEffect(Mobile m)
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ namespace Server.Factions
|
|||
|
||||
public override void DoVisibleEffect()
|
||||
{
|
||||
Effects.SendLocationEffect(Location, Map, 0x11AD, 25, 10);
|
||||
Effects.SendLocationEffect(Location, Map, 0x11AD, 25);
|
||||
}
|
||||
|
||||
public override void DoAttackEffect(Mobile m)
|
||||
|
|
|
|||
|
|
@ -114,7 +114,7 @@ namespace Server.Engines.Help
|
|||
}
|
||||
}
|
||||
|
||||
public class PageQueue
|
||||
public static class PageQueue
|
||||
{
|
||||
private static readonly Dictionary<Mobile, PageEntry> m_KeyedByHandler = new Dictionary<Mobile, PageEntry>();
|
||||
private static readonly Dictionary<Mobile, PageEntry> m_KeyedBySender = new Dictionary<Mobile, PageEntry>();
|
||||
|
|
@ -172,8 +172,7 @@ namespace Server.Engines.Help
|
|||
}
|
||||
}
|
||||
|
||||
[Usage("Pages")]
|
||||
[Description("Opens the page queue menu.")]
|
||||
[Usage("Pages"), Description("Opens the page queue menu.")]
|
||||
private static void Pages_OnCommand(CommandEventArgs e)
|
||||
{
|
||||
if (m_KeyedByHandler.TryGetValue(e.Mobile, out var entry))
|
||||
|
|
|
|||
|
|
@ -188,7 +188,7 @@ namespace Server.Engines.Help
|
|||
|
||||
while ((line = ip.ReadLine()?.Trim()) != null)
|
||||
{
|
||||
if (line.Length == 0 || line.StartsWith("#"))
|
||||
if (line.Length == 0 || line.StartsWith("#", StringComparison.Ordinal))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -34,8 +34,7 @@ namespace Server.Engines.Help
|
|||
CommandSystem.Register("SpeechLog", AccessLevel.Counselor, SpeechLog_OnCommand);
|
||||
}
|
||||
|
||||
[Usage("SpeechLog")]
|
||||
[Description("Opens the speech log of a given target.")]
|
||||
[Usage("SpeechLog"), Description("Opens the speech log of a given target.")]
|
||||
private static void SpeechLog_OnCommand(CommandEventArgs e)
|
||||
{
|
||||
var from = e.Mobile;
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ using Server.Items;
|
|||
|
||||
namespace Server.Commands
|
||||
{
|
||||
public class GenKhaldun
|
||||
public static class GenKhaldun
|
||||
{
|
||||
private static int m_Count;
|
||||
|
||||
|
|
|
|||
|
|
@ -42,7 +42,9 @@ namespace Server.Engines.MLQuests
|
|||
|
||||
while ((line = sr.ReadLine()) != null)
|
||||
{
|
||||
if (line.Length == 0 || line.StartsWith("#"))
|
||||
line = line.Trim();
|
||||
|
||||
if (line.Length == 0 || line.StartsWith("#", StringComparison.Ordinal))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
|
@ -176,8 +178,8 @@ namespace Server.Engines.MLQuests
|
|||
EventSink.QuestGumpRequest += EventSink_QuestGumpRequest;
|
||||
}
|
||||
|
||||
[Usage("MLQuestsInfo")]
|
||||
[Description("Displays general information about the ML quest system, or a quest by type name.")]
|
||||
[Usage("MLQuestsInfo"),
|
||||
Description("Displays general information about the ML quest system, or a quest by type name.")]
|
||||
public static void MLQuestsInfo_OnCommand(CommandEventArgs e)
|
||||
{
|
||||
var m = e.Mobile;
|
||||
|
|
@ -202,8 +204,8 @@ namespace Server.Engines.MLQuests
|
|||
m.SendMessage("Number of active instances: {0}", quest.Instances.Count);
|
||||
}
|
||||
|
||||
[Usage("SaveQuest <type> [saveEnabled=true]")]
|
||||
[Description("Allows serialization for a specific quest to be turned on or off.")]
|
||||
[Usage("SaveQuest <type> [saveEnabled=true]"),
|
||||
Description("Allows serialization for a specific quest to be turned on or off.")]
|
||||
public static void SaveQuest_OnCommand(CommandEventArgs e)
|
||||
{
|
||||
var m = e.Mobile;
|
||||
|
|
@ -235,8 +237,8 @@ namespace Server.Engines.MLQuests
|
|||
}
|
||||
}
|
||||
|
||||
[Usage("SaveAllQuests [saveEnabled=true]")]
|
||||
[Description("Allows serialization for all quests to be turned on or off.")]
|
||||
[Usage("SaveAllQuests [saveEnabled=true]"),
|
||||
Description("Allows serialization for all quests to be turned on or off.")]
|
||||
public static void SaveAllQuests_OnCommand(CommandEventArgs e)
|
||||
{
|
||||
var m = e.Mobile;
|
||||
|
|
@ -264,8 +266,8 @@ namespace Server.Engines.MLQuests
|
|||
}
|
||||
}
|
||||
|
||||
[Usage("InvalidQuestItems")]
|
||||
[Description("Provides an overview of all quest items not located in the top-level of a player's backpack.")]
|
||||
[Usage("InvalidQuestItems"),
|
||||
Description("Provides an overview of all quest items not located in the top-level of a player's backpack.")]
|
||||
public static void InvalidQuestItems_OnCommand(CommandEventArgs e)
|
||||
{
|
||||
var m = e.Mobile;
|
||||
|
|
|
|||
|
|
@ -295,8 +295,7 @@ namespace Server.PathAlgorithms.FastAStar
|
|||
int y;
|
||||
switch (i)
|
||||
{
|
||||
default:
|
||||
case 0:
|
||||
default: // 0
|
||||
x = 0;
|
||||
y = -1;
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -99,13 +99,13 @@ namespace Server.PathAlgorithms.SlowAStar
|
|||
var yBacktrack = curNode.py;
|
||||
var zBacktrack = curNode.pz;
|
||||
|
||||
path[pathCount++] = (Direction)curNode.dir;
|
||||
|
||||
if (pathCount == MaxNodes)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
path[pathCount++] = (Direction)curNode.dir;
|
||||
|
||||
while (xBacktrack != startNode.x || yBacktrack != startNode.y || zBacktrack != startNode.z)
|
||||
{
|
||||
var found = false;
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
using System;
|
||||
using Server.Items;
|
||||
using Server.Mobiles;
|
||||
using Server.Network;
|
||||
|
||||
namespace Server.Engines.Quests.Necro
|
||||
{
|
||||
|
|
@ -32,21 +31,46 @@ namespace Server.Engines.Quests.Necro
|
|||
return;
|
||||
}
|
||||
|
||||
if (from is PlayerMobile pm)
|
||||
if (!(from is PlayerMobile pm))
|
||||
{
|
||||
var qs = pm.Quest;
|
||||
return;
|
||||
}
|
||||
|
||||
if (qs is DarkTidesQuest)
|
||||
var qs = pm.Quest;
|
||||
|
||||
if (qs is DarkTidesQuest)
|
||||
{
|
||||
if (qs.IsObjectiveInProgress(typeof(FindMardothAboutKronusObjective)))
|
||||
{
|
||||
if (qs.IsObjectiveInProgress(typeof(FindMardothAboutKronusObjective)))
|
||||
pm.SendLocalizedMessage(
|
||||
1060151,
|
||||
"",
|
||||
0x41
|
||||
); // You read the scroll, but decide against performing the calling until you are instructed to do so by Mardoth.
|
||||
}
|
||||
else if (qs.IsObjectiveInProgress(typeof(FindWellOfTearsObjective)))
|
||||
{
|
||||
pm.SendLocalizedMessage(
|
||||
1060152,
|
||||
"",
|
||||
0x41
|
||||
); // You must be at the Well of Tears in the city of Necromancers to use this scroll.
|
||||
}
|
||||
else if (qs.IsObjectiveInProgress(typeof(UseCallingScrollObjective)))
|
||||
{
|
||||
if (pm.Map == m_WellOfTearsMap && m_WellOfTearsArea.Contains(pm))
|
||||
{
|
||||
pm.SendLocalizedMessage(
|
||||
1060151,
|
||||
"",
|
||||
0x41
|
||||
); // You read the scroll, but decide against performing the calling until you are instructed to do so by Mardoth.
|
||||
QuestObjective obj = qs.FindObjective<UseCallingScrollObjective>();
|
||||
|
||||
if (obj?.Completed == false)
|
||||
{
|
||||
obj.Complete();
|
||||
}
|
||||
|
||||
Delete();
|
||||
new CallingTimer(pm).Start();
|
||||
}
|
||||
else if (qs.IsObjectiveInProgress(typeof(FindWellOfTearsObjective)))
|
||||
else
|
||||
{
|
||||
pm.SendLocalizedMessage(
|
||||
1060152,
|
||||
|
|
@ -54,37 +78,14 @@ namespace Server.Engines.Quests.Necro
|
|||
0x41
|
||||
); // You must be at the Well of Tears in the city of Necromancers to use this scroll.
|
||||
}
|
||||
else if (qs.IsObjectiveInProgress(typeof(UseCallingScrollObjective)))
|
||||
{
|
||||
if (pm.Map == m_WellOfTearsMap && m_WellOfTearsArea.Contains(pm))
|
||||
{
|
||||
QuestObjective obj = qs.FindObjective<UseCallingScrollObjective>();
|
||||
|
||||
if (obj?.Completed == false)
|
||||
{
|
||||
obj.Complete();
|
||||
}
|
||||
|
||||
Delete();
|
||||
new CallingTimer(pm).Start();
|
||||
}
|
||||
else
|
||||
{
|
||||
pm.SendLocalizedMessage(
|
||||
1060152,
|
||||
"",
|
||||
0x41
|
||||
); // You must be at the Well of Tears in the city of Necromancers to use this scroll.
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
pm.SendLocalizedMessage(
|
||||
1060150,
|
||||
"",
|
||||
0x41
|
||||
); // A strange terror grips your heart as you attempt to read the scroll. You decide it would be a bad idea to read it out loud.
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
pm.SendLocalizedMessage(
|
||||
1060150,
|
||||
"",
|
||||
0x41
|
||||
); // A strange terror grips your heart as you attempt to read the scroll. You decide it would be a bad idea to read it out loud.
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -78,9 +78,9 @@ namespace Server.Engines.Quests.Necro
|
|||
Maabus.Delete();
|
||||
Maabus = null;
|
||||
|
||||
foreach (MaabusCoffinComponent c in Components)
|
||||
foreach (var c in Components)
|
||||
{
|
||||
c.TurnToFull();
|
||||
(c as MaabusCoffinComponent)?.TurnToFull();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@ namespace Server.Engines.Quests.Hag
|
|||
Corpse = new HagApprenticeCorpse();
|
||||
Corpse.MoveToWorld(m_CorpseLocation, map);
|
||||
|
||||
Effects.SendLocationEffect(m_CorpseLocation, map, 0x3728, 10, 10);
|
||||
Effects.SendLocationEffect(m_CorpseLocation, map, 0x3728, 10);
|
||||
Effects.PlaySound(m_CorpseLocation, map, 0x1FE);
|
||||
|
||||
Mobile imp = new Zeefzorpul();
|
||||
|
|
@ -65,7 +65,7 @@ namespace Server.Engines.Quests.Hag
|
|||
{
|
||||
if (m?.Deleted == false)
|
||||
{
|
||||
Effects.SendLocationEffect(m.Location, m.Map, 0x3728, 10, 10);
|
||||
Effects.SendLocationEffect(m.Location, m.Map, 0x3728, 10);
|
||||
Effects.PlaySound(m.Location, m.Map, 0x1FE);
|
||||
|
||||
m.Delete();
|
||||
|
|
@ -213,7 +213,7 @@ namespace Server.Engines.Quests.Hag
|
|||
Mobile from = System.From;
|
||||
var map = from.Map;
|
||||
|
||||
Effects.SendLocationEffect(ImpLocation, map, 0x3728, 10, 10);
|
||||
Effects.SendLocationEffect(ImpLocation, map, 0x3728, 10);
|
||||
Effects.PlaySound(ImpLocation, map, 0x1FE);
|
||||
|
||||
Mobile imp = new Zeefzorpul();
|
||||
|
|
@ -228,7 +228,7 @@ namespace Server.Engines.Quests.Hag
|
|||
{
|
||||
if (imp is Mobile m && !m.Deleted)
|
||||
{
|
||||
Effects.SendLocationEffect(m.Location, m.Map, 0x3728, 10, 10);
|
||||
Effects.SendLocationEffect(m.Location, m.Map, 0x3728, 10);
|
||||
Effects.PlaySound(m.Location, m.Map, 0x1FE);
|
||||
|
||||
m.Delete();
|
||||
|
|
|
|||
|
|
@ -228,12 +228,8 @@ namespace Server.Items
|
|||
return true;
|
||||
}
|
||||
|
||||
if (i is ITokunoDyable)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
return IsInTypeList(t, TreasuresOfTokuno.LesserArtifactsTotal)
|
||||
return IsInTypeList(t, TreasuresOfTokuno.TokunoDyable)
|
||||
|| IsInTypeList(t, TreasuresOfTokuno.LesserArtifactsTotal)
|
||||
|| IsInTypeList(t, TreasuresOfTokuno.GreaterArtifacts)
|
||||
|| IsInTypeList(t, DemonKnight.ArtifactRarity10)
|
||||
|| IsInTypeList(t, DemonKnight.ArtifactRarity11)
|
||||
|
|
@ -251,7 +247,7 @@ namespace Server.Items
|
|||
{
|
||||
for (var i = 0; i < list.Length; i++)
|
||||
{
|
||||
if (list[i] == t)
|
||||
if (list[i].IsAssignableFrom(t))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -783,8 +783,7 @@ namespace Server.Items
|
|||
}
|
||||
}
|
||||
|
||||
[Furniture]
|
||||
[Flippable(0x2811, 0x2812)]
|
||||
[Furniture, Flippable(0x2811, 0x2812)]
|
||||
public class ChestOfHeirlooms : LockableContainer
|
||||
{
|
||||
[Constructible]
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ namespace Server.Misc
|
|||
ToTThree
|
||||
}
|
||||
|
||||
public class TreasuresOfTokuno
|
||||
public static class TreasuresOfTokuno
|
||||
{
|
||||
public const int ItemsPerReward = 10;
|
||||
|
||||
|
|
@ -80,6 +80,12 @@ namespace Server.Misc
|
|||
typeof(ChestOfHeirlooms)
|
||||
};
|
||||
|
||||
public static Type[] TokunoDyable { get; } =
|
||||
{
|
||||
typeof(DupresShield), typeof(CrimsonCincture), typeof(OssianGrimoire), typeof(QuiverOfInfinity),
|
||||
typeof(BaseFormTalisman), typeof(BaseWand), typeof(JesterHatofChuckles)
|
||||
};
|
||||
|
||||
public static TreasuresOfTokunoEra DropEra { get; set; } = TreasuresOfTokunoEra.None;
|
||||
|
||||
public static TreasuresOfTokunoEra RewardEra { get; set; } = TreasuresOfTokunoEra.ToTOne;
|
||||
|
|
@ -338,7 +344,7 @@ namespace Server.Gumps
|
|||
|
||||
public ToTTurnInGump(Mobile collector, List<ItemTileButtonInfo> buttons) : base(
|
||||
1071012,
|
||||
Utility.CastListContravariant<ItemTileButtonInfo, ImageTileButtonInfo>(buttons)
|
||||
buttons.ToList<ImageTileButtonInfo>()
|
||||
) // Click a minor artifact to give it to Ihara Soko.
|
||||
=>
|
||||
m_Collector = collector;
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ using Server.Mobiles;
|
|||
|
||||
namespace Server.Engines.VeteranRewards
|
||||
{
|
||||
public class RewardSystem
|
||||
public static class RewardSystem
|
||||
{
|
||||
private static RewardCategory[] m_Categories;
|
||||
private static RewardList[] m_Lists;
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ using Server.Mobiles;
|
|||
|
||||
namespace Server
|
||||
{
|
||||
public class CompassionVirtue
|
||||
public static class CompassionVirtue
|
||||
{
|
||||
private const int LossAmount = 500;
|
||||
private static readonly TimeSpan LossDelay = TimeSpan.FromDays(7.0);
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ using Server.Targeting;
|
|||
|
||||
namespace Server
|
||||
{
|
||||
public class HonorVirtue
|
||||
public static class HonorVirtue
|
||||
{
|
||||
private static readonly TimeSpan UseDelay = TimeSpan.FromMinutes(5.0);
|
||||
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ using Server.Targeting;
|
|||
|
||||
namespace Server
|
||||
{
|
||||
#pragma warning disable CA1052
|
||||
public class JusticeVirtue
|
||||
{
|
||||
private const int LossAmount = 950;
|
||||
|
|
@ -285,4 +286,5 @@ namespace Server
|
|||
}
|
||||
}
|
||||
}
|
||||
#pragma warning restore CA1052
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ using Server.Targeting;
|
|||
|
||||
namespace Server
|
||||
{
|
||||
public class SacrificeVirtue
|
||||
public static class SacrificeVirtue
|
||||
{
|
||||
private const int LossAmount = 500;
|
||||
private static readonly TimeSpan GainDelay = TimeSpan.FromDays(1.0);
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ using Server.Targeting;
|
|||
|
||||
namespace Server
|
||||
{
|
||||
public class ValorVirtue
|
||||
public static class ValorVirtue
|
||||
{
|
||||
private const int LossAmount = 250;
|
||||
private static readonly TimeSpan LossDelay = TimeSpan.FromDays(7.0);
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ namespace Server
|
|||
Honesty
|
||||
}
|
||||
|
||||
public class VirtueHelper
|
||||
public static class VirtueHelper
|
||||
{
|
||||
public static bool HasAny(Mobile from, VirtueName virtue) => from.Virtues.GetValue((int)virtue) > 0;
|
||||
|
||||
|
|
|
|||
|
|
@ -102,8 +102,7 @@ namespace Server.Gumps
|
|||
CommandSystem.Register("AddDoor", AccessLevel.GameMaster, AddDoor_OnCommand);
|
||||
}
|
||||
|
||||
[Usage("AddDoor")]
|
||||
[Description("Displays a menu from which you can interactively add doors.")]
|
||||
[Usage("AddDoor"), Description("Displays a menu from which you can interactively add doors.")]
|
||||
public static void AddDoor_OnCommand(CommandEventArgs e)
|
||||
{
|
||||
e.Mobile.SendGump(new AddDoorGump());
|
||||
|
|
|
|||
|
|
@ -196,8 +196,8 @@ namespace Server.Gumps
|
|||
AddLabel(20, 350, LabelHue, "Operating System: ");
|
||||
var os = Environment.OSVersion.ToString();
|
||||
|
||||
os = os.Replace("Microsoft", "MSFT");
|
||||
os = os.Replace("Service Pack", "SP");
|
||||
os = os.Replace("Microsoft", "MSFT", StringComparison.Ordinal);
|
||||
os = os.Replace("Service Pack", "SP", StringComparison.Ordinal);
|
||||
|
||||
AddLabel(150, 350, LabelHue, os);
|
||||
|
||||
|
|
@ -243,7 +243,7 @@ namespace Server.Gumps
|
|||
sb.Append(curIOCP);
|
||||
sb.Append("<br>Usage: ");
|
||||
sb.Append((maxIOCP - curIOCP) * 100 / maxIOCP);
|
||||
sb.Append("%");
|
||||
sb.Append('%');
|
||||
|
||||
AddLabel(20, 200, LabelHue, "Pooling:");
|
||||
AddHtml(20, 220, 380, 150, sb.ToString(), true, true);
|
||||
|
|
@ -446,7 +446,7 @@ namespace Server.Gumps
|
|||
{
|
||||
if (m_List == null)
|
||||
{
|
||||
var states = TcpServer.Instances;
|
||||
var states = TcpServer.Instances.ToList();
|
||||
states.Sort(NetStateComparer.Instance);
|
||||
|
||||
m_List = states.ToList<object>();
|
||||
|
|
@ -612,14 +612,11 @@ namespace Server.Gumps
|
|||
if (m_List == null)
|
||||
{
|
||||
sharedAccounts = GetAllSharedAccounts();
|
||||
m_List = Utility.CastListContravariant<KeyValuePair<IPAddress, List<Account>>, object>(
|
||||
sharedAccounts
|
||||
);
|
||||
m_List = sharedAccounts.CastListContravariant<KeyValuePair<IPAddress, List<Account>>, object>();
|
||||
}
|
||||
else
|
||||
{
|
||||
sharedAccounts =
|
||||
Utility.CastListCovariant<object, KeyValuePair<IPAddress, List<Account>>>(m_List);
|
||||
sharedAccounts = m_List.CastListCovariant<object, KeyValuePair<IPAddress, List<Account>>>();
|
||||
}
|
||||
|
||||
AddLabelCropped(12, 120, 60, 20, LabelHue, "Count");
|
||||
|
|
@ -1007,11 +1004,11 @@ namespace Server.Gumps
|
|||
if (m_List == null)
|
||||
{
|
||||
ipAddresses = a.LoginIPs.ToList();
|
||||
m_List = Utility.CastListContravariant<IPAddress, object>(ipAddresses);
|
||||
m_List = ipAddresses.CastListContravariant<IPAddress, object>();
|
||||
}
|
||||
else
|
||||
{
|
||||
ipAddresses = Utility.CastListCovariant<object, IPAddress>(m_List);
|
||||
ipAddresses = m_List.CastListCovariant<object, IPAddress>();
|
||||
}
|
||||
|
||||
AddHtml(10, 195, 400, 20, Color(Center("Client Addresses"), LabelColor32));
|
||||
|
|
@ -1079,11 +1076,11 @@ namespace Server.Gumps
|
|||
if (m_List == null)
|
||||
{
|
||||
ipRestrictions = a.IPRestrictions.ToList();
|
||||
m_List = Utility.CastListContravariant<string, object>(ipRestrictions);
|
||||
m_List = ipRestrictions.CastListContravariant<string, object>();
|
||||
}
|
||||
else
|
||||
{
|
||||
ipRestrictions = Utility.CastListCovariant<object, string>(m_List);
|
||||
ipRestrictions = m_List.CastListCovariant<object, string>();
|
||||
}
|
||||
|
||||
AddHtml(10, 195, 400, 20, Color(Center("Address Restrictions"), LabelColor32));
|
||||
|
|
@ -1268,11 +1265,11 @@ namespace Server.Gumps
|
|||
if (m_List == null)
|
||||
{
|
||||
firewallEntries = Firewall.List;
|
||||
m_List = Utility.CastListContravariant<Firewall.IFirewallEntry, object>(firewallEntries);
|
||||
m_List = firewallEntries.CastListContravariant<Firewall.IFirewallEntry, object>();
|
||||
}
|
||||
else
|
||||
{
|
||||
firewallEntries = Utility.CastListCovariant<object, Firewall.IFirewallEntry>(m_List);
|
||||
firewallEntries = m_List.CastListCovariant<object, Firewall.IFirewallEntry>();
|
||||
}
|
||||
|
||||
AddLabelCropped(12, 120, 358, 20, LabelHue, "IP Address");
|
||||
|
|
@ -1354,11 +1351,11 @@ namespace Server.Gumps
|
|||
}
|
||||
|
||||
blockedAccts.Sort(AccountComparer.Instance);
|
||||
m_List = Utility.CastListContravariant<Account, object>(blockedAccts);
|
||||
m_List = blockedAccts.CastListContravariant<Account, object>();
|
||||
}
|
||||
else
|
||||
{
|
||||
blockedAccts = Utility.CastListCovariant<object, Account>(m_List);
|
||||
blockedAccts = m_List.CastListCovariant<object, Account>();
|
||||
}
|
||||
|
||||
if (listPage > 0)
|
||||
|
|
@ -1485,10 +1482,9 @@ namespace Server.Gumps
|
|||
CommandSystem.Register("Admin", AccessLevel.Administrator, Admin_OnCommand);
|
||||
}
|
||||
|
||||
[Usage("Admin")]
|
||||
[Description(
|
||||
"Opens an interface providing server information and administration features including client, account, and firewall management."
|
||||
)]
|
||||
[Usage("Admin"), Description(
|
||||
"Opens an interface providing server information and administration features including client, account, and firewall management."
|
||||
)]
|
||||
public static void Admin_OnCommand(CommandEventArgs e)
|
||||
{
|
||||
e.Mobile.SendGump(new AdminGump(e.Mobile, AdminGumpPage.Clients));
|
||||
|
|
@ -1972,7 +1968,7 @@ namespace Server.Gumps
|
|||
|
||||
if (m_PageType == AdminGumpPage.Accounts)
|
||||
{
|
||||
var list = Utility.CastListCovariant<object, Account>(m_List);
|
||||
var list = m_List.CastListCovariant<object, Account>();
|
||||
|
||||
if (list != null && m_State is List<Account> rads)
|
||||
{
|
||||
|
|
@ -2350,12 +2346,10 @@ namespace Server.Gumps
|
|||
|
||||
if (level > AccessLevel.Player)
|
||||
{
|
||||
var clients = TcpServer.Instances;
|
||||
var count = 0;
|
||||
|
||||
for (var i = 0; i < clients.Count; ++i)
|
||||
foreach (var ns in TcpServer.Instances)
|
||||
{
|
||||
var ns = clients[i];
|
||||
var a = ns.Account;
|
||||
|
||||
if (a == null)
|
||||
|
|
@ -2450,12 +2444,8 @@ namespace Server.Gumps
|
|||
}
|
||||
else
|
||||
{
|
||||
var instances = TcpServer.Instances;
|
||||
|
||||
for (var i = 0; i < instances.Count; ++i)
|
||||
foreach (var ns in TcpServer.Instances)
|
||||
{
|
||||
var ns = instances[i];
|
||||
|
||||
bool isMatch;
|
||||
|
||||
if (forName)
|
||||
|
|
@ -2463,12 +2453,12 @@ namespace Server.Gumps
|
|||
var m = ns.Mobile;
|
||||
var a = ns.Account;
|
||||
|
||||
isMatch = m?.Name.ToLower().IndexOf(match, StringComparison.Ordinal) >= 0
|
||||
|| a?.Username.ToLower().IndexOf(match, StringComparison.Ordinal) >= 0;
|
||||
isMatch = m?.Name.ToLower().Contains(match, StringComparison.Ordinal) == true
|
||||
|| a?.Username.ToLower().Contains(match, StringComparison.Ordinal) == true;
|
||||
}
|
||||
else
|
||||
{
|
||||
isMatch = ns.ToString().IndexOf(match, StringComparison.Ordinal) >= 0;
|
||||
isMatch = ns.ToString().Contains(match, StringComparison.Ordinal);
|
||||
}
|
||||
|
||||
if (isMatch)
|
||||
|
|
@ -2518,7 +2508,7 @@ namespace Server.Gumps
|
|||
from,
|
||||
AdminGumpPage.Clients,
|
||||
0,
|
||||
Utility.CastListContravariant<NetState, object>(results),
|
||||
results.CastListContravariant<NetState, object>(),
|
||||
"One match found."
|
||||
)
|
||||
);
|
||||
|
|
@ -2531,7 +2521,7 @@ namespace Server.Gumps
|
|||
from,
|
||||
AdminGumpPage.Clients,
|
||||
0,
|
||||
Utility.CastListContravariant<NetState, object>(results),
|
||||
results.CastListContravariant<NetState, object>(),
|
||||
notice ?? (results.Count == 0 ? "Nothing matched your search terms." : null)
|
||||
)
|
||||
);
|
||||
|
|
@ -2726,7 +2716,7 @@ namespace Server.Gumps
|
|||
{
|
||||
results = Accounts.GetAccounts()
|
||||
.Where(acct =>
|
||||
acct.Username.ToLower().IndexOf(match, StringComparison.Ordinal) >= 0)
|
||||
acct.Username.ToLower().Contains(match, StringComparison.Ordinal))
|
||||
.ToList();
|
||||
results.Sort(AccountComparer.Instance);
|
||||
}
|
||||
|
|
@ -2751,7 +2741,7 @@ namespace Server.Gumps
|
|||
from,
|
||||
AdminGumpPage.Accounts,
|
||||
0,
|
||||
Utility.CastListContravariant<IAccount, object>(results),
|
||||
results.CastListContravariant<IAccount, object>(),
|
||||
results.Count == 0 ? "Nothing matched your search terms." : null,
|
||||
new List<object>()
|
||||
)
|
||||
|
|
@ -2879,7 +2869,7 @@ namespace Server.Gumps
|
|||
from,
|
||||
AdminGumpPage.Accounts,
|
||||
0,
|
||||
Utility.CastListContravariant<Account, object>(list),
|
||||
list.CastListContravariant<Account, object>(),
|
||||
null,
|
||||
new List<object>()
|
||||
)
|
||||
|
|
@ -3502,7 +3492,7 @@ namespace Server.Gumps
|
|||
from,
|
||||
AdminGumpPage.Accounts,
|
||||
0,
|
||||
Utility.CastListContravariant<Account, object>(kvp.Value),
|
||||
kvp.Value.CastListContravariant<Account, object>(),
|
||||
null,
|
||||
new List<object>()
|
||||
)
|
||||
|
|
@ -3539,7 +3529,7 @@ namespace Server.Gumps
|
|||
{
|
||||
var check = Firewall.List[i].ToString();
|
||||
|
||||
if (check?.IndexOf(match) >= 0)
|
||||
if (check?.Contains(match, StringComparison.Ordinal) == true)
|
||||
{
|
||||
results.Add(Firewall.List[i]);
|
||||
}
|
||||
|
|
@ -3691,7 +3681,7 @@ namespace Server.Gumps
|
|||
{
|
||||
index -= 4;
|
||||
|
||||
if (m_List != null && index >= 0 && index < m_List.Count)
|
||||
if (m_List != null && index < m_List.Count)
|
||||
{
|
||||
from.SendGump(
|
||||
new AdminGump(from, AdminGumpPage.FirewallInfo, 0, null, null, m_List[index])
|
||||
|
|
@ -3899,7 +3889,7 @@ namespace Server.Gumps
|
|||
}
|
||||
case 8:
|
||||
{
|
||||
if (m_List != null && index >= 0 && index < m_List.Count)
|
||||
if (m_List != null && index < m_List.Count)
|
||||
{
|
||||
if (!(m_State is Account a))
|
||||
{
|
||||
|
|
@ -3943,7 +3933,7 @@ namespace Server.Gumps
|
|||
}
|
||||
case 9:
|
||||
{
|
||||
if (m_List != null && index >= 0 && index < m_List.Count)
|
||||
if (m_List != null && index < m_List.Count)
|
||||
{
|
||||
if (m_PageType == AdminGumpPage.AccountDetails_Access_ClientIPs)
|
||||
{
|
||||
|
|
@ -3968,7 +3958,7 @@ namespace Server.Gumps
|
|||
from,
|
||||
AdminGumpPage.Accounts,
|
||||
0,
|
||||
Utility.CastListContravariant<Account, object>(list),
|
||||
list.CastListContravariant<Account, object>(),
|
||||
null,
|
||||
new List<object>()
|
||||
)
|
||||
|
|
@ -3994,7 +3984,7 @@ namespace Server.Gumps
|
|||
}
|
||||
case 10:
|
||||
{
|
||||
if (m_List != null && index >= 0 && index < m_List.Count)
|
||||
if (m_List != null && index < m_List.Count)
|
||||
{
|
||||
if (m_PageType == AdminGumpPage.AccountDetails_Access_ClientIPs)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -62,8 +62,7 @@ namespace Server.Gumps
|
|||
CommandSystem.Register("Comments", AccessLevel.Counselor, Comments_OnCommand);
|
||||
}
|
||||
|
||||
[Usage("Comments")]
|
||||
[Description("View/Modify/Add account comments.")]
|
||||
[Usage("Comments"), Description("View/Modify/Add account comments.")]
|
||||
private static void Comments_OnCommand(CommandEventArgs args)
|
||||
{
|
||||
args.Mobile.SendMessage("Select the player to view account comments.");
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ namespace Server.Gumps
|
|||
|
||||
if (text.Length >= 3)
|
||||
{
|
||||
var guilds = Utility.CastListCovariant<BaseGuild, Guild>(BaseGuild.Search(text));
|
||||
var guilds = BaseGuild.Search(text).CastListCovariant<BaseGuild, Guild>();
|
||||
|
||||
GuildGump.EnsureClosed(m_Mobile);
|
||||
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ namespace Server.Guilds
|
|||
"",
|
||||
0,
|
||||
GuildDisplayType.All,
|
||||
Utility.CastListCovariant<BaseGuild, Guild>(new List<BaseGuild>(World.Guilds.Values)),
|
||||
World.Guilds.Values.CastListCovariant<BaseGuild, Guild>(),
|
||||
1063136 + (int)GuildDisplayType.All
|
||||
)
|
||||
{
|
||||
|
|
@ -44,7 +44,7 @@ namespace Server.Guilds
|
|||
filter,
|
||||
startNumber,
|
||||
display,
|
||||
Utility.CastListCovariant<BaseGuild, Guild>(new List<BaseGuild>(World.Guilds.Values)),
|
||||
World.Guilds.Values.CastListCovariant<BaseGuild, Guild>(),
|
||||
1063136 + (int)display
|
||||
)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ namespace Server.Guilds
|
|||
: base(
|
||||
pm,
|
||||
g,
|
||||
Utility.SafeConvertList<Mobile, PlayerMobile>(g.Members),
|
||||
g.Members.SafeConvertList<Mobile, PlayerMobile>(),
|
||||
currentComparer,
|
||||
ascending,
|
||||
filter,
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
namespace Server.Gumps
|
||||
{
|
||||
public class PropsConfig
|
||||
public static class PropsConfig
|
||||
{
|
||||
public static readonly bool OldStyle = false;
|
||||
|
||||
|
|
@ -13,7 +13,7 @@ namespace Server.Gumps
|
|||
public static readonly int OffsetGumpID = 0x0A40; // Pure black
|
||||
|
||||
public static readonly int
|
||||
HeaderGumpID = OldStyle ? 0x0BBC : 0x0E14; // Light offwhite, textured : Dark navy blue, textured
|
||||
HeaderGumpID = OldStyle ? 0x0BBC : 0x0E14; // Light off-white, textured : Dark navy blue, textured
|
||||
|
||||
public static readonly int EntryGumpID = 0x0BBC; // Light offwhite, textured
|
||||
public static readonly int BackGumpID = 0x13BE; // Gray slate/stoney
|
||||
|
|
|
|||
|
|
@ -757,7 +757,7 @@ namespace Server.Gumps
|
|||
if (t == typeof(byte) || t == typeof(sbyte) || t == typeof(short) || t == typeof(ushort) || t == typeof(int) ||
|
||||
t == typeof(uint) || t == typeof(long) || t == typeof(ulong))
|
||||
{
|
||||
if (s.StartsWith("0x"))
|
||||
if (s.StartsWith("0x", StringComparison.Ordinal))
|
||||
{
|
||||
if (t == typeof(ulong) || t == typeof(uint) || t == typeof(ushort) || t == typeof(byte))
|
||||
{
|
||||
|
|
|
|||
|
|
@ -310,7 +310,7 @@ namespace Server.Gumps
|
|||
|
||||
for (var i = 0; i < m_GroupNames.Length; ++i)
|
||||
{
|
||||
if (DisplayName.StartsWith(m_GroupNames[i]))
|
||||
if (DisplayName.StartsWith(m_GroupNames[i], StringComparison.Ordinal))
|
||||
{
|
||||
DisplayName = DisplayName.Substring(m_GroupNames[i].Length);
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -120,8 +120,7 @@ namespace Server.Gumps
|
|||
CommandSystem.Register("ToTAdmin", AccessLevel.Administrator, ToTAdmin_OnCommand);
|
||||
}
|
||||
|
||||
[Usage("ToTAdmin")]
|
||||
[Description("Displays a menu to configure Treasures of Tokuno.")]
|
||||
[Usage("ToTAdmin"), Description("Displays a menu to configure Treasures of Tokuno.")]
|
||||
public static void ToTAdmin_OnCommand(CommandEventArgs e)
|
||||
{
|
||||
ToTAdminGump tg;
|
||||
|
|
|
|||
|
|
@ -160,10 +160,9 @@ namespace Server.Gumps
|
|||
CommandSystem.Register("ViewHouses", AccessLevel.GameMaster, ViewHouses_OnCommand);
|
||||
}
|
||||
|
||||
[Usage("ViewHouses")]
|
||||
[Description(
|
||||
"Displays a menu listing all houses of a targeted player. The menu also contains specific house details, and options to: go to house, open house menu, and demolish house."
|
||||
)]
|
||||
[Usage("ViewHouses"), Description(
|
||||
"Displays a menu listing all houses of a targeted player. The menu also contains specific house details, and options to: go to house, open house menu, and demolish house."
|
||||
)]
|
||||
public static void ViewHouses_OnCommand(CommandEventArgs e)
|
||||
{
|
||||
e.Mobile.BeginTarget(-1, false, TargetFlags.None, ViewHouses_OnTarget);
|
||||
|
|
|
|||
|
|
@ -83,9 +83,8 @@ namespace Server.Gumps
|
|||
CommandSystem.Register("WhoList", AccessLevel.Counselor, WhoList_OnCommand);
|
||||
}
|
||||
|
||||
[Usage("WhoList [filter]")]
|
||||
[Aliases("Who")]
|
||||
[Description("Lists all connected clients. Optionally filters results by name.")]
|
||||
[Usage("WhoList [filter]"), Aliases("Who"),
|
||||
Description("Lists all connected clients. Optionally filters results by name.")]
|
||||
private static void WhoList_OnCommand(CommandEventArgs e)
|
||||
{
|
||||
e.Mobile.SendGump(new WhoGump(e.Mobile, e.ArgString));
|
||||
|
|
@ -96,16 +95,15 @@ namespace Server.Gumps
|
|||
var filter = rawFilter.Trim().ToLower().DefaultIfNullOrEmpty(null);
|
||||
|
||||
var list = new List<Mobile>();
|
||||
var states = TcpServer.Instances;
|
||||
|
||||
for (var i = 0; i < states.Count; ++i)
|
||||
foreach (var ns in TcpServer.Instances)
|
||||
{
|
||||
var m = states[i].Mobile;
|
||||
var m = ns.Mobile;
|
||||
|
||||
if (m != null && (m == owner || !m.Hidden || owner.AccessLevel >= m.AccessLevel ||
|
||||
m is PlayerMobile mobile && mobile.VisibilityList.Contains(owner)))
|
||||
{
|
||||
if (filter != null && !(m.Name?.ToLower().IndexOf(filter, StringComparison.Ordinal) >= 0))
|
||||
if (filter != null && m.Name?.ToLower().Contains(filter, StringComparison.Ordinal) != true)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
|
@ -317,9 +315,14 @@ namespace Server.Gumps
|
|||
|
||||
public int Compare(Mobile x, Mobile y)
|
||||
{
|
||||
if (x == null || y == null)
|
||||
if (x == null)
|
||||
{
|
||||
throw new ArgumentException();
|
||||
throw new ArgumentNullException(nameof(x));
|
||||
}
|
||||
|
||||
if (y == null)
|
||||
{
|
||||
throw new ArgumentNullException(nameof(y));
|
||||
}
|
||||
|
||||
if (x.AccessLevel > y.AccessLevel)
|
||||
|
|
@ -327,12 +330,7 @@ namespace Server.Gumps
|
|||
return -1;
|
||||
}
|
||||
|
||||
if (x.AccessLevel < y.AccessLevel)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
return Insensitive.Compare(x.Name, y.Name);
|
||||
return x.AccessLevel < y.AccessLevel ? 1 : Insensitive.Compare(x.Name, y.Name);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
namespace Server.Items.Holiday
|
||||
{
|
||||
[TypeAlias("Server.Items.AngelDecoration")]
|
||||
[Flippable(0x46FA, 0x46FB)]
|
||||
[TypeAlias("Server.Items.AngelDecoration"), Flippable(0x46FA, 0x46FB)]
|
||||
public class AngelDecoration : Item
|
||||
{
|
||||
public AngelDecoration() : base(0x46FA)
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
namespace Server.Items.Holiday
|
||||
{
|
||||
[TypeAlias("Server.Items.RockingHorse")]
|
||||
[Flippable(0x4214, 0x4215)]
|
||||
[TypeAlias("Server.Items.RockingHorse"), Flippable(0x4214, 0x4215)]
|
||||
public class RockingHorse : Item
|
||||
{
|
||||
public RockingHorse() : base(0x4214)
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ using Server.Items;
|
|||
|
||||
namespace Server.Engines.Events
|
||||
{
|
||||
public class PumpkinPatchSpawner
|
||||
public static class PumpkinPatchSpawner
|
||||
{
|
||||
private static Timer m_Timer;
|
||||
|
||||
|
|
@ -31,7 +31,7 @@ namespace Server.Engines.Events
|
|||
}
|
||||
}
|
||||
|
||||
protected static void PumpkinPatchSpawnerCallback()
|
||||
private static void PumpkinPatchSpawnerCallback()
|
||||
{
|
||||
AddPumpkin(Map.Felucca);
|
||||
AddPumpkin(Map.Trammel);
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ using Server.Mobiles;
|
|||
|
||||
namespace Server.Engines.Events
|
||||
{
|
||||
public class HalloweenHauntings
|
||||
public static class HalloweenHauntings
|
||||
{
|
||||
private static Timer m_Timer;
|
||||
private static Timer m_ClearTimer;
|
||||
|
|
|
|||
|
|
@ -181,8 +181,7 @@ namespace Server.Items
|
|||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
public Point3D Offset { get; set; }
|
||||
|
||||
[Hue]
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
[Hue, CommandProperty(AccessLevel.GameMaster)]
|
||||
public override int Hue
|
||||
{
|
||||
get => base.Hue;
|
||||
|
|
|
|||
|
|
@ -26,8 +26,7 @@ namespace Server.Items
|
|||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
public Point3D Offset { get; set; }
|
||||
|
||||
[Hue]
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
[Hue, CommandProperty(AccessLevel.GameMaster)]
|
||||
public override int Hue
|
||||
{
|
||||
get => base.Hue;
|
||||
|
|
|
|||
|
|
@ -78,10 +78,7 @@ namespace Server.Items
|
|||
|
||||
private ScoreEntry GetEntryFor(Mobile from)
|
||||
{
|
||||
if (m_Entries == null)
|
||||
{
|
||||
m_Entries = new Dictionary<Mobile, ScoreEntry>();
|
||||
}
|
||||
m_Entries ??= new Dictionary<Mobile, ScoreEntry>();
|
||||
|
||||
if (!m_Entries.TryGetValue(from, out var e))
|
||||
{
|
||||
|
|
|
|||
|
|
@ -44,8 +44,7 @@ namespace Server.Items
|
|||
|
||||
public virtual bool ShareHue => true;
|
||||
|
||||
[Hue]
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
[Hue, CommandProperty(AccessLevel.GameMaster)]
|
||||
public override int Hue
|
||||
{
|
||||
get => base.Hue;
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue