Advertisement
Guest User

Untitled

a guest
Oct 23rd, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.85 KB | None | 0 0
  1. scn MadArmorDTEffectFUNCTION
  2.  
  3. ref rTarget
  4. ref rWeapon
  5.  
  6. ref rArmor
  7. ref rImpactDataSet
  8. ref rImpactData
  9. ref rBaseActor
  10. ref rBodyPartData
  11. float fOldBloodSplatterSetting
  12. int iArmorClass
  13. int iMaterialType
  14. int iWeaponType
  15. int iWeaponDismemberSetting
  16. int iLimb
  17. int iCanLimbDismember
  18. int iCanLimbExplode
  19. int iRandomNumber
  20. int iCritical
  21.  
  22. begin Function{rTarget, rWeapon}
  23.  
  24. ; CHECK FOR ACTOR
  25. if rTarget.IsActor
  26.  
  27. Set iCritical To GetLastHitCritical
  28. Print $iCritical
  29.  
  30. ; GET IMPACT SET USED BY THE WEAPON
  31. Set rImpactDataSet To GetImpactDataSet rWeapon
  32. Set MadEverythingQUEST.rImpactDataSet To rImpactDataSet
  33.  
  34. ; GET ACTOR MATERIAL
  35. Set iMaterialType To rTarget.GetImpactMaterialType
  36. Set MadEverythingQUEST.iMaterialType To iMaterialType
  37.  
  38. ; GET IMPACT DATA USED FOR HIT EFFECT
  39. Set rImpactData To GetImpactDataSetForm rImpactDataSet iMaterialType
  40. Set MadEverythingQUEST.rImpactData To rImpactData
  41.  
  42. ; GET WEAPON TYPE
  43. Set iWeaponType To GetWeaponSkill rWeapon
  44. Set MadEverythingQUEST.iWeaponType To iWeaponType
  45.  
  46. ; CHECK IF DAMAGE IS ABSORBED BY ARMOR
  47. if rTarget.GetArmourPenetrated == 0
  48.  
  49. ; TURN OFF BLOOD SPLATTERS
  50. SetNumericGameSetting fCombatEnvironmentBloodChance 0
  51.  
  52. ; SET PROJECTILE FORCE TO VERY LOW VALUE
  53. SetNumericGameSetting fGameplayImpulseMultBiped 0.1
  54.  
  55. ; CHECK IF ACTOR IS NOT A CREATURE
  56. if rTarget.GetIsCreature == 0
  57.  
  58. ; GET ARMOR EQUIPPED
  59. Set rArmor To rTarget.GetEquippedObject 2
  60.  
  61. ; GET ARMOR CLASS
  62. Set iArmorClass To GetArmorClass rArmor
  63.  
  64. ; CHECK IF TARGET IS PLAYER
  65. if rTarget == PlayerRef
  66.  
  67. ; TURN OFF SCREEN BLOOD SPLATTERS
  68. SetNumericGameSetting fBloodSplatterDuration 0
  69.  
  70. endif
  71.  
  72. ; ------------------------------------------------------------------
  73. ; LIGHT ARMOR CLASS
  74. ; ------------------------------------------------------------------
  75. if iArmorClass == 1
  76.  
  77. ; GUNS
  78. if iWeaponType == 41
  79.  
  80. if rImpactDataSet == BallisticImpactDataSet
  81.  
  82. SetImpactDataSetForm rImpactDataSet iMaterialType MadAbsorbedImpactEffectLight
  83.  
  84. endif
  85.  
  86. ; ENERGY WEAPONS
  87. elseif iWeaponType == 34
  88.  
  89. if rImpactDataSet == EnergyImpactDataSet
  90.  
  91. SetImpactDataSetForm rImpactDataSet iMaterialType MadAbsorbedLaserRedEffectLightMedium
  92.  
  93. elseif rImpactDataSet == MadCustomLaserGreenDataSet
  94.  
  95. SetImpactDataSetForm rImpactDataSet iMaterialType MadAbsorbedLaserGreenEffectLightMedium
  96.  
  97. endif
  98.  
  99. ; MELEE WEAPONS
  100. elseif iWeaponType == 38
  101.  
  102. ; REMOVE BLOOD DECALS FROM MELEE WEAPONS
  103. if iMaterialType == 6
  104.  
  105. SetImpactDataTraitForm BloodSpoutRedData 0
  106.  
  107. elseif iMaterialType == 10
  108.  
  109. SetImpactDataTraitForm BloodSpoutBugData 0
  110.  
  111. elseif iMaterialType == 11
  112.  
  113. SetImpactDataTraitForm BloodSpoutYellowGlowData 0
  114.  
  115. endif
  116.  
  117. endif
  118.  
  119. rTarget.SetGameMainLoopCallback MadArmorDTEffectCALLBACK 1 1
  120.  
  121. ; ------------------------------------------------------------------
  122. ; MEDIUM ARMOR CLASS
  123. ; ------------------------------------------------------------------
  124. elseif iArmorClass == 2
  125.  
  126. ; GUNS
  127. if iWeaponType == 41
  128.  
  129. if rImpactDataSet == BallisticImpactDataSet
  130.  
  131. SetImpactDataSetForm rImpactDataSet iMaterialType MadAbsorbedImpactEffectMedium
  132.  
  133. endif
  134.  
  135. ; ENERGY WEAPONS
  136. elseif iWeaponType == 34
  137.  
  138. if rImpactDataSet == EnergyImpactDataSet
  139.  
  140. SetImpactDataSetForm rImpactDataSet iMaterialType MadAbsorbedLaserRedEffectLightMedium
  141.  
  142. elseif rImpactDataSet == MadCustomLaserGreenDataSet
  143.  
  144. SetImpactDataSetForm rImpactDataSet iMaterialType MadAbsorbedLaserGreenEffectLightMedium
  145.  
  146. endif
  147.  
  148. ; MELEE WEAPONS
  149. elseif iWeaponType == 38
  150.  
  151. if iMaterialType == 6
  152.  
  153. SetImpactDataTraitForm BloodSpoutRedData 0
  154.  
  155. elseif iMaterialType == 10
  156.  
  157. SetImpactDataTraitForm BloodSpoutBugData 0
  158.  
  159. elseif iMaterialType == 11
  160.  
  161. SetImpactDataTraitForm BloodSpoutYellowGlowData 0
  162.  
  163. endif
  164.  
  165. endif
  166.  
  167. rTarget.SetGameMainLoopCallback MadArmorDTEffectCALLBACK 1 1
  168.  
  169. ; ------------------------------------------------------------------
  170. ; HEAVY ARMOR CLASS
  171. ; ------------------------------------------------------------------
  172. elseif iArmorClass == 3
  173.  
  174. ; GUNS
  175. if iWeaponType == 41
  176.  
  177. SetImpactDataSetForm rImpactDataSet iMaterialType MadAbsorbedImpactEffectHeavy
  178.  
  179. ; ENERGY WEAPONS
  180. elseif iWeaponType == 34
  181.  
  182. if rImpactDataSet == EnergyImpactDataSet
  183.  
  184. SetImpactDataSetForm rImpactDataSet iMaterialType MadAbsorbedLaserRedEffectHeavy
  185.  
  186. elseif rImpactDataSet == MadCustomLaserGreenDataSet
  187.  
  188. SetImpactDataSetForm rImpactDataSet iMaterialType MadAbsorbedLaserGreenEffectHeavy
  189.  
  190. endif
  191.  
  192. ; MELEE WEAPONS
  193. elseif iWeaponType == 38
  194.  
  195. if iMaterialType == 6
  196.  
  197. SetImpactDataTraitForm BloodSpoutRedData 0
  198.  
  199. elseif iMaterialType == 10
  200.  
  201. SetImpactDataTraitForm BloodSpoutBugData 0
  202.  
  203. elseif iMaterialType == 11
  204.  
  205. SetImpactDataTraitForm BloodSpoutYellowGlowData 0
  206.  
  207. endif
  208.  
  209. endif
  210.  
  211. rTarget.SetGameMainLoopCallback MadArmorDTEffectCALLBACK 1 1
  212.  
  213. endif
  214.  
  215. ; ------------------------------------------------------------------
  216. ; CREATURES
  217. ; ------------------------------------------------------------------
  218. else
  219.  
  220. ; ORGANIC CREATURES
  221. if iMaterialType != 4 && iMaterialType != 9
  222.  
  223. if iWeaponType == 41
  224.  
  225. SetImpactDataSetForm rImpactDataSet iMaterialType MadAbsorbedImpactEffectCreatureGeneric
  226.  
  227. elseif iWeaponType == 34
  228.  
  229. if rImpactDataSet == EnergyImpactDataSet
  230.  
  231. SetImpactDataSetForm rImpactDataSet iMaterialType MadAbsorbedLaserRedEffectLightMedium
  232.  
  233. elseif rImpactDataSet == MadCustomLaserGreenDataSet
  234.  
  235. SetImpactDataSetForm rImpactDataSet iMaterialType MadAbsorbedLaserGreenEffectLightMedium
  236.  
  237. endif
  238.  
  239. elseif iWeaponType == 38
  240.  
  241. if iMaterialType == 6
  242.  
  243. SetImpactDataTraitForm BloodSpoutRedData 0
  244.  
  245. elseif iMaterialType == 10
  246.  
  247. SetImpactDataTraitForm BloodSpoutBugData 0
  248.  
  249. elseif iMaterialType == 11
  250.  
  251. SetImpactDataTraitForm BloodSpoutYellowGlowData 0
  252.  
  253. endif
  254.  
  255. endif
  256.  
  257. ; METAL CREATURES
  258. else
  259.  
  260. if iWeaponType == 41
  261.  
  262. SetImpactDataSetForm rImpactDataSet iMaterialType MadAbsorbedImpactEffectHeavy
  263.  
  264. elseif iWeaponType == 34
  265.  
  266. if rImpactDataSet == EnergyImpactDataSet
  267.  
  268. SetImpactDataSetForm rImpactDataSet iMaterialType MadAbsorbedLaserRedEffectHeavy
  269.  
  270. elseif rImpactDataSet == MadCustomLaserGreenDataSet
  271.  
  272. SetImpactDataSetForm rImpactDataSet iMaterialType MadAbsorbedLaserGreenEffectHeavy
  273.  
  274. endif
  275.  
  276. endif
  277.  
  278. endif
  279.  
  280. rTarget.SetGameMainLoopCallback MadArmorDTEffectCALLBACK 1 1
  281.  
  282. endif
  283.  
  284. ; ARMOR IS PENETRATED
  285. else
  286.  
  287. Set iRandomNumber To GetRandomPercent
  288.  
  289. Set iWeaponDismemberSetting To GetDismemberWeaponSetting rWeapon
  290. Set MadEverythingQUEST.iWeaponDismemberSetting To iWeaponDismemberSetting
  291.  
  292. if iRandomNumber <= MadEverythingQUEST.iLimbDismemberChance
  293.  
  294. Set iWeaponDismemberSetting To GetDismemberWeaponSetting rWeapon
  295. Set iLimb To rTarget.GetHitLocation
  296. Set MadEverythingQUEST.iLimb To iLimb
  297.  
  298. if iWeaponDismemberSetting == 3
  299.  
  300. return
  301.  
  302. else
  303.  
  304. if iLimb != 0 && rTarget.GetDead
  305.  
  306. Set rBaseActor To rTarget.GBO
  307. Set rBodyPartData To GetBodyPartData rBaseActor
  308.  
  309. Set iCanLimbDismember To GetBodyPartFlag rBodyPartData iLimb 0
  310. Set MadEverythingQUEST.iCanLimbDismember To iCanLimbDismember
  311.  
  312. Set iCanLimbExplode To GetBodyPartFlag rBodyPartData iLimb 3
  313. Set MadEverythingQUEST.iCanLimbExplode To iCanLimbExplode
  314.  
  315. rTarget.SetGameMainLoopCallback MadDismembermentCALLBACK 1 1
  316.  
  317. endif
  318.  
  319. endif
  320.  
  321. endif
  322.  
  323. endif
  324.  
  325. endif
  326.  
  327. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement