Difference between revisions of "Add A New Class Tutorial"
(→Creating a module) |
|||
Line 7: | Line 7: | ||
*[[cla_base.xls]] | *[[cla_base.xls]] | ||
*[[guitypes.xls]] | *[[guitypes.xls]] | ||
− | |||
=== Open up 2da_base.xls === | === Open up 2da_base.xls === | ||
− | |||
Add the following to the end of M2DA_base TAB | Add the following to the end of M2DA_base TAB | ||
{| rules="all" cellpadding="2" style="border: 2pt solid black" | {| rules="all" cellpadding="2" style="border: 2pt solid black" | ||
Line 17: | Line 15: | ||
|} | |} | ||
Now SAVE your file | Now SAVE your file | ||
− | |||
=== Open up guitypes.xls === | === Open up guitypes.xls === | ||
At bottom of list paste this: | At bottom of list paste this: | ||
Line 29: | Line 26: | ||
|} | |} | ||
Now SAVE your file | Now SAVE your file | ||
− | |||
=== Open up CLA_base.xls === | === Open up CLA_base.xls === | ||
Paste this AFTER line 3: (Move all down 1) | Paste this AFTER line 3: (Move all down 1) | ||
Line 40: | Line 36: | ||
Now SAVE your file | Now SAVE your file | ||
− | |||
{{TutorialRef|2DA|2DA base.xls|Guitypes.xls|CLA base.xls}} | {{TutorialRef|2DA|2DA base.xls|Guitypes.xls|CLA base.xls}} | ||
− | |||
=== Open up background.xls === | === Open up background.xls === | ||
On backgrounds tab: You need to insert a section between mage and skill 1, see screenshot | On backgrounds tab: You need to insert a section between mage and skill 1, see screenshot | ||
− | |||
[[Image:Background.jpg]] | [[Image:Background.jpg]] | ||
− | |||
− | |||
On background_defaults there are several section you need to note here regarding the screenshot: | On background_defaults there are several section you need to note here regarding the screenshot: | ||
− | |||
[[Image:Class tut bgdef.jpg]] | [[Image:Class tut bgdef.jpg]] | ||
− | |||
How the ID's work, 1 = dwarf, 4 = shaman, 5 = noble, the rest of the pattern is easy. | How the ID's work, 1 = dwarf, 4 = shaman, 5 = noble, the rest of the pattern is easy. | ||
Line 72: | Line 61: | ||
Now SAVE your file | Now SAVE your file | ||
− | |||
{{TutorialRef|2DA|Background.xls}} | {{TutorialRef|2DA|Background.xls}} | ||
− | |||
=== Open up abi_base.xls === | === Open up abi_base.xls === | ||
− | |||
in the ABI_Base tab add the following to the bottom of the list | in the ABI_Base tab add the following to the bottom of the list | ||
Line 86: | Line 72: | ||
guitypes - referenced what class this links too ---> links with guitypes.xls | guitypes - referenced what class this links too ---> links with guitypes.xls | ||
− | |||
AFTER LINE 119 ==> 4034 HIDDEN_DOG insert a new row and put in the following | AFTER LINE 119 ==> 4034 HIDDEN_DOG insert a new row and put in the following | ||
Line 139: | Line 124: | ||
Now SAVE your file :) | Now SAVE your file :) | ||
− | |||
{{TutorialRef|2DA|ABI base.xls}} | {{TutorialRef|2DA|ABI base.xls}} | ||
− | |||
=== Open up ALShaman_default.xls === | === Open up ALShaman_default.xls === | ||
− | |||
Should look like this | Should look like this | ||
[[Image:Class tut alshaman.jpg]] | [[Image:Class tut alshaman.jpg]] | ||
− | |||
{{TutorialRef|2DA|ALWizard_Default.xls}} | {{TutorialRef|2DA|ALWizard_Default.xls}} | ||
− | |||
== Converting the files from 2DA to GDA == | == Converting the files from 2DA to GDA == | ||
− | |||
Create a directory called '''2DA''' on C:, inside that dir create one called override. | Create a directory called '''2DA''' on C:, inside that dir create one called override. | ||
Line 178: | Line 157: | ||
VOILA YOU NOW HAVE YOUR GDA FILES FOR THE MODULE | VOILA YOU NOW HAVE YOUR GDA FILES FOR THE MODULE | ||
− | |||
− | |||
{{TutorialRef|Compiling 2DAs}} | {{TutorialRef|Compiling 2DAs}} | ||
− | |||
== Creating a module == | == Creating a module == | ||
Now we begin editing inside the toolset | Now we begin editing inside the toolset | ||
Line 200: | Line 176: | ||
Put these GDA files in: name/mydocuments/bioware/dragonage/addins/modulename/core/override directory | Put these GDA files in: name/mydocuments/bioware/dragonage/addins/modulename/core/override directory | ||
− | |||
{{TutorialRef|Module|Creating a module}} | {{TutorialRef|Module|Creating a module}} | ||
− | |||
== Editing the scripts== | == Editing the scripts== | ||
You now need to edit some scripts. | You now need to edit some scripts. | ||
− | |||
=== Edit the 2da_constants_h file === | === Edit the 2da_constants_h file === | ||
− | |||
find the 2da_constants_h file under Core scripts | find the 2da_constants_h file under Core scripts | ||
Line 255: | Line 227: | ||
Now at the top and click "EXPORT WITHOUT DEPENDENT RESOURCES" | Now at the top and click "EXPORT WITHOUT DEPENDENT RESOURCES" | ||
− | |||
− | |||
=== Edit the sys_chargen_h file === | === Edit the sys_chargen_h file === | ||
Find the sys_chargen_h file under _Systems ==> _Includes | Find the sys_chargen_h file under _Systems ==> _Includes | ||
Line 295: | Line 265: | ||
int nAbility = GetM2DAInt(TABLE_STARTING_EQUIPMENT,"Ability", nIdx); | int nAbility = GetM2DAInt(TABLE_STARTING_EQUIPMENT,"Ability", nIdx); | ||
_AddAbility(oCreature, nAbility); | _AddAbility(oCreature, nAbility); | ||
− | |||
} | } | ||
else | else | ||
Line 311: | Line 280: | ||
break; | break; | ||
} | } | ||
− | |||
LoadItemsFromTemplate(oCreature, sTemplate, TRUE); | LoadItemsFromTemplate(oCreature, sTemplate, TRUE); | ||
} | } | ||
Line 320: | Line 288: | ||
Now at the top and click "EXPORT WITHOUT DEPENDENT RESOURCES" | Now at the top and click "EXPORT WITHOUT DEPENDENT RESOURCES" | ||
− | |||
=== Edit the sys_chargen file === | === Edit the sys_chargen file === | ||
Find the sys_chargen ==> under _Systems | Find the sys_chargen ==> under _Systems | ||
Line 340: | Line 307: | ||
{ | { | ||
Log_Trace(LOG_CHANNEL_CHARACTER,"sys_chargen","Setting default values for player character"); | Log_Trace(LOG_CHANNEL_CHARACTER,"sys_chargen","Setting default values for player character"); | ||
− | |||
int nRandClass = abs((GetLowResTimer()%3)+1); | int nRandClass = abs((GetLowResTimer()%3)+1); | ||
− | |||
if(nRandClass == CLASS_ROGUE || nRandClass == CLASS_WARRIOR || nRandClass == CLASS_SHAMAN) | if(nRandClass == CLASS_ROGUE || nRandClass == CLASS_WARRIOR || nRandClass == CLASS_SHAMAN) | ||
{ | { | ||
Line 353: | Line 318: | ||
WR_SetPlotFlag(PLT_GEN00PT_BACKGROUNDS, GEN_BACK_CIRCLE, TRUE); | WR_SetPlotFlag(PLT_GEN00PT_BACKGROUNDS, GEN_BACK_CIRCLE, TRUE); | ||
} | } | ||
− | |||
− | |||
Chargen_SetNumTactics(oChar); | Chargen_SetNumTactics(oChar); | ||
SetCanLevelUp(oChar,Chargen_HasPointsToSpend(oChar)); | SetCanLevelUp(oChar,Chargen_HasPointsToSpend(oChar)); | ||
SendEventModuleChargenDone("", ""); | SendEventModuleChargenDone("", ""); | ||
− | |||
} | } | ||
</dascript> | </dascript> | ||
Line 380: | Line 342: | ||
Now at the top and click "EXPORT WITHOUT DEPENDENT RESOURCES" | Now at the top and click "EXPORT WITHOUT DEPENDENT RESOURCES" | ||
− | |||
− | |||
=== Create the module script === | === Create the module script === | ||
− | |||
Create a new script and give it a descriptive name like "loadscript". This script will intercept the Chargen events and redirect them to the custom version of the sys_chargen script you just created. It can also be used to intercept other events if you want to alter other things or add items to a newly created character's inventory. | Create a new script and give it a descriptive name like "loadscript". This script will intercept the Chargen events and redirect them to the custom version of the sys_chargen script you just created. It can also be used to intercept other events if you want to alter other things or add items to a newly created character's inventory. | ||
Line 397: | Line 356: | ||
switch (nEvent) | switch (nEvent) | ||
{ | { | ||
− | |||
default: | default: | ||
{ | { | ||
Line 420: | Line 378: | ||
Now at the top and click "EXPORT WITHOUT DEPENDENT RESOURCES" | Now at the top and click "EXPORT WITHOUT DEPENDENT RESOURCES" | ||
− | |||
{{TutorialRef|Script}} | {{TutorialRef|Script}} | ||
− | |||
== Creating the UTC template file== | == Creating the UTC template file== | ||
Back in the toolset we need to do the following: | Back in the toolset we need to do the following: | ||
Line 443: | Line 399: | ||
Now at the top and click "EXPORT WITHOUT DEPENDENT RESOURCES" | Now at the top and click "EXPORT WITHOUT DEPENDENT RESOURCES" | ||
− | |||
{{TutorialRef|Designer Resources#Creating new resources|Creature|Exporting a module}} | {{TutorialRef|Designer Resources#Creating new resources|Creature|Exporting a module}} | ||
− | |||
== Creating some strings == | == Creating some strings == | ||
− | |||
Start the String editor and right click and insert. | Start the String editor and right click and insert. | ||
Line 464: | Line 417: | ||
When all is said close string editor | When all is said close string editor | ||
− | |||
{{TutorialRef|String editor}} | {{TutorialRef|String editor}} | ||
− | |||
== Putting it all together == | == Putting it all together == | ||
− | |||
Up on top ON THE EXPORT TAB | Up on top ON THE EXPORT TAB | ||
Line 478: | Line 428: | ||
"EXPORT TALK TABLE" | "EXPORT TALK TABLE" | ||
− | |||
{{TutorialRef|Exporting a module}} | {{TutorialRef|Exporting a module}} | ||
− | |||
== Cleaning up == | == Cleaning up == | ||
− | |||
DON'T SKIP THIS PART | DON'T SKIP THIS PART | ||
− | |||
− | |||
Delete all files in the name/mydocuments/bioware/dragonage/packages/core/override/toolset; these are not needed. | Delete all files in the name/mydocuments/bioware/dragonage/packages/core/override/toolset; these are not needed. | ||
− | |||
== Trying it out == | == Trying it out == | ||
− | |||
Start up your game (It may take a min) and start a new game. | Start up your game (It may take a min) and start a new game. | ||
Line 502: | Line 445: | ||
Make sure you did not miss ANY ";" or "{ }" as a single one of these missed can destroy the game. | Make sure you did not miss ANY ";" or "{ }" as a single one of these missed can destroy the game. | ||
− | |||
== Troubleshooting == | == Troubleshooting == | ||
− | |||
MY SPELLS ARE NOT SHOWING UP IN THE CREATION SCREEN, HELP!! | MY SPELLS ARE NOT SHOWING UP IN THE CREATION SCREEN, HELP!! | ||
Line 515: | Line 456: | ||
* Double check the background file to make sure you are using default_shaman.utc for the template | * Double check the background file to make sure you are using default_shaman.utc for the template | ||
* Try rebooting your computer. | * Try rebooting your computer. | ||
− | |||
[[Category:Character generation]] | [[Category:Character generation]] | ||
[[Category:Tutorials]] | [[Category:Tutorials]] |
Revision as of 23:29, 1 February 2010
Contents
Editing the 2das
You will need to edit the following 2DA's.
- 2da_base.xls
- abi_base.xls
- ALclassname_default.xls (ex ALshaman_default.xls) Copy from ALWizard_default.xls
- background.xls
- cla_base.xls
- guitypes.xls
Open up 2da_base.xls
Add the following to the end of M2DA_base TAB
ID above 100000 | ALShaman_default | ALShaman_default |
Now SAVE your file
Open up guitypes.xls
At bottom of list paste this:
ID | Label | StringId | Ability | ProgressBar | CombatTraining | SpecialGraphic | TintColor | Orphanage | Flags | BlendTree |
---|---|---|---|---|---|---|---|---|---|---|
500 | Class: Shaman | 8000000 | 5000 | 0 | 0 | 1 | 0x9B0F00 | 0 | 0 | **** |
Now SAVE your file
Open up CLA_base.xls
Paste this AFTER line 3: (Move all down 1)
4 | Shaman | 8000000 | 8000001 | **** | 8000002 | 8000003 | classico_spirithealer | CLASS_Shaman | 2 | 95 | 1 | 100 | 5 | 2 | 2 | 2 | 2 | 2 | 0 | 0 | 0 | 55 | 50 | 1 | 5 | 1 | 3 | 0.3 | 4035 | **** | 1 | Shaman | **** |
Now SAVE your file
- 2DA - 2DA base.xls - Guitypes.xls - CLA base.xls |
Open up background.xls
On backgrounds tab: You need to insert a section between mage and skill 1, see screenshot On background_defaults there are several section you need to note here regarding the screenshot: How the ID's work, 1 = dwarf, 4 = shaman, 5 = noble, the rest of the pattern is easy.
On lines 12,15,17,19 you need to add these in. What I recommend is just copying these lines
- 10 ==> 12
- 13 ==> 15
- 16 ==> 17
- 18 ==> 19
The template string is the default_shaman.utc you will need to create in the toolset later on for these to have a base model The Ability is the starting ability tied to this class, in my case it just references a different one then what you will have
On chargen_preload there are several section you need to note here regarding the screenshot:
These ID's must match what is on the background_defaults otherwise the game WILL crash.
Now SAVE your file
- 2DA - Background.xls |
Open up abi_base.xls
in the ABI_Base tab add the following to the bottom of the list
There are several columns that very are important
abilitytype - define what type of ability. melee, spell, skill etc..---> links with abilitytype.xls
prereqability - defines what is needed to have this ability. To add a new class these need to be changed on existing classes.
guitypes - referenced what class this links too ---> links with guitypes.xls
AFTER LINE 119 ==> 4034 HIDDEN_DOG insert a new row and put in the following
5000 | HIDDEN_SHAMAN | 0 | 0 | 380405 | 330716 | hidden | 2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 12 | 0 | 0 | 0 | 0 | 3 | 1.5 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 7 | 0 | 2 | 33 | 0 | 0 | 0 | 0 |
Add the bottom paste these
300000 | HEROIC_OFFENSE2 | 380003 | 379523 | 367458 | 379231 | spl_ico_heroic_offense | 2 | 1 | 0 | 0 | 0 | 20 | 0 | 5000 | 0 | 0 | 0 | 500 | 3 | 0 | 3 | 1 | 4 | spell_singletarget.ncs | 5 | 90215 | 244 | 247 | 0 | 0 | 2 | 0 | 0 | 0 | 0 | 0 | 0 | 90109 | 128 | 1 | 7 | 0 | 2 | 33 | 0 | 0 | 0 | 0 |
300001 | HEROIC_AURA2 | 380000 | 379520 | 367458 | 379214 | spl_ico_heroic_aura | 2 | 1 | 0 | 0 | 0 | 30 | 0 | 300000 | 0 | 4 | 15 | 500 | 3 | 0 | 3 | 1 | 4 | spell_singletarget.ncs | 5 | 90213 | 244 | 247 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 90110 | 128 | 1 | 7 | 0 | 2 | 33 | 0 | 0 | 0 | 0 |
300002 | HEROIC_DEFENSE2 | 380001 | 379521 | 367458 | 379256 | spl_ico_heroic_defense | 2 | 1 | 0 | 0 | 0 | 40 | 0 | 300001 | 0 | 4 | 20 | 500 | 3 | 0 | 3 | 1 | 4 | spell_singletarget.ncs | 10 | 90214 | 244 | 247 | 0 | 0 | 2 | 0 | 0 | 0 | 0 | 0 | 0 | 90111 | 128 | 1 | 7 | 0 | 2 | 33 | 0 | 0 | 0 | 0 |
300003 | HASTE2 | 380005 | 379525 | 398957 | 379229 | spl_ico_agility | 2 | 0 | 0 | 0 | 0 | 0 | 60 | 300002 | 0 | 4 | 30 | 500 | 1 | 1 | 18 | 1 | 2 | spell_modal.ncs | 30 | 90216 | 244 | 247 | 0 | 0 | 2 | 0 | 0 | 0 | 0 | 0 | 0 | 90112 | 192 | 1 | 7 | 0 | 2 | 33 | 0 | 0 | 0 | 10 |
NOW HERE IS THE TRICKY PART, MAKE SURE YOU DO THIS RIGHT OR KISS YOUR MODULE GOODBYE
HIGHLIGHT LINE 3 ALL THE WAY DOWN TO 558 (BOTTOM OF THE WORKSHEET)
NOW GOTO DATA --> SORT BY COLUMN S (guitypes) Now they should all be sorted by guitype
Now we need to seperate the mage spells from our new shaman spells.
For guitype spells 1-4, you need to look at the prereqability section for these spells, for those that have 0, replace with 4023 This will make these appear only on the mage from now on. (Which means we need to make seperate skills for our new class) Ok this will now prevent duplicate of skills
HIGHLIGHT LINE 3 ALL THE WAY DOWN TO 558 (BOTTOM OF THE WORKSHEET)
NOW GOTO DATA --> SORT BY COLUMN A (ID) Now we are back to normal
Now goto passive_abilities
Paste the following at the bottom of the list
9000 | HIDDEN_SHAMAN | 1 | 2 | 4 | 2 | 6 | 1 | str +2,mag +2,con +1 |
Now SAVE your file :)
- 2DA - ABI base.xls |
Open up ALShaman_default.xls
Should look like this
- 2DA - ALWizard_Default.xls |
Converting the files from 2DA to GDA
Create a directory called 2DA on C:, inside that dir create one called override.
In your C:\2da put the following files:
Also: ExcelProcessor.exe from the tool converter in your toolset section.
Next you need to make a batch file to run to convert these. Simply open notepad, copy and paste below and save as convert.bat
- C:\2DA\ExcelProcessor.exe 2DA_base.xls -outdir=C:\2DA\override\
- C:\2DA\ExcelProcessor.exe background.xls -outdir=C:\2DA\override\
- C:\2DA\ExcelProcessor.exe CLA_base.xls -outdir=C:\2DA\override\
- C:\2DA\ExcelProcessor.exe ALShaman_Default.xls -outdir=C:\2DA\override\
- C:\2DA\ExcelProcessor.exe guitypes.xls -outdir=C:\2DA\override\
- C:\2DA\ExcelProcessor.exe ABI_base.xls -outdir=C:\2DA\override\
NOTE: YOU MAY NEED TO "RUN AS ADMINISTRATOR" CONVERT.BAT IN VISTA / W7
VOILA YOU NOW HAVE YOUR GDA FILES FOR THE MODULE
- Compiling 2DAs |
Creating a module
Now we begin editing inside the toolset
Create a new module, similiar to the picture below
MAKE SURE YOUR STRING SETS GO FROM IN BETWEEN 8,000,000 - 8,300,000 IF IT GOES ABOVE THAT RANGE THE STRINGS WILL NOT WORK.BIOWARE HAS ALREADY POSTED ABOUT THIS SQL PROBLEM
After making it go back to the module screen and select heirarchy and make sure single player is checked
Now that your module is created we need to add the appropriate GDA to the override section.
look in name/mydocuments/bioware/dragonage/addins/modulename
Put these GDA files in: name/mydocuments/bioware/dragonage/addins/modulename/core/override directory
- Module - Creating a module |
Editing the scripts
You now need to edit some scripts.
Edit the 2da_constants_h file
find the 2da_constants_h file under Core scripts
right click on 2DA_CONSTANTS_H, select CHECK OUT
Go down to the following sections and edit it like below:
const int ABILITY_TALENT_HIDDEN_DUELIST = 4030; const int ABILITY_TALENT_HIDDEN_RANGER = 4029; const int ABILITY_TALENT_HIDDEN_REAVER = 4019; const int ABILITY_TALENT_HIDDEN_ROGUE = 4020; const int ABILITY_TALENT_HIDDEN_SHALE = 4033; const int ABILITY_TALENT_HIDDEN_TEMPLAR = 4021; const int ABILITY_TALENT_HIDDEN_WARRIOR = 4022; const int ABILITY_TALENT_HIDDEN_SHAMAN = 5000; const int ABILITY_TALENT_HURLOCK_PROPERTIES = 90080; const int ABILITY_TALENT_INDOMITABLE = 28;
and
//Class Constants const int CLASS_WARRIOR = 1; const int CLASS_WIZARD = 2; const int CLASS_ROGUE = 3; const int CLASS_SHAMAN = 4; const int CLASS_SHAPESHIFTER = 5; const int CLASS_SPIRITHEALER = 6; const int CLASS_CHAMPION = 7; const int CLASS_TEMPLAR = 8; const int CLASS_BERSERKER = 9; const int CLASS_REAVER = 10; const int CLASS_ARCANE_WARRIOR = 11; const int CLASS_ASSASSIN = 12; const int CLASS_BLOOD_MAGE = 13; const int CLASS_BARD = 14; const int CLASS_RANGER = 15; const int CLASS_DUELIST = 16; const int CLASS_SHALE = 17; const int CLASS_DOG = 18; const int CLASS_MONSTER_ANIMAL = 19;
Afterwards on top select SAVE then CHECK IN
Now at the top and click "EXPORT WITHOUT DEPENDENT RESOURCES"
Edit the sys_chargen_h file
Find the sys_chargen_h file under _Systems ==> _Includes
right click on sys_chargen_h, select CHECK OUT
Go down to the starting skills section and edit it like below:
// ------------------------------------------------------------------------- // Starting Skills // ------------------------------------------------------------------------- if (nClass == CLASS_WARRIOR) { _AddAbility(oChar, 100100); } else if (nClass == CLASS_ROGUE) { _AddAbility(oChar, ABILITY_SKILL_POISON_1); } else if (nClass == CLASS_WIZARD) { _AddAbility(oChar, ABILITY_SKILL_HERBALISM_1); } else if (nClass == CLASS_SHAMAN) { _AddAbility(oChar, ABILITY_SKILL_HERBALISM_1); } }
Next goto starting ability
// --------------------------------------------------------------------- // Load the starting ability for the background // --------------------------------------------------------------------- int nAbility = GetM2DAInt(TABLE_STARTING_EQUIPMENT,"Ability", nIdx); _AddAbility(oCreature, nAbility); } else { string sTemplate = "default_player.utc"; switch (nClass) { case CLASS_WARRIOR: sTemplate = "default_warrior.utc"; break; case CLASS_ROGUE: sTemplate = "default_rogue.utc"; break; case CLASS_WIZARD: sTemplate = "default_wizard.utc"; break; case CLASS_SHAMAN: sTemplate = "default_shaman.utc"; break; } LoadItemsFromTemplate(oCreature, sTemplate, TRUE); } }
Afterwards on top select SAVE then CHECK IN
Now at the top and click "EXPORT WITHOUT DEPENDENT RESOURCES"
Edit the sys_chargen file
Find the sys_chargen ==> under _Systems
right click on sys_chargen, select Duplicate; name the file something like wd_sys_chargen.
Change this line:
This value does not have to be limited to the minimum number of base classes in the file; it simply has to be higher than the default value.
Go down to the special handling section and edit it like below:
// special handling for aluvian if (nQuickStart == 0 ) { Log_Trace(LOG_CHANNEL_CHARACTER,"sys_chargen","Setting default values for player character"); int nRandClass = abs((GetLowResTimer()%3)+1); if(nRandClass == CLASS_ROGUE || nRandClass == CLASS_WARRIOR || nRandClass == CLASS_SHAMAN) { _RunChargen(RACE_HUMAN, nRandClass, oChar, BACKGROUND_NOBLE ); WR_SetPlotFlag(PLT_GEN00PT_BACKGROUNDS, GEN_BACK_HUMAN_NOBLE, TRUE); } else // mage { _RunChargen(RACE_HUMAN, nRandClass, oChar, BACKGROUND_MAGI ); WR_SetPlotFlag(PLT_GEN00PT_BACKGROUNDS, GEN_BACK_CIRCLE, TRUE); } Chargen_SetNumTactics(oChar); SetCanLevelUp(oChar,Chargen_HasPointsToSpend(oChar)); SendEventModuleChargenDone("", ""); }
next go down to the tactics sections and add the following:
// associate some tactics preset table int nPresetTable; if(GetCreatureCoreClass(oChar) == CLASS_WARRIOR) nPresetTable = 1; // tank else if(GetCreatureCoreClass(oChar) == CLASS_ROGUE) nPresetTable = 2; // damage dealer else if(GetCreatureCoreClass(oChar) == CLASS_SHAMAN) nPresetTable = 1; // damage dealer else // mage nPresetTable = 5; // nuker
Afterwards on top select SAVE then CHECK IN
Now at the top and click "EXPORT WITHOUT DEPENDENT RESOURCES"
Create the module script
Create a new script and give it a descriptive name like "loadscript". This script will intercept the Chargen events and redirect them to the custom version of the sys_chargen script you just created. It can also be used to intercept other events if you want to alter other things or add items to a newly created character's inventory.
#include "utility_h" #include "wrappers_h" #include "events_h" void main() { event ev = GetCurrentEvent(); int nEvent = GetEventType(ev); Log_Events("", ev); switch (nEvent) { default: { // ----------------------------------------------------------------- // Handle character generation events sent by the engine. // ----------------------------------------------------------------- if ((nEvent >= EVENT_TYPE_CHARGEN_START && nEvent <= EVENT_TYPE_CHARGEN_END) || nEvent == EVENT_TYPE_PLAYERLEVELUP ) { HandleEvent(ev, R"ld_sys_chargen.ncs"); } else { Log_Trace(LOG_CHANNEL_EVENTS, GetCurrentScriptName(), Log_GetEventNameById(nEvent) + " (" + ToString(nEvent) + ") *** Unhandled event ***"); } break; } } }
Afterwards on top select SAVE then CHECK IN
Now at the top and click "EXPORT WITHOUT DEPENDENT RESOURCES"
- Script |
Creating the UTC template file
Back in the toolset we need to do the following:
Click on the "creature tab" (red head icon)
Right click on default_mage ==> duplicate Do like the following:
Now we need to edit the values and give them some armor and weapons, like so:
Class: Shaman (from dropdown) Name: Default Male Shaman
Now at the top and click SAVE ==> CHECK IN
Now at the top and click "EXPORT WITHOUT DEPENDENT RESOURCES"
- Designer Resources#Creating new resources - Creature - Exporting a module |
Creating some strings
Start the String editor and right click and insert.
You will be setting up like this
- Table = module talk base
- Owner = module name
- TYPE = GUI
- 8000000 - Shaman
- 8000001 - Shamans
- 8000002 - Shamans commune with spirits to get thier other worldly powers.
- 8000004 - Shaman
- 8000005 - Shaman Male Name
- 8000006 - Shaman Female Name
When all is said close string editor
- String editor |
Putting it all together
Up on top ON THE EXPORT TAB
"EXPORT WITHOUT DEPENDENT RESOURCES"
"GENERATE MODULE XML"
"GENERATE MANIFEST XML"
"EXPORT TALK TABLE"
- Exporting a module |
Cleaning up
DON'T SKIP THIS PART
Delete all files in the name/mydocuments/bioware/dragonage/packages/core/override/toolset; these are not needed.
Trying it out
Start up your game (It may take a min) and start a new game.
- WARNING* IF ANYTHING HAS GONE WRONG HERE YOUR GAME WILL BE SEVERELY DAMAGED
Select MALE ==> HUMAN ==> SHAMAN ==> MAGI
YOU SHOULD SEE YOUR NEW CHARACTER
IF SOMETHING HAPPENED QUIT AND DOUBLE CHECK YOUR STEPS
Make sure you did not miss ANY ";" or "{ }" as a single one of these missed can destroy the game.
Troubleshooting
MY SPELLS ARE NOT SHOWING UP IN THE CREATION SCREEN, HELP!!
- You may not have sort your ability file back to ID. It has to be sorted by ID in order to show up.
- You may not have assigned the new abilities to your new class "5000" in the prereqability column
MY MODEL IS NOT SHOWING UP WHEN I GOTO MALE ==> HUMAN ==> SHAMAN ==> MAGI
- It is very likely you did not EXPORT your default_shaman.utc model
- Double check the background file to make sure you are using default_shaman.utc for the template
- Try rebooting your computer.