Esempio n. 1
0
        /// <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);
        }
Esempio n. 2
0
        /// <summary>
        /// Get Attack Event Data (to use only on Attack Event Script)
        /// </summary>
        /// <returns></returns>
        public static AttackEventData GetAttackEventData()
        {
            string          sFunc = "GetAttackEventData";
            AttackEventData data  = new AttackEventData();

            NWNXCore.NWNX_CallFunction(NWNX_Damage, sFunc);

            data.Target       = NWNXCore.NWNX_GetReturnValueObject(NWNX_Damage, sFunc);
            data.Bludgeoning  = NWNXCore.NWNX_GetReturnValueInt(NWNX_Damage, sFunc);
            data.Pierce       = NWNXCore.NWNX_GetReturnValueInt(NWNX_Damage, sFunc);
            data.Slash        = NWNXCore.NWNX_GetReturnValueInt(NWNX_Damage, sFunc);
            data.Magical      = NWNXCore.NWNX_GetReturnValueInt(NWNX_Damage, sFunc);
            data.Acid         = NWNXCore.NWNX_GetReturnValueInt(NWNX_Damage, sFunc);
            data.Cold         = NWNXCore.NWNX_GetReturnValueInt(NWNX_Damage, sFunc);
            data.Divine       = NWNXCore.NWNX_GetReturnValueInt(NWNX_Damage, sFunc);
            data.Electrical   = NWNXCore.NWNX_GetReturnValueInt(NWNX_Damage, sFunc);
            data.Fire         = NWNXCore.NWNX_GetReturnValueInt(NWNX_Damage, sFunc);
            data.Negative     = NWNXCore.NWNX_GetReturnValueInt(NWNX_Damage, sFunc);
            data.Positive     = NWNXCore.NWNX_GetReturnValueInt(NWNX_Damage, sFunc);
            data.Sonic        = NWNXCore.NWNX_GetReturnValueInt(NWNX_Damage, sFunc);
            data.Base         = NWNXCore.NWNX_GetReturnValueInt(NWNX_Damage, sFunc);
            data.AttackNumber = NWNXCore.NWNX_GetReturnValueInt(NWNX_Damage, sFunc);
            data.AttackResult = NWNXCore.NWNX_GetReturnValueInt(NWNX_Damage, sFunc);
            data.AttackType   = NWNXCore.NWNX_GetReturnValueInt(NWNX_Damage, sFunc);
            data.SneakAttack  = NWNXCore.NWNX_GetReturnValueInt(NWNX_Damage, sFunc);

            return(data);
        }
Esempio n. 3
0
        /// <summary>
        /// Get the effect creator of NWNX_Effect_SetEffectExpiredScript()
        /// THIS SHOULD ONLY BE CALLED FROM WITHIN A SCRIPT THAT WAS EXECUTED BY NWNX_Effect_SetEffectExpiredScript()
        /// </summary>
        /// <returns></returns>
        public static NWGameObject GetEffectExpiredCreator()
        {
            string sFunc = "GetEffectExpiredCreator";

            NWNXCore.NWNX_CallFunction(NWNX_Effect, sFunc);

            return(NWNXCore.NWNX_GetReturnValueObject(NWNX_Effect, sFunc));
        }
Esempio n. 4
0
        /// <summary>
        /// Gets the creature that last left area
        /// </summary>
        /// <param name="area"></param>
        /// <returns></returns>
        public static NWGameObject GetLastLeft(NWGameObject area)
        {
            string sFunc = "GetLastLeft";

            NWNXCore.NWNX_PushArgumentObject(NWNX_Area, sFunc, area);
            NWNXCore.NWNX_CallFunction(NWNX_Area, sFunc);

            return(NWNXCore.NWNX_GetReturnValueObject(NWNX_Area, sFunc));
        }
Esempio n. 5
0
        /// <summary>
        /// Convert native effect type to unpacked structure
        /// </summary>
        /// <param name="effect"></param>
        /// <returns></returns>
        public static EffectUnpacked UnpackEffect(Effect effect)
        {
            string sFunc = "UnpackEffect";

            NWNXCore.NWNX_PushArgumentEffect(NWNX_Effect, sFunc, effect);
            NWNXCore.NWNX_CallFunction(NWNX_Effect, sFunc);

            EffectUnpacked n = new EffectUnpacked
            {
                Tag               = NWNXCore.NWNX_GetReturnValueString(NWNX_Effect, sFunc),
                oParam3           = NWNXCore.NWNX_GetReturnValueObject(NWNX_Effect, sFunc),
                oParam2           = NWNXCore.NWNX_GetReturnValueObject(NWNX_Effect, sFunc),
                oParam1           = NWNXCore.NWNX_GetReturnValueObject(NWNX_Effect, sFunc),
                oParam0           = NWNXCore.NWNX_GetReturnValueObject(NWNX_Effect, sFunc),
                sParam5           = NWNXCore.NWNX_GetReturnValueString(NWNX_Effect, sFunc),
                sParam4           = NWNXCore.NWNX_GetReturnValueString(NWNX_Effect, sFunc),
                sParam3           = NWNXCore.NWNX_GetReturnValueString(NWNX_Effect, sFunc),
                sParam2           = NWNXCore.NWNX_GetReturnValueString(NWNX_Effect, sFunc),
                sParam1           = NWNXCore.NWNX_GetReturnValueString(NWNX_Effect, sFunc),
                sParam0           = NWNXCore.NWNX_GetReturnValueString(NWNX_Effect, sFunc),
                fParam3           = NWNXCore.NWNX_GetReturnValueFloat(NWNX_Effect, sFunc),
                fParam2           = NWNXCore.NWNX_GetReturnValueFloat(NWNX_Effect, sFunc),
                fParam1           = NWNXCore.NWNX_GetReturnValueFloat(NWNX_Effect, sFunc),
                fParam0           = NWNXCore.NWNX_GetReturnValueFloat(NWNX_Effect, sFunc),
                nParam7           = NWNXCore.NWNX_GetReturnValueInt(NWNX_Effect, sFunc),
                nParam6           = NWNXCore.NWNX_GetReturnValueInt(NWNX_Effect, sFunc),
                nParam5           = NWNXCore.NWNX_GetReturnValueInt(NWNX_Effect, sFunc),
                nParam4           = NWNXCore.NWNX_GetReturnValueInt(NWNX_Effect, sFunc),
                nParam3           = NWNXCore.NWNX_GetReturnValueInt(NWNX_Effect, sFunc),
                nParam2           = NWNXCore.NWNX_GetReturnValueInt(NWNX_Effect, sFunc),
                nParam1           = NWNXCore.NWNX_GetReturnValueInt(NWNX_Effect, sFunc),
                nParam0           = NWNXCore.NWNX_GetReturnValueInt(NWNX_Effect, sFunc),
                NumIntegers       = NWNXCore.NWNX_GetReturnValueInt(NWNX_Effect, sFunc),
                LinkRightValid    = NWNXCore.NWNX_GetReturnValueInt(NWNX_Effect, sFunc),
                LinkRight         = NWNXCore.NWNX_GetReturnValueEffect(NWNX_Effect, sFunc),
                LinkLeftValid     = NWNXCore.NWNX_GetReturnValueInt(NWNX_Effect, sFunc),
                LinkLeft          = NWNXCore.NWNX_GetReturnValueEffect(NWNX_Effect, sFunc),
                CasterLevel       = NWNXCore.NWNX_GetReturnValueInt(NWNX_Effect, sFunc),
                ShowIcon          = NWNXCore.NWNX_GetReturnValueInt(NWNX_Effect, sFunc),
                Expose            = NWNXCore.NWNX_GetReturnValueInt(NWNX_Effect, sFunc),
                SpellID           = NWNXCore.NWNX_GetReturnValueInt(NWNX_Effect, sFunc),
                Creator           = NWNXCore.NWNX_GetReturnValueObject(NWNX_Effect, sFunc),
                ExpiryTimeOfDay   = NWNXCore.NWNX_GetReturnValueInt(NWNX_Effect, sFunc),
                ExpiryCalendarDay = NWNXCore.NWNX_GetReturnValueInt(NWNX_Effect, sFunc),
                Duration          = NWNXCore.NWNX_GetReturnValueFloat(NWNX_Effect, sFunc),
                SubType           = NWNXCore.NWNX_GetReturnValueInt(NWNX_Effect, sFunc),
                Type              = NWNXCore.NWNX_GetReturnValueInt(NWNX_Effect, sFunc),
                EffectID          = NWNXCore.NWNX_GetReturnValueInt(NWNX_Effect, sFunc)
            };

            return(n);
        }
Esempio n. 6
0
        public static DevastatingCriticalData GetDevastatingCriticalEventData()
        {
            string sFunc = "GetEventData";
            DevastatingCriticalData data = new DevastatingCriticalData();

            NWNXCore.NWNX_PushArgumentInt(NWNX_Weapon, sFunc, NWNX_WEAPON_GETDATA_DC);
            NWNXCore.NWNX_CallFunction(NWNX_Weapon, sFunc);

            data.Weapon = NWNXCore.NWNX_GetReturnValueObject(NWNX_Weapon, sFunc);
            data.Target = NWNXCore.NWNX_GetReturnValueObject(NWNX_Weapon, sFunc);
            data.Damage = NWNXCore.NWNX_GetReturnValueInt(NWNX_Weapon, sFunc);

            return(data);
        }
Esempio n. 7
0
        /// <summary>
        /// Create and returns a transition (square shaped of specified size) at a location
        /// Valid object types for the target are DOOR or WAYPOINT.
        /// If a tag is specified the returning object will have that tag
        /// </summary>
        /// <param name="area"></param>
        /// <param name="target"></param>
        /// <param name="x"></param>
        /// <param name="y"></param>
        /// <param name="z"></param>
        /// <param name="size"></param>
        /// <param name="tag"></param>
        /// <returns></returns>
        public static NWGameObject CreateTransition(NWGameObject area, NWGameObject target, float x, float y, float z, float size = 2.0f, string tag = "")
        {
            string sFunc = "CreateTransition";

            NWNXCore.NWNX_PushArgumentString(NWNX_Area, sFunc, tag);
            NWNXCore.NWNX_PushArgumentFloat(NWNX_Area, sFunc, size);
            NWNXCore.NWNX_PushArgumentFloat(NWNX_Area, sFunc, z);
            NWNXCore.NWNX_PushArgumentFloat(NWNX_Area, sFunc, y);
            NWNXCore.NWNX_PushArgumentFloat(NWNX_Area, sFunc, x);
            NWNXCore.NWNX_PushArgumentObject(NWNX_Area, sFunc, target);
            NWNXCore.NWNX_PushArgumentObject(NWNX_Area, sFunc, area);
            NWNXCore.NWNX_CallFunction(NWNX_Area, sFunc);

            return(NWNXCore.NWNX_GetReturnValueObject(NWNX_Area, sFunc));
        }
Esempio n. 8
0
        /// <summary>
        /// Get Damage Event Data (to use only on Damage Event Script)
        /// </summary>
        /// <returns></returns>
        public static DamageEventData GetDamageEventData()
        {
            string          sFunc = "GetDamageEventData";
            DamageEventData data  = new DamageEventData();

            NWNXCore.NWNX_CallFunction(NWNX_Damage, sFunc);

            data.Damager     = NWNXCore.NWNX_GetReturnValueObject(NWNX_Damage, sFunc);
            data.Bludgeoning = NWNXCore.NWNX_GetReturnValueInt(NWNX_Damage, sFunc);
            data.Pierce      = NWNXCore.NWNX_GetReturnValueInt(NWNX_Damage, sFunc);
            data.Slash       = NWNXCore.NWNX_GetReturnValueInt(NWNX_Damage, sFunc);
            data.Magical     = NWNXCore.NWNX_GetReturnValueInt(NWNX_Damage, sFunc);
            data.Acid        = NWNXCore.NWNX_GetReturnValueInt(NWNX_Damage, sFunc);
            data.Cold        = NWNXCore.NWNX_GetReturnValueInt(NWNX_Damage, sFunc);
            data.Divine      = NWNXCore.NWNX_GetReturnValueInt(NWNX_Damage, sFunc);
            data.Electrical  = NWNXCore.NWNX_GetReturnValueInt(NWNX_Damage, sFunc);
            data.Fire        = NWNXCore.NWNX_GetReturnValueInt(NWNX_Damage, sFunc);
            data.Negative    = NWNXCore.NWNX_GetReturnValueInt(NWNX_Damage, sFunc);
            data.Positive    = NWNXCore.NWNX_GetReturnValueInt(NWNX_Damage, sFunc);
            data.Sonic       = NWNXCore.NWNX_GetReturnValueInt(NWNX_Damage, sFunc);
            data.Base        = NWNXCore.NWNX_GetReturnValueInt(NWNX_Damage, sFunc);

            return(data);
        }
Esempio n. 9
0
 // Gets the target. May be OBJECT_INVALID if no target.
 // Must be called from an chat or system script handler.
 public static NWGameObject GetTarget()
 {
     NWNXCore.NWNX_CallFunction("NWNX_Chat", "GET_TARGET");
     return(NWNXCore.NWNX_GetReturnValueObject("NWNX_Chat", "GET_TARGET"));
 }
Esempio n. 10
0
 // Gets the sender.
 // Must be called from an chat or system script handler.
 public static NWGameObject GetSender()
 {
     NWNXCore.NWNX_CallFunction("NWNX_Chat", "GET_SENDER");
     return(NWNXCore.NWNX_GetReturnValueObject("NWNX_Chat", "GET_SENDER"));
 }