User Tag List

Page 1 of 2 1 2 LastLast
Results 1 to 10 of 16

Thread: The 'Snow' Combo

  1. #1
    &&
    ZC Developer
    Joe123's Avatar
    Join Date
    Sep 2006
    Age
    32
    Posts
    3,061
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    vBActivity - Stats
    Points
    7,303
    Level
    26
    vBActivity - Bars
    Lv. Percent
    8.74%

    The 'Snow' Combo

    Basically, after thinking about this for quite a while, I've created a new combo attribute. Almost.
    So; the Snow Combo is a script which, when assigned to the screen via an ffc, and given a combo type, plays a sound effect when Link walks on the given type, and leaves a trail of footprints which slowly fade away after a few seconds. So great for snow or fallen leaves, or whatever your imagination is not tied to.

    It also requires very minimal set-up, which I was quite pleased with really.
    You'll need some footprint tiles:

    You could use those, or make your own or whatever.
    They do have to be arranged in the order however: 5 tile animation for up-facing footprints, 5 tile animation for left-facing footprints. If you want a shorter animation, leave a blank tile, don't just miss them out.

    And you'll also need a sound effect that you want to play whilst Link walks in the snow.

    Code:
    ffc script snow_combo{
    	void run(){
    		int combotype = 12; //set the type of combo you want to be 'snow' or 'fallen leaves' here
    		int tile = 0; //set the first tile of your footprint animation here
    		int cset = 0; // set the cset of your footprint animation here
    		int sfx = 0; // set the sound effect you want to play while link walks on a 'snow' combo here
    		int sfxdelay = 25; // set the delay between playing the sound effect here. 2
    		// the above integers are to be user defined. All declared integers below this are utility integers. DON'T mess with them (unless you know what you're doing :P)
    		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){
    			sfxdelay--;
    			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)] == combotype && sfxdelay == 20 && Link->Action == LA_WALKING && Link->Z == 0){Game -> PlaySound(sfx);}
    			if(sfxdelay == 0){sfxdelay = 25;}
    
    				if(Screen->ComboT[ComboAt(Link->X,Link->Y)] == 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)] == 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)] == 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)] == 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, 0, 0, 0, 0, true, 128);}
    					if(delay1>10 && delay1<=20){Screen->DrawTile(2, x1, y1, tile+1, 1, 1, cset, 1, 0, 0, 0, 0, true, 128);}
    					if(delay1>20 && delay1<=30){Screen->DrawTile(2, x1, y1, tile+2, 1, 1, cset, 1, 0, 0, 0, 0, true, 128);}
    					if(delay1>30 && delay1<=40){Screen->DrawTile(2, x1, y1, tile+3, 1, 1, cset, 1, 0, 0, 0, 0, true, 128);}
    					if(delay1>40 && delay1<=50){Screen->DrawTile(2, x1, y1, tile+4, 1, 1, cset, 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, 0, 0, 0, 0, true, 128);}
    					if(delay2>10 && delay2<=20){Screen->DrawTile(2, x2, y2, tile+1, 1, 1, cset, 1, 0, 0, 0, 0, true, 128);}
    					if(delay2>20 && delay2<=30){Screen->DrawTile(2, x2, y2, tile+2, 1, 1, cset, 1, 0, 0, 0, 0, true, 128);}
    					if(delay2>30 && delay2<=40){Screen->DrawTile(2, x2, y2, tile+3, 1, 1, cset, 1, 0, 0, 0, 0, true, 128);}
    					if(delay2>40 && delay2<=50){Screen->DrawTile(2, x2, y2, tile+4, 1, 1, cset, 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, 0, 0, 0, 0, true, 128);}
    					if(delay3>10 && delay3<=20){Screen->DrawTile(2, x3, y3, tile+1, 1, 1, cset, 1, 0, 0, 0, 0, true, 128);}
    					if(delay3>20 && delay3<=30){Screen->DrawTile(2, x3, y3, tile+2, 1, 1, cset, 1, 0, 0, 0, 0, true, 128);}
    					if(delay3>30 && delay3<=40){Screen->DrawTile(2, x3, y3, tile+3, 1, 1, cset, 1, 0, 0, 0, 0, true, 128);}
    					if(delay3>40 && delay3<=50){Screen->DrawTile(2, x3, y3, tile+4, 1, 1, cset, 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, 0, 0, 0, 3, true, 128);}
    					if(delay4>10 && delay4<=20){Screen->DrawTile(2, x4, y4, tile+1, 1, 1, cset, 1, 0, 0, 0, 3, true, 128);}
    					if(delay4>20 && delay4<=30){Screen->DrawTile(2, x4, y4, tile+2, 1, 1, cset, 1, 0, 0, 0, 3, true, 128);}
    					if(delay4>30 && delay4<=40){Screen->DrawTile(2, x4, y4, tile+3, 1, 1, cset, 1, 0, 0, 0, 3, true, 128);}
    					if(delay4>40 && delay4<=50){Screen->DrawTile(2, x4, y4, tile+4, 1, 1, cset, 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, 0, 0, 0, 3, true, 128);}
    					if(delay5>10 && delay5<=20){Screen->DrawTile(2, x5, y5, tile+1, 1, 1, cset, 1, 0, 0, 0, 3, true, 128);}
    					if(delay5>20 && delay5<=30){Screen->DrawTile(2, x5, y5, tile+2, 1, 1, cset, 1, 0, 0, 0, 3, true, 128);}
    					if(delay5>30 && delay5<=40){Screen->DrawTile(2, x5, y5, tile+3, 1, 1, cset, 1, 0, 0, 0, 3, true, 128);}
    					if(delay5>40 && delay5<=50){Screen->DrawTile(2, x5, y5, tile+4, 1, 1, cset, 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, 0, 0, 0, 3, true, 128);}
    					if(delay6>10 && delay6<=20){Screen->DrawTile(2, x6, y6, tile+1, 1, 1, cset, 1, 0, 0, 0, 3, true, 128);}
    					if(delay6>20 && delay6<=30){Screen->DrawTile(2, x6, y6, tile+2, 1, 1, cset, 1, 0, 0, 0, 3, true, 128);}
    					if(delay6>30 && delay6<=40){Screen->DrawTile(2, x6, y6, tile+3, 1, 1, cset, 1, 0, 0, 0, 3, true, 128);}
    					if(delay6>40 && delay6<=50){Screen->DrawTile(2, x6, y6, tile+4, 1, 1, cset, 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, 0, 0, 0, 0, true, 128);}
    					if(delay7>10 && delay7<=20){Screen->DrawTile(2, x7, y7, tile+6, 1, 1, cset, 1, 0, 0, 0, 0, true, 128);}
    					if(delay7>20 && delay7<=30){Screen->DrawTile(2, x7, y7, tile+7, 1, 1, cset, 1, 0, 0, 0, 0, true, 128);}
    					if(delay7>30 && delay7<=40){Screen->DrawTile(2, x7, y7, tile+8, 1, 1, cset, 1, 0, 0, 0, 0, true, 128);}
    					if(delay7>40 && delay7<=50){Screen->DrawTile(2, x7, y7, tile+9, 1, 1, cset, 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, 0, 0, 0, 0, true, 128);}
    					if(delay8>10 && delay8<=20){Screen->DrawTile(2, x8, y8, tile+6, 1, 1, cset, 1, 0, 0, 0, 0, true, 128);}
    					if(delay8>20 && delay8<=30){Screen->DrawTile(2, x8, y8, tile+7, 1, 1, cset, 1, 0, 0, 0, 0, true, 128);}
    					if(delay8>30 && delay8<=40){Screen->DrawTile(2, x8, y8, tile+8, 1, 1, cset, 1, 0, 0, 0, 0, true, 128);}
    					if(delay8>40 && delay8<=50){Screen->DrawTile(2, x8, y8, tile+9, 1, 1, cset, 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, 0, 0, 0, 0, true, 128);}
    					if(delay9>10 && delay9<=20){Screen->DrawTile(2, x9, y9, tile+6, 1, 1, cset, 1, 0, 0, 0, 0, true, 128);}
    					if(delay9>20 && delay9<=30){Screen->DrawTile(2, x9, y9, tile+7, 1, 1, cset, 1, 0, 0, 0, 0, true, 128);}
    					if(delay9>30 && delay9<=40){Screen->DrawTile(2, x9, y9, tile+8, 1, 1, cset, 1, 0, 0, 0, 0, true, 128);}
    					if(delay9>40 && delay9<=50){Screen->DrawTile(2, x9, y9, tile+9, 1, 1, cset, 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, 0, 0, 0, 3, true, 128);}
    					if(delay10>10 && delay10<=20){Screen->DrawTile(2, x10, y10, tile+6, 1, 1, cset, 1, 0, 0, 0, 3, true, 128);}
    					if(delay10>20 && delay10<=30){Screen->DrawTile(2, x10, y10, tile+7, 1, 1, cset, 1, 0, 0, 0, 3, true, 128);}
    					if(delay10>30 && delay10<=40){Screen->DrawTile(2, x10, y10, tile+8, 1, 1, cset, 1, 0, 0, 0, 3, true, 128);}
    					if(delay10>40 && delay10<=50){Screen->DrawTile(2, x10, y10, tile+9, 1, 1, cset, 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, 0, 0, 0, 3, true, 128);}
    					if(delay11>10 && delay11<=20){Screen->DrawTile(2, x11, y11, tile+6, 1, 1, cset, 1, 0, 0, 0, 3, true, 128);}
    					if(delay11>20 && delay11<=30){Screen->DrawTile(2, x11, y11, tile+7, 1, 1, cset, 1, 0, 0, 0, 3, true, 128);}
    					if(delay11>30 && delay11<=40){Screen->DrawTile(2, x11, y11, tile+8, 1, 1, cset, 1, 0, 0, 0, 3, true, 128);}
    					if(delay11>40 && delay11<=50){Screen->DrawTile(2, x11, y11, tile+9, 1, 1, cset, 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, 0, 0, 0, 3, true, 128);}
    					if(delay12>10 && delay12<=20){Screen->DrawTile(2, x12, y12, tile+6, 1, 1, cset, 1, 0, 0, 0, 3, true, 128);}
    					if(delay12>20 && delay12<=30){Screen->DrawTile(2, x12, y12, tile+7, 1, 1, cset, 1, 0, 0, 0, 3, true, 128);}
    					if(delay12>30 && delay12<=40){Screen->DrawTile(2, x12, y12, tile+8, 1, 1, cset, 1, 0, 0, 0, 3, true, 128);}
    					if(delay12>40 && delay12<=50){Screen->DrawTile(2, x12, y12, tile+9, 1, 1, cset, 1, 0, 0, 0, 3, true, 128);}
    					if(delay12 == 50){delay12 = 0; switch12 = 0; switch122 = 0;}
    				}
    		Waitframe();
    		}
    	}
    }
    Right, so, here's the script. I'm afraid it's rather large, due to having 12 independant sets of pseudo-animation drawtile functions. Anyway, don't be put off by that beacuse it doesn't really have any effect on how easy it is to use.

    Once you have those tiles set up on your tilesheet then, stick that in your .z file, and go to the top 6 lines of the script where there are a few 'variable' integers declared, which you'll want to change to fit you, and which I've also pointed out in the script.

    The first one is the combo type that you're attaching snow to. This will only be applicable on screens with the script attached, so it doesn't disable them for the rest of the game or anything like that. The default is combo ID 12 - Left statue. Mostly due to the fact that it doesn't do anything unless it really has to, and I can't see that much use for it anyway. Slow Walk might also be a good one for snow, although that would meant that you couldn't use it anywhere else on the screen.
    The second integer is the number of the first tile in your 10x1 block of footprint animation.
    The third integer is the Cset you want the animation to be in
    And the fourth is the number of the sound effect that you want to play.

    And that's all there is to it. Set it up like that, load it into ZQuest and stick it on an ffc on a screen with the given combo type as snow on the floor or whatever.

    Example Video
    Here's an example video that I threw together for it. Please don't judge this on the screen, I know it's not very good, I made it quickly for the video. And apparently it doesn't work while the sword is being charged, but I think this is to do with a ZC bug.

    And thankfully the character limit here is somewhat higher than at PureZC, I couldn't fit the script onto one post there :)

  2. #2
    Wizrobe C-Dawg's Avatar
    Join Date
    Jan 2002
    Posts
    4,205
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)
    vBActivity - Stats
    Points
    6,611
    Level
    24
    vBActivity - Bars
    Lv. Percent
    99.9%

    Re: The 'Snow' Combo

    Ah, the glory of scripting without arrays or switch statements.

    (Sorry, DarkDragon.)

    Anyway, well done! While cosmetic, this is a really neat script.

  3. #3
    Octorok
    Join Date
    Nov 2006
    Age
    29
    Posts
    463
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)
    vBActivity - Stats
    Points
    1,770
    Level
    14
    vBActivity - Bars
    Lv. Percent
    8.15%

    Re: The 'Snow' Combo

    Oh yeah, I saw this on PureZC a little while ago. Good job Joe!

    Click here to level up my card, or be sacrificed... ^_^

    Want to see Shattered Earth, AGN's RPG, back? Got a computer that is capable of running a server? PM me!

  4. #4
    &&
    ZC Developer
    Joe123's Avatar
    Join Date
    Sep 2006
    Age
    32
    Posts
    3,061
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    vBActivity - Stats
    Points
    7,303
    Level
    26
    vBActivity - Bars
    Lv. Percent
    8.74%

    Re: The 'Snow' Combo

    Quote Originally Posted by C-Dawg View Post
    Ah, the glory of scripting without arrays or switch statements.
    Do switch statements just work the same way as I've simulated switches with integers? Because why do you really need them if you can just do that? It's not exactly hard to change an integer from 1 to 0...

  5. #5
    Robots in Disguise
    ZC Developer
    Dark Nation's Avatar
    Join Date
    Mar 2000
    Posts
    5,401
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    vBActivity - Stats
    Points
    7,658
    Level
    26
    vBActivity - Bars
    Lv. Percent
    61.75%

    Re: The 'Snow' Combo

    When you are charging, your action is LA_ATTACKING. So, try putting a check for that in there and only lay down a footprint tile if you are more than 8 pixels away from the last place you put down a footprint tile.

  6. #6
    &&
    ZC Developer
    Joe123's Avatar
    Join Date
    Sep 2006
    Age
    32
    Posts
    3,061
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    vBActivity - Stats
    Points
    7,303
    Level
    26
    vBActivity - Bars
    Lv. Percent
    8.74%

    Re: The 'Snow' Combo

    Ah, that'd be what I posted as a bug then &#172;_&#172;
    But then won't it lay footprints if you're stand still and then slash or use the boomerang or whatever?
    Also, how would I do that 8 pixel thing? Draw a radius around the last drawtile function and add it in on the if's that do the pseudo-animation? (And how would I go about doing that)

    It would probably be better if Link's action were both LA_ATTACKING and LA_WALKING whilst walking with your sword charged though really wouldn't it?

  7. #7
    Lynel Majora's Avatar
    Join Date
    Mar 2006
    Age
    32
    Posts
    1,197
    Mentioned
    24 Post(s)
    Tagged
    7 Thread(s)
    vBActivity - Stats
    Points
    4,388
    Level
    20
    vBActivity - Bars
    Lv. Percent
    93.99%

    Re: The 'Snow' Combo

    Wow! Lotsa "if" statements :p

    This just made the frozen plains slightly less plain

  8. #8
    &&
    ZC Developer
    Joe123's Avatar
    Join Date
    Sep 2006
    Age
    32
    Posts
    3,061
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    vBActivity - Stats
    Points
    7,303
    Level
    26
    vBActivity - Bars
    Lv. Percent
    8.74%

    Re: The 'Snow' Combo

    Well yeah, that's how scripts work...

    And that's the idea

  9. #9
    Robots in Disguise
    ZC Developer
    Dark Nation's Avatar
    Join Date
    Mar 2000
    Posts
    5,401
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    vBActivity - Stats
    Points
    7,658
    Level
    26
    vBActivity - Bars
    Lv. Percent
    61.75%

    Re: The 'Snow' Combo

    Well, you can't have a variable be equal to 2 values at the same time. You could approximate it with flags, but the action variable isn't set up that way.

    Every time you lay down a new footprint, store your position in some global variables. Then, whenever you are moving or attacking on a snow combo, check your current position against the global variables. If you are more then 8 pixels away, throw down another footprint.

  10. #10
    &&
    ZC Developer
    Joe123's Avatar
    Join Date
    Sep 2006
    Age
    32
    Posts
    3,061
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    vBActivity - Stats
    Points
    7,303
    Level
    26
    vBActivity - Bars
    Lv. Percent
    8.74%

    Re: The 'Snow' Combo

    Ah yeah, I wasn't really thinking about how zscript worked really at that point was I. Well then wouldn't it be better for it to have a value that was LA_ATTACKING&WALKING or something?

    I don't get why I'd have to use a global variable for that though and not just an FFC variable? And the extra switch work to store Link's position into another variable would be really akward, it took me a long time to set up storing it once really

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
About us
Armageddon Games is a game development group founded in 1997. We are extremely passionate about our work and our inspirations are mostly drawn from games of the 8-bit and 16-bit era.
Social