Are there any tools for appending to exisiting scripts? Say for example I'd like to add a block to monster_singletarget.ncs while leaving the original script in place and leave it editable for other modders?
Thanks,
Append to Existing Script
Débuté par
cirerrek
, juil. 17 2010 12:43
#1
Posté 17 juillet 2010 - 12:43
#2
Posté 17 juillet 2010 - 01:07
Right click on any script you want to modify and select the duplicate option from the pop-up menu. Give the new file a prefix (mine use either ld_ or prc_) with the default name of the script.
#3
Posté 17 juillet 2010 - 01:54
Thanks ladydesire! Forgive me if I'm asking silly questions, I've dabbled at modding with some other games, but I'm a neophyte when it comes to dragon age.
Wouldn't you need to point all the ablities in ABI_Base.gda that use that particular script to the new script name?
Also I'm confused on the ability/talent/spell naming conventions that I'm seeing in the scripts. The wiki doc on ABI_Base says the label field isn't accessed by anything however in the scripts I'm seeing things that are close like
ABILITY_TALENT_MONSTER_REVENANT_PULL
MONSTER_REVENANT_PULL
Very close yet they are different for some reason?
Thanks,
ladydesire wrote...
Right click on any script you want to modify and select the duplicate option from the pop-up menu. Give the new file a prefix (mine use either ld_ or prc_) with the default name of the script.
Wouldn't you need to point all the ablities in ABI_Base.gda that use that particular script to the new script name?
Also I'm confused on the ability/talent/spell naming conventions that I'm seeing in the scripts. The wiki doc on ABI_Base says the label field isn't accessed by anything however in the scripts I'm seeing things that are close like
ABILITY_TALENT_MONSTER_REVENANT_PULL
MONSTER_REVENANT_PULL
Very close yet they are different for some reason?
Thanks,
#4
Posté 17 juillet 2010 - 03:11
The scripts are referencing constant integers. If you click on the green C in the top right hand corner of the script editor, you can see a list of constants; things like ABILITY_TALENT_MONSTER_REVENANT_PULL show up there. If you right click on them (in a script, not in the search window) and hit 'go to definition', you can see what most of them actually are. In the case of abilities, they are the id number in ABI_BASE. It's just a handy way to keep track of those numbers, rather than typing in '10002' every time you want to reference Fireball.
As to your other question, as far as I'm aware you would indeed need to override ABI_Base (preferably with an M2DA). Perhaps ladydesire knows something I don't.
You could also try writing a 'wrapper' script, where you do whatever it is you're trying to accomplish and then pass the event on to the appropriate spell script (but again, you'd need to put your wrapper script in ABI_). It depends on what exactly you're trying to achieve.
As to your other question, as far as I'm aware you would indeed need to override ABI_Base (preferably with an M2DA). Perhaps ladydesire knows something I don't.
You could also try writing a 'wrapper' script, where you do whatever it is you're trying to accomplish and then pass the event on to the appropriate spell script (but again, you'd need to put your wrapper script in ABI_). It depends on what exactly you're trying to achieve.
#5
Posté 17 juillet 2010 - 12:29
FergusM, your explanation was most helpful. Many thanks.
The spell addition example on the wiki defines the const int within the Full_Heal script without mentioning the 2da_constants._h.nss definitions.
Now I'm wishing for a WeiDU equivalent for Dragon Age to allow for prepending/appending all the campaign files (currently looking at a least two) without making them unusable for other modders.
As it is, it looks like it may be more prudent to simply make a custom script and define the Constant within the script. Still doesn't solve the issue of having to modify ABI_Base though. Am I missing some technique that others are using to keep their mods compatible (perhaps this M2DA you speak of)?
Thanks,
The spell addition example on the wiki defines the const int within the Full_Heal script without mentioning the 2da_constants._h.nss definitions.
Now I'm wishing for a WeiDU equivalent for Dragon Age to allow for prepending/appending all the campaign files (currently looking at a least two) without making them unusable for other modders.
As it is, it looks like it may be more prudent to simply make a custom script and define the Constant within the script. Still doesn't solve the issue of having to modify ABI_Base though. Am I missing some technique that others are using to keep their mods compatible (perhaps this M2DA you speak of)?
Thanks,
Modifié par cirerrek, 17 juillet 2010 - 12:31 .
#6
Posté 17 juillet 2010 - 10:19
That would probably be the better approach, I don't think any appending is possible.
M2DAs, there is an article on the wiki if you want to look into it. But to give you a basic rundown:
M2DAs: "Multiple 2 Dimensional Arrays" are a way of gluing a bunch of 2DAs together when the game runs. The game gets all the M2DAs with a common prefix (e.g. ABI_) and sticks them together. As long as the IDs you use do not conflict with those used by another mod, the game should be able to load everyone's M2DAs/rows.
1) Copy a 2DA. Or rather, copy the first few rows with all the column labels and what not. Delete all the actual data out of it.
2) Add a row like you would in the 2DA. If you use an ID not used in the original 2DA, the game will append your row to the end of the existing one. If you use an existing ID, it will overwrite the existing row.
3) Change the name of the worksheet, adding a suffix on the end. e.g. ABI_Base_mine. Technically, in this case, you can just use 'ABI_mine', but the convention is kind of inconsistent for some 2DAs, and I've found it safest to just keep the full original worksheet name.
4) Convert it to a .gda and place it in your module override folder. I'm not completely sure yet on how the game resolves conflicts etc., particularly if you're editing single player, but your module override folder should be the safest place. If it doesn't work, try your addin's core override folder, but I think in this case the module folder will be fine.
M2DAs, there is an article on the wiki if you want to look into it. But to give you a basic rundown:
M2DAs: "Multiple 2 Dimensional Arrays" are a way of gluing a bunch of 2DAs together when the game runs. The game gets all the M2DAs with a common prefix (e.g. ABI_) and sticks them together. As long as the IDs you use do not conflict with those used by another mod, the game should be able to load everyone's M2DAs/rows.
1) Copy a 2DA. Or rather, copy the first few rows with all the column labels and what not. Delete all the actual data out of it.
2) Add a row like you would in the 2DA. If you use an ID not used in the original 2DA, the game will append your row to the end of the existing one. If you use an existing ID, it will overwrite the existing row.
3) Change the name of the worksheet, adding a suffix on the end. e.g. ABI_Base_mine. Technically, in this case, you can just use 'ABI_mine', but the convention is kind of inconsistent for some 2DAs, and I've found it safest to just keep the full original worksheet name.
4) Convert it to a .gda and place it in your module override folder. I'm not completely sure yet on how the game resolves conflicts etc., particularly if you're editing single player, but your module override folder should be the safest place. If it doesn't work, try your addin's core override folder, but I think in this case the module folder will be fine.
#7
Posté 17 juillet 2010 - 10:49
cirerrek wrote...
Thanks ladydesire! Forgive me if I'm asking silly questions, I've dabbled at modding with some other games, but I'm a neophyte when it comes to dragon age.ladydesire wrote...
Right click on any script you want to modify and select the duplicate option from the pop-up menu. Give the new file a prefix (mine use either ld_ or prc_) with the default name of the script.
Wouldn't you need to point all the ablities in ABI_Base.gda that use that particular script to the new script name?
No; this way, the game only uses your specific added spells without impacting any mods that the end user might be using that alter Bioware spells and abilities.
#8
Posté 18 juillet 2010 - 12:29
I may have been a bit unclear on that point. If you just want to add a new ability, it's safest to simply write a new spell script (based off the existing one) and point your ability's row (in your M2DA) to your spell script. So you won't touch the spellscripts or 2DA rows for existing abilities at all.
#9
Posté 18 juillet 2010 - 06:36





Retour en haut






