This header seems pretty useful..
Here's something I made with it
Code:
//This script creates an enemy that walks left to right between solid combos,
//similar to a Goomba from Super Mario Bros.
//Set D0 to 0 to start right and 1 to start left.
//D1 = Enemy type to use for ghosting
ffc script goomba_left_right
{
void run(bool startleft, int enemtype)
{
npc goomba;
int timer;
bool left;
bool right;
if(startleft){left = true; right = false;} else {right = true; left = false;}
goomba=GhostInitCreate(this, enemtype);
SetFlags(this, GHF_NORMAL);
timer = 2;
for(int i=0; true; i++)
{
if(i==timer)
{
i=0;
if(!right && left && CanMove(this,goomba,2,1,0)) Move(this,goomba,-1,0,0); else right = true;
if(right && CanMove(this,goomba,3,1,0))Move(this,goomba,1,0,0); else { left = true; right = false;}
}
GhostWaitframeF(this, goomba, true, true);
}
}
}
And the up/down one for good measure.
Code:
//This script creates an enemy that walks down and up between solid combos,
//Set D0 to 0 to start down and 1 to start up.
//D1 = Enemy type to use for ghosting
ffc script goomba_up_down
{
void run(bool startup, int enemtype)
{
npc goomba;
int timer;
bool up;
bool down;
if(startup){up = true; down = false;} else {down = true; up = false;}
goomba=GhostInitCreate(this, enemtype);
SetFlags(this, GHF_NORMAL);
timer = 2;
for(int i=0; true; i++)
{
if(i==timer)
{
i=0;
if(!down && up && CanMove(this,goomba,0,1,0)) Move(this,goomba,0,-1,0); else down = true;
if(down && CanMove(this,goomba,1,1,0))Move(this,goomba,0,1,0); else { up = true; down = false;}
}
GhostWaitframeF(this, goomba, true, true);
}
}
}
If you're going to use these, be sure to import "ghost.zh"!
EDIT: I am a very poor scripter, so a tutorial on how to put together a custom boss with this would be very nice