1.13d Skills.Txt Synergies?

Post here about all aspects of D2 mod making whether it's information, problems or whatever. Please specify whether your post is relating to Classic D2 or the Expansion.

Moderator: Nizari

Post Reply
JayBrainDead
Posts: 58
Joined: Fri Mar 09, 2018 10:43 pm

1.13d Skills.Txt Synergies?

Post by JayBrainDead » Wed Mar 14, 2018 11:14 pm

I was wondering if it is possible to add or change values of skill synergies. Exemple : Every skill points spent in Chain Lightning adds X% dmg to Lightning

fernsehen123
Posts: 67
Joined: Tue Sep 04, 2012 4:13 am
Germany

Re: 1.13d Skills.Txt Synergies?

Post by fernsehen123 » Fri Mar 16, 2018 4:55 pm

Hi,

I think this is the field u have to change:

Image

for example you can change it to:

(skill('Charged Bolt'.blvl)+skill('Nova'.blvl))*par8+skill('Chain Lightning'.blvl)*9


so that Chain Lightning adds 9% dmg to Lightning each level, instead of using par8 which is set to 8 by default

or even better change it to

(skill('Charged Bolt'.blvl)+skill('Nova'.blvl))*par8+skill('Chain Lightning'.blvl)*par7

and put a 9 into the par7 field ;)

JayBrainDead
Posts: 58
Joined: Fri Mar 09, 2018 10:43 pm

Re: 1.13d Skills.Txt Synergies?

Post by JayBrainDead » Sat Mar 17, 2018 2:39 am

Thanks a lot that makes a lot of sense and I'll take a good look at that, but is par always the exact dmg% increase ?

From what I remember though the vast majority of skills dont add 8% each and I wonder if it is because it has been designed/rebalanced in later patches or maybe they actually do but only the Skill description graphic** has never been updated. Who knows ? That will give me a lot to think about for the next few days because I planned so many changes :)

** Actually this might all be stored in a .tbl file which would make it a lot easier to change if it the case.

User avatar
HarvestWombs
Senior Moderator
Arch-Angel
Posts: 1019
Joined: Wed May 25, 2011 11:50 pm
United States of America

Re: 1.13d Skills.Txt Synergies?

Post by HarvestWombs » Sat Mar 17, 2018 2:53 am

Par8 doesn't mean 8%, it's a reference to the column "Par8" which is... parameter
Official Phrozen Keep Discord
Common Modding tools: link
My Resource Packs: link

JayBrainDead
Posts: 58
Joined: Fri Mar 09, 2018 10:43 pm

Re: 1.13d Skills.Txt Synergies?

Post by JayBrainDead » Sat Mar 17, 2018 5:12 am

Thx a lot Black_Eternity That now makes a lot more sense to me, I still havent open'd it to take a look but I will soon. That also explains how you can get more synergy bonuses besides dmg (Like defense% and what not).

EisBacken
Posts: 5
Joined: Sat Jun 02, 2018 11:31 pm
Germany

Re: 1.13d Skills.Txt Synergies?

Post by EisBacken » Thu Jun 07, 2018 8:24 pm

Don't forget to edit SkillsDesc.txt, so that the new synergies show up.

For archieving special synergies, other than elemental damage or elemental duration: You might try to edit cells inside of skills.txt where you are allowed to enter calculations: viewtopic.php?t=24813.

Columns like these:


auralencalc
aurarangecalc
aurastatcalc1
aurastatcalc2
aurastatcalc3
aurastatcalc4
aurastatcalc5
aurastatcalc6
passivecalc1
passivecalc2
passivecalc3
passivecalc4
passivecalc5

Look at examples like Shiver Armor.

Also, be careful with passive spells.

Edit: I forgot to set par8 for Nova or Telekinesis- be careful with that, too.

JayBrainDead
Posts: 58
Joined: Fri Mar 09, 2018 10:43 pm

Re: 1.13d Skills.Txt Synergies?

Post by JayBrainDead » Sun Jun 10, 2018 7:24 pm

Thanks to everyone for contributing on this post ! I made this a quite some time ago because I knew I would use the information at some point but didnt get to it until now.

From what I understand the field EDmgSymPerCalc is used to add syngery damage to elemental/magic skills and DmgSymPerCalc is used to add synergy damage to physical skills.
I tried to add synergy damage to Strafe for every point in multiple shot by putting (skill('Multiple Shot'.blvl)) * par8 and set par8 to 500 ( for testing puposes ) but this shows no results in the game,
neither on the character sheet or when used on monsters.

Is any other field required for a skill that didnt previously have a synergy ? Maybe a function that checks for synergies

Edit : I noticed that for most Physical skills ( like paladin zeal or barbarian double swing ) the field DmgSymperCalc isnt used for synergies but rather they use an additionnal calc in the calc1-4 fields probably because the base skill also adds damage, which is not the case with strafe.

EisBacken
Posts: 5
Joined: Sat Jun 02, 2018 11:31 pm
Germany

Re: 1.13d Skills.Txt Synergies?

Post by EisBacken » Mon Jun 11, 2018 12:56 am

I have no expirience with physical damage stuff. But from my research:

Skills.txt Guide: Go to SrcDamage.
The value 96 is the reason, why the skills uses 75% of weapon damage, 96/128 = 3/4 = 0.75 = 75%

Skills.txt Guide: Go to DmgSymPerCalc (a few lines below SrcDamage).
DmgSymPerCalc: This field controls the synergy bonus (a percentage) added to the physical damage done by the skill (this does not influence physical damage passed over by SrcDamage).
The 75% won't be increased.

Skills.txt File: Go to the parameter columns. You will find:

Param1
Entry: 5

*Param1 Description
Entry: Damage increase

Param2
Entry: 5

*Param2 Description
Entry: Damage increase per level

Param 1 and Param 2 can increase the damage. Param 1 & 2 is used inside of column calc2:
column calc2 entry: ln12

note: ln12 = par1 + (par2 * (lvl - 1))

You can use calc2 to increase the damage. I think the server-start-function and server-go-function choose how the damage is calculated and where the values are taken from (in this case it's calc2).

Since I don't have any experience with physical damage, is the damage formula for strafe
Damage = BaseDamage * 75% * (100% + BonusDamage%)
or
Damage = BaseDamage * (75% + BonusDamage%)
???

I will asume the correct formula is the first one.
Damage = BaseDamage * 75% * (100% + BonusDamage%)
= BaseDamage * 0.75 * (100 + clc2)/100


BonusDamage = The Entry-Value inside of column calc2 = clc2 (original value is ln12 | I use clc2, because that's the official variable-name for the entry of calc2, like par1 is for Param1)

Let's find out what we need to enter into calc2, in order to get synergy-bonuses!

Lets call the original damage calculation "OriginalDamage":
OriginalDamage = BaseDamage * 75% * (100% + SkillLevelingBonuses%)
OriginalDamage = BaseDamage * 75% * (100% + originalCalc2%)
OriginalDamage = BaseDamage * 75% * (100%+ ln12%)
OriginalDamage = BaseDamage * 0.75 * (100 + ln12)/100

Our synergy-parameter will be par8.
For readability, I will simplify our synergy-calculation, by calling it SynergyBonus.
(par8 * skill('Multiple Shot'.blvl)) = SynergyBonus

Our wishful new damage is supposed to be
NewDamage = OriginalDamage * (1 + SynergyBonus%)
= OriginalDamage * (100 + SynergyBonus)/100

We can do some math to make it look similar to damage-formula.

NewDamage = OriginalDamage * (100 + SynergyBonus)/100
= BaseDamage * 0.75 * (100 + ln12)/100 * (100 + SynergyBonus)/100
= BaseDamage * 0.75 * (100 + ln12)* (100 + SynergyBonus)/10000
= BaseDamage * 0.75 * (100 * (100 + SynergyBonus) + ln12* (100 + SynergyBonus))/10000
= BaseDamage * 0.75 * (10000 + 100*SynergyBonus + 100*ln12+ ln12*SynergyBonus)/10000
= BaseDamage * 0.75 * (100 + SynergyBonus + ln12+ (ln12*SynergyBonus)/100 )/100
= BaseDamage * 0.75 * (100 + SynergyBonus + ln12+ (ln12*SynergyBonus)/100 )/100
= BaseDamage * 0.75 * (100 + (100 + ln12) * (100 + SynergyBonus) /100 - 100 )/100


The original damage calculation is:

OriginalDamage = BaseDamage * 0.75 * (100 + ln12)/100

Our new damage, that countains our synergy bonuses, is:

NewDamage = BaseDamage * 0.75 * (100 + (100 + ln12) * (100 + SynergyBonus) /100 - 100 )/100

The Damage-Formula is:
Damage = BaseDamage * 0.75 * (100 + clc2)/100

So, in order to give our spell its synergy, we need to replace the original calc2 entry
clc2 = ln12
with
clc2 = (100 + ln12) * (100 + SynergyBonus) /100 - 100

Replace SynergyBonus with whatever the formula for synergy is, like
(par8 * skill('Multiple Shot'.blvl))

Final calc2-formula:
(100 + ln12) * (100 + (par8 * skill('Multiple Shot'.blvl))) /100 - 100
where par8 is the synergy-bonus in percent.

I hope no errors were done.

This Synergy-Bonus won't be shown inside of the skill description. If you want the Synergy to show up inside of skill description, edit SkillDesc.txt. If there is any auto-calculated exact damage (like Fire Bolt "Damage: 2-3" or similar stuff) inside of skill description, then that damage will probably be updated automatically. Most stuff needs to be changed manually. The Damage Bonus "5%" (or whatever the Damage Bonus for the current skill level is) won't include synergies inside of its calculation. You need to go to SkillDesc.txt and change all "ln12" entries, if you want it to show the effect of the synergies. Or create an additional skill-description-line, that only shows the synergy-bonus. You should test the damage before doing complicated stuff inside of skilldesc.txt, I might have done an error somewhere or it might not work as expected.

JayBrainDead
Posts: 58
Joined: Fri Mar 09, 2018 10:43 pm

Re: 1.13d Skills.Txt Synergies?

Post by JayBrainDead » Mon Jun 11, 2018 2:33 am

EisBacken wrote:
Mon Jun 11, 2018 12:56 am
I think the server-start-function and server-go-function choose how the damage is calculated and where the values are taken from (in this case it's calc2).
As I suspected, to add a physical damage calc to a skill that doesnt already have one you need to change the server start and server do functions. Thanks a lot for the reply, it contained lots of useful information ! :)

Now ill probably have to do a good amount of trial and error to figure out to what extent we can use srvstfunc srvdofunc.

Edit : I also suspect some of it is hardcoded because when you look at magic arrow, it doesnt have any information in any field and even svrstfunc and svrdofunc are empty and it still converts phys damage to magic damage

User avatar
Nizari
Site Admin
Paladin
Posts: 115
Joined: Fri Feb 16, 2018 11:39 pm
Poland

Re: 1.13d Skills.Txt Synergies?

Post by Nizari » Mon Jun 11, 2018 7:39 am

Magic arrow converts damage to magical via missile func and the conversion ammount is editable. You can even make it a calc. Damage tyle conversion is also editable. Check it in missiles.txt

You can add physical damage to any damage dealing skill and make a synergy for it. It has nothing to do with skill funcs if it's damage dealing type already.

JayBrainDead
Posts: 58
Joined: Fri Mar 09, 2018 10:43 pm

Re: 1.13d Skills.Txt Synergies?

Post by JayBrainDead » Mon Jun 11, 2018 5:19 pm

Nizari wrote:
Mon Jun 11, 2018 7:39 am
Magic arrow converts damage to magical via missile func and the conversion ammount is editable. You can even make it a calc. Damage tyle conversion is also editable. Check it in missiles.txt

You can add physical damage to any damage dealing skill and make a synergy for it. It has nothing to do with skill funcs if it's damage dealing type already.
You are right about this, the magical damage conversion is done in Missiles.txt. Same goes for Cold and Fire arrow and their respective conversion.
I was gonna make a new topic regarding something similar, Im not sure if i should do it or it would be considered spamming anyways I can always move this if needs be.

I dont know if this is the case for all versions but in 1.13c at least the skill Exploding Arrow applies the weapon damage to the whole explosion radius instead on only the target hit by the missile itself, Ive tried remove the SrcDmg from Exploding arrow but that removes the weapon damage on the missiles but still applies it through the explosion radius which is the opposite of what I intend to do.

I believe this would also be done in Missiles.txt Ive tried to make exploding arrow behave like freezingarrow without success is this controled by a submissile withing missiles txt ?

Post Reply

Return to “General Mod Making”