Aller au contenu

Photo

analysing shapechange, does it work as intended?


  • Veuillez vous connecter pour répondre
17 réponses à ce sujet

#1
fro7k

fro7k
  • Members
  • 372 messages
According to spell_shapeshift.nss, the stat modifiers of a shapechange make up for the difference between the mages' statistics and the forms' target statistics.  According to shapechange.xls, a spiderform gets a base strength of 10 and +1 per "form level" which is spellpower / 5.

My Morrigan has a spellpower of 54, which should mean (rounded up) 10+11 = 21 strength.  However, when I empirically turn her into a spider, her strength is 16, from an original stat of 14.

So what's up?  Did I misinterpret the code?

#2
Happysin

Happysin
  • Members
  • 42 messages
Hmm, that would explain why shapechanging is so lame, comparatively. I made the mistake of trying to make my first character a shapechanger and Morrigan as well. Two shape changers in a party wasn't really that fun.

#3
shyzny

shyzny
  • Members
  • 85 messages
shapechanger isn't terrible if you get the mod that makes it instacast, i like to use the web, slam and overpower abilities as a form of close quarter CC

#4
tmp7704

tmp7704
  • Members
  • 11 156 messages

fro7k wrote...

According to spell_shapeshift.nss, the stat modifiers of a shapechange make up for the difference between the mages' statistics and the forms' target statistics.  According to shapechange.xls, a spiderform gets a base strength of 10 and +1 per "form level" which is spellpower / 5.

My Morrigan has a spellpower of 54, which should mean (rounded up) 10+11 = 21 strength.  However, when I empirically turn her into a spider, her strength is 16, from an original stat of 14.

So what's up?  Did I misinterpret the code?

Yes, you're reading it wrong Image IPB

The attributes for the forms are calculated using: base attribute value + level * attribute per level (level is calculated as spellpower / 5, plus additionally shapeshift mastery grants +2 to it)

the "attribute per level" part doesn't have to equal 1 and in most situations it doesn't. In case of strength for spider StrengthPerLevel column reads "0.5" ... so your Morrigan gets 10 base + (11 * 0.5 = 5.5 rounded up = 6) ... which results in 16 as final attribute.

To make things even more confusing some forms receive passive effect which can adjust their stats further. For example bear form gets "bear_properties" effect from API_base which adds +10 to armour etc.

Modifié par tmp7704, 12 décembre 2009 - 02:55 .


#5
fro7k

fro7k
  • Members
  • 372 messages

tmp7704 wrote...

fro7k wrote...

According to spell_shapeshift.nss, the stat modifiers of a shapechange make up for the difference between the mages' statistics and the forms' target statistics.  According to shapechange.xls, a spiderform gets a base strength of 10 and +1 per "form level" which is spellpower / 5.

My Morrigan has a spellpower of 54, which should mean (rounded up) 10+11 = 21 strength.  However, when I empirically turn her into a spider, her strength is 16, from an original stat of 14.

So what's up?  Did I misinterpret the code?

Yes, you're reading it wrong Image IPB

The attributes for the forms are calculated using: base attribute value + level * attribute per level (level is calculated as spellpower / 5, plus additionally shapeshift mastery grants +2 to it)

the "attribute per level" part doesn't have to equal 1 and in most situations it doesn't. In case of strength for spider StrengthPerLevel column reads "0.5" ... so your Morrigan gets 10 base + (11 * 0.5 = 5.5 rounded up = 6) ... which results in 16 as final attribute.

To make things even more confusing some forms receive passive effect which can adjust their stats further. For example bear form gets "bear_properties" effect from API_base which adds +10 to armour etc.


Well, that's exactly what I thought.  I only read from the wrong field since it's a long row and I followed it along with my eyes and read from the row above. :)

#6
tmp7704

tmp7704
  • Members
  • 11 156 messages
On semi-related note there do seem to be some errors in the original shapeshifting code, related mainly to way some attributes (damage bonus and armour penetration) are handled. I'm toying with this system atm, hopefully can straighten it out and make it somewhat more viable.

#7
Ambaryerno

Ambaryerno
  • Members
  • 532 messages
Great stuff, because I tried shapeshifting Morrigan ONCE. She died even more quickly from the inevitable mob that comes after her than if I just had her running around chucking spells.

#8
MachDelta

MachDelta
  • Members
  • 432 messages

tmp7704 wrote...

On semi-related note there do seem to be some errors in the original shapeshifting code, related mainly to way some attributes (damage bonus and armour penetration) are handled. I'm toying with this system atm, hopefully can straighten it out and make it somewhat more viable.


Could you elaborate on this? I've skimmed the shapeshift code quite a few times and haven't seen anything that would make me think it was a bug.

#9
tmp7704

tmp7704
  • Members
  • 11 156 messages
It is rather subtle; e.g. it seems the routine which returns attributes for characters does it in rather odd way for damage bonus -- if your character is reported to be doing 20.0 damage on their character sheet in game, the function returns it as 2.0 i.e. 10x less. The code which calculates attributes for your shapeshifted character doesn't seem to take that into account. For armour penetration this get even weirder since this attribute is returned as 100x smaller than actual value.



There also might be one "break;" missing in the code which resulted in game using values for armour penetration to calculate intended damage bonus, but at this point i can't tell if this error is in the original code or if it was just me hitting delete in the wrong spot.

#10
MachDelta

MachDelta
  • Members
  • 432 messages
I'm not sure I follow. Are you saying that GetCreatureProperty(oAttacker, Property_Attribute_AP) returns 0.05 instead of 5.0?

Also, good eye on the missing break. I have it too and I know I haven't touched that script since the update.

Modifié par MachDelta, 13 décembre 2009 - 07:49 .


#11
tmp7704

tmp7704
  • Members
  • 11 156 messages

MachDelta wrote...

I'm not sure I follow. Are you saying that GetCreatureProperty(oAttacker, Property_Attribute_AP) returns 0.05 instead of 5.0?

Yes, exactly. At the same time the function which modifies the properties works as you'd expect i.e. in order to modify AP by 5 you need to pass 5 as argument rather than 0.05. This is easy to miss since basic AP is very high on staves, and when it comes to damage bonus the final value is also affected by changes to strength attribute... but in its default form the code does do calculations wrong because it computes effect to apply using the scaled down values it receives rather than what these values 'really' are.

#12
tmp7704

tmp7704
  • Members
  • 11 156 messages
(edited, checking alternative explanation)

Modifié par tmp7704, 13 décembre 2009 - 09:05 .


#13
Praylak

Praylak
  • Members
  • 10 messages
Glad someone is looking into this because I like the default shapeshifter forms but there is something messed up with them. Do you think it can be fixed by just altering the values discussed here, and save the file(s) to the override?

Modifié par Praylak, 13 décembre 2009 - 09:07 .


#14
tmp7704

tmp7704
  • Members
  • 11 156 messages
To some degree yes, you could make a basic fix just taking the rows for the bear and spider in shapechage.xls and making a .gda file out of thse modified rows to override the default values. Save it as "shapechange_new.gda" or something like that and it should work.

Keep in mind the change would have to be done in a rather counter-intuitive manner (to increase damage of the forms you'd have to adjust the columns which define their AP, not the ones for damage)

Trying to do it "proper" way i've ran into a minor issue, it seems the act of changing the shape itself changes also the damage output of the caster (probably because they switch from staff to melee somewhere under the hood) which can throw off the calculation of by how much the damage should be then adjuste as the reported damage bonus doesn't update when it happens, at least while out of combat, even though the change is visible on the character's info sheet. Rather annoying, really.

Modifié par tmp7704, 13 décembre 2009 - 10:04 .


#15
Praylak

Praylak
  • Members
  • 10 messages
So the current equipped weapon is not being used as a base after the morph. Is there a value in the shapechange.xls itself that could be identified as a base damage and ap score, or is it just modifiers? I suppose if there was you would have seen it. Perhaps the creatures actual file is used for this? Is there any function calls to such file , spider, bear etc.

I suppose I could look at this myself, but I'm amatuer. Still, I'm going to take a look.

EDIT: Ok I see now. Comparing the Spider to the Spirit form sheds allot of light. I was always curious why the Spirit form dealt much more damage than the Spider. Don't you think its just many of the values are just set too low for Spider, and bear? The Golem seemed to perform quite well in the game as well, in contrast to the lacking Bear form. Looking at the DamageB and DamageP column, its seems quite significant.

Modifié par Praylak, 14 décembre 2009 - 12:24 .


#16
tmp7704

tmp7704
  • Members
  • 11 156 messages
I suspect the Fade forms are intended to be stronger than regular ones because they're supposed to help your character get through part of game entirely on their own rather than with help of others. The actual code for shapeshifting also handles them differently. But in any case yes, if you want to make the regular forms stronger then the way to do it would be (oddly enough) to adjust the columns for ApBase and ApLevel as if they were the columns for Damage. It's because the game is currently bit confused when it comes to retrieving these numbers.

I've put together a mod which attempts to straighten things out to some degree at least: http://social.biowar...m/project/1317/
it wasn't tested much so if you want to give it a try, proceed with caution. I have no idea what's typical Spellpower value people have on their casters, so it's possible the modified version makes these characters completely out of whack (though i'm really hoping not)

Modifié par tmp7704, 14 décembre 2009 - 02:08 .


#17
Praylak

Praylak
  • Members
  • 10 messages
I agree with you about the fade forms, but I was just remarking at how vast the differences were in some cases. I did some changes myself and tested it, and I was successful. I focused more on the per level stuff, so the character gets more from his spellpower, which I feel it should be and its logical.

It would appear you've gone a step or two further in making the forms more distinct, and I for one think thats great. Although I couldn't get your mod to work though. Emptied my override, etc.

I also changed the passive trait for the bear so it gets the nature resist as the tooltip states, like the spider does.

How did you balance the Dragon form against the others? Or is it meant to replace all the other forms?






 

#18
tmp7704

tmp7704
  • Members
  • 11 156 messages

Praylak wrote...

Although I couldn't get your mod to work though. Emptied my override, etc. 

Hmm i fear this may have something to do with the installation being just straight unpack into Dragon Age folder. I couldn't figure out a way for the default installer to put the modified *.ncs script into the main core/override directory so i made a normal archive out of the whole thing. It probably needs an entry in addins.xml to showup or whatnot Image IPB

The dragon form has little less armour than the bear and doesn't have bear's "tank" trait which gives the latter 100+ more health. It is intended to be sort of equivalent of a 2h warrior while spider is closer to a rogue and bear is more like sword-and-board guy. Out of them all the dragon is probably most rounded out option that's sort-of good for everything, but i wanted to keep the other ones useful in some situations too. Hard to say how well it worked out though.

edit: i've repacked the mod into some weird combination of .dazip and the separately packed script. It's even less convenient to install now but hopefully will at least be possible to install at all  Image IPB

Modifié par tmp7704, 14 décembre 2009 - 03:55 .