What is it meant to be? Is it a bomb explosion?
I've tried to script realBombchu that were in Majora's mask.
//
// This script attach a bomb to a npc.
//
//
// The unlit bomb graphicconst int BOMB_TILE = 429;
const int BOMB_CSET = 7;
// the lit bomb combo
const int BOMB_COMBO = 252;
const int BOMB_ASPEED = 10;
const int BOMB_AFRAMES = 9;
ffc script ZeldaMajoraMask_RealBombchu
{
//D0 : The number of the npc in the list to attach a bomb.
//D1 : The maximum distance between Link and the npc that the bomb isn't lit.
void run(int Npc, int distance)
{
Waitframes(4);
npc kamikaze = Screen->LoadNPC(Npc);
// The bomb is lit or not
bool lit;
int counter = BOMB_ASPEED*BOMB_AFRAMES;
eweapon bomb;
int previousHP = kamikaze->HP;
int bombx;
int bomby;
while(true)
{
if(kamikaze->isValid())
{
if(Abs(Distance(Link->X,Link->Y,kamikaze->X,kamikaze->Y))<= distance && lit==false)
lit = true;
if(kamikaze->Dir == DIR_UP)
{
if(lit)
Screen->DrawCombo(1, kamikaze->X, kamikaze->Y + 16, BOMB_COMBO, 1, 1,BOMB_CSET, 1, 0, 0, 0,0, 0, true, 128);
if(!lit)
Screen->DrawTile( 1 , kamikaze->X , kamikaze->Y + 16 , BOMB_TILE , 1 , 1 , BOMB_CSET, 1 , 0,0,0,0, true, 128);
}
if(kamikaze->Dir == DIR_DOWN)
{
if(lit)
Screen->DrawCombo(1, kamikaze->X, kamikaze->Y - 16, BOMB_COMBO, 1, 1,BOMB_CSET, 1, 0, 0, 0,0, 0, true, 128);
if(!lit)
Screen->DrawTile( 1 , kamikaze->X , kamikaze->Y - 16 , BOMB_TILE , 1 , 1 , BOMB_CSET, 1 , 0,0,0,0, true, 128);
}
if(kamikaze->Dir == DIR_LEFT)
{
if(lit)
Screen->DrawCombo(1, kamikaze->X + 16, kamikaze->Y, BOMB_COMBO, 1, 1,BOMB_CSET, 1, 0, 0, 0,0, 0, true, 128);
if(!lit)
Screen->DrawTile( 1 , kamikaze->X + 16 , kamikaze->Y , BOMB_TILE , 1 , 1 , BOMB_CSET, 1 , 0,0,0,0, true, 128);
}
if(kamikaze->Dir == DIR_RIGHT)
{
if(lit)
Screen->DrawCombo(1, kamikaze->X - 16, kamikaze->Y, BOMB_COMBO, 1, 1,BOMB_CSET, 1, 0, 0, 0,0, 0, true, 128);
if(!lit)
Screen->DrawTile( 1 , kamikaze->X - 16 , kamikaze->Y , BOMB_TILE , 1 , 1 , BOMB_CSET, 1 , 0,0,0,0, true, 128);
}
if(kamikaze->HP < previousHP || counter <= 0)
{
Explosion(kamikaze->X,kamikaze->Y);
previousHP = kamikaze->HP;
lit = false;
counter = BOMB_ASPEED*BOMB_AFRAMES;
}
if(lit)
counter-=1;
}
if(!kamikaze->isValid())break;
Waitframe();
}
}
void Explosion(int ex, int ey)
{
eweapon explosion = Screen->CreateEWeapon(EW_BOMBBLAST);
explosion->X = ex-16; explosion->Y = ey-16;
explosion->Step = 0; explosion->OriginalTile = 0;
explosion->ASpeed = 0;
}
}
It's supposed to attach a bomb to a npc, then if you come too close, the bomb is lit and then it's supposed to explode right where the npc is... The problem is that the npc is spawning bombs?!
Demo : http://www.mediafire.com/download.php?n5nnhgyqtn2
