The scripts core_h, combat_damage_h and combat_h are what you would call "include" files in programming. If you are in the toolset you will see they all fall under the category "core includes".
The include files in Dragon Age(and most program languages) are mostly a collection of functions. They include things like CalculateAttackTiming, CalculateDamage - they all sound important - and they are. But changing one has no impact on anything. That is because they are include files. These programs do not run at all directly. Instead, other programs call the functions out. By using include files you can reuse the code - and insure consistenty between programs. Afterall, you do not want to recode the attack calculation for every single talent that makes an attack role! That is asking for trouble. Instead you make an attack function and call that code out through in an include. Hence, whether you are auto attacking or using a Mighty Blow they are all using the same code. But several programs all use the same code.
So, go open Rules_Core and look right at the top and look for the lines # include "rules_h". That one lines of code basically means insert the entire program file rules_h right here into the code. But, if you open Rules_h you will see it calls several other include files - especially the one combat_h. So at compile time, every single include file linked gets pulled into one master file and saved out. A .nss file is source code, and is not run by the game. A .ncs file is what the game actually runs. And that is what is generated when you compile. It is the compiled code the game reads. The game could care less what you did to the source - until you compile it.
The key is to identify what programs are calling out what include files and force the game to recompile the main script to take into account your changes. Rules_Core covers a lot of things - including auto attacks. However the script talent_singletarget covers all of the single target special attacks like Sunder Arms, and Flurry.
When you change the include file, check out one of the main programs like talent_singletarget, adding the line of code "This is mine" makes the compiler think you have change the main program code. The whole point is to force a recompile of the entire script.
But remember changes to the includes are completely independent - until you force a recompile of the main scripts that are actually using them. So it is easy to go MOD shattering blows - but it does nothing until you recompile the scripts that call that function out.
There are three of them:
1. rules_core - Auto Attack
2. talent_singletarget - Covers Sunder Arms, Mighty Blow - all of the single target attacks
3. talent_aoeinstant - Covers 2 hand sweep.
So you can make Shattering Blows work all the time, or only on single target talents.
I hope that helps!
Edit - as someone who programs for a living - it is really hard to understand why they are not fixed. Other then it is not a game breaking bug - so why bother? Bioware has a long history of not fixing bugs. If I was on the QA team, why not go for the "low hanging friut" and fix some easy ones? This is a really easy fix. Like the haste bug. And the haste bug on Bow Attack Speed. And the bug on Overpower. And on and on...
Modifié par beancounter501, 12 août 2010 - 03:31 .