LarannKiar Posted February 10, 2024 Share Posted February 10, 2024 (edited) 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 February 10, 2024 by LarannKiar Link to comment Share on other sites More sharing options...
PJMail Posted February 10, 2024 Author Share Posted February 10, 2024 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 More sharing options...
LarannKiar Posted February 10, 2024 Share Posted February 10, 2024 (edited) 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 February 10, 2024 by LarannKiar Link to comment Share on other sites More sharing options...
PJMail Posted February 11, 2024 Author Share Posted February 11, 2024 I am running out of time before my vacation so don't hurry - I will park this testing until I get back. You will probably be a few versions on by then! Link to comment Share on other sites More sharing options...
PJMail Posted February 11, 2024 Author Share Posted February 11, 2024 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 More sharing options...
LarannKiar Posted February 11, 2024 Share Posted February 11, 2024 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 More sharing options...
Recommended Posts