Jump to content
  • Member Statistics

    • Total Members
      1,239
    • Most Online
      799

    Punki MeT
    Newest Member
    Punki MeT
    Joined
  • Who's Online (See full list)

    • HeatherL
    • Goosifer
    • (Designer)HENDRIX

String values in Scenarios


Apodemus

Recommended Posts

Hi, has anyone tried making custom scenarios? I am trying my hand at it and a problem I'm facing is how some string values are passed to the scenario. Like the name of the scenario.

 

Name and a few other string values like start text and win text use ids. However when I search for these IDs I can't find them. I fear these are located in a DLL.

 

Is it possible to reference a string in the scn file itself or another editable file?

 

 

Link to comment
Share on other sites

ZA made custom scenarios and there a couple of unreleased ones around

You would need to reserve the ids over at ZKL as Jay maintains the only complete list. The old list or lists that are here at Tek are well and truly out of date. 

Also you would need to check with him whether sets are needed or single ids as there are rules to the way they should be used so as to not adversely affect the game.

  • Love 1
Link to comment
Share on other sites

From Jay


As fern mentioned, I maintain a list of ".dll" IDs. This is a form of tracking, to help point out if there are conflicts. I also try to point out if things can be done more efficiently. That is especially important for ".dll" IDs, since there is a finite number that can be used. But I do not assign IDs. The topic at ZKL to reserve IDs has been the central location for many years to allow other designers know what IDs are intended to be used, so that designers do not cause conflicts.

There are two types of text that can be in ".dll" files. One type is called STRINGTABLE. This assigns a text string with a number in the range of 0 to 65535, which we call a ".dll" ID. The name of a scenario would be this type. Depending on the scenario, other ".dll" IDs might be needed as well. The other type of text is called a TEXT block. This assigns a block of text with a text name. Including one's initials or name in the text name should help prevent conflicts with other designers. TEXT blocks are used for a scenario's start text, win text, and lose text. Depending on the scenario, other TEXT blocks might be needed as well.

I have not created scenarios or experimented with their configuration. So I do not know if it is possible to reference a string in the scn file itself or another editable file. If it can be done, it is undocumented. But I suspect it cannot be done, since I suspect that capability would have been documented with the other scenario information.

As for an overview of creating scenarios, here are copies of notes I made in 2012 and 2014:

from 2012: "A scenario involves lots of things. The ".scn" file will have rulea/ruleb/value/text lines that are triggers, which is a very small part of a scenario. Typically a scenario will have at least a hundred lines in its ".scn" file. A scenario has to have a story, including what happens on success and what happens on failure. The number in a "name=" line of a scenario ".scn" file is put inside a ".dll" file with the name of the scenario. In addition to the scenario name, the ".dll" will have 4 text blocks containing parts of the story. It has to be decided what economy, research, marketing, awards, and time based unlocks will be used for the scenario. It has to be decided what map will be used. And if the map is a new map, then a map image is needed for ZT's "select scenario" menu, and then a freeform ".scn", another ".dll" message, and another ".dll" text block should also be created so that the new map can also be used in ZT's "select freeform" menu. Based on the map, one has to decide on the background sound and ambient birds to use. Things like starting cash value and maximum time to complete the scenario must also be decided. Depending on the story, other things might be needed in the ".dll" file and new ".cfg" files might also be needed."

from 2014: "When a scenario is created, a picture of the map is needed for the scenario selection screen inside ZT. Zoot can be used to create a ZT image for that, instead of using ".tga". A scenario also needs a ".zoo", which is the same as a saved zoo. A scenario also has a ".scn" file, which configures the scenario. WordPad can be used to do that. Among other things, the ".scn" file says what goals have to be reached to consider the scenario won, as well as what needs to happen to consider the scenario lost. It might also have what awards are given for reaching certain goals. We are limited to the things we can use for goals, but the list is large. The comments inside scenario/example.scn in XPACK2\scenari6.ztd shows all of the things that can be used for goals. Some of these things only work in MM/CC, but if the ".zoo" is made in MM/CC then it does not matter. If the ".zoo" is created in the original ZT, then the things used for goals might want to be limited to those inside scenario/example/example.scn in scenario.ztd. A scenario will also have a ".cfg" file to say what ".scn" to use for the scenario. A scenario might also need other ".cfg" files if it has a different economy, marketing, or research than the standard scenarios. A scenario also uses IDs and TEXT blocks in a ".dll" file. Since I never experimented with scenarios, I don't know if it is possible to reuse IDs or TEXT blocks or to avoid using a ".dll".

Another thing about scenarios... If IDs are needed and cannot be reused, I feel there should be a compelling reason for the scenario. Anyone can already load a zoo and try to reach some goal without needing the game to say "you won". Zoo building contests at sites like Phoenix do not use scenarios to determine who won the contest."

  • Love 1
Link to comment
Share on other sites

  • 3 weeks later...
On 10/14/2022 at 10:30 AM, Fern said:

From Jay


As fern mentioned, I maintain a list of ".dll" IDs. This is a form of tracking, to help point out if there are conflicts. I also try to point out if things can be done more efficiently. That is especially important for ".dll" IDs, since there is a finite number that can be used. But I do not assign IDs. The topic at ZKL to reserve IDs has been the central location for many years to allow other designers know what IDs are intended to be used, so that designers do not cause conflicts.

There are two types of text that can be in ".dll" files. One type is called STRINGTABLE. This assigns a text string with a number in the range of 0 to 65535, which we call a ".dll" ID. The name of a scenario would be this type. Depending on the scenario, other ".dll" IDs might be needed as well. The other type of text is called a TEXT block. This assigns a block of text with a text name. Including one's initials or name in the text name should help prevent conflicts with other designers. TEXT blocks are used for a scenario's start text, win text, and lose text. Depending on the scenario, other TEXT blocks might be needed as well.

I have not created scenarios or experimented with their configuration. So I do not know if it is possible to reference a string in the scn file itself or another editable file. If it can be done, it is undocumented. But I suspect it cannot be done, since I suspect that capability would have been documented with the other scenario information.

As for an overview of creating scenarios, here are copies of notes I made in 2012 and 2014:

from 2012: "A scenario involves lots of things. The ".scn" file will have rulea/ruleb/value/text lines that are triggers, which is a very small part of a scenario. Typically a scenario will have at least a hundred lines in its ".scn" file. A scenario has to have a story, including what happens on success and what happens on failure. The number in a "name=" line of a scenario ".scn" file is put inside a ".dll" file with the name of the scenario. In addition to the scenario name, the ".dll" will have 4 text blocks containing parts of the story. It has to be decided what economy, research, marketing, awards, and time based unlocks will be used for the scenario. It has to be decided what map will be used. And if the map is a new map, then a map image is needed for ZT's "select scenario" menu, and then a freeform ".scn", another ".dll" message, and another ".dll" text block should also be created so that the new map can also be used in ZT's "select freeform" menu. Based on the map, one has to decide on the background sound and ambient birds to use. Things like starting cash value and maximum time to complete the scenario must also be decided. Depending on the story, other things might be needed in the ".dll" file and new ".cfg" files might also be needed."

from 2014: "When a scenario is created, a picture of the map is needed for the scenario selection screen inside ZT. Zoot can be used to create a ZT image for that, instead of using ".tga". A scenario also needs a ".zoo", which is the same as a saved zoo. A scenario also has a ".scn" file, which configures the scenario. WordPad can be used to do that. Among other things, the ".scn" file says what goals have to be reached to consider the scenario won, as well as what needs to happen to consider the scenario lost. It might also have what awards are given for reaching certain goals. We are limited to the things we can use for goals, but the list is large. The comments inside scenario/example.scn in XPACK2\scenari6.ztd shows all of the things that can be used for goals. Some of these things only work in MM/CC, but if the ".zoo" is made in MM/CC then it does not matter. If the ".zoo" is created in the original ZT, then the things used for goals might want to be limited to those inside scenario/example/example.scn in scenario.ztd. A scenario will also have a ".cfg" file to say what ".scn" to use for the scenario. A scenario might also need other ".cfg" files if it has a different economy, marketing, or research than the standard scenarios. A scenario also uses IDs and TEXT blocks in a ".dll" file. Since I never experimented with scenarios, I don't know if it is possible to reuse IDs or TEXT blocks or to avoid using a ".dll".

Another thing about scenarios... If IDs are needed and cannot be reused, I feel there should be a compelling reason for the scenario. Anyone can already load a zoo and try to reach some goal without needing the game to say "you won". Zoo building contests at sites like Phoenix do not use scenarios to determine who won the contest."

Is there a way I can contact Jay? I made an account on ZKL and I can't post or DM because it's a new account.

Link to comment
Share on other sites

You can contact Jay at the Download Directory if you are a member there. I will let him know about ZKL. Both sites have tight rules for new members cos of bots posting.

  • Love 1
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...