Guest User

Untitled

a guest
Jun 12th, 2012
129
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.94 KB | None | 0 0
  1. //::///////////////////////////////////////////////
  2. //:: Ray of Frost
  3. //:: [NW_S0_RayFrost.nss]
  4. //:: Copyright (c) 2000 Bioware Corp.
  5. //:://////////////////////////////////////////////
  6. /*
  7. If the caster succeeds at a ranged touch attack
  8. the target takes 1d4 damage.
  9. */
  10. //:://////////////////////////////////////////////
  11. //:: Created By: Preston Watamaniuk
  12. //:: Created On: feb 4, 2001
  13. //:://////////////////////////////////////////////
  14. //:: Bug Fix: Andrew Nobbs, April 17, 2003
  15. //:: Notes: Took out ranged attack roll.
  16. //:://////////////////////////////////////////////
  17.  
  18.  
  19. #include "NW_I0_SPELLS"
  20. #include "x2_inc_spellhook"
  21.  
  22. void main()
  23. {
  24.  
  25. /*
  26. Spellcast Hook Code
  27. Added 2003-06-20 by Georg
  28. If you want to make changes to all spells,
  29. check x2_inc_spellhook.nss to find out more
  30.  
  31. */
  32.  
  33. if (!X2PreSpellCastCode())
  34. {
  35. // If code within the PreSpellCastHook (i.e. UMD) reports FALSE, do not run this spell
  36. return;
  37. }
  38.  
  39. // End of Spell Cast Hook
  40. object oTarget = GetSpellTargetObject();
  41.  
  42. if(GetTag(GetSpellCastItem()) == "warlock_staff")
  43. {
  44. int nDam = d6(GetLevelByClass(CLASS_TYPE_BARD)/2);
  45. effect eDam = EffectDamage(nDam, DAMAGE_TYPE_MAGICAL);
  46. effect eRay = EffectBeam(VFX_BEAM_EVIL, OBJECT_SELF, BODY_NODE_HAND);
  47. //Apply the VFX impact and damage effect
  48. ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_MAGBLUE), oTarget);
  49. ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oTarget);
  50. ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eRay, oTarget, 1.7);
  51. return;
  52. }
  53. //Declare major variables
  54. int nMetaMagic = GetMetaMagicFeat();
  55. int nCasterLevel = GetCasterLevel(OBJECT_SELF);
  56. int nDam = d4(1) + 1;
  57. effect eDam;
  58. effect eVis = EffectVisualEffect(VFX_IMP_FROST_S);
  59. effect eRay = EffectBeam(VFX_BEAM_COLD, OBJECT_SELF, BODY_NODE_HAND);
  60.  
  61. if(!GetIsReactionTypeFriendly(oTarget))
  62. {
  63. //Fire cast spell at event for the specified target
  64. SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_RAY_OF_FROST));
  65. eRay = EffectBeam(VFX_BEAM_COLD, OBJECT_SELF, BODY_NODE_HAND);
  66. //Make SR Check
  67. if(!MyResistSpell(OBJECT_SELF, oTarget))
  68. {
  69. //Enter Metamagic conditions
  70. if (nMetaMagic == METAMAGIC_MAXIMIZE)
  71. {
  72. nDam = 5 ;//Damage is at max
  73. }
  74. else if (nMetaMagic == METAMAGIC_EMPOWER)
  75. {
  76. nDam = nDam + nDam/2; //Damage/Healing is +50%
  77. }
  78. //Set damage effect
  79. eDam = EffectDamage(nDam, DAMAGE_TYPE_COLD);
  80. //Apply the VFX impact and damage effect
  81. ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
  82. ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oTarget);
  83. }
  84. }
  85. ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eRay, oTarget, 1.7);
  86. }
Advertisement
Add Comment
Please, Sign In to add comment