Two requests
#1
Posted 14 February 2008 - 05:26 PM
2. I have a screen that changes after 20 seconds and for every 5 seconds (so four times) you must hit a combo with the boomerang and if you hit it the timed warp continues on as normal. But if you don't hit that combo by 5 seconds then the second warp information kicks in instantly. So heres some examples: First 5 seconds you've hit the combo, second 5 seconds you've hit the combo, third 5 seconds you've hit the combo, and last 5 seconds you've hit the combo, so now the timed warp kicks in. Another example: F First 5 seconds you've hit the combo, second 5 seconds you've hit the combo, third 5 seconds you haven't hit the combo, so the 2nd page of tile warp information kicks in warping elsewhere.
#2
Posted 15 February 2008 - 06:40 AM
ffc script timedsecret{
void run(int sec, int frm){
int dly = sec*60 + frm;
int x; int y; int cmb;
Waitframes(dly);
x = Link->X; y = Link->Y;
cmb = Screen->ComboT[ComboAt(x,y)];
Screen->ComboT[ComboAt(x,y)] = CT_STRIGFLAG;
Waitframes(5);
Screen->ComboT[ComboAt(x,y)] = cmb;
}
}
What it does is:
Wait for D0 seconds and D1 frames
Change the combotype at Link's feet to 'Trigger (Sens. Perm)' for 5 frames
Change it back to what it was before
I've never really had much luck with tripping the screen's secrets though.
#3
Posted 15 February 2008 - 08:33 PM
Wait, now the script isn't working. It makes the warp combo type instantly an disregards the timer all of the sudden.
Edited by Plissken, 15 February 2008 - 09:20 PM.
#4
Posted 15 February 2008 - 11:26 PM
I thought you aren't supposed to use large Waitframes.
#5
Posted 17 February 2008 - 04:22 AM
I thought you aren't supposed to use large Waitframes.
Well why not. Waitframes(35); sure beats: Watframe(); Watframe(); Watframe(); Watframe(); Watframe(); Watframe(); Watframe(); Watframe(); Watframe(); Watframe(); Watframe(); Watframe(); Watframe(); Watframe(); Watframe(); Watframe(); Watframe(); Watframe(); Watframe(); Watframe(); Watframe(); Watframe(); Watframe(); Watframe(); Watframe(); Watframe(); Watframe(); Watframe(); Watframe(); Watframe(); Watframe(); Watframe(); Watframe(); Watframe(); Watframe(); Watframe(); Watframe(); Watframe(); Watframe(); Watframe(); Watframe(); Watframe(); Watframe(); Watframe(); Watframe(); Watframe(); Watframe(); Watframe(); Watframe(); Watframe(); Watframe(); Watframe(); Watframe(); Watframe(); Watframe(); Watframe(); Watframe(); Watframe(); Watframe(); Watframe(); Watframe(); Watframe(); Watframe(); Watframe(); Watframe(); Watframe(); Watframe(); Watframe(); Watframe(); Watframe(); Watframe(); Watframe(); Watframe(); Watframe(); Watframe(); Watframe(); Watframe(); Watframe();
Edited by Gleeok, 17 February 2008 - 04:23 AM.
#6
Posted 17 February 2008 - 04:00 PM
I thought you aren't supposed to use large Waitframes.
No no, that's not what I said/meant.
What you can't do is use large waitframes if you want the script to do other things while it's waiting for those frames.
This script doesn't function during the Waitframes(dly);, so it's fine.
It's meant to make a permanent trigger, not a warp
#7
Posted 17 February 2008 - 04:20 PM
#8
Posted 17 February 2008 - 04:32 PM
Interesting, it should change back after 5 frames.
Change the '5' in the Waitframes(5);' to a '2' and see how that works.
And try having it go to a screen without the script on too, that could be a root to the issue.
I've had strange consequences of carrying scripts over screens before.
#9
Posted 17 February 2008 - 04:54 PM
#10
Posted 17 February 2008 - 05:04 PM
I'd like to see if that makes a difference.
void run(int dmap, int scr){
int tmr; int ktm;
int orig = this->data;
while(true){
this->data = orig;
for(tmr = 0; tmr < 300; tmr++){
if(this->WasTriggered()){
ktm = tmr;
tmr = 300;
}
Waitframe();
}
if(ktm >= 299) Link->PitWarp(dmap, scr);
for(tmr = 0; tmr < ktm; tmr++){
Waitframe();
}
}
}
}
void run(int dragon, int fcmb, int spd){
int scr;
bool 1st; bool 2nd;
if(spd == 0) spd = 10;
while(1st){
if(scr != Game->GetCurScreen()) 1st = false;
scr = Game->GetCurScreen();
Waitframe();
}
this->Vy = 0;
this->Flags[3] = false;
ffc fball = Screen->LoadFFC(32);
ffc drg = Screen->LoadFFC(dragon);
fball->X = drg->X; fball->Y = drg->Y;
fball->Data = fcmb;
fball->Vx = (Abs(this->X-fball->X)/spd);
fball->Vy = (Abs(this->Y-fball->Y)/spd);
while(2nd){
if(Abs(this->X-fball->X) < 4 && Abs(this->Y-fball->Y) < 4) 2nd = false;
Waitframe();
}
fball->Vy = 0; fball->Vx = 0;
}
}
void run(int dmap, int scr){
int orig = this->data;
while(this->Data == orig){Waitframe();}
Link->PitWarp(dmap, scr);
}
}
Edited by Joe123, 23 February 2008 - 02:53 PM.
0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users