+%base damage on Multiple Shot in 1.14d

Weekly updated column for helping skill development. Users can't directly post requests but a PM or mail can be sent to Skill-Clinician.

Moderator: Skill Clinician

vaxquis
Posts: 4
Joined: Sun Aug 27, 2023 2:19 pm
Indonesia

+%base damage on Multiple Shot in 1.14d

Post by vaxquis » Sun Aug 27, 2023 2:31 pm

I still have no good idea if it's possible to add that without func editing (it's added as calc5 in D2R). Tried to do it via abusing auras, passives etc., but it doesn't work - both aura = 1 or passive = 1 make executing an attack impossible, and without that the server ignores the aura/passive settings completely for this skill's func (i.e. funcs 4 & 8). Func 8 is required to split the projectile, so I honestly see no way to inject this change. Any ideas, guys?

Note that adding +%AR is trivial, setting %damage (no calc) is trivial, and adding +damage (flat) via a trick with 1-1 base damage and (-1+val)*100 syn calc is possible also... it's only +%base damage I'm missing :/

User avatar
Cypress
Moderator
Champion of the Light
Posts: 448
Joined: Fri Dec 01, 2017 2:08 am

Re: +%base damage on Multiple Shot in 1.14d

Post by Cypress » Sun Aug 27, 2023 3:05 pm

I'm guessing by +%base damage, you mean damagepercent, or the same percentage damage bonus as is given by skills like Might or Zeal. Also, I'm guessing you think +%AR is trivial because you can add it into the tohit columns, but do note that this AR bonus does absolutely nothing and only pretends to increase the AR (in fact, every bow/crossbow skill in vanilla that pretends to give +AR% actually does not give any at all).

My personal way of dealing with this issue is to apply a state via missiles. Basically what I'd do is:
Give Multiple Shot: srvmissile=bonus
Create a new missile: bonus
Make it so the bonus missile has the [shout] settings (see: viewtopic.php?t=67114) which allow you to apply a state over the duration by a missile, is destroyed on collision (collidekill=1) and is only capable of hitting players (collidetype=1)
Set up an aurastate for the skill which gives the aurastats that you want, probably +AR% and +dmg%; usually I make the duration of the state, auralencalc, as long as the duration of the missile.

This behavior isn't perfect, it can end up temporarily giving the bonus to other skills, but it's a fairly negligible effect (a Jab getting +100% dmg and +100% AR or whatever for a few hits, if even, if used immediately after Multiple Shot isn't a big deal).

Note that some skills, like Strafe, will require more complex solutions since iirc adding in a srvmissile will break the sequence. If you are curious about that too or need further clarification, just ask.

vaxquis
Posts: 4
Joined: Sun Aug 27, 2023 2:19 pm
Indonesia

Re: +%base damage on Multiple Shot in 1.14d

Post by vaxquis » Sun Aug 27, 2023 4:13 pm

Cypress wrote:
Sun Aug 27, 2023 3:05 pm
I'm guessing by +%base damage, you mean damagepercent, or the same percentage damage bonus as is given by skills like Might or Zeal.
exactly.
Also, I'm guessing you think +%AR is trivial because you can add it into the tohit columns, but do note that this AR bonus does absolutely nothing and only pretends to increase the AR (in fact, every bow/crossbow skill in vanilla that pretends to give +AR% actually does not give any at all).
technically true, yeah. I meant it's trivial to at least add the value for the cases where it works :D
Make it so the bonus missile has the [shout] settings (see: viewtopic.php?t=67114)
To clarify: which parts of Shout are explicitly needed to apply a state over the duration? pSrvHitFunc = 18 (would seem so, it matches the other war cries etc.)?
and is only capable of hitting players (collidetype=1)
Shouldn't that be CollideType=3 instead?
Set up an aurastate for the skill which gives the aurastats that you want, probably +AR% and +dmg%; usually I make the duration of the state, auralencalc, as long as the duration of the missile.
Ah, so then I could finally apply the aura with the stat mod, great! I knew I was missing something obvious here w.r.t. aura stats.
This behavior isn't perfect, it can end up temporarily giving the bonus to other skills, but it's a fairly negligible effect (a Jab getting +100% dmg and +100% AR or whatever for a few hits, if even, if used immediately after Multiple Shot isn't a big deal).
Yeah, I recon. TBH if there would be a less hacky way to do it, I guess we'd both be aware of it by now :D

BTW, a side question: Cypress (or anyone else), you aware of any kind of effect that would give "always hits" (100% hit chance) for a non-missile attack (Impale, to be precise - equivalent to `alwaysh1ts` column in D2R) I mean I can obviously just ramp the AR to some insane value, but that would still be only 95% hit chance at best, right?

User avatar
Cypress
Moderator
Champion of the Light
Posts: 448
Joined: Fri Dec 01, 2017 2:08 am

Re: +%base damage on Multiple Shot in 1.14d

Post by Cypress » Sun Aug 27, 2023 4:25 pm

Shoot, my method doesn't work as well as I thought it did. The problem is that the multipleshotarrow is released before the buff, so the arrows only inherit your pre-buff stats, meaning the first shots will not gain the bonus, although the next shots will.

These are the rows I used.
Skills.txt:

Code: Select all

Multiple Shot	12	ama	multiple shot	4	8									bonus	1		multipleshotarrow	multipleshotbolt				resistmagic		50		damagepercent	99999	item_tohit_percent	99999																																																														11	17					multipleshotarrow	multipleshotbolt											1	7		rng		miss										A1	A1	xx				1																						6	20					Magic Arrow								1		1				1	8	4	1	1										"min(24,ln12)"	# missiles	par3	activation frame	2	triggered			2	number of arrows to fire	1	additional arrows per level	1	Acivation frame of arrows.											1								8	96																																			384	3000
Missiles.txt:

Code: Select all

bonus	685	1		1	18																																																5	5			5				192	192	192	0	0	0	null	1024	1	16					1	1	1										1																1																																													1																						0
Although thinking about it, you can probably just change Multiple Shot's srvstfunc from 4 to 28, which allows you to cast an aurastate with the srvstfunc. Since this is applied at the srvstfunc, it will apply before the first missiles are released, and so all missiles will gain the bonus stats.

EDIT:
And as for guaranteeing hits, the only way is to use radial weapon damage (weapon damage that is dealt in an area of effect), with missiles or with Smite. Melee attacks are incapable of always hitting, they'll be stuck at 95% unless you do code editing.

vaxquis
Posts: 4
Joined: Sun Aug 27, 2023 2:19 pm
Indonesia

Re: +%base damage on Multiple Shot in 1.14d

Post by vaxquis » Sun Aug 27, 2023 4:39 pm

Cypress wrote:
Sun Aug 27, 2023 4:25 pm
just change Multiple Shot's srvstfunc from 4 to 28, which allows you to cast an aurastate with the srvstfunc. Since this is applied at the srvstfunc, it will apply before the first missiles are released, and so all missiles will gain the bonus stats.
Yeah, that did the trick. I gave it 50 frames duration, IMO should be long enough to affect everything hit by the arrows and not affect other attacks if someone does a skill/eq swap. Thanks, mate! :)
And as for guaranteeing hits, the only way is to use radial weapon damage (weapon damage that is dealt in an area of effect), with missiles or with Smite. Melee attacks are incapable of always hitting, they'll be stuck at 95% unless you do code editing.
Yeah, thought so. I'll stay with +10000% AR bonus for now, should be good enough for most folks :D

Return to “Skill Clinic”