(Designer)Jymn Posted December 26, 2022 Author Posted December 26, 2022 Well, not to be a bother, but would it be possible for you to pass along the new highland and reindeer? I wouldn't want him to spend time looking at an old version
Fern Posted December 26, 2022 Posted December 26, 2022 Have done so. I see you added them to the original posts.
(Designer)Jymn Posted December 30, 2022 Author Posted December 30, 2022 Okay got a "new" object I think will be useful. Just a copy of the fallen rainforest tree, but now it is only 1x4 squares instead of the whopping 2x5 of the original. I barely had to change the graphic at all. The normal one really is a space hog. Exhibit neutral, water placeable, tank placeable, cannot be made rubble. Â Â Â Jm_FallenTreeSmlr.zip 1 1
Fern Posted December 31, 2022 Posted December 31, 2022 Just a couple of quick things till I look at it closer. We encourage players to put user made files in dlupdate rather than Update since the Update folder has ingame files making it easy to accidentally delete something they shouldn't. You did not change the [EstheticBonus] which means that the guests do not like it. If you were cricket or ZZ or some others they would be set at 20. From my guide: http://www.ztcdd.org/DG/index.php?topic=3954.0 [EstheticBonus]  These settings indirectly affect guest happiness. v = 9503  Man v = 8  This is how pretty a man thinks this object is. v = 9504  Woman v = 8  This is how pretty a woman thinks this object is. v = 9505  Boy v = 8  This is how pretty a thinks this object is. v = 9506  Girl v = 8  This is how pretty a girl thinks this object is.  cAutoRotate = 0 is there twice
(Admin)Savannahjan Posted December 31, 2022 Posted December 31, 2022 I'm glad to see this size change, it has always just taken up too much space.  I am looking forward to more of your 'tinkering' Jymn.  1
Fern Posted January 2, 2023 Posted January 2, 2023 An answer from Jay: Good for you on figuring out how to get the highland yeti to show up in ZT and for realizing the reindeer.ai was originally missing. I was originally going to talk about fixing those. The cNameID setting in ".uca", ".ucs", ".ucb", and ".ai" files tells ZT where to get language specific messages and whether the animal or object is available immediately. The following is the complicated technical details. If the cNameID setting is in the range 19000 to 21999, ZT makes the animal or object available immediately and ZT looks for the language specific messages inside the ".uca", ".ucs", ".ucb", and ".ai" files. In the case of the yeti, ZT looks in the [1033] for U.S. English messages and looks at the LCID setting in the [defaultLCID] section to see which language section to use for computers running any other language versions of ZT. The [1033] section has 4 settings: cName has the name of the animal or object to show in the purchase menu; cLongHelp has the tooltip that is shown when the mouse cursor is moved over the animal or object in the purchase menu; cGeneralInfoFileName says which file contains the animal info; cTheString is for objects rather than for animals and says what phrase to use when an animal dislikes the object, which is normally the same as cName with "the " added for English messages. Although ZT recognizes the range 19000 to 21999, APE and APExp always use 19000, so that is what we use. If the cNameID setting is not in the range 19000 to 21999, ZT looks inside the various lang ".dll" files to find that ID number. That will give the name of the animal or object to show in the purchase menu. In the case of objects, ZT adds 55000 to that ID, looks for that number in the various ".dll" files, and uses the found phrase to know what to say when an animal dislikes the object. When the cNameID setting is not in the range 19000 to 21999, ZT also uses 2 other settings for animals and 1 other setting for objects. ZT then uses the cHelpID setting to know what tooltip to show when the mouse cursor moves over the animal or object in the purchase menu. But ZT makes 2 attempts using the cHelpID setting. First it adds 30000 to cHelpID and looks for that number in the various lang ".dll" files. If it does not find that number, then ZT uses the cHelpID number directly when looking in the various lang ".dll" files. In the case of animals, ZT also uses the cGeneralInfoTextName setting. That setting gives a name for ZT to look for in the various lang ".dll" files to get the animal info. When the cNameID setting is not in the range 19000 to 21999, ZT does not make the animal or object available immediately. Instead, there has to be an unlock file to say when to make available any animal or object with that cNameID number. You mentioned comparing files line by line. I do that type of comparison a lot. There is a free and open source program that can make it easier to compare files. It is called winmerge and is available at: http://winmerge.org As for whether or not something should be a hack, that will always be subjective. There are advantages either way. I have made hacks and I have made things that were not hacks. Whenever possible, I try to use a way that is not a hack. That reduces the chance of conflicts. With the yeti, for example, there are yeti hacks from casey, devona, penguino, saobie, zootan, ztuncrated, maybe mjmannella, and possibly others. Probably none of those needed to be hacks. If more than one hack of the same type is in ZT at the same time, ZT will use only one of them. There are also different levels of hacks. The least risky hack is a type that does not affect saved games or scenarios. If I create a hack, it is at this level. The next level is a type that does not affect freeform saved games but affects scenarios and possibly scenario saved games. The next level is a type that can affect any saved game. For these last two levels, these are usually hacks where an animal likes something less than previously or the exhibit suitability changed. The riskiest hacks are those that involve changing or deleting ZT's files. I always recommend that people never use any hack or change that involves changing or deleting any of ZT's files other than ZT's zoo.ini file. It is too easy for ZT, APE, or APExp to no longer work properly. It is also subjective how to word where to place a new ".ztd" file for ZT. And it is complicated. When Blue Fang created CC, they wanted user ".ztd" files to be in a different folder than Blue Fang ".ztd" files. I agree with this approach, since it makes it less likely to delete a Blue Fang file. So for CC, the Updates folder is for Blue Fang files and dlupdate (which is different than dupdate) is for user ".ztd" files. Previous versions of ZT had the Updates folder, but not the dlupdate folder. Some people with MM and the official downloads have created the dlupdate folder manually; others have not. Some people, like me, have created a hacks folder for most hacks. Some people, like me, have created a mapmaker folder for hacks that are meant only for editing maps, such as moving or changing zoo walls or changing outside zoo walls. My "Developer Menu Hack" topic at DG shows how I worded the placement of the hack: http://www.ztcdd.org/DG/index.php?topic=5355.0 When fern mentioned APExp3-2, she was not saying it was necessary to use that. She was just saying that is the version to use over previous versions of APE and APExp because it fixes a lot of problems of the previous versions. But it is still using the original APE program as its base. So all versions of APE and APExp can cause problems. My preference is to avoid using APE or APExp. But that often involves a lot more work. So sometimes I use APExp3-2 to avoid that extra work. I decide on a project by project basis whether or not I use APExp3-2. One disadvantage of all versions of APE and APExp is that the 8-character ID it creates for a project can eventually be created again for a different project. When we create IDs of our own, we can add initials to the ID to reduce the chance of conflicts. I see you did that by creating the ID "jmhiyeti". That is good. I assume the "jm" part of that ID are the initials you will be using for your projects. I use "jy" at the end of IDs I create for my projects. There is a list at DD with initials used by various designers. That way other designers will know what letters not to use at the start or end of their IDs, which will prevent conflicts among these designers. If you like, I can add "jm" to that list: http://www.ztcdd.org/DD/index.php?topic=9733.msg39271#msg39271 Your Jm_PolarBearDimorph_Hack.ztd has desktop.ini files that should not be there. When using graphics or sounds of ZT's animals, it is not necessary to copy those graphics and sounds into the ".ztd". The settings in the [AnimPath] section say where to find the graphics for the male, female, and young. These can be set to different ZT animals. For example, if I was using ZT's magnet graphics for the male and ZT's polar bear graphics for the female, I could just change the settings in the [AnimPath] section. This is true even if I am making a totally new animal. But if I use 2 different ZT animal graphics for a single animal, I might need to have different [m/Animations] and [f/Animations] sections. This technique could be useful for your various animals. To link to ZT's sounds, I would use full paths in the [Sounds] section. That was done for your jmhiyeti.uca, so the ".wav" sound files are not needed in its ".ztd". That can be done for the other animals as well. Similarly, hacks do not need ".cfg" or "unlock" files if they are copies of ZT's. ZKL has animal configuration checkers. I ran these checkers for the four animals of yours. The following shows the warning and efficiency messages. Although all of these things can be fixed, it is up to you what or how much to fix, if anything. All animals that come with ZT also have the checkers show warnings. I added a character to the start of each warning and efficiency message line. "=" means that it also occurs for ZT's animal. "<" means that it also occurs for ZT's animal, but with a different file inside ZT's ".ztd". ">" means that it does not occur for ZT's animal but occurs for your animal. Jm_PolarBearDimorph_Hack.ztd Polar Bear polarbr.ai date: Sat Dec 24 19:20:44 2022 Results From Configuration Checking (2022-10-29 checker version): >*** Warning: animals/polarbr/m/icekeg/icekeg.ani is not in ztd. >*** Warning: animals/polarbr/m/sicekeg/sicekeg.ani is not in ztd. >*** Warning: animals/polarbr/m/uicekeg/uicekeg.ani is not in ztd. =*** Warning: animals/polarbr/y/highjump/highjump.ani is not in ztd. >* Efficiency: animals/polarbr/plpolar/plpolar.pal not used, so not needed. <*** Warning: Frame count 44 for animals/polarbr/f/sicekeg/nw does not match first frame count of 45 <*** Warning: Frame count 44 for animals/polarbr/f/sicekeg/se does not match first frame count of 45 <*** Warning: Frame count 44 for animals/polarbr/f/sicekeg/sw does not match first frame count of 45 <*** Warning: Frame count 44 for animals/polarbr/f/uicekeg/nw does not match first frame count of 45 <*** Warning: Frame count 44 for animals/polarbr/f/uicekeg/se does not match first frame count of 45 <*** Warning: Frame count 44 for animals/polarbr/f/uicekeg/sw does not match first frame count of 45 =*** Warning: No cPrefIconID in [f/Characteristics/Integers] section. =*** Warning: No cPrefIconID in [y/Characteristics/Integers] section. =*** Warning: f= has Baby1, but there is no BehaviorSet\Baby1]. =*** Warning: Sound polar4 is in BehaviorSet, but is not in [Sounds]. =*** Warning: fPlay in bSick for land animal that can be in water. =*** Warning: fPlay in bSick for land animal that can be in water. =*** Warning: fPlay in bSick for land animal that can be in water. =*** Warning: fPlay in bSick for land animal that can be in water. =*** Warning: fPlay in bSick for land animal that can be in water. =*** Warning: No fPlay... type of line before fPlayTime line. =*** Warning: No fPlay... type of line or fDie line after fPlayTime line. Jm_ReindeerImproved_Hack.ztd Reindeer reindeer.ai date: Sat Dec 24 18:15:52 2022 Results From Configuration Checking (2022-10-29 checker version): >* Efficiency: animals/reindeer/icmreind/icmreind.pal not used, so not needed. >* Efficiency: animals/reindeer/lsmreind/lsmreind.pal not used, so not needed. =*** Warning: No cPrefIconID in [f/Characteristics/Integers] section. =*** Warning: No cPrefIconID in [y/Characteristics/Integers] section. =*** Warning: f= has Baby1, but there is no BehaviorSet\Baby1]. =*** Warning: No fPlay... type of line before fPlayTime line. =*** Warning: No fPlay... type of line or fDie line after fPlayTime line. >* Efficiency: Line pair with 2nd being 'v=0' not needed in [cSuitableObjects]. Jm_YetiAbmn_Hack.ztd Yeti B101B026.uca date: Thu Dec 22 00:36:38 2022 Results From Configuration Checking (2022-10-29 checker version): =*** Warning: animals/b101b026/y/stndnoi/stndnoi.ani is not in ztd. =*** Warning: No cPrefIconID in [f/Characteristics/Integers] section. =*** Warning: No cPrefIconID in [y/Characteristics/Integers] section. =*** Warning: f= has bWaterActive, but there is no BehaviorSet\bWaterActive]. =*** Warning: f= has Baby1, but there is no BehaviorSet\Baby1]. =*** Warning: No fPlay... type of line before fPlayTime line. =*** Warning: No fPlay... type of line or fDie line after fPlayTime line. >* Efficiency: Line pair with 2nd being 'v=0' not needed in [cSuitableObjects]. >* Efficiency: Line pair with 2nd being 'v=0' not needed in cCompatibleTerrain. Jm_YetiHighland.ZTD Highland Yeti jmhiyeti.uca date: Mon Dec 26 01:34:28 2022 Results From Configuration Checking (2022-10-29 checker version): >*** Warning: animals/jmhiyeti/y/highjump/highjump.ani is not in ztd. =*** Warning: animals/jmhiyeti/y/stndnoi/stndnoi.ani is not in ztd. >* Efficiency: animals/jmhiyeti/yeti01.wav not in uca, so not needed. >* Efficiency: animals/jmhiyeti/yeti02.wav not in uca, so not needed. >* Efficiency: animals/jmhiyeti/yeti03.wav not in uca, so not needed. >*** Warning: cHappyReproduceThreshold in non-Default Characteristics/Integers]. >*** Warning: cOffspring in non-DefaultSubtype '/Characteristics/Integers]'. >*** Warning: cReproductionChance in non-Default '/Characteristics/Integers]'. >*** Warning: cReproductionInterval in non-Default '/Characteristics/Integers]'. >*** Warning: cHappyReproduceThreshold in non-Default Characteristics/Integers]. >*** Warning: cOffspring in non-DefaultSubtype '/Characteristics/Integers]'. >*** Warning: cReproductionChance in non-Default '/Characteristics/Integers]'. >*** Warning: cReproductionInterval in non-Default '/Characteristics/Integers]'. =*** Warning: f= has bWaterActive, but there is no BehaviorSet\bWaterActive]. =*** Warning: No fPlay... type of line before fPlayTime line. =*** Warning: No fPlay... type of line or fDie line after fPlayTime line. >* Efficiency: [f/Animations] section can be removed; it matches DefaultSubtype. >* Efficiency: [y/Animations] section can be removed; it matches DefaultSubtype. >* Efficiency: iCharacteristics/Integers] sections are unused + can be removed.
(Designer)Khaydar Posted January 2, 2023 Posted January 2, 2023 Making original animals more accurate while keeping the old model.... What kind of sorcery is this? This is something I wanted for a very long time, thank you. The log scenery is great, a half tile version would be lovelly to create more natural looking landscapes, however I don't know how the game rendering will take it, when it comes to choosing what to drawn over. 1
Fern Posted January 3, 2023 Posted January 3, 2023 I checked with Jay about this since you renamed them. Normally we would just delete them. For the tree, i.pal and jmfaltr.pal are not used and can be deleted. That would be more efficient, but otherwise that does not cause a problem.
(Designer)Jymn Posted January 5, 2023 Author Posted January 5, 2023 Thankyou Jay, for the kind and detailed response. I learned so much reading that! I have updated dimorphic polar bear because the configuration checker warnings reminded me that magnets have no icy keg animations so I had to grab some from polar bear. And I took your advice about just pointing it to the original animal to get animations so I don't think it has any redundant/useless files anymore. 1
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now