If you have been designing or configuring something for ZT1 and need a question answered concerning those activities, please feel free to ask your question in this topic. Before you ask, though, please first try to find an answer to your question in one of the designer related topics either at this site or the related Zoo Tycoon Designer Guild site (http://www.ztcdd.org/DG/). Also, this area is for those that have already done designs or configuring for ZT1. So please do not ask questions on how you can get started designing or configuring.
I would have started a new thread, but I appear to be unable to do so. Anyway, I am having a bit of a problem that I am hoping someone can shed some light on.
I am trying to upload a new Zookeeper Recommendations photo for a wildcat I am working on in Zoot. When I first tried to upload the image, I got a "too many colors" error message and checked the Readme to discover that uploaded images need to be 256 colors or less. I reduced the colors in the image to 256 in an image editing program (Gimp) and the image uploaded, but now there are white pixels randomly distributed across the image. What did I do wrong? The image looks normal outside of Zoot, so this is something Zoot is doing when I upload the image. Does it have something to do with the .pal file not matching the image? I tried loading the .pal file for the Zookeeper Recommendations image into Gimp, but it wouldn't let me. Can I create a new .pal file for the image I am trying to upload? Would that help?
Thanks,
Max
Welcome to ZTCDD. :bye
When Zoot converts the ".png" to a ZT image, it also creates the ".pal" file, so it would match the image. It is possible you used dithering when reducing the colors in GIMP. Or it is possible you did not set the top leftmost pixel to a unique color after all GIMP work was complete, since GIMP often changes it to black. Here are the steps I use in GIMP to reduce the colors and set the top leftmost pixel. This assumes the image is set to the RGB mode in GIMP.
1. Click Image->Mode->Indexed
2. In the Indexed Mode Conversion window, click "Generate optimum palette", set "Maximum number of colors" to 255, set "Color dithering" to None, and click Convert.
3. Click Image->Mode->RGB to set the image back to RGB mode.
4. Click the Foreground color rectangle.
5. In the Change Foreground Color window, set "HTML notation" to ff00ff and click OK. That magenta color is the color most people use for the background color of ZT images.
6. Click the Pencil Tool and set the brush to "pixel (1x1 square)".
7. Zoom the image to 800% and click the top leftmost pixel to set it to the magenta color.
8. Although those are all of the steps needed for the plaque (Zookeeper Recommendations photo) and purchase menu icons, other ZT images usually have a lot of transparent pixels. So those would also have to be set to magenta. To do that, one would click the Select by Color Tool, set Threshold to 0, click in the background to select all of the backgournd, click the Bucket Fill Tool, click in the background to set all of the background to magenta, and press the Delete key to turn it back to transparent. The Color Picker Tool can be used to confirm the transparent color used to be magenta. Neither Zoot nor APE understand transparency; they look at what the color used to be.
9. Now the image can be saved as a ".png". When saving it in GIMP, be sure "Save background color" and "Save color values from transparent pixels" are set in the "Save as PNG" window. The other things in the "Save as PNG" window do not matter, but I also have "Save resolution" set and none of the others other than those 3. I also set Compression level to 9.
10. Now the ".png" can be loaded in Zoot or APE.
Good luck with your creating. :bigsmile
Now you know why I told you to just try another picture Max!! :giggle Jay's brilliant, and his gimp instructions work perfectly, you just have to have patience to go through all the steps. My good wishes too! :cheers
Brilliant is right! It did work perfectly :throw
Thanks for the perfectly detailed and easy-to-follow instructions- they couldn't have been more helpful. Now I can move on with this project! I've been stuck on this part for days.
Oh- one last question- what size should the Zookeeper Recommendations image be? The one I uploaded is too large.
Except for the hippo, the plaques for all of the other original ZT animals have a size of 179x194. So I recommend that the plaque sizes be no larger than that.
Continued good luck with your creating. :bigsmile
Once again, perfect advice! The picture looks great in-game now.
I actually have another question, if you don't mind. Does changing the animation speed in Zoot actually do anything to the animation speed in-game? I sped up the animations significantly in Zoot but they don't appear to be any different in-game.
Thanks!
Yes, the animation speed in Zoot works. It is a value in milliseconds. ZT will show the first frame of an animation, then wait that many milliseconds, show the second frame of the animation, wait that many milliseconds, etc.. The same millisecond value is used after each frame. Zoot's animation speed is actually more precise than APE's, since APE converts a "number of frames per second" to a millisecond value. As an example of the setting, ZT's zebra uses a setting of 83 milliseconds for most of the zebra's animations, although a few of the zebra's animations use a setting of 125 milliseconds. Zoot and APE also play the animations using this value, so one can see the effect right away. This speed affects how fast ZT plays an animation, and not how fast an animal moves across the screen. The settings for how fast an animal moves across the screen are inside the ".uca" or animal ".ai" file.
Once again, continued good luck with your creating. :bigsmile
Ah okay- I guess that means I just need to reduce the time a bit more for a noticeable effect. Thanks! :bigsmile
Strange- I have sped up the animations in Zoot, and they show up as much faster there, but after I import the files to the ZTD and view the animal in-game, they don't look any faster. Any ideas?
The only thoughts I have is either the change was not saved in Zoot or the uca is referring to a different animation or the wrong ztd is being used in ZT.
Hi Jay- I have been trying to come up with solutions to this problem for a while now and cannot for the life of me figure out what is going wrong. The animations are clearly sped up and are saving in Zoot- this change just does not show up in the game. Could I post the file here for you to look at? I am trying to get the walking, running, and trotting speeds to match the speed of the animal's movement so that it does not look like it is gliding. Right now I have sped the animations up to an extremely high speed to be sure I would notice the difference (if there was any) in-game.
This site does not allow members to attach files. If you are a member of some other site that allows attaching files and that fern is also a member of, you can attach it there and she can get it to me.
Max is a member at Tek Jay. He can upload his file there for Fern. :bigsmile
And if it is too big for me either cricket or john can bring it over.
We sure can. That should not be a problem. :throw
Thanks- all of you! I'll send it to Fern at Tek. I love these sites- everyone is so helpful.
Alright- I posted the file here:
http://zootekphoenix.com/forums/index.php?showtopic=8905
I will upload the ztd in zip form for you Jay.
Thanks, johnrn1, for getting the file to me.
maximum411, the problem is in the ".ani" files. If you look inside animals\0bdbde28\m\walk\walk.ani, you will see the line "dir2 =y". That is telling ZT to find the graphics files in the young's (animals\0bdbde28\y) folders instead of the male's (animals\0bdbde28\m) folders. That line should be "dir2=m". You would also need to make the same change to all of the other animals\0bdbde28\m\...\....ani files.
Also, if this is to be available to others, you need to use a different APE ID, because 0bdbde28 is already being used for Ghirin's African Wildcat.
Good luck with your creating. :bigsmile
Thanks for taking a look at it Jay, and thanks for sending it over John! Jay- I thought it was set to Y on purpose by Ghirin (since this is based on her/his African wildcat) so that the animal would use the graphics for the young clouded leopard instead of the adult. The graphics I am working on are clouded leopard cub graphics recolored to look like an African wildcat.
I was mostly just making some modifications to the wildcat for myself, but if I do distribute the final version I will make sure to change the ID.
Thanks! :makehappy
Whoops- inappropriate emoticon there haha. That was meant to be a smiley.
Ghirin's African wildcat is an early animal that was created before the Uca Editing Guide and the animal configuration checkers were created. We know a lot more now about ZT configuring than was known back then. So she has a lot of inefficiencies in her file, both the ".ztd" and the ".uca". Since she used the young graphics for both the young and adults, she should have changed the "f = animals/0BDBDE28/m" and "m = animals/0BDBDE28/m" lines in the ".uca" to "f = animals/0BDBDE28/y" and "m = animals/0BDBDE28/y". That would have had the female and male adults use the young graphics. Then the entire "m" folder could have been removed, making the ".ztd" about half its current size. Instead, she just copied the subfolders in the "y" folder to the "m" folder, not realizing that the ".ani" files that were copied would actually cause ZT to use the graphics in the "y" subfolders instead.
Continued good luck with your creating. :bigsmile
Ahh okay- so I was editing the male animations, while the file is telling the animal to use the young animations. I had no idea she did it this way- I had figured she just referred the file to the young animations and only used those. I'll make the change you recommended and see if that fixes it!
Thanks- you really do seem to know everything! :clap2
Just out of curiosity, what kind of programming background do you have?
I wish I knew everything. Even with ZT, we are still learning things. As for programming, I have used a lot of languages: C, C++, FORTRAN, Basic, sh, HTML, Java, PHP, COBOL, Pascal, APL, Python, Perl, various Assemblers, among others. I also have experience with a number of operating systems.
Cool- so you must do programming for a living, then?
I am taking my first programming class this fall- it's supposed to be pretty intensive so hopefully I'll learn a lot. It may even help with ZT!
I am currently unemployed, but when I worked, yes, programming was how I made a living.
I consider most ZT work to be graphics and configuring, rather than programming. But programming has helped with some ZT related projects. I used C to create the animal configuration checking and zoo object list programs, among a number of other programs to help with ZT work. I used C and sh to create the ZT Spreadsheet Subset file. I used Java to enhance the Zoot program.
Well good luck finding a new job (if you are looking for one)! -not that that's very easy right now.
And even so, I am sure that your programming experienced must have helped give you the familiarity with computers that lets you work with ZT editing so easily.
Also, I have another question: if I am okay with adult and young wildcats having the same animations, can I just leave the male .ani files as-is and edit the young's graphics? To be honest, I do not have much experience editing animal graphics and did not even realize there was a second set in the y folder, so I just edited the graphics in the m folder assuming these would apply to the whole animal.
Yes, you can edit the young graphics instead of changing the male ".ani" files. And since you are not using the male graphics, you can set "f = animals/0BDBDE28/y" and "m = animals/0BDBDE28/y" in the ".uca" and delete the "m" folder, making the ".ztd" about half the size.
Hi! I've just returned to ZT after a 10 or so year "vacation" from it.
Back then I really didn't get all the creative options possible or consider that I could maybe even make my own objects. (Why that was a mystery to me is especially funny in light of the fact that my comp at the time almost crashed because of all the user created objects. But of course, that was 4 or 7 computers ago.)
Anyhow I've just started messing with APE and even though I've found several terrific tutorials on getting started with it, I'm the kind of geek that wants to know everything about everything and how each variable works.
Most tutorials just focus on the most important options. Sadly I don't speak more than a couple words of German so I can't question the maker's themselves.
Obviously I realize that listing every single feature might be a challenge. I'll be very happy for short dribbles of information.
Here are a couple of my more pressing questions:
1) How do you tell what a critter's most liked foliage is?
The original animals aren't always coded to tell you that. For instance camels like 4 palms much better than one quiver tree, so I'm told. I'm hoping user made animals are more honest about that.
For instance I went into APE and found that one animal wants 3 thorn acacia or 4 eucalyptus. Does that mean that thorn acacia satisfies it more or that eucalyptus does. Or that I should provide some of both?
2) What the heck is "mimic"? Just wondering about what that means makes me crazy.
3) Is it possible to get a personal use copy of Fern's fantastic program that prints out the "perfect" exhibit? Including fav foliage and proper exhibit size? Just to print to notepad or something for my own use.
The program I use was made by Jay specifically to create forum posts so it includes the formatting for the post but there is an animal checker over at ZKL which was created for designers.
Quote from: Lemurcat on September 09, 2013, 08:07:46 PMI've just started messing with APE and even though I've found several terrific tutorials on getting started with it, I'm the kind of geek that wants to know everything about everything and how each variable works.
Most tutorials just focus on the most important options.
Welcome to ZTCDD. :bye
APE has a lot of problems. Once all of the graphics are loaded using APE, one should then use a text editor (such as WordPad, which is better than Notepad) to change the ".uca" (for animals) or ".ucs" (for foliage, rocks, and scenery) file that was created by APE. So, rather than tutorials on APE, it is better to look at guides concerning the ".uca" and ".ucs" files. The most important guides for editing ".ucs" files are the ones created by fern at DG:
http://www.ztcdd.org/DG/index.php?topic=3954.0
The most important guide for editing ".uca" files is the one created by Sundance at ZKL:
http://www.lunamanar.com/zklounge/viewtopic.php?t=116
We know more now than when those guides were created, but those guides cover what is needed for most ".ucs" and ".uca" files. I use those guides whenever I change or review ".ucs" and ".uca" files. It is true that those guides do not cover everything. But for many of the things they do not cover, we would just be guessing, since no one from Blue Fang (the creators of ZT) explained things.
QuoteSadly I don't speak more than a couple words of German so I can't question the maker's themselves.
I assume you are talking about APExp, which was created by Catman. The APE program itself was created by Blue Fang for the original ZT. APExp is still the same APE program, with the same problems. Catman just added more configuration to show many of the things that were added in the ZT expansions. I used to use APExp, but do not any more. Since it uses the same APE program, the extra configuration can confuse the APE program, even when APE is used instead of APExp. So now I use APE instead of APExp, and then edit the ".ucs" and ".uca" files manually. There are other ways to get to the things that were added in the ZT expansions (although not as easily as using APExp). Even for graphics, I usually will use the Zoot program instead of APE, even though that is more difficult to use than APE. Zoot is available at DG:
http://www.ztcdd.org/DG/index.php?topic=4773.msg18197#msg18197
QuoteHere are a couple of my more pressing questions:
1) How do you tell what a critter's most liked foliage is?
The original animals aren't always coded to tell you that. For instance camels like 4 palms much better than one quiver tree, so I'm told. I'm hoping user made animals are more honest about that.
For instance I went into APE and found that one animal wants 3 thorn acacia or 4 eucalyptus. Does that mean that thorn acacia satisfies it more or that eucalyptus does. Or that I should provide some of both?
When looking in the Compatibility section in APE or looking in the ".uca" file via a text editor, the numbers do not say how much of a specific foliage the animal wants. Those numbers say how much they effect an animal's happiness, relative to one another. But other factors have to be taken into account as well. One of those things is the area taken up by the object. For example, in the camel's configuration, the relative happiness of the Palm Tree is 3 and the relative happiness of the Quiver Tree is 10. But the Quiver Tree tree takes a full tile while 4 of the Palm Tree can fit in a tile. So 1 tile of Quiver Tree gives the relative happiness of 10, but 1 tile filled with the Palm Tree gives the relative happiness of 12 (3 times 4). Another factor taken into account is the habitat of the foliage, since an animal often likes some habitats better than other habitats. But the Palm Tree and the Quiver Tree are both for the Desert habitat. In the case of the Thorn Acacia Tree and the Eucalyptus Tree, they both take the same space and are for the same habitat. So if the Eucalyptus has a relative happiness value of 4 and the Thorn Acacia has a relative happiness of 3, the animal would like the Eucalyptus more.
Quote2) What the heck is "mimic"? Just wondering about what that means makes me crazy.
That is one where we would just be guessing, although I have a reasonable guess, based on what I know about the various ZT program versions. Basically, the mimic settings in the animal configuration are not used by the current ZT program versions. The ZT beta program did recognize those settings. But when ZT was officially released, the settings were changed from animal settings to guest settings. In both the beta and the original ZT, there were guest animations called "mimic" that look like the guests are pounding their chests. When DD came out, an additional related setting was added for guests and another animation was added that has guests look like they are roaring. So, based on all of that, I suspect the original idea was that guests would imitate the animals and the animals would get happier when the guests did. But since the guest animations were limited, the mimic animations just became something that the guests did at random and they probably no longer affect animal happiness when the guests do those animations.
Quote3) Is it possible to get a personal use copy of Fern's fantastic program that prints out the "perfect" exhibit? Including fav foliage and proper exhibit size? Just to print to notepad or something for my own use.
Those programs are not showing "proper exhibit size". They are showing minimum exhibit size for an animal. The idea is that if the minimum size is used for each exhibit, then the zoo can have more exhibits and show more animal species. As fern mentioned, there is a an earlier version of that program called the Animal Configuration Checker that is available at ZKL:
http://www.lunamanar.com/zklounge/viewtopic.php?t=1203
Being an older program, that does not run on 64-bit computers, although I have a version of it that does. Also, that program does not do as much as the program that fern uses. For example, it does not take habitat into account when determining which foliage or rocks to use for an animal's exhibit, while the program that fern uses does. There are some things that neither program currently take into account. For example, although they show a preferred shelter, that is from an animal happiness perspective. But many of the in-game shelters cannot actually be used by user made animals without using something like a hack. So sometimes it is better to use a concrete shelter or wood shelter instead of what is shown by the programs. At some point, I should release the program that fern uses, even if it does not do everything I would like.
Thank you both for the info, and wow, Jay, thanks much for the detailed explanation. Fascinating and helpful stuff!
I didn't realize that habitat is taken into account when you figure out foliage. Good to know.
LOL the info about mimic is funny. I'm going to have to watch my guests more closely now. Thus far I'm only noticed them pointing or jumping up and down when they're especially happy. I wonder if I've missed other more subtle emotes.
Off to download Zoot and read more about .uca files! :fireworks
I have just accidentally written this reply to a very old post, but I might as well leave it here!!! :duh
...getting the animals to walk, trot and run at the right speed is a question of getting the forward speed (set in the uca file in [m/Characteristics/Integers] as things like cFastRate = 66, cMediumRate = 46, cSlowRate = 13 (from one of my wolves), correctly aligned with the run, trot and walk animations - for this particular animal the run animations have fewest frames (9 frames, animation rate 83 ms in zoot), trot rather more (12 frames, animation rate 83 ms) and walk, the most (21 frames, 83 ms) so you can see that it is the number of frames that is used to control how fast it seems to be moving. 83 ms gives a convincing animation, much slower than that starts to look clunky.
If you have the same number of frames for run, trot and walk (say, in this case 9 frames for each, then you would need to lengthen the animation time for trot (to about 110 ms to give the same overal time for each step as with my original animal) and lengthen it some more for walk (to about 193 ms), but that would give you less convincing animation for the trot and walk animations.
re: Foliage
scenery/other vs scenery/foliage
is there a reason why just about all UCfoliage is in /other and not /foliage ? if there's no good reason why not, i think i'm going to put any i make in /foliage since it seems to work ok in game.
Ape does everything scenery/other. If you change that you will make it less efficient for anyone who is wanting to combine files which is a necessary evil in this game since there is a limited amount of ztd allowed in the game.
In addition to fern's comments, the "Open an existing project" and "Import an existing project" in APE will not work if the ".ucs" file is in a "scenery/foliage" folder instead of in a "scenery/other" folder. So I recommend using "scenery/other" for foliage.
@fern: isn't combining files just done by unzipping / rezipping them? i wasn't aware that you might use ape to do this.
@jay: ok, we got a stupid ape and i guess we're stuck with it.
thx
Fern's comments were 2 separate, unrelated comments. Although APE can be used to combine ".ztd" files, that is an inefficient way to do so. So that was not what fern was saying. Her first comment was saying that, when APE saves a ".ucs" file for foliage, rocks, or scenery, APE puts the ".ucs" file in the scenery/other folder. Her second comment was saying that combined ".ztd" files are less efficient if they contain both scenery/other and scenery/foliage folders. That would be more so for when people look inside combined ".ztd" files, since they would have to look in 2 folders instead of 1 to see everything that is inside that ".ztd". But it would also create a slightly larger ".ztd" file, since "foliage" is a longer word than "other".
good gracious! what a question!!! i have been designing for YEARS and i had not even noticed!!!! :duh :wub2
i believe that i may be another stupid ape...
so, instead of quibbling over 2 characters, i was wondering if i could save space by using a [AnimPath] section in a foliage file to redirect the graphics so i didn't have to recopy them when modifying a stock object.
i was also wondering if jay could confirm or deny that:
- user defined objects get sorted by UCN after other sort criteria like cHabitat, cLocation
- zt reads the .ztd files in the path order and doesn't overwrite anything it already has
too many questions, i know but
fern: should i just make swims, tankable, exhibit neutral the default for everything? there might be exceptions but why shouldn't anyone just put anything whereever they want to? i was already doing swims for everything and all the plants are exhibit neutral and now tankable. but i'd made the flower pots so they couldn't be tanked or go in exhibits but why can't they if someone wants? right??
also, i'm making some very tall trees and think that i should find out exactly how tall they are instead of just saying cHeight=2 . i notice they don't show quite right if they're in a tank and the edge is raised > 3.
Jay has gone for the night.
You probably can't use the [AnimPath] section as that has to do with things like the difference between a building in use or empty.
Well there are somethings I would not make exhibit placeable ....... balloons for one as they would scare animals. Or anything else that would harm or scare an animal. Flowerbeds would be silly to add to an exhibit since in real life the animals would eat or destroy it. I like to keep an element of realism.
jay and i have rather different views about tree heights!! I'll let him explain his view as it is much more scientific and considered than mine! I have made some very very tall trees at various times (in excess of 400 pixels for some of the rainforest and temperate broadleaf species like Mahogany, Dinizia, Tualang and Elm trees). I have not been terribly consistent in my approach to the height because I have never been convinced that it makes any real difference to zt. height = 1 means that the guests can see 'over' it I believe. once you get to height = 2 or more, i have yet to be convinced it actually matters. some of the later blue fang creations have very random heights (if I recall correctly the swamp cypress is an exmple - I can't remember now if it is 7 or 13 or indeed something else entirely :rofl :crazy but i do recall it is different from all their earlier efforts which tended to be no more than 3. I sometimes use height = 3 and sometimes height = 7 and probably sometimes other things altogether :rofl :crazy for my really tall trees. I'll see if i can find some and rport them here...
can't see how to put a pic on here, so here's the link to it over there
Zoo Tycoon Unleashed (no longer exists)
when the tank depth gets > cHeight of the tree, it completely submerges.
about [animpath] ... grrr, lol. tried it last night and couldn't get it to work at all. one time it didn't crash for some reason, but it wasn't in the menu either.
i think the big problem with scenery having [animpath] is it seems to require:
subtype = path
and scenery doesn't have subtypes. i tried putting DefaultSubtype=p and putting p/ everywhere the subtype occurs in an animal file, but nada :(
in the meantime, i have an exhibit neutral FauxPineShrub, hehe
Quote from: T'ni on December 12, 2013, 12:55:26 AMso, instead of quibbling over 2 characters, i was wondering if i could save space by using a [AnimPath] section in a foliage file to redirect the graphics so i didn't have to recopy them when modifying a stock object.
I do not understand the comment because the "2 characters" had to do with where the ".ucs" file is located and not where the graphics are located. [AnimPath] is meant for animal configuration. I do not know if it can be used for foliage, but there would not be a point to do so. The "idle" setting can contain a full path when there is a benefit to do so. However, I do not know why there would be a need to do so in the typical case. You mention that you want to do so to save space. Generally, we do not go out of our way to make something a few bytes smaller. For example, APE often has a blank line at the top of the configuration file. We might not change the configuration file just for that. But if we change the configuration file for some other reason, then we would also delete that blank line. There are other blank lines that are not necessary, but we leave in. We feel it is easier to find different "[...]" sections when there are blank lines between them. Blue Fang must have felt the same way, since most of their "[...]" sections are separated by blank lines and APE keeps those blank lines in the configuration. But there are times when I will add a full path to the "idle" setting for efficiency. For example, sometimes I configure the same foliage images in 2 different ways: 1 that counts toward suitability and 1 that does not count toward suitability (which I call "Decorative"). Rather than create 2 different ".ztd" files with the same graphics, I create 1 ".ztd" file with 1 set of graphics, but 2 different ".ucs" files. In 1 of those ".ucs" files, I will set the "idle" setting to use the full path to the graphics that are for the other ".ucs" file. This reduces the size of the ".ztd" file, and sometimes by a large amount if the foliage is animated. But it also reduces the total number of files that are in the ".ztd" files. With lots of files in ".ztd" files, I have seen ZT take more than 15 minutes to load on a slower computer with thousands of user made objects in ZT's folders. So we try to balance efficiency with consistency and readability.
Quotei was also wondering if jay could confirm or deny that:
- user defined objects get sorted by UCN after other sort criteria like cHabitat, cLocation
- zt reads the .ztd files in the path order and doesn't overwrite anything it already has
Since we do not have the source code to ZT, we cannot give specifics on how it works. For example, it could go in path order and not overwrite, or it could go in reverse path order and overwrite. Either way, the outcome is the same. For the "path" setting in the zoo.ini file, files in the folders listed earlier in that setting have precedence over files in the folders listed later in that setting. It actually goes by the files inside the ".ztd" files rather than by the ".ztd" files itself. So for any particular object, some of its files might be in a ".ztd" in 1 folder and some other of its files might be in a ".ztd" in a different folder. Although we can control the load order of the folders, we cannot control which files are loaded first within a folder. That depends on how the particular disk is formatted and different disks use different formats. As for the sort order within a purchase menu, it depends on the purchase menu. For the foliage purchase menu, it is probably sorted by cHabitat, then sorted by cLocation within those habitats, then sorted by cPurchaseCost within those locations, then sorted by internal name (what you probably call UCN) within those costs. I do not worry about trying to control the sort. I set habitat, location, and cost by how I feel they should be set. And for the times I create my own internal name, the name is based on the ".ztd" name. If there is more than 1 object in the ".ztd", my own internal names are based on what ".ztd" names I would have used if I separated the objects into separate ".ztd" files.
Quoteshould i just make swims, tankable, exhibit neutral the default for everything? there might be exceptions but why shouldn't anyone just put anything whereever they want to? i was already doing swims for everything and all the plants are exhibit neutral and now tankable. but i'd made the flower pots so they couldn't be tanked or go in exhibits but why can't they if someone wants? right?
Different designers use different approaches. I like ZT because of its educational value. So I try to configure things the way they would be in real life. If I feel foliage can only be in one habitat, I will use that habitat setting. Usually, though, I feel it should be allowed either in all exhibits or no exhibits. As for water, I try to determine what it would be in real life: not in water, in shallow water, floating in water, at the bottom of water. That can be subjective in some cases, though. For example, I normally do not configure decorate flowers to be exhibit placeable because animals in real life would destroy them. But sometimes I might configure them to be exhibit placeable if they could be nice on an island or floating on water in an exhibit that contains non-swimmable animals. In the case of an island, though, it would have to be a type of object that fills the island, since some versions of ZT have put poo in places that staff cannot get to.
Quotealso, i'm making some very tall trees and think that i should find out exactly how tall they are instead of just saying cHeight=2 . i notice they don't show quite right if they're in a tank and the edge is raised > 3.
For things that do not go in tanks, Blue Fang usually set heights to 1, 2, or 3, rather than take the effort to figure out the actual height. We tend to do the same. Guests can see over or through things that have a height of 1. It also looks like they can see through things that have a height of 2, even though technically they should not. So we use a height of 1 for things they should see over or through. I have not bothered to test, but it is possible the taller dinos can step over some things with a height of 2. So if an object looks like it is taller than 2, we will use 3. Each level of height is 16 pixels of object height. That is "object height" and not "image height". For example, the image for foliage might be taller than 16 pixels because of branches sticking out on the far side. As humans, our brains tell us from our experiences whether we are seeing branches sticking out or if we are seeing something going up. Computers cannot tell, though. So that is why the heights become important for things that can go at the bottom of tanks. If an object has something sticking out horizontally, that part might need to be under water instead of above water. The only way ZT would know is by the height setting. The height setting for such objects also says at what depth an animal can swim over the object. In some cases, we will set the height to 1 so that the animals can swim over it even if it is actually taller than a height of 1. Some objects can have different images when they are out of water than under water. In those cases, the height setting tells ZT when at least part of the object is out of water so it knows when to switch to the other set of images. For such objects, though, one usually has to experiment with the height setting to see what level looks best for the switching of images. When Blue Fang created the bald cypress for DD, they set its height to 3. When they created MM, they changed the height to 7 and probably attempted to make it tankable. But they probably did not like how the bald cypress looked in tanks, since the configuration was changed to be not tankable, even though they left the height at 7 and left remnants of tank configuration lines.
ahah - so actually, it turns out Jay and I have much the same view of cHeight!!! Here are some representative examples from my own output:
Tallest blue gum (my first really tall tree)
225 pixels, cHeight = 3,
4 seasons chestnuts,
200 pixels, cHeight = 3,
large oaks
303 pixels, cHeight = 3
Araucaria (from dinosaur trees)
245 pixels high (near the 255 maximum that can be loaded through the main APE screen), cHeight = 3
Archeopteris (from dinosaur trees)
319 pixels high (319 is maximum that can be loaded with APE through the animation screens so a number of my trees are this height), cHeight = 3
largest Dinizia I can find
350 pixels high (loaded using zoot so indexed 256 colour images required), cHeight = 3, this is tankable and sticks out of the water like your coral tree over at ztuf. It looks amazing with tapirs swimming round in the tank at the bottom of this tall tree!!
TualangE (I think this is the tallest of the rainforest trees)
480 pixels (zoot loaded), cHeight = 3
Australian Red Cedar
275 pixels, cHeight = 7, (obviously created just after i found out about the cHeight of the MM bald cypress)
large English Elms, (in among Tasmanian Tiger memorial stuff)
height 618 pixels (!) = 44 metres tall in real life and height 448 pixels = 32 metres tall (scaled from people in-game), both cHeight = 3
conclusion - nearly all my tall trees are cHeight = 3
I have made a few tall items for use in tanks which need more specific cHeight settings e.g.
Dragon Kelp (in among Tasmanian Tiger memorial stuff) as configured by Jay
height (when alive and in tank) up to 185 pixels, cHeight = 11 [needs to revert to dead image (cHeight = 1) if water is too shallow]. I suspect Jay chose cHeight = 11 because this, if multiplied by his 16 pixels per 1 unit of height = 16 * 11 = 176. So, I probably would have chosen 12 not 11 (16 * 12 = 192) just to make sure it could not poke out of the water. However, when this was configured I was absolutely :crazy :angry2 :rofl :cry2 :crazy :crazy :rofl :angry2 :cry2 so Jay did it for me :praise2 :praise2 :praise2 and it works well!
QuoteThe "idle" setting can contain a full path when there is a benefit to do so.
just like the icon path. good! no need to copy graphics that are already in the game.
QuoteIn the case of an island, though, it would have to be a type of object that fills the island, since some versions of ZT have put poo in places that staff cannot get to.
this is interesting too. i'd never thought of making an island because of the poo. *looks around for ground cover plants*
cHabitat + cLocation + cPurchaseCost = interesting sort order.
lol! i have discovered the islands of poo issue but not envisaged complete coverage as a way of avoiding it... my unruly but realistic forests (dense but with gaps randomly) sometimes cause poo trappage too...
however, i think that the universe is broken because if:
cHabitat + cLocation + cPurchaseCost = interesting sort order
then
interesting sort order - cHabitat - cLocation (should) = cPurchaseCost :faint and it does not...
Quote from: dr rickDragon Kelp (in among Tasmanian Tiger memorial stuff) as configured by Jay
height (when alive and in tank) up to 185 pixels, cHeight = 11 [needs to revert to dead image (cHeight = 1) if water is too shallow]. I suspect Jay chose cHeight = 11 because this, if multiplied by his 16 pixels per 1 unit of height = 16 * 11 = 176. So, I probably would have chosen 12 not 11 (16 * 12 = 192) just to make sure it could not poke out of the water.
Actually, its cHeight is 10. What makes configuring for tanks difficult is the tank water level is not a multiple of 16 pixels. So for the dragon kelp (and others), I had to try various cHeight settings and see how it looked in-game from all views at various tank depths. I saw that cHeight of 10 was the minimum needed to have it not poke out of the water whenever it was using the living graphics at various tank depths.
Quote from: T'nijust like the icon path.
It is similar to the icon path, although the ".ani" is included: idle=objects/......../idle/idle.ani
Quote from: T'nino need to copy graphics that are already in the game.
Fern already made decorative versions of MM foliage:
http://www.ztcdd.org/DG/index.php?topic=5129.0
i hadn't seen those yet, they look nice out of water. tyvm fern :)
this is the highlands pine shrub that i made exhibit neutral. the little evergreen bush with the red berries.
Jane made all the ingame foliage exhibit neutral. That pack is at Tek.
All ZT1 Foliage Combined by Jane (http://zootekphoenix.com/forums/index.php?app=downloads&showfile=1555)
Quote from: fern on December 13, 2013, 01:40:31 AM
Jane made all the ingame foliage exhibit neutral. That pack is at Tek.
All ZT1 Foliage Combined by Jane (http://zootekphoenix.com/forums/index.php?app=downloads&showfile=1555)
that's so obvious that i really should have known to go look for it.
i'm sorry, i've been all rushing around as if doing everything NOW was the right way to have a stress free winter.
fern, i should be mad at you for making the Kelp land placeable ;), i was going to show a little foliage restraint next time i made a zoo but it was impossible after i saw the kelp and sea lettuce gently swaying in the breeze. hehe, another zoo with waaaay too many plants. imo, all foliage should look like this.
ok. so slowing down and getting things closer to perfect...
a) that problem i was having with guests walking under plants that didn't have ground cover on the whole 1/4 square (ostrich fern is the best example) - what's the best way to fix it? certainly not the off center approach i took. maybe a few sprinkles of ground covering pixels? like about 30% coverage??
b) you mention in "UCS Editing guide (User Created Scenery)" that "cHelpID = 9309 No need to change or remove no matter the setting." i found out, /blush, that i did take my first plant from some lamp, and thought i'd change the values to some similar foliage type number. does cHelpID do anything ever? possibly in stock items??
Quote from: dr rick on December 12, 2013, 09:16:42 PM
lol! i have discovered the islands of poo issue but not envisaged complete coverage as a way of avoiding it... my unruly but realistic forests (dense but with gaps randomly) sometimes cause poo trappage too...
however, i think that the universe is broken because if:
cHabitat + cLocation + cPurchaseCost = interesting sort order
then
interesting sort order - cHabitat - cLocation (should) = cPurchaseCost :faint and it does not...
hehe, you're forgetting that "interesting sort order" is a variable. admittedly it should be cInterestingSortOrder or possibly interesting_sort_order (if i was a masochist who liked underscores.
i think i'm going to start putting some walkable foliage right inside my gates. i've had zookeepers not be able to get into an exhibit because of misplaced poo and i really didn't get what was happening because of the invisible fences i couldn't tell where the gate was.
We do use the cHelpID = XXXX line in working buildings. And we discovered what weird things happen if you do it wrong in buildings. The number changes despending on what base is used in Ape.
Jay might know exactly what it does, but as long as cNameID = 19000 then it does not need to change.
Glad you like the foliage. :giggle
Quote from: fern on December 13, 2013, 08:56:51 PMGlad you like the foliage. :giggle
lol, it's everywhere now and i want to make every foliage animated...
there's no hope for me, i'm afraid :( hehe
:help Whenever i try to create a new image work in Zoot it always giving an error message "Cannot create a file that already exists" :crazy what should i do?? :cry2
If you try to use the third icon in Zoot ("Create a new ZT image"), the file must not exist already. For example, if you are using that icon to try to create the file objects\1f5e912b\idle\se and that file exists already, you will get that error message. There are 2 ways to avoid that message. One way is to delete the file when you are not in Zoot, and then use Zoot's "Create a new ZT image" icon to create the file. But there is an easier way if that file already contains a ZT image that Zoot understands. Look at the image in Zoot. Then click Zoot's fourth icon ("Edit the currently selected image"). In the "Edit frames" window that opens, use "Add frame(s)" to add your new image or images. Then click on the image that is in there already and click "Delete frame". In both approaches, the "Edit frames" window is used. In the first case, the "Edit frames" window is empty when it opens and, in the second case, the "Edit frames" window shows the existing image when it opens.
Good luck with your creating. :bigsmile
Oohhh yeah..that's what i was talking...really Jay, you saved the day... :clap2 :praise2
Thank you very very much... :TY
Well, i'm almost done with my very first Structure Building...only NE and NW image rotations and few things need to be fixed..
For now i've made my buiding which sells some king of meals...i will edit new icons for these items in ZOOT.., but before that i want to put new mesages or guest thoughts for these meals..like what guest guests thinks after eating the the meal..or what they think when they see the building...I've red somewhere that i need to create new .dll file to create new custom guest thoughts... :help1
What really i need to do to put my own guest thoughts?? :help
Yes, messages for restaurants and meals have to be in a ".dll" file. But sometimes we can use messages that exist already. For example, if there is nothing special about the building to teach others, then the messages for the Restaurant that come with ZT can be used:
8007, "Restaurant"
38007, "Purchase a restaurant. Restaurants are larger and their food is more expensive than food stands, but they are the most hunger fulfilling and thirst quenching of all the vendors. Many people can sit down to eat in a restaurant at the same time."
63007, "the Restaurant"
10203, "There's the restaurant. Let's eat!"
Similarly, if the meals are ones that come with ZT, then the ZT icons and messages can be used. Or if the meals are ones that other people have created for ZT already, then we can sometimes use their icons and messages, if they have given permission for others to use them. If the meals are not ones that come with ZT and are ones that no one else has created yet for ZT, then new messages would be needed. Those messages should be in a combined ".dll" for a web site. If you say what meals you are making and what web site you will release the building, then we can see what ".dll" file should be used and whether there are existing messages for those meals.
I'm delighted to hear about your new building! well done! I look forward to seeing it.
I have been designing for years and I used to be reasonably clever :praise2 :eggyes :wub2 :blush :blush before I had a brain injury :ill :crazy :angry2 :rofl :cry2 (I have a PhD and worked for Cambridge University :blush) but I have never understood dll files :duh , so...
I make the building, configure the ucs or ucb file, make all the necessary folders and files to make it work, insert the icons for goods sold through zoot, decide if I am going to use existing guest thoughts but if not, then I write the guest thoughts, then I post the whole lot here or over at zt designer guild and let the wise people who understand dlls do their magic...
Quote from: Jay on March 08, 2015, 05:00:07 AM
Yes, messages for restaurants and meals have to be in a ".dll" file. But sometimes we can use messages that exist already. For example, if there is nothing special about the building to teach others, then the messages for the Restaurant that come with ZT can be used:
8007, "Restaurant"
38007, "Purchase a restaurant. Restaurants are larger and their food is more expensive than food stands, but they are the most hunger fulfilling and thirst quenching of all the vendors. Many people can sit down to eat in a restaurant at the same time."
63007, "the Restaurant"
10203, "There's the restaurant. Let's eat!"
Similarly, if the meals are ones that come with ZT, then the ZT icons and messages can be used. Or if the meals are ones that other people have created for ZT already, then we can sometimes use their icons and messages, if they have given permission for others to use them. If the meals are not ones that come with ZT and are ones that no one else has created yet for ZT, then new messages would be needed. Those messages should be in a combined ".dll" for a web site. If you say what meals you are making and what web site you will release the building, then we can see what ".dll" file should be used and whether there are existing messages for those meals.
I have send you a pm of my own concept of thoughts...please check that if u could combine them with any other combined dll or else tell me how do i make my own lang.dll file??
I have since sent a reply to the PM.
Just wanted to ask, how does the game time convert to real time for stuff such as reproductioninterval & timedeath?
Welcome to ZTCDD. :bye
I believe 12 real time seconds equal 1 game day. I do not actually know what units are used for the cReproductionInterval, cBabyToAdult, and cTimeDeath settings. I believe they represent real time seconds, but I never tested to see. The cReproductionInterval setting represents the minimum amount of time a female adult has to wait after giving birth before it can give birth again. But a second birth would be some random time after that minimum amount, primarily because of the cReproductionChance setting. Similarly, the cTimeDeath setting represents the minimum amount of time the animal will live. Its death would be some random time after that minimum amount, based on the cDeathChance setting. To determine what to use for these settings, you can look to see what are used for a similar animal to what you are creating.
Good luck with your designing.
Hi Jay :D
I have a question about shelters.
I made the Frosted Grassy Shelter based on the in game Large Wooden Shelter in APE, then turned it into a ZIP and extracted it, then added the 'freeform' folder containing the 'unlock-shelterforallanimals' which is an SCN file.
Doesnt SCN stand for 'Scenery'? And if so shouldnt it be a different file type for 'Shelter'?
Also, this is what is in the 'unlock-shelterforallanimals' SCN file:
[goals]
goal = DEFAULT_ITEMS
[DEFAULT_ITEMS]
rulea = 7
ruleb = 2
value = 0
text = 17700
trulea = 7
truleb = 0
targa = 1000
hidden = 0
sticky = 0
[1000]
id = 2930
Are these codes correct for a working shelter that causes animals to make a happy face when they are added to the exhibit?
Thanks! :D
Next question, this is what I have in the 'scenery'> 'other'> 'UCB' file:
Icon = objects/E5DF4026/NE/NE
[Member]
shelters
[Characteristics/Integers]
cPurchaseCost = 101
cFootprintX = 2
cFootprintY = 2
cHabitat = 9411
cHeight = 1
cHelpID = 2930
cNameID = 2930
cUseNumbersInName = 0
cSelectable = 0
cTimeInside = 10
cCommerce = 0
cHideUser = 1
cHideBuilding = 0
cUserStaysOutside = 0
cUserUsesExit = 0
cShelter = 1
cCapacity = 6
cAdultChange = 20
cChildChange = 20
cEnergyChange = 100
[Characteristics/Strings]
cInfoImageName = scenery/building/inbldg/inbldg
[Animations]
idle = idle
used = idle
[Satisfies]
animalrest
animalsex
building
[Global]
Type = 2849C057
[slots]
name = slot
[slot]
slotpos = 0
slotpos = 0
entrpos = 0
entrpos = 33
exitpos = 0
exitpos = 33
capacity = 6
facing = 0
Aside from the height, which is 1 because the actual height of the shelter is half as tall as Genkis grasses and guests can see over them, is all of this code correct?
And shouldnt there be code for tooltips and such?
Thanks again :D
Quote from: Z.Z. on October 23, 2017, 05:25:30 PMDoesnt SCN stand for 'Scenery'? And if so shouldnt it be a different file type for 'Shelter'?
"scn" stands for "scenario". That is why it has "goals" inside of it. Although it stands for "scenario", ".scn" files are used for both scenarios and freeform maps. The simplest type of ".scn" file is to make an object available at the start of a zoo when the object uses messages from a ".dll" file.
Quote from: Z.Z.Also, this is what is in the 'unlock-shelterforallanimals' SCN file:
".scn" files should not have a "-" in the file name. Having a "-" worked with the original ZT. But having a "-" can cause the ZT expansion packs to unlock more objects than they should. So the file name to use in this case is "unlockshelterforallanimals.scn".
Quote from: Z.Z.[goals]
goal = DEFAULT_ITEMS
[DEFAULT_ITEMS]
rulea = 7
ruleb = 2
value = 0
text = 17700
trulea = 7
truleb = 0
targa = 1000
hidden = 0
sticky = 0
[1000]
id = 2930
Are these codes correct for a working shelter that causes animals to make a happy face when they are added to the exhibit?
Those are the correct lines for unlockshelterforallanimals.scn. That will make any "Shelter For All Animals" to be available at the start of the zoo. ".scn" files have nothing to do with causing animals to make a happy face when the object is added to an exhibit. A happy face is triggered by a combination of a shelter's ".ucb" or ".ai" settings and an animal's ".uca" or ".ai" settings. In general, we want the animal to have a happy face when a shelter is added when there are not enough shelters in the exhibit, and we want the animal to have a frown face when a shelter is added when there are already enough shelters in the exhibit.
Quote from: Z.Z. on October 23, 2017, 05:38:44 PMNext question, this is what I have in the 'scenery'> 'other'> 'UCB' file:
Icon = objects/E5DF4026/NE/NE
[Member]
shelters
[Characteristics/Integers]
cPurchaseCost = 101
cFootprintX = 2
cFootprintY = 2
cHabitat = 9411
cHeight = 1
cHelpID = 2930
cNameID = 2930
cUseNumbersInName = 0
cSelectable = 0
cTimeInside = 10
cCommerce = 0
cHideUser = 1
cHideBuilding = 0
cUserStaysOutside = 0
cUserUsesExit = 0
cShelter = 1
cCapacity = 6
cAdultChange = 20
cChildChange = 20
cEnergyChange = 100
[Characteristics/Strings]
cInfoImageName = scenery/building/inbldg/inbldg
[Animations]
idle = idle
used = idle
[Satisfies]
animalrest
animalsex
building
[Global]
Type = 2849C057
[slots]
name = slot
[slot]
slotpos = 0
slotpos = 0
entrpos = 0
entrpos = 33
exitpos = 0
exitpos = 33
capacity = 6
facing = 0
Aside from the height, which is 1 because the actual height of the shelter is half as tall as Genkis grasses and guests can see over them, is all of this code correct?
And shouldnt there be code for tooltips and such?
I assume you are not showing the top of your ".ucb" file, which probably is the following before the "Icon = objects/E5DF4026/NE/NE" line:
[E5DF4026]
[Icon]
Icon = objects/E5DF4026/SE/SE
Icon = objects/E5DF4026/SW/SW
Icon = objects/E5DF4026/NW/NW
You asked about a tooltip. The "cHelpID = 2930" line is the tooltip. ZT adds 30000 to that value and, therefore, looks for 32930 in a ".dll" file to see what to show for its tooltip.
The lines you showed should work. But I would have done some things differently, which follows:
The "Type" setting normally should match the "Icon" setting. So if you have "Icon = objects/E5DF4026/NE/NE", I suspect you should have "Type = E5DF4026" instead of "Type = 2849C057".
Whenever I have "cHabitat = 9411", I also include "cLocation = 9618" in the [Characteristics/Integers] section for consistency. The "9411" says it is for Many habitats and "9618" says it is for Many land locations.
Since "cCommerce = 0" and "cUserUsesExit = 0" are the defaults, I would not include those lines.
This shelter is 1 tile in size. In general, the shelters that come with ZT assume each animal (other than small animals) will use 1 tile inside a shelter. So that is why the Large Wood Shelter has a capacity of 6: because it is 6 tiles in size. Therefore, being that your shelter is 1 tile in size, I would have set "cCapacity = 1" and "capacity=1".
For shelters that come with ZT, if a shelter can contain any animal and if a shelter is smaller, then it gives less energy to the animal. So for a one tile shelter that can accept any animal, I would have used the Small Concrete Shelter as a base. Therefore, I would have set "cEnergyChange = 10" and "cTimeInside = 8". And since this shelter is half the size of the Small Concrete Shelter, I would use half the cost of the Small Concrete Shelter and set "cPurchaseCost = 60".
By default, a tall dinosaur like the T-Rex can turn this shelter into building rubble. That should be okay for this type of shelter because this type of shelter should not be in an exhibit with tall dinosaurs anyway, since it does not look realistic to have tall dinosaurs disappear into this shelter. But if you wanted something different concerning rubble, there are 3 other possibilities by adding certain lines to the [Characteristics/Integers] section. Adding "cRubbleable = 0" prevents the object from becoming any type of rubble. Adding "cForcesSceneryRubble = 1" to a ".ucb" file causes the object to become grayish scenery rubble instead of building rubble. Adding both "cForcesSceneryRubble = 1" and "cUsesTreeRubble = 1" to a ".ucb" file causes the object to become foliage rubble, which looks like tiny, thin, grayish tree stumps with a bit of green.
Your configuration has 1 entrance. Hopefully it is obvious to the players which side of your images contain that entrance. If the images look like foliage from all directions, you might want entrances in all directions. If that is the case, instead of the [slots] and [slot] sections you have, you would want the following for a one tile shelter:
[slots]
name=slot1
name=slot2
name=slot3
name=slot4
[slot1]
slotpos=0
slotpos=0
entrpos=0
entrpos=33
exitpos=0
exitpos=33
capacity=1
facing=0
[slot2]
slotpos=0
slotpos=0
entrpos=33
entrpos=0
exitpos=33
exitpos=0
capacity=1
facing=0
[slot3]
slotpos=0
slotpos=0
entrpos=0
entrpos=-33
exitpos=0
exitpos=-33
capacity=1
facing=0
[slot4]
slotpos=0
slotpos=0
entrpos=-33
entrpos=0
exitpos=-33
exitpos=0
capacity=1
facing=0
"".scn" files should not have a "-" in the file name."
Ah, ok, I had copied the 'SCN' file from another shelter and it had the '-' in it. I have taken it out.
"A happy face is triggered by a combination of a shelter's ".ucb" or ".ai" settings and an animal's ".uca" or ".ai" settings"
Ok, what 'UCB' or 'AI' settings should there be to get a happy face?
Thank you for the rest of the information, especially the code to get all four sides to be entrances, Im working on a request for an invisible shelter and that looks like exactly what I needed :)
The above ".ucb" already has the settings that affect an animal having a happy face. The following gives more detail.
The happy face for an animal is complicated. The happy face can come from an animal liking something directly when it is added to an exhibit, or it can come from the suitability being improved. The second part is actually the more important of the two. For shelters, we want the animal to have a happy face when a shelter is added when there are not enough shelters in the exhibit, and we want the animal to have a frown face when a shelter is added when there are already enough shelters in the exhibit. That is suitability. There are three lines in the shelter ".ucb" that affect suitability: "cShelter = 1", "cHabitat = 9411", and the cCapacity setting. "cShelter = 1" tells ZT that this is a shelter and to take it into account for suitability. ZT then uses the cCapacity setting and the number of animals in the exhibit to determine if there are enough shelters, too few shelters, or too many shelters. That calculation in ZT is complicated. ZT allows a slight difference between the cCapacity setting and the number of animals in the exhibit, but a large difference can confuse ZT. That is why there are different sizes of the various shelters that come with ZT, since sometimes it is better to add a small shelter instead of a large shelter. The cHabitat setting can affect the happy face in different ways. If it is set to a specific habitat, it will make some animals happier and make other animals unhappy. For example, if it is set to 9400, then animals that like Savannah objects will become happier and animals that dislike Savannah objects will become less happy. Using 9411, most animals will not care one way or another about the shelter from a happiness perspective, but they will still care about it from a suitability perspective, which is what we care about the most. Even with 9411, it is still possible for an animal to like a shelter from a happiness perspective, but that would be in the animal's configuration. The animal's configuration can say to give the animal a happiness boost when a specific shelter or type of shelter is added to the exhibit. But that should be only a small happiness boost because we do not want that to outweigh the suitability, otherwise a happy face can occur even though the suitability is getting worse.
Although they do not affect the happy face, there are 2 settings in the shelter ".ucb" that affect an animal's happiness: cAdultChange and ChildChange. When those are set greater than 0, the adult and young animals will have their happiness increased when they use the shelter. For shelters that come with ZT, those range in values from 2 to 20.
Hmmm... Then this shelter should make an animal give a happy face when it is added to the exhibit, but it doesnt, the animal has no reaction to it at all, but the shelter does satisfy the requirement for a shelter, and the animal does use it, and it does take care of the animals needs.
Well, I guess Ill just have to live without the animal having a reaction.
Thank you so much for your help Jay, youre awesome :D
As an example concerning the happy face and Zookeeper Recommendations, I created an experimental tall grass shelter configured with "cCapacity = 1", "cHabitat = 9411", and "cShelter = 1". I tested this experimental shelter in an exhibit containing 4 adult zebras (2 males and 2 females). The exhibit did not have any shelters in it, but was suitable in every other way. So the Zookeeper Recommendations said there were not enough shelters. Then I added the experimental shelter. Here are the results:
1st experimental shelter: zebras gave happy face; Zookeeper Recommendations said there were not enough shelters
2nd and 3rd experimental shelters: zebras did not give happy face or frown face; Zookeeper Recommendations said there were not enough shelters
4th experimental shelter: zebras did not give happy face or frown face; Zookeeper Recommendations said the exhibit was perfectly suitable
5th and 6th experimental shelters: zebras did not give happy face or frown face; Zookeeper Recommendations said there were too many shelters
7th experimental shelter: zebras gave frown face; Zookeeper Recommendations said there were too many shelters
That is what I expected. The Zookeeper Recommendations were correct. The zebras did not give a happy face or a frown face when I was close enough with the number of shelters; but when I was further away from the number of shelters needed, the happy face and frown face were triggered properly.
Ah, I see.
Ok cool, that was probably the reason then, I only had one animal in the exhibit.
Thank you so much Jay, I think Im ready to make the rest of the shelters :D
Out of curiosity, is there any information about how the game assigns guest and animal names in the general files? I'm in an early part of a project involving reverse engineering the game and one of my wishlist functions I'm looking to interface is how the game gives assignment to names
I dug around the ZT folder and did some poking around. I found many lego-like bits and pieces for guests, but not much else. I really should work on some proper ZT1 modding before I go any further, might help me some to understand how the container files work. 😅
ZT is simplistic in the names it shows in zoos. For guests, ZT keeps a counter of how many guests have entered the zoo so far, which it uses to name the guests. So the first guest is Guest 1; the second is Guest 2; etc.. Similarly, ZT keeps a counter for each type of animal, which it uses to name the animals, along with the purchase menu name of the animal. So the first lion is Lion 1; the second is Lion 2; etc.. ZT also uses a counter for exhibit names, with the first being called Exhibit 1. And ZT uses a counter for staff names, with the first maintenance worker being called Maintenance Worker 1. But ZT allows people to change exhibit and staff names in their zoos. Buildings and other objects are similar, although the configuration of buildings and other objects allow us to say whether or not ZT should keep a counter for the object. We try to follow what ZT did for the buildings and objects that come with ZT. So we say to use counters for building names, but not for foliage, rocks, or scenery. ZT also uses the purchase menu names as part of the naming. So the first Restaurant is named Restaurant 1, but all small rocks are just called Small Rock. In the case of buildings, ZT allows people to change the names in their zoos.
That makes a lot of sense. I did find that counter used for guests in virtual memory some time last week, but it's not very useful to me alone, not yet sadly. It will be interesting if I can find the general class structure that is being used to instantiate the new guests, animals, etc and maybe then I can find what's concatenating the counter with a base string. I would have thought the counter and the base name would sit close in memory but does not appear so, or maybe I missed it.
I did not know there was a setting that turns this off though, that is super interesting. I'll have to take a closer look at the files.
Thank you for the information!
Hello all. I have a question for the knowledge base here that I have not been able to find info about elsewhere.
For context, I am working on a set of observation area / roof pieces.
I am curious about the config parameter cDrawsLate, which appears to be in the Dino Digs and Marine Mania observation area ucs files, but absent in the base game observation areas.
I was basing my new set on my Aquarium Set roof pieces, which carried this parameter over from the MM observation areas I based them on. But I realized I don't know what it's doing.
It sounds like it might have something to do with graphics layering, but testing it being off vs. being on so far I can't figure out what, and I can't find any reference to cDrawsLate in any of our config reference documents.
Thanks in advance!
I do not know what cDrawsLate does, but I have a guess. The zoo.exe program in the original ZT does not support cDrawsLate, but the zoo.exe program in DD does. DD updated the configuration of the observation areas that came in the original ZT so that they included cDrawsLate. Another thing added in DD was shadow animations for ambient birds that fly over the zoo, although ZT can create shadows for ambient birds without needing shadow animations. Maybe cDrawsLate tells ZT not to draw an ambient bird's shadow animation on the tile where the observation area is. If that is true, then ideally cDrawsLate should be in the configuration of all observation areas other than those that are made of see-through material such as glass. But I feel it is not a big deal if there are user made observation areas without that line, so it is not worth the effort to add it to things that were released already.