Quick revision, add one line to the fireball script:
Code:
ffc script boss_fball {
void run (int tnum, int spd) {
//setup vars
npc boss = Screen->LoadNPC(1);
this->CSet = 0;
this->Data = 0;
int shoot = 0;
int dx = 0;
int dy = 0;
int dist = 0;
int rnd_x = 0;
int rnd_y = 0;
while (true) {
///**Add the folling line to the script and see if it fixes the problem***\\\
if (fire_boss_alive == 0) {this->CSet = 0;}
if (this->CSet == 0) {
this->X = boss->X;
this->Y = boss->Y;
}
if (this->CSet != 0 && shoot == 0) {
this->Data = tnum;
shoot = 1;
dx = (Link->X+8) - (this->X+8);
dy = (Link->Y+8) - (this->Y+8);
dist = Sqrt(dx*dx + dy*dy);
rnd_x = Rand(4)-2;
rnd_y = Rand(4)-2;
}
if (this->CSet != 0 && shoot == 1) {
this->X += rnd_x + (dx / dist) * spd;
this->Y += rnd_y + (dy / dist) * spd;
}
if(this->X <0 || this->X > 240 || this->Y <0 || this->Y >160) {
this->CSet = 0;
this->Data = 0;
shoot = 0;
}
Waitframe();
}
}
}
try that out, let me know if it fixes the problem