This commit is contained in:
parent
e41632fe95
commit
9c5abc3b0d
48 changed files with 261 additions and 70 deletions
|
|
@ -1,5 +1,6 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Server.Engines.Craft
|
||||
{
|
||||
|
|
@ -12,14 +13,14 @@ namespace Server.Engines.Craft
|
|||
|
||||
public class CraftContext
|
||||
{
|
||||
private ArrayList m_Items;
|
||||
private List<CraftItem> m_Items;
|
||||
private int m_LastResourceIndex;
|
||||
private int m_LastResourceIndex2;
|
||||
private int m_LastGroupIndex;
|
||||
private bool m_DoNotColor;
|
||||
private CraftMarkOption m_MarkOption;
|
||||
|
||||
public ArrayList Items{ get{ return m_Items; } }
|
||||
public List<CraftItem> Items { get { return m_Items; } }
|
||||
public int LastResourceIndex{ get{ return m_LastResourceIndex; } set{ m_LastResourceIndex = value; } }
|
||||
public int LastResourceIndex2{ get{ return m_LastResourceIndex2; } set{ m_LastResourceIndex2 = value; } }
|
||||
public int LastGroupIndex{ get{ return m_LastGroupIndex; } set{ m_LastGroupIndex = value; } }
|
||||
|
|
@ -28,7 +29,7 @@ namespace Server.Engines.Craft
|
|||
|
||||
public CraftContext()
|
||||
{
|
||||
m_Items = new ArrayList();
|
||||
m_Items = new List<CraftItem>();
|
||||
m_LastResourceIndex = -1;
|
||||
m_LastResourceIndex2 = -1;
|
||||
m_LastGroupIndex = -1;
|
||||
|
|
@ -39,7 +40,7 @@ namespace Server.Engines.Craft
|
|||
get
|
||||
{
|
||||
if ( m_Items.Count > 0 )
|
||||
return (CraftItem)m_Items[0];
|
||||
return m_Items[0];
|
||||
|
||||
return null;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -188,14 +188,14 @@ namespace Server.Engines.Craft
|
|||
CreateGroupList();
|
||||
|
||||
if ( page == CraftPage.PickResource )
|
||||
CreateResList( false );
|
||||
CreateResList( false, from );
|
||||
else if ( page == CraftPage.PickResource2 )
|
||||
CreateResList( true );
|
||||
CreateResList( true, from );
|
||||
else if ( context != null && context.LastGroupIndex > -1 )
|
||||
CreateItemList( context.LastGroupIndex );
|
||||
}
|
||||
|
||||
public void CreateResList( bool opt )
|
||||
public void CreateResList( bool opt, Mobile from )
|
||||
{
|
||||
CraftSubResCol res = ( opt ? m_CraftSystem.CraftSubRes2 : m_CraftSystem.CraftSubRes );
|
||||
|
||||
|
|
@ -221,12 +221,22 @@ namespace Server.Engines.Craft
|
|||
AddHtmlLocalized( 255, 263, 200, 18, (context == null || !context.DoNotColor) ? 1061591 : 1061590, LabelColor, false, false );
|
||||
}
|
||||
|
||||
int resourceCount = 0;
|
||||
|
||||
if ( from.Backpack != null )
|
||||
{
|
||||
Item[] items = from.Backpack.FindItemsByType( subResource.ItemType, true );
|
||||
|
||||
for ( int j = 0; j < items.Length; ++j )
|
||||
resourceCount += items[j].Amount;
|
||||
}
|
||||
|
||||
AddButton( 220, 60 + (index * 20), 4005, 4007, GetButtonID( 5, i ), GumpButtonType.Reply, 0 );
|
||||
|
||||
if ( subResource.NameNumber > 0 )
|
||||
AddHtmlLocalized( 255, 63 + (index * 20), 250, 18, subResource.NameNumber, LabelColor, false, false );
|
||||
AddHtmlLocalized( 255, 63 + (index * 20), 250, 18, subResource.NameNumber, resourceCount.ToString(), LabelColor, false, false );
|
||||
else
|
||||
AddLabel( 255, 60 + (index * 20), LabelHue, subResource.NameString );
|
||||
AddLabel( 255, 60 + ( index * 20 ), LabelHue, String.Format( "{0} ({1})", subResource.NameString, resourceCount ) );
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -237,7 +247,7 @@ namespace Server.Engines.Craft
|
|||
if ( context == null )
|
||||
return;
|
||||
|
||||
ArrayList items = context.Items;
|
||||
List<CraftItem> items = context.Items;
|
||||
|
||||
if ( items.Count > 0 )
|
||||
{
|
||||
|
|
@ -245,7 +255,7 @@ namespace Server.Engines.Craft
|
|||
{
|
||||
int index = i % 10;
|
||||
|
||||
CraftItem craftItem = (CraftItem)items[i];
|
||||
CraftItem craftItem = items[i];
|
||||
|
||||
if ( index == 0 )
|
||||
{
|
||||
|
|
@ -449,10 +459,10 @@ namespace Server.Engines.Craft
|
|||
if ( context == null )
|
||||
break;
|
||||
|
||||
ArrayList lastTen = context.Items;
|
||||
List<CraftItem> lastTen = context.Items;
|
||||
|
||||
if ( index >= 0 && index < lastTen.Count )
|
||||
CraftItem( (CraftItem)lastTen[index] );
|
||||
CraftItem( lastTen[index] );
|
||||
|
||||
break;
|
||||
}
|
||||
|
|
@ -461,10 +471,10 @@ namespace Server.Engines.Craft
|
|||
if ( context == null )
|
||||
break;
|
||||
|
||||
ArrayList lastTen = context.Items;
|
||||
List<CraftItem> lastTen = context.Items;
|
||||
|
||||
if ( index >= 0 && index < lastTen.Count )
|
||||
m_From.SendGump( new CraftGumpItem( m_From, system, (CraftItem)lastTen[index], m_Tool ) );
|
||||
m_From.SendGump( new CraftGumpItem( m_From, system, lastTen[index], m_Tool ) );
|
||||
|
||||
break;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -709,7 +709,7 @@ namespace Server.Mobiles
|
|||
|
||||
private class WarnTimer : Timer
|
||||
{
|
||||
private ArrayList m_List;
|
||||
private List<WarnEntry> m_List;
|
||||
|
||||
private class WarnEntry
|
||||
{
|
||||
|
|
@ -727,7 +727,7 @@ namespace Server.Mobiles
|
|||
|
||||
public WarnTimer() : base( TimeSpan.FromSeconds( 1.0 ) )
|
||||
{
|
||||
m_List = new ArrayList();
|
||||
m_List = new List<WarnEntry>();
|
||||
Start();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ namespace Server.Items
|
|||
public interface ICommodity
|
||||
{
|
||||
string Description{ get; }
|
||||
int DescriptionNumber{ get; }
|
||||
}
|
||||
|
||||
public class CommodityDeed : Item
|
||||
|
|
@ -100,7 +101,7 @@ namespace Server.Items
|
|||
base.GetProperties( list );
|
||||
|
||||
if ( m_Commodity != null )
|
||||
list.Add( 1060658, "#{0}\t{1}", m_Commodity.LabelNumber, m_Commodity.Amount ); // ~1_val~: ~2_val~
|
||||
list.Add( 1060658, "#{0}\t{1}", ((ICommodity)m_Commodity).DescriptionNumber, m_Commodity.Amount ); // ~1_val~: ~2_val~
|
||||
}
|
||||
|
||||
public override void OnSingleClick( Mobile from )
|
||||
|
|
|
|||
|
|
@ -79,8 +79,8 @@ namespace Server.Items
|
|||
{
|
||||
string filePath = Path.Combine( Core.BaseDirectory, "Data/treasure.cfg" );
|
||||
|
||||
ArrayList list = new ArrayList();
|
||||
ArrayList havenList = new ArrayList();
|
||||
List<Point2D> list = new List<Point2D>();
|
||||
List<Point2D> havenList = new List<Point2D>();
|
||||
|
||||
if ( File.Exists( filePath ) )
|
||||
{
|
||||
|
|
@ -109,8 +109,8 @@ namespace Server.Items
|
|||
}
|
||||
}
|
||||
|
||||
m_Locations = (Point2D[])list.ToArray( typeof( Point2D ) );
|
||||
m_HavenLocations = (Point2D[])havenList.ToArray( typeof( Point2D ) );
|
||||
m_Locations = list.ToArray();
|
||||
m_HavenLocations = havenList.ToArray();
|
||||
}
|
||||
|
||||
public static bool IsInHavenIsland( IPoint2D loc )
|
||||
|
|
|
|||
|
|
@ -371,7 +371,7 @@ namespace Server.Items
|
|||
m_PostedHue = m_Poster.Hue;
|
||||
m_Lines = lines;
|
||||
|
||||
ArrayList list = new ArrayList();
|
||||
List<BulletinEquip> list = new List<BulletinEquip>();
|
||||
|
||||
for ( int i = 0; i < poster.Items.Count; ++i )
|
||||
{
|
||||
|
|
@ -381,7 +381,7 @@ namespace Server.Items
|
|||
list.Add( new BulletinEquip( item.ItemID, item.Hue ) );
|
||||
}
|
||||
|
||||
m_PostedEquip = (BulletinEquip[])list.ToArray( typeof( BulletinEquip ) );
|
||||
m_PostedEquip = list.ToArray();
|
||||
}
|
||||
|
||||
public Mobile Poster{ get{ return m_Poster; } }
|
||||
|
|
|
|||
|
|
@ -140,7 +140,7 @@ namespace Server.Items
|
|||
Mobile from = e.Mobile;
|
||||
string speech = e.Speech;
|
||||
|
||||
foreach ( ReceiverCrystal receiver in new ArrayList( Receivers ) )
|
||||
foreach ( ReceiverCrystal receiver in new List<ReceiverCrystal>( Receivers ) )
|
||||
{
|
||||
if ( receiver.Deleted )
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,12 +1,13 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using Server;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class EffectItem : Item
|
||||
{
|
||||
private static ArrayList m_Free = new ArrayList(); // List of available EffectItems
|
||||
private static List<EffectItem> m_Free = new List<EffectItem>(); // List of available EffectItems
|
||||
|
||||
public static readonly TimeSpan DefaultDuration = TimeSpan.FromSeconds( 5.0 );
|
||||
|
||||
|
|
@ -16,7 +17,7 @@ namespace Server.Items
|
|||
|
||||
for ( int i = m_Free.Count - 1; item == null && i >= 0; --i ) // We reuse new entries first so decay works better
|
||||
{
|
||||
EffectItem free = (EffectItem)m_Free[i];
|
||||
EffectItem free = m_Free[i];
|
||||
|
||||
m_Free.RemoveAt( i );
|
||||
|
||||
|
|
@ -75,9 +76,9 @@ namespace Server.Items
|
|||
|
||||
private class FreeTimer : Timer
|
||||
{
|
||||
private Item m_Item;
|
||||
private EffectItem m_Item;
|
||||
|
||||
public FreeTimer( Item item, TimeSpan delay ) : base( delay )
|
||||
public FreeTimer( EffectItem item, TimeSpan delay ) : base( delay )
|
||||
{
|
||||
m_Item = item;
|
||||
Priority = TimerPriority.OneSecond;
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ using Server;
|
|||
using Server.Mobiles;
|
||||
using Server.Spells;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
|
|
@ -115,7 +116,7 @@ namespace Server.Items
|
|||
if( !Drying && age > (m_Duration - age) )
|
||||
Drying = true;
|
||||
|
||||
ArrayList toDamage = new ArrayList();
|
||||
List<Mobile> toDamage = new List<Mobile>();
|
||||
|
||||
foreach( Mobile m in GetMobilesInRange( 0 ) )
|
||||
{
|
||||
|
|
@ -128,7 +129,7 @@ namespace Server.Items
|
|||
}
|
||||
|
||||
for( int i = 0; i < toDamage.Count; i++ )
|
||||
Damage( (Mobile)toDamage[i] );
|
||||
Damage( toDamage[i] );
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,6 +12,8 @@ namespace Server.Items
|
|||
}
|
||||
}
|
||||
|
||||
int ICommodity.DescriptionNumber { get { return LabelNumber; } }
|
||||
|
||||
public override double DefaultWeight
|
||||
{
|
||||
get { return 0.1; }
|
||||
|
|
|
|||
|
|
@ -12,6 +12,8 @@ namespace Server.Items
|
|||
}
|
||||
}
|
||||
|
||||
int ICommodity.DescriptionNumber { get { return LabelNumber; } }
|
||||
|
||||
public override double DefaultWeight
|
||||
{
|
||||
get { return 0.1; }
|
||||
|
|
|
|||
|
|
@ -13,6 +13,8 @@ namespace Server.Items
|
|||
}
|
||||
}
|
||||
|
||||
int ICommodity.DescriptionNumber { get { return LabelNumber; } }
|
||||
|
||||
public override double DefaultWeight
|
||||
{
|
||||
get { return 0.1; }
|
||||
|
|
|
|||
|
|
@ -13,6 +13,8 @@ namespace Server.Items
|
|||
}
|
||||
}
|
||||
|
||||
int ICommodity.DescriptionNumber { get { return LabelNumber; } }
|
||||
|
||||
public override double DefaultWeight
|
||||
{
|
||||
get { return 0.1; }
|
||||
|
|
|
|||
|
|
@ -28,6 +28,8 @@ namespace Server.Items
|
|||
}
|
||||
}
|
||||
|
||||
int ICommodity.DescriptionNumber { get { return LabelNumber; } }
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
|
|
|||
|
|
@ -25,6 +25,8 @@ namespace Server.Items
|
|||
}
|
||||
}
|
||||
|
||||
int ICommodity.DescriptionNumber { get { return LabelNumber; } }
|
||||
|
||||
public abstract BaseIngot GetIngot();
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
|
|
|
|||
|
|
@ -30,6 +30,8 @@ namespace Server.Items
|
|||
}
|
||||
}
|
||||
|
||||
int ICommodity.DescriptionNumber { get { return LabelNumber; } }
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ using Server.Network;
|
|||
|
||||
namespace Server.Items
|
||||
{
|
||||
public abstract class BaseGranite : Item, ICommodity
|
||||
public abstract class BaseGranite : Item
|
||||
{
|
||||
private CraftResource m_Resource;
|
||||
|
||||
|
|
@ -14,14 +14,6 @@ namespace Server.Items
|
|||
get{ return m_Resource; }
|
||||
set{ m_Resource = value; InvalidateProperties(); }
|
||||
}
|
||||
|
||||
string ICommodity.Description
|
||||
{
|
||||
get
|
||||
{
|
||||
return String.Format( "{0} {1} high quality granite", Amount, CraftResources.GetName( m_Resource ).ToLower() );
|
||||
}
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
|
|
|
|||
|
|
@ -14,6 +14,8 @@ namespace Server.Items
|
|||
}
|
||||
}
|
||||
|
||||
int ICommodity.DescriptionNumber { get { return LabelNumber; } }
|
||||
|
||||
[Constructable]
|
||||
public BatWing() : this( 1 )
|
||||
{
|
||||
|
|
|
|||
|
|
@ -14,6 +14,8 @@ namespace Server.Items
|
|||
}
|
||||
}
|
||||
|
||||
int ICommodity.DescriptionNumber { get { return LabelNumber; } }
|
||||
|
||||
[Constructable]
|
||||
public BlackPearl() : this( 1 )
|
||||
{
|
||||
|
|
|
|||
|
|
@ -14,6 +14,8 @@ namespace Server.Items
|
|||
}
|
||||
}
|
||||
|
||||
int ICommodity.DescriptionNumber { get { return LabelNumber; } }
|
||||
|
||||
[Constructable]
|
||||
public Bloodmoss() : this( 1 )
|
||||
{
|
||||
|
|
|
|||
|
|
@ -14,6 +14,8 @@ namespace Server.Items
|
|||
}
|
||||
}
|
||||
|
||||
int ICommodity.DescriptionNumber { get { return LabelNumber; } }
|
||||
|
||||
[Constructable]
|
||||
public DaemonBlood() : this( 1 )
|
||||
{
|
||||
|
|
|
|||
|
|
@ -14,6 +14,8 @@ namespace Server.Items
|
|||
}
|
||||
}
|
||||
|
||||
int ICommodity.DescriptionNumber { get { return LabelNumber; } }
|
||||
|
||||
[Constructable]
|
||||
public DeadWood() : this( 1 )
|
||||
{
|
||||
|
|
|
|||
|
|
@ -14,6 +14,8 @@ namespace Server.Items
|
|||
}
|
||||
}
|
||||
|
||||
int ICommodity.DescriptionNumber { get { return LabelNumber; } }
|
||||
|
||||
[Constructable]
|
||||
public Garlic() : this( 1 )
|
||||
{
|
||||
|
|
|
|||
|
|
@ -15,6 +15,8 @@ namespace Server.Items
|
|||
}
|
||||
}
|
||||
|
||||
int ICommodity.DescriptionNumber { get { return LabelNumber; } }
|
||||
|
||||
[Constructable]
|
||||
public Ginseng() : this( 1 )
|
||||
{
|
||||
|
|
|
|||
|
|
@ -14,6 +14,8 @@ namespace Server.Items
|
|||
}
|
||||
}
|
||||
|
||||
int ICommodity.DescriptionNumber { get { return LabelNumber; } }
|
||||
|
||||
[Constructable]
|
||||
public GraveDust() : this( 1 )
|
||||
{
|
||||
|
|
|
|||
|
|
@ -14,6 +14,8 @@ namespace Server.Items
|
|||
}
|
||||
}
|
||||
|
||||
int ICommodity.DescriptionNumber { get { return LabelNumber; } }
|
||||
|
||||
[Constructable]
|
||||
public MandrakeRoot() : this( 1 )
|
||||
{
|
||||
|
|
|
|||
|
|
@ -14,6 +14,8 @@ namespace Server.Items
|
|||
}
|
||||
}
|
||||
|
||||
int ICommodity.DescriptionNumber { get { return LabelNumber; } }
|
||||
|
||||
[Constructable]
|
||||
public Nightshade() : this( 1 )
|
||||
{
|
||||
|
|
|
|||
|
|
@ -14,6 +14,8 @@ namespace Server.Items
|
|||
}
|
||||
}
|
||||
|
||||
int ICommodity.DescriptionNumber { get { return LabelNumber; } }
|
||||
|
||||
[Constructable]
|
||||
public NoxCrystal() : this( 1 )
|
||||
{
|
||||
|
|
|
|||
|
|
@ -14,6 +14,8 @@ namespace Server.Items
|
|||
}
|
||||
}
|
||||
|
||||
int ICommodity.DescriptionNumber { get { return LabelNumber; } }
|
||||
|
||||
[Constructable]
|
||||
public PigIron() : this( 1 )
|
||||
{
|
||||
|
|
|
|||
|
|
@ -14,6 +14,8 @@ namespace Server.Items
|
|||
}
|
||||
}
|
||||
|
||||
int ICommodity.DescriptionNumber { get { return LabelNumber; } }
|
||||
|
||||
[Constructable]
|
||||
public SpidersSilk() : this( 1 )
|
||||
{
|
||||
|
|
|
|||
|
|
@ -14,6 +14,8 @@ namespace Server.Items
|
|||
}
|
||||
}
|
||||
|
||||
int ICommodity.DescriptionNumber { get { return LabelNumber; } }
|
||||
|
||||
[Constructable]
|
||||
public SulfurousAsh() : this( 1 )
|
||||
{
|
||||
|
|
|
|||
|
|
@ -15,6 +15,8 @@ namespace Server.Items
|
|||
}
|
||||
}
|
||||
|
||||
int ICommodity.DescriptionNumber { get { return LabelNumber; } }
|
||||
|
||||
[Constructable]
|
||||
public BoltOfCloth() : this( 1 )
|
||||
{
|
||||
|
|
|
|||
|
|
@ -13,6 +13,8 @@ namespace Server.Items
|
|||
}
|
||||
}
|
||||
|
||||
int ICommodity.DescriptionNumber { get { return LabelNumber; } }
|
||||
|
||||
[Constructable]
|
||||
public Bone() : this( 1 )
|
||||
{
|
||||
|
|
|
|||
|
|
@ -15,6 +15,8 @@ namespace Server.Items
|
|||
}
|
||||
}
|
||||
|
||||
int ICommodity.DescriptionNumber { get { return LabelNumber; } }
|
||||
|
||||
public override double DefaultWeight
|
||||
{
|
||||
get { return 0.1; }
|
||||
|
|
|
|||
|
|
@ -23,6 +23,8 @@ namespace Server.Items
|
|||
}
|
||||
}
|
||||
|
||||
int ICommodity.DescriptionNumber { get { return LabelNumber; } }
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
|
|
|||
|
|
@ -23,6 +23,8 @@ namespace Server.Items
|
|||
}
|
||||
}
|
||||
|
||||
int ICommodity.DescriptionNumber { get { return LabelNumber; } }
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
|
|
|||
|
|
@ -15,6 +15,8 @@ namespace Server.Items
|
|||
}
|
||||
}
|
||||
|
||||
int ICommodity.DescriptionNumber { get { return LabelNumber; } }
|
||||
|
||||
public override double DefaultWeight
|
||||
{
|
||||
get { return 0.1; }
|
||||
|
|
|
|||
|
|
@ -22,6 +22,24 @@ namespace Server.Items
|
|||
}
|
||||
}
|
||||
|
||||
int ICommodity.DescriptionNumber
|
||||
{
|
||||
get
|
||||
{
|
||||
if ( m_Resource >= CraftResource.OakWood && m_Resource <= CraftResource.YewWood )
|
||||
return 1075052 + ( (int)m_Resource - (int)CraftResource.OakWood );
|
||||
|
||||
switch ( m_Resource )
|
||||
{
|
||||
case CraftResource.Bloodwood: return 1075055;
|
||||
case CraftResource.Frostwood: return 1075056;
|
||||
case CraftResource.Heartwood: return 1075062; //WHY Osi. Why?
|
||||
}
|
||||
|
||||
return LabelNumber;
|
||||
}
|
||||
}
|
||||
|
||||
[Constructable]
|
||||
public Board()
|
||||
: this( 1 )
|
||||
|
|
@ -49,7 +67,6 @@ namespace Server.Items
|
|||
: base( 0x1BD7 )
|
||||
{
|
||||
Stackable = true;
|
||||
Weight = 2.0;
|
||||
Amount = amount;
|
||||
|
||||
m_Resource = resource;
|
||||
|
|
@ -77,7 +94,7 @@ namespace Server.Items
|
|||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 2 );
|
||||
writer.Write( (int) 3 );
|
||||
|
||||
writer.Write( (int)m_Resource );
|
||||
}
|
||||
|
|
@ -90,6 +107,7 @@ namespace Server.Items
|
|||
|
||||
switch ( version )
|
||||
{
|
||||
case 3:
|
||||
case 2:
|
||||
{
|
||||
m_Resource = (CraftResource)reader.ReadInt();
|
||||
|
|
@ -97,7 +115,7 @@ namespace Server.Items
|
|||
}
|
||||
}
|
||||
|
||||
if ( version == 0 && Weight == 0.1 )
|
||||
if ( (version == 0 && Weight == 0.1) || ( version <= 2 && Weight == 2 ) )
|
||||
Weight = -1;
|
||||
|
||||
if ( version <= 1 )
|
||||
|
|
|
|||
|
|
@ -23,6 +23,8 @@ namespace Server.Items
|
|||
}
|
||||
}
|
||||
|
||||
int ICommodity.DescriptionNumber { get { return CraftResources.IsStandard( m_Resource ) ? LabelNumber : 1075062 + ( (int)m_Resource - (int)CraftResource.RegularWood ); } }
|
||||
|
||||
[Constructable]
|
||||
public Log() : this( 1 )
|
||||
{
|
||||
|
|
@ -107,7 +109,8 @@ namespace Server.Items
|
|||
}
|
||||
|
||||
[Constructable]
|
||||
public HeartwoodLog( int amount ) : base( CraftResource.Heartwood, amount )
|
||||
public HeartwoodLog( int amount )
|
||||
: base( CraftResource.Heartwood, amount )
|
||||
{
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -14,6 +14,8 @@ namespace Server.Items
|
|||
}
|
||||
}
|
||||
|
||||
int ICommodity.DescriptionNumber { get { return LabelNumber; } }
|
||||
|
||||
public override int LabelNumber{ get{ return 1044626; } } // sand
|
||||
|
||||
[Constructable]
|
||||
|
|
|
|||
|
|
@ -7,6 +7,10 @@ namespace Server.Items
|
|||
[Constructable]
|
||||
public FireColumnTrap() : base( 0x1B71 )
|
||||
{
|
||||
m_MinDamage = 10;
|
||||
m_MaxDamage = 40;
|
||||
|
||||
m_WarningFlame = true;
|
||||
}
|
||||
|
||||
public override bool PassivelyTriggered{ get{ return true; } }
|
||||
|
|
@ -14,16 +18,54 @@ namespace Server.Items
|
|||
public override int PassiveTriggerRange{ get{ return 3; } }
|
||||
public override TimeSpan ResetDelay{ get{ return TimeSpan.FromSeconds( 0.5 ); } }
|
||||
|
||||
private int m_MinDamage;
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public virtual int MinDamage
|
||||
{
|
||||
get { return m_MinDamage; }
|
||||
set { m_MinDamage = value; }
|
||||
}
|
||||
|
||||
private int m_MaxDamage;
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public virtual int MaxDamage
|
||||
{
|
||||
get { return m_MaxDamage; }
|
||||
set { m_MaxDamage = value; }
|
||||
}
|
||||
|
||||
private bool m_WarningFlame;
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public virtual bool WarningFlame
|
||||
{
|
||||
get { return m_WarningFlame; }
|
||||
set { m_WarningFlame = value; }
|
||||
}
|
||||
|
||||
public override void OnTrigger( Mobile from )
|
||||
{
|
||||
if ( from.AccessLevel > AccessLevel.Player )
|
||||
return;
|
||||
|
||||
Effects.SendLocationParticles( EffectItem.Create( Location, Map, EffectItem.DefaultDuration ), 0x3709, 10, 30, 5052 );
|
||||
Effects.PlaySound( Location, Map, 0x225 );
|
||||
if ( WarningFlame )
|
||||
DoEffect();
|
||||
|
||||
if ( from.Alive && CheckRange( from.Location, 0 ) )
|
||||
Spells.SpellHelper.Damage( TimeSpan.FromSeconds( 0.5 ), from, from, Utility.RandomMinMax( 10, 40 ), 0, 100, 0, 0, 0 );
|
||||
{
|
||||
Spells.SpellHelper.Damage( TimeSpan.FromSeconds( 0.5 ), from, from, Utility.RandomMinMax( MinDamage, MaxDamage ), 0, 100, 0, 0, 0 );
|
||||
|
||||
if ( !WarningFlame )
|
||||
DoEffect();
|
||||
}
|
||||
}
|
||||
|
||||
private void DoEffect()
|
||||
{
|
||||
Effects.SendLocationParticles( EffectItem.Create( Location, Map, EffectItem.DefaultDuration ), 0x3709, 10, 30, 5052 );
|
||||
Effects.PlaySound( Location, Map, 0x225 );
|
||||
}
|
||||
|
||||
public FireColumnTrap( Serial serial ) : base( serial )
|
||||
|
|
@ -34,7 +76,11 @@ namespace Server.Items
|
|||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
writer.Write( (int) 1 ); // version
|
||||
|
||||
writer.Write( m_WarningFlame );
|
||||
writer.Write( m_MinDamage );
|
||||
writer.Write( m_MaxDamage );
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
|
|
@ -42,6 +88,24 @@ namespace Server.Items
|
|||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
|
||||
switch ( version )
|
||||
{
|
||||
case 1:
|
||||
{
|
||||
m_WarningFlame = reader.ReadBool();
|
||||
m_MinDamage = reader.ReadInt();
|
||||
m_MaxDamage = reader.ReadInt();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if ( version == 0 )
|
||||
{
|
||||
m_WarningFlame = true;
|
||||
m_MinDamage = 10;
|
||||
m_MaxDamage = 40;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -108,7 +108,9 @@ namespace Server.Misc
|
|||
if( map != null && (map.Rules & MapRules.HarmfulRestrictions) == 0 )
|
||||
return true; // In felucca, anything goes
|
||||
|
||||
if( !from.Player && !(from is BaseCreature && (((BaseCreature)from).Controlled || ((BaseCreature)from).Summoned)) )
|
||||
BaseCreature bc = from as BaseCreature;
|
||||
|
||||
if( !from.Player && !(bc != null && bc.GetMaster() != null && bc.GetMaster().AccessLevel == AccessLevel.Player ) )
|
||||
{
|
||||
if( !CheckAggressor( from.Aggressors, target ) && !CheckAggressed( from.Aggressed, target ) && target is PlayerMobile && ((PlayerMobile)target).CheckYoungProtection( from ) )
|
||||
return false;
|
||||
|
|
@ -273,6 +275,11 @@ namespace Server.Misc
|
|||
{
|
||||
BaseCreature bc = (BaseCreature)target;
|
||||
|
||||
Mobile master = bc.GetMaster();
|
||||
|
||||
if ( master != null && master.AccessLevel > AccessLevel.Player )
|
||||
return Notoriety.CanBeAttacked;
|
||||
|
||||
if( !bc.Summoned && !bc.Controlled && ((PlayerMobile)source).EnemyOfOneType == target.GetType() )
|
||||
return Notoriety.Enemy;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -66,8 +66,8 @@ namespace Server.Misc
|
|||
|
||||
IPEndPoint ipep = (IPEndPoint)s.LocalEndPoint;
|
||||
|
||||
IPAddress localAddress = ipep.Address;
|
||||
int localPort = ipep.Port;
|
||||
IPAddress localAddress = ipep.Address;
|
||||
int localPort = ipep.Port;
|
||||
|
||||
if ( IsPrivateNetwork( localAddress ) ) {
|
||||
ipep = (IPEndPoint)s.RemoteEndPoint;
|
||||
|
|
@ -88,7 +88,7 @@ namespace Server.Misc
|
|||
if ( !HasPublicIPAddress() ) {
|
||||
Console.Write( "ServerList: Auto-detecting public IP address..." );
|
||||
m_PublicAddress = FindPublicAddress();
|
||||
|
||||
|
||||
if ( m_PublicAddress != null )
|
||||
Console.WriteLine( "done ({0})", m_PublicAddress.ToString() );
|
||||
else
|
||||
|
|
@ -118,8 +118,10 @@ namespace Server.Misc
|
|||
IPAddress[] ips = iphe.AddressList;
|
||||
|
||||
for ( int i = 0; i < ips.Length; ++i )
|
||||
if ( !IsPrivateNetwork( ips[i] ) )
|
||||
{
|
||||
if ( ips[i].AddressFamily != AddressFamily.InterNetworkV6 && !IsPrivateNetwork( ips[i] ) )
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
|
@ -130,6 +132,9 @@ namespace Server.Misc
|
|||
// 172.16.0.0/12
|
||||
// 192.168.0.0/16
|
||||
|
||||
if ( ip.AddressFamily == AddressFamily.InterNetworkV6 )
|
||||
return false;
|
||||
|
||||
if ( Utility.IPMatch( "192.168.*", ip ) )
|
||||
return true;
|
||||
else if ( Utility.IPMatch( "10.*", ip ) )
|
||||
|
|
@ -150,7 +155,7 @@ namespace Server.Misc
|
|||
|
||||
Stream s = res.GetResponseStream();
|
||||
|
||||
StreamReader sr = new StreamReader( s );
|
||||
StreamReader sr = new StreamReader( s );
|
||||
|
||||
IPAddress ip = IPAddress.Parse( sr.ReadLine() );
|
||||
|
||||
|
|
|
|||
|
|
@ -398,6 +398,9 @@ namespace Server.Mobiles
|
|||
|
||||
public override int GetMaxResistance( ResistanceType type )
|
||||
{
|
||||
if ( AccessLevel > AccessLevel.Player )
|
||||
return int.MaxValue;
|
||||
|
||||
int max = base.GetMaxResistance( type );
|
||||
|
||||
if ( type != ResistanceType.Physical && 60 < max && Spells.Fourth.CurseSpell.UnderEffect( this ) )
|
||||
|
|
|
|||
|
|
@ -1598,11 +1598,15 @@ namespace Server.Multis
|
|||
|
||||
public override void OnSecureTrade( Mobile from, Mobile to, Mobile newOwner, bool accepted )
|
||||
{
|
||||
if ( Deleted || m_House == null || m_House.Deleted || !m_House.IsOwner( from ) || !from.CheckAlive() || !to.CheckAlive() )
|
||||
if ( Deleted )
|
||||
return;
|
||||
|
||||
Delete();
|
||||
|
||||
if ( m_House == null || m_House.Deleted || !m_House.IsOwner( from ) || !from.CheckAlive() || !to.CheckAlive() )
|
||||
return;
|
||||
|
||||
|
||||
if ( !accepted )
|
||||
return;
|
||||
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ using System.Xml;
|
|||
using Server;
|
||||
using Server.Mobiles;
|
||||
using Server.Items;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Server.Regions
|
||||
{
|
||||
|
|
@ -327,7 +328,7 @@ namespace Server.Regions
|
|||
if ( !Region.ReadString( xmlDef, "name", ref name ) )
|
||||
continue;
|
||||
|
||||
ArrayList list = new ArrayList();
|
||||
List<SpawnGroupElement> list = new List<SpawnGroupElement>();
|
||||
foreach ( XmlNode node in xmlDef.ChildNodes )
|
||||
{
|
||||
XmlElement el = node as XmlElement;
|
||||
|
|
@ -346,7 +347,7 @@ namespace Server.Regions
|
|||
}
|
||||
}
|
||||
|
||||
SpawnGroupElement[] elements = (SpawnGroupElement[]) list.ToArray( typeof( SpawnGroupElement ) );
|
||||
SpawnGroupElement[] elements = list.ToArray();
|
||||
SpawnGroup group = new SpawnGroup( name, elements );
|
||||
Register( group );
|
||||
}
|
||||
|
|
|
|||
|
|
@ -51,6 +51,7 @@ namespace Server
|
|||
private static bool m_Debug;
|
||||
private static bool m_Cache = true;
|
||||
private static bool m_HaltOnWarning;
|
||||
private static bool m_VBdotNET;
|
||||
private static MultiTextWriter m_MultiConOut;
|
||||
|
||||
private static bool m_Profiling;
|
||||
|
|
@ -98,6 +99,7 @@ namespace Server
|
|||
public static bool Service { get { return m_Service; } }
|
||||
public static bool Debug { get { return m_Debug; } }
|
||||
internal static bool HaltOnWarning { get { return m_HaltOnWarning; } }
|
||||
internal static bool VBdotNet { get { return m_VBdotNET; } }
|
||||
public static List<string> DataDirectories { get { return m_DataDirectories; } }
|
||||
public static Assembly Assembly { get { return m_Assembly; } set { m_Assembly = value; } }
|
||||
public static Process Process { get { return m_Process; } }
|
||||
|
|
@ -363,17 +365,18 @@ namespace Server
|
|||
|
||||
for( int i = 0; i < args.Length; ++i )
|
||||
{
|
||||
if( Insensitive.Equals( args[i], "-debug" ) )
|
||||
if ( Insensitive.Equals( args[i], "-debug" ) )
|
||||
m_Debug = true;
|
||||
else if( Insensitive.Equals( args[i], "-service" ) )
|
||||
else if ( Insensitive.Equals( args[i], "-service" ) )
|
||||
m_Service = true;
|
||||
else if( Insensitive.Equals( args[i], "-profile" ) )
|
||||
else if ( Insensitive.Equals( args[i], "-profile" ) )
|
||||
Profiling = true;
|
||||
else if( Insensitive.Equals( args[i], "-nocache" ) )
|
||||
else if ( Insensitive.Equals( args[i], "-nocache" ) )
|
||||
m_Cache = false;
|
||||
else if( Insensitive.Equals( args[i], "-haltonwarning" ) )
|
||||
else if ( Insensitive.Equals( args[i], "-haltonwarning" ) )
|
||||
m_HaltOnWarning = true;
|
||||
|
||||
else if ( Insensitive.Equals( args[i], "-vb" ) )
|
||||
m_VBdotNET = true;
|
||||
}
|
||||
|
||||
try
|
||||
|
|
@ -518,6 +521,9 @@ namespace Server
|
|||
if( m_HaltOnWarning )
|
||||
Utility.Separate( sb, "-haltonwarning", " " );
|
||||
|
||||
if ( m_VBdotNET )
|
||||
Utility.Separate( sb, "-vb", " " );
|
||||
|
||||
return sb.ToString();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -91,6 +91,10 @@ namespace Server
|
|||
|
||||
AppendDefine( ref sb, "/d:Framework_2_0" );
|
||||
|
||||
#if Framework_3_5
|
||||
AppendDefine( ref sb, "/d:Framework_3_5" );
|
||||
#endif
|
||||
|
||||
return (sb == null ? null : sb.ToString());
|
||||
}
|
||||
|
||||
|
|
@ -207,7 +211,11 @@ namespace Server
|
|||
|
||||
DeleteFiles( "Scripts.CS*.dll" );
|
||||
|
||||
using( CSharpCodeProvider provider = new CSharpCodeProvider() )
|
||||
#if Framework_3_5
|
||||
using ( CSharpCodeProvider provider = new CSharpCodeProvider( new Dictionary<string, string>() { { "CompilerVersion", "v3.5" } } ) )
|
||||
#else
|
||||
using ( CSharpCodeProvider provider = new CSharpCodeProvider() )
|
||||
#endif
|
||||
{
|
||||
string path = GetUnusedPath( "Scripts.CS" );
|
||||
|
||||
|
|
@ -346,8 +354,11 @@ namespace Server
|
|||
}
|
||||
|
||||
DeleteFiles( "Scripts.VB*.dll" );
|
||||
|
||||
using( VBCodeProvider provider = new VBCodeProvider() )
|
||||
#if Framework_3_5
|
||||
using ( VBCodeProvider provider = new VBCodeProvider( new Dictionary<string, string>() { { "CompilerVersion", "v3.5" } } ) )
|
||||
#else
|
||||
using ( VBCodeProvider provider = new VBCodeProvider() )
|
||||
#endif
|
||||
{
|
||||
string path = GetUnusedPath( "Scripts.VB" );
|
||||
|
||||
|
|
@ -560,16 +571,23 @@ namespace Server
|
|||
return false;
|
||||
}
|
||||
|
||||
if( CompileVBScripts( debug, cache, out assembly ) )
|
||||
if ( Core.VBdotNet )
|
||||
{
|
||||
if( assembly != null )
|
||||
if ( CompileVBScripts( debug, cache, out assembly ) )
|
||||
{
|
||||
assemblies.Add( assembly );
|
||||
if ( assembly != null )
|
||||
{
|
||||
assemblies.Add( assembly );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
Console.WriteLine( "Scripts: Skipping VB.NET Scripts...done (use -vb to enable)");
|
||||
}
|
||||
|
||||
if( assemblies.Count == 0 )
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue