Jump to content

Complex weapon (non-balistic) damage seem impossible to negate


PJMail

Recommended Posts

13 hours ago, PJMail said:

I really think this is some buggy interaction compounded with a damage multiplier - it is impossible otherwise to loose 384 health from an unarmed attack that is totally blocked by a perk.

At the moment I have resolved it by explicitely blocking the Mirelurk King 'sonic attack' spell (which means it no longer even tries to attack) - but the bug is out there so will bite me again a different way.

I wouldn't put a lot of effort into it unless someone else can use those functions - I am going to lay off modding for a couple of months (I need to regain some enthusiasm).

Thanks for the offer though.

I looked into it anyway, maybe it'll be useful later. 🙂 

OnHit receives all kinds of attack/hit related data, seems like every "hit type" results in a somewhat different set of input variables.. sometimes the parameters are duplicates of each other, sometimes projectile or akSource is None (while sourceByHandle still points to a ref)... it's no wonder the Papyrus version of OnHit can't always output consistent data.

 

  sourceByHandle = technically the source object instance that causes the hit (e.g., Explosion or Projectile instance that lives for only milliseconds, as it's destroyed after OnHit).

  sourceByHandleBase = not being sent natively, I added it as sourceByHandle.GetBaseObject() so that the source object instance can be identified in FO4Edit... (doesn't always work though, sourceByHandle might be destroyed too early).

 

Garden of Eden currently receives all OnHit events sent by the code (logs even stray bullets that hit a wall, car or ground, etc.) so the log can fill up easily but here's what I could find (based only a few tests).

 >> The event either points to "MirelurkKingSonicExplosion [EXPL:000EA8F9]" (sourceByHandleBase) or "WeapMirelurkKing "Sonic Attack" [WEAP:000FC3EC]" (akSource)

 >> akAmmo, akSource, akProjectile are rarely sent by the event, this probably renders perks entries that rely on the akSource weapon unreliable

 >> hasAttackData should be True on a melee attack (yet no akSource is specified so the code most likely recognizes it by the other parameters)

Some example event logs:

 
[2024-02-09 17:40:58.850] [ F4SE log ] [info] [Objects.h:12756] ---------------  OnHit received  ----------------
[2024-02-09 17:40:58.850] [ F4SE log ] [info] [Objects.h:12762] akAggressor >> 001243ba
[2024-02-09 17:40:58.850] [ F4SE log ] [info] [Objects.h:12768] akSource >> 000fc3ec
[2024-02-09 17:40:58.850] [ F4SE log ] [info] [Objects.h:12774] akProjectile >> None
[2024-02-09 17:40:58.850] [ F4SE log ] [info] [Objects.h:12776] hasHitData >> 0
[2024-02-09 17:40:58.850] [ F4SE log ] [info] [Objects.h:12782] akTarget >> 00002f1f
[2024-02-09 17:40:58.850] [ F4SE log ] [info] [Objects.h:12788] akAmmo >> None
[2024-02-09 17:40:58.850] [ F4SE log ] [info] [Objects.h:12794] attackerByHandle >> None
[2024-02-09 17:40:58.850] [ F4SE log ] [info] [Objects.h:12802] baseDamage >> 0.000000
[2024-02-09 17:40:58.850] [ F4SE log ] [info] [Objects.h:12803] blockedDamage >> 0.000000
[2024-02-09 17:40:58.850] [ F4SE log ] [info] [Objects.h:12804] blockMult >> 0.000000
[2024-02-09 17:40:58.850] [ F4SE log ] [info] [Objects.h:12805] blockStaggerMult >> 0.000000
[2024-02-09 17:40:58.850] [ F4SE log ] [info] [Objects.h:12806] bodypartType >> -1
[2024-02-09 17:40:58.850] [ F4SE log ] [info] [Objects.h:12807] calculatedBaseDamage >> 0.000000
[2024-02-09 17:40:58.850] [ F4SE log ] [info] [Objects.h:12808] criticalDamageMult >> 1.000000
[2024-02-09 17:40:58.850] [ F4SE log ] [info] [Objects.h:12825] attackerMagicEffect >> None
[2024-02-09 17:40:58.850] [ F4SE log ] [info] [Objects.h:12829] hitDataFlags >> 0
[2024-02-09 17:40:58.850] [ F4SE log ] [info] [Objects.h:12830] reducedDamage >> 0.000000
[2024-02-09 17:40:58.850] [ F4SE log ] [info] [Objects.h:12831] sneakAttackMult >> 1.000000
[2024-02-09 17:40:58.850] [ F4SE log ] [info] [Objects.h:12842] sourceByHandle >> None
[2024-02-09 17:40:58.850] [ F4SE log ] [info] [Objects.h:12850] spellItem >> None
[2024-02-09 17:40:58.850] [ F4SE log ] [info] [Objects.h:12852] totalDamage >> 0.000000
[2024-02-09 17:40:58.850] [ F4SE log ] [info] [Objects.h:12858] akTargetByHandle >> None
[2024-02-09 17:40:58.850] [ F4SE log ] [info] [Objects.h:12892] HasAttackData >> 0
[2024-02-09 17:40:58.850] [ F4SE log ] [info] [Objects.h:12899] asMaterialName >> 
[2024-02-09 17:40:58.850] [ F4SE log ] [info] [Objects.h:12900] --------------------------------------------
[2024-02-09 17:51:10.191] [ F4SE log ] [info] [Objects.h:12756] ---------------  OnHit received  ----------------
[2024-02-09 17:51:10.191] [ F4SE log ] [info] [Objects.h:12762] akAggressor >> None
[2024-02-09 17:51:10.191] [ F4SE log ] [info] [Objects.h:12768] akSource >> None
[2024-02-09 17:51:10.191] [ F4SE log ] [info] [Objects.h:12774] akProjectile >> None
[2024-02-09 17:51:10.191] [ F4SE log ] [info] [Objects.h:12776] hasHitData >> 1
[2024-02-09 17:51:10.191] [ F4SE log ] [info] [Objects.h:12782] akTarget >> None
[2024-02-09 17:51:10.191] [ F4SE log ] [info] [Objects.h:12788] akAmmo >> None
[2024-02-09 17:51:10.191] [ F4SE log ] [info] [Objects.h:12794] attackerByHandle >> 001243b5
[2024-02-09 17:51:10.191] [ F4SE log ] [info] [Objects.h:12802] baseDamage >> 75.000000
[2024-02-09 17:51:10.191] [ F4SE log ] [info] [Objects.h:12803] blockedDamage >> 0.000000
[2024-02-09 17:51:10.191] [ F4SE log ] [info] [Objects.h:12804] blockMult >> 0.000000
[2024-02-09 17:51:10.191] [ F4SE log ] [info] [Objects.h:12805] blockStaggerMult >> 0.000000
[2024-02-09 17:51:10.191] [ F4SE log ] [info] [Objects.h:12806] bodypartType >> -1
[2024-02-09 17:51:10.191] [ F4SE log ] [info] [Objects.h:12807] calculatedBaseDamage >> 40.465652
[2024-02-09 17:51:10.191] [ F4SE log ] [info] [Objects.h:12808] criticalDamageMult >> 1.000000
[2024-02-09 17:51:10.191] [ F4SE log ] [info] [Objects.h:12825] attackerMagicEffect >> None
[2024-02-09 17:51:10.191] [ F4SE log ] [info] [Objects.h:12829] hitDataFlags >> 262144
[2024-02-09 17:51:10.191] [ F4SE log ] [info] [Objects.h:12830] reducedDamage >> 34.534348
[2024-02-09 17:51:10.191] [ F4SE log ] [info] [Objects.h:12831] sneakAttackMult >> 1.000000
[2024-02-09 17:51:10.191] [ F4SE log ] [info] [Objects.h:12842] sourceByHandle >> None
[2024-02-09 17:51:10.191] [ F4SE log ] [info] [Objects.h:12850] spellItem >> None
[2024-02-09 17:51:10.191] [ F4SE log ] [info] [Objects.h:12852] totalDamage >> 40.465652
[2024-02-09 17:51:10.191] [ F4SE log ] [info] [Objects.h:12858] akTargetByHandle >> 0100ff12
[2024-02-09 17:51:10.191] [ F4SE log ] [info] [Objects.h:12860] hasAttackData >> 1
[2024-02-09 17:51:10.191] [ F4SE log ] [info] [Objects.h:12862]   actionPointsMult >> 1.000000
[2024-02-09 17:51:10.191] [ F4SE log ] [info] [Objects.h:12864]   attackAngle >> 0.000000
[2024-02-09 17:51:10.191] [ F4SE log ] [info] [Objects.h:12866]   attackChance >> 1.000000
[2024-02-09 17:51:10.191] [ F4SE log ] [info] [Objects.h:12872]   attackSpell >> None
[2024-02-09 17:51:10.191] [ F4SE log ] [info] [Objects.h:12878]   attackTypeKeyword >> None
[2024-02-09 17:51:10.191] [ F4SE log ] [info] [Objects.h:12885]   damageMult >> 1.000000
[2024-02-09 17:51:10.191] [ F4SE log ] [info] [Objects.h:12886]   attackDataFlags >> 0
[2024-02-09 17:51:10.191] [ F4SE log ] [info] [Objects.h:12887]   knockdown >> 0.000000
[2024-02-09 17:51:10.191] [ F4SE log ] [info] [Objects.h:12888]   recoveryTime >> 0.000000
[2024-02-09 17:51:10.191] [ F4SE log ] [info] [Objects.h:12889]   staggerOffset >> 0
[2024-02-09 17:51:10.191] [ F4SE log ] [info] [Objects.h:12890]   strikeAngle >> 35.000000
[2024-02-09 17:51:10.191] [ F4SE log ] [info] [Objects.h:12899] asMaterialName >> 
[2024-02-09 17:51:10.191] [ F4SE log ] [info] [Objects.h:12900] --------------------------------------------
Edited by LarannKiar
Link to comment
Share on other sites

Your improved onhit logging - is it available now via GOE? I think I still have the save that will reproduce the issue. Note that the sonic attack is not the problem. NPCs don't seem to attack if all their attacks are blocked. I added a block to the sonic attack so they did not attack at all. Before that I saw the sonic onhit - but it was low damage. The high damage attack was   "Unarmed Mirelurk King" [WEAP:000C2C2F]

Link to comment
Share on other sites

Not currently but I can upload a preview build. I'm planning to add it to the next (rather large) update along with many new global events like OnCombatStateChanged, OnContainerChanged, maybe OnLoadOnUnload.

Update: added ~40 variables in total, I'm still testing the Papyrus OnHitEvent.

 
GardenOfEdenEvents.psc:

Function RegisterForOnHitEvent(String asScriptName) native global
Function UnregisterForOnHitEvent(String asScriptName) native global
Bool Function IsRegisteredForOnHitEvent(String asScriptName) native global
String[] Function GetOnHitEventRegistrations() native global
Function OnHitEvent(int aiAggressorID, int aiSourceID, int aiProjectileID, int aiTargetID, bool bHasHitData, int aiHitDataAmmoID, \
	int aiHitDataAttackerByHandleID, float afHitDataBaseDamage, float afHitDataBlockedDamage, float afHitDataBlockMult, float afHitDataBlockStaggerMult, int aiHitDataBodyPartType, \
	float afHitDataCalculatedBaseDamage, float afHitDataCriticalDamageMult, int aiHitDataAttackerMagicEffectID, int aiHitDataFlags, float afHitDataReducedDamage, float afHitDataSneakAttackMult, \
	int aiHitDataSourceByHandleID, int aiHitDataSourceByHandleBaseID, int aiHitDataSourceObjectInstanceID, int aiHitDataSpellItemID, int aiHitDataMaterialType, float afHitDataTotalDamage, int aiHitDataTargetByHandleID, bool bHasAttackData, \
	float afAttackDataActionPointsMult, float afAttackDataAttackAngle, float afAttackDataAttackChance, int aiAttackDataAttackSpellID, int aiAttackDataAttackTypeKeywordID, int aiAttackDataWeaponEquipSlotID, int aiAttackDataRequiredEquipSlotID, \
	String asAttackDataEvent, float afAttackDataDamageMult, int aiAttackDataFlags, float afAttackDataKnockdown, float afAttackDataRecoveryTime, int aiAttackDataStaggerOffset, float afAttackDataStrikeAngle, \
	String asMaterialName) global

	Debug.Trace("GardenOfEdenEvents::OnHitEvent: event received ----------------------------------------- ")
	Debug.Trace("GardenOfEdenEvents::OnHitEvent: aiAggressorID: " + GardenOfEden.IntToHex(aiAggressorID)) 
	Debug.Trace("GardenOfEdenEvents::OnHitEvent: aiSourceID: " + GardenOfEden.IntToHex(aiSourceID)) 
	Debug.Trace("GardenOfEdenEvents::OnHitEvent: aiProjectileID: " + GardenOfEden.IntToHex(aiProjectileID)) 
	Debug.Trace("GardenOfEdenEvents::OnHitEvent: aiTargetID: " + GardenOfEden.IntToHex(aiTargetID)) 
	Debug.Trace("GardenOfEdenEvents::OnHitEvent: bHasHitData: " + bHasHitData) 
	Debug.Trace("GardenOfEdenEvents::OnHitEvent: aiHitDataAmmoID: " + GardenOfEden.IntToHex(aiHitDataAmmoID)) 
	Debug.Trace("GardenOfEdenEvents::OnHitEvent: aiHitDataAttackerByHandleID: " + GardenOfEden.IntToHex(aiHitDataAttackerByHandleID)) 
	Debug.Trace("GardenOfEdenEvents::OnHitEvent: afHitDataBaseDamage: " + afHitDataBaseDamage) 
	Debug.Trace("GardenOfEdenEvents::OnHitEvent: afHitDataBlockedDamage: " + afHitDataBlockedDamage) 
	Debug.Trace("GardenOfEdenEvents::OnHitEvent: afHitDataBlockMult: " + afHitDataBlockMult) 
	Debug.Trace("GardenOfEdenEvents::OnHitEvent: afHitDataBlockStaggerMult: " + afHitDataBlockStaggerMult) 
	Debug.Trace("GardenOfEdenEvents::OnHitEvent: aiHitDataBodyPartType: " + aiHitDataBodyPartType) 
	Debug.Trace("GardenOfEdenEvents::OnHitEvent: afHitDataCalculatedBaseDamage: " + afHitDataCalculatedBaseDamage) 
	Debug.Trace("GardenOfEdenEvents::OnHitEvent: afHitDataCriticalDamageMult: " + afHitDataCriticalDamageMult) 
	Debug.Trace("GardenOfEdenEvents::OnHitEvent: aiHitDataAttackerMagicEffectID: " + GardenOfEden.IntToHex(aiHitDataAttackerMagicEffectID)) 
	Debug.Trace("GardenOfEdenEvents::OnHitEvent: aiHitDataFlags: " + aiHitDataFlags) 
	Debug.Trace("GardenOfEdenEvents::OnHitEvent: afHitDataReducedDamage: " + afHitDataReducedDamage) 
	Debug.Trace("GardenOfEdenEvents::OnHitEvent: afHitDataSneakAttackMult: " + afHitDataSneakAttackMult) 
	Debug.Trace("GardenOfEdenEvents::OnHitEvent: aiHitDataSourceByHandleID: " + GardenOfEden.IntToHex(aiHitDataSourceByHandleID)) 
	Debug.Trace("GardenOfEdenEvents::OnHitEvent: aiHitDataSourceByHandleBaseID: " + GardenOfEden.IntToHex(aiHitDataSourceByHandleBaseID)) 
	Debug.Trace("GardenOfEdenEvents::OnHitEvent: aiHitDataSourceObjectInstanceID: " + GardenOfEden.IntToHex(aiHitDataSourceObjectInstanceID)) 
	Debug.Trace("GardenOfEdenEvents::OnHitEvent: aiHitDataSpellItemID: " + GardenOfEden.IntToHex(aiHitDataSpellItemID)) 
	Debug.Trace("GardenOfEdenEvents::OnHitEvent: aiHitDataMaterialType: " + aiHitDataMaterialType) 
	Debug.Trace("GardenOfEdenEvents::OnHitEvent: afHitDataTotalDamage: " + afHitDataTotalDamage) 
	Debug.Trace("GardenOfEdenEvents::OnHitEvent: aiHitDataTargetByHandleID: " + GardenOfEden.IntToHex(aiHitDataTargetByHandleID)) 
	Debug.Trace("GardenOfEdenEvents::OnHitEvent: bHasAttackData: " + bHasAttackData) 
	Debug.Trace("GardenOfEdenEvents::OnHitEvent: afAttackDataActionPointsMult: " + afAttackDataActionPointsMult) 
	Debug.Trace("GardenOfEdenEvents::OnHitEvent: afAttackDataAttackAngle: " + afAttackDataAttackAngle) 
	Debug.Trace("GardenOfEdenEvents::OnHitEvent: afAttackDataAttackChance: " + afAttackDataAttackChance) 
	Debug.Trace("GardenOfEdenEvents::OnHitEvent: aiAttackDataAttackSpellID: " + GardenOfEden.IntToHex(aiAttackDataAttackSpellID)) 
	Debug.Trace("GardenOfEdenEvents::OnHitEvent: aiAttackDataAttackTypeKeywordID: " + GardenOfEden.IntToHex(aiAttackDataAttackTypeKeywordID)) 
	Debug.Trace("GardenOfEdenEvents::OnHitEvent: aiAttackDataWeaponEquipSlotID: " + GardenOfEden.IntToHex(aiAttackDataWeaponEquipSlotID)) 
	Debug.Trace("GardenOfEdenEvents::OnHitEvent: aiAttackDataRequiredEquipSlotID: " + GardenOfEden.IntToHex(aiAttackDataRequiredEquipSlotID)) 
	Debug.Trace("GardenOfEdenEvents::OnHitEvent: asAttackDataEvent: " + asAttackDataEvent) 
	Debug.Trace("GardenOfEdenEvents::OnHitEvent: afAttackDataDamageMult: " + afAttackDataDamageMult) 
	Debug.Trace("GardenOfEdenEvents::OnHitEvent: aiAttackDataFlags: " + aiAttackDataFlags) 
	Debug.Trace("GardenOfEdenEvents::OnHitEvent: afAttackDataKnockdown: " + afAttackDataKnockdown) 
	Debug.Trace("GardenOfEdenEvents::OnHitEvent: afAttackDataRecoveryTime: " + afAttackDataRecoveryTime) 
	Debug.Trace("GardenOfEdenEvents::OnHitEvent: aiAttackDataStaggerOffset: " + aiAttackDataStaggerOffset) 
	Debug.Trace("GardenOfEdenEvents::OnHitEvent: afAttackDataStrikeAngle: " + afAttackDataStrikeAngle) 
	Debug.Trace("GardenOfEdenEvents::OnHitEvent: asMaterialName: " + asMaterialName) 

EndFunction

GardenOfEdenPapyrusScriptExtender.log:

[2024-02-10 06:29:58.584] [ F4SE log ] [info] [Objects.h:12944] ---------------  OnHitEvent received  ----------------
[2024-02-10 06:29:58.584] [ F4SE log ] [info] [Objects.h:12950] akAggressor >> None
[2024-02-10 06:29:58.584] [ F4SE log ] [info] [Objects.h:12956] akSource >> None
[2024-02-10 06:29:58.584] [ F4SE log ] [info] [Objects.h:12962] akProjectile >> None
[2024-02-10 06:29:58.584] [ F4SE log ] [info] [Objects.h:12970] akTarget >> None
[2024-02-10 06:29:58.584] [ F4SE log ] [info] [Objects.h:12964] hasHitData >> 1
[2024-02-10 06:29:58.584] [ F4SE log ] [info] [Objects.h:12976]   akAmmo >> None
[2024-02-10 06:29:58.584] [ F4SE log ] [info] [Objects.h:12982]   attackerByHandle >> 00000014
[2024-02-10 06:29:58.584] [ F4SE log ] [info] [Objects.h:12990]   baseDamage >> 16.800003
[2024-02-10 06:29:58.584] [ F4SE log ] [info] [Objects.h:12991]   blockedDamage >> 6.380481
[2024-02-10 06:29:58.584] [ F4SE log ] [info] [Objects.h:12992]   blockMult >> 0.000000
[2024-02-10 06:29:58.584] [ F4SE log ] [info] [Objects.h:12993]   blockStaggerMult >> 0.000000
[2024-02-10 06:29:58.584] [ F4SE log ] [info] [Objects.h:12994]   bodypartType >> 1
[2024-02-10 06:29:58.584] [ F4SE log ] [info] [Objects.h:12995]   calculatedBaseDamage >> 10.174679
[2024-02-10 06:29:58.584] [ F4SE log ] [info] [Objects.h:12996]   criticalDamageMult >> 1.000000
[2024-02-10 06:29:58.584] [ F4SE log ] [info] [Objects.h:13013]   attackerMagicEffect >> None
[2024-02-10 06:29:58.584] [ F4SE log ] [info] [Objects.h:13017]   hitDataFlags >> 393216
[2024-02-10 06:29:58.584] [ F4SE log ] [info] [Objects.h:13018]   reducedDamage >> 11.712664
[2024-02-10 06:29:58.584] [ F4SE log ] [info] [Objects.h:13019]   sneakAttackMult >> 1.000000
[2024-02-10 06:29:58.584] [ F4SE log ] [info] [Objects.h:13029]   sourceByHandle >> None
[2024-02-10 06:29:58.584] [ F4SE log ] [info] [Objects.h:13037]   sourceObjectInstanceBase >> 06033b60
[2024-02-10 06:29:58.584] [ F4SE log ] [info] [Objects.h:13043]   spellItem >> None
[2024-02-10 06:29:58.584] [ F4SE log ] [info] [Objects.h:13045]   materialType >> 0
[2024-02-10 06:29:58.584] [ F4SE log ] [info] [Objects.h:13047]   totalDamage >> 5.087339
[2024-02-10 06:29:58.584] [ F4SE log ] [info] [Objects.h:13053]   akTargetByHandle >> 001243b8
[2024-02-10 06:29:58.584] [ F4SE log ] [info] [Objects.h:13055] hasAttackData >> 1
[2024-02-10 06:29:58.584] [ F4SE log ] [info] [Objects.h:13057]     actionPointsMult >> 0.250000
[2024-02-10 06:29:58.584] [ F4SE log ] [info] [Objects.h:13059]     attackAngle >> 0.000000
[2024-02-10 06:29:58.584] [ F4SE log ] [info] [Objects.h:13061]     attackChance >> 1.000000
[2024-02-10 06:29:58.584] [ F4SE log ] [info] [Objects.h:13067]     attackSpell >> None
[2024-02-10 06:29:58.584] [ F4SE log ] [info] [Objects.h:13073]     attackTypeKeyword >> None
[2024-02-10 06:29:58.584] [ F4SE log ] [info] [Objects.h:13079]     weaponEquipSlot >> None
[2024-02-10 06:29:58.584] [ F4SE log ] [info] [Objects.h:13085]     requiredEquipSlot >> None
[2024-02-10 06:29:58.584] [ F4SE log ] [info] [Objects.h:13092]     eventName >> meleeAttackGun
[2024-02-10 06:29:58.584] [ F4SE log ] [info] [Objects.h:13099]     damageMult >> 1.000000
[2024-02-10 06:29:58.584] [ F4SE log ] [info] [Objects.h:13100]     attackDataFlags >> 4
[2024-02-10 06:29:58.584] [ F4SE log ] [info] [Objects.h:13101]     knockdown >> 0.000000
[2024-02-10 06:29:58.584] [ F4SE log ] [info] [Objects.h:13102]     recoveryTime >> 1.000000
[2024-02-10 06:29:58.584] [ F4SE log ] [info] [Objects.h:13103]     staggerOffset >> 0
[2024-02-10 06:29:58.584] [ F4SE log ] [info] [Objects.h:13104]     strikeAngle >> 35.000000
[2024-02-10 06:29:58.584] [ F4SE log ] [info] [Objects.h:13113] asMaterialName >> 
[2024-02-10 06:29:58.584] [ F4SE log ] [info] [Objects.h:13114] ------------------------------------------------------

Papyrus log:
[02/10/2024 - 06:38:14AM] GardenOfEdenEvents::OnHitEvent: event received ----------------------------------------- 
[02/10/2024 - 06:38:14AM] GardenOfEdenEvents::OnHitEvent: aiAggressorID: 0
[02/10/2024 - 06:38:14AM] GardenOfEdenEvents::OnHitEvent: aiSourceID: 0
[02/10/2024 - 06:38:14AM] GardenOfEdenEvents::OnHitEvent: aiProjectileID: 0
[02/10/2024 - 06:38:14AM] GardenOfEdenEvents::OnHitEvent: aiTargetID: 0
[02/10/2024 - 06:38:14AM] GardenOfEdenEvents::OnHitEvent: bHasHitData: True
[02/10/2024 - 06:38:14AM] GardenOfEdenEvents::OnHitEvent: aiHitDataAmmoID: 1f66a
[02/10/2024 - 06:38:14AM] GardenOfEdenEvents::OnHitEvent: aiHitDataAttackerByHandleID: 14
[02/10/2024 - 06:38:14AM] GardenOfEdenEvents::OnHitEvent: afHitDataBaseDamage: 67.199997
[02/10/2024 - 06:38:14AM] GardenOfEdenEvents::OnHitEvent: afHitDataBlockedDamage: 5.291456
[02/10/2024 - 06:38:14AM] GardenOfEdenEvents::OnHitEvent: afHitDataBlockMult: 0.000000
[02/10/2024 - 06:38:14AM] GardenOfEdenEvents::OnHitEvent: afHitDataBlockStaggerMult: 0.000000
[02/10/2024 - 06:38:14AM] GardenOfEdenEvents::OnHitEvent: aiHitDataBodyPartType: 0
[02/10/2024 - 06:38:14AM] GardenOfEdenEvents::OnHitEvent: afHitDataCalculatedBaseDamage: 33.752228
[02/10/2024 - 06:38:14AM] GardenOfEdenEvents::OnHitEvent: afHitDataCriticalDamageMult: 1.000000
[02/10/2024 - 06:38:14AM] GardenOfEdenEvents::OnHitEvent: aiHitDataAttackerMagicEffectID: 0
[02/10/2024 - 06:38:14AM] GardenOfEdenEvents::OnHitEvent: aiHitDataFlags: 0
[02/10/2024 - 06:38:14AM] GardenOfEdenEvents::OnHitEvent: afHitDataReducedDamage: 33.447769
[02/10/2024 - 06:38:14AM] GardenOfEdenEvents::OnHitEvent: afHitDataSneakAttackMult: 1.000000
[02/10/2024 - 06:38:14AM] GardenOfEdenEvents::OnHitEvent: aiHitDataSourceByHandleID: ff02ac3e
[02/10/2024 - 06:38:14AM] GardenOfEdenEvents::OnHitEvent: aiHitDataSourceByHandleBaseID: 0
[02/10/2024 - 06:38:14AM] GardenOfEdenEvents::OnHitEvent: aiHitDataSourceObjectInstanceID: 6033b60
[02/10/2024 - 06:38:14AM] GardenOfEdenEvents::OnHitEvent: aiHitDataSpellItemID: 0
[02/10/2024 - 06:38:14AM] GardenOfEdenEvents::OnHitEvent: aiHitDataMaterialType: 0
[02/10/2024 - 06:38:14AM] GardenOfEdenEvents::OnHitEvent: afHitDataTotalDamage: 0.000000
[02/10/2024 - 06:38:14AM] GardenOfEdenEvents::OnHitEvent: aiHitDataTargetByHandleID: 1243ba
[02/10/2024 - 06:38:14AM] GardenOfEdenEvents::OnHitEvent: bHasAttackData: False
[02/10/2024 - 06:38:14AM] GardenOfEdenEvents::OnHitEvent: afAttackDataActionPointsMult: 0.000000
[02/10/2024 - 06:38:14AM] GardenOfEdenEvents::OnHitEvent: afAttackDataAttackAngle: 0.000000
[02/10/2024 - 06:38:14AM] GardenOfEdenEvents::OnHitEvent: afAttackDataAttackChance: 0.000000
[02/10/2024 - 06:38:14AM] GardenOfEdenEvents::OnHitEvent: aiAttackDataAttackSpellID: 0
[02/10/2024 - 06:38:14AM] GardenOfEdenEvents::OnHitEvent: aiAttackDataAttackTypeKeywordID: 0
[02/10/2024 - 06:38:14AM] GardenOfEdenEvents::OnHitEvent: aiAttackDataWeaponEquipSlotID: 0
[02/10/2024 - 06:38:14AM] GardenOfEdenEvents::OnHitEvent: aiAttackDataRequiredEquipSlotID: 0
[02/10/2024 - 06:38:14AM] GardenOfEdenEvents::OnHitEvent: asAttackDataEvent: 
[02/10/2024 - 06:38:14AM] GardenOfEdenEvents::OnHitEvent: afAttackDataDamageMult: 33.752228
[02/10/2024 - 06:38:14AM] GardenOfEdenEvents::OnHitEvent: aiAttackDataFlags: 0
[02/10/2024 - 06:38:14AM] GardenOfEdenEvents::OnHitEvent: afAttackDataKnockdown: 0.000000
[02/10/2024 - 06:38:14AM] GardenOfEdenEvents::OnHitEvent: afAttackDataRecoveryTime: 0.000000
[02/10/2024 - 06:38:14AM] GardenOfEdenEvents::OnHitEvent: aiAttackDataStaggerOffset: 0
[02/10/2024 - 06:38:14AM] GardenOfEdenEvents::OnHitEvent: afAttackDataStrikeAngle: 0.000000
[02/10/2024 - 06:38:14AM] GardenOfEdenEvents::OnHitEvent: asMaterialName: 

 

Edited by LarannKiar
Link to comment
Share on other sites

And if you are still taking requests - I would like a "GetCameraDirection" that returns the X,Y,Z angle of of the camera view (even in 3rd person or when sitting).

And perhaps a "SetCameraOffset" to fix issues where the 1st person view is too high/low for the size of the player character. I know this call is available in the HighHeel system DLL, but it should be available generally...

In fact there is probably a whole bunch of Camera type functions people would like...

Thanks!

Link to comment
Share on other sites

I added OnHitEvent to v17.0 but yes I think I'll take a break too. 🙂 As for the camera height, GetPlayerEyeHeight() and GetCurrentEyeLevel() are currently implemented, I can probably add SetPlayerEyeHeight(float afHeight) too. Camera coords seem doable as well. And now that I think of it, the only group of variables I excluded from OnHitEvent was the projectile impact data: projectile vector, hit direction and the like. Let me know if these are of interests.

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...