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,31 @@
The Great Gingerbread Caper
Created by Hammerhand
Recipe idea from Misty_Dain of Unicorn Heaven
The Players:
Mrs Claus; Sweetest woman in the world. Doesnt have a single cruel bone in her body. Loves to make cookies, candy and her Famous Gingerbread Cookies. Loved by Elves & Children everywhere, but loved the most by her husband, Kris Kringle AKA Santa Claus.
Krass Kringle; Older brother to Kris. He thought that HE should be Santa, but was rejected by the Elves & Reindeer both due to a subtle cruel streak. His resentment over his younger brothers rise to the legendary Santa Claus festered inside him until it consumed his very soul. He was determined that if HE couldnt be Santa, then Christmas wasnt going to be a joyous occasion. He began calling himself The Anti Claus and created his own Mutated Reindeer & Mutated Elves. He then stole Mrs Claus' Special Gingerbread Recipe and escaped.
Items:
10 recipe fragments, 1 Special Gingerbread Cookie recipe & 3 cookies. Cookie 1 gives +10 to str. Cookie 2 gives +10 to Int. Cookie 3 gives +10 to Dex. All 3 stat gains have a 30 minute timer each. Cookies are dropped randomly. (I DID say they were "special" hehe)
Monsters:
Mutated Reindeer; Names... Adolph, Masher, Slasher, Smasher, Nixon, Gromet, Stupid, Slaughter & Blitzed. Mutated Elves all "talk" with a few random sayings, as does Krass.
Objective:
Regain all the fragments of the recipe, restore it to the original and return it to Mrs Claus. By doing so, you ensure that millions of children everywhere have a Happy & Joyous Christmas. Failure isnt an option.
ARE YOU UP TO THE TASK?
Basically a Plug N Play quest. Drop into your customs folder, set the moongate location in the Blitzed script for Krass' location (moongate is currently set for Tram Brit bank for testing purposes) and spawn them all. Just change the X,Y,Z coordinates to where ever you have Krass spawned.
Decide where you want the Mutated Reindeer (each one in a different area) and place a book by Mrs Claus with clues to their locations. Since their mutated, they can be anywhere. They dont need to be in snow areas. The final Reindeer should be Blitzed as he opens a moongate onDeath. Place a couple of the mutated Elves with each reindeer and several with Krass.
Hammerhand

View File

@@ -0,0 +1,77 @@
/*Created by Hammerhand*/
using System;
using Server;
using Server.Commands;
using Server.Gumps;
using Server.Network;
using Server.Items;
using Server.Mobiles;
namespace Server.Gumps
{
public class MrsClausGump : Gump
{
public static void Initialize()
{
CommandSystem.Register("MrsClausGump", AccessLevel.GameMaster, new CommandEventHandler(MrsClausGump_OnCommand));
}
private static void MrsClausGump_OnCommand( CommandEventArgs e )
{
e.Mobile.SendGump(new MrsClausGump(e.Mobile));
}
public MrsClausGump(Mobile owner)
: base(50, 50)
{
AddPage( 0 );
AddImageTiled( 54, 33, 369, 400, 2624 );
AddAlphaRegion( 54, 33, 369, 400 );
AddImageTiled( 416, 39, 44, 389, 203 );
AddImage( 97, 49, 9005 );
AddImageTiled( 58, 39, 29, 390, 10460 );
AddImageTiled( 412, 37, 31, 389, 10460 );
AddLabel( 140, 60, 0x34, "Gingerbread Recipe" );
AddHtml( 107, 140, 300, 230, " < BODY > " +
"<BASEFONT COLOR=YELLOW>Ooooo... that AWFUL FIEND! That Krass<BR>" +
"<BASEFONT COLOR=YELLOW>Krangle stole my Special Gingerbread<BR>" +
"<BASEFONT COLOR=YELLOW>Recipe! Without it, I cant make my <BR>" +
"<BASEFONT COLOR=YELLOW>Special Gingerbread Cookies. He even<BR>" +
"<BASEFONT COLOR=YELLOW>tore it into 10 pieces and fed them to <BR>" +
"<BASEFONT COLOR=YELLOW>his 'Reindeer' keeping one for himself!<BR>" +
"<BASEFONT COLOR=YELLOW>Please get the fragments back for me!<BR>" +
"<BASEFONT COLOR=YELLOW>Take this recipe box and use it to put <BR>" +
"<BASEFONT COLOR=YELLOW>them back together once you have them<BR>" +
"<BASEFONT COLOR=YELLOW>all. In return, I'll make you one of my<BR>" +
"<BASEFONT COLOR=YELLOW>Special Gingerbread Cookies! Please <BR>" +
"<BASEFONT COLOR=YELLOW>hurry! And dont tell Santa.. He cant <BR>" +
"<BASEFONT COLOR=YELLOW>know of this.<BR>" +
"<BASEFONT COLOR=YELLOW><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,98 @@
/* Created by Hammerhand */
using System;
using Server;
using Server.Gumps;
using Server.Network;
using System.Collections;
using Server.Multis;
using Server.Mobiles;
namespace Server.Items
{
public class RecipeBox : Item
{
[Constructable]
public RecipeBox() : this( null )
{
}
[Constructable]
public RecipeBox ( string name ) : base ( 0x9A8 )
{
Name = "Recipe Box";
LootType = LootType.Blessed;
Hue = 1742;
}
public RecipeBox(Serial serial)
: base(serial)
{
}
public override void OnDoubleClick(Mobile m)
{
Item k = m.Backpack.FindItemByType(typeof(RecipeBox));
if (k != null)
{
Item a = m.Backpack.FindItemByType(typeof(RecipeFragment1));
Item b = m.Backpack.FindItemByType(typeof(RecipeFragment2));
Item c = m.Backpack.FindItemByType(typeof(RecipeFragment3));
Item d = m.Backpack.FindItemByType(typeof(RecipeFragment4));
Item e = m.Backpack.FindItemByType(typeof(RecipeFragment5));
Item f = m.Backpack.FindItemByType(typeof(RecipeFragment6));
Item g = m.Backpack.FindItemByType(typeof(RecipeFragment7));
Item h = m.Backpack.FindItemByType(typeof(RecipeFragment8));
Item i = m.Backpack.FindItemByType(typeof(RecipeFragment9));
Item j = m.Backpack.FindItemByType(typeof(RecipeFragment10));
if (k == null || k.Amount < 1 || a == null || a.Amount < 1 || b == null || b.Amount < 1 || c == null || c.Amount < 1 || d == null || d.Amount < 1
|| e == null || e.Amount < 1 || f == null || f.Amount < 1 || g == null || g.Amount < 1 || h == null || h.Amount < 1 || i == null || i.Amount < 1
|| j == null || j.Amount < 1)
{
m.SendMessage("You are missing something...");
}
else
{
m.AddToBackpack(new SpecialGingerbreadRecipe());
a.Delete();
b.Delete();
c.Delete();
d.Delete();
e.Delete();
f.Delete();
g.Delete();
h.Delete();
i.Delete();
j.Delete();
m.SendMessage("You Combine the fragments into the Special Gingerbread Recipe");
this.Delete();
}
}
}
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();
}
}
}

View File

@@ -0,0 +1,40 @@
/*Created by Hammerhand*/
using System;
using Server;
using Server.Items;
namespace Server.Items
{
public class RecipeFragment1 : Item
{
public override string DefaultName
{
get { return "Recipe Fragment 1"; }
}
[Constructable]
public RecipeFragment1() : base(0x14ED)
{
base.Weight = 1.0;
Hue = 0;
}
public RecipeFragment1(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();
}
}
}

View File

@@ -0,0 +1,41 @@
/*Created by Hammerhand*/
using System;
using Server;
using Server.Items;
namespace Server.Items
{
public class RecipeFragment10 : Item
{
public override string DefaultName
{
get { return "Recipe Fragment 10"; }
}
[Constructable]
public RecipeFragment10()
: base(0x14ED)
{
base.Weight = 1.0;
Hue = 0;
}
public RecipeFragment10(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();
}
}
}

View File

@@ -0,0 +1,41 @@
/*Created by Hammerhand*/
using System;
using Server;
using Server.Items;
namespace Server.Items
{
public class RecipeFragment2 : Item
{
public override string DefaultName
{
get { return "Recipe Fragment 2"; }
}
[Constructable]
public RecipeFragment2()
: base(0x14ED)
{
base.Weight = 1.0;
Hue = 0;
}
public RecipeFragment2(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();
}
}
}

View File

@@ -0,0 +1,41 @@
/*Created by Hammerhand*/
using System;
using Server;
using Server.Items;
namespace Server.Items
{
public class RecipeFragment3 : Item
{
public override string DefaultName
{
get { return "Recipe Fragment 3"; }
}
[Constructable]
public RecipeFragment3()
: base(0x14ED)
{
base.Weight = 1.0;
Hue = 0;
}
public RecipeFragment3(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();
}
}
}

View File

@@ -0,0 +1,41 @@
/*Created by Hammerhand*/
using System;
using Server;
using Server.Items;
namespace Server.Items
{
public class RecipeFragment4 : Item
{
public override string DefaultName
{
get { return "Recipe Fragment 4"; }
}
[Constructable]
public RecipeFragment4()
: base(0x14ED)
{
base.Weight = 1.0;
Hue = 0;
}
public RecipeFragment4(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();
}
}
}

View File

@@ -0,0 +1,41 @@
/*Created by Hammerhand*/
using System;
using Server;
using Server.Items;
namespace Server.Items
{
public class RecipeFragment5 : Item
{
public override string DefaultName
{
get { return "Recipe Fragment 5"; }
}
[Constructable]
public RecipeFragment5()
: base(0x14ED)
{
base.Weight = 1.0;
Hue = 0;
}
public RecipeFragment5(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();
}
}
}

View File

@@ -0,0 +1,41 @@
/*Created by Hammerhand*/
using System;
using Server;
using Server.Items;
namespace Server.Items
{
public class RecipeFragment6 : Item
{
public override string DefaultName
{
get { return "Recipe Fragment 6"; }
}
[Constructable]
public RecipeFragment6()
: base(0x14ED)
{
base.Weight = 1.0;
Hue = 0;
}
public RecipeFragment6(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();
}
}
}

View File

@@ -0,0 +1,41 @@
/*Created by Hammerhand*/
using System;
using Server;
using Server.Items;
namespace Server.Items
{
public class RecipeFragment7 : Item
{
public override string DefaultName
{
get { return "Recipe Fragment 7"; }
}
[Constructable]
public RecipeFragment7()
: base(0x14ED)
{
base.Weight = 1.0;
Hue = 0;
}
public RecipeFragment7(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();
}
}
}

View File

@@ -0,0 +1,41 @@
/*Created by Hammerhand*/
using System;
using Server;
using Server.Items;
namespace Server.Items
{
public class RecipeFragment8 : Item
{
public override string DefaultName
{
get { return "Recipe Fragment 8"; }
}
[Constructable]
public RecipeFragment8()
: base(0x14ED)
{
base.Weight = 1.0;
Hue = 0;
}
public RecipeFragment8(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();
}
}
}

View File

@@ -0,0 +1,41 @@
/*Created by Hammerhand*/
using System;
using Server;
using Server.Items;
namespace Server.Items
{
public class RecipeFragment9 : Item
{
public override string DefaultName
{
get { return "Recipe Fragment 9"; }
}
[Constructable]
public RecipeFragment9()
: base(0x14ED)
{
base.Weight = 1.0;
Hue = 0;
}
public RecipeFragment9(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();
}
}
}

View File

@@ -0,0 +1,40 @@
/*Created by Hammerhand*/
using System;
using Server;
using Server.Items;
namespace Server.Items
{
public class SpecialGingerbreadRecipe : Item
{
public override string DefaultName
{
get { return "SpecialGingerbreadRecipe"; }
}
[Constructable]
public SpecialGingerbreadRecipe() : base(0xFF4)
{
base.Weight = 1.0;
Hue = 0;
}
public SpecialGingerbreadRecipe(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();
}
}
}

View File

@@ -0,0 +1,159 @@
using System;
namespace Server.Items
{
public abstract class BaseSpecialGingerbreadCookie : Item
{
public virtual int Bonus{ get{ return 0; } }
public virtual StatType Type{ get{ return StatType.Str; } }
public BaseSpecialGingerbreadCookie(int hue)
: base(0x2BE2)
{
Weight = 1.0;
Hue = 0;
}
public BaseSpecialGingerbreadCookie(Serial serial)
: base(serial)
{
}
public virtual bool Apply( Mobile from )
{
bool applied = Spells.SpellHelper.AddStatOffset( from, Type, Bonus, TimeSpan.FromMinutes( 30.0 ) );
if ( !applied )
from.SendLocalizedMessage( 502173 ); // You are already under a similar effect.
return applied;
}
public override void OnDoubleClick( Mobile from )
{
if ( !IsChildOf( from.Backpack ) )
{
from.SendLocalizedMessage( 1042001 ); // That must be in your pack for you to use it.
}
else if ( Apply( from ) )
{
from.FixedEffect( 0x375A, 10, 15 );
from.PlaySound( 0x1E7 );
Delete();
}
}
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 class SpecialGingerbreadCookie1 : BaseSpecialGingerbreadCookie
{
public override int Bonus{ get{ return 10; } }
public override StatType Type{ get{ return StatType.Str; } }
//public override int LabelNumber{ get{ return 1041073; } } // prized fish
[Constructable]
public SpecialGingerbreadCookie1() : base( 151 )
{
this.Name = "Special Gingerbread Cookie 1";
}
public SpecialGingerbreadCookie1( 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 class SpecialGingerbreadCookie2 : BaseSpecialGingerbreadCookie
{
public override int Bonus{ get{ return 10; } }
public override StatType Type{ get{ return StatType.Int; } }
//public override int LabelNumber{ get{ return 1041073; } } // prized fish
[Constructable]
public SpecialGingerbreadCookie2() : base( 151 )
{
this.Name = "Special Gingerbread Cookie 2";
}
public SpecialGingerbreadCookie2( 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 class SpecialGingerbreadCookie3 : BaseSpecialGingerbreadCookie
{
public override int Bonus{ get{ return 10; } }
public override StatType Type{ get{ return StatType.Dex; } }
//public override int LabelNumber{ get{ return 1041073; } } // prized fish
[Constructable]
public SpecialGingerbreadCookie3() : base( 151 )
{
this.Name = "Special Gingerbread Cookie 3";
}
public SpecialGingerbreadCookie3( 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,84 @@
/*Created by Hammerhand*/
using System;
using System.Collections;
using Server;
using Server.Items;
using Server.Gumps;
using Server.Misc;
using Server.Mobiles;
namespace Server.Mobiles
{
[CorpseName( "a mutated reindeer corpse" )]
public class BaseMutatedReindeer : BaseCreature
{
public BaseMutatedReindeer() : base( AIType.AI_Animal, FightMode.Aggressor, 10, 1, 0.2, 0.4 )
{
Title = "the Mutated Reindeer";
Body = 0x313;
SetStr( 600, 750 );
SetDex( 800, 850 );
SetInt( 1000, 1500 );
SetHits( 1500, 2500 );
SetDamage( 25, 90 );
SetDamageType( ResistanceType.Physical, 100 );
SetResistance( ResistanceType.Physical, 70, 95 );
SetResistance(ResistanceType.Cold, 100, 110);
SetResistance(ResistanceType.Poison, 75, 90);
SetResistance(ResistanceType.Energy, 60, 75);
SetSkill( SkillName.MagicResist, 86.8, 104.5 );
SetSkill( SkillName.Tactics, 99.8, 107.5 );
SetSkill( SkillName.Wrestling, 109.8, 117.5 );
Fame = 1000;
Karma = -1000;
VirtualArmor = 70;
Tamable = false;
}
public BaseMutatedReindeer(Serial serial)
: base(serial)
{
}
public override int GetAttackSound()
{
return 0x82;
}
public override int GetHurtSound()
{
return 0x83;
}
public override int GetDeathSound()
{
return 0x84;
}
public override bool AlwaysMurderer { get { return true; } }
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();
}
}
}

View File

@@ -0,0 +1,117 @@
/*Created by Hammerhand*/
using System;
using Server;
using Server.Items;
using Server.Misc;
using Server.Mobiles;
namespace Server.Mobiles
{
public class MobileDeleteTime : Timer
{
private Item mob;
public MobileDeleteTime(Item m)
: base(TimeSpan.FromSeconds(15))
{
mob = m;
Priority = TimerPriority.OneSecond;
}
protected override void OnTick()
{
if (mob == null || mob.Deleted)
{
Stop();
return;
}
mob.Delete();
}
}
public class Blitzed : BaseMutatedReindeer
{
[Constructable]
public Blitzed()
{
Name = "Blitzed";
Hue = 1818;
}
public override void GenerateLoot()
{
AddLoot(LootPack.Meager);
if (m_Spawning)
{
PackItem(new RecipeFragment9());
}
}
public override bool AlwaysMurderer
{
get
{
return true;
}
}
public Blitzed(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();
}
public override bool OnBeforeDeath()
{
// spawn the item
Item item = (Item)Activator.CreateInstance(typeof(Moongate));
Moongate moon = (Moongate)item;
moon.TargetMap = Map.Trammel; //or map
moon.Target = new Point3D(1422, 1697, 0); // Set map X,Y,Z location here
// Map map = Map.Trammel;
Point3D pnt = GetSpawnLocation();
moon.MoveToWorld(pnt, this.Map);
Timer m_timer = new MobileDeleteTime(item);
m_timer.Start();
return base.OnBeforeDeath();
}
//from champspawn.cs
public Point3D GetSpawnLocation()
{
int m_SpawnRange = 2;
Map map = Map;
if (map == null)
return Location;
// Try 20 times to find a spawnable location.
for (int i = 0; i < 20; i++)
{
int x = Location.X + (Utility.Random((m_SpawnRange * 2) + 1) - m_SpawnRange);
int y = Location.Y + (Utility.Random((m_SpawnRange * 2) + 1) - m_SpawnRange);
int z = Map.GetAverageZ(x, y);
if (Map.CanSpawnMobile(new Point2D(x, y), z))
return new Point3D(x, y, z);
}
return Location;
}
}
}

View File

@@ -0,0 +1,208 @@
/*Created by Hammerhand*/
using System;
using Server;
using Server.Misc;
using Server.Items;
namespace Server.Mobiles
{
[CorpseName("the Anti-Claus")]
public class KrassKringle : BaseCreature
{
public override bool IsScaredOfScaryThings { get { return false; } }
public override bool IsScaryToPets { get { return true; } }
public override bool BardImmune { get { return !Core.SE; } }
public override bool Unprovokable { get { return Core.SE; } }
public override bool Uncalmable { get { return Core.SE; } }
public override Poison PoisonImmune { get { return Poison.Lethal; } }
private static bool m_Talked; // flag to prevent spam
string[] kfcsay = new string[] // things to say while greeting
{
"HoHoHo??? Ha Ha HA!!!!",
"So you think you're GOOD huh?",
"I'm going to feed you to my reindeer!",
};
[Constructable]
public KrassKringle() : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = "Krass Kringle";
Title = "The Anti Claus";
Female = false;
Body = 0x190;
Hue = 1873;
NameHue = 1272;
FancyShirt shirt = new FancyShirt();
shirt.Hue = 1;
shirt.Movable = false;
AddItem(shirt);
Surcoat surcoat = new Surcoat();
surcoat.Hue = 1;
surcoat.Movable = false;
AddItem(surcoat);
LongPants longpants = new LongPants();
longpants.Hue = 1;
longpants.Movable = false;
AddItem(longpants);
Boots boots = new Boots();
boots.Hue = 1;
boots.Movable = false;
AddItem(boots);
WizardsHat hat = new WizardsHat();
hat.Hue = 1;
hat.Movable = false;
AddItem(hat);
LeatherGloves gloves = new LeatherGloves();
gloves.Hue = 1;
gloves.Movable = false;
AddItem(gloves);
HairItemID = 0x203C;
HairHue = 1153;
FacialHairItemID = 0x204B;
FacialHairHue = 1153;
{
}
SetStr( 410, 580 );
SetDex( 185, 210 );
SetInt( 300, 450 );
SetDamage(40, 75);
SetHits(5000, 10000);
SetMana(5000);
SetResistance(ResistanceType.Physical, 65, 75);
SetResistance(ResistanceType.Fire, 35, 45);
SetResistance(ResistanceType.Cold, 100, 110);
SetResistance(ResistanceType.Poison, 75, 90);
SetResistance(ResistanceType.Energy, 60, 75);
SetSkill( SkillName.Fencing, 96.0, 117.5 );
SetSkill( SkillName.Macing, 95.0, 107.5 );
SetSkill( SkillName.MagicResist, 85.0, 107.5 );
SetSkill( SkillName.Swords, 85.0, 119.5 );
SetSkill( SkillName.Tactics, 95.0, 119.5 );
SetSkill( SkillName.Wrestling, 75.0, 97.5 );
SetSkill(SkillName.Anatomy, 90.1, 100.0);
SetSkill(SkillName.MagicResist, 140.1, 150.0);
SetSkill(SkillName.Necromancy, 100.5, 110.9);
SetSkill(SkillName.Healing, 70.2, 79.4);
Fame = 1000;
Karma = -15000;
VirtualArmor = 72;
switch ( Utility.Random( 7 ))
{
case 0: AddItem( new Longsword() ); break;
case 1: AddItem( new Cutlass() ); break;
case 2: AddItem( new Broadsword() ); break;
case 3: AddItem( new Axe() ); break;
case 4: AddItem( new Club() ); break;
case 5: AddItem( new Dagger() ); break;
case 6: AddItem( new Spear() ); break;
}
}
public override void GenerateLoot()
{
AddLoot(LootPack.UltraRich, 2);
if (m_Spawning)
{
PackItem(new RecipeFragment10());
}
}
public override bool AlwaysMurderer
{
get
{
return true;
}
}
public override int GetIdleSound()
{
return 0x2F8;
}
public override int GetAttackSound()
{
return 0x2C8;
}
public override int GetHurtSound()
{
return 0x2D1;
}
public override int GetDeathSound()
{
return 0x2F7;
}
public override void OnMovement(Mobile m, Point3D oldLocation)
{
if (m_Talked == false)
{
if (m.InRange(this, 4))
{
m_Talked = true;
SayRandom(kfcsay, this);
this.Move(GetDirectionTo(m.Location));
// Start timer to prevent spam
SpamTimer t = new SpamTimer();
t.Start();
}
}
}
private class SpamTimer : Timer
{
public SpamTimer() : base( TimeSpan.FromSeconds( 8 ) )
{
Priority = TimerPriority.OneSecond;
}
protected override void OnTick()
{
m_Talked = false;
}
}
private static void SayRandom( string[] say, Mobile m )
{
m.Say( say[Utility.Random( say.Length )] );
}
public KrassKringle(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,126 @@
/* Created by Hammerhand*/
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( "Mrs.Claus's Corpse" )]
public class MrsClaus : BaseCreature
{
public virtual bool IsInvulnerable { get { return true; } }
[Constructable]
public MrsClaus()
: base(AIType.AI_Animal, FightMode.None, 10, 1, 0.2, 0.4)
{
InitStats(31, 41, 51);
Name = "Mrs. Claus";
Body = 0x191;
Hue = 1016;
AddItem(new Server.Items.FancyDress(Utility.RandomRedHue()));
AddItem(new Server.Items.Sandals());
int hairHue = 1072;
HairItemID = 0x2046;
Blessed = true;
}
public MrsClaus( Serial serial ) : base( serial ){}
public override void GetContextMenuEntries( Mobile from, List<ContextMenuEntry> list )
{ base.GetContextMenuEntries( from, list );
list.Add( new MrsClausEntry( 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 MrsClausEntry : ContextMenuEntry
{
private Mobile m_Mobile;
private Mobile m_Giver;
public MrsClausEntry( 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;
{
if ( ! mobile.HasGump( typeof( MrsClausGump ) ) )
{
mobile.SendGump(new MrsClausGump(mobile));
mobile.AddToBackpack(new RecipeBox());
}
}
}
}
public override bool OnDragDrop( Mobile from, Item dropped )
{
Mobile m = from;
PlayerMobile mobile = m as PlayerMobile;
if ( mobile != null){
if (dropped is SpecialGingerbreadRecipe)
{
if (dropped.Amount != 1)
{
this.PrivateOverheadMessage(MessageType.Regular, 1153, false, "This isnt the recipe!", mobile.NetState);
return false;
}
dropped.Delete();
mobile.AddToBackpack(new Gold(20000));
switch (Utility.Random(3))
{
case 0: mobile.AddToBackpack(new SpecialGingerbreadCookie1()); break;
case 1: mobile.AddToBackpack(new SpecialGingerbreadCookie2()); break;
case 2: mobile.AddToBackpack(new SpecialGingerbreadCookie3()); break;
this.PrivateOverheadMessage(MessageType.Regular, 1153, false, "Thankyou for getting my recipe back! Merry Christmas!", 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, "I have no need for this...", mobile.NetState);
}
}
return false;
}
}
}

View File

@@ -0,0 +1,120 @@
/*Created by Hammerhand*/
using System;
using System.Collections;
using Server.Items;
using Server.Targeting;
namespace Server.Mobiles
{
[CorpseName( "a mutated elf corpse" )]
public class MutatedElf : BaseCreature
{
private static bool m_Talked; // flag to prevent spam
string[] kfcsay = new string[] // things to say while greeting
{
"You sweet, me eat!",
"You good, be my food!",
"Fe Fi Fo Fum, you look yum yum!!!",
};
[Constructable]
public MutatedElf () : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = "A Mutated Elf";
Body = 53;
BaseSoundID = 427;
Hue = 2001;
SetStr( 767, 945 );
SetDex( 206, 275 );
SetInt( 456, 470 );
SetHits( 1476, 1552 );
SetDamage( 20, 25 );
SetDamageType( ResistanceType.Physical, 100 );
SetResistance( ResistanceType.Physical, 85, 95 );
SetResistance( ResistanceType.Fire, 30, 40 );
SetResistance( ResistanceType.Cold, 100, 105 );
SetResistance( ResistanceType.Poison, 80, 85 );
SetResistance( ResistanceType.Energy, 70, 75 );
SetSkill( SkillName.MagicResist, 125.1, 140.0 );
SetSkill( SkillName.Tactics, 90.1, 100.0 );
SetSkill( SkillName.Wrestling, 90.1, 100.0 );
Fame = 15000;
Karma = -15000;
VirtualArmor = 60;
}
public override void GenerateLoot()
{
AddLoot( LootPack.Rich, 2 );
}
public override bool CanRummageCorpses{ get{ return true; } }
public override Poison PoisonImmune{ get{ return Poison.Regular; } }
public override bool AlwaysMurderer { get { return true; } }
public override void OnMovement(Mobile m, Point3D oldLocation)
{
if (m_Talked == false)
{
if (m.InRange(this, 4))
{
m_Talked = true;
SayRandom(kfcsay, this);
this.Move(GetDirectionTo(m.Location));
// Start timer to prevent spam
SpamTimer t = new SpamTimer();
t.Start();
}
}
}
private class SpamTimer : Timer
{
public SpamTimer()
: base(TimeSpan.FromSeconds(8))
{
Priority = TimerPriority.OneSecond;
}
protected override void OnTick()
{
m_Talked = false;
}
}
private static void SayRandom(string[] say, Mobile m)
{
m.Say(say[Utility.Random(say.Length)]);
}
public MutatedElf(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();
}
}
}

View File

@@ -0,0 +1,366 @@
/*Created by Hammerhand*/
using System;
using Server;
using Server.Items;
using Server.Misc;
using Server.Mobiles;
namespace Server.Mobiles
{
public class Adolph : BaseMutatedReindeer
{
[Constructable]
public Adolph()
{
Name = "Adolph";
Hue = 1810;
}
public override void GenerateLoot()
{
AddLoot(LootPack.Meager);
if (m_Spawning)
{
PackItem(new RecipeFragment1());
}
}
public override bool AlwaysMurderer
{
get
{
return true;
}
}
public Adolph(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();
}
}
public class Masher : BaseMutatedReindeer
{
[Constructable]
public Masher()
{
Name = "Masher";
Hue = 1811;
}
public override void GenerateLoot()
{
AddLoot(LootPack.Meager);
if (m_Spawning)
{
PackItem(new RecipeFragment2());
}
}
public override bool AlwaysMurderer
{
get
{
return true;
}
}
public Masher(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();
}
}
public class Slasher : BaseMutatedReindeer
{
[Constructable]
public Slasher()
{
Name = "Slasher";
Hue = 1812;
}
public override void GenerateLoot()
{
AddLoot(LootPack.Meager);
if (m_Spawning)
{
PackItem(new RecipeFragment3());
}
}
public override bool AlwaysMurderer
{
get
{
return true;
}
}
public Slasher(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();
}
}
public class Smasher : BaseMutatedReindeer
{
[Constructable]
public Smasher()
{
Name = "Smasher";
Hue = 1813;
}
public override void GenerateLoot()
{
AddLoot(LootPack.Meager);
if (m_Spawning)
{
PackItem(new RecipeFragment4());
}
}
public override bool AlwaysMurderer
{
get
{
return true;
}
}
public Smasher(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();
}
}
public class Nixon : BaseMutatedReindeer
{
[Constructable]
public Nixon()
{
Name = "Nixon";
Hue = 1814;
}
public override void GenerateLoot()
{
AddLoot(LootPack.Meager);
if (m_Spawning)
{
PackItem(new RecipeFragment5());
}
}
public override bool AlwaysMurderer
{
get
{
return true;
}
}
public Nixon(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();
}
}
public class Gromet : BaseMutatedReindeer
{
[Constructable]
public Gromet()
{
Name = "Gromet";
Hue = 1815;
}
public override void GenerateLoot()
{
AddLoot(LootPack.Meager);
if (m_Spawning)
{
PackItem(new RecipeFragment6());
}
}
public override bool AlwaysMurderer
{
get
{
return true;
}
}
public Gromet(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();
}
}
public class Stupid : BaseMutatedReindeer
{
[Constructable]
public Stupid()
{
Name = "Stupid";
Hue = 1816;
}
public override void GenerateLoot()
{
AddLoot(LootPack.Meager);
if (m_Spawning)
{
PackItem(new RecipeFragment7());
}
}
public override bool AlwaysMurderer
{
get
{
return true;
}
}
public Stupid(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();
}
}
public class Slaughter : BaseMutatedReindeer
{
[Constructable]
public Slaughter()
{
Name = "Slaughter";
Hue = 1817;
}
public override void GenerateLoot()
{
AddLoot(LootPack.Meager);
if (m_Spawning)
{
PackItem(new RecipeFragment8());
}
}
public override bool AlwaysMurderer
{
get
{
return true;
}
}
public Slaughter(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();
}
}
}