Пример #1
0
 // Set Damage Event Data (to use only on Damage Event Script)
 public static void SetDamageEventData(DamageEventData data)
 {
     Internal.NativeFunctions.nwnxSetFunction(PLUGIN_NAME, "SetDamageEventData");
     Internal.NativeFunctions.nwnxPushInt(data.Base);
     Internal.NativeFunctions.nwnxPushInt(data.Sonic);
     Internal.NativeFunctions.nwnxPushInt(data.Positive);
     Internal.NativeFunctions.nwnxPushInt(data.Negative);
     Internal.NativeFunctions.nwnxPushInt(data.Fire);
     Internal.NativeFunctions.nwnxPushInt(data.Electrical);
     Internal.NativeFunctions.nwnxPushInt(data.Divine);
     Internal.NativeFunctions.nwnxPushInt(data.Cold);
     Internal.NativeFunctions.nwnxPushInt(data.Acid);
     Internal.NativeFunctions.nwnxPushInt(data.Magical);
     Internal.NativeFunctions.nwnxPushInt(data.Slash);
     Internal.NativeFunctions.nwnxPushInt(data.Pierce);
     Internal.NativeFunctions.nwnxPushInt(data.Bludgeoning);
     Internal.NativeFunctions.nwnxCallFunction();
 }
Пример #2
0
        // Get Damage Event Data (to use only on Damage Event Script)
        public static DamageEventData GetDamageEventData()
        {
            var data = new DamageEventData();

            Internal.NativeFunctions.nwnxSetFunction(PLUGIN_NAME, "GetDamageEventData");
            Internal.NativeFunctions.nwnxCallFunction();
            data.Damager     = Internal.NativeFunctions.nwnxPopObject();
            data.Bludgeoning = Internal.NativeFunctions.nwnxPopInt();
            data.Pierce      = Internal.NativeFunctions.nwnxPopInt();
            data.Slash       = Internal.NativeFunctions.nwnxPopInt();
            data.Magical     = Internal.NativeFunctions.nwnxPopInt();
            data.Acid        = Internal.NativeFunctions.nwnxPopInt();
            data.Cold        = Internal.NativeFunctions.nwnxPopInt();
            data.Divine      = Internal.NativeFunctions.nwnxPopInt();
            data.Electrical  = Internal.NativeFunctions.nwnxPopInt();
            data.Fire        = Internal.NativeFunctions.nwnxPopInt();
            data.Negative    = Internal.NativeFunctions.nwnxPopInt();
            data.Positive    = Internal.NativeFunctions.nwnxPopInt();
            data.Sonic       = Internal.NativeFunctions.nwnxPopInt();
            data.Base        = Internal.NativeFunctions.nwnxPopInt();
            return(data);
        }
Пример #3
0
 // Deal damage to target - permits multiple damage types and checks enhancement bonus for overcoming DR
 public static void DealDamage(DamageEventData data, uint oTarget, uint oSource, bool iRanged = false)
 {
     Internal.NativeFunctions.nwnxSetFunction(PLUGIN_NAME, "SetAttackEventData");
     Internal.NativeFunctions.nwnxSetFunction(PLUGIN_NAME, "DealDamage");
     Internal.NativeFunctions.nwnxPushInt(iRanged ? 1 : 0);
     Internal.NativeFunctions.nwnxPushInt(data.Base);
     Internal.NativeFunctions.nwnxPushInt(data.Sonic);
     Internal.NativeFunctions.nwnxPushInt(data.Positive);
     Internal.NativeFunctions.nwnxPushInt(data.Negative);
     Internal.NativeFunctions.nwnxPushInt(data.Fire);
     Internal.NativeFunctions.nwnxPushInt(data.Electrical);
     Internal.NativeFunctions.nwnxPushInt(data.Divine);
     Internal.NativeFunctions.nwnxPushInt(data.Cold);
     Internal.NativeFunctions.nwnxPushInt(data.Acid);
     Internal.NativeFunctions.nwnxPushInt(data.Magical);
     Internal.NativeFunctions.nwnxPushInt(data.Slash);
     Internal.NativeFunctions.nwnxPushInt(data.Pierce);
     Internal.NativeFunctions.nwnxPushInt(data.Bludgeoning);
     Internal.NativeFunctions.nwnxPushObject(oTarget);
     Internal.NativeFunctions.nwnxPushObject(oSource);
     Internal.NativeFunctions.nwnxCallFunction();
 }