Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ffc script BossHealthBar{
- void run(int enemyid, int message, int delay){
- npc n;
- int InitHP;
- int OldHP;
- int strname[256];
- Waitframes(delay+4);
- n = LoadNPCOf(enemyid);
- if(!message)
- n->GetName(strname);
- else
- GetMessage(message, strname);
- InitHP = n->HP;
- OldHP = n->HP;
- int Damage;
- int DamageCounter;
- while(n->isValid()){
- if(n->HP!=OldHP){
- if(n->HP<OldHP){
- Damage = OldHP-Max(n->HP, 0);
- DamageCounter = 32;
- }
- OldHP = n->HP;
- }
- Screen->Rectangle(6, 8, 16, 248, 19, 0x0F, 1, 0, 0, 0, true, 128);
- if(n->HP>0)
- Screen->Rectangle(6, 9, 17, 9+Clamp(238*(n->HP/InitHP), 1, 238), 18, 0x82, 1, 0, 0, 0, true, 128);
- Screen->DrawString(6, 9, 11, FONT_Z3SMALL, 0x0F, -1, TF_NORMAL, strname, 128);
- Screen->DrawString(6, 8, 10, FONT_Z3SMALL, 0x01, -1, TF_NORMAL, strname, 128);
- if(DamageCounter>0){
- int Offset = -4;
- if(Damage>999)
- Offset = -16;
- else if(Damage>99)
- Offset = -12;
- else if(Damage>9)
- Offset = -8;
- if(n->HP>0)
- Screen->Rectangle(6, 9+Clamp(238*(n->HP/InitHP), 1, 238), 17,
- 9+Clamp(238*(n->HP/InitHP), 1, 238)+Clamp(238*(Damage/InitHP)*(DamageCounter/32),
- 1, 238), 18, 0x83, 1, 0, 0, 0, true, 128);
- Screen->DrawInteger(6, 249+Offset, 11, FONT_Z3SMALL, 0x0F, -1, -1, -1, Damage, 0, 128);
- Screen->DrawInteger(6, 248+Offset, 10, FONT_Z3SMALL, 0x01, -1, -1, -1, Damage, 0, 128);
- DamageCounter--;
- }
- Waitframe();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement