Creating your own item properties
#1
Posté 13 décembre 2009 - 10:15
How do I create my own item properties?
I imagine it's done by editing and/or adding lines on some of the .xls but all the names and numbers in there aren't exactly descriptive, so I really don't know how to start.
I haven't found tutorials or articles that talk about this, so after a few hours of staring at the screen I just broke down and came here to ask for help.
#2
Posté 13 décembre 2009 - 10:38
#3
Posté 13 décembre 2009 - 10:57
Even then, if you do add them (look on the Wiki for how to modify 2da files and make GDA's from them), they won't really do anything unless you put some code.
There might be an easier way to do what you want? Maybe, like Craig said, you can elaborate a little.
#4
Posté 13 décembre 2009 - 05:36
I read this post long ago:
http://social.biowar.../8/index/157069
The method described there works, but if you disable the Blood Dragon armor DLC then the new properties stop working. This is not acceptable, as I want my mod to be standalone (plus it feels like cheating :innocent:).
#5
Posté 13 décembre 2009 - 09:06
Basically I was looking into adding a "Block Chance: x%" description to the tooltip of shields. Right now I have a floaty show up over the user when he/she equips the shield, but adding it to the tooltip itself would be a lot nicer.
Is this along the lines of what you want to achieve as well? Will be waiting for an answer here
#6
Posté 13 décembre 2009 - 10:20
From looking at the 2da files, there are at least 3 files involved here, one of which you will have to modify.
itemprps.xls - These are the properties that appear on the item.
properties.xls - These are the base properties that make up creatures.
effects.xls - These are the effects that get run in the game.
What you want to do i smodify the itemprps.xls and add a new entry to it. I'm a little fuzzy on exactly what goes into here bit this is my guess going from left to right:
ID = number to reference the property by.
Label = I know this appears in the toolset, not sure about in the game. It's a name for the prop.
NameStrId = This looks like a reference to a string id for the prop, probably what gets put on equipment.
IPType = I assume 1 means on the equipper, 2 means on the item itself.
Effect = Easy. Reference to the row in the effects.2da for the effect that this prop applies.
int0 = Brilliantly named column that appears to be an argument to the effect. For most of these, it's the row id in the properties.xls (EG: Effect 1012 -> modify pc's stats effect, int0 1-> Strength)
int1 = Assume it's another argument. Most item properties don't use it.
float0 = Appears to be the scaling, ergo a "3" in here means 3 pts of effect for every 1 point of power assigned.
float1 = No idea.
ConditionScript = Appears to be a script that is run when attempting to equip/use an item with this prop.
VFX = visual fx reference??
ScalingVector = No idea, maybe some type of casting for mathematic operations?
BaseCost = no clue... maybe it adds coin value to the item??
IsNegative = Seems self explanatory...
ProcChance = Chance for effect to go off perhaps? It's a float so "1" probably means 100%, "0.5" means 50%, etc.
BaseDuration = No idea really, assume it's seconds inbetween some sort of reoccuring effect? Or length it lasts ?
ProjectileCrust = Cheesy or Garlic? Honestly I have no clue.
AbilityId = Probably a reference to an ability that gets activated when item is used or something!
So anyway, it appears that what you want to do if you want to replicate a +Health setting or something is to make a new item prop, have it use the 1012 effect and point the effect id at the appropriate line in properties.xls (I believe the ID for health is 7).
Mana/Stamina are the same stat in the engine, so this is even easier. I think you would just copy the increase stamina entry and then change the description on the item attribute (Not sure where this is stored however, maybe someone else is).
good luck
#7
Posté 14 décembre 2009 - 02:12
Some clarifications/corrections:
- Projectile crust is a reference to VFX_base for a visual effect attached to a projectile with this item propery.
- Base cost is the coin value added to the item for each point of item property power.
- IPType - 1=effect, 2=onhit, 3=restriction, 4=special
- VFX is the visual effect to add to an equipped weapon with this property
- Int0, Int1, Float0, and Float1 have different purposes depending on the type of effect.On-hit effects parameters are implemented in ItemProp_DoEffect in sys_itemprops_h.nss. Standard item properties (IPType 1) reference properties found in properties.xls,
- AbilityId is the ability which gets fired for on-hit effects
- For on-use properties, add a new ability in an extension to ABI_base.xls with abilitytype 4 (item ability) then assign it to the item under Activated Ability
#8
Posté 14 décembre 2009 - 02:23
Or even better - can you verify the data in the table on this wiki page I just created:
Item properties
Modifié par JJM152, 14 décembre 2009 - 03:01 .
#9
Posté 14 décembre 2009 - 08:20
For reference, this is how the itemprps_promome.gda (where the new item properties are stored) looks like:
#10
Posté 15 décembre 2009 - 06:58
#11
Posté 15 décembre 2009 - 11:03
All the strings are stored in talktables and not in the 2DA files.
These strings are in the .tlk files found in the talktables folder(s).
Of course a bunch of these (the main ones) are in the core and single player data, but mods with custom item properties seem to package their own talktable files that include their cutom strings and their string IDs with them.
You can see what the actual script is by using the String Editor in toolset. (found under tools menu).
If you open the string editor, put the number found in NameStrId in the ID field enter, the string editor will bring up the string accosicated with that ID.
For example putting 380410 in the Sting ID field in the string editor of the toolset will bring up the tooltip for +strength item properties.
How to get this to work with custom properties? Now I took a look at the blood dragon addon, which adds the custom property -fatigue through itemprps_promome.xls and that custom item property references a string ID of 428146. This string does not exist int he core game and typing it into the string editor will bring nothing.
In the addon, this string is found in:
dao_prc_promo_me\\\\module\\\\data\\\\talktables\\\\dao_prc_promo_me_en-us.tlk (for the english game).
It is NOT under the core\\\\data\\\\talktables hierarchy but under the module\\\\data\\\\talktables
If you open this file with the toolset, you can see another array that contains all the custom strings of the addon, including sting ID 428146 which references -fatigue.
This is also the reason cachx is not seeing the description for -fatigue even though the effect is there. His addon has the itemprps gda that enables the fatigue property itself but not the tlk file in the appropriate talktable folder.
You can create custom tlk files by using the script editor, selecting your addon module, right clicking in the script window and inserting a new script, filling up the fields. The toolset gives it a String ID automatically which you then need to put into the NameStrID field of your mods itemprps.
Modifié par kskh2o, 15 décembre 2009 - 11:04 .
#12
Posté 16 décembre 2009 - 04:32
Thank you! that was the only little piece of information I was missing. With all the info it was pretty trivial to create my own +mana stat as well, tho it seems that to DAO, mana and stamina are the same thing ( same property number: 8 ), but I never realized that before due to item restrictions and the wordings on item tooltips.You can create custom tlk files by using the script editor, selecting your addon module, right clicking in the script window and inserting a new script, filling up the fields. The toolset gives it a String ID automatically which you then need to put into the NameStrID field of your mods itemprps.

NOTE: After writing the strings on the Toolset's String editor you have to export the talk tables or it won't work (Tools->Export->Export Talk Tables). I was struggling for a few minutes before I thought of that
Now I'll see what else I can create next...
#13
Posté 16 décembre 2009 - 07:20
#14
Posté 16 décembre 2009 - 08:39
I was looking at the 'Increase All Attributes' property, in hopes of finding out how to make a property that boosts several other propertys at once.
The number on the Int0 column was -1000 , and I can't find that number referenced on any of the .xls I have been using so far.
Where can I find more info about this property in particular?
#15
Posté 17 décembre 2009 - 03:26
#16
Posté 19 décembre 2009 - 03:07
I have been trying making some modifications on those files but I have gotten no results thus far.I must be missing something else.
It would be easier to figure it out with some kind of "search string in all files on directory X".
#17
Posté 27 décembre 2009 - 06:27
So I have been editing both effect_modify_attribute_h and effect_modify_property_h with no results at all. Both of these are used in effects_h which I have been looking also.
Just to test, I commented every line in both files and exported them. To my surprise +1 to all attributes still works.
That means that a) DAO is completely ignoring the changes I make on these files. Or
So I'm a bit lost right now. Help?
#18
Posté 27 décembre 2009 - 08:16
cachx wrote...
Thank you! that was the only little piece of information I was missing. With all the info it was pretty trivial to create my own +mana stat as well, tho it seems that to DAO, mana and stamina are the same thing ( same property number: 8 ), but I never realized that before due to item restrictions and the wordings on item tooltips.You can create custom tlk files by using the script editor, selecting your addon module, right clicking in the script window and inserting a new script, filling up the fields. The toolset gives it a String ID automatically which you then need to put into the NameStrID field of your mods itemprps.
NOTE: After writing the strings on the Toolset's String editor you have to export the talk tables or it won't work (Tools->Export->Export Talk Tables). I was struggling for a few minutes before I thought of that![]()
Now I'll see what else I can create next...
This thread is marvelously informative (for me at least as I also want to create items with specific qualities)!
Having said that, are you sure that apart from the toolset descriptions the stamina and mana attributes, refer to the same thing IN GAME? Or does that apply for further reference on the Toolset Properties?
So that if an Arcane Warrior were to wear an Armor giving +25 Stamina, would it actually give him +25 Mana?
Modifié par Smitridel, 27 décembre 2009 - 08:18 .
#19
Posté 28 décembre 2009 - 03:19
Smitridel wrote...
So that if an Arcane Warrior were to wear an Armor giving +25 Stamina, would it actually give him +25 Mana?
Yup, I tested this in my own Arcane Warrior.
So no one knows about the "all in one" properties? I have pretty much giving up with this as it seems DAO just ignores my changes...
#20
Posté 30 décembre 2009 - 10:28
cachx wrote...
Bump...
So I have been editing both effect_modify_attribute_h and effect_modify_property_h with no results at all. Both of these are used in effects_h which I have been looking also.
Just to test, I commented every line in both files and exported them. To my surprise +1 to all attributes still works.
That means that a) DAO is completely ignoring the changes I make on these files. OrThese files have nothing to do with the +1 all attributes property.
So I'm a bit lost right now. Help?
That's because *_h file are NEVER executed. They aren't even real "header" files as in actual C code.
The toolset even can't compile them because it doesn't understand the _h suffix (unless you temporarily add "void main(){}" to the file and remove it before checkin in)
That said, how DO they work?
Take this script "mytest"
#include "mytest_h"
void main()
{
do_test();
}
When compiling/exporting, what the toolset actually does is COPY/PASTE the entire contents of "mytest_h" INTO "mytest" and THEN compiling "mytest"
IT NEVER COMPILES THE _H on itself for use in the game....
This means that whenever you change a *_h file, you need to re-export ALL FILES THAT USE THE _h FILE
This sux, and I leads to many "this **** isn't working" frustation, been there, done that ;-)
On a side note: DO NOT override effects_h, there are better ways to mod
#21
Posté 31 décembre 2009 - 06:35
Innodil Ath Nathosh wrote...
That's because *_h file are NEVER executed. They aren't even real "header" files as in actual C code.
The toolset even can't compile them because it doesn't understand the _h suffix (unless you temporarily add "void main(){}" to the file and remove it before checkin in)
Well thank you for that very important vital piece of information that no one in Bioware thought it was worth mentioning ¬¬
On a side note: DO NOT override effects_h, there are better ways to mod
I do not want to touch any 'core' files, but how do I go about doing that? those _h files were my only lead to get what I wanted.
#22
Posté 31 décembre 2009 - 11:05
As for the "nice" way to do what you want: you need to define your own itemprps_mystuff.gda
and then just use it on your item... if you set the correct param in the 2DA file, it will work as expected (just copy/paste one that does almost what you need and adjust) You might also need to add a new effect to an effects 2DA and give that a custom effect script if you want to do more "fancy" stuff
I haven't added itemprps myself though so I can't give you any more specific help on this one... I am struggling with getting item abilities to work
Modifié par Innodil Ath Nathosh, 31 décembre 2009 - 11:07 .
#23
Posté 05 avril 2010 - 03:53
I just tried many ways. I find this thread to be very informative. However, I have a question regarding the last line in your statement here. I'm not sure where you would assign it to the item "under activated ability". I've opened the ABI_base, effects, itemprps, ability_effects, properties, etc. I haven't seen anywhere to point to the item or a column called activated ability.
Honestly, the simplest solution seemed at first to be to forget about haste, and point to effect "9" from itemprps , which is effectmovementspeed in the effects.xls, but that, when applied locked my character inplace when the robe was put on. In other words, she couldn't move at all. I tried messing with the float values and cranking up the power, but still nothing. So obviously, pointing to that affect does work but, I can't get it to function no matter what the float and power values are.
So then I tried, effect 1012 using integer 20, which according to the wiki is the movement speed modifier, well that didn't paralyze my character, but it also didn't do anything.
So now I'm back to haste to see if there is a way apply it to the item. I created m2da for the ABI_base, and m2da for the itemprps, but I can't figure out how to link the ABI_base to the item or to the itemprps.
Craig Graff wrote...
[*]For on-use properties, add a new ability in an extension to ABI_base.xls with abilitytype 4 (item ability) then assign it to the item under Activated Ability
[/list]
Modifié par mutantspicy, 05 avril 2010 - 03:58 .





Retour en haut







