Printable Version of Topic
Click here to view this topic in its original format
Zoo Admin Forums > Designer Staff Discussion > dll files

Posted by: casey Dec. 2 2003, 02:52 PM
I am starting this thread to address dll files. We have several members using them regularly.

There are several important issues, when working with dll files.

1. Rumour has that ZT can handle up to about 50 dll files. So, creating several larger dll files will be useful.
2. Every string ID can be used only once. After that objects will start interfering with each other. It is therefore important
that we use all available strings as efficiently as possible.
3. Each string ID can be included in one and only one dll file. When a string ID is included in more than one dll file, it will
crash the game for some users (mostly windows X P).

It is therefore, important that all users of dll files are very disciplined: Reserve your string IDs in the thread in the APE, buildings forum, and report string IDs used in completed projects. Lack of discipline will create a lot of extra programming.

I use reshacker. It suits my needs, and it is free.

Feel free to add to this thread, when you want to make a contribution.

Posted by: casey Dec. 2 2003, 03:15 PM
1. Creating new strings for your project.

I have provided several designers with a dll file for their projects. In this post, I will explain how you can modify them.

In windows Explorer, make a copy of the received dll file, e.g. you received lang-mybuilding.dll.
Make a copy and rename it to lang-yourbuilding.dll

Open Reshacker. Open the file lang-project.dll. Click on View>Expand tree.
You will see a folder called "string table" and at least one folder with a number such as "551". You will also see at least one green 'flower' with the number 1033 (this is the language code for English).

Click on the flower, and you will see a string table. You can only edit anything between the '{' and '}'. such as
8670, "My building"
I have used 8670 for 'my building'. Now I want to create a new dll file for 'your building'
You can edit the string table like any text editor.

I can copy the text. I will look like this
8670, "My building"
8670, "My building"

Now edit the text
8670, "My building"
8671, "Your building"

Then delete the text for 8670:
8670, " " This is a no no, you are still using string ID 8670. Only the text is gone
8671, "Your building"

After deleting properly, it should look like this
8671, "Your building"

Then click "compile script", and >File>save.
When you have an error in the script, red text will appear at the bottom of the screen explaining the error. My most common errors are: forgetting one or more hashes " or commas. Each block has a range of 16 string IDs only. You cannot enter any value outside this range.

Next go to windows Explorer. You will see that reshacker has created a file lang-yourbuilding_original.dll. Remove this file from the ZT directory. It will interfere with the lang-yourbuilding.dll.

Posted by: flamethrower Jan. 26 2004, 06:33 PM
Not sure where to post this but it's mainly on dlls and buildings sooo . . . Here it goes:

Is it possible to use the same name and string on multiple buildings? If so, what would you then put as the id in the freeform folder?

Posted by: casey Jan. 27 2004, 03:25 PM

cNameID= has to be unique for each building. When it is used for more than one building they will overwrite each other,
and you will see only one of them
cHelpID= could be used for more than one building. This has not been done, because the wording rarely suits more
than one building.
cGuestThought= can be used for more than one building, as long as it is suitable.

Posted by: casey Jan. 28 2004, 01:14 PM
Attention users of string IDs. Bigcatkeeper and I have identified some of the programming in ZT regarding the use of strings. ZT contains several automatic jumps that we should exploit. We have not done so yet.

From now on, please use the strings and programming as follows:
for example
cNameID=8000 place the text in string 8000
cHelpID=8000 place the text in string 38,000 (8,000+30,000)
cGuestThought=63,000 place the text in string 63,000 (8,000+55,000). This was used for the "the buildingname" string
this string seems to have no apparent use in ZT, and we can use it for guest thoughts

for items:
cNameID= 8000
place the text for the tool tp in string 38,000 (8,000+30,000). You will not program this number anywhere, but it should show up.
Consumedthought= 63,000 (8,000+55,000)

This does not work for all strings, but there are large blocks available that work like this. We will use these.

If you need any blocks to work with this, please let me know.

Posted by: flamethrower Jan. 28 2004, 02:57 PM
I don't really get it. So from now on, we just use the same string over and over again?

Posted by: casey Jan. 28 2004, 09:56 PM
No rather than using the following programming and strings:


It would work as in the official objects

cHelpID=8790 (actual text in string 38790)

I do not want to change the programming and strings for downloads that have been released. I am suggesting that we use this for new downloads. This is an opportunity to add a text for the tool tip to the current downloads, that use the same stringID for cNameID and cHelpID (there is no other change or programming required). I have done this for the RCT buildings from Eagle One. I am attaching an updated langZA01.dll for those who want to play around to see how it works.

Posted by: casey Jan. 29 2004, 07:34 AM
Jay of ZKL suggest the stringID+55,000 series could be used by the zookeeper. I checked this, and his suggestion seems to be correct. The zookeeper is using this string for "animal # does not like "the building".

I guess that we have to look for other IDs for guest thoughts. One alternative would be to use a series of three strings,
like 8,000, 38,000 and 63,000 for guest thoughts

Posted by: casey Jan. 29 2004, 10:51 PM
Attached zip file contains a dll file, that contains the information for all official downloads (lang001.dll to lang021.dll)

The file yeti01 updates the location of the yeti (this update was also posted on JBSP ZT) and the yeti now also uses the string ID. The yeti no longer appears in the animal tab for scenarios, when it is locked.

Could someone test it and let me know if you noticed any errors? Thanks

Posted by: casey Jan. 29 2004, 11:06 PM
Attached is the updated langZA01.dll for testing.

I inserted the "the " strings for all downloads and the tool tip for some buildings. The zookeeper will now say that "polar bear 1 does not like the small burrow"

Posted by: Aussie Koala Jan. 30 2004, 12:02 AM
Thanks for doing this Casey.
I guess we have to remove all old dll's first? Well at least all official and ZA ones?

Posted by: casey Jan. 30 2004, 10:47 AM
Yes, you can remove all dll files mentioned in the text file from your directory. Note, that there will be no problems, if you do not remove them.

ZT has a rather low limit for number of dll files, and some enthusiasts have already reached this limit. These larger dll files should address that problem, and make space for new dll files.

If there are no problems reported here, I suggest that we make these files available to the members. In what section should I post these files?

I see no need to replace the dll files that are currently included with the downloads. So, this addition will take on effort from the admin and the designers.

Posted by: Aussie Koala Feb. 1 2004, 02:05 AM
I think the utilites section perhaps would be good place to put them.

sorry i have not tested them yet, on my list of things to do next smile.gif

Posted by: casey Feb. 1 2004, 01:29 PM
I would appreciate it if all designers using strings, could verify that I did not miss any IDs, and included the latest text for their downloads. Please post your response in this thread or send me a pm.

I would like to address all issues before, we post this file.


Posted by: flamethrower Feb. 1 2004, 05:29 PM
Well, I'm going to update the Transportation Mini Exp quite a few times, so I suggest you keep those ids out of the dll until I've gotten the final thoughts etc.

Powered by Invision Power Board (
© Invision Power Services (