Partial Branch Sync

This commit is contained in:
mark 2007-08-27 08:49:15 +00:00
parent 4718a4b911
commit 1ef98f10ec
32 changed files with 166 additions and 102 deletions

View file

@ -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 )

View file

@ -48,7 +48,7 @@ namespace Server.Misc
{
++count;
if ( count > MaxAddresses )
if ( count >= MaxAddresses )
return false;
}
}

View file

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

View file

@ -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

View file

@ -5,7 +5,7 @@ using System.Collections;
using Server.Accounting;
using Server.Network;
namespace Server.Admin
namespace Server.RemoteAdmin
{
public class AdminNetwork
{

View file

@ -6,7 +6,7 @@ using Server.Accounting;
using Server.Items;
using Server.Mobiles;
namespace Server.Admin
namespace Server.RemoteAdmin
{
public class RemoteAdminHandlers
{

View file

@ -6,7 +6,7 @@ using Server.Network;
using Server.Accounting;
using Server.Commands;
namespace Server.Admin
namespace Server.RemoteAdmin
{
public enum LoginResponse : byte
{

View file

@ -418,4 +418,4 @@ namespace Server.Engines.Reports
return report;
}
}
}
}

View file

@ -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)" );

View file

@ -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 )
{
}

View file

@ -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 )

View file

@ -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; } }// <center>Soulstone Fragment</center>
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()

View file

@ -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;

View file

@ -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 );
}

View file

@ -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() );

View file

@ -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";

View file

@ -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 );

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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

View file

@ -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;
}

View file

@ -374,4 +374,4 @@ namespace Server.Regions
}
}
}
}
}

View file

@ -147,7 +147,7 @@ namespace Server.Spells
"Chivalry",
"Bushido",
"Ninjitsu",
"SpellWeaving"
"Spellweaving"
};
public static Spell NewSpell( string name, Mobile caster, Item scroll )