const int CR_LEVEL = 7; const int CR_HEART_CT = 8; const int CR_MAGIC_CT = 9; const int CR_HP = 10; const int CR_MP = 11; const int CR_XP = 12; //const int CR_LEVEL = //const int CR_MAXMP = //const int CR_MAXHP = //float XP[3]={0,1,0}; // //const int XPCOUNTER = 0; //const int LVL_COUNT = 1; //const int LVL_DAMAGE = 2; int EXP_Counter = 0; int Level_Counter = 1; int Level_Damage = 0; float Num_Hearts; float Num_Magics; int LinkXP_DrawX; int LinkXP_DrawY; const int DRAW_XP_OFFSET = 12; const int ENEMY_XP_VALUE = 10; const int DRAW_XP_FRAMES = 70; const int TOP_Y_OFFSET = 4; const int BOTTOM_Y_OFFSET = -12; const int RIGHT_X_OFFSET = -4; const int LEFT_X_OFFSET = 12; //Shorthand way of drawing an integer. I should probably add this to my own import file eventually too. void QuickInteger(int x, int y, int number){ Screen->DrawInteger(7, x, y, FONT_Z1, 1, 2, -1, -1, number, 2, OP_OPAQUE); } global script SC_Global_V1{ void run(){ while(true){ Game->Counter[CR_SCRIPT1] = Level_Counter; Num_Hearts = ( Link->HP / 16 ); Game->Counter[CR_SCRIPT2] = Num_Hearts; Num_Magics = Link->MP; Game->Counter[CR_SCRIPT3] = Num_Magics; Game->Counter[CR_SCRIPT4] = Link->HP; Game->Counter[CR_SCRIPT5] = Link->MP; Game->Counter[CR_SCRIPT6] = EXP_Counter; //You may want MaxHP and MaxHP display counters. for ( int e = 1; e < ( Screen->NumNPCs() + 1 ); e++ ) { npc exp_enemy = Screen->LoadNPC(e); int worth = exp_enemy->Attributes[ENEMY_XP_VALUE]; if ( exp_enemy->HP <= 0 ) { EXP_Counter += worth; for ( int q = DRAW_XP_FRAMES; q > 0; q-- ) { if ( Link->X >= 128 ) { LinkXP_DrawX = Link->X + DRAW_XP_OFFSET + RIGHT_X_OFFSET; } if ( Link->X <= 0 ) { LinkXP_DrawX = Link->X + DRAW_XP_OFFSET + LEFT_X_OFFSET; } else { LinkXP_DrawX = Link->X + DRAW_XP_OFFSET; } if ( Link->Y >= 176 ) { LinkXP_DrawY = Link->Y + DRAW_XP_OFFSET + BOTTOM_Y_OFFSET; } else if ( Link->Y <= 0 ) { LinkXP_DrawY = Link->Y + DRAW_XP_OFFSET + TOP_Y_OFFSET; } else { LinkXP_DrawY = Link->Y + DRAW_XP_OFFSET; } QuickInteger(LinkXP_DrawX, LinkXP_DrawY, worth); Waitframe(); } } } Level_Damage = ( Level_Counter + ( Level_Counter / 10 ) ); //Update prior to Waitdraw(); UpdateLevel(); Waitdraw(); //Level_Damage = ( Level_Counter + ( Level_Counter / 10 ) ); //Update after Waitdraw(); Waitframe(); } } } void UpdateLevel(){ if ( EXP_Counter >= 100 ) { Level_Counter += 1; EXP_Counter = 0; } }