/// <summary> /// Gets the player's quickbar slot info /// </summary> /// <param name="player"></param> /// <param name="slot"></param> /// <returns></returns> public static QuickBarSlot GetQuickBarSlot(NWGameObject player, int slot) { string sFunc = "GetQuickBarSlot"; QuickBarSlot qbs = new QuickBarSlot(); NWNXCore.NWNX_PushArgumentInt(NWNX_Player, sFunc, slot); NWNXCore.NWNX_PushArgumentObject(NWNX_Player, sFunc, player); NWNXCore.NWNX_CallFunction(NWNX_Player, sFunc); qbs.Associate = (NWNXCore.NWNX_GetReturnValueObject(NWNX_Player, sFunc)); qbs.AssociateType = NWNXCore.NWNX_GetReturnValueInt(NWNX_Player, sFunc); qbs.DomainLevel = NWNXCore.NWNX_GetReturnValueInt(NWNX_Player, sFunc); qbs.MetaType = NWNXCore.NWNX_GetReturnValueInt(NWNX_Player, sFunc); qbs.INTParam1 = NWNXCore.NWNX_GetReturnValueInt(NWNX_Player, sFunc); qbs.ToolTip = NWNXCore.NWNX_GetReturnValueString(NWNX_Player, sFunc); qbs.CommandLine = NWNXCore.NWNX_GetReturnValueString(NWNX_Player, sFunc); qbs.CommandLabel = NWNXCore.NWNX_GetReturnValueString(NWNX_Player, sFunc); qbs.Resref = NWNXCore.NWNX_GetReturnValueString(NWNX_Player, sFunc); qbs.MultiClass = NWNXCore.NWNX_GetReturnValueInt(NWNX_Player, sFunc); qbs.ObjectType = (QuickBarSlotType)NWNXCore.NWNX_GetReturnValueInt(NWNX_Player, sFunc); qbs.SecondaryItem = (NWNXCore.NWNX_GetReturnValueObject(NWNX_Player, sFunc)); qbs.Item = (NWNXCore.NWNX_GetReturnValueObject(NWNX_Player, sFunc)); return(qbs); }
internal void CreateSlotToDrag() { if (shortcutsImgs.Length == 0) { return; } draggedSlot = Instantiate(shortcutsImgs[0], generalCanvas != null ? generalCanvas.transform : null); draggedSlot.EnableDragMode(); draggedSlot.SetEmpty(); draggedSlot.SetActive(false); }
// 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.NativeFunctions.nwnxPushObject(qbs.SecondaryItem !); 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.NativeFunctions.nwnxPushInt(slot); Internal.NativeFunctions.nwnxPushObject(player !); Internal.NativeFunctions.nwnxCallFunction(); }
/// Sets the player's quickbar slot info /// <param name="player">The player object.</param> /// <param name="slot">Slot ID 0-35</param> /// <param name="qbs">An NWNX_Player_QuickBarSlot struct.</param> public static void SetQuickBarSlot(uint player, int slot, QuickBarSlot qbs) { VM.NWNX.SetFunction(NWNX_Player, "SetQuickBarSlot"); VM.NWNX.StackPush(qbs.oItem); VM.NWNX.StackPush(qbs.oSecondaryItem); VM.NWNX.StackPush(qbs.nObjectType); VM.NWNX.StackPush(qbs.nMultiClass); VM.NWNX.StackPush(qbs.sResRef); VM.NWNX.StackPush(qbs.sCommandLabel); VM.NWNX.StackPush(qbs.sCommandLine); VM.NWNX.StackPush(qbs.sToolTip); VM.NWNX.StackPush(qbs.nINTParam1); VM.NWNX.StackPush(qbs.nMetaType); VM.NWNX.StackPush(qbs.nDomainLevel); VM.NWNX.StackPush(qbs.nAssociateType); VM.NWNX.StackPush(qbs.oAssociate); VM.NWNX.StackPush(slot); VM.NWNX.StackPush(player); VM.NWNX.Call(); }
/// <summary> /// Create an empty QBS of given type /// </summary> /// <param name="type"></param> /// <returns></returns> public static QuickBarSlot Empty(QuickBarSlotType type) { var qbs = new QuickBarSlot { ObjectType = type, Item = OBJECT_INVALID, SecondaryItem = OBJECT_INVALID, MultiClass = 0, Resref = "", CommandLabel = "", CommandLine = "", ToolTip = "", INTParam1 = 0, MetaType = 0, DomainLevel = 0, AssociateType = 0, Associate = OBJECT_INVALID }; return(qbs); }
/// <summary> /// Sets a player's quickbar slot /// </summary> /// <param name="player"></param> /// <param name="slot"></param> /// <param name="qbs"></param> public static void SetQuickBarSlot(NWGameObject player, int slot, QuickBarSlot qbs) { string sFunc = "SetQuickBarSlot"; NWNXCore.NWNX_PushArgumentObject(NWNX_Player, sFunc, qbs.Item); NWNXCore.NWNX_PushArgumentObject(NWNX_Player, sFunc, qbs.SecondaryItem); NWNXCore.NWNX_PushArgumentInt(NWNX_Player, sFunc, (int)qbs.ObjectType); NWNXCore.NWNX_PushArgumentInt(NWNX_Player, sFunc, qbs.MultiClass); NWNXCore.NWNX_PushArgumentString(NWNX_Player, sFunc, qbs.Resref); NWNXCore.NWNX_PushArgumentString(NWNX_Player, sFunc, qbs.CommandLabel); NWNXCore.NWNX_PushArgumentString(NWNX_Player, sFunc, qbs.CommandLine); NWNXCore.NWNX_PushArgumentString(NWNX_Player, sFunc, qbs.ToolTip); NWNXCore.NWNX_PushArgumentInt(NWNX_Player, sFunc, qbs.INTParam1); NWNXCore.NWNX_PushArgumentInt(NWNX_Player, sFunc, qbs.MetaType); NWNXCore.NWNX_PushArgumentInt(NWNX_Player, sFunc, qbs.DomainLevel); NWNXCore.NWNX_PushArgumentInt(NWNX_Player, sFunc, qbs.AssociateType); NWNXCore.NWNX_PushArgumentObject(NWNX_Player, sFunc, qbs.Associate); NWNXCore.NWNX_PushArgumentInt(NWNX_Player, sFunc, slot); NWNXCore.NWNX_PushArgumentObject(NWNX_Player, sFunc, player); NWNXCore.NWNX_CallFunction(NWNX_Player, sFunc); }
// 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 = UIntToObject.AsCreature(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 = UIntToObject.AsItem(Internal.NativeFunctions.nwnxPopObject()); qbs.Item = UIntToObject.AsItem(Internal.NativeFunctions.nwnxPopObject()); return(qbs); }