Overwrite
Complete Overwrite of the Folder with the free shard. ServUO 57.3 has been added.
This commit is contained in:
101
Scripts/Services/MondainsLegacyQuests/Helpers/PacketOverrides.cs
Normal file
101
Scripts/Services/MondainsLegacyQuests/Helpers/PacketOverrides.cs
Normal file
@@ -0,0 +1,101 @@
|
||||
using System;
|
||||
using Server.Mobiles;
|
||||
using Server.Network;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Engines.Quests
|
||||
{
|
||||
public sealed class HeritagePacket : Packet
|
||||
{
|
||||
public static readonly Packet Close = Packet.SetStatic(new HeritagePacket(false, 0xFF));
|
||||
public HeritagePacket(bool female, short type)
|
||||
: base(0xBF)
|
||||
{
|
||||
this.EnsureCapacity(7);
|
||||
|
||||
this.m_Stream.Write((short)0x2A);
|
||||
this.m_Stream.Write((byte)(female ? 1 : 0));
|
||||
this.m_Stream.Write((byte)type);
|
||||
}
|
||||
}
|
||||
|
||||
public class PacketOverrides
|
||||
{
|
||||
public static void Initialize()
|
||||
{
|
||||
Timer.DelayCall(TimeSpan.Zero, new TimerCallback(Override));
|
||||
}
|
||||
|
||||
public static void Override()
|
||||
{
|
||||
PacketHandlers.RegisterEncoded(0x32, true, new OnEncodedPacketReceive(QuestButton));
|
||||
PacketHandlers.RegisterExtended(0x2A, true, new OnPacketReceive(HeritageTransform));
|
||||
}
|
||||
|
||||
public static void QuestButton(NetState state, IEntity e, EncodedReader reader)
|
||||
{
|
||||
if (state.Mobile is PlayerMobile)
|
||||
{
|
||||
PlayerMobile from = (PlayerMobile)state.Mobile;
|
||||
|
||||
from.CloseGump(typeof(MondainQuestGump));
|
||||
from.SendGump(new MondainQuestGump(from));
|
||||
}
|
||||
}
|
||||
|
||||
public static void HeritageTransform(NetState state, PacketReader reader)
|
||||
{
|
||||
Mobile m = state.Mobile;
|
||||
|
||||
if (reader.Size == 5)
|
||||
{
|
||||
m.SendLocalizedMessage(1073645); // You may try this again later...
|
||||
}
|
||||
else if (reader.Size == 15 && HeritageQuester.Check(m))
|
||||
{
|
||||
bool proceed = false;
|
||||
|
||||
if (HeritageQuester.IsPending(m))
|
||||
{
|
||||
proceed = true;
|
||||
|
||||
HeritageQuester quester = HeritageQuester.Pending(m);
|
||||
m.Race = quester.Race;
|
||||
|
||||
quester.CheckCompleted(m, true); // removes done quests
|
||||
|
||||
if (m.Race == Race.Elf)
|
||||
m.SendLocalizedMessage(1073653); // You are now fully initiated into the Elven culture.
|
||||
else if (m.Race == Race.Human)
|
||||
m.SendLocalizedMessage(1073654); // You are now fully human.
|
||||
}
|
||||
else if (RaceChangeToken.IsPending(m))
|
||||
{
|
||||
var race = RaceChangeToken.GetPendingRace(m);
|
||||
|
||||
if (race != null)
|
||||
{
|
||||
m.Race = race;
|
||||
|
||||
proceed = true;
|
||||
m.SendLocalizedMessage(1111914); // You have successfully changed your race.
|
||||
|
||||
RaceChangeToken.OnRaceChange(m);
|
||||
}
|
||||
}
|
||||
|
||||
if(proceed)
|
||||
{
|
||||
m.Hue = reader.ReadUInt16();
|
||||
m.HairItemID = reader.ReadUInt16();
|
||||
m.HairHue = reader.ReadUInt16();
|
||||
m.FacialHairItemID = reader.ReadUInt16();
|
||||
m.FacialHairHue = reader.ReadUInt16();
|
||||
}
|
||||
}
|
||||
|
||||
HeritageQuester.RemovePending(m);
|
||||
RaceChangeToken.RemovePending(m);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user