Overwrite
Complete Overwrite of the Folder with the free shard. ServUO 57.3 has been added.
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
using System;
|
||||
using Server;
|
||||
using Server.Gumps;
|
||||
|
||||
namespace Server.Gumps
|
||||
{
|
||||
public class NorivarFinishGump : Gump
|
||||
{
|
||||
public NorivarFinishGump()
|
||||
: base( 200, 200 )
|
||||
{
|
||||
this.Closable=true;
|
||||
this.Disposable=true;
|
||||
this.Dragable=true;
|
||||
this.Resizable=false;
|
||||
this.AddPage(0);
|
||||
this.AddBackground(0, 0, 353, 118, 9270);
|
||||
this.AddAlphaRegion( 2, 2, 349, 114 );
|
||||
// this.AddItem(297, 38, 4168);
|
||||
this.AddLabel(118, 15, 1149, @"Quest Completed");
|
||||
this.AddLabel(48, 39, 255, @"Well done, you have collected all of the");
|
||||
this.AddLabel(48, 55, 255, @"items I requested for the Shield.");
|
||||
this.AddLabel(48, 71, 255, @"Here it is, May it serve you well.");
|
||||
// this.AddItem(12, 38, 4171);
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,81 @@
|
||||
using System;
|
||||
using Server;
|
||||
using Server.Commands;
|
||||
using Server.Gumps;
|
||||
using Server.Network;
|
||||
using Server.Items;
|
||||
using Server.Mobiles;
|
||||
|
||||
namespace Server.Gumps
|
||||
{
|
||||
public class NorivarGump : Gump
|
||||
{
|
||||
public static void Initialize()
|
||||
{
|
||||
CommandSystem.Register( "NorivarGump", AccessLevel.GameMaster, new CommandEventHandler( NorivarGump_OnCommand ) );
|
||||
}
|
||||
|
||||
private static void NorivarGump_OnCommand( CommandEventArgs e )
|
||||
{
|
||||
e.Mobile.SendGump( new NorivarGump( e.Mobile ) );
|
||||
}
|
||||
|
||||
public NorivarGump( 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, "The Quest of Endless Peril" );
|
||||
|
||||
|
||||
AddHtml( 107, 140, 300, 230, "<BODY>" +
|
||||
//----------------------/----------------------------------------------/
|
||||
"<BASEFONT COLOR=YELLOW>Noriar looks at you and smiles...<BR><BR>So the power of the church compels you? I am indeed the most fevorous Cleric in the land.<BR>" +
|
||||
"<BASEFONT COLOR=YELLOW>Ah, you look at my shield in such a way! So you wish one of these shields for yourself do you?<BR><BR>I have for you a VERY dangerous yet rewarding endeavor." +
|
||||
"<BASEFONT COLOR=YELLOW>I will craft you one if you would wish it, but the materials I require are very rare. They are called Ancient Granite Stones and can be found on Dartmoor Ponies at Trinsic Gate.<BR><BR>These are powerful beasts; not easily killed in battle. Should you retrieve 35 of these shards - I shall consider you worthy and will craft you a shield." +
|
||||
"</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 ) //Function for GumpButtonType.Reply Buttons
|
||||
{
|
||||
Mobile from = state.Mobile;
|
||||
|
||||
switch ( info.ButtonID )
|
||||
{
|
||||
case 0: //Case uses the ActionIDs defenied above. Case 0 defenies the actions for the button with the action id 0
|
||||
{
|
||||
//Cancel
|
||||
from.SendMessage( "The Glory of the Church is behind you, if your faith is strong you shall not fail. Safe Journies!" );
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,46 @@
|
||||
using System;
|
||||
using Server;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class GraniteStone : Item
|
||||
{
|
||||
[Constructable]
|
||||
public GraniteStone() : this( 1 )
|
||||
{
|
||||
}
|
||||
|
||||
[Constructable]
|
||||
public GraniteStone( int amount ) : base( 6009 )
|
||||
{
|
||||
Name = "Ancient Granite Stone";
|
||||
Stackable = true;
|
||||
Hue = 1153;
|
||||
Weight = 0.1;
|
||||
Amount = amount;
|
||||
}
|
||||
|
||||
public GraniteStone( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
//public override Item Dupe( int amount )
|
||||
//{
|
||||
//return base.Dupe( new GraniteStone( amount ), amount );
|
||||
//}
|
||||
|
||||
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();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,138 @@
|
||||
using System;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a pony corpse" )]
|
||||
public class DartmoorPony : BaseCreature
|
||||
{
|
||||
public override bool IsScaredOfScaryThings{ get{ return false; } }
|
||||
public override bool IsScaryToPets{ get{ return true; } }
|
||||
|
||||
[Constructable]
|
||||
public DartmoorPony () : this( false, 1.5 )
|
||||
{
|
||||
}
|
||||
|
||||
[Constructable]
|
||||
public DartmoorPony ( bool summoned, double scalar ) : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.4, 0.8 )
|
||||
{
|
||||
Name = "a Dartmoor Pony";
|
||||
Body = 200;
|
||||
Hue = 2208;
|
||||
|
||||
|
||||
SetStr( (int)(251*scalar), (int)(350*scalar) );
|
||||
SetDex( (int)(76*scalar), (int)(100*scalar) );
|
||||
SetInt( (int)(101*scalar), (int)(150*scalar) );
|
||||
|
||||
SetHits( (int)(151*scalar), (int)(210*scalar) );
|
||||
|
||||
SetDamage( (int)(15*scalar), (int)(30*scalar) );
|
||||
|
||||
SetDamageType( ResistanceType.Physical, 100 );
|
||||
|
||||
|
||||
SetResistance( ResistanceType.Cold, (int)(20*scalar), (int)(40*scalar) );
|
||||
SetResistance( ResistanceType.Poison, (int)(20*scalar), (int)(35*scalar) );
|
||||
SetResistance( ResistanceType.Energy, (int)(40*scalar), (int)(50*scalar) );
|
||||
|
||||
SetSkill( SkillName.MagicResist, (190.1*scalar), (210.0*scalar) );
|
||||
SetSkill( SkillName.Tactics, (100.1*scalar), (100.0*scalar) );
|
||||
SetSkill( SkillName.Wrestling, (100.1*scalar), (150.0*scalar) );
|
||||
SetSkill( SkillName.Magery, (100.1*scalar), (150.0*scalar) );
|
||||
SetSkill( SkillName.EvalInt, (100.1*scalar), (150.0*scalar) );
|
||||
SetSkill( SkillName.Meditation, (100.1*scalar), (150.0*scalar) );
|
||||
|
||||
PackGold( 100, 250 );
|
||||
//if ( 0.2 > Utility.RandomDouble() )
|
||||
PackItem( new GraniteStone(1) );
|
||||
|
||||
}
|
||||
|
||||
public override int GetAngerSound()
|
||||
{
|
||||
return 541;
|
||||
}
|
||||
|
||||
public override int GetIdleSound()
|
||||
{
|
||||
if ( !Controlled )
|
||||
return 541;
|
||||
|
||||
return base.GetIdleSound();
|
||||
}
|
||||
|
||||
public override int GetDeathSound()
|
||||
{
|
||||
if ( !Controlled )
|
||||
return 542;
|
||||
|
||||
return base.GetDeathSound();
|
||||
}
|
||||
|
||||
|
||||
public override int GetHurtSound()
|
||||
{
|
||||
if ( Controlled )
|
||||
return 320;
|
||||
|
||||
return base.GetHurtSound();
|
||||
}
|
||||
|
||||
|
||||
public override void OnGaveMeleeAttack( Mobile defender )
|
||||
{
|
||||
base.OnGaveMeleeAttack( defender );
|
||||
|
||||
if ( 0.2 > Utility.RandomDouble() )
|
||||
defender.Combatant = null;
|
||||
}
|
||||
|
||||
public override void OnDamage( int amount, Mobile from, bool willKill )
|
||||
{
|
||||
if ( Controlled || Summoned )
|
||||
{
|
||||
Mobile master = ( this.ControlMaster );
|
||||
|
||||
if ( master == null )
|
||||
master = this.SummonMaster;
|
||||
|
||||
if ( master != null && master.Player && master.Map == this.Map && master.InRange( Location, 20 ) )
|
||||
{
|
||||
if ( master.Mana >= amount )
|
||||
{
|
||||
master.Mana -= amount;
|
||||
}
|
||||
else
|
||||
{
|
||||
amount -= master.Mana;
|
||||
master.Mana = 0;
|
||||
master.Damage( amount );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
base.OnDamage( amount, from, willKill );
|
||||
}
|
||||
|
||||
public override bool BardImmune{ get{ return true; } }
|
||||
public override Poison PoisonImmune{ get{ return Poison.Lethal; } }
|
||||
|
||||
public DartmoorPony ( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
134
Scripts/Scripts-master/Quests/Endless Peril/Mobiles/Norivar.cs
Normal file
134
Scripts/Scripts-master/Quests/Endless Peril/Mobiles/Norivar.cs
Normal file
@@ -0,0 +1,134 @@
|
||||
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( "Norivar's Corpse" )]
|
||||
public class Norivar : Mobile
|
||||
{
|
||||
public virtual bool IsInvulnerable{ get{ return true; } }
|
||||
[Constructable]
|
||||
public Norivar()
|
||||
{
|
||||
Name = "Norivar";
|
||||
Title = "the Smite Cleric";
|
||||
Body = 0x190;
|
||||
CantWalk = true;
|
||||
Hue = Utility.RandomSkinHue();
|
||||
AddItem( new Server.Items.Boots( GetBootsHue() ) );
|
||||
AddItem( new Server.Items.BoneCrusher() );
|
||||
AddItem( new Server.Items.RelicOfTheChurch() );
|
||||
AddItem( new Server.Items.HolyKnightsBreastplate() );
|
||||
AddItem( new Server.Items.Kilt() );
|
||||
AddItem( new Server.Items.BodySash() );
|
||||
int hairHue = 1153;
|
||||
|
||||
switch ( Utility.Random( 1 ) )
|
||||
{
|
||||
case 0: AddItem( new LongHair( hairHue ) ); break;
|
||||
}
|
||||
|
||||
Blessed = true;
|
||||
|
||||
}
|
||||
|
||||
public virtual int GetBootsHue()
|
||||
{
|
||||
return 1623;
|
||||
}
|
||||
|
||||
public Norivar( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void GetContextMenuEntries( Mobile from, List<ContextMenuEntry> list )
|
||||
{
|
||||
base.GetContextMenuEntries( from, list );
|
||||
list.Add( new NorivarEntry( 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 NorivarEntry : ContextMenuEntry
|
||||
{
|
||||
private Mobile m_Mobile;
|
||||
private Mobile m_Giver;
|
||||
|
||||
public NorivarEntry( 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( NorivarGump ) ) )
|
||||
{
|
||||
mobile.SendGump( new NorivarGump( mobile ));
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public override bool OnDragDrop( Mobile from, Item dropped )
|
||||
{
|
||||
Mobile m = from;
|
||||
PlayerMobile mobile = m as PlayerMobile;
|
||||
|
||||
if ( mobile != null)
|
||||
{
|
||||
if( dropped is GraniteStone )
|
||||
{
|
||||
if(dropped.Amount!=35)
|
||||
{
|
||||
this.PrivateOverheadMessage( MessageType.Regular, 1153, false, "That is not the amount I asked for!", mobile.NetState );
|
||||
return false;
|
||||
}
|
||||
|
||||
dropped.Delete();
|
||||
mobile.AddToBackpack( new RelicOfTheChurch() );
|
||||
mobile.SendGump( new NorivarFinishGump());
|
||||
|
||||
return true;
|
||||
}
|
||||
else if ( dropped is GraniteStone)
|
||||
{
|
||||
this.PrivateOverheadMessage( MessageType.Regular, 1153, 1054071, mobile.NetState );
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
this.PrivateOverheadMessage( MessageType.Regular, 1153, false, "Why on earth would I want to have that?", mobile.NetState );
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,113 @@
|
||||
using System;
|
||||
using Server.Items;
|
||||
using Server.Mobiles;
|
||||
using Server.Network;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class RelicOfTheChurch : BaseShield
|
||||
{
|
||||
public override int BasePhysicalResistance{ get{ return 10; } }
|
||||
public override int BaseFireResistance{ get{ return 8; } }
|
||||
public override int BaseColdResistance{ get{ return 8; } }
|
||||
public override int BasePoisonResistance{ get{ return 8; } }
|
||||
public override int BaseEnergyResistance{ get{ return 8; } }
|
||||
|
||||
public override int InitMinHits{ get{ return 255; } }
|
||||
public override int InitMaxHits{ get{ return 255; } }
|
||||
|
||||
public override int AosStrReq{ get{ return 50; } }
|
||||
|
||||
public override int ArmorBase{ get{ return 30; } }
|
||||
|
||||
[Constructable]
|
||||
public RelicOfTheChurch() : base( 0x1B76 )
|
||||
{
|
||||
|
||||
ArmorAttributes.SelfRepair = 8;
|
||||
Attributes.ReflectPhysical = 15;
|
||||
Attributes.LowerManaCost = 20;
|
||||
Attributes.SpellChanneling = 1;
|
||||
Attributes.CastRecovery = 2;
|
||||
Attributes.DefendChance = 15;
|
||||
Attributes.CastSpeed = 2;
|
||||
Attributes.SpellDamage = 10;
|
||||
Name = "Relic Of The Church";
|
||||
Hue = 1153;
|
||||
LootType=LootType.Blessed;
|
||||
}
|
||||
|
||||
public override void OnDoubleClick( Mobile from )
|
||||
{
|
||||
if( from.InRange( this.GetWorldLocation(), 1 ) )
|
||||
{
|
||||
if ( from.Criminal )
|
||||
{
|
||||
from.SendMessage( "Thou art a criminal and the Church does not approve." );
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
|
||||
if ( from.BodyValue == 400 || from.BodyValue == 401)
|
||||
{
|
||||
from.SendMessage("The power of the Church Compels you!");
|
||||
from.BodyMod = 123;
|
||||
Effects.SendLocationParticles( EffectItem.Create( from.Location, from.Map, EffectItem.DefaultDuration ), 0, 0, 0, 0, 0, 5060, 0 );
|
||||
Effects.PlaySound( from.Location, from.Map, 0x243 );
|
||||
|
||||
Effects.SendMovingParticles( new Entity( Serial.Zero, new Point3D( from.X - 6, from.Y - 6, from.Z + 15 ), from.Map ), from, 0x36D4, 7, 0, false, true, 0x497, 0, 9502, 1, 0, (EffectLayer)255, 0x100 );
|
||||
Effects.SendMovingParticles( new Entity( Serial.Zero, new Point3D( from.X - 4, from.Y - 6, from.Z + 15 ), from.Map ), from, 0x36D4, 7, 0, false, true, 0x497, 0, 9502, 1, 0, (EffectLayer)255, 0x100 );
|
||||
Effects.SendMovingParticles( new Entity( Serial.Zero, new Point3D( from.X - 6, from.Y - 4, from.Z + 15 ), from.Map ), from, 0x36D4, 7, 0, false, true, 0x497, 0, 9502, 1, 0, (EffectLayer)255, 0x100 );
|
||||
|
||||
Effects.SendTargetParticles( from, 0x375A, 35, 90, 0x00, 0x00, 9502, (EffectLayer)255, 0x100 );
|
||||
from.Str += 25;
|
||||
from.Int += 25;
|
||||
from.Dex += 25;
|
||||
}
|
||||
else if ( from.BodyMod == 123 )
|
||||
{
|
||||
if ( from.BodyValue == 401 )
|
||||
{
|
||||
from.Str -= 25;
|
||||
from.Int -= 25;
|
||||
from.Dex -= 25;
|
||||
from.BodyMod = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
from.Str -= 25;
|
||||
from.Int -= 25;
|
||||
from.Dex -= 25;
|
||||
from.BodyMod = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
from.SendLocalizedMessage( 500446 ); // That is too far away.
|
||||
}
|
||||
}
|
||||
|
||||
public RelicOfTheChurch( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user