Advertisement
Coolgamer012345

Untitled

May 29th, 2015
477
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.32 KB | None | 0 0
  1. const int CR_LEVEL = 7;
  2. const int CR_HEART_CT = 8;
  3. const int CR_MAGIC_CT = 9;
  4. const int CR_HP = 10;
  5. const int CR_MP = 11;
  6. const int CR_XP = 12;
  7.  
  8. int EXP_Counter = 0;
  9. int Level_Counter = 1;
  10. int Level_Damage = 0;
  11. float Num_Hearts;
  12. float Num_Magics;
  13.  
  14. int LinkXP_DrawX;
  15. int LinkXP_DrawY;
  16.  
  17. const int DRAW_XP_OFFSET = 12;
  18.  
  19. const int ENEMY_XP_VALUE = 10;
  20.  
  21. const int DRAW_XP_FRAMES = 70;
  22.  
  23. const int TOP_Y_OFFSET = 4;
  24. const int BOTTOM_Y_OFFSET = -12;
  25. const int RIGHT_X_OFFSET = -4;
  26. const int LEFT_X_OFFSET = 12;
  27.  
  28. const int DRAW_INT_COLOR = 1;
  29. const int DRAW_INT_BG = 0;
  30. //DrawInteger(int layer, int x, int y, int font,int color, int background_color,int width, int height, int number, int number_decimal_places, int opacity);
  31. int JumpPixles = 3;
  32. int JumpFrames = 0;
  33.  
  34. bool DoubleJumping = false;
  35.  
  36. const int DOUBLE_JUMP_ITEM = 143;
  37.  
  38. const int SCREEN_W = 256;
  39. const int SCREEN_H = 176;
  40.  
  41. bool InAir = false;
  42.  
  43. //Shorthand way of drawing an integer. I should probably add this to my own import file eventually too.
  44. void QuickInteger(int x, int y, int number){
  45. Screen->DrawInteger(7, x, y, FONT_Z1, 1, 0, -1, -1, number, 0, OP_OPAQUE);
  46. }
  47.  
  48. global script SC_Global_V1{
  49. void run(){
  50. while(true){
  51.  
  52.  
  53. Game->Counter[CR_SCRIPT1] = Level_Counter;
  54. Num_Hearts = ( Link->HP / 16 );
  55. Game->Counter[CR_SCRIPT2] = Num_Hearts;
  56. Num_Magics = Link->MP;
  57. Game->Counter[CR_SCRIPT3] = Num_Magics;
  58. Game->Counter[CR_SCRIPT4] = Link->HP;
  59. Game->Counter[CR_SCRIPT5] = Link->MP;
  60. Game->Counter[CR_SCRIPT6] = EXP_Counter;
  61. Game->Counter[CR_SCRIPT7] = Link->MaxHP;
  62. Game->Counter[CR_SCRIPT8] = Link->MaxMP;
  63. Game->Counter[CR_SCRIPT9] = 1000;
  64.  
  65. for ( int e = 1; e < ( Screen->NumNPCs() + 1 ); e++ ) {
  66. npc exp_enemy = Screen->LoadNPC(e);
  67. int worth = exp_enemy->Attributes[ENEMY_XP_VALUE];
  68.  
  69. if ( exp_enemy->HP <= 0 ) {
  70. EXP_Counter += worth;
  71. for ( int q = DRAW_XP_FRAMES; q > 0; q-- ) {
  72. if ( Link->X >= 128 ) {
  73. LinkXP_DrawX = Link->X + DRAW_XP_OFFSET + RIGHT_X_OFFSET;
  74. }
  75. if ( Link->X <= 0 ) {
  76. LinkXP_DrawX = Link->X + DRAW_XP_OFFSET + LEFT_X_OFFSET;
  77. }
  78. else {
  79. LinkXP_DrawX = Link->X + DRAW_XP_OFFSET;
  80. }
  81. if ( Link->Y >= 176 ) {
  82. LinkXP_DrawY = Link->Y + DRAW_XP_OFFSET + BOTTOM_Y_OFFSET;
  83. }
  84. else if ( Link->Y <= 0 ) {
  85. LinkXP_DrawY = Link->Y + DRAW_XP_OFFSET + TOP_Y_OFFSET;
  86. }
  87. else {
  88. LinkXP_DrawY = Link->Y + DRAW_XP_OFFSET;
  89. }
  90. QuickInteger(LinkXP_DrawX, LinkXP_DrawY, worth);
  91. Waitframe();
  92. }
  93. }
  94. }
  95.  
  96. Level_Damage = (Level_Counter / 4);
  97.  
  98. if(Link->Action == LA_ATTACKING)
  99. {
  100. Link->Jump = 0;
  101. }
  102.  
  103.  
  104. TapJump();
  105. Melee_Damage(5, 50); // 122 for Whimsical Ring
  106. UpdateLevel();
  107. Waitdraw();
  108. Waitframe();
  109. }
  110. }
  111. }
  112.  
  113. // ====
  114. //
  115. // FUNCTION LIST
  116. //
  117. // Why are they down here? I dunno, but someone put one here and I am just rolling with it.
  118. //
  119. // ====
  120.  
  121.  
  122. bool SV_OnGround() // Detects if Link is on a solid combo, mainly to be used in Sideview.
  123. {
  124. if(Screen->isSolid(Link->X, Link->Y + 16) == true || Screen->isSolid(Link->X + 15, Link->Y + 16) == true)
  125. {return true;}
  126. }
  127.  
  128. bool SV_UnderCombo() // Detects if Link is under a solid combo, mainly to be used in Sideview.
  129. {
  130. if(Screen->isSolid(Link->X, Link->Y - 16) == true || Screen->isSolid(Link->X + 15, Link->Y - 16) == true)
  131. {return true;}
  132. }
  133.  
  134. void UpdateLevel() // Updates the EXP Level.
  135. {
  136. if ( EXP_Counter >= 100 )
  137. {
  138. Level_Counter += 1;
  139. EXP_Counter = 0;
  140. }
  141. }
  142.  
  143. void Melee_Damage(int loadItem, int itemPower)
  144. {
  145. itemdata ID = Game->LoadItemData(loadItem);
  146. ID->Power = itemPower;
  147. }
  148.  
  149. // Quicker way of drawing a rectangle/square.
  150. void QuickRect(int layer, int x, int y, int x2, int y2, int color, bool fill)
  151. {
  152. Screen->Rectangle(layer, x, y, x2, y2, color, -1, 0, 0, 0, fill, OP_OPAQUE);
  153. }
  154.  
  155. void TapJump() // Makes Link Jump
  156. {
  157. if(Link->InputR == true && SV_OnGround() == true && JumpFrames <= 10)
  158. {
  159. if(SV_UnderCombo() == false)
  160. {
  161. Game->PlaySound(45);
  162. DoubleJumping = false;
  163.  
  164. for(int i = 0; i < 8; i += 1)
  165. {
  166. Link->Y -= JumpPixles;
  167. JumpFrames += 1;
  168. InAir = true;
  169. Waitframe();
  170. }
  171. }
  172. }
  173.  
  174. if(SV_OnGround() == true)
  175. {
  176. JumpFrames = 0;
  177. Waitframe();
  178. }
  179. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement