Jump to content
  • 0

Instruments don't get wATK from DEX?


Roku

Question


  • Group:  Members
  • Topic Count:  7
  • Topics Per Day:  0.00
  • Content Count:  12
  • Reputation:   0
  • Joined:  02/17/13
  • Last Seen:  

I just found out that you only get STATUS attack from DEX if you have a musical instrument equipped and must put points into STR to up your WEAPON attack. I have always thought instruments are just like bows. Is there some kind of special treatment instruments receive because of their unique nature of being a weird mix (close range but use arrows)? 

On irowiki it clearly states they are considered range weapons and DEX adds weapon ATK. I know we are based on kRO so I wanted to ask if on kRO it works just like this or is this perhaps unintended?

How to test: put on a musical instrument and invest points into DEX, your status atk will go up by 1 for each point, your wATK will not change. Put some points into STR, your status attack will change by 1 for every 5 points of STR but (!) your wATK will also increase by 1 for every 2-3 points of STR.

Compare with a BOW or GUN, they get 1 point of status and wAtk for each point of DEX.

Does anyone know if this is intended? I couldn't find anything about this anywhere (except that instruments are supposed to be like bows according to irowiki).

Edited by Roku
Link to comment
Share on other sites

3 answers to this question

Recommended Posts

  • 0

  • Group:  Developer
  • Topic Count:  33
  • Topics Per Day:  0.01
  • Content Count:  790
  • Reputation:   225
  • Joined:  01/30/13
  • Last Seen:  

Could be a bug looking at all the sources that say weapon attack of instruments and whips should depend on dex.

But currently it's implemented to use STR for all attack with range of 3 or lower. Anything with range 4 or higher uses DEX to calc watk.

#ifdef RENEWAL
/**
 * Weapon attack value calculated for Players
 * @param wa: Weapon attack
 * @param status: Player status
 * @return weapon attack
 */
unsigned int status_weapon_atk(struct weapon_atk wa, struct map_session_data *sd)
{
	float str = sd->base_status.str;
	int weapon_atk_bonus = 0;

	if (wa.range > 3 && !pc_checkskill(sd, SU_SOULATTACK))
		str = sd->base_status.dex;
	if (sd->bonus.weapon_atk_rate)
		weapon_atk_bonus = wa.atk * sd->bonus.weapon_atk_rate / 100;
	// wa.atk2 = refinement, wa.atk = base equip atk, wa.atk*str/200 = bonus str
	return wa.atk + wa.atk2 + (int)(wa.atk * (str/200) + weapon_atk_bonus);
}
#endif

 

  • Upvote 1
Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  7
  • Topics Per Day:  0.00
  • Content Count:  12
  • Reputation:   0
  • Joined:  02/17/13
  • Last Seen:  

Will you take it from here or should I open this as an issue?

Link to comment
Share on other sites

  • 0

  • Group:  Developer
  • Topic Count:  10
  • Topics Per Day:  0.00
  • Content Count:  2407
  • Reputation:   613
  • Joined:  07/05/12
  • Last Seen:  

Please open an issue on github, as reminder and in case someone have more infos.

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...