Jump to content
  • 0

two-hand quicken and two-hand sword


Invisible415

Question


  • Group:  Members
  • Topic Count:  1
  • Topics Per Day:  0.00
  • Content Count:  3
  • Reputation:   0
  • Joined:  03/17/20
  • Last Seen:  

Hi, all:

I'm a newbie of rAthena. Just finished my first private rAthena server.

My question is:

How a two-hand sword knight can not switch two-hand sword without losing the status of two-hand quicken?

Now the update-to-dated rAthena just turn off the status of two-hand quicken when switching two-hand swords.

 

Can we fix it?

 

 


 

 

Edited by Invisible415
Link to comment
Share on other sites

4 answers to this question

Recommended Posts

  • 0

  • Group:  Members
  • Topic Count:  140
  • Topics Per Day:  0.03
  • Content Count:  562
  • Reputation:   108
  • Joined:  10/05/12
  • Last Seen:  

As a fact, this also happen when switching shields while autoguard status, or changing axes while adrenaline rush, even spears with spearquicken, changing the weapon end the status and you have to cast again the skill, this is the oficial behavior.

 

I've found this code in scr/map/pc.c

/**
 * Check if we still have the correct weapon to continue the skill (actually status)
 * If not ending it
 * @param sd
 * @return 0:error, 1:check done
 */
static void pc_checkallowskill(struct map_session_data *sd)
{
	const enum sc_type scw_list[] = {
		SC_TWOHANDQUICKEN,
		SC_ONEHAND,
		SC_AURABLADE,
		SC_PARRYING,
		SC_SPEARQUICKEN,
		SC_ADRENALINE,
		SC_ADRENALINE2,
		SC_DANCING,
		SC_GATLINGFEVER,
	};
	uint8 i;
	nullpo_retv(sd);

	if(!sd->sc.count)
		return;

	for (i = 0; i < ARRAYLENGTH(scw_list); i++)
	{	// Skills requiring specific weapon types
		if( scw_list[i] == SC_DANCING && !battle_config.dancing_weaponswitch_fix )
			continue;
		if(sd->sc.data[scw_list[i]] &&
			!pc_check_weapontype(sd,skill_get_weapontype(status_sc2skill(scw_list[i]))))
			status_change_end(&sd->bl, scw_list[i], INVALID_TIMER);
	}

	if(sd->sc.data[SC_SPURT] && sd->status.weapon)
		// Spurt requires bare hands (feet, in fact xD)
		status_change_end(&sd->bl, SC_SPURT, INVALID_TIMER);

	if(sd->status.shield <= 0) { // Skills requiring a shield
		const enum sc_type scs_list[] = {
			SC_AUTOGUARD,
			SC_DEFENDER,
			SC_REFLECTSHIELD,
			SC_REFLECTDAMAGE
		};
		for (i = 0; i < ARRAYLENGTH(scs_list); i++)
			if(sd->sc.data[scs_list[i]])
				status_change_end(&sd->bl, scs_list[i], INVALID_TIMER);
	}
}

 

Feel free to copy this code and ask in Source Request Section in this forum a "MOOD" to switch weapons without losing the status of two-hand quicken or other skills, but ending the status if it is a invalid weapon for the skill, It could be a check with timer in miliseconds to return 1. 

Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  1
  • Topics Per Day:  0.00
  • Content Count:  3
  • Reputation:   0
  • Joined:  03/17/20
  • Last Seen:  

22 hours ago, iraciz said:

 

Feel free to copy this code and ask in Source Request Section in this forum a "MOOD" to switch weapons without losing the status of two-hand quicken or other skills, but ending the status if it is a invalid weapon for the skill, It could be a check with timer in miliseconds to return 1. 

Appreciated. Thank you. It works after been commented (//SC_TWOHANDQUICKEN,).

 

 

Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  140
  • Topics Per Day:  0.03
  • Content Count:  562
  • Reputation:   108
  • Joined:  10/05/12
  • Last Seen:  

1 minute ago, Invisible415 said:

Appreciated. Thank you. It works after been commented (//SC_TWOHANDQUICKEN,).

 

 

Hey bro, is not done yet! my answer was not a solution, the buff will not dissapear when switching to a different weapon,  or taking off the 2hsw, the two hand quicken will remain even bare-handed...


you need to ask for a scr mood in the source request section, provide the line I told you,   they can add a timer of  100ms to recheck the weapon switch and end the sc_twohandquicken status if the equiped weapon is not the correct type..

Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  1
  • Topics Per Day:  0.00
  • Content Count:  3
  • Reputation:   0
  • Joined:  03/17/20
  • Last Seen:  

6 hours ago, iraciz said:

Hey bro, is not done yet! my answer was not a solution, the buff will not dissapear when switching to a different weapon,  or taking off the 2hsw, the two hand quicken will remain even bare-handed...


you need to ask for a scr mood in the source request section, provide the line I told you,   they can add a timer of  100ms to recheck the weapon switch and end the sc_twohandquicken status if the equiped weapon is not the correct type..

Thanks even not yet completed. This is the clue to do something.

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...