ML quest system; first SVN release.
Secondary changes: - Region fixes, mainly for New Haven. - Recipe system changes. - Enabled ML craftables. - Dyeing/cutting restrictions for quest items. - Moved IsInvulnerable from BaseVendor to BaseCreature. - Moved RandomBrightHue to Utility. - Items no longer decay when attached to a spawner. - Quest item hue is now faked through packets, instead of overriding Hue. - Re-enabled item drag effects for SA clients. - Fixed AssignRandomFacialHair bug in Utility. - Added random hue comments to Utility.
This commit is contained in:
parent
5c7af18dfb
commit
35fbffdb51
167 changed files with 23218 additions and 234 deletions
141
Scripts/Engines/MLQuests/Mobiles/SirHelper.cs
Normal file
141
Scripts/Engines/MLQuests/Mobiles/SirHelper.cs
Normal file
|
|
@ -0,0 +1,141 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using Server;
|
||||
using Server.Engines.MLQuests.Gumps;
|
||||
using Server.Gumps;
|
||||
using Server.Items;
|
||||
using Server.Mobiles;
|
||||
using Server.Network;
|
||||
|
||||
namespace Server.Engines.MLQuests.Mobiles
|
||||
{
|
||||
public class SirHelper : Mage
|
||||
{
|
||||
private static readonly Gump m_Gump = new InfoNPCGump( 1078029, 1078028 );
|
||||
private static readonly TimeSpan m_ShoutDelay = TimeSpan.FromSeconds( 20 );
|
||||
private static readonly TimeSpan m_ShoutCooldown = TimeSpan.FromDays( 1 ); // TODO: Verify, could be a lot longer... or until a restart even
|
||||
|
||||
private DateTime m_NextShout;
|
||||
|
||||
public override bool IsActiveVendor { get { return false; } }
|
||||
|
||||
[Constructable]
|
||||
public SirHelper()
|
||||
{
|
||||
Name = "Sir Helper";
|
||||
Title = "the Profession Guide"; // TODO: Don't display in paperdoll
|
||||
|
||||
Hue = 0x83EA;
|
||||
|
||||
Direction = Direction.South;
|
||||
Frozen = true;
|
||||
}
|
||||
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
}
|
||||
|
||||
public override bool GetGender()
|
||||
{
|
||||
return false; // male
|
||||
}
|
||||
|
||||
public override void CheckMorph()
|
||||
{
|
||||
}
|
||||
|
||||
public override void InitOutfit()
|
||||
{
|
||||
HairItemID = 0x203C;
|
||||
FacialHairItemID = 0x204D;
|
||||
HairHue = FacialHairHue = 0x8A7;
|
||||
|
||||
AddItem( new Sandals() );
|
||||
|
||||
Item item;
|
||||
|
||||
item = new Cloak();
|
||||
item.ItemID = 0x26AD;
|
||||
item.Hue = 0x455;
|
||||
AddItem( item );
|
||||
|
||||
item = new Robe();
|
||||
item.ItemID = 0x26AE;
|
||||
item.Hue = 0x4AB;
|
||||
AddItem( item );
|
||||
|
||||
item = new Backpack();
|
||||
item.Movable = false;
|
||||
AddItem( item );
|
||||
}
|
||||
|
||||
public override void OnDoubleClick( Mobile from )
|
||||
{
|
||||
if ( from.CanBeginAction( this ) )
|
||||
{
|
||||
from.BeginAction( this );
|
||||
Timer.DelayCall<Mobile>( m_ShoutCooldown, EndLock, from );
|
||||
}
|
||||
|
||||
MLQuestSystem.TurnToFace( this, from );
|
||||
from.SendGump( m_Gump );
|
||||
|
||||
// Paperdoll doesn't open
|
||||
//base.OnDoubleClick( from );
|
||||
}
|
||||
|
||||
public override void OnThink()
|
||||
{
|
||||
base.OnThink();
|
||||
|
||||
if ( m_NextShout <= DateTime.Now )
|
||||
{
|
||||
Packet shoutPacket = null;
|
||||
|
||||
foreach ( NetState state in GetClientsInRange( 12 ) )
|
||||
{
|
||||
Mobile m = state.Mobile;
|
||||
|
||||
if ( m.CanSee( this ) && m.InLOS( this ) && m.CanBeginAction( this ) )
|
||||
{
|
||||
if ( shoutPacket == null )
|
||||
shoutPacket = Packet.Acquire( new MessageLocalized( Serial, Body, MessageType.Regular, 946, 3, 1078099, Name, "" ) ); // Double Click On Me For Help!
|
||||
|
||||
state.Send( shoutPacket );
|
||||
}
|
||||
}
|
||||
|
||||
Packet.Release( shoutPacket );
|
||||
|
||||
m_NextShout = DateTime.Now + m_ShoutDelay;
|
||||
}
|
||||
}
|
||||
|
||||
private void EndLock( Mobile m )
|
||||
{
|
||||
m.EndAction( this );
|
||||
}
|
||||
|
||||
public SirHelper( 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();
|
||||
|
||||
Frozen = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue