/// <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);
        }
Exemple #2
0
    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();
 }
Exemple #4
0
 /// 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);
        }