Overwrite

Complete Overwrite of the Folder with the free shard. ServUO 57.3 has been added.
This commit is contained in:
Unstable Kitsune
2023-11-28 23:20:26 -05:00
parent 3cd54811de
commit b918192e4e
11608 changed files with 2644205 additions and 47 deletions

View File

@@ -0,0 +1,42 @@
using System;
using Server.Network;
using Server.Items;
namespace Server.Items
{
public class AmanitaMuscaria : Item
{
[Constructable]
public AmanitaMuscaria() : this( 1 )
{
}
[Constructable]
public AmanitaMuscaria( int amount ) : base( 0x1125 )
{
Name = "Amanita Muscaria";
Stackable = false;
Amount = amount;
Weight = 1.0;
}
public AmanitaMuscaria( Serial serial ) : base( serial )
{
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.WriteEncodedInt( (int) 0 ); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize( reader );
int version = reader.ReadEncodedInt();
}
}
}

View File

@@ -0,0 +1,147 @@
using System;
using System.Collections;
using Server;
using Server.Items;
using Server.Targeting;
namespace Server.Mobiles
{
[CorpseName( "Equestrius' corpse" )]
public class Equestrius : BaseCreature
{
[Constructable]
public Equestrius () : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = "Equestrius";
Body = 101;
BaseSoundID = 679;
SetStr( 488, 620 );
SetDex( 121, 170 );
SetInt( 498, 657 );
SetHits( 312, 353 );
SetDamage( 18, 28 );
SetDamageType( ResistanceType.Physical, 75 );
SetDamageType( ResistanceType.Energy, 25 );
SetResistance( ResistanceType.Physical, 80, 90 );
SetResistance( ResistanceType.Fire, 70, 80 );
SetResistance( ResistanceType.Cold, 40, 50 );
SetResistance( ResistanceType.Poison, 50, 60 );
SetResistance( ResistanceType.Energy, 50, 60 );
SetSkill( SkillName.EvalInt, 90.1, 100.0 );
SetSkill( SkillName.Magery, 99.1, 100.0 );
SetSkill( SkillName.Meditation, 90.1, 100.0 );
SetSkill( SkillName.MagicResist, 100.5, 150.0 );
SetSkill( SkillName.Tactics, 80.1, 90.0 );
SetSkill( SkillName.Wrestling, 80.1, 90.0 );
SetSkill( SkillName.Anatomy, 95.1, 115.0 );
SetSkill( SkillName.Archery, 95.1, 100.0 );
Fame = 24000;
Karma = -24000;
VirtualArmor = 60;
AddItem( new Bow() );
PackItem( new Arrow( Utility.RandomMinMax( 80, 90 ) ) );
//if( Utility.RandomDouble() <= 0.01 ) PackItem( new CarvedWoodenScreen2() );
}
public override void GenerateLoot()
{
AddLoot( LootPack.FilthyRich, 2 );
AddLoot( LootPack.MedScrolls, 5 );
AddLoot( LootPack.Gems, 5 );
}
public override OppositionGroup OppositionGroup
{
get{ return OppositionGroup.FeyAndUndead; }
}
public override int Meat{ get{ return 1; } }
public override int Hides{ get{ return 8; } }
public override HideType HideType{ get{ return HideType.Spined; } }
public override int TreasureMapLevel{ get{ return 5; } }
public override bool AlwaysMurderer{ get{ return true; } }
public void DrainLife()
{
ArrayList list = new ArrayList();
foreach ( Mobile m in this.GetMobilesInRange( 2 ) )
{
if ( m == this || !CanBeHarmful( m ) )
continue;
if ( m is BaseCreature && (((BaseCreature)m).Controlled || ((BaseCreature)m).Summoned || ((BaseCreature)m).Team != this.Team) )
list.Add( m );
else if ( m.Player )
list.Add( m );
}
foreach ( Mobile m in list )
{
DoHarmful( m );
m.FixedParticles( 0x374A, 10, 15, 5013, 0x496, 0, EffectLayer.Waist );
m.PlaySound( 0x231 );
m.SendMessage( "You feel the life drain out of you!" );
int toDrain = Utility.RandomMinMax( 10, 40 );
Hits += toDrain;
m.Damage( toDrain, this );
}
}
public override void OnGaveMeleeAttack( Mobile defender )
{
base.OnGaveMeleeAttack( defender );
if ( 0.1 >= Utility.RandomDouble() )
DrainLife();
}
public override void OnGotMeleeAttack( Mobile attacker )
{
base.OnGotMeleeAttack( attacker );
if ( 0.1 >= Utility.RandomDouble() )
DrainLife();
}
public override void OnDeath( Container c )
{
base.OnDeath( c );
c.DropItem( new AmanitaMuscaria() );
}
public Equestrius( Serial serial ) : base( serial )
{
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.Write( (int) 0 );
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadInt();
if ( BaseSoundID == 678 )
BaseSoundID = 679;
}
}
}

View File

@@ -0,0 +1,56 @@
using System;
using Server;
namespace Server.Items
{
public class SpellWeavingBandana : Bandana
{
public override int LabelNumber{ get{ return 1063473; } }
public override int BasePhysicalResistance{ get{ return 10; } }
public override int BaseFireResistance{ get{ return 10; } }
public override int BaseColdResistance{ get{ return 10; } }
public override int BasePoisonResistance{ get{ return 10; } }
public override int BaseEnergyResistance{ get{ return 10; } }
public override int InitMinHits{ get{ return 255; } }
public override int InitMaxHits{ get{ return 255; } }
[Constructable]
public SpellWeavingBandana()
{
Hue = Utility.RandomBool() ? 0x58C : 0x10;
Name = "Head Wrap of the Arcane";
SkillBonuses.SetValues( 0, SkillName.Spellweaving, 20.0 );
SkillBonuses.SetValues( 1, SkillName.Magery, 20.0 );
Attributes.BonusInt = 15;
}
public SpellWeavingBandana( Serial serial ) : base( serial )
{
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.Write( (int) 2 );
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize( reader );
int version = reader.ReadInt();
if ( version < 2 )
{
Resistances.Physical = 0;
Resistances.Fire = 0;
Resistances.Cold = 0;
Resistances.Poison = 0;
Resistances.Energy = 0;
}
}
}
}

View File

@@ -0,0 +1,57 @@
// Created by Malice_Molaka
// For script support contact Malice at Malice_Molaka@hotmail.com
using System;using System.Collections;using System.Collections.Generic;using Server.Items;using Server.Targeting;using Server.ContextMenus;using Server.Gumps;using Server.Misc;using Server.Network;using Server.Spells;namespace Server.Mobiles
{[CorpseName( "GreyHawk's Corpse" )]public class GreyHawk : Mobile{public virtual bool IsInvulnerable{ get{ return true; } }
[Constructable]public GreyHawk(){
// STR/DEX/INT
InitStats( 91, 91, 91 );
// name
Name = "GreyHawk";
Body = 0x190;
Hue = 1111;
// immortal and frozen to-the-spot features below:
Blessed = true;
CantWalk = true;
// Adding a backpack
Container pack = new Backpack();
pack.DropItem( new Gold( 250, 300 ) );
pack.Movable = false;
AddItem( pack );
}
public GreyHawk( Serial serial ) : base( serial ){}
public override void GetContextMenuEntries( Mobile from, List<ContextMenuEntry> list )
{ base.GetContextMenuEntries( from, list ); list.Add( new GreyHawkEntry( from, this ) ); }
public override void Serialize( GenericWriter writer ){base.Serialize( writer );writer.Write( (int) 0 );}
public override void Deserialize( GenericReader reader ){base.Deserialize( reader );int version = reader.ReadInt();}
public class GreyHawkEntry : ContextMenuEntry{private Mobile m_Mobile;private Mobile m_Giver;
public GreyHawkEntry( Mobile from, Mobile giver ) : base( 6146, 3 ){m_Mobile = from;m_Giver = giver;}
public override void OnClick(){if( !( m_Mobile is PlayerMobile ) )return;
PlayerMobile mobile = (PlayerMobile) m_Mobile;{
// gump name
if ( ! mobile.HasGump( typeof( SpellWeavingQuestGump ) ) ){
mobile.SendGump( new SpellWeavingQuestGump( mobile ));}}}}
public override bool OnDragDrop( Mobile from, Item dropped ){ Mobile m = from;PlayerMobile mobile = m as PlayerMobile;
if ( mobile != null){
// item to be dropped
if( dropped is AmanitaMuscaria ){if(dropped.Amount!=1)
{this.PrivateOverheadMessage( MessageType.Regular, 1153, false, "That is not the right amount!", mobile.NetState );return false;}
dropped.Delete();
// the reward
mobile.AddToBackpack( new Gold( 2000 ) );
mobile.AddToBackpack( new SpellWeavingBandana( ) );
mobile.AddToBackpack( new SpellweavingBook( ) );
// thanks message
this.PrivateOverheadMessage( MessageType.Regular, 1153, false, "My gracious thanks. Now I can combine these to craft more books. Here take one and teach others what you have learned here.", mobile.NetState );
return true;}else if ( dropped is Whip){this.PrivateOverheadMessage( MessageType.Regular, 1153, 1054071, mobile.NetState );return false;}else{this.PrivateOverheadMessage( MessageType.Regular, 1153, false,"That is not the type of mushrooms I seek...", mobile.NetState );}}return false;}}}

View File

@@ -0,0 +1,33 @@
using System; using Server; using Server.Commands;using Server.Gumps; using Server.Network;using Server.Items;using Server.Mobiles;namespace Server.Gumps
{ public class SpellWeavingQuestGump : Gump {
public static void Initialize() {
CommandSystem.Register( "SpellWeavingQuestGump", AccessLevel.GameMaster, new CommandEventHandler( SpellWeavingQuestGump_OnCommand ) );
}
private static void SpellWeavingQuestGump_OnCommand( CommandEventArgs e )
{
e.Mobile.SendGump( new SpellWeavingQuestGump( e.Mobile ) ); }
public SpellWeavingQuestGump( Mobile owner ) : base( 50,50 )
{
//----------------------------------------------------------------------------------------------------
AddPage( 0 );AddImageTiled( 54, 33, 369, 400, 2624 );AddAlphaRegion( 54, 33, 369, 400 );AddImageTiled( 416, 39, 44, 389, 203 );
//--------------------------------------Window size bar--------------------------------------------
AddImage( 97, 49, 9005 );AddImageTiled( 58, 39, 29, 390, 10460 );AddImageTiled( 412, 37, 31, 389, 10460 );
AddLabel( 140, 60, 0x34, "Arcane Knowledge" );
//----------------------/----------------------------------------------/
AddHtml( 107, 140, 300, 230, " < BODY > " +
"<BASEFONT COLOR=YELLOW>Hail and well met stranger.<BR>" +
"<BASEFONT COLOR=YELLOW>I see you are of a interest in the Arcane Arts?<BR>" +
"<BASEFONT COLOR=YELLOW>Wanting to know a bit more of the forbidden magics of nature itself?<BR>" +
"<BASEFONT COLOR=YELLOW>Don't care the cost or the dangers in your quest for greater knowledge?<BR>" +
"<BASEFONT COLOR=YELLOW>Then we have each met the right person indeed. I have what you seek.<BR>" +
"<BASEFONT COLOR=YELLOW>I am crafting some books in secret. Spell Weaving Books. Arcane knowledge.<BR>" +
"<BASEFONT COLOR=YELLOW>Shhhh! Don't look around. Pretend we are talking about something else.<BR>" +
"<BASEFONT COLOR=YELLOW>Well anyways there was this evil Centaur. Rude bugger truly. And he guards the last places I could harvest Amanita Muscaria.<BR>" +
"<BASEFONT COLOR=YELLOW>It is a very rare mushroom left over from the first cataclysm, but that is another matter.<BR>" +
"<BASEFONT COLOR=YELLOW>Go North of the Shrine of Sacrifice and look under the trees there. If you find no Amanita Muscaria growing then evil Equestrius has already picked it all.<BR>" +
"<BASEFONT COLOR=YELLOW>Slay him and surely he will have some of this rare fungi on him. Return some to me and I will reward you in kind.<BR>" +
"</BODY>", false, true);
//----------------------/----------------------------------------------/
AddImage( 430, 9, 10441);AddImageTiled( 40, 38, 17, 391, 9263 );AddImage( 6, 25, 10421 );AddImage( 34, 12, 10420 );AddImageTiled( 94, 25, 342, 15, 10304 );AddImageTiled( 40, 427, 415, 16, 10304 );AddImage( -10, 314, 10402 );AddImage( 56, 150, 10411 );AddImage( 155, 120, 2103 );AddImage( 136, 84, 96 );AddButton( 225, 390, 0xF7, 0xF8, 0, GumpButtonType.Reply, 0 ); }
//----------------------/----------------------------------------------/
public override void OnResponse( NetState state, RelayInfo info ){ Mobile from = state.Mobile; switch ( info.ButtonID ) { case 0:{ break; }}}}}

View File

@@ -0,0 +1,132 @@
////////////////////////////////////////
// //
// Generated by CEO's YAAAG - V1.2 //
// (Yet Another Arya Addon Generator) //
// //
////////////////////////////////////////
using System;
using Server;
using Server.Items;
namespace Server.Items
{
public class maginciaparklandAddon : BaseAddon
{
private static int[,] m_AddOnSimpleComponents = new int[,] {
{3313, 0, 3, 1}, {4790, -2, 5, 1}, {3348, -6, 3, 1}// 2 3 4
, {7950, 0, 4, 21}, {7949, -1, 4, 21}, {3346, -1, 6, 1}// 5 6 7
, {4799, -1, 7, 21}, {4801, 0, 5, 21}, {8753, -2, 4, 1}// 8 9 10
, {4798, -2, 8, 21}, {3308, -1, 2, 1}, {4800, 0, 6, 21}// 11 12 13
, {3343, -4, 1, 1}, {4791, -1, 4, 1}, {7068, -6, 6, 1}// 14 15 16
, {3353, -4, -5, 1}, {3342, -4, 5, 1}, {3345, 2, -4, 1}// 17 18 19
, {3349, 6, 3, 1}, {3314, 4, 2, 1}, {3350, 6, -3, 1}// 20 21 22
, {4795, 3, 0, 0}, {3314, 2, 2, 1}, {4796, 5, 0, 12}// 23 24 25
, {8752, 3, 4, 1}, {7951, 3, 2, 21}, {3310, 1, 4, 1}// 26 27 28
, {3380, 2, 3, 21}, {3341, 5, 2, 1}, {3340, 2, 6, 1}// 29 30 31
, {3347, 5, 6, 1}, {4794, 3, 2, 1}, {8751, 2, -3, 1}// 32 33 34
, {8750, 5, -1, 1}, {3309, 2, 3, 1}, {3310, 1, 3, 1}// 35 36 37
, {4793, 2, 3, 1}, {7070, 1, 5, 1}, {3344, 4, -3, 1}// 38 39 40
, {7953, 4, 1, 1}, {7069, 6, -5, 1}, {4792, 1, 4, 1}// 41 42 43
, {7954, 4, 1, 1}, {3352, 2, -6, 1}, {3351, 4, -6, 1}// 44 45 46
, {7952, 4, 2, 22}, {4797, 6, -1, 4}, {4802, 1, 4, 21}// 47 48 49
, {4803, 2, 3, 21}, {4804, 3, 2, 21}, {4805, 3, 0, 13}// 50 51 52
, {4806, 5, 0, 26}, {4807, 6, -1, 24}// 53 54
};
public override BaseAddonDeed Deed
{
get
{
return new maginciaparklandAddonDeed();
}
}
[ Constructable ]
public maginciaparklandAddon()
{
for (int i = 0; i < m_AddOnSimpleComponents.Length / 4; i++)
AddComponent( new AddonComponent( m_AddOnSimpleComponents[i,0] ), m_AddOnSimpleComponents[i,1], m_AddOnSimpleComponents[i,2], m_AddOnSimpleComponents[i,3] );
AddComplexComponent( (BaseAddon) this, 2852, -8, -8, 3, 0, 1, "", 1);// 1
AddComplexComponent( (BaseAddon) this, 2852, 9, 9, 3, 0, 1, "", 1);// 55
}
public maginciaparklandAddon( Serial serial ) : base( serial )
{
}
private static void AddComplexComponent(BaseAddon addon, int item, int xoffset, int yoffset, int zoffset, int hue, int lightsource)
{
AddComplexComponent(addon, item, xoffset, yoffset, zoffset, hue, lightsource, null, 1);
}
private static void AddComplexComponent(BaseAddon addon, int item, int xoffset, int yoffset, int zoffset, int hue, int lightsource, string name, int amount)
{
AddonComponent ac;
ac = new AddonComponent(item);
if (name != null && name.Length > 0)
ac.Name = name;
if (hue != 0)
ac.Hue = hue;
if (amount > 1)
{
ac.Stackable = true;
ac.Amount = amount;
}
if (lightsource != -1)
ac.Light = (LightType) lightsource;
addon.AddComponent(ac, xoffset, yoffset, zoffset);
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.Write( 0 ); // Version
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadInt();
}
}
public class maginciaparklandAddonDeed : BaseAddonDeed
{
public override BaseAddon Addon
{
get
{
return new maginciaparklandAddon();
}
}
[Constructable]
public maginciaparklandAddonDeed()
{
Name = "maginciaparkland";
}
public maginciaparklandAddonDeed( Serial serial ) : base( serial )
{
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.Write( 0 ); // Version
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadInt();
}
}
}