Aller au contenu

Photo

Creating new Strings?


  • Veuillez vous connecter pour répondre
6 réponses à ce sujet

#1
Kesaru

Kesaru
  • Members
  • 130 messages
I need to make some new name and description strings for some spells in a mod I'm working on, but I'm having issues getting them to work.
I've looked over the other major threads and tutorials covering this, but they can't help me.
I'm confident I know what the problem is; the string IDs being generated by the toolset are too long. They're all 9 digits, when a few sources have stated they can't go over 7.
One or two sources have said that you have to change these auto-generated IDs manually, but I can't find any option to do that.

In case I'm wrong, here's the whole issue.
I'm currently trying to replace the description for an ability in ABI_base.
I converted it into a GDA , them used GDApp to alter it in that state.
I have a custom module open in the toolset, and opened the String Editor. I inserted a new string (I had to do this under the "Single Player" String Table, since it refuses to list my custom module as an option).
I then edited it to be listed under "Talent" and set my custom module as the Owner Module, and added the description.
I then selected Tools > Export > Export Talk Table.
I then opened my module's folder inside AddIns and took out the exported Talk Table, and placed it inside my module's folder in Override.
Then, I went into Override > Toolsetexport and deleted the Core Talk Table generated.
Finally, I opened ABI_base_arcanearts.gda and changed the description ID on the ability to the one listed in the String Editor.
When I go in-game, the ability has no description at all.

Finally, if it matters, the ability I'm trying to alter at the moment is a copied monster one used by a shapeshifter form. The original description it used does work fine.
I'm using toolset version 1.0.1.008

---Edit---
I figured out how to change the string ID's given, but using a seven digit ID didn't help (74xxxxx).
If anyone's wondering, you have to go into Manage Modules > Properties and change the StringIDBegin and StringIDEnd properties.
It also seems you can only alter strings whose digits fall between those two numbers, which is probably how you can alter existing strings.

Modifié par Kesaru, 18 mars 2010 - 10:37 .


#2
Kesaru

Kesaru
  • Members
  • 130 messages
I accidentally put this in General Discussion instead of Custom Content. Any chance this could be moved?

#3
Proleric

Proleric
  • Members
  • 2 362 messages
As you imply, normally the safest option is to make a new string in your module, and point the 2DA at it. However, there does seem to be a specific issue with ABI_base, so you do have to do something more dangerous.

As a quick-and-dirty solution, you can change your module properties temporarily, to force the string editor to make the string ids you want.

Back up your module first. Make a careful note of the three string id properties.

Now change the properties. The first just needs to be a number less than the target. The second must be exactly one less than the target. The final one needs to be greater than the target.

Add the string in the string editor.

Restore your original module properties.

#4
Kesaru

Kesaru
  • Members
  • 130 messages
So with ABI_base, the ID numbers really do have to be below a certain threshold?
Do you know what the limit is? I already did what you suggested and dropped them down to 7482466-7492466 and it didn't fix it.
I think the usual for ABI_base is <500,000, but I'll be in some real crap if that's the case here; the game uses all the way up to 440,000, and that's just what I've seen.

-Edit-
All right, it looks like my talk table isn't getting exported correctly. I did some tests by adding this line to a spell's script;
DisplayFloatyMessage(stEvent.oCaster, GetStringByStringId(stringID), FLOATY_MESSAGE, 10040064, 5.0);

When I set stringID to an existing core string for an ability's name, it shows the name perfectly upon activating the ability.
When I change stringID to the string for an ability's name that I created myself, it doesn't show up.

I fixed that minor issue of my module not having it's own talk table a while ago, so here's what my export process looks like now:


I open the String Editor, select Insert String, set the new string to
the table and ownership of my custom module using the strings, set the
type to Spell, and fill out the description then select OK.

I then select Tools > Export > Talk Table.

Then I go into Addins > Arcane_Arts (my module) > Module >
Override > Toolsetexport to find Arcane_Arts_en-us.tlk and move it to
Packages > Core > Override > Arcane_Arts (the same place I
have ABI_base stored).

Modifié par Kesaru, 19 mars 2010 - 06:11 .


#5
Kesaru

Kesaru
  • Members
  • 130 messages
Ha, I figured it out!
You have to manually add a c to the talk table at the end of the module name, for example "Arcane_Arts_c_en-us.tlk.

Modifié par Kesaru, 19 mars 2010 - 07:11 .


#6
Proleric

Proleric
  • Members
  • 2 362 messages
Here's the documentation of the ABI_base bug.

#7
Kesaru

Kesaru
  • Members
  • 130 messages
God I hate talk tables... I'm working on a new mod that requires them, and this issue is back all over again.
I made sure the string IDs were only 7 digits (8193523+).
When I exported them it properly created both the normal and C versions. I tried both leaving them where they exported and copying them to the module Override folder.
The strings are all set to have my module as the owner, and I've installed my module into the game.

I don't know why this isn't working again...
And here's something really odd. I also exported a description and name for the mod as strings, and those things work. But not the voice set name strings. (the voices work fine, but the names are invisible)


-Edit- Ok, wow that is messed up. I tried replicating my old method more accurately by actually deleting the c file, then giving it's name to the non-c one, and suddenly it worked.

Modifié par Kesaru, 27 juillet 2010 - 12:35 .