Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- [PropertyObject, Serializable, XmlRoot( "Options" )]
- public sealed class DistroServerOptions : ServerOptions
- {
- private bool m_AntiMacroCode;
- private double m_GainFactorBonusPerLevel;
- private double m_PowerHourBoost;
- private double m_SuperPowerHourBoost;
- private int m_MaxIndiviualCap;
- private bool m_TrackerEnabled;
- private double m_TicketBonusAmount;
- private bool m_UseOnlineBuffer;
- private int m_MinOnlineBuffer;
- private int m_MaxOnlineBuffer;
- [XmlElement( "MinOnlineBuffer" ), CommandProperty( AccessLevel.Administrator, AccessLevel.SeniorAdministrator )]
- public int MinOnlineBuffer
- {
- get { return m_MinOnlineBuffer; }
- set { m_MinOnlineBuffer = value; }
- }
- [XmlElement( "MaxOnlineBuffer" ), CommandProperty( AccessLevel.Administrator, AccessLevel.SeniorAdministrator )]
- public int MaxOnlineBuffer
- {
- get { return m_MaxOnlineBuffer; }
- set { m_MaxOnlineBuffer = value; }
- }
- private bool m_DungeonChestsEnabled;
- private bool m_TownStealablesEnabled;
- [XmlElement( "TownStealablesEnabled" ), CommandProperty( AccessLevel.GameMaster, AccessLevel.SeniorAdministrator )]
- public bool TownStealablesEnabled
- {
- get { return m_TownStealablesEnabled; }
- set { m_TownStealablesEnabled = value; }
- }
- [XmlElement( "DungeonChestsEnabled" ), CommandProperty( AccessLevel.GameMaster, AccessLevel.SeniorAdministrator )]
- public bool DungeonChestsEnabled
- {
- get { return m_DungeonChestsEnabled; }
- set { m_DungeonChestsEnabled = value; }
- }
- [XmlElement( "UseOnlineBuffer" ), CommandProperty( AccessLevel.GameMaster, AccessLevel.SeniorAdministrator )]
- public bool UseOnlineBuffer
- {
- get { return m_UseOnlineBuffer; }
- set { m_UseOnlineBuffer = value; }
- }
- [XmlElement( "TicketBonusAmount" ), CommandProperty( AccessLevel.GameMaster, AccessLevel.SeniorAdministrator )]
- public double TicketBonusAmount
- {
- get { return m_TicketBonusAmount; }
- set { m_TicketBonusAmount = value; }
- }
- [XmlElement( "TrackerEnabled" ), CommandProperty( AccessLevel.GameMaster, AccessLevel.SeniorAdministrator )]
- public bool TrackerEnabled
- {
- get { return m_TrackerEnabled; }
- set { m_TrackerEnabled = value; }
- }
- [XmlElement( "AntiMacroCode" ), CommandProperty( AccessLevel.GameMaster, AccessLevel.SeniorAdministrator )]
- public bool AntiMacroCode
- {
- get { return m_AntiMacroCode; }
- set { m_AntiMacroCode = value; }
- }
- [XmlElement( "GainFactorBonusPerLevel" ), CommandProperty( AccessLevel.GameMaster, AccessLevel.SeniorAdministrator )]
- public double GainFactorBonusPerLevel
- {
- get { return m_GainFactorBonusPerLevel; }
- set { m_GainFactorBonusPerLevel = value; }
- }
- [XmlElement( "PowerHourBoost" ), CommandProperty( AccessLevel.GameMaster, AccessLevel.SeniorAdministrator )]
- public double PowerHourBoost
- {
- get { return m_PowerHourBoost; }
- set { m_PowerHourBoost = value; }
- }
- [XmlElement( "SuperPowerHourBoost" ), CommandProperty( AccessLevel.GameMaster, AccessLevel.SeniorAdministrator )]
- public double SuperPowerHourBoost
- {
- get { return m_SuperPowerHourBoost; }
- set { m_SuperPowerHourBoost = value; }
- }
- [XmlElement( "MaxIndiviualCap" ), CommandProperty( AccessLevel.GameMaster, AccessLevel.SeniorAdministrator )]
- public int MaxIndiviualCap
- {
- get { return m_MaxIndiviualCap; }
- set { m_MaxIndiviualCap = value; }
- }
- private WeaponSettings m_WeaponSettings;
- [XmlElement( "WeaponSettings" )]
- public WeaponSettings WeaponSettingsXml
- {
- get { return m_WeaponSettings; }
- set { m_WeaponSettings = value; }
- }
- [XmlIgnore, CommandProperty( AccessLevel.GameMaster, AccessLevel.Administrator )]
- public WeaponSettings WeaponSettings
- {
- get { return m_WeaponSettings; }
- set { m_WeaponSettings = value; }
- }
- private SpellSettings m_SpellSettings;
- [XmlElement( "SpellSettings" )]
- public SpellSettings SpellSettingsXml
- {
- get { return m_SpellSettings; }
- set { m_SpellSettings = value; }
- }
- [XmlIgnore, CommandProperty( AccessLevel.GameMaster, AccessLevel.Administrator )]
- public SpellSettings SpellSettings
- {
- get { return m_SpellSettings; }
- set { m_SpellSettings = value; }
- }
- public DistroServerOptions()
- {
- m_WeaponSettings= new WeaponSettings();
- m_SpellSettings = new SpellSettings();
- m_AntiMacroCode = false;
- m_GainFactorBonusPerLevel = 5.0; // Gain Factor Bonus Per Level
- m_PowerHourBoost = 1.20; // Power Hour Boost!
- m_SuperPowerHourBoost = 1.65; // Super Powerhour Boost!
- m_MaxIndiviualCap = 100;
- m_TrackerEnabled = true;
- m_TicketBonusAmount = 2.0;
- m_UseOnlineBuffer = false;
- m_MinOnlineBuffer = 3;
- m_MaxOnlineBuffer = 10;
- }
- }
- // I had this in the core...
- [Flags]
- public enum OptionFlags
- {
- None = 0x0000,
- SiegePerlious = 0x0001,
- PacketDebug = 0x0002,
- Debug = 0x0004,
- UseRateOverTime = 0x0008
- }
- [PropertyObject, Serializable, XmlRoot( "Options" )]
- public class ServerOptions
- {
- private MySqlConnectionStringBuilder m_ConnectionString;
- private OptionFlags m_Flags;
- private double m_GoldModifier;
- private Expansion m_Expansion;
- private uint m_ServerID;
- private string m_DataPath;
- private string m_DatabaseServer;
- private uint m_DatabasePort;
- private string m_DatabaseUser;
- private string m_DatabasePassword;
- private string m_DatabaseSchema;
- [XmlElement]
- [CommandProperty( AccessLevel.SeniorAdministrator, true )]
- public uint ServerID
- {
- get { return m_ServerID; }
- set { m_ServerID = value; }
- }
- [XmlElement]
- [CommandProperty( AccessLevel.SeniorAdministrator, true )]
- public bool IsDebugMode
- {
- get { return GetFlag( OptionFlags.Debug ); }
- set { SetFlag( OptionFlags.Debug, value ); }
- }
- [XmlElement]
- [CommandProperty( AccessLevel.SeniorAdministrator, true )]
- public bool IsPacketDebug
- {
- get { return GetFlag( OptionFlags.PacketDebug ); }
- set { SetFlag( OptionFlags.PacketDebug, value ); }
- }
- [XmlElement]
- [CommandProperty( AccessLevel.SeniorAdministrator, true )]
- public bool UseRateOverTime
- {
- get { return GetFlag( OptionFlags.UseRateOverTime ); }
- set { SetFlag( OptionFlags.UseRateOverTime, value ); }
- }
- [XmlElement]
- [CommandProperty( AccessLevel.SeniorAdministrator )]
- public string DatabaseServer
- {
- get
- {
- return m_DatabaseServer;
- }
- set
- {
- m_DatabaseServer = value;
- m_ConnectionString.Server = value;
- }
- }
- [XmlElement]
- [CommandProperty( AccessLevel.SeniorAdministrator )]
- public uint DatabasePort
- {
- get
- {
- return m_DatabasePort;
- }
- set
- {
- m_DatabasePort = value;
- m_ConnectionString.Port = value;
- }
- }
- [XmlElement]
- [CommandProperty( AccessLevel.SeniorAdministrator )]
- public string DatabaseUser
- {
- get
- {
- return m_DatabaseUser;
- }
- set
- {
- m_DatabaseUser = value;
- m_ConnectionString.UserID = value;
- }
- }
- [XmlElement]
- [CommandProperty( AccessLevel.SeniorAdministrator )]
- public string DatabasePassword
- {
- get
- {
- return m_DatabasePassword;
- }
- set
- {
- m_DatabasePassword = value;
- m_ConnectionString.Password = value;
- }
- }
- [XmlElement]
- [CommandProperty( AccessLevel.SeniorAdministrator )]
- public string DatabaseSchema
- {
- get
- {
- return m_DatabaseSchema;
- }
- set
- {
- m_DatabaseSchema = value;
- m_ConnectionString.Database = value;
- }
- }
- [XmlIgnore]
- [CommandProperty( AccessLevel.SeniorAdministrator, true )]
- public bool IsLocalDatabase
- {
- get
- {
- return ( m_DatabaseServer == "localhost" );
- }
- }
- [XmlIgnore]
- public string DatabaseConnectionString
- {
- get
- {
- return m_ConnectionString.ConnectionString;
- }
- }
- [XmlElement]
- [CommandProperty( AccessLevel.SeniorAdministrator, true )]
- public string DataPath
- {
- get { return m_DataPath; }
- set { m_DataPath = value; }
- }
- [XmlIgnore]
- public OptionFlags Flags { get { return m_Flags; } }
- /**
- * Gold Modifier is a purpose to adjust the gold that drops
- * The default is 1.0 which is 100% drop...
- *
- * Increasing it does this, suppose you normally see a Earth Elemental
- * drop around 300-400gp it will with a 1.25 (125% bonus) will drop 375-500gp.
- *
- * Decreasing will lower the drop so at 0.75 will make the loot drop to 225-300gp.
- */
- [XmlElement]
- [CommandProperty( AccessLevel.GameMaster, AccessLevel.SeniorAdministrator )]
- public double GoldModifier { get { return m_GoldModifier; } set { m_GoldModifier = value; } }
- [XmlElement]
- [CommandProperty( AccessLevel.GameMaster, AccessLevel.SeniorDeveloper )]
- public Expansion Expansion
- {
- get { return m_Expansion; }
- set { m_Expansion = value; }
- }
- [XmlElement]
- [CommandProperty( AccessLevel.GameMaster, AccessLevel.SeniorDeveloper )]
- public bool SiegePerlious
- {
- get { return GetFlag( OptionFlags.SiegePerlious ); }
- set { SetFlag( OptionFlags.SiegePerlious, value ); }
- }
- private bool GetFlag( OptionFlags flag )
- {
- return (m_Flags & flag) != 0;
- }
- private void SetFlag( OptionFlags flag, bool on )
- {
- m_Flags = on ? (m_Flags | flag) : (m_Flags & ~flag);
- }
- public ServerOptions()
- {
- m_GoldModifier = 1.0;
- m_Expansion = Expansion.Highest;
- m_Flags = OptionFlags.None;
- SetFlag( OptionFlags.Debug, true );
- m_ServerID = 0;
- m_ConnectionString = new MySqlConnectionStringBuilder();
- }
- public static T Load<T>() where T : ServerOptions
- {
- string settingFiles = Path.Combine( Core.BaseDirectory, "serveroptions.xml" );
- if ( File.Exists( settingFiles ) )
- {
- using ( FileStream fs = new FileStream( settingFiles, FileMode.Open, FileAccess.Read, FileShare.Read ) )
- {
- XmlSerializer xml = new XmlSerializer( typeof( T ) );
- return (T)xml.Deserialize( fs );
- }
- }
- return default( T );
- }
- public static void Save<T>( T value )
- {
- string settingFiles = Path.Combine( Core.BaseDirectory, "serveroptions.xml" );
- using ( FileStream fs = new FileStream( settingFiles, FileMode.Create, FileAccess.Write, FileShare.Write ) )
- {
- XmlSerializer xml = new XmlSerializer( typeof( T ) );
- xml.Serialize( fs, value );
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement