The Dink Network

Reply to Herb Boots with normal punch speed script

If you don't have an account, just leave the password field blank.
Username:
Password:
Subject:
Antispam: Enter Dink Smallwood's last name (surname) below.
Formatting: :) :( ;( :P ;) :D >( : :s :O evil cat blood
Bold font Italic font hyperlink Code tags
Message:
 
 
October 22nd 2013, 03:23 PM
goblins.gif
I figure someone could get some use out of this if you (like me) think the super fast attack speed of the herb boots is extremely overpowered, but still wish to have the herb boots movement speed in there. And best of all you can still attack, but it won't be extremely fast.

Here is the script, in two different versions:

Juggle variable version (only works if you have &jug called in Main.c):

//herb boots except punches at roughly Dink's normal attack speed
//so it's almost twice as slow as normal herb boots.

void use( void )
{
	//don't attack fast
	sp_frame_delay(1, 0);
	
	&jug = sp_dir(1, -1);
        //setting dir to itself prevents delay before punching when idle
	sp_dir(1, &jug);
	//disallow diagonal punches
	
	if (sp_dir(1, -1) == 1)
		sp_dir(1, 2);
	if (sp_dir(1, -1) == 3)
		sp_dir(1, 2);
	if (sp_dir(1, -1) == 7)
		sp_dir(1, 8);
	if (sp_dir(1, -1) == 9)
		sp_dir(1, 8);
	
	&jug = sp_dir(1, -1);
	&jug += 100; //100 is the 'base' for the hit animations, we just add
	//the direction
	sp_seq(1, &jug);
	sp_frame(1, 1); //reset seq to 1st frame
	sp_kill_wait(1); //make sure dink will punch right away
	sp_nocontrol(1, 1); //dink can't move until anim is done!
	playsound(8, 8000,0,0,0);
	
	wait(300);
	sp_frame_delay(1, 30);
}

void disarm(void)
{
	set_dink_speed(3);
	sp_frame_delay(1, 0);
	debug("Disarming boots");
	kill_this_task();
}

void arm(void)
{
	sp_attack_hit_sound(1, 0);
	set_dink_speed(2);
	sp_frame_delay(1, 30);
	debug("arming boots");
	
	init("load_sequence_now graphics\dink\walk\ds-w1- 71 43 38 72 -14 -9 14 9");
	init("load_sequence_now graphics\dink\walk\ds-w2- 72 43 37 69 -13 -9 13 9");
	init("load_sequence_now graphics\dink\walk\ds-w3- 73 43 38 72 -14 -9 14 9");
	init("load_sequence_now graphics\dink\walk\ds-w4- 74 43 38 72 -12 -9 12 9");
	
	init("load_sequence_now graphics\dink\walk\ds-w6- 76 43 38 72 -13 -9 13 9");
	init("load_sequence_now graphics\dink\walk\ds-w7- 77 43 38 72 -12 -10 12 10");
	init("load_sequence_now graphics\dink\walk\ds-w8- 78 43 37 69 -13 -9 13 9");
	init("load_sequence_now graphics\dink\walk\ds-w9- 79 43 38 72 -14 -9 14 9");
	
	init("load_sequence_now graphics\dink\idle\ds-i2- 12 250 33 70 -12 -9 12 9");
	init("load_sequence_now graphics\dink\idle\ds-i4- 14 250 30 71 -11 -9 11 9");
	init("load_sequence_now graphics\dink\idle\ds-i6- 16 250 36 70 -11 -9 11 9");
	init("load_sequence_now graphics\dink\idle\ds-i8- 18 250 32 68 -12 -9 12 9");
	
	init("load_sequence_now graphics\dink\hit\normal\ds-h2- 102 75 60 72 -19 -9 19 9");
	init("load_sequence_now graphics\dink\hit\normal\ds-h4- 104 75 61 73 -19 -10 19 10");
	init("load_sequence_now graphics\dink\hit\normal\ds-h6- 106 75 58 71 -18 -10 18 10");
	init("load_sequence_now graphics\dink\hit\normal\ds-h8- 108 75 61 71 -19 -10 19 10");
}

void pickup(void)
{
	Debug("Player now owns this item.");
	kill_this_task();
}

void drop(void)
{
	Debug("Item dropped.");
	kill_this_task();
}


Int version (uses an int, but can be used without calling any juggle variables):

//herb boots except punches at roughly Dink's normal attack speed
//so it's almost twice as slow as normal herb boots.

void use( void )
{
        int &junk;
	//don't attack fast
	sp_frame_delay(1, 0);
	
	&junk = sp_dir(1, -1);
        //setting dir to itself prevents delay before punching when idle
	sp_dir(1, &junk);
	//disallow diagonal punches
	
	if (sp_dir(1, -1) == 1)
		sp_dir(1, 2);
	if (sp_dir(1, -1) == 3)
		sp_dir(1, 2);
	if (sp_dir(1, -1) == 7)
		sp_dir(1, 8);
	if (sp_dir(1, -1) == 9)
		sp_dir(1, 8);
	
	&junk = sp_dir(1, -1);
	&junk += 100; //100 is the 'base' for the hit animations, we just add
	//the direction
	sp_seq(1, &junk);
	sp_frame(1, 1); //reset seq to 1st frame
	sp_kill_wait(1); //make sure dink will punch right away
	sp_nocontrol(1, 1); //dink can't move until anim is done!
	playsound(8, 8000,0,0,0);
	
	wait(300);
	sp_frame_delay(1, 30);
}

void disarm(void)
{
	set_dink_speed(3);
	sp_frame_delay(1, 0);
	debug("Disarming boots");
	kill_this_task();
}

void arm(void)
{
	sp_attack_hit_sound(1, 0);
	set_dink_speed(2);
	sp_frame_delay(1, 30);
	debug("arming boots");
	
	init("load_sequence_now graphics\dink\walk\ds-w1- 71 43 38 72 -14 -9 14 9");
	init("load_sequence_now graphics\dink\walk\ds-w2- 72 43 37 69 -13 -9 13 9");
	init("load_sequence_now graphics\dink\walk\ds-w3- 73 43 38 72 -14 -9 14 9");
	init("load_sequence_now graphics\dink\walk\ds-w4- 74 43 38 72 -12 -9 12 9");
	
	init("load_sequence_now graphics\dink\walk\ds-w6- 76 43 38 72 -13 -9 13 9");
	init("load_sequence_now graphics\dink\walk\ds-w7- 77 43 38 72 -12 -10 12 10");
	init("load_sequence_now graphics\dink\walk\ds-w8- 78 43 37 69 -13 -9 13 9");
	init("load_sequence_now graphics\dink\walk\ds-w9- 79 43 38 72 -14 -9 14 9");
	
	init("load_sequence_now graphics\dink\idle\ds-i2- 12 250 33 70 -12 -9 12 9");
	init("load_sequence_now graphics\dink\idle\ds-i4- 14 250 30 71 -11 -9 11 9");
	init("load_sequence_now graphics\dink\idle\ds-i6- 16 250 36 70 -11 -9 11 9");
	init("load_sequence_now graphics\dink\idle\ds-i8- 18 250 32 68 -12 -9 12 9");
	
	init("load_sequence_now graphics\dink\hit\normal\ds-h2- 102 75 60 72 -19 -9 19 9");
	init("load_sequence_now graphics\dink\hit\normal\ds-h4- 104 75 61 73 -19 -10 19 10");
	init("load_sequence_now graphics\dink\hit\normal\ds-h6- 106 75 58 71 -18 -10 18 10");
	init("load_sequence_now graphics\dink\hit\normal\ds-h8- 108 75 61 71 -19 -10 19 10");
}

void pickup(void)
{
	Debug("Player now owns this item.");
	kill_this_task();
}

void drop(void)
{
	Debug("Item dropped.");
	kill_this_task();
}


Let me know if you have any problems with these scripts.

By the way, using the method in this script to adjust frame delay, you can actually make your own attack speed for weapons. Very useful information for adding some spice to a DMOD. Also, I don't think I've seen it done before, although correct me if there is a DMOD that has variable attack speed weapons besides the herb boots.