Overwrite
Complete Overwrite of the Folder with the free shard. ServUO 57.3 has been added.
This commit is contained in:
@@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
147
Scripts/Scripts-master/Quests/SpellWeavingQuest/Equestrius.cs
Normal file
147
Scripts/Scripts-master/Quests/SpellWeavingQuest/Equestrius.cs
Normal 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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;}}}
|
||||
@@ -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; }}}}}
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user