/// <summary> /// Create a QBS for toggling a mode /// </summary> /// <param name="nMode"></param> /// <returns></returns> public static QuickBarSlot ToggleMode(int nMode) { QuickBarSlot qbs = Empty(QuickBarSlotType.ModeToggle); qbs.INTParam1 = nMode; return(qbs); }
/// <summary> /// Create a QBS for using a skill /// </summary> /// <param name="nSkill"></param> /// <returns></returns> public static QuickBarSlot UseSkill(int nSkill) { QuickBarSlot qbs = Empty(QuickBarSlotType.Skill); qbs.INTParam1 = nSkill; return(qbs); }
/// <summary> /// Create a QBS for quickchat command /// </summary> /// <param name="nCommand"></param> /// <returns></returns> public static QuickBarSlot QuickChat(int nCommand) { QuickBarSlot qbs = Empty(QuickBarSlotType.QuickChat); qbs.INTParam1 = nCommand; return(qbs); }
/// <summary> /// Create a QBS for emoting /// </summary> /// <param name="nEmote"></param> /// <returns></returns> public static QuickBarSlot Emote(int nEmote) { QuickBarSlot qbs = Empty(QuickBarSlotType.Emote); qbs.INTParam1 = nEmote; return(qbs); }
/// <summary> /// Create a QBS for using a feat /// </summary> /// <param name="nFeat"></param> /// <returns></returns> public static QuickBarSlot UseFeat(Feat nFeat) { QuickBarSlot qbs = Empty(QuickBarSlotType.Feat); qbs.INTParam1 = (int)nFeat; return(qbs); }
/// <summary> /// Create a QBS for equipping an item /// </summary> /// <param name="oItem"></param> /// <param name="oSecondaryItem"></param> /// <returns></returns> public static QuickBarSlot EquipItem(NWGameObject oItem, NWGameObject oSecondaryItem) { QuickBarSlot qbs = Empty(QuickBarSlotType.Item); qbs.Item = oItem; qbs.SecondaryItem = oSecondaryItem; return(qbs); }
/// <summary> /// Create a QBS for using an item /// </summary> /// <param name="oItem"></param> /// <param name="nPropertyID"></param> /// <returns></returns> public static QuickBarSlot UseItem(NWGameObject oItem, int nPropertyID) { QuickBarSlot qbs = Empty(QuickBarSlotType.Item); qbs.Item = oItem; qbs.INTParam1 = nPropertyID; return(qbs); }
/// <summary> /// Create a QBS for running a command /// </summary> /// <param name="sCommandLabel"></param> /// <param name="sCommandLine"></param> /// <returns></returns> public static QuickBarSlot Command(string sCommandLabel, string sCommandLine) { QuickBarSlot qbs = Empty(QuickBarSlotType.Command); qbs.CommandLabel = sCommandLabel; qbs.CommandLine = sCommandLine; return(qbs); }
/// <summary> /// Create a QBS for casting a spell /// </summary> /// <param name="nSpell"></param> /// <param name="nCasterLevel"></param> /// <returns></returns> public static QuickBarSlot UseSpecialAbility(int nSpell, int nCasterLevel) { QuickBarSlot qbs = Empty(QuickBarSlotType.Spell); qbs.INTParam1 = nSpell; qbs.DomainLevel = nCasterLevel; return(qbs); }
/// <summary> /// Create a QBS for casting a spell /// </summary> /// <param name="nSpell"></param> /// <param name="nClassIndex"></param> /// <param name="nMetamagic"></param> /// <param name="nDomainLevel"></param> /// <returns></returns> public static QuickBarSlot CastSpell(int nSpell, int nClassIndex, int nMetamagic, int nDomainLevel) { QuickBarSlot qbs = Empty(QuickBarSlotType.Spell); qbs.INTParam1 = nSpell; qbs.MultiClass = nClassIndex; qbs.MetaType = nMetamagic; qbs.DomainLevel = nDomainLevel; return(qbs); }
// Sets a player's quickbar slot public static void SetQuickBarSlot(uint player, int slot, QuickBarSlot qbs) { Internal.NativeFunctions.nwnxSetFunction(PLUGIN_NAME, "SetQuickBarSlot"); Internal.NativeFunctions.nwnxPushObject(qbs.Item ?? Internal.OBJECT_INVALID); Internal.NativeFunctions.nwnxPushObject(qbs.SecondaryItem ?? Internal.OBJECT_INVALID); Internal.NativeFunctions.nwnxPushInt((int)qbs.ObjectType); Internal.NativeFunctions.nwnxPushInt(qbs.MultiClass); Internal.NativeFunctions.nwnxPushString(qbs.Resref !); Internal.NativeFunctions.nwnxPushString(qbs.CommandLabel !); Internal.NativeFunctions.nwnxPushString(qbs.CommandLine !); Internal.NativeFunctions.nwnxPushString(qbs.ToolTip !); Internal.NativeFunctions.nwnxPushInt(qbs.INTParam1); Internal.NativeFunctions.nwnxPushInt(qbs.MetaType); Internal.NativeFunctions.nwnxPushInt(qbs.DomainLevel); Internal.NativeFunctions.nwnxPushInt(qbs.AssociateType); Internal.NativeFunctions.nwnxPushObject(qbs.Associate ?? Internal.OBJECT_INVALID); Internal.NativeFunctions.nwnxPushInt(slot); Internal.NativeFunctions.nwnxPushObject(player !); Internal.NativeFunctions.nwnxCallFunction(); }
/// <summary> /// Create an empty QBS of given type /// </summary> /// <param name="type"></param> /// <returns></returns> public static QuickBarSlot Empty(QuickBarSlotType type) { QuickBarSlot qbs = new QuickBarSlot { ObjectType = type, Item = (new NWGameObject()), SecondaryItem = (new NWGameObject()), MultiClass = 0, Resref = "", CommandLabel = "", CommandLine = "", ToolTip = "", INTParam1 = 0, MetaType = 0, DomainLevel = 0, AssociateType = 0, Associate = (new NWGameObject()) }; return(qbs); }
// Gets the player's quickbar slot info public static QuickBarSlot GetQuickBarSlot(uint player, int slot) { Internal.NativeFunctions.nwnxSetFunction(PLUGIN_NAME, "GetQuickBarSlot"); var qbs = new QuickBarSlot(); Internal.NativeFunctions.nwnxPushInt(slot); Internal.NativeFunctions.nwnxPushObject(player); Internal.NativeFunctions.nwnxCallFunction(); qbs.Associate = Internal.NativeFunctions.nwnxPopObject(); qbs.AssociateType = Internal.NativeFunctions.nwnxPopInt(); qbs.DomainLevel = Internal.NativeFunctions.nwnxPopInt(); qbs.MetaType = Internal.NativeFunctions.nwnxPopInt(); qbs.INTParam1 = Internal.NativeFunctions.nwnxPopInt(); qbs.ToolTip = Internal.NativeFunctions.nwnxPopString(); qbs.CommandLine = Internal.NativeFunctions.nwnxPopString(); qbs.CommandLabel = Internal.NativeFunctions.nwnxPopString(); qbs.Resref = Internal.NativeFunctions.nwnxPopString(); qbs.MultiClass = Internal.NativeFunctions.nwnxPopInt(); qbs.ObjectType = (QuickBarSlotType)Internal.NativeFunctions.nwnxPopInt(); qbs.SecondaryItem = Internal.NativeFunctions.nwnxPopObject(); qbs.Item = Internal.NativeFunctions.nwnxPopObject(); return(qbs); }