Coolgamer012345

Untitled

May 8th, 2015
309
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.55 KB | None | 0 0
  1. // Ice Storm Projects. are LW_SCRIPT1
  2. // Ice Bolt Projects. are LW_SCRIPT2
  3. // Ice Bolt Damage Projects. are LW_SCRIPT1
  4.  
  5.  
  6. const int IceAmuletID = 143;
  7. const int ICE_WPN_MSC = 88;
  8. const int ICE_TILE = 6;
  9.  
  10. const int IceWandID = 144;
  11. const int ICE_BOLT_WPN_MSC = 89;
  12. const int ICE_BOLT_TILE = 11;
  13.  
  14. void StartIceScript()
  15. {
  16. Link->MP -= 1;
  17.  
  18. int Rand_LEFT_RIGHT = Rand(-12,12);
  19. int Rand_UP_DOWN = Rand(-12, 12);
  20.  
  21. int Deg_Rand_UP_ANGLE = Randf(225, 315);
  22. int Deg_Rand_DOWN_ANGLE = Randf(135, 45);
  23. int Deg_Rand_LEFT_ANGLE = Randf(135, 225);
  24. int Deg_Rand_RIGHT_ANGLE = Randf(315, 405);
  25.  
  26. int Rand_UP_ANGLE = DegtoRad(Deg_Rand_UP_ANGLE);
  27. int Rand_DOWN_ANGLE = DegtoRad(Deg_Rand_DOWN_ANGLE);
  28. int Rand_LEFT_ANGLE = DegtoRad(Deg_Rand_LEFT_ANGLE);
  29. int Rand_RIGHT_ANGLE = DegtoRad(Deg_Rand_RIGHT_ANGLE);
  30.  
  31. lweapon Ice_Storm = Screen->CreateLWeapon(LW_SCRIPT1);
  32.  
  33. Ice_Storm->Angular = true;
  34.  
  35. Ice_Storm->X = Link->X;
  36. Ice_Storm->Y = Link->Y;
  37.  
  38. Ice_Storm->Dir = Link->Dir;
  39.  
  40. if(Ice_Storm->Dir == DIR_UP)
  41. {Ice_Storm->Angle = Rand_UP_ANGLE;}
  42. if(Ice_Storm->Dir == DIR_DOWN)
  43. {Ice_Storm->Angle = Rand_DOWN_ANGLE;}
  44. if(Ice_Storm->Dir == DIR_LEFT)
  45. {Ice_Storm->Angle = Rand_LEFT_ANGLE;}
  46. if(Ice_Storm->Dir == DIR_RIGHT)
  47. {Ice_Storm->Angle = Rand_RIGHT_ANGLE;}
  48.  
  49.  
  50. Ice_Storm->UseSprite(ICE_WPN_MSC);
  51. Ice_Storm->Damage = 2;
  52.  
  53. Ice_Storm->Step = 400;
  54.  
  55. Ice_Storm->HitWidth = 8;
  56. Ice_Storm->HitHeight = 8;
  57.  
  58.  
  59. if(Ice_Storm->Dir == DIR_UP)
  60. {Ice_Storm->Tile = ICE_TILE;}
  61. if(Ice_Storm->Dir == DIR_DOWN)
  62. {Ice_Storm->Tile = ICE_TILE + 2;}
  63. if(Ice_Storm->Dir == DIR_LEFT)
  64. {Ice_Storm->Tile = ICE_TILE + 3;}
  65. if(Ice_Storm->Dir == DIR_RIGHT)
  66. {Ice_Storm->Tile = ICE_TILE + 1;}
  67. }
  68.  
  69. void StartIceBolt()
  70. {
  71. Link->MP -= 16;
  72.  
  73. lweapon Ice_Bolt = Screen->CreateLWeapon(LW_SCRIPT2);
  74.  
  75. Ice_Bolt->CollDetection = false;
  76.  
  77. Ice_Bolt->Angular = false;
  78.  
  79. Ice_Bolt->X = Link->X;
  80. Ice_Bolt->Y = Link->Y;
  81.  
  82. Ice_Bolt->Dir = Link->Dir;
  83.  
  84. if(Ice_Bolt->Dir == DIR_UP)
  85. {Ice_Bolt->OriginalTile = ICE_BOLT_TILE;}
  86. if(Ice_Bolt->Dir == DIR_DOWN)
  87. {Ice_Bolt->OriginalTile = ICE_BOLT_TILE + 2;}
  88. if(Ice_Bolt->Dir == DIR_LEFT)
  89. {Ice_Bolt->OriginalTile = ICE_BOLT_TILE + 3;}
  90. if(Ice_Bolt->Dir == DIR_RIGHT)
  91. {Ice_Bolt->OriginalTile = ICE_BOLT_TILE + 1;}
  92.  
  93.  
  94. Ice_Bolt->UseSprite(ICE_BOLT_WPN_MSC);
  95. Ice_Bolt->Damage = 12;
  96.  
  97. Ice_Bolt->Step = 300;
  98.  
  99. Ice_Bolt->HitWidth = 8;
  100. Ice_Bolt->HitHeight = 8;
  101. }
  102.  
  103. // Detects if the weapon is hitting an enemy
  104. void DetectIceboltHit()
  105. {
  106. npc IW_enemy;
  107. lweapon IW_item;
  108.  
  109. for (int i2 = 1; i2 <= Screen->NumLWeapons(); i2 += 1)
  110. {
  111. IW_item = Screen->LoadLWeapon(i2);
  112. if(IW_item->ID == LW_SCRIPT2)
  113. {
  114. for (int i = 1; i <= Screen->NumNPCs(); i += 1)
  115. {
  116. IW_enemy = Screen->LoadNPC(i);
  117.  
  118. if((IW_item->X >= (IW_enemy->X - 15) && IW_item->X <= (IW_enemy->X + 15)) && (IW_item->Y >= (IW_enemy->Y - 15) && IW_item->Y <= (IW_enemy->Y + 15)))
  119. {
  120. lweapon Ice_Bolt_Summon = Screen->CreateLWeapon(LW_SCRIPT1);
  121. Ice_Bolt_Summon->X = IW_item->X;
  122. Ice_Bolt_Summon->Y = IW_item->Y;
  123. Ice_Bolt_Summon->Damage = 12;
  124. Ice_Bolt_Summon->Tile = 2;
  125. }
  126. }
  127. }
  128. }
  129. }
  130.  
  131. global script TNB_Wand_Global
  132.  
  133. {
  134. void run()
  135. {
  136. while(true)
  137. {
  138. int UseIceUseMagic = Rand(0,8);
  139.  
  140.  
  141. if(UsingItem(IceAmuletID) == true && Link->MP > 0 && UseIceUseMagic == 8)
  142. {
  143. StartIceScript();
  144. }
  145.  
  146. if(UsingItem(IceWandID) == true && Link->MP > 0)
  147. {
  148. StartIceBolt();
  149. }
  150.  
  151. for (int i2 = 1; i2 <= Screen->NumLWeapons(); i2 += 1) // Detects if the Ice Bolt hits a solid combo
  152. {
  153. lweapon IW_item = Screen->LoadLWeapon(i2);
  154. if(IW_item->ID == LW_SCRIPT2)
  155. {
  156. if(Screen->isSolid(IW_item->X + 16, IW_item->Y + 8) == true && IW_item->Dir == DIR_RIGHT ||Screen->isSolid(IW_item->X - 16, IW_item->Y + 8) == true && IW_item->Dir == DIR_LEFT ||
  157. Screen->isSolid(IW_item->X, IW_item->Y + 16) == true && IW_item->Dir == DIR_UP || Screen->isSolid(IW_item->X - 16, IW_item->Y) == true && IW_item->Dir == DIR_DOWN)
  158. {
  159. IW_item->DeadState = WDS_DEAD;
  160. }
  161. }
  162. }
  163.  
  164. for (int i2 = 1; i2 <= Screen->NumLWeapons(); i2 += 1)
  165. {
  166. lweapon Ice_Bolt_Summon = Screen->LoadLWeapon(i2);
  167. if(Ice_Bolt_Summon->ID == LW_SCRIPT1)
  168. {
  169. Ice_Bolt_Summon->DeadState = WDS_DEAD;
  170. }
  171.  
  172. DetectIceboltHit();
  173.  
  174. Waitframe();
  175. }
  176. }
  177. }
Advertisement
Add Comment
Please, Sign In to add comment