1) This might work. I don't think you can make the screen wavy, currently.
Code:
int boozeflag = false;
item script Booze{
void run()
{
boozeflag = true;
}
}
ffc script BoozeUtil{
void run()
{
while(true)
{
if(boozeflag)
{
boozeflag = false;
if(Link->InputLeft)
{
Link->InputLeft = false;
Link->InputRight = true;
}
else if(Link->InputRight)
{
Link->InputRight = false;
Link->InputLeft = true;
}
else if(Link->InputUp)
{
Link->InputUp = false;
Link->InputDown = true;
}
else if(Link->InputDown)
{
Link->InputDown = false;
Link->InputUp = true;
}
}
Waitframe();
}
}
}
2) You can create and place a super bomb on the screen, but it won't be lit. I guess you could get really fancy and create a big ffc that looks like a big bomb explosion and check for combo and inherent bomb flags on the surrounding combos and also check for all enemies on screen and hurt them and do Link->HP -= 16. But even then you couldn't blow up bombable dungeon walls. I would suggest requesting that lit bombs can be placed via scripting.
3) I think this will work, but it might not make rupees and hearts appear. If not, you could randomly place them on the combo that was just cut. (That, I know is possible.)
Code:
import "std.zh"
item script Cutter_rang{
void run()
{
int x;
int y;
if(this->X % 16 < 8)
{
x = this->X - (this->X % 16);
}
else
{
x = this->X + 16 - (this->X % 16);
}
if(this->Y % 16 < 8)
{
y = this->Y - (this->Y % 16);
}
else
{
y = this->Y + 16 - (this->Y % 16);
}
if(ComboT[ComboAt(x, y)] == CT_BUSH)
{
ComboT[ComboAt(x, y)] == CT_BUSHNEXT;
}
else if(ComboT[ComboAt(x, y)] == CT_SLASH)
{
ComboT[ComboAt(x, y)] == CT_SLASHNEXT;
}
else if(ComboT[ComboAt(x, y)] == CT_SLASHITEM)
{
ComboT[ComboAt(x, y)] == CTSLASHNEXTITEM;
}
}
}
4) Pretty sure you can't freeze traps, unless they are counted as NPCs, which I don't think they are. Also, if you wanted to freeze them for an amount of time, you'd need to create a supplemental FFC script that counts Waitframes(60*num_seconds).
Code:
item script UseClock{
void run()
{
int num = Screen->NumNPCs();
for(int i=1;i<num+1;i++)
{
npc n = LoadNPC(i);
n->Rate = 0;
}
}
}
So maybe I'll actually test these later .