Coolgamer012345

Untitled

May 8th, 2015
317
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. for (int i2 = 1; i2 <= Screen->NumLWeapons(); i2 += 1)
  109. {
  110. IW_item = Screen->LoadLWeapon(i2);
  111. if(IW_item->ID == LW_SCRIPT2)
  112. {
  113. for (int i = 1; i <= Screen->NumNPCs(); i += 1)
  114. {
  115. IW_enemy = Screen->LoadNPC(i);
  116.  
  117. 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)))
  118. {
  119. lweapon Ice_Bolt_Summon = Screen->CreateLWeapon(LW_SCRIPT1);
  120. Ice_Bolt_Summon->X = IW_item->X;
  121. Ice_Bolt_Summon->Y = IW_item->Y;
  122. Ice_Bolt_Summon->Damage = 12;
  123. Ice_Bolt_Summon->Tile = 2;
  124. }
  125. }
  126. }
  127. }
  128. }
  129.  
  130. global script TNB_Wand_Global
  131.  
  132. {
  133. void run()
  134. {
  135. while(true)
  136. {
  137. int UseIceUseMagic = Rand(0,8);
  138.  
  139.  
  140. if(UsingItem(IceAmuletID) == true && Link->MP > 0 && UseIceUseMagic == 8)
  141. {
  142. StartIceScript();
  143. }
  144.  
  145. if(UsingItem(IceWandID) == true && Link->MP > 0)
  146. {
  147. StartIceBolt();
  148. }
  149.  
  150. for (int i2 = 1; i2 <= Screen->NumLWeapons(); i2 += 1) // Detects if the Ice Bolt hits a solid combo
  151. {
  152. lweapon IW_item = Screen->LoadLWeapon(i2);
  153. if(IW_item->ID == LW_SCRIPT2)
  154. {
  155. 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 ||
  156. 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)
  157. {
  158. IW_item->DeadState = WDS_DEAD;
  159. }
  160. }
  161. }
  162.  
  163. for (int i2 = 1; i2 <= Screen->NumLWeapons(); i2 += 1)
  164. {
  165. lweapon Ice_Bolt_Summon = Screen->LoadLWeapon(i2);
  166. if(Ice_Bolt_Summon->ID == LW_SCRIPT1)
  167. {
  168. Ice_Bolt_Summon->DeadState = WDS_DEAD;
  169. Waitframe();
  170. }
  171. DetectIceboltHit();
  172. }
  173. Waitframe();
  174. }
  175. }
  176. }
Advertisement
Add Comment
Please, Sign In to add comment