Jump to content


Photo

Specifics.ids usage


  • Please log in to reply
20 replies to this topic

#1 Azkyroth

Azkyroth
  • Modder
  • 3496 posts

Posted 05 October 2007 - 10:36 PM

While browsing the IESDP I found the following information in their entry on the BG2 "specific.ids" file:

The file is extensible, and new entries can be added for example, adding 55 MYSPECIFIC will allow MYSPECIFIC to be used in scripts.


If I'm interpreting this correctly, it means that I could create a special entry (possibly two or three) for characters in Arkalian's mod that need to be handled in a slightly different way by certain spells and scripts. This would be enormously useful. However, I'm a bit concerned about possible compatibility issues, since while it would be simple to add an entry to specific.ids via the TP2, if another mod is already using that entry it might be overwritten, which could potentially cause problems. To aid me in selecting numbers for any specific.ids entries I add with Arkalian, if anyone knows of any mods that presently add new, custom specific.ids entries, I'd appreciate the names and, if possible, the numbers of the values they add.

(Note: question posted at SHS, G3, and PPG for maximum exposure.)

"Tyranny is a quiet thing at first, a prim and proper lady pursing her lips and shaking her head disapprovingly, asking, well what were you doing (wearing that dress, walking home at that hour, expressing those inappropriate thoughts) anyway? It's subtle and insidious, disguised as reasonable precautions which become more and more oppressive over time, until our lives are defined by the things we must avoid. She's easy enough to agree with, after all, she's only trying to help -- and yet she's one of the most dangerous influences we face, because if she prevails, it puts the raping, robbing, axe-wielding madmen of the world in complete control. Eventually they'll barely need to wield a thing, all they'll have to do is leer menacingly and we fall all over ourselves trying to placate them." -godlizard


#2 SConrad

SConrad

    I swear to drunk I'm not God

  • Administrator
  • 11148 posts

Posted 05 October 2007 - 11:09 PM

I can't answer the question about the .ids itself and don't know if it'll work or not, but about your worry of incompatibility, it should be possible to read the latest value added and add your own values after that (so if the last value is 55, your value will be 56).

Posted Image Khadion NPC mod - Team leader, head designer
Posted Image Hubelpot NPC mod - Team leader, coder
Posted Image NPC Damage - Coder
Posted Image PC Soundsets - Coder, voice actor
Posted Image Brythe NPC mod - Designer
Posted Image DragonLance TC - Glory of Istar - Designer
Posted Image The NPC Interaction Expansion Project - Writer for Cernd, Sarevok
Posted Image The Jerry Zinger Show - Producer

Iron Modder 5 - Winner


#3 Azkyroth

Azkyroth
  • Modder
  • 3496 posts

Posted 06 October 2007 - 12:15 AM

I can't answer the question about the .ids itself and don't know if it'll work or not, but about your worry of incompatibility, it should be possible to read the latest value added and add your own values after that (so if the last value is 55, your value will be 56).


Won't that require using a variable to patch every item or spell that refers to it? (The scripts should be fine, I realize...)

"Tyranny is a quiet thing at first, a prim and proper lady pursing her lips and shaking her head disapprovingly, asking, well what were you doing (wearing that dress, walking home at that hour, expressing those inappropriate thoughts) anyway? It's subtle and insidious, disguised as reasonable precautions which become more and more oppressive over time, until our lives are defined by the things we must avoid. She's easy enough to agree with, after all, she's only trying to help -- and yet she's one of the most dangerous influences we face, because if she prevails, it puts the raping, robbing, axe-wielding madmen of the world in complete control. Eventually they'll barely need to wield a thing, all they'll have to do is leer menacingly and we fall all over ourselves trying to placate them." -godlizard


#4 Gort

Gort
  • Validating
  • 614 posts

Posted 06 October 2007 - 12:24 AM

it won't

#5 Azkyroth

Azkyroth
  • Modder
  • 3496 posts

Posted 06 October 2007 - 12:45 AM

it won't


The "Use EFF file" opcode parameters refer to entry numbers, not entry text. How would I set it to make sure it uses the correct specific.ids reference unless I was either using a variable to patch it to use the right one, or a pre-established entry number?

"Tyranny is a quiet thing at first, a prim and proper lady pursing her lips and shaking her head disapprovingly, asking, well what were you doing (wearing that dress, walking home at that hour, expressing those inappropriate thoughts) anyway? It's subtle and insidious, disguised as reasonable precautions which become more and more oppressive over time, until our lives are defined by the things we must avoid. She's easy enough to agree with, after all, she's only trying to help -- and yet she's one of the most dangerous influences we face, because if she prevails, it puts the raping, robbing, axe-wielding madmen of the world in complete control. Eventually they'll barely need to wield a thing, all they'll have to do is leer menacingly and we fall all over ourselves trying to placate them." -godlizard


#6 Gort

Gort
  • Validating
  • 614 posts

Posted 06 October 2007 - 01:08 AM

I'm not sure I understand what are you saying. A creature has its own specific identifier. It it's the same as listed in .EFF file, the effect will be applied. If you don't change cre's identifier, nor effect, why would something else require fixing?

#7 Azkyroth

Azkyroth
  • Modder
  • 3496 posts

Posted 06 October 2007 - 01:16 AM

If I can make this work, there will be at least one creature in the modded game with a specific.ids identifier that is not found in the original game (presently it has like 3-4 entries; I'm not sure how many are actually used), which certain spells will have to be patched to apply an additional EFF file (which is not found in the original game either) to. The Use EFF file opcode that will have to be patched in will have to be able to correctly identify that new identifier and apply that extra EFF file if the spells so patched are used on the creature in question. The only ways I can see to make this work are to either decide on what the number of that new identifier will be beforehand, or use a variable to insert the correct value into the patches for those spells.

Edited by Azkyroth, 06 October 2007 - 01:20 AM.

"Tyranny is a quiet thing at first, a prim and proper lady pursing her lips and shaking her head disapprovingly, asking, well what were you doing (wearing that dress, walking home at that hour, expressing those inappropriate thoughts) anyway? It's subtle and insidious, disguised as reasonable precautions which become more and more oppressive over time, until our lives are defined by the things we must avoid. She's easy enough to agree with, after all, she's only trying to help -- and yet she's one of the most dangerous influences we face, because if she prevails, it puts the raping, robbing, axe-wielding madmen of the world in complete control. Eventually they'll barely need to wield a thing, all they'll have to do is leer menacingly and we fall all over ourselves trying to placate them." -godlizard


#8 SConrad

SConrad

    I swear to drunk I'm not God

  • Administrator
  • 11148 posts

Posted 06 October 2007 - 01:19 AM

I can't answer the question about the .ids itself and don't know if it'll work or not, but about your worry of incompatibility, it should be possible to read the latest value added and add your own values after that (so if the last value is 55, your value will be 56).


Won't that require using a variable to patch every item or spell that refers to it? (The scripts should be fine, I realize...)

If it requires an id, then yes, you might. But if you know what the value is (which you should if you're patching the .ids correctly), then it's no problem to use that value when patching the other files as well. :)

Posted Image Khadion NPC mod - Team leader, head designer
Posted Image Hubelpot NPC mod - Team leader, coder
Posted Image NPC Damage - Coder
Posted Image PC Soundsets - Coder, voice actor
Posted Image Brythe NPC mod - Designer
Posted Image DragonLance TC - Glory of Istar - Designer
Posted Image The NPC Interaction Expansion Project - Writer for Cernd, Sarevok
Posted Image The Jerry Zinger Show - Producer

Iron Modder 5 - Winner


#9 Gort

Gort
  • Validating
  • 614 posts

Posted 06 October 2007 - 01:20 AM

It won't require patching every spell that refers to specific .ids. But of course, spells that you want to alter have to be patched. What's the problem? use a variable

Edited by Gort, 06 October 2007 - 01:22 AM.


#10 Azkyroth

Azkyroth
  • Modder
  • 3496 posts

Posted 06 October 2007 - 01:22 AM

If it requires an id, then yes, you might. But if you know what the value is (which you should if you're patching the .ids correctly), then it's no problem to use that value when patching the other files as well. :)


Which is why I'm asking, because I want to do it that way, but I also want to make sure I don't overwrite anyone else's mod-added identifier in the process. Using a variable would work, but then I have to figure out how before proceeding, and it's not entirely obvious from the WeiDU.org readme how to approach that. O.o

"Tyranny is a quiet thing at first, a prim and proper lady pursing her lips and shaking her head disapprovingly, asking, well what were you doing (wearing that dress, walking home at that hour, expressing those inappropriate thoughts) anyway? It's subtle and insidious, disguised as reasonable precautions which become more and more oppressive over time, until our lives are defined by the things we must avoid. She's easy enough to agree with, after all, she's only trying to help -- and yet she's one of the most dangerous influences we face, because if she prevails, it puts the raping, robbing, axe-wielding madmen of the world in complete control. Eventually they'll barely need to wield a thing, all they'll have to do is leer menacingly and we fall all over ourselves trying to placate them." -godlizard


#11 Gort

Gort
  • Validating
  • 614 posts

Posted 06 October 2007 - 01:27 AM

edit: stupid post

Edited by Gort, 08 October 2007 - 02:02 AM.


#12 SConrad

SConrad

    I swear to drunk I'm not God

  • Administrator
  • 11148 posts

Posted 06 October 2007 - 01:30 AM

Here's the procedure:

1. Find out the last entry in specifics.ids.

2. Set a variable to be <entry> +1.

3. Use variable to append specifics.ids with your new specifics.

4. Use the same variable when patching other files.

As for how to do it... well, I could help you with the details of that, if you wish. :)

Posted Image Khadion NPC mod - Team leader, head designer
Posted Image Hubelpot NPC mod - Team leader, coder
Posted Image NPC Damage - Coder
Posted Image PC Soundsets - Coder, voice actor
Posted Image Brythe NPC mod - Designer
Posted Image DragonLance TC - Glory of Istar - Designer
Posted Image The NPC Interaction Expansion Project - Writer for Cernd, Sarevok
Posted Image The Jerry Zinger Show - Producer

Iron Modder 5 - Winner


#13 Azkyroth

Azkyroth
  • Modder
  • 3496 posts

Posted 06 October 2007 - 01:40 AM

Here's the procedure:

1. Find out the last entry in specifics.ids.

2. Set a variable to be <entry> +1.

3. Use variable to append specifics.ids with your new specifics.

4. Use the same variable when patching other files.

As for how to do it... well, I could help you with the details of that, if you wish. :)


There seems to be an additional complication in that the unmodded BG2 + TOB contains four entries in specific.ids, but the total set of creatures use about 30+ different specific.ids values (the weird ones all seem to be for TOB creatures, though). O.o So, using that method may result in Unintended Consequences. Maybe better to just find a value and stick with it.

"Tyranny is a quiet thing at first, a prim and proper lady pursing her lips and shaking her head disapprovingly, asking, well what were you doing (wearing that dress, walking home at that hour, expressing those inappropriate thoughts) anyway? It's subtle and insidious, disguised as reasonable precautions which become more and more oppressive over time, until our lives are defined by the things we must avoid. She's easy enough to agree with, after all, she's only trying to help -- and yet she's one of the most dangerous influences we face, because if she prevails, it puts the raping, robbing, axe-wielding madmen of the world in complete control. Eventually they'll barely need to wield a thing, all they'll have to do is leer menacingly and we fall all over ourselves trying to placate them." -godlizard


#14 Gort

Gort
  • Validating
  • 614 posts

Posted 06 October 2007 - 01:46 AM

you can just which values are already in use, take the greatest, see if it's greater then 102 and start with it if it is (+mod added enties amount, if there any)

Edited by Gort, 06 October 2007 - 01:49 AM.


#15 Azkyroth

Azkyroth
  • Modder
  • 3496 posts

Posted 06 October 2007 - 01:50 AM

you can just which values are already in use, take the greatest, see if it's greater then 102 and start with it if it is


I'm not sure that would work, though. The latest problems I've identified are that specific.ids consists of the following:

5
1 NORMAL
101 MAGIC
102 NO_MAGIC

Whereas there are creatures in the unmodded game with any of these values for specific.ids, 0 (unused, apparently; this is the vast majority), or any of the following: 111, 77, 8, 55, 66, 255, 99, 211, 77, 10...etc.

So, if the last actual ENTRY in a modded specific.ids is 54, or 65, or 110, etc. the next entry may be assigned to a specific.ids that other creatures in the game have. This may have very weird effects.

"Tyranny is a quiet thing at first, a prim and proper lady pursing her lips and shaking her head disapprovingly, asking, well what were you doing (wearing that dress, walking home at that hour, expressing those inappropriate thoughts) anyway? It's subtle and insidious, disguised as reasonable precautions which become more and more oppressive over time, until our lives are defined by the things we must avoid. She's easy enough to agree with, after all, she's only trying to help -- and yet she's one of the most dangerous influences we face, because if she prevails, it puts the raping, robbing, axe-wielding madmen of the world in complete control. Eventually they'll barely need to wield a thing, all they'll have to do is leer menacingly and we fall all over ourselves trying to placate them." -godlizard


#16 Gort

Gort
  • Validating
  • 614 posts

Posted 06 October 2007 - 01:55 AM

I mean, take the greatest number used in the game (255?), count rows, subtract 3 from it (original game count), add the result to the greatest number and that would be your variable. That's how I'd do that if I needed.

Edited by Gort, 06 October 2007 - 01:55 AM.


#17 SConrad

SConrad

    I swear to drunk I'm not God

  • Administrator
  • 11148 posts

Posted 06 October 2007 - 02:00 AM

I would advise testing. It's sometimes difficult to predict the exact effects - so just try and see how it goes. :)

Posted Image Khadion NPC mod - Team leader, head designer
Posted Image Hubelpot NPC mod - Team leader, coder
Posted Image NPC Damage - Coder
Posted Image PC Soundsets - Coder, voice actor
Posted Image Brythe NPC mod - Designer
Posted Image DragonLance TC - Glory of Istar - Designer
Posted Image The NPC Interaction Expansion Project - Writer for Cernd, Sarevok
Posted Image The Jerry Zinger Show - Producer

Iron Modder 5 - Winner


#18 Rabain

Rabain

    God

  • Member
  • 653 posts

Posted 06 October 2007 - 02:52 AM

I'm pretty sure it's possible to get a list of existing values from creature eff's using weidu.

I don't know how to do it but I'm sure it's possible!
A knight without armour in a savage land...

#19 Azkyroth

Azkyroth
  • Modder
  • 3496 posts

Posted 06 October 2007 - 02:54 AM

I'm pretty sure it's possible to get a list of existing values from creature eff's using weidu.

I don't know how to do it but I'm sure it's possible!


It's possibly to get a list of existing values from Near Infinity, too. There's just a lot to write down and work around in the TP2.

Unless someone tells me differently I'm going to go ahead and use 17 for the one I know I'll need, and add others as needed.

"Tyranny is a quiet thing at first, a prim and proper lady pursing her lips and shaking her head disapprovingly, asking, well what were you doing (wearing that dress, walking home at that hour, expressing those inappropriate thoughts) anyway? It's subtle and insidious, disguised as reasonable precautions which become more and more oppressive over time, until our lives are defined by the things we must avoid. She's easy enough to agree with, after all, she's only trying to help -- and yet she's one of the most dangerous influences we face, because if she prevails, it puts the raping, robbing, axe-wielding madmen of the world in complete control. Eventually they'll barely need to wield a thing, all they'll have to do is leer menacingly and we fall all over ourselves trying to placate them." -godlizard


#20 Rabain

Rabain

    God

  • Member
  • 653 posts

Posted 06 October 2007 - 03:11 AM

I meant weidu can output a list for you, so you don't have to do the hard work.

Instead of having to search and create your own list.
A knight without armour in a savage land...