Let's take a look at what your fire task is doing.
task fire{
loop(5){ // In a loop for 5 loops...
PlaySE(CSD~"sound\Shot1.wav"); // you are playing a sound...
bullet(GetEnemyX,GetEnemyY,5,45,237,0);
bullet(GetEnemyX,GetEnemyY,5,135,237,0);
bullet(GetEnemyX,GetEnemyY,5,225,237,0);
bullet(GetEnemyX,GetEnemyY,5,315,237,0); // firing 4 bullets...
wait(6); // and waiting 6 frames in between each loop.
} // After this loop is finished...
loop{yield;} // you are yielding in an infinite loop forever for no apparent reason.
}
There is absolutely no point to the second loop. If you want to repeat the first loop indefinitely, stick it inside another loop that goes on indefinitely like so:
loop {
loop(5){
// stuff
wait(6); // 6 * 5 = 30.
}
wait(30); // 30 + 30 = 60 so it'll start the bullet firing loop after 60 frames.
}