using System;
using System.Diagnostics;
using System.Globalization;
using LavishScriptAPI;
using MRBot.IsxEq2.AbilityEffect;
using MRBot.IsxEq2.CharacterActor;
using MRBot.IsxEq2.InventoryConsignment;
using MRBot.IsxEq2.UI;
using MRBot.IsxEq2.Utility;
namespace MRBot.IsxEq2
{
///
/// This class is used to access all of the features of ISXEQ2.
///
public static class Extension
{
#region Top Level Objects
///
/// Allows interaction with Achievements. Accepts the arguments from EQ2_ExamineAchievment Event.
///
/// achievement type
/// achievement id
/// Achievement
public static Achievement Achievement(string type, int id)
{
Trace.WriteLine(String.Format("Extension:Achievement({0}, {1})", type, id.ToString(CultureInfo.InvariantCulture)));
return new Achievement(LavishScript.Objects.GetObject("Achievement", type, id.ToString(CultureInfo.InvariantCulture)));
}
///
/// Retrieves the actor by id.
///
/// actor id
/// Actor
public static Actor Actor(int id)
{
Trace.WriteLine(String.Format("Extension:Actor({0})", id.ToString(CultureInfo.InvariantCulture)));
return new Actor(LavishScript.Objects.GetObject("Actor", id.ToString(CultureInfo.InvariantCulture)));
}
///
/// Retrieves the actor by search criteria.
///
/// search criteria
/// Actor
/// ///
/// Search Options:
/// pc - nearest pc
/// npc - nearest npc
/// NamedNPC - nearest named npc
/// guild, "guild" - nearest actor with that guild tag
/// pet - nearest pet that is not your own
/// mypet - your pet, or NULL
/// tsunit - nearest trade skill unit
/// resource - nearest resource node
/// nokillnpc - nearest no kill npc
/// special - nearest special actor
/// corpse - nearest corpse
/// me - me as actor
/// chest - nearest chest
/// door - nearest door
/// level, # - nearest actor of that level
/// levels, #, # - nearest actor between the two levels given
/// id, # - returns the actor with the id given
/// notid, # - excludes the actor with the id given
/// class, "class" - nearest actor with class given
/// race, "race" - nearest actor with race given
/// radius, # - nearest actor within the radius given (you are the center)
/// radiusr, #, # - nearest actor between the two radii (you are the center)
/// xzrange, # - nearest actor within the 2 dimmensional range
/// yrange, # - nearest actor within the supplied y range (vertical)
/// nopcnear [, #] - nearest actor for which there is no PC within the given radius from it. If no argument is given, then it defaults to a range of 100
/// loc,#,# [,#] - actor at the location provided X, Z, or X, Z, Y if third parameter provided
/// "string" - nearest actor with that string in their name
///
public static Actor Actor(params string[] search)
{
Trace.WriteLine(String.Format("Extension:Actor({0})", String.Join(", ", search)));
return new Actor(LavishScript.Objects.GetObject("Actor", search));
}
///
/// Retrieves a choice window object from the game world. This TLO returns the last choice window opened
/// or the only one, if you only have one choice window up.
/// (If you have no choice windows up, then it returns NULL)
///
public static ChoiceWindow ChoiceWindow
{
get
{
Trace.WriteLine(String.Format("Extension:ChoiceWindow"));
return new ChoiceWindow(LavishScript.Objects.GetObject("ChoiceWindow"));
}
}
///
/// Retrieves the actor from the CustomActorArray by id.
///
/// actor id
/// Actor
public static Actor CustomActor(int id)
{
Trace.WriteLine(String.Format("Extension:CustomActor({0})", id.ToString(CultureInfo.InvariantCulture)));
return new Actor(LavishScript.Objects.GetObject("CustomActor", id.ToString(CultureInfo.InvariantCulture)));
}
///
/// Retrieves the actor from the CustomActorArray by search criteria.
///
/// search criteria
/// Actor
/// ///
/// Search Options:
/// pc - nearest pc
/// npc - nearest npc
/// NamedNPC - nearest named npc
/// guild, "guild" - nearest actor with that guild tag
/// pet - nearest pet that is not your own
/// mypet - your pet, or NULL
/// tsunit - nearest trade skill unit
/// resource - nearest resource node
/// nokillnpc - nearest no kill npc
/// special - nearest special actor
/// corpse - nearest corpse
/// me - me as actor
/// chest - nearest chest
/// door - nearest door
/// level, # - nearest actor of that level
/// levels, #, # - nearest actor between the two levels given
/// id, # - returns the actor with the id given
/// notid, # - excludes the actor with the id given
/// class, "class" - nearest actor with class given
/// race, "race" - nearest actor with race given
/// radius, # - nearest actor within the radius given (you are the center)
/// radiusr, #, # - nearest actor between the two radii (you are the center)
/// xzrange, # - nearest actor within the 2 dimmensional range
/// yrange, # - nearest actor within the supplied y range (vertical)
/// nopcnear [, #] - nearest actor for which there is no PC within the given radius from it. If no argument is given, then it defaults to a range of 100
/// loc,#,# [,#] - actor at the location provided X, Z, or X, Z, Y if third parameter provided
/// "string" - nearest actor with that string in their name
///
public static Actor CustomActor(params string[] search)
{
Trace.WriteLine(String.Format("Extension:CustomActor({0})", String.Join(", ", search)));
return new Actor(LavishScript.Objects.GetObject("CustomActor", search));
}
///
/// Retrieves information that does not fit into any other datatype.
///
public static Utility.EQ2 EQ2
{
get
{
Trace.WriteLine(String.Format("Extension:EQ2"));
return new Utility.EQ2(LavishScript.Objects.GetObject("EQ2"));
}
}
///
/// Returns an EQ2UIElement of type DataSourceContainer from the xml file named.
///
/// top level parent of xml file
public static EQ2Widget EQ2DataSourceContainer(string parent)
{
Trace.WriteLine(String.Format("Extension:EQ2DataSourceContainer({0})", parent));
return new EQ2Widget(LavishScript.Objects.GetObject("EQ2DataSourceContainer", parent));
}
///
/// Returns the EQ2Location from the saved list of locations at the specified index
/// in the current zone (1 to ISXEQ2.EQ2LocsCount()) or all zones (1 to ISXEQ2.EQ2LocsCount(true)).
///
/// index
/// include all zones
public static EQ2Location EQ2Loc(int index, bool allZones = false)
{
Trace.WriteLine(String.Format("Extension:EQ2Location({0}, {1})", index.ToString(CultureInfo.InvariantCulture),
allZones.ToString()));
return !allZones
? new EQ2Location(LavishScript.Objects.GetObject("EQ2Loc", index.ToString(CultureInfo.InvariantCulture)))
: new EQ2Location(LavishScript.Objects.GetObject("EQ2Loc", index.ToString(CultureInfo.InvariantCulture),
"AllZones"));
}
///
/// Returns the EQ2Location that matches the supplied label in the current zone or all zones.
///
/// label
/// include all zones
public static EQ2Location EQLoc(string label, bool allZones = false)
{
Trace.WriteLine(String.Format("Extension:EQ2Location({0}, {1})", label, allZones.ToString()));
return !allZones
? new EQ2Location(LavishScript.Objects.GetObject("EQ2Loc",label))
: new EQ2Location(LavishScript.Objects.GetObject("EQ2Loc", label, "AllZones"));
}
///
/// Returns the email at the specified index. (1 to EQ2.InboxMailCount)
/// Allows interaction with the mail subsystem in EverQuest2.
/// For this TLO to function, you must be in a 'mail transaction' at a post office/box.
///
/// index
public static EQ2Mail EQ2Mail(int index)
{
Trace.WriteLine(String.Format("Extension:EQ2Mail({0})", index.ToString(CultureInfo.InvariantCulture)));
return new EQ2Mail(LavishScript.Objects.GetObject("EQ2Mail", index.ToString(CultureInfo.InvariantCulture)));
}
///
/// Returns the EQ2Mail object of the specified status (Opened or Composing)
/// Allows interaction with the mail subsystem in EverQuest2.
/// For this TLO to function, you must be in a 'mail transaction' at a post office/box.
///
/// mail status
public static EQ2Mail EQ2Mail(EQ2MailStatus status)
{
Trace.WriteLine(String.Format("Extension:EQ2Mail({0})", status));
return new EQ2Mail(LavishScript.Objects.GetObject("EQ2Mail", status.ToString().ToLower()));
}
///
/// Returns the EQ2Window that matches the parent and page names provided.
///
/// parent name
/// page name
///
/// This data member takes two arguments. The first argument is the top level
/// parent 'page' name from the xml file to which the UIPage's configuration
/// is saved (this is usually the second part of the xml filename..see below for
/// explanation). The second argument could be any of the top level 'Page' names
/// found embedded under the first argument 'page' name. I know that sounds
/// complicated, but see below for a couple of examples that should make this
/// more clear to you.
/// First of all, all of the information you need is located in your EQ2 UI
/// subdirectory and contains the extension .xml. (ie, eq2ui_inventory_market.xml).
/// All of the files that correspond to this TLO begin with the phrase 'eq2ui_'.
/// Then, the second word in the file name will always be the ParentPageName
/// (in this case, 'inventory'), and then the third word in the file name will
/// typically be your second argument (or PageName. If a file only has two parts
/// (ie, eq2ui_proxyactor.xml). Then "ProxyActor" would be your ParentPageName
/// and then you would need to look inside the file to find your second argument.
public static EQ2Window EQ2UIPage(string parent, string page)
{
Trace.WriteLine(String.Format("Extension:EQ2UIPage({0}, {1})", parent, page));
return new EQ2Window(LavishScript.Objects.GetObject("EQ2UIPage", parent, page));
}
///
/// Returns information about the examine item window with the specified ID
/// (retrieved via the EQ2_ExamineItemWindowAppeared event)
///
/// Window ID
public static ExamineItemWindow ExamineItemWindow(int windowID)
{
Trace.WriteLine(String.Format("Extension:ExamineItemWindow({0})", windowID.ToString(CultureInfo.InvariantCulture)));
return new ExamineItemWindow(LavishScript.Objects.GetObject("ExamineItemWindow", windowID.ToString(CultureInfo.InvariantCulture)));
}
///
/// Retrieves information about ISXEQ2
///
public static Utility.ISXEQ2 ISXEQ2
{
get
{
Trace.WriteLine(String.Format("Extension:ISXEQ2"));
return new Utility.ISXEQ2(LavishScript.Objects.GetObject("ISXEQ2"));
}
}
///
/// Returns the last loot window opened (or the only one, if you only have one loot window up),
/// or the loot window that corresponds with a specific ID as supplied by the EQ2_onLootWindowAppeared event.
/// (If you have no loot windows up, then it returns NULL)
///
/// window id
public static LootWindow LootWindow(int windowID = 0)
{
Trace.WriteLine((windowID == 0) ? String.Format("Extension:LootWindow()") : String.Format("Extension:LootWindow({0})", windowID.ToString(CultureInfo.InvariantCulture)));
return windowID == 0
? new LootWindow(LavishScript.Objects.GetObject("LootWindow"))
: new LootWindow(LavishScript.Objects.GetObject("LootWindow",
windowID.ToString(CultureInfo.InvariantCulture)));
}
///
/// Retrieves the player character
///
public static Character Me
{
get
{
Trace.WriteLine(String.Format("Extension:Me"));
return new Character(LavishScript.Objects.GetObject("Me"));
}
}
///
/// Retrieves the radar at the specified index. If no index is provided, it returns the first/only
/// radar in the array.
///
/// index
public static Radar Radar(int index = 0)
{
Trace.WriteLine((index == 0) ? String.Format("Extension:Radar()") : String.Format("Extension:Radar({0})", index.ToString(CultureInfo.InvariantCulture)));
return index == 0
? new Radar(LavishScript.Objects.GetObject("Radar"))
: new Radar(LavishScript.Objects.GetObject("Radar", index.ToString(CultureInfo.InvariantCulture)));
}
///
/// Retrieves the radar that matches the supplied name.
///
/// name
public static Radar Radar(string name)
{
Trace.WriteLine(String.Format("Extension:Radar({0}", name));
return new Radar(LavishScript.Objects.GetObject("Radar", name));
}
///
/// Retrieves the ReplyDialog with the supplied ID (from EQ2_ReplyDialogAppeared) or
/// the last ReplyDialog if not ID is provided.
///
/// window ID
public static ReplyDialog ReplyDialog(int windowID = 0)
{
Trace.WriteLine((windowID == 0) ? String.Format("Extension:ReplyDialog()") :
String.Format("Extension:ReplyDialog({0})", windowID.ToString(CultureInfo.InvariantCulture)));
return windowID == 0
? new ReplyDialog(LavishScript.Objects.GetObject("ReplyDialog"))
: new ReplyDialog(LavishScript.Objects.GetObject("ReplyDialog",
windowID.ToString(CultureInfo.InvariantCulture)));
}
///
/// Returns a rewardwindow datatype object representing any reward window that may be open.
///
///
/// NOTES:
/// if ${RewardWindow} is NULL, then you do not have a pending quest reward.
/// Using any other button besides 'Receive' when you have a reward item waiting, is not advised.
/// At the moment, this supports only receiving rewards when there is no 'choice' to be made. That may be added in the future.
///
public static RewardWindow RewardWindow
{
get
{
Trace.WriteLine(String.Format("Extension:RewardWindow"));
return new RewardWindow(LavishScript.Objects.GetObject("RewardWindow"));
}
}
///
/// Strips the EQ2 hyperlink-type tags from a string.
///
/// text
public static string StripTags(string rawText)
{
Trace.WriteLine(String.Format("Extension:StripTags({0})", rawText));
return LavishScript.Objects.GetObject("StripTags", rawText);
}
///
/// Retrieves the active target object
///
public static Actor Target()
{
Trace.WriteLine(String.Format("Extension:Target"));
return new Actor(LavishScript.Objects.GetObject("Target"));
}
///
/// Retrieves a vendor object from the game world. For the
/// purposes of ISXEQ2, a vendor is defined as any NPC or
/// PC that can buy or sell items. This includes brokers.
/// For this TLO to function, you must have the vendor
/// targetted and the merchant or broker window open and
/// populated.
///
public static Vendor Vendor
{
get
{
Trace.WriteLine(String.Format("Extension:Vendor"));
return new Vendor(LavishScript.Objects.GetObject("Vendor"));
}
}
///
/// Retrieves information about the current zone.
///
public static Zone Zone
{
get
{
Trace.WriteLine(String.Format("Extension:Zone"));
return new Zone(LavishScript.Objects.GetObject("Zone"));
}
}
#endregion
#region Commands
/// TODO: Implement Craft
/// TODO: Implement Dump
/// TODO: Implement EQ2Ignore
/// TODO: Implement InitCommands
/// TODO: Implement ShowStats
/// TODO: Implement Where
///
/// Activates an item that is currently equipped. (The command
/// activates an item in the same way as if you placed the item
/// in your hotbar and clicked on it, or, if you right-click on
/// an item and select 'use'.)
///
/// equipment slot
public static int Activate(EquipSlot slot)
{
Trace.WriteLine(String.Format("Extension:Activate({0})", slot));
return LavishScript.ExecuteCommand(String.Format("Activate {0}", slot.ToString().ToLower()));
}
///
/// Performs a broker search because ISXEQ is stupid AF
///
/// Name of broker
public static int Broker(string name)
{
Trace.WriteLine(String.Format("Extension:Broker({0})", name));
return LavishScript.ExecuteCommandEx("broker","name", name);
}
///
/// Echoes a message directly to your chat window(s).
///
/// message
/// chat type
///
public static int EQ2Echo(string message, ChatType type = ChatType.None)
{
Trace.WriteLine((type != ChatType.None) ? String.Format("Extension:EQ2Echo({0}, {1})", message, type)
: String.Format("Extension:EQ2Echo({0})", message));
return
LavishScript.ExecuteCommand((type != ChatType.None) ?
String.Format("EQ2Echo {0} -chattype {1}", message, type.ToString().ToLower())
: String.Format("EQ2Echo {0}", message));
}
///
/// Executes an EQ2 command directly.
///
/// command
public static int EQ2Execute(params string[] command)
{
Trace.WriteLine(String.Format("Extension:EQ2Execute({0})", String.Join(", ", command)));
return LavishScript.ExecuteCommand(String.Format("EQ2Execute {0}", String.Join(" ", command)));
}
///
/// Performs the desired keypress.
/// Parameters: -hold, -release
/// The benefit of "EQ2Press" versus "Press" (InnerSpace command)
/// is that it will work even when the EQ2 session in question is
/// not the one in focus.
/// Verify keypress is valid with ISXEQ2.IsValidEQ2PressKey().
///
/// parameters and keypress
public static int EQ2Press(string args)
{
Trace.WriteLine(String.Format("Extension:EQ2Press({0})", args));
return LavishScript.ExecuteCommand(String.Format("EQ2Press {0}", args));
}
///
/// This command allows you to specify particular key phrases that will cause
/// isxeq2 to ignore an incoming chat channel text. If the given phrase will
/// trigger an ignore if it is found in the chat text, sender name, target name,
/// or customchannel name. You may also use the 'eq2ignore all' toggle to ignore
/// ALL incoming chat text (e.g. if you need complete silence.) Use the
/// 'eq2ignore all' command again to toggle things back to normal, which will
/// again use the ignores you already had set up.
///
/// parameters
///
public static int EQ2Ignore(string args)
{
Trace.WriteLine(String.Format("Extension:EQ2Ignore({0})", args));
return LavishScript.ExecuteCommand(String.Format("EQ2Ignore {0}", args));
}
///
/// Faces your current target.
///
public static int Face()
{
Trace.WriteLine(String.Format("Extension:Face()"));
return LavishScript.ExecuteCommand("Face");
}
///
/// Faces the nearest actor of the specified type.
///
/// actor type
public static int Face(ActorType type)
{
Trace.WriteLine(String.Format("Extension:Face({0})", type));
return LavishScript.ExecuteCommand(String.Format("Face {0}", type));
}
///
/// Faces the specified heading (0 to 360.0)
///
/// heading
public static int Face(float heading)
{
Trace.WriteLine(String.Format("Extension:Face({0})", heading.ToString(CultureInfo.InvariantCulture)));
return LavishScript.ExecuteCommand(String.Format("Face {0}", heading.ToString(CultureInfo.InvariantCulture)));
}
///
/// Faces the supplied location on the XZ plane
///
/// x-coordinate
/// z-coordinate
public static int Face(float x, float z)
{
Trace.WriteLine(String.Format("Extension:Face({0}, {1})",
x.ToString(CultureInfo.InvariantCulture), z.ToString(CultureInfo.InvariantCulture)));
return LavishScript.ExecuteCommand(String.Format("Face {0} {1}",
x.ToString(CultureInfo.InvariantCulture), z.ToString(CultureInfo.InvariantCulture)));
}
///
/// Faces the supplied location in the XZY plane.
///
/// x-coordinate
/// y-coordinate
/// z-coordinate
public static int Face(float x, float y, float z)
{
Trace.WriteLine(String.Format("Extension:Face({0}, {1}, {2})", x.ToString(CultureInfo.InvariantCulture),
y.ToString(CultureInfo.InvariantCulture), z.ToString(CultureInfo.InvariantCulture)));
return LavishScript.ExecuteCommand(String.Format("Face {0} {1} {2}", x.ToString(CultureInfo.InvariantCulture),
y.ToString(CultureInfo.InvariantCulture), z.ToString(CultureInfo.InvariantCulture)));
}
///
/// Faces the nearest actor that has a name that is either a full or partial match.
/// Supplting the name "nocamera" allows you to decide if you want the camera to
/// adjust its heading or not when you are in 3rd person. By default, your camera
/// will adjust when you adjust your player's heading with /face. However, if you
/// type "/face nocamera", then your player will change heading, but the camera
/// will remain where it was. '/face nocamera' will toggle it again if you change
/// your mind.
///
/// name
public static int Face(string name)
{
Trace.WriteLine(String.Format("Extension:Face({0})", name));
return LavishScript.ExecuteCommand(String.Format("Face {0}", name));
}
///
/// Used to issue commands to the Radar. Custom radar name is
/// not used for on and off and is optional for zoomin and zoomout
///
/// command
/// custom radar name
public static int Radar(RadarCommand command, string name = null)
{
Trace.WriteLine((name == null) ? String.Format("Extension:Radar({0})", command.ToString().ToLower())
: String.Format("Extension:Radar({0}, {1})", command, name));
return
LavishScript.ExecuteCommand((name == null) ? String.Format("Radar {0}", command.ToString().ToLower())
: String.Format("Radar {0} {1}", name, command.ToString().ToLower()));
}
///
/// Targets the nearest actor of the supplied type
///
/// target type
public static int Target(TargetType type)
{
Trace.WriteLine(String.Format("Extension:Target({0})", type));
return LavishScript.ExecuteCommand(String.Format("Target {0}", type.ToString().ToLower()));
}
///
/// Targets the entity with the matching ID.
///
/// ID
public static int Target(int id)
{
Trace.WriteLine(String.Format("Extension:Target({0})", id.ToString(CultureInfo.InvariantCulture)));
return LavishScript.ExecuteCommand(String.Format("Target {0}", id.ToString(CultureInfo.InvariantCulture)));
}
///
/// Targets the nearest entity that is a partial or full match with the name.
///
/// name
public static int Target(string name)
{
Trace.WriteLine(String.Format("Extension:Target({0})", name));
return LavishScript.ExecuteCommand(String.Format("Target {0}", name));
}
///
/// Makes an in game announcement for the provided time with the specified sound. (NOT WORKING CORRECTLY)
///
/// announcment
/// time to remain on screen
/// sound to play
public static int EQ2Announce(string announcement, float timer, AnnouncementSound sound = AnnouncementSound.QuestComplete)
{
return LavishScript.ExecuteCommand(String.Format("EQ2Announce {0} {1} {2}", announcement,
timer.ToString(CultureInfo.InvariantCulture), ((int)sound).ToString(CultureInfo.InvariantCulture) ));
}
#endregion
#region Enums
///
/// Actor Types
///
public enum ActorType
{
///
/// Player Character
///
PC,
///
/// Non Player Character
///
NPC,
///
/// Named Non Player Character
///
NamedNPC,
///
/// No Kill Non Player Character
///
NoKillNPC,
///
/// Special
///
Special,
///
/// Resource
///
Resource,
///
/// Trade Skill Unit
///
TSUnit,
///
/// Corpse
///
Corpse
}
///
/// Announcement Sounds
///
public enum AnnouncementSound
{
///
/// Skill Up Sound
///
SkillUp = 1,
///
/// Quest Update Sound
///
QuestUpdate,
///
/// Level Ding Sound
///
LevelDing,
///
/// Call For Help Sound
///
CallForHelp,
///
/// Rare Harvest Sound
///
HarvestRare,
///
/// Quest Complete Sound
///
QuestComplete,
///
/// Location Discovery Sound
///
LocationDiscovery,
///
/// Send Mail Failed Sound
///
SendMailFailed,
///
/// Send Mail Success Sound
///
SendMailSuccess
}
///
/// Chat Types
///
public enum ChatType
{
///
/// Default Chat Type
///
Default,
///
/// Status Chat Type
///
Status,
///
/// System Chat Type
///
System,
///
/// Error Chat Type
///
Error,
///
/// Command Chat Type
///
Cmd,
///
/// Customer Service Tell Chat Type
///
CSTell,
///
/// Message of the Day Chat Type
///
Motd,
///
/// Guild Message of the Day Chat Type
///
GMotd,
///
/// Guild Chat Type
///
Gu,
///
/// Guild Officer Chat Type
///
GOfficerChat,
///
/// Guild Online Chat Type
///
GOnline,
///
/// Group Chat Type
///
GSay,
///
/// Raid Chat Type
///
RSay,
///
/// Say Chat Type
///
Say,
///
/// Emote Chat Type
///
Emote,
///
/// Tell Chat Type
///
Tell,
///
/// Yell For Help Chat Type
///
YellForHelp,
///
/// Death Chat Type
///
Death,
///
/// Who Chat Type
///
Who,
///
/// Out of Character Chat Type
///
OOC,
///
/// Auction Chat Type
///
Auction,
///
/// Shout Chat Type
///
Shout,
///
/// Narrative Chat Type
///
Narrative,
///
/// Non PC Tell Chat Type
///
NonPCTell,
///
/// Merchant Chat Type
///
Merchant,
///
/// Reward Chat Type
///
Reward,
///
/// Pet Chat Type
///
PetChat,
///
/// Spell Chat Type
///
Spell,
///
/// Spell Fail Chat Type
///
SpellFail,
///
/// Spell Fail to Cast Chat Type
///
SpellFCast,
///
/// Spell H Cast Chat Type
///
SpellHCast,
///
/// Spell Worn Off Chat Type
///
SpellWOff,
///
/// Spell Other Chat Type
///
SpellOther,
///
/// Skill Chat Type
///
Skill,
///
/// Damage Chat Type
///
Dmg,
///
/// Damage Shield
///
DS,
///
/// Melee Warning Chat Type
///
MeleeWarning,
///
/// Melee Hit Chat Type
///
MeleeHit,
///
/// Melee Hits Me Chat Type
///
MeleeHitsMe,
///
/// No Chat Type
///
None
}
///
/// EQ2Mail Status
///
public enum EQ2MailStatus
{
///
/// EQ2Mail Status Opened
///
Opened,
///
/// EQ2Mail Status Composing
///
Composing
}
///
/// Equipment Slots
///
public enum EquipSlot
{
///
/// Primary Slot
///
Primary,
///
/// Secondary Slot
///
Secondary,
///
/// Head Slot
///
Head,
///
/// Chest Slot
///
Chest,
///
/// Shoulders Slot
///
Shoulders,
///
/// Forearms Slot
///
Forearms,
///
/// Hands Slot
///
Hands,
///
/// Legs Slot
///
Legs,
///
/// Feet Slot
///
Feet,
///
/// Left Ring Slot
///
Left_Ring,
///
/// Right Ring Slot
///
Right_Ring,
///
/// Ears Slot
///
Ears,
///
/// Neck Slot
///
Neck,
///
/// Left Wrist Slot
///
Left_Wrist,
///
/// Right Wrist Slot
///
Right_Wrist,
///
/// Ranged Slot
///
Ranged,
///
/// Ammo Slot
///
Ammo,
///
/// Waist Slot
///
Waist,
///
/// Charm Slot 1
///
Activate1,
///
/// Charm Slot 2
///
Activate2
}
///
/// Radar Commands
///
public enum RadarCommand
{
///
/// On
///
On,
///
/// Off
///
Off,
///
/// ZoomIn
///
ZoomIn,
///
/// ZoomOut
///
ZoomOut
}
///
/// Target Types
///
public enum TargetType
{
///
/// Me
///
Me,
///
/// Player Character
///
PC,
///
/// Non Player Character
///
NPC,
///
/// No Kill Non Player Character
///
NoKillNPC,
///
/// Resource
///
Resource,
///
/// Trade Skill Unit
///
TradeSkillUnit,
///
/// Special
///
Special
}
#endregion
}
}