#W# Source and Scripts added. Added Scripts/Settings.cs to expose some basic tweak able settings.

This commit is contained in:
WarrentyExpired 2026-08-06 11:06:05 -04:00
parent b51c58f514
commit 3045c83799
3512 changed files with 627673 additions and 0 deletions

View file

@ -0,0 +1,57 @@
using System;
using Server.Gumps;
namespace Server.Items
{
public class ResGate : Item
{
public override string DefaultName
{
get { return "a resurrection gate"; }
}
[Constructable]
public ResGate() : base( 0xF6C )
{
Movable = false;
Hue = 0x2D1;
Light = LightType.Circle300;
}
public ResGate( Serial serial ) : base( serial )
{
}
public override bool OnMoveOver( Mobile m )
{
if ( !m.Alive && m.Map != null && m.Map.CanFit( m.Location, 16, false, false ) )
{
m.PlaySound( 0x214 );
m.FixedEffect( 0x376A, 10, 16 );
m.CloseGump( typeof( ResurrectGump ) );
m.SendGump( new ResurrectGump( m ) );
}
else
{
m.SendLocalizedMessage( 502391 ); // Thou can not be resurrected there!
}
return false;
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.Write( (int) 0 ); // version
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadInt();
}
}
}

View file

@ -0,0 +1,46 @@
using System;
using Server.Items;
namespace Server.Items
{
public class AlchemyStone : Item
{
public override string DefaultName
{
get { return "an Alchemist Supply Stone"; }
}
[Constructable]
public AlchemyStone() : base( 0xED4 )
{
Movable = false;
Hue = 0x250;
}
public override void OnDoubleClick( Mobile from )
{
AlchemyBag alcBag = new AlchemyBag();
if ( !from.AddToBackpack( alcBag ) )
alcBag.Delete();
}
public AlchemyStone( Serial serial ) : base( serial )
{
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.Write( (int) 0 ); // version
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadInt();
}
}
}

View file

@ -0,0 +1,56 @@
#if false
using System;
using Server.Network;
using Server.Commands;
namespace Server.Items
{
public class GMStone : Item
{
public override string DefaultName
{
get { return "a GM stone"; }
}
[Constructable]
public GMStone() : base( 0xED4 )
{
Movable = false;
Hue = 0x489;
}
public GMStone( Serial serial ) : base( serial )
{
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.Write( (int) 0 ); // version
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadInt();
}
public override void OnDoubleClick( Mobile from )
{
if ( from.AccessLevel < AccessLevel.GameMaster )
{
from.AccessLevel = AccessLevel.GameMaster;
from.SendAsciiMessage( 0x482, "The command prefix is \"{0}\"", CommandSystem.Prefix );
CommandHandlers.Help_OnCommand( new CommandEventArgs( from, "help", "", new string[0] ) );
}
else
{
from.SendMessage( "The stone has no effect." );
}
}
}
}
#endif

View file

@ -0,0 +1,132 @@
namespace Server.Items
{
public class GamblingStone : Item
{
private int m_GamblePot = 2500;
[CommandProperty( AccessLevel.GameMaster )]
public int GamblePot
{
get
{
return m_GamblePot;
}
set
{
m_GamblePot = value;
InvalidateProperties();
}
}
public override string DefaultName
{
get { return "a gambling stone"; }
}
[Constructable]
public GamblingStone()
: base( 0xED4 )
{
Movable = false;
Hue = 0x56;
}
public override void GetProperties( ObjectPropertyList list )
{
base.GetProperties( list );
list.Add( "Jackpot: {0}gp", m_GamblePot );
}
public override void OnSingleClick( Mobile from )
{
base.OnSingleClick( from );
base.LabelTo( from, "Jackpot: {0}gp", m_GamblePot );
}
public override void OnDoubleClick( Mobile from )
{
Container pack = from.Backpack;
if( pack != null && pack.ConsumeTotal( typeof( Gold ), 250 ) )
{
m_GamblePot += 150;
InvalidateProperties();
int roll = Utility.Random( 1200 );
if( roll == 0 ) // Jackpot
{
int maxCheck = 1000000;
from.SendMessage( 0x35, "You win the {0}gp jackpot!", m_GamblePot );
while( m_GamblePot > maxCheck )
{
from.AddToBackpack( new BankCheck( maxCheck ) );
m_GamblePot -= maxCheck;
}
from.AddToBackpack( new BankCheck( m_GamblePot ) );
m_GamblePot = 2500;
}
else if( roll <= 20 ) // Chance for a regbag
{
from.SendMessage( 0x35, "You win a bag of reagents!" );
from.AddToBackpack( new BagOfReagents( 50 ) );
}
else if( roll <= 40 ) // Chance for gold
{
from.SendMessage( 0x35, "You win 1500gp!" );
from.AddToBackpack( new BankCheck( 1500 ) );
}
else if( roll <= 100 ) // Another chance for gold
{
from.SendMessage( 0x35, "You win 1000gp!" );
from.AddToBackpack( new BankCheck( 1000 ) );
}
else // Loser!
{
from.SendMessage( 0x22, "You lose!" );
}
}
else
{
from.SendMessage( 0x22, "You need at least 250gp in your backpack to use this." );
}
}
public GamblingStone( Serial serial )
: base( serial )
{
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.Write( (int)0 ); // version
writer.Write( (int)m_GamblePot );
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadInt();
switch( version )
{
case 0:
{
m_GamblePot = reader.ReadInt();
break;
}
}
}
}
}

View file

@ -0,0 +1,46 @@
using System;
using Server.Items;
namespace Server.Items
{
public class IngotStone : Item
{
public override string DefaultName
{
get { return "an Ingot stone"; }
}
[Constructable]
public IngotStone() : base( 0xED4 )
{
Movable = false;
Hue = 0x480;
}
public override void OnDoubleClick( Mobile from )
{
BagOfingots ingotBag = new BagOfingots( 5000 );
if ( !from.AddToBackpack( ingotBag ) )
ingotBag.Delete();
}
public IngotStone( Serial serial ) : base( serial )
{
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.Write( (int) 0 ); // version
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadInt();
}
}
}

View file

@ -0,0 +1,46 @@
using System;
using Server.Items;
namespace Server.Items
{
public class RegStone : Item
{
public override string DefaultName
{
get { return "a reagent stone"; }
}
[Constructable]
public RegStone() : base( 0xED4 )
{
Movable = false;
Hue = 0x2D1;
}
public override void OnDoubleClick( Mobile from )
{
BagOfReagents regBag = new BagOfReagents( 50 );
if ( !from.AddToBackpack( regBag ) )
regBag.Delete();
}
public RegStone( Serial serial ) : base( serial )
{
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.Write( (int) 0 ); // version
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadInt();
}
}
}

View file

@ -0,0 +1,46 @@
using System;
using Server.Items;
namespace Server.Items
{
public class ScribeStone : Item
{
public override string DefaultName
{
get { return "a Scribe Supply Stone"; }
}
[Constructable]
public ScribeStone() : base( 0xED4 )
{
Movable = false;
Hue = 0x105;
}
public override void OnDoubleClick( Mobile from )
{
ScribeBag scribeBag = new ScribeBag();
if ( !from.AddToBackpack( scribeBag ) )
scribeBag.Delete();
}
public ScribeStone( Serial serial ) : base( serial )
{
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.Write( (int) 0 ); // version
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadInt();
}
}
}

View file

@ -0,0 +1,46 @@
using System;
using Server.Items;
namespace Server.Items
{
public class SmithStone : Item
{
public override string DefaultName
{
get { return "a Blacksmith Supply Stone"; }
}
[Constructable]
public SmithStone() : base( 0xED4 )
{
Movable = false;
Hue = 0x476;
}
public override void OnDoubleClick( Mobile from )
{
SmithBag SmithBag = new SmithBag( 5000 );
if ( !from.AddToBackpack( SmithBag ) )
SmithBag.Delete();
}
public SmithStone( Serial serial ) : base( serial )
{
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.Write( (int) 0 ); // version
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadInt();
}
}
}

View file

@ -0,0 +1,46 @@
using System;
using Server.Items;
namespace Server.Items
{
public class TailorStone : Item
{
public override string DefaultName
{
get { return "a Tailor Supply Stone"; }
}
[Constructable]
public TailorStone() : base( 0xED4 )
{
Movable = false;
Hue = 0x315;
}
public override void OnDoubleClick( Mobile from )
{
TailorBag tailorBag = new TailorBag();
if ( !from.AddToBackpack( tailorBag ) )
tailorBag.Delete();
}
public TailorStone( Serial serial ) : base( serial )
{
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.Write( (int) 0 ); // version
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadInt();
}
}
}

View file

@ -0,0 +1,47 @@
using System;
using Server;
using Server.Items;
namespace Server.Items
{
public class AlchemyBag : Bag
{
public override string DefaultName
{
get { return "an Alchemy Kit"; }
}
[Constructable]
public AlchemyBag() : this( 1 )
{
Movable = true;
Hue = 0x250;
}
[Constructable]
public AlchemyBag( int amount )
{
DropItem( new MortarPestle( 5 ) );
DropItem( new BagOfReagents( 5000 ) );
DropItem( new Bottle( 5000 ) );
}
public AlchemyBag( Serial serial ) : base( serial )
{
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.Write( (int) 0 ); // version
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadInt();
}
}
}

View file

@ -0,0 +1,49 @@
using System;
using Server;
using Server.Items;
namespace Server.Items
{
public class BagOfingots : Bag
{
[Constructable]
public BagOfingots() : this( 5000 )
{
}
[Constructable]
public BagOfingots( int amount )
{
DropItem( new DullCopperIngot ( amount ) );
DropItem( new ShadowIronIngot ( amount ) );
DropItem( new CopperIngot ( amount ) );
DropItem( new BronzeIngot ( amount ) );
DropItem( new GoldIngot ( amount ) );
DropItem( new AgapiteIngot ( amount ) );
DropItem( new VeriteIngot ( amount ) );
DropItem( new ValoriteIngot ( amount ) );
DropItem( new IronIngot ( amount ) );
DropItem( new Tongs() );
DropItem( new TinkerTools() );
}
public BagOfingots( Serial serial ) : base( serial )
{
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.Write( (int) 0 ); // version
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadInt();
}
}
}

View file

@ -0,0 +1,46 @@
using System;
using Server;
using Server.Items;
namespace Server.Items
{
public class ScribeBag : Bag
{
public override string DefaultName
{
get { return "a Scribe Kit"; }
}
[Constructable]
public ScribeBag() : this( 1 )
{
Movable = true;
Hue = 0x105;
}
[Constructable]
public ScribeBag( int amount )
{
DropItem( new BagOfReagents( 5000 ) );
DropItem( new BlankScroll( 500 ) );
}
public ScribeBag( Serial serial ) : base( serial )
{
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.Write( (int) 0 ); // version
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadInt();
}
}
}

View file

@ -0,0 +1,49 @@
using System;
using Server;
using Server.Items;
namespace Server.Items
{
public class SmithBag : Bag
{
[Constructable]
public SmithBag() : this( 5000 )
{
}
[Constructable]
public SmithBag( int amount )
{
DropItem( new DullCopperIngot ( amount ) );
DropItem( new ShadowIronIngot ( amount ) );
DropItem( new CopperIngot ( amount ) );
DropItem( new BronzeIngot ( amount ) );
DropItem( new GoldIngot ( amount ) );
DropItem( new AgapiteIngot ( amount ) );
DropItem( new VeriteIngot ( amount ) );
DropItem( new ValoriteIngot ( amount ) );
DropItem( new IronIngot ( amount ) );
DropItem( new Tongs ( amount ) );
DropItem( new TinkerTools ( amount ) );
}
public SmithBag( Serial serial ) : base( serial )
{
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.Write( (int) 0 ); // version
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadInt();
}
}
}

View file

@ -0,0 +1,52 @@
using System;
using Server;
using Server.Items;
namespace Server.Items
{
public class TailorBag : Bag
{
public override string DefaultName
{
get { return "a Tailoring Kit"; }
}
[Constructable]
public TailorBag() : this( 1 )
{
Movable = true;
Hue = 0x315;
}
[Constructable]
public TailorBag( int amount )
{
DropItem( new SewingKit( 5 ) );
DropItem( new Scissors() );
DropItem( new Hides( 500 ) );
DropItem( new BoltOfCloth( 20 ) );
DropItem( new DyeTub() );
DropItem( new DyeTub() );
DropItem( new BlackDyeTub() );
DropItem( new Dyes() );
}
public TailorBag( Serial serial ) : base( serial )
{
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.Write( (int) 0 ); // version
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadInt();
}
}
}