how can I add a cproped array into an item, using cfg file?
item id
{
...
cprop name XXXXX
...
}
what do i have to 'put' instead of XXXXX ?
and for dictionaries ?
cprop on cfg files
Moderator: POL Developer
Actually I don't know if it's the official way or even a sensible way, but if I want to store an integer onto an itemdesc item I do this:
But of course, you would only want to do this if this value is likely to change. For a constant, better to create a property in itemdesc:
skillreq 101
and then use some cfg file functions to read it.
The cprop name of skillreq has an integer value of 101. The i means the value is integer.CProp skillreq i101
But of course, you would only want to do this if this value is likely to change. For a constant, better to create a property in itemdesc:
skillreq 101
and then use some cfg file functions to read it.
I took a moment to search through the items.txt file in \pol\data to see how the system represents arrays as CProps.
Here are a couple examples I found. Please remember that syntax is very important when manually placing arrays as CProps.
Example number 1:
CProp Children a3:i1816821i1816232i1816715
This is an array of of three (3) integers. Note the a3: indicating the size of the array and the corresponding three integers eache delimited (seperated) by an 'i'.
Example number 2:
CProp Junk a3:S6:ActiveS6:ActiveS6:Active
This is an array of three (3) strings. Note the a3: followed by the three strings defined by the 'S'. The number after each 'S' is the length of the string it is defining, ie. S6:Active - the word 'Active' is six characters long.
I hope this is helpful.
Here are a couple examples I found. Please remember that syntax is very important when manually placing arrays as CProps.
Example number 1:
CProp Children a3:i1816821i1816232i1816715
This is an array of of three (3) integers. Note the a3: indicating the size of the array and the corresponding three integers eache delimited (seperated) by an 'i'.
Example number 2:
CProp Junk a3:S6:ActiveS6:ActiveS6:Active
This is an array of three (3) strings. Note the a3: followed by the three strings defined by the 'S'. The number after each 'S' is the length of the string it is defining, ie. S6:Active - the word 'Active' is six characters long.
I hope this is helpful.
Unless you absolutely HAVE to, don't put CProps in cfg files. If the prop will never change, its better to just make a custom entry in the cfg because CProps coming from cfgs take up substantially more memory because it adds that CProp to every item thats made as opposed to just keeping it once as a reference in that file.
Re: cprop on cfg files
How do I create a dictionary with CPROP?
Re: cprop on cfg files
Here's an example of a Dictionary written out as a CProp:
The CProp name is %Resistances%
It's a dictionary with 5 entries - d5
The first entry is a string with a length of 4 bytes - S4
The string literal is 'Cold' with a real value of 0 - r0
The second entry follows immediately after as indicated by the S6 defining that string's length and so on until all 5 entries are defined.
I assume you were asking how to create a dictionary CProp manually. Naturally when you save a dictionary typed variable on an object using SetObjProperty the core handles all the formatting. As CWO noted above it is best whenever possible to avoid having CProps predefined in itemdesc.cfg files.
Code: Select all
CProp %Resistances% d5:S4:Coldr0S6:Energyr0S4:Firer0S8:Physicalr387S6:Poisonr0
It's a dictionary with 5 entries - d5
The first entry is a string with a length of 4 bytes - S4
The string literal is 'Cold' with a real value of 0 - r0
The second entry follows immediately after as indicated by the S6 defining that string's length and so on until all 5 entries are defined.
I assume you were asking how to create a dictionary CProp manually. Naturally when you save a dictionary typed variable on an object using SetObjProperty the core handles all the formatting. As CWO noted above it is best whenever possible to avoid having CProps predefined in itemdesc.cfg files.
Re: cprop on cfg files
Thanks a lot!