What be that footprints in the snow script there?
I tried searching for the script creator in the script database and the old script database, but to no avail
//D0: Combo type number (see std_constants.zh, "12" is "right statue")
//D1: Tile number where the animation starts (have 5 up facing and then 5 left facing frames)
//D2: Cset of the footprints
//D3: SFX to be played
//D4: Minimum delay between two playing of the SFX in frames
ffc script snow_footprints
{
void run(int sfx1, int sfx2, int sfx3){
int combotype = 12;
int cset = 2;
int tile = 10860;
int walkcounter = 1;
int switch1 = 0; int switch1_2 = 0;
int delay1 = 0;
int switch2 = 0; int switch22 = 0;
int delay2 = 0;
int switch3 = 0; int switch32 = 0;
int delay3 =0;
int switch4 = 0; int switch42 = 0;
int delay4 = 0;
int switch5 = 0; int switch52 = 0;
int delay5 = 0;
int switch6 = 0; int switch62 = 0;
int delay6 = 0;
int switch7 = 0; int switch72 = 0;
int delay7 = 0;
int switch8 = 0; int switch82 = 0;
int delay8 = 0;
int switch9 = 0; int switch92 = 0;
int delay9 = 0;
int switch10 = 0; int switch102 = 0;
int delay10 = 0;
int switch11 = 0; int switch112 = 0;
int delay11 = 0;
int switch12 = 0; int switch122 = 0;
int delay12 = 0;
int upcounter = 0;
int downcounter = 0;
int leftcounter = 0;
int rightcounter = 0;
int x1 = 0; int y1 = 0;
int x2 = 0; int y2 = 0;
int x3 = 0; int y3 = 0;
int x4 = 0; int y4 = 0;
int x5 = 0; int y5 = 0;
int x6 = 0; int y6 = 0;
int x7 = 0; int y7 = 0;
int x8 = 0; int y8 = 0;
int x9 = 0; int y9 = 0;
int x10 = 0; int y10 = 0;
int x11 = 0; int y11 = 0;
int x12 = 0; int y12 = 0;
while(true){
upcounter++;
downcounter ++;
leftcounter ++;
rightcounter ++;
walkcounter --;
if(upcounter == 60){upcounter = 0;}
if(downcounter == 60){downcounter = 0;}
if(leftcounter == 60){leftcounter = 0;}
if(rightcounter == 60){rightcounter = 0;}
if(Link->Action == LA_WALKING){walkcounter = 1;}
if(walkcounter == 0){switch1 = 0; switch2 = 0; switch3 = 0; switch4 = 0; switch5 = 0; int switch6 = 0; switch7 = 0; switch8 = 0; switch9 = 0; switch10 = 0; switch11 = 0; int switch12 = 0;}
if(Screen->ComboT[ComboAt(Link->X,Link->Y+8)] == combotype && Link->Action == LA_WALKING && Link->Dir == DIR_UP && Link->Z == 0){
if(switch1 == 0 && upcounter < 20){x1 = Link->X; y1 = Link->Y; switch1 = 1;}
if(switch2 == 0 && upcounter < 40 && upcounter >= 20){x2 = Link->X; y2 = Link->Y; switch2 = 1;}
if(switch3 == 0 && upcounter < 60 && upcounter >= 40){x3 = Link->X; y3 = Link->Y; switch3 = 1;}
}
if(Screen->ComboT[ComboAt(Link->X,Link->Y+8)] == combotype && Link->Action == LA_WALKING && Link->Dir == DIR_DOWN && Link->Z == 0){
if(switch4 == 0 && downcounter < 20){x4 = Link->X; y4 = Link->Y; switch4 = 1;}
if(switch5 == 0 && downcounter < 40 && downcounter >= 20){x5 = Link->X; y5 = Link->Y; switch5 = 1;}
if(switch6 == 0 && downcounter < 60 && downcounter >= 40){x6 = Link->X; y6 = Link->Y; switch6 = 1;}
}
if(Screen->ComboT[ComboAt(Link->X,Link->Y+8)] == combotype && Link->Action == LA_WALKING && Link->Dir == DIR_LEFT && Link->Z == 0){
if(switch7 == 0 && leftcounter < 20){x7 = Link->X; y7 = Link->Y; switch7 = 1;}
if(switch8 == 0 && leftcounter < 40 && leftcounter >= 20){x8 = Link->X; y8 = Link->Y; switch8 = 1;}
if(switch9 == 0 && leftcounter < 60 && leftcounter >= 40){x9 = Link->X; y9 = Link->Y; switch9 = 1;}
}
if(Screen->ComboT[ComboAt(Link->X,Link->Y+8)] == combotype && Link->Action == LA_WALKING && Link->Dir == DIR_RIGHT && Link->Z == 0){
if(switch10 == 0 && rightcounter < 20){x10 = Link->X; y10 = Link->Y; switch10 = 1;}
if(switch11 == 0 && rightcounter < 40 && rightcounter >= 20){x11 = Link->X; y11 = Link->Y; switch11 = 1;}
if(switch12 == 0 && rightcounter < 60 && rightcounter >= 40){x12 = Link->X; y12 = Link->Y; switch12 = 1;}
}
if(switch1 == 1){switch1_2 = 1;} if(switch2 == 1){switch22 = 1;}
if(switch3 == 1){switch32 = 1;} if(switch4 == 1){switch42 = 1;}
if(switch5 == 1){switch52 = 1;} if(switch6 == 1){switch62 = 1;}
if(switch7 == 1){switch72 = 1;} if(switch8 == 1){switch82 = 1;}
if(switch9 == 1){switch92 = 1;} if(switch10 == 1){switch102 = 1;}
if(switch11 == 1){switch112 = 1;} if(switch12 == 1){switch122 = 1;}
if(switch1_2 == 1){
delay1 ++;
if(delay1>=0 && delay1<=10){Screen->DrawTile(2, x1, y1, tile, 1, 1, cset, -1, -1, 0, 0, 0, 0, true, 128);}
if(delay1>10 && delay1<=20){Screen->DrawTile(2, x1, y1, tile+1, 1, 1, cset, -1, -1, 0, 0, 0, 0, true, 128);}
if(delay1>20 && delay1<=30){Screen->DrawTile(2, x1, y1, tile+2, 1, 1, cset, -1, -1, 0, 0, 0, 0, true, 128);}
if(delay1>30 && delay1<=40){Screen->DrawTile(2, x1, y1, tile+3, 1, 1, cset, -1, -1, 0, 0, 0, 0, true, 128);}
if(delay1>40 && delay1<=50){Screen->DrawTile(2, x1, y1, tile+4, 1, 1, cset, -1, -1, 0, 0, 0, 0, true, 128);}
if(delay1 == 50){delay1 = 0; switch1 = 0; switch1_2 = 0;}
}
if(switch22 == 1){
delay2 ++;
if(delay2>=0 && delay2<=10){Screen->DrawTile(2, x2, y2, tile, 1, 1, cset, -1, -1, 0, 0, 0, 0, true, 128);}
if(delay2>10 && delay2<=20){Screen->DrawTile(2, x2, y2, tile+1, 1, 1, cset, -1, -1, 0, 0, 0, 0, true, 128);}
if(delay2>20 && delay2<=30){Screen->DrawTile(2, x2, y2, tile+2, 1, 1, cset, -1, -1, 0, 0, 0, 0, true, 128);}
if(delay2>30 && delay2<=40){Screen->DrawTile(2, x2, y2, tile+3, 1, 1, cset, -1, -1, 0, 0, 0, 0, true, 128);}
if(delay2>40 && delay2<=50){Screen->DrawTile(2, x2, y2, tile+4, 1, 1, cset, -1, -1, 0, 0, 0, 0, true, 128);}
if(delay2 == 50){delay2 = 0; switch2 = 0; switch22 = 0;}
}
if(switch32 == 1){
delay3 ++;
if(delay3>=0 && delay3<=10){Screen->DrawTile(2, x3, y3, tile, 1, 1, cset, -1, -1, 0, 0, 0, 0, true, 128);}
if(delay3>10 && delay3<=20){Screen->DrawTile(2, x3, y3, tile+1, 1, 1, cset, -1, -1, 0, 0, 0, 0, true, 128);}
if(delay3>20 && delay3<=30){Screen->DrawTile(2, x3, y3, tile+2, 1, 1, cset, -1, -1, 0, 0, 0, 0, true, 128);}
if(delay3>30 && delay3<=40){Screen->DrawTile(2, x3, y3, tile+3, 1, 1, cset, -1, -1, 0, 0, 0, 0, true, 128);}
if(delay3>40 && delay3<=50){Screen->DrawTile(2, x3, y3, tile+4, 1, 1, cset, -1, -1, 0, 0, 0, 0, true, 128);}
if(delay3 == 50){delay3 = 0; switch3 = 0; switch32 = 0;}
}
if(switch42 == 1){
delay4 ++;
if(delay4>=0 && delay4<=10){Screen->DrawTile(2, x4, y4, tile, 1, 1, cset, -1, -1, 0, 0, 0, 3, true, 128);}
if(delay4>10 && delay4<=20){Screen->DrawTile(2, x4, y4, tile+1, 1, 1, cset, -1, -1, 0, 0, 0, 3, true, 128);}
if(delay4>20 && delay4<=30){Screen->DrawTile(2, x4, y4, tile+2, 1, 1, cset, -1, -1, 0, 0, 0, 3, true, 128);}
if(delay4>30 && delay4<=40){Screen->DrawTile(2, x4, y4, tile+3, 1, 1, cset, -1, -1, 0, 0, 0, 3, true, 128);}
if(delay4>40 && delay4<=50){Screen->DrawTile(2, x4, y4, tile+4, 1, 1, cset, -1, -1, 0, 0, 0, 3, true, 128);}
if(delay4 == 50){delay4 = 0; switch4 = 0; switch42 = 0;}
}
if(switch52 == 1){
delay5 ++;
if(delay5>=0 && delay5<=10){Screen->DrawTile(2, x5, y5, tile, 1, 1, cset, -1, -1, 0, 0, 0, 3, true, 128);}
if(delay5>10 && delay5<=20){Screen->DrawTile(2, x5, y5, tile+1, 1, 1, cset, -1, -1, 0, 0, 0, 3, true, 128);}
if(delay5>20 && delay5<=30){Screen->DrawTile(2, x5, y5, tile+2, 1, 1, cset, -1, -1, 0, 0, 0, 3, true, 128);}
if(delay5>30 && delay5<=40){Screen->DrawTile(2, x5, y5, tile+3, 1, 1, cset, -1, -1, 0, 0, 0, 3, true, 128);}
if(delay5>40 && delay5<=50){Screen->DrawTile(2, x5, y5, tile+4, 1, 1, cset, -1, -1, 0, 0, 0, 3, true, 128);}
if(delay5 == 50){delay5 = 0; switch5 = 0; switch52 = 0;}
}
if(switch62 == 1){
delay6 ++;
if(delay6>=0 && delay6<=10){Screen->DrawTile(2, x6, y6, tile, 1, 1, cset, -1, -1, 0, 0, 0, 3, true, 128);}
if(delay6>10 && delay6<=20){Screen->DrawTile(2, x6, y6, tile+1, 1, 1, cset, -1, -1, 0, 0, 0, 3, true, 128);}
if(delay6>20 && delay6<=30){Screen->DrawTile(2, x6, y6, tile+2, 1, 1, cset, -1, -1, 0, 0, 0, 3, true, 128);}
if(delay6>30 && delay6<=40){Screen->DrawTile(2, x6, y6, tile+3, 1, 1, cset, -1, -1, 0, 0, 0, 3, true, 128);}
if(delay6>40 && delay6<=50){Screen->DrawTile(2, x6, y6, tile+4, 1, 1, cset, -1, -1, 0, 0, 0, 3, true, 128);}
if(delay6 == 50){delay6 = 0; switch6 = 0; switch62 = 0;}
}
if(switch72 == 1){
delay7 ++;
if(delay7>=0 && delay7<=10){Screen->DrawTile(2, x7, y7, tile+5, 1, 1, cset, -1, -1, 0, 0, 0, 0, true, 128);}
if(delay7>10 && delay7<=20){Screen->DrawTile(2, x7, y7, tile+6, 1, 1, cset, -1, -1, 0, 0, 0, 0, true, 128);}
if(delay7>20 && delay7<=30){Screen->DrawTile(2, x7, y7, tile+7, 1, 1, cset, -1, -1, 0, 0, 0, 0, true, 128);}
if(delay7>30 && delay7<=40){Screen->DrawTile(2, x7, y7, tile+8, 1, 1, cset, -1, -1, 0, 0, 0, 0, true, 128);}
if(delay7>40 && delay7<=50){Screen->DrawTile(2, x7, y7, tile+9, 1, 1, cset, -1, -1, 0, 0, 0, 0, true, 128);}
if(delay7 == 50){delay7 = 0; switch7 = 0; switch72 = 0;}
}
if(switch82 == 1){
delay8 ++;
if(delay8>=0 && delay8<=10){Screen->DrawTile(2, x8, y8, tile+5, 1, 1, cset, -1, -1, 0, 0, 0, 0, true, 128);}
if(delay8>10 && delay8<=20){Screen->DrawTile(2, x8, y8, tile+6, 1, 1, cset, -1, -1, 0, 0, 0, 0, true, 128);}
if(delay8>20 && delay8<=30){Screen->DrawTile(2, x8, y8, tile+7, 1, 1, cset, -1, -1, 0, 0, 0, 0, true, 128);}
if(delay8>30 && delay8<=40){Screen->DrawTile(2, x8, y8, tile+8, 1, 1, cset, -1, -1, 0, 0, 0, 0, true, 128);}
if(delay8>40 && delay8<=50){Screen->DrawTile(2, x8, y8, tile+9, 1, 1, cset, -1, -1, 0, 0, 0, 0, true, 128);}
if(delay8 == 50){delay8 = 0; switch8 = 0; switch82 = 0;}
}
if(switch92 == 1){
delay9 ++;
if(delay9>=0 && delay9<=10){Screen->DrawTile(2, x9, y9, tile+5, 1, 1, cset, -1, -1, 0, 0, 0, 0, true, 128);}
if(delay9>10 && delay9<=20){Screen->DrawTile(2, x9, y9, tile+6, 1, 1, cset, -1, -1, 0, 0, 0, 0, true, 128);}
if(delay9>20 && delay9<=30){Screen->DrawTile(2, x9, y9, tile+7, 1, 1, cset, -1, -1, 0, 0, 0, 0, true, 128);}
if(delay9>30 && delay9<=40){Screen->DrawTile(2, x9, y9, tile+8, 1, 1, cset, -1, -1, 0, 0, 0, 0, true, 128);}
if(delay9>40 && delay9<=50){Screen->DrawTile(2, x9, y9, tile+9, 1, 1, cset, -1, -1, 0, 0, 0, 0, true, 128);}
if(delay9 == 50){delay9 = 0; switch9 = 0; switch92 = 0;}
}
if(switch102 == 1){
delay10 ++;
if(delay10>=0 && delay10<=10){Screen->DrawTile(2, x10, y10, tile+5, 1, 1, cset, -1, -1, 0, 0, 0, 3, true, 128);}
if(delay10>10 && delay10<=20){Screen->DrawTile(2, x10, y10, tile+6, 1, 1, cset, -1, -1, 0, 0, 0, 3, true, 128);}
if(delay10>20 && delay10<=30){Screen->DrawTile(2, x10, y10, tile+7, 1, 1, cset, -1, -1, 0, 0, 0, 3, true, 128);}
if(delay10>30 && delay10<=40){Screen->DrawTile(2, x10, y10, tile+8, 1, 1, cset, -1, -1, 0, 0, 0, 3, true, 128);}
if(delay10>40 && delay10<=50){Screen->DrawTile(2, x10, y10, tile+9, 1, 1, cset, -1, -1, 0, 0, 0, 3, true, 128);}
if(delay10 == 50){delay10 = 0; switch10 = 0; switch102 = 0;}
}
if(switch112 == 1){
delay11 ++;
if(delay11>=0 && delay11<=10){Screen->DrawTile(2, x11, y11, tile+5, 1, 1, cset, -1, -1, 0, 0, 0, 3, true, 128);}
if(delay11>10 && delay11<=20){Screen->DrawTile(2, x11, y11, tile+6, 1, 1, cset, -1, -1, 0, 0, 0, 3, true, 128);}
if(delay11>20 && delay11<=30){Screen->DrawTile(2, x11, y11, tile+7, 1, 1, cset, -1, -1, 0, 0, 0, 3, true, 128);}
if(delay11>30 && delay11<=40){Screen->DrawTile(2, x11, y11, tile+8, 1, 1, cset, -1, -1, 0, 0, 0, 3, true, 128);}
if(delay11>40 && delay11<=50){Screen->DrawTile(2, x11, y11, tile+9, 1, 1, cset, -1, -1, 0, 0, 0, 3, true, 128);}
if(delay11 == 50){delay11 = 0; switch11 = 0; switch112 = 0;}
}
if(switch122 == 1){
delay12 ++;
if(delay12>=0 && delay12<=10){Screen->DrawTile(2, x12, y12, tile+5, 1, 1, cset, -1, -1, 0, 0, 0, 3, true, 128);}
if(delay12>10 && delay12<=20){Screen->DrawTile(2, x12, y12, tile+6, 1, 1, cset, -1, -1, 0, 0, 0, 3, true, 128);}
if(delay12>20 && delay12<=30){Screen->DrawTile(2, x12, y12, tile+7, 1, 1, cset, -1, -1, 0, 0, 0, 3, true, 128);}
if(delay12>30 && delay12<=40){Screen->DrawTile(2, x12, y12, tile+8, 1, 1, cset, -1, -1, 0, 0, 0, 3, true, 128);}
if(delay12>40 && delay12<=50){Screen->DrawTile(2, x12, y12, tile+9, 1, 1, cset, -1, -1, 0, 0, 0, 3, true, 128);}
if(delay12 == 50){delay12 = 0; switch12 = 0; switch122 = 0;}
}
Waitframe();
}
}
}
This is the script (which is sloppily modified by me) and these are the tiles:
And the original creator of the script and tiles could be any of these contributors I have noted down:
Moosh
Avaro
Saffith
MoscowModder
Colossal
Mr. Z
justin
If anyone could point out who the original creator is that would be helpful!
Edited by Twilight Knight, 27 March 2021 - 07:07 AM.