Exemple #1
0
        /// Set Damage Event Data
        /// <param name="data">A NWNX_Damage_DamageEventData struct.</param>
        /// @note To use only in the Damage Event Script.
        public static void SetDamageEventData(DamageEventData data)
        {
            const string sFunc = "SetDamageEventData";

            VM.NWNX.SetFunction(NWNX_Damage, sFunc);
            VM.NWNX.StackPush(data.iBase);
            VM.NWNX.StackPush(data.iSonic);
            VM.NWNX.StackPush(data.iPositive);
            VM.NWNX.StackPush(data.iNegative);
            VM.NWNX.StackPush(data.iFire);
            VM.NWNX.StackPush(data.iElectrical);
            VM.NWNX.StackPush(data.iDivine);
            VM.NWNX.StackPush(data.iCold);
            VM.NWNX.StackPush(data.iAcid);
            VM.NWNX.StackPush(data.iMagical);
            VM.NWNX.StackPush(data.iSlash);
            VM.NWNX.StackPush(data.iPierce);
            VM.NWNX.StackPush(data.iBludgeoning);
            VM.NWNX.Call();
        }
Exemple #2
0
        /// Get Damage Event Data
        /// <returns>A NWNX_Damage_DamageEventData struct.</returns>
        /// @note To use only in the Damage Event Script.
        public static DamageEventData GetDamageEventData()
        {
            const string sFunc = "GetDamageEventData";

            VM.NWNX.SetFunction(NWNX_Damage, sFunc);
            DamageEventData data = default;

            VM.NWNX.Call();
            data.oDamager     = VM.NWNX.StackPopObject();
            data.iBludgeoning = VM.NWNX.StackPopInt();
            data.iPierce      = VM.NWNX.StackPopInt();
            data.iSlash       = VM.NWNX.StackPopInt();
            data.iMagical     = VM.NWNX.StackPopInt();
            data.iAcid        = VM.NWNX.StackPopInt();
            data.iCold        = VM.NWNX.StackPopInt();
            data.iDivine      = VM.NWNX.StackPopInt();
            data.iElectrical  = VM.NWNX.StackPopInt();
            data.iFire        = VM.NWNX.StackPopInt();
            data.iNegative    = VM.NWNX.StackPopInt();
            data.iPositive    = VM.NWNX.StackPopInt();
            data.iSonic       = VM.NWNX.StackPopInt();
            data.iBase        = VM.NWNX.StackPopInt();
            return(data);
        }