From 1ef98f10ec6518df34875a57b846c6d07139ae57 Mon Sep 17 00:00:00 2001 From: mark Date: Mon, 27 Aug 2007 08:49:15 +0000 Subject: [PATCH] Partial Branch Sync --- Data/Locations/trammel.xml | 2 +- Scripts/Accounting/AccountAttackLimiter.cs | 16 +++++ Scripts/Accounting/IPLimiter.cs | 2 +- Scripts/Engines/Craft/Core/CraftGump.cs | 35 +++++++++-- Scripts/Engines/Craft/Core/CraftItem.cs | 9 --- Scripts/Engines/RemoteAdmin/Network.cs | 2 +- Scripts/Engines/RemoteAdmin/PacketHandlers.cs | 2 +- Scripts/Engines/RemoteAdmin/Packets.cs | 2 +- Scripts/Engines/Reports/Reports.cs | 2 +- Scripts/Gumps/AdminGump.cs | 2 +- Scripts/Gumps/WarningGump.cs | 2 +- Scripts/Items/Games/Mahjong/MahjongPlayers.cs | 2 +- Scripts/Items/Misc/PromotionalToken.cs | 6 +- Scripts/Misc/BuffIcons.cs | 2 +- Scripts/Misc/ClientVerification.cs | 24 ++++++-- Scripts/Misc/Emitter.cs | 3 +- Scripts/Misc/ServerList.cs | 2 +- Scripts/Mobiles/PlayerMobile.cs | 4 +- Scripts/Mobiles/Vendors/BaseVendor.cs | 4 +- Scripts/Mobiles/Vendors/NPC/Blacksmith.cs | 2 +- Scripts/Mobiles/Vendors/NPC/Tailor.cs | 2 +- Scripts/Mobiles/Vendors/NPC/Weaponsmith.cs | 2 +- Scripts/Mobiles/Vendors/NPC/Weaver.cs | 2 +- Scripts/Multis/HouseFoundation.cs | 45 ++++++++------ Scripts/Multis/HousePlacementTool.cs | 59 +++++++++++-------- Scripts/Regions/GuardedRegion.cs | 2 +- Scripts/Spells/Base/SpellRegistry.cs | 2 +- Server/EventSink.cs | 14 ++--- Server/Main.cs | 2 + Server/Network/NetState.cs | 6 +- Server/Network/PacketHandlers.cs | 2 +- Server/Timer.cs | 5 +- 32 files changed, 166 insertions(+), 102 deletions(-) diff --git a/Data/Locations/trammel.xml b/Data/Locations/trammel.xml index 91815262d..c74e5844f 100644 --- a/Data/Locations/trammel.xml +++ b/Data/Locations/trammel.xml @@ -193,7 +193,7 @@ - + diff --git a/Scripts/Accounting/AccountAttackLimiter.cs b/Scripts/Accounting/AccountAttackLimiter.cs index 2604fde7d..3c264d0a0 100644 --- a/Scripts/Accounting/AccountAttackLimiter.cs +++ b/Scripts/Accounting/AccountAttackLimiter.cs @@ -1,6 +1,7 @@ using System; using System.Collections; using System.Collections.Generic; +using System.IO; using System.Net; using System.Net.Sockets; using Server; @@ -66,6 +67,21 @@ namespace Server.Accounting accessLog.Counts += 1; accessLog.RefreshAccessTime(); + + if ( accessLog.Counts >= 3 ) { + try { + using ( StreamWriter op = new StreamWriter( "throttle.log", true ) ) { + op.WriteLine( + "{0}\t{1}\t{2}", + DateTime.Now, + ns, + accessLog.Counts + ); + } + } + catch { + } + } } public static TimeSpan ComputeThrottle( int counts ) diff --git a/Scripts/Accounting/IPLimiter.cs b/Scripts/Accounting/IPLimiter.cs index f13b247f4..47558763d 100644 --- a/Scripts/Accounting/IPLimiter.cs +++ b/Scripts/Accounting/IPLimiter.cs @@ -48,7 +48,7 @@ namespace Server.Misc { ++count; - if ( count > MaxAddresses ) + if ( count >= MaxAddresses ) return false; } } diff --git a/Scripts/Engines/Craft/Core/CraftGump.cs b/Scripts/Engines/Craft/Core/CraftGump.cs index 880e4f57c..ed9528381 100644 --- a/Scripts/Engines/Craft/Core/CraftGump.cs +++ b/Scripts/Engines/Craft/Core/CraftGump.cs @@ -1,5 +1,6 @@ using System; using System.Collections; +using System.Collections.Generic; using Server.Gumps; using Server.Network; using Server.Items; @@ -116,20 +117,33 @@ namespace Server.Engines.Craft int resIndex = ( context == null ? -1 : context.LastResourceIndex ); + Type resourceType = craftSystem.CraftSubRes.ResType; + if ( resIndex > -1 ) { CraftSubRes subResource = craftSystem.CraftSubRes.GetAt( resIndex ); nameString = subResource.NameString; nameNumber = subResource.NameNumber; + resourceType = subResource.ItemType; } + int resourceCount = 0; + + if ( from.Backpack != null ) + { + Item[] items = from.Backpack.FindItemsByType( resourceType, true ); + + for ( int i = 0; i < items.Length; ++i ) + resourceCount += items[i].Amount; + } + AddButton( 15, 362, 4005, 4007, GetButtonID( 6, 0 ), GumpButtonType.Reply, 0 ); if ( nameNumber > 0 ) - AddHtmlLocalized( 50, 365, 250, 18, nameNumber, LabelColor, false, false ); + AddHtmlLocalized( 50, 365, 250, 18, nameNumber, resourceCount.ToString(), LabelColor, false, false ); else - AddLabel( 50, 362, LabelHue, nameString ); + AddLabel( 50, 362, LabelHue, String.Format( "{0} ({1} Available)", nameString, resourceCount ) ); } // **************************************** @@ -141,20 +155,33 @@ namespace Server.Engines.Craft int resIndex = ( context == null ? -1 : context.LastResourceIndex2 ); + Type resourceType = craftSystem.CraftSubRes.ResType; + if ( resIndex > -1 ) { CraftSubRes subResource = craftSystem.CraftSubRes2.GetAt( resIndex ); nameString = subResource.NameString; nameNumber = subResource.NameNumber; + resourceType = subResource.ItemType; } + int resourceCount = 0; + + if ( from.Backpack != null ) + { + Item[] items = from.Backpack.FindItemsByType( resourceType, true ); + + for ( int i = 0; i < items.Length; ++i ) + resourceCount += items[i].Amount; + } + AddButton( 15, 382, 4005, 4007, GetButtonID( 6, 7 ), GumpButtonType.Reply, 0 ); if ( nameNumber > 0 ) - AddHtmlLocalized( 50, 385, 250, 18, nameNumber, LabelColor, false, false ); + AddHtmlLocalized( 50, 385, 250, 18, nameNumber, resourceCount.ToString(), LabelColor, false, false ); else - AddLabel( 50, 385, LabelHue, nameString ); + AddLabel( 50, 385, LabelHue, String.Format( "{0} ({1} Available)", nameString, resourceCount ) ); } // **************************************** diff --git a/Scripts/Engines/Craft/Core/CraftItem.cs b/Scripts/Engines/Craft/Core/CraftItem.cs index acd07a661..4d7835067 100644 --- a/Scripts/Engines/Craft/Core/CraftItem.cs +++ b/Scripts/Engines/Craft/Core/CraftItem.cs @@ -624,15 +624,6 @@ namespace Server.Engines.Craft if ( types[i] == null ) types[i] = new Type[]{ baseType }; - /*if ( !retainedColor && RetainsColorFrom( craftSystem, baseType ) ) - { - retainedColor = true; - Item resItem = ourPack.FindItemByType( types[i] ); - - if ( resItem != null ) - resHue = resItem.Hue; - }*/ - amounts[i] = craftRes.Amount; // For stackable items that can ben crafted more than one at a time diff --git a/Scripts/Engines/RemoteAdmin/Network.cs b/Scripts/Engines/RemoteAdmin/Network.cs index ef08fa107..3c242a7bc 100644 --- a/Scripts/Engines/RemoteAdmin/Network.cs +++ b/Scripts/Engines/RemoteAdmin/Network.cs @@ -5,7 +5,7 @@ using System.Collections; using Server.Accounting; using Server.Network; -namespace Server.Admin +namespace Server.RemoteAdmin { public class AdminNetwork { diff --git a/Scripts/Engines/RemoteAdmin/PacketHandlers.cs b/Scripts/Engines/RemoteAdmin/PacketHandlers.cs index 0e97bb68d..62fd86928 100644 --- a/Scripts/Engines/RemoteAdmin/PacketHandlers.cs +++ b/Scripts/Engines/RemoteAdmin/PacketHandlers.cs @@ -6,7 +6,7 @@ using Server.Accounting; using Server.Items; using Server.Mobiles; -namespace Server.Admin +namespace Server.RemoteAdmin { public class RemoteAdminHandlers { diff --git a/Scripts/Engines/RemoteAdmin/Packets.cs b/Scripts/Engines/RemoteAdmin/Packets.cs index f9af4abbe..5abfc88d8 100644 --- a/Scripts/Engines/RemoteAdmin/Packets.cs +++ b/Scripts/Engines/RemoteAdmin/Packets.cs @@ -6,7 +6,7 @@ using Server.Network; using Server.Accounting; using Server.Commands; -namespace Server.Admin +namespace Server.RemoteAdmin { public enum LoginResponse : byte { diff --git a/Scripts/Engines/Reports/Reports.cs b/Scripts/Engines/Reports/Reports.cs index 6f07ea5dd..8e50bbaac 100644 --- a/Scripts/Engines/Reports/Reports.cs +++ b/Scripts/Engines/Reports/Reports.cs @@ -418,4 +418,4 @@ namespace Server.Engines.Reports return report; } } -} \ No newline at end of file +} diff --git a/Scripts/Gumps/AdminGump.cs b/Scripts/Gumps/AdminGump.cs index 8104f8378..5de387f60 100644 --- a/Scripts/Gumps/AdminGump.cs +++ b/Scripts/Gumps/AdminGump.cs @@ -552,7 +552,7 @@ namespace Server.Gumps if ( m == null ) { - if ( Admin.AdminNetwork.IsAuth( ns ) ) + if ( RemoteAdmin.AdminNetwork.IsAuth( ns ) ) AddLabelCropped( 12, offset, 81, 20, LabelHue, "(remote admin)" ); else AddLabelCropped( 12, offset, 81, 20, LabelHue, "(logging in)" ); diff --git a/Scripts/Gumps/WarningGump.cs b/Scripts/Gumps/WarningGump.cs index 665f7e776..55ce10157 100644 --- a/Scripts/Gumps/WarningGump.cs +++ b/Scripts/Gumps/WarningGump.cs @@ -12,7 +12,7 @@ namespace Server.Gumps private bool m_CancelButton; public WarningGump( int header, int headerColor, object content, int contentColor, int width, int height, WarningGumpCallback callback, object state ) - : this( header, headerColor, content, contentColor, width, height, callback, state, false ) + : this( header, headerColor, content, contentColor, width, height, callback, state, true ) { } diff --git a/Scripts/Items/Games/Mahjong/MahjongPlayers.cs b/Scripts/Items/Games/Mahjong/MahjongPlayers.cs index 709dc8b13..a904fbf5a 100644 --- a/Scripts/Items/Games/Mahjong/MahjongPlayers.cs +++ b/Scripts/Items/Games/Mahjong/MahjongPlayers.cs @@ -380,7 +380,7 @@ namespace Server.Engines.Mahjong to.Send( new MahjongPlayersInfo( m_Game, to ) ); } - SendLocalizedMessage( 1062774, string.Format( "{0}\t{1}\t{2}", from.Name, to.Name, amount ) ); // ~1_giver~ gives ~2_reciever~ ~3_number~ points. + SendLocalizedMessage( 1062774, string.Format( "{0}\t{1}\t{2}", from.Name, to.Name, amount ) ); // ~1_giver~ gives ~2_receiver~ ~3_number~ points. } public void OpenSeat( int index ) diff --git a/Scripts/Items/Misc/PromotionalToken.cs b/Scripts/Items/Misc/PromotionalToken.cs index f8472ce3c..a044d4de6 100644 --- a/Scripts/Items/Misc/PromotionalToken.cs +++ b/Scripts/Items/Misc/PromotionalToken.cs @@ -10,7 +10,7 @@ namespace Server.Items public abstract Item CreateItemFor( Mobile from ); public abstract TextDefinition ItemName{ get; } - public abstract TextDefinition ItemRecieveMessage { get; } + public abstract TextDefinition ItemReceiveMessage { get; } public abstract TextDefinition ItemGumpName { get; } public PromotionalToken() : base( 0x2AAA ) @@ -110,7 +110,7 @@ namespace Server.Items if( i != null ) { from.BankBox.AddItem( i ); - TextDefinition.SendMessageTo( from, m_Token.ItemRecieveMessage ); + TextDefinition.SendMessageTo( from, m_Token.ItemReceiveMessage ); m_Token.Delete(); } } @@ -131,7 +131,7 @@ namespace Server.Items public override TextDefinition ItemGumpName{ get{ return 1070999; } }//
Soulstone Fragment
public override TextDefinition ItemName { get { return 1071000; } }//soulstone fragment - public override TextDefinition ItemRecieveMessage{ get{ return 1070976; } } // A soulstone fragment has been created in your bank box. + public override TextDefinition ItemReceiveMessage{ get{ return 1070976; } } // A soulstone fragment has been created in your bank box. [Constructable] public SoulstoneFragmentToken() : base() diff --git a/Scripts/Misc/BuffIcons.cs b/Scripts/Misc/BuffIcons.cs index a594641ff..957324825 100644 --- a/Scripts/Misc/BuffIcons.cs +++ b/Scripts/Misc/BuffIcons.cs @@ -14,7 +14,7 @@ namespace Server { if( Enabled ) { - EventSink.ClientVersionRecieved += new ClientVersionRecievedHandler( delegate( ClientVersionRecievedArgs args ) + EventSink.ClientVersionReceived += new ClientVersionReceivedHandler( delegate( ClientVersionReceivedArgs args ) { PlayerMobile pm = args.State.Mobile as PlayerMobile; diff --git a/Scripts/Misc/ClientVerification.cs b/Scripts/Misc/ClientVerification.cs index b8c5cdf59..0a27949eb 100644 --- a/Scripts/Misc/ClientVerification.cs +++ b/Scripts/Misc/ClientVerification.cs @@ -4,6 +4,7 @@ using System.Diagnostics; using System.IO; using Server.Network; using Server.Gumps; +using Server.Mobiles; namespace Server.Misc { @@ -14,16 +15,20 @@ namespace Server.Misc Ignore, Warn, Annoy, + LenientKick, Kick } private static bool m_DetectClientRequirement = true; - private static OldClientResponse m_OldClientResponse = OldClientResponse.Annoy; + private static OldClientResponse m_OldClientResponse = OldClientResponse.LenientKick; private static ClientVersion m_Required; private static bool m_AllowRegular = true, m_AllowUOTD = true, m_AllowGod = true; - private static TimeSpan m_KickDelay = TimeSpan.FromSeconds( 10.0 ); + private static TimeSpan m_AgeLeniency = TimeSpan.FromDays( 10 ); + private static TimeSpan m_GameTimeLeniency = TimeSpan.FromHours( 25 ); + + private static TimeSpan m_KickDelay = TimeSpan.FromSeconds( 20.0 ); public static ClientVersion Required { @@ -87,7 +92,7 @@ namespace Server.Misc public static void Initialize() { - EventSink.ClientVersionRecieved += new ClientVersionRecievedHandler( EventSink_ClientVersionRecieved ); + EventSink.ClientVersionReceived += new ClientVersionReceivedHandler( EventSink_ClientVersionReceived ); //ClientVersion.Required = null; //Required = new ClientVersion( "6.0.0.0" ); @@ -115,13 +120,13 @@ namespace Server.Misc } } - private static void EventSink_ClientVersionRecieved( ClientVersionRecievedArgs e ) + private static void EventSink_ClientVersionReceived( ClientVersionReceivedArgs e ) { string kickMessage = null; NetState state = e.State; ClientVersion version = e.Version; - if( Required != null && m_OldClientResponse == OldClientResponse.Kick && version < Required ) + if( Required != null && version < Required && ( m_OldClientResponse == OldClientResponse.Kick ||( m_OldClientResponse == OldClientResponse.LenientKick && (DateTime.Now - state.Mobile.CreationTime) > m_AgeLeniency && state.Mobile is PlayerMobile && ((PlayerMobile)state.Mobile).GameTime > m_GameTimeLeniency ))) { kickMessage = String.Format( "This server requires your client version be at least {0}.", Required ); } @@ -177,6 +182,7 @@ namespace Server.Misc state.Mobile.SendMessage( 0x22, "This server reccomends that your client version be at least {0}.", Required ); break; } + case OldClientResponse.LenientKick: case OldClientResponse.Annoy: { SendAnnoyGump( state.Mobile ); @@ -194,10 +200,16 @@ namespace Server.Misc delegate( Mobile mob, bool selection, object o ) { m.SendMessage( "You will be reminded of this again." ); - Timer.DelayCall( TimeSpan.FromMinutes( 20 ), delegate { SendAnnoyGump( m ); } ); + + if ( m_OldClientResponse == OldClientResponse.LenientKick ) + m.SendMessage( "Old clients will be kicked after {0} days of character age and {1} hours of play time", m_AgeLeniency, m_GameTimeLeniency ); + + Timer.DelayCall( TimeSpan.FromMinutes( Utility.Random( 5, 15 ) ), delegate { SendAnnoyGump( m ); } ); }, null, false ); g.Dragable = false; + g.Closable = false; + g.Resizable = false; m.SendGump( g ); } diff --git a/Scripts/Misc/Emitter.cs b/Scripts/Misc/Emitter.cs index 811264f4b..69639a575 100644 --- a/Scripts/Misc/Emitter.cs +++ b/Scripts/Misc/Emitter.cs @@ -236,7 +236,8 @@ namespace Server public void Load( Enum value ) { - Load( (int) (object) value ); + int toLoad = ((IConvertible)value).ToInt32( null ); + Load( toLoad ); Pop(); Push( value.GetType() ); diff --git a/Scripts/Misc/ServerList.cs b/Scripts/Misc/ServerList.cs index b616e6fa6..eefaffa6b 100644 --- a/Scripts/Misc/ServerList.cs +++ b/Scripts/Misc/ServerList.cs @@ -20,7 +20,7 @@ namespace Server.Misc * private const string Address = "shard.host.com"; */ - public static readonly string Address = null; + public static readonly string Address = null; public const string ServerName = "RunUO TC"; diff --git a/Scripts/Mobiles/PlayerMobile.cs b/Scripts/Mobiles/PlayerMobile.cs index 850f400b1..70eff63c5 100644 --- a/Scripts/Mobiles/PlayerMobile.cs +++ b/Scripts/Mobiles/PlayerMobile.cs @@ -3042,10 +3042,10 @@ namespace Server.Mobiles TransformContext context = TransformationSpellHelper.GetContext( this ); - if( context != null && context.Type == typeof( ReaperFormSpell ) ) + if ( context != null && context.Type == typeof( ReaperFormSpell ) ) return Mobile.WalkFoot; - bool running = ( (dir & Direction.Running) != 0 ); + bool running = ( (dir & Direction.Running) != 0 ); bool onHorse = ( this.Mount != null ); diff --git a/Scripts/Mobiles/Vendors/BaseVendor.cs b/Scripts/Mobiles/Vendors/BaseVendor.cs index d1e5d1b37..68d0c3cac 100644 --- a/Scripts/Mobiles/Vendors/BaseVendor.cs +++ b/Scripts/Mobiles/Vendors/BaseVendor.cs @@ -66,7 +66,7 @@ namespace Server.Mobiles return TimeSpan.Zero; } - public virtual void OnSuccessfulBulkOrderRecieve( Mobile from ) + public virtual void OnSuccessfulBulkOrderReceive( Mobile from ) { } @@ -774,7 +774,7 @@ namespace Server.Mobiles Titles.AwardFame( from, fame, true ); - OnSuccessfulBulkOrderRecieve( from ); + OnSuccessfulBulkOrderReceive( from ); dropped.Delete(); return true; diff --git a/Scripts/Mobiles/Vendors/NPC/Blacksmith.cs b/Scripts/Mobiles/Vendors/NPC/Blacksmith.cs index 28e47c295..8417cd0a5 100644 --- a/Scripts/Mobiles/Vendors/NPC/Blacksmith.cs +++ b/Scripts/Mobiles/Vendors/NPC/Blacksmith.cs @@ -122,7 +122,7 @@ namespace Server.Mobiles return TimeSpan.Zero; } - public override void OnSuccessfulBulkOrderRecieve( Mobile from ) + public override void OnSuccessfulBulkOrderReceive( Mobile from ) { if( Core.SE && from is PlayerMobile ) ((PlayerMobile)from).NextSmithBulkOrder = TimeSpan.Zero; diff --git a/Scripts/Mobiles/Vendors/NPC/Tailor.cs b/Scripts/Mobiles/Vendors/NPC/Tailor.cs index 240da1e58..99b05aacb 100644 --- a/Scripts/Mobiles/Vendors/NPC/Tailor.cs +++ b/Scripts/Mobiles/Vendors/NPC/Tailor.cs @@ -71,7 +71,7 @@ namespace Server.Mobiles return TimeSpan.Zero; } - public override void OnSuccessfulBulkOrderRecieve( Mobile from ) + public override void OnSuccessfulBulkOrderReceive( Mobile from ) { if( Core.SE && from is PlayerMobile ) ((PlayerMobile)from).NextTailorBulkOrder = TimeSpan.Zero; diff --git a/Scripts/Mobiles/Vendors/NPC/Weaponsmith.cs b/Scripts/Mobiles/Vendors/NPC/Weaponsmith.cs index 3fc53224e..6f1ae0a09 100644 --- a/Scripts/Mobiles/Vendors/NPC/Weaponsmith.cs +++ b/Scripts/Mobiles/Vendors/NPC/Weaponsmith.cs @@ -89,7 +89,7 @@ namespace Server.Mobiles return TimeSpan.Zero; } - public override void OnSuccessfulBulkOrderRecieve( Mobile from ) + public override void OnSuccessfulBulkOrderReceive( Mobile from ) { if( Core.SE && from is PlayerMobile ) ((PlayerMobile)from).NextSmithBulkOrder = TimeSpan.Zero; diff --git a/Scripts/Mobiles/Vendors/NPC/Weaver.cs b/Scripts/Mobiles/Vendors/NPC/Weaver.cs index 09c66b5c7..68596a089 100644 --- a/Scripts/Mobiles/Vendors/NPC/Weaver.cs +++ b/Scripts/Mobiles/Vendors/NPC/Weaver.cs @@ -71,7 +71,7 @@ namespace Server.Mobiles return TimeSpan.Zero; } - public override void OnSuccessfulBulkOrderRecieve( Mobile from ) + public override void OnSuccessfulBulkOrderReceive( Mobile from ) { if( Core.SE && from is PlayerMobile ) ((PlayerMobile)from).NextTailorBulkOrder = TimeSpan.Zero; diff --git a/Scripts/Multis/HouseFoundation.cs b/Scripts/Multis/HouseFoundation.cs index f41b57de4..d17ee1a50 100644 --- a/Scripts/Multis/HouseFoundation.cs +++ b/Scripts/Multis/HouseFoundation.cs @@ -893,25 +893,32 @@ namespace Server.Multis int newPrice = oldPrice + CustomizationCost + ((DesignState.Components.List.Length - CurrentState.Components.List.Length) * 500); int cost = newPrice - oldPrice; - if( cost > 0 ) - { - if( Banker.Withdraw( from, cost ) ) - { - from.SendLocalizedMessage( 1060398, cost.ToString() ); // ~1_AMOUNT~ gold has been withdrawn from your bank box. - } - else - { - from.SendLocalizedMessage( 1061903 ); // You cannot commit this house design, because you do not have the necessary funds in your bank box to pay for the upgrade. Please back up your design, obtain the required funds, and commit your design again. - return; - } - } - else if( cost < 0 ) - { - if( Banker.Deposit( from, -cost ) ) - from.SendLocalizedMessage( 1060397, (-cost).ToString() ); // ~1_AMOUNT~ gold has been deposited into your bank box. - else - return; - } + if ( from.AccessLevel >= AccessLevel.GameMaster && cost != 0 ) + { + from.SendMessage( "{0} gold would have been {1} your bank if you were not a GM.", cost.ToString(), ((cost > 0 )? "withdrawn from" : "deposited into" ) ); + } + else + { + if ( cost > 0 ) + { + if ( Banker.Withdraw( from, cost ) ) + { + from.SendLocalizedMessage( 1060398, cost.ToString() ); // ~1_AMOUNT~ gold has been withdrawn from your bank box. + } + else + { + from.SendLocalizedMessage( 1061903 ); // You cannot commit this house design, because you do not have the necessary funds in your bank box to pay for the upgrade. Please back up your design, obtain the required funds, and commit your design again. + return; + } + } + else if ( cost < 0 ) + { + if ( Banker.Deposit( from, -cost ) ) + from.SendLocalizedMessage( 1060397, ( -cost ).ToString() ); // ~1_AMOUNT~ gold has been deposited into your bank box. + else + return; + } + } /* Client chose to commit current design state * - Commit design state diff --git a/Scripts/Multis/HousePlacementTool.cs b/Scripts/Multis/HousePlacementTool.cs index 54e2916f2..30b94c1c2 100644 --- a/Scripts/Multis/HousePlacementTool.cs +++ b/Scripts/Multis/HousePlacementTool.cs @@ -367,38 +367,45 @@ namespace Server.Items from.SendLocalizedMessage( 501271 ); // You already own a house, you may not place another! } else - { - BaseHouse house = ConstructHouse( from ); + { + BaseHouse house = ConstructHouse( from ); - if ( house == null ) - return; + if ( house == null ) + return; - house.Price = m_Cost; + house.Price = m_Cost; - if ( Banker.Withdraw( from, m_Cost ) ) - { - from.SendLocalizedMessage( 1060398, m_Cost.ToString() ); // ~1_AMOUNT~ gold has been withdrawn from your bank box. - } - else - { - house.RemoveKeys( from ); - house.Delete(); - from.SendLocalizedMessage( 1060646 ); // You do not have the funds available in your bank box to purchase this house. Try placing a smaller house, or adding gold or checks to your bank box. - return; - } + if ( from.AccessLevel >= AccessLevel.GameMaster ) + { + from.SendMessage( "{0} gold would have been withdrawn from your bank if you were not a GM.", m_Cost.ToString() ); + } + else + { + if ( Banker.Withdraw( from, m_Cost ) ) + { + from.SendLocalizedMessage( 1060398, m_Cost.ToString() ); // ~1_AMOUNT~ gold has been withdrawn from your bank box. + } + else + { + house.RemoveKeys( from ); + house.Delete(); + from.SendLocalizedMessage( 1060646 ); // You do not have the funds available in your bank box to purchase this house. Try placing a smaller house, or adding gold or checks to your bank box. + return; + } + } - house.MoveToWorld( center, from.Map ); + house.MoveToWorld( center, from.Map ); - for ( int i = 0; i < toMove.Count; ++i ) - { - object o = toMove[i]; + for ( int i = 0; i < toMove.Count; ++i ) + { + object o = toMove[i]; - if ( o is Mobile ) - ((Mobile)o).Location = house.BanLocation; - else if ( o is Item ) - ((Item)o).Location = house.BanLocation; - } - } + if ( o is Mobile ) + ( (Mobile)o ).Location = house.BanLocation; + else if ( o is Item ) + ( (Item)o ).Location = house.BanLocation; + } + } break; } diff --git a/Scripts/Regions/GuardedRegion.cs b/Scripts/Regions/GuardedRegion.cs index 42a77655b..5d773e208 100644 --- a/Scripts/Regions/GuardedRegion.cs +++ b/Scripts/Regions/GuardedRegion.cs @@ -374,4 +374,4 @@ namespace Server.Regions } } } -} \ No newline at end of file +} diff --git a/Scripts/Spells/Base/SpellRegistry.cs b/Scripts/Spells/Base/SpellRegistry.cs index 80fa2c532..541c43b32 100644 --- a/Scripts/Spells/Base/SpellRegistry.cs +++ b/Scripts/Spells/Base/SpellRegistry.cs @@ -147,7 +147,7 @@ namespace Server.Spells "Chivalry", "Bushido", "Ninjitsu", - "SpellWeaving" + "Spellweaving" }; public static Spell NewSpell( string name, Mobile caster, Item scroll ) diff --git a/Server/EventSink.cs b/Server/EventSink.cs index a40312116..fd234f3e7 100644 --- a/Server/EventSink.cs +++ b/Server/EventSink.cs @@ -72,9 +72,9 @@ namespace Server public delegate BaseGuild CreateGuildHandler( CreateGuildEventArgs e ); public delegate void GuildGumpRequestHandler( GuildGumpRequestArgs e ); public delegate void QuestGumpRequestHandler( QuestGumpRequestArgs e ); - public delegate void ClientVersionRecievedHandler( ClientVersionRecievedArgs e ); + public delegate void ClientVersionReceivedHandler( ClientVersionReceivedArgs e ); - public class ClientVersionRecievedArgs : EventArgs + public class ClientVersionReceivedArgs : EventArgs { private NetState m_State; private ClientVersion m_Version; @@ -82,7 +82,7 @@ namespace Server public NetState State { get { return m_State; } } public ClientVersion Version { get { return m_Version; } } - public ClientVersionRecievedArgs( NetState state, ClientVersion cv ) + public ClientVersionReceivedArgs( NetState state, ClientVersion cv ) { m_State = state; m_Version = cv; @@ -832,12 +832,12 @@ namespace Server public static event ServerStartedEventHandler ServerStarted; public static event GuildGumpRequestHandler GuildGumpRequest; public static event QuestGumpRequestHandler QuestGumpRequest; - public static event ClientVersionRecievedHandler ClientVersionRecieved; + public static event ClientVersionReceivedHandler ClientVersionReceived; - public static void InvokeClientVersionRecieved( ClientVersionRecievedArgs e ) + public static void InvokeClientVersionReceived( ClientVersionReceivedArgs e ) { - if( ClientVersionRecieved != null ) - ClientVersionRecieved( e ); + if( ClientVersionReceived != null ) + ClientVersionReceived( e ); } public static void InvokeServerStarted() diff --git a/Server/Main.cs b/Server/Main.cs index 1b271d0ab..b1976c224 100644 --- a/Server/Main.cs +++ b/Server/Main.cs @@ -346,6 +346,8 @@ namespace Server if( SocketPool.Created ) SocketPool.Destroy(); + Timer.Set(); + Console.WriteLine( "done" ); } diff --git a/Server/Network/NetState.cs b/Server/Network/NetState.cs index 7af475e24..c3a897e25 100644 --- a/Server/Network/NetState.cs +++ b/Server/Network/NetState.cs @@ -512,7 +512,8 @@ namespace Server.Network { private static BufferPool m_ReceiveBufferPool = new BufferPool( "Receive", 2048, 2048 ); - public NetState( Socket socket, MessagePump messagePump ) { + public NetState( Socket socket, MessagePump messagePump ) + { m_Socket = socket; m_Buffer = new ByteQueue(); m_Seeded = false; @@ -541,7 +542,8 @@ namespace Server.Network { m_ConnectedOn = DateTime.Now; - if ( m_CreatedCallback != null ) { + if ( m_CreatedCallback != null ) + { m_CreatedCallback( this ); } } diff --git a/Server/Network/PacketHandlers.cs b/Server/Network/PacketHandlers.cs index 1d5cbe183..7cc53b7f4 100644 --- a/Server/Network/PacketHandlers.cs +++ b/Server/Network/PacketHandlers.cs @@ -1811,7 +1811,7 @@ namespace Server.Network { CV version = state.Version = new CV( pvSrc.ReadString() ); - EventSink.InvokeClientVersionRecieved( new ClientVersionRecievedArgs( state, version ) ); + EventSink.InvokeClientVersionReceived( new ClientVersionReceivedArgs( state, version ) ); } public static void MobileQuery( NetState state, PacketReader pvSrc ) diff --git a/Server/Timer.cs b/Server/Timer.cs index d96704480..539da9894 100644 --- a/Server/Timer.cs +++ b/Server/Timer.cs @@ -317,6 +317,7 @@ namespace Server } private static AutoResetEvent m_Signal = new AutoResetEvent( true ); + public static void Set() { m_Signal.Set(); } public void TimerMain() { @@ -324,10 +325,8 @@ namespace Server int i, j; bool loaded; - while ( !Core.Closing ) + while ( m_Signal.WaitOne( 10, false ) && !Core.Closing ) { - m_Signal.WaitOne( 10, false ); - ProcessChangeQueue(); loaded = false;