Devona's Guide

Read up on how to manipulate APE and basics of how to use APE - the Animal Project Editor - designed for the original version of Zoo Tycoon.
User avatar
fern
african elephant keeper
Posts: 9692
Joined: Thu Feb 26, 2004 3:29 am

Post by fern »

He is more like the absent minded professor. :lol:
I didn't think I changed the 1033 section, but I will insert "the" into the string: "the African Elephant" I may have deleted it by mistake.
Probably not. It is another of the Ape glitches that it frequently is not there and you will have to add it.
User avatar
Jay
african elephant keeper
Posts: 11552
Joined: Thu Jan 15, 2004 9:23 pm
Location: Orlando, FL (M:66)

Post by Jay »

Officially my IQ was 142, but I feel it is actually 150. On the test, there were a couple questions where they were treating words as mere parts of speech and I feel they should have been treated as patterns of symbols. In any case, fern is closer to the truth; I am more like an absent minded tutor, although some people did give me the nickname of "professor" when I was a teenager.

No, you did not change the [1033] section. In this case, APE put the [1033] section there, which it should. And APE did the best it could with the information it had. Technically, cTheString is not used for animals. But it is used for other user made things, so it is good to get in the habit of using "the" in it. Since I know you are experimenting, I did not talk about the [1033] section as much as I normally would. But normally you should always change the cLongHelp, cName, and cTheString to say what the animal is. For example, if this is a recolor to pink, then they should be something like "Pink African Elephant" instead of "African Elephant". So that is why I said the [1033] was your responsibility rather than APE's.

Depending on which animal is used as a base and what is being done, APE can cause other problems as well. And some of the things I mentioned to change for your elephant would not necessarily be done for other animals. For example, when an adult animal can jump but a young animal cannot jump, you would usually have to change the [y/Animations] section instead of delete it. That is why it is important to look at the ".ai" for the ingame animal used as a base, and why the Uca Editing Guide can be useful.
JohnRN1
zoo tour guide
Posts: 183
Joined: Thu Jan 28, 2010 12:15 pm

Post by JohnRN1 »

Jay and Fern.
I can't believe it! I just made my first UCA!! :D How can I every thank you for your time and patience? It's hardly a finished product, I still have to work out a few things...like changing a saltwater animal to freshwater, if possible, and going back over the uca for guidelines.

Your IQ's must be over 150, because a couple of instructions from you, and I understood them better than anything I had read previosly.

I am so thrilled I can still learn at my age!! Don't you both go away, I will still need lots of tutoring!!

--JohnRN1--
User avatar
Jay
african elephant keeper
Posts: 11552
Joined: Thu Jan 15, 2004 9:23 pm
Location: Orlando, FL (M:66)

Post by Jay »

Congratulations on making your first animal. :clap:

One can make an animal like fresh water instead of salt water by changing the [cCompatibleTerrain] section in the ".uca". Again, this is where the Uca Editing Guide comes in handy, since it has the different values for the different terrains. The [cCompatibleTerrain] contains pairs of lines. The first line of a pair indicates the type of terrain and the second line of a pair indicates one of two things: either a positive number indicating the percentage of an exhibit that the animal wants containing that terrain, or a negative number indicating how much the animal dislikes that terrain. If the animal likes salt water, there will be a pair of lines where the first line is "v = 10". If the animal likes fresh water, there will be a pair of lines where the first line is "v = 9". So, basically, you would want to change "v = 10" to "v = 9" to make an animal like fresh water instead of salt water. If there is already a "v = 9" (but there might not be), you want to change that one to "v = 10". Just make sure you are changing the first line of a pair of lines, rather than the second line of a pair.

As you work on an animal and when you finish an animal, it is a good idea to run the animal configuration checker against it:
viewtopic.php?t=1203
That can show some of the more common errors and inefficiencies in a ".uca".
JohnRN1
zoo tour guide
Posts: 183
Joined: Thu Jan 28, 2010 12:15 pm

Post by JohnRN1 »

Thanks again Teacher. I'm really hooked on this now.
ztdoctor
zoo docent
Posts: 297
Joined: Tue Sep 27, 2005 2:01 pm

Post by ztdoctor »

good!! well done! it is an incredible sense of achievement!
JohnRN1
zoo tour guide
Posts: 183
Joined: Thu Jan 28, 2010 12:15 pm

Post by JohnRN1 »

Thanks ZT, Jay and Fern.

I really hate to bother you, but it seems this is the only place in the world that makes expert technical advice easy for even me to understand. ;)

Well, blame Fern. From her post she said if I need any help to ask... :))

First off, I am having some trouble finalizing my "Fresie Crocodile", which is my first creation I posted about earlier. I can't get the animal to like the shelter, when I click on anyone except the shelters-for-all I have installed.
I removed them, and just have the in game shelters, but the croc rejects all of them. I have done a lot of experimenting, yet nothing I do in the oca editing works.

Also, I am having trouble with the foilage as my APE program has always been cut off on that compatability screen. I will send you a copy of the oca file again...I think I only added a small wood shelter to the objects section. But that didn't help. I want to send you a picture of my APE screen that has part of the section cut off, but I don't know if I can here. I don't see an upload section. Perhaps I can paste it in.

Thanks for your time and attention.

--JohnRN1--

[0E84CBE0]

[Global]
Class = animals
DefaultSubtype = m
Subtype
Type = 0E84CBE0

[AnimPath]
f = animals/0E84CBE0/m
m = animals/0E84CBE0/m
y = animals/0E84CBE0/y

[m/Icon]
Icon = animals/0E84CBE0/icswcroc/icswcroc

[Member]
animals

[m/Characteristics/Strings]
cBehaviorInfoTextName = SWCROC_BEHAVIOR
cFoodInfoTextName = SWCROC_ANIMAL
cGeneralInfoTextName = SWCROC_GENERAL
cHabitatInfoTextName = SWCROC_HABITAT
cKeeperFoodType = carnivore
cKeeperInfoTextName = SWCROC_KEEPER
cListImageName = animals/0E84CBE0/lsmswcro/lsmswcro
cPlaqueImageName = animals/0E84CBE0/plswcroc/plswcroc
cPrefIcon = objects/wtrreed/SE/SE

[m/Characteristics/Integers]
//Reserved for new prey animals
cAllCrowdedChange = -5
cAngryHabitatChange = -5
cAngryTreeChange = -5
cAnimalDensity = 20
cAttractiveness = 60
cBabyBornChange = 30
cBabyToAdult = 1440
cBashStrength = 0
cBuildingUseChance = 10
cCaptivity = 5
cChaseAnimalChance = 2
cClimbsCliffs = 0
cCrowd = 25
cCrowdHappinessChange = -5
cDeathChance = 10
cDeathChange = -5
cDirtyHabitatRating = 15
cDirtyIncrement = 10
cDirtyThreshold = 100
cDrinkWaterChance = 5
cEatVegetationChance = 0
cElevationPref = 0
cEnergyIncrement = 5
cEnergyThreshold = 100
cEnterLandChance = 10
cEnterWaterChance = 90
cEscapedChange = 30
cFamily = 5213
cFastRate = 66
cFlies = 0
cFoodTypes = 0
cFootprintX = 1
cFootprintY = 2
cGenus = 5123
cHabitat = 9413
cHabitatPreference = 70
cHabitatSize = 100
cHappyHabitatChange = 20
cHappyReproduceThreshold = 95
cHelpID = 5041
cHungerIncrement = 11
cHungerThreshold = 50
cHungryHealthChange = 10
cInitialHappiness = 50
cIsClimber = 0
cIsJumper = 0
cKeeperFoodType = 1
cKeeperFoodUnitsEaten = 25
cKeeperFrequency = 2
cLandNeeded = 4
cLocation = 9611
cMatingType = 0
cMaxEnergy = 100
cMaxHits = 400
cMediumRate = 46
cMimic = 10
cMimicHappyDiff = 50
cMinHits = 0
cNameID = 19000
cNeedShelter = 0
cNeededFood = 100
cNoFoodChange = -50
cNoMateChange = 0
cNotEnoughKeepersChange = -20
cNumberAnimalsMax = 3
cNumberAnimalsMin = 2
cNumberMaxChange = -5
cNumberMinChange = -5
cOffspring = 2
cOtherAnimalAngryChange = 0
cOtherAnimalSickChange = -10
cOtherFood = 0
cPctHabitat = 10
cPctHits = 20
cPrefIconID = 7062
cPrey = 5001
cPrey = 5003
cPrey = 5004
cPrey = 5005
cPrey = 5015
cPrey = 5019
cPrey = 5020
cPrey = 5021
cPrey = 5023
cPrey = 5025
cPrey = 5027
cPrey = 5028
cPrey = 5029
cPrey = 5031
cPrey = 5032
cPrey = 5033
cPrey = 5034
cPrey = 5036
cPrey = 5037
cPrey = 5038
cPrey = 5039
cPrey = 5040
cPrey = 5042
cPrey = 5043
cPrey = 5076
cPrey = 5077
cPrey = 5079
cPrey = 5300
cPrey = 5301
cPrey = 5302
cPrey = 5303
cPrey = 5304
cPrey = 5305
cPrey = 5306
cPrey = 5307
cPrey = 5308
cPrey = 5309
cPrey = 5310
cPrey = 5311
cPrey = 5312
cPrey = 5313
cPrey = 5314
cPrey = 5315
cPrey = 5316
cPrey = 5317
cPrey = 5318
cPrey = 5319
cPrey = 5320
cPrey = 5321
cPrey = 5322
cPrey = 5323
cPrey = 5324
cPrey = 9503
cPurchaseCost = 1500
cReproductionChance = 2
cReproductionInterval = 3240
cRockPref = 2
cSickChance = 5
cSickChange = -12
cSickTime = 4
cSlowRate = 20
cSocial = 1
cSpacePref = 80
cSwims = 1
cTimeDeath = 12960
cTreePref = 8
cVeryAngryHabitatChange = -30
cWaterNeeded = 6

[y/Characteristics/Integers]
cAttractiveness = 120
cChaseAnimalChance = 10
cIsJumper = 0

[m/Characteristics/Mixed]

[cCompatibleAnimals]
v = 5200
v = -20
v = 5201
v = -15
v = 5202
v = -20
v = 5203
v = -5
v = 5204
v = -10
v = 5205
v = -10
v = 5206
v = -20
v = 5207
v = -20
v = 5208
v = -20
v = 5210
v = -5
v = 5211
v = -5
v = 5212
v = -15
v = 5213
v = -20
v = 5214
v = -5
v = 5215
v = -5
v = 5216
v = -20
v = 5217
v = -20
v = 5041
v = 20

[cSuitableObjects]
v = 9410
v = -10
v = 9405
v = -25
v = 9400
v = -25
v = 9401
v = -25
v = 9402
v = -25
v = 9403
v = -25
v = 9407
v = -25
v = 9408
v = -10
v = 9409
v = -25
v = 9413
v = 3
v = 9414
v = -100
v = 7061
v = 7
v = 9200
v = 4
v = 9205
v = 2
v = 9206
v = 2
v = 6062
v = -10
V = 8110
V = 3
V = 7062
V = 3

[cCompatibleTerrain]
v = 2
v = -5
v = 3
v = 20
v = 4
v = -5
v = 5
v = -5
v = 6
v = -5
v = 7
v = 0
v = 8
v = -62
v = 9
v = 80
v = 11
v = -5
v = 12
v = 0
v = 13
v = -5
v = 16
v = -5

[m/Animations]
box_idle = objects/box/idle/idle.ani
box_used = objects/box/used/used.ani
dustball = objects/dustcld/idle/idle.ani
eat = eat
gape = gape
head_up = headup
idle = stand
jerk = jerk
look_left = lookl
look_right = lookr
lunge = lunge
open_gape = opengape
roar = roar
run = run
scuff = scuff
shake = shake
stand = stand
swim = swim
walk = walk
water_hiss = wathiss
water_idle = watidle
water_snap = snap
water_swattail = swattail
waterball = objects/watcloud/idle/idle.ani

[Sounds]
roar = swcroc1
roar = 1200
hiss = swcroc2
hiss = 1200
big_splash = animals/sealion/splash1.wav
big_splash = 1500
small_splash = animals/sealion/splash2.wav
small_splash = 1500
swim_splash = animals/sealion/swim.wav
swim_splash = 1500
dustball = swcroc1
dustball = 1000
waterball = animals/sealion/splash1.wav
waterball = 1000
placesound = swcroc1
placesound = 1200
pickupsound = swcroc2
pickupsound = 1200

[AmbientAnims]
a = 81
a = 100
a = 61
a = 80
a = 21
a = 60
a = -20
a = 20
a = -60
a = -21
a = -80
a = -61
a = -100
a = -81
b = bHappy
b = bFriendly
b = bCalm
b = bNeutral
b = bUneasy
b = bTense
b = bAngry

[AmbientAnimsWater]
a = -100
a = 100
b = bInWater

[defaultLCID]
LCID = 1033


[m/iCharacteristics/Integers]
cEnterLandChance = 100

[1033]
cGeneralInfoFileName = animals/0E84CBE0/texts/1033.txt
cLongHelp = Adopt a Freshie crocodile. Freshie crocodiles live in small groups. Freshie Crocs need large amounts of fresh water for swimming.
cName = Freshie Crocodile
cTheString = The Freshie Crocodile

[m\BehaviorSet\bHappy]
f = fPlaySetProb(bIdle1,20,bHappy1,50,bHappy2,30)

[m\BehaviorSet\bFriendly]
f = fPlaySetProb(bHappy3,70,bIdle2,30)

[m\BehaviorSet\bCalm]
f = fPlaySetProb(bCalm1,50,bIdle1,30,bIdle2,20)

[m\BehaviorSet\bNeutral]
f = fPlaySetProb(bIdle1,50,bIdle2,50)

[m\BehaviorSet\bUneasy]
f = fPlaySetProb(bUneasy1,65,bIdle2,35)

[m\BehaviorSet\bTense]
f = fPlaySetProb(bTense1,70,bAngry3,30)

[m\BehaviorSet\bAngry]
f = fPlaySetProb(bAngry1,40,bAngry2,40,bNoise3,20)

[m\BehaviorSet\bInWater]
f = fPlaySetProb(bWaterIdle,40,bWaterActive,40,bWaterActive2,20)

[m\BehaviorSet\bEscaped]
f = fPlaySetProb(bEscaped1,70,bNoise3,30)

[m\BehaviorSet\bBabyActions]
f = fPlaySetProb(bBaby2,67,bIdle1,33)

[m\BehaviorSet\bPlayToys]

[m\BehaviorSet\bPlayWithToyHappy]

[m\BehaviorSet\bPlayWithToyFriendly]

[m\BehaviorSet\bSoundtest1]
f = fPlayWithSound(shake,honk2)

[m\BehaviorSet\bHappy1]
f = fPlay(stand)
f = fPlayPingPong(look_right)
f = fPlay(stand)
f = fWalk(0,0)
f = fPlay(stand)

[m\BehaviorSet\bHappy2]
f = fPlay(stand)
f = fWalk(0,0)
f = fPlay(jerk)
f = fPlayTime(stand,8)
f = fPlayWithSound(roar,roar)
f = fPlay(stand)

[m\BehaviorSet\bHappy3]
f = fPlay(stand)
f = fPlay(shake)
f = fPlayTime(stand,9)
f = fPlay(open_gape)
f = fPlayTime(gape,8)
f = fPlayReverse(open_gape)
f = fWalk(0,0)
f = fPlay(stand)

[m\BehaviorSet\bCalm1]
f = fPlay(stand)
f = fPlayPingPong(look_left)
f = fPlayTime(stand,12)
f = fPlay(scuff)
f = fPlay(stand)

[m\BehaviorSet\bUneasy1]
f = fPlay(stand)
f = fWalk(0,0)
f = fPlayTime(stand,6)
f = fPlay(jerk)
f = fPlay(stand)

[m\BehaviorSet\bTense1]
f = fPlay(stand)
f = fWalk(0,0)
f = fPlay(jerk)
f = fPlayWithSound(roar,roar)
f = fPlayTime(stand,6)
f = fPlay(shake)
f = fPlay(stand)

[m\BehaviorSet\bAngry1]
f = fPlay(stand)
f = fPlayWithSound(roar,roar)
f = fMove(0,0,lunge,12)
f = fPlay(stand)
f = fPlay(open_gape)
f = fPlayTime(gape,12)
f = fPlayReverse(open_gape)
f = fPlayTime(stand,6)
f = fPlayWithSound(roar,roar)
f = fPlay(stand)
f = fWalk(0,0)
f = fPlay(stand)

[m\BehaviorSet\bAngry2]
f = fPlay(stand)
f = fPlayWithSound(roar,roar)
f = fPlay(stand)
f = fMove(0,0,lunge,12)
f = fPlay(stand)
f = fPlay(jerk)
f = fPlayTime(stand,8)
f = fPlayWithSound(roar,roar)
f = fPlay(stand)

[m\BehaviorSet\bAngry3]
f = fPlay(stand)
f = fPlayWithSound(roar,roar)
f = fPlayTime(stand,6)
f = fPlay(shake)
f = fPlayWithSound(roar,roar)
f = fPlay(stand)
f = fMove(0,0,run,46)
f = fPlay(stand)

[m\BehaviorSet\bIdle1]
f = fPlay(stand)
f = fPlayPingPong(look_left)
f = fPlayTime(stand,6)
f = fPlay(jerk)
f = fPlay(stand)

[m\BehaviorSet\bIdle2]
f = fPlayTime(stand,9)
f = fPlay(open_gape)
f = fPlayTime(gape,12)
f = fPlayReverse(open_gape)
f = fPlay(stand)

[m\BehaviorSet\bIdle3]
f = fPlayTime(stand,7)
f = fPlay(shake)
f = fPlay(stand)

[m\BehaviorSet\bNoise1]
f = fPlay(stand)
f = fPlayWithSound(roar,roar)
f = fPlay(stand)

[m\BehaviorSet\bNoise2]
f = fPlayTime(stand,7)
f = fPlayWithSound(roar,roar)
f = fPlay(stand)

[m\BehaviorSet\bNoise3]
f = fPlay(stand)
f = fPlayWithSound(roar,roar)
f = fPlay(stand)

[m\BehaviorSet\bSleep]
f = fPlay(stand)
f = fPlayTime(stand,25)
f = fPlay(stand)

[m\BehaviorSet\bDie]
f = fPlay(stand)
f = fPlayTime(stand,5)
f = fPlayTime(stand,5)
f = fDie()

[m\BehaviorSet\bEat]
f = fFaceTowardFood()
f = fPlay(stand)
f = fPlay(eat)
f = fPlay(stand)
f = fPlay(eat)
f = fPlay(stand)
f = fPlay(eat)
f = fPlay(stand)

[m\BehaviorSet\bSick]
f = fPlay(stand)
f = fPlayTime(stand,25)
f = fPlay(stand)

[m\BehaviorSet\bFindKeeperFood]
f = fWalk(keeperfood,0)
f = fPlaySet(bEat)

[m\BehaviorSet\bFindOtherFood]
f = fWalk(otherfood,0)
f = fPlaySet(bEat)

[m\BehaviorSet\bEscaped1]
f = fPlay(stand)
f = fWalk(0,0)
f = fPlay(stand)
f = fPlayWithSound(roar,roar)
f = fPlay(stand)

[m\BehaviorSet\bChasePrey]
f = fMove(prey,0,run,46)

[m\BehaviorSet\bCaughtPrey]
f = fDustBall()
f = fPlaySetTerrain(bAfterCaught,bWaterIdle)

[m\BehaviorSet\bAfterCaught]
f = fPlay(stand)
f = fPlayWithSound(roar,roar)
f = fPlay(stand)

[m\BehaviorSet\bCaughtGuest]
f = fPlayWithSound(roar,roar)
f = fPlay(stand)

[m\BehaviorSet\bCaught]
f = fFollow(keeper)

[m\BehaviorSet\bRunFromPredator]
f = fRun(0,0)

[m\BehaviorSet\bBaby1]
f = fPlay(stand)
f = fWalk(mother,0)

[m\BehaviorSet\bBaby2]
f = fPlay(stand)
f = fWalk(mother,0)

[m\BehaviorSet\bBored1]
f = fPlayTime(stand,10)

[m\BehaviorSet\bBored2]
f = fPlayTime(stand,10)

[m\BehaviorSet\bAngryKeeper]
f = fPlay(stand)

[m\BehaviorSet\bWalk]
f = fWalk(0,0)

[m\BehaviorSet\bRun]
f = fMove(0,0,run,36)

[m\BehaviorSet\bWaterIdle]
f = fPlay(water_idle)
f = fMove(0,0,swim,26)
f = fPlayTime(water_idle,20)
f = fPlaySpecial(water_hiss,small_splash,0,0,0)
f = fPlayTime(water_idle,25)
f = fMove(0,0,swim,26)
f = fPlay(water_idle)

[m\BehaviorSet\bWaterActive]
f = fPlay(water_idle)
f = fMove(0,0,swim,26)
f = fPlayTime(water_idle,15)
f = fPlaySpecial(water_swattail,small_splash,0,0,0)
f = fPlayTime(water_idle,12)
f = fPlaySpecial(water_snap,big_splash,0,0,0)
f = fPlay(water_idle)

[m\BehaviorSet\bWaterActive2]
f = fPlay(water_idle)
f = fPlayTime(water_idle,16)
f = fPlaSpecial(water_snap,big_splash,0,0,0)
f = fPlayTime(water_idle,18)
f = fMove(0,0,swim,26)
f = fPlay(water_idle)

[m\BehaviorSet\bRattle]
f = fPlayWithSound(box_used,placesound)

[AmbientAnims]
;a = -100
;a = 100
;b = bSoundtest1
a = 81
a = 100
b = bHappy
a = 61
a = 80
b = bFriendly
a = 21
a = 60
b = bCalm
a = -20
a = 20
b = bNeutral
a = -60
a = -21
b = bUneasy
a = -80
a = -61
b = bTense
a = -100
a = -81
b = bAngry

[AmbientAnimsWater]
a = -100
a = 100
b = bInWater
User avatar
fern
african elephant keeper
Posts: 9692
Joined: Thu Feb 26, 2004 3:29 am

Post by fern »

So what sort of shelter would you like? You can have it like any particular one you want. A burrow might be nice.
JohnRN1
zoo tour guide
Posts: 183
Joined: Thu Jan 28, 2010 12:15 pm

Post by JohnRN1 »

I was thinking of a burrow too. But, I don't understand why the croc doesn't like any of the in game shelters. I think the original in game croc likes the wood and concrete shelters. In my game, they don't like any.

Also, in my game they don't like any foilage other than the water lilly. water reed, christmas tree, or hornwart. Strange!??
User avatar
fern
african elephant keeper
Posts: 9692
Joined: Thu Feb 26, 2004 3:29 am

Post by fern »

From memory the ingame one does not like any shelters
JohnRN1
zoo tour guide
Posts: 183
Joined: Thu Jan 28, 2010 12:15 pm

Post by JohnRN1 »

Your right again, Fern. Even through all your coughing...I hope you feel better soon.

Well, I noticed that putting in any 8100 shelter in the objects/scenery section didn't work. I have 8110 in there now.

Additionally, I entered different numbers above 0 in the APE for different foilage (trees) and then redid the oca, but the croc still rejects my trees...any trees. So, I guess there must be some kind of entry somewhere in the oca that ZT will recognize as a shelter or tree likeable object.

And, BTW. Do you think my Freshie Croc won't be very original because I can't make it small like the real one is?
User avatar
Jay
african elephant keeper
Posts: 11552
Joined: Thu Jan 15, 2004 9:23 pm
Location: Orlando, FL (M:66)

Post by Jay »

No, this site does not allow adding attachments. The owner of the site did not want to use up bandwidth that way.

When you describe a problem, it is important to be as specific as possible about what you are seeing or expecting. For example, saying your animal does not like shelters can mean many different things. It might mean your animal is giving a frown when a shelter is added, or it might mean your animal is not giving a smile when a shelter is added and you were expecting one, or it might mean the Zookeeper's Recommendations are saying your animal does not like the shelter, or it might mean the Zookeeper's Recommendations are saying there are too many shelters, or it might mean your animal is not going in the shelter and the game was going for a long time. Each of these things means something different in the ".uca".

I looked at your ".uca" and I suspect there are two things being seen when adding a shelter into the exhibit. I suspect the animal is giving a frown and I suspect the Zookeeper's Recommendations are saying there are too many shelters, although I am not sure about that second one. There are 2 things causing the first problem. Inside your [cSuitableObjects] section, you have the following lines:
V = 8110
V = 3
V = 7062
V = 3

When editing the ".uca", it is very important which letters should be upper case and which should be lower case. ZT only understands "v" lines and not "V" lines. The second thing is the "3". All shelters are configured to be habitat 9410. The Uca Editing Guide says that habitat 9410 means "Non-habitat", although the meaning is not important. If you look inside your [cSuitableObjects] section, you will see the following lines:
v = 9410
v = -10

All animals do something like this. It means that, by default, the animal will not be happy when a shelter is added. So if you want your animal to not give a frown when a specific shelter is added, you would have to add that shelter to the [cSuitableObjects] section with a value of at least 10, in this case, because ZT will add the value to the "-10" from the above pair of lines. So if you want your animal to not give a frown or a smile (at least from a happiness perspective), you would have the following:
v = 8110
v = 10

If you wanted your animal to give a smile when the shelter is added (at least from a happiness perspective), you would have to have a higher number than 10, such as:
v = 8110
v = 11

Just these changes, however, will not necessarily make your animal give a smile, though, because the frowns and smiles involve other things, such as suitability, in addition to happiness.

The foliage is a similar type of thing. All foliage also have a habitat assigned to them. The water lily and water reed, for example, have an Aquatic habitat assigned to them. The Uca Editing Guide shows that the Aquatic habitat number is 9413. If you look in your [cSuitableObjects] section, you will see the following lines:
v = 9413
v = 3

Since "3" is a positive number, that means the animal will be happy with any aquatic foliage. In the original ZT, there are only 2: water lily and water reed. DD added 2 more; MM added 22 more. Although the animal will like any aquatic foliage, it will like some more than others. If you look in your [cSuitableObjects] section, you will see the following lines:
v = 7061
v = 7

7061 is the number for the Water Lily. So ZT would determine how much the animal likes the water lily by adding the 7 with the value of 3 that was with the 9413 habitat, giving a total value of 10. If you want your animal to like the water reed as much, you would want the following lines in the [cSuitableObjects] section:
v = 7062
v = 7

If the Zookeeper's Recommendations are saying there are too many shelters when adding only 1 shelter (and I do not know if it is saying that), then it would be because of the "cNeedShelter = 0" line in the [m/Characteristics/Integers] section. The "0" means that your animal does not need a shelter (although it could still use one because of the cBuildingUseChance = 10 line). Setting cNeedShelter to 1 would tell ZT that the animal requires a shelter. But hopefully the Zookeeper's Recommendations are not giving that message.

Your animal probably also gives a frown when a second one of your animal is added. This is similar to the above problems, but in the [cCompatibleAnimals] section. You have to look in that section for the family and genus numbers. The family and genus numbers are in the [m/Characteristics/Integers] section and are the following for your animal:
cFamily = 5213
...
cGenus = 5123

5123 is not in the [cCompatibleAnimals] section, but 5213 is:
v = 5213
v = -20

According to the Uca Editing Guide, 5213 is for the Crocodile family. Since the second number is negative, that means your animal will not like any member of the crocodile family, unless there is some other line pairs in the section for a specific animal. In the section, there is the following:
v = 5041
v = 20

5041 is the number for the ZT crocodile. ZT will add the 20 to the -20 that was with the family, giving a total value of 0, which means your animal will not give a frown or a smile when the ZT crocodile is added to the same exhibit. But since there is not an equivalent pair of lines for your animal, then your animal will give a frown if another one is added. To correct that, the following lines need to be added to the [cCompatibleAnimals] section:
v = 0E84CBE0
v = 20

0E84CBE0 is the id for your animal. If you wanted it to have a smile when another is added, instead of no reaction either way, then you can use 21 instead of 20.

When the animal configuration checker is run against the above ".uca", it actually points out a couple of these problems:
*** Warning: Sum of family, genus, and animal id/type values are < 0.
*** Warning: cPrefIconID 7062 is not in [cSuitableObjects] with value > 0.

Even with the problems, though, your crocodile should still be using a ZT wooden shelter or concrete shelter if they are in the exhibit. Those shelters are configured to allow any animal. Your animal would not use the ZT burrow or most of the other ingame shelters, however, because most ingame shelters are configured for specific animals.

There are some additional changes I recommend making to the ".uca". The "//Reserved for new prey animals" line in the [m/Characteristics/Integers] section is a comment and can be removed for efficiency. Since a user made animal cannot actually catch a man guest (the graphics would temporarily change to a lion if it did), I would also remove the "cPrey = 9503" line from that section. In order to make the foliage tooltip work properly for females and young, I would have a "cPrefIconID = 7062" line (which is in the [m/Characteristics/Integers] section) to the [y/Characteristics/Integers] section and also create the following section:
[f/Characteristics/Integers]
cPrefIconID = 7062

The following pairs of lines can be removed from the [cCompatibleTerrain] section, since the second lines are 0's:
v = 7
v = 0

v = 12
v = 0

In the [Sounds] section, I would add animals/swcroc/ before all swcroc1 and swcroc2, and add .wav after them. This would use the ingame sounds directly and allow the ".wav" files to be removed from the ".ztd".

Although it does not matter for animals, technically the cTheString in [1033] section should be "the Freshie Crocodile" instead of "The Freshie Crocodile".

The [AmbientAnims] and [AmbientAnimsWater] sections are in the file twice. I would remove the ones at the end of the file.

As for not being able to see all of the foliage in APE, I would recommend changing the ".uca" manually anyway. Whenever APE makes a change, it messes up other things in the file. But it can be difficult finding what numbers represent each of the ingame foliage. There might be a list at some site, but I do not know for sure. At some point it will be at the DG site, but I don't believe it is yet.

Good luck with your animal.
User avatar
fern
african elephant keeper
Posts: 9692
Joined: Thu Feb 26, 2004 3:29 am

Post by fern »

Have a look at this article at ZA
http://www.zooadmin.net/index.php?action=a...view;article=50
I would also browse through that Articles area as there might be other useful things there.
JohnRN1
zoo tour guide
Posts: 183
Joined: Thu Jan 28, 2010 12:15 pm

Post by JohnRN1 »

Thank you so much...again!! Jay and Fern.
That was my main problem... I couldn't find what that second pair of numbers v = 1,2,3 etc meant. I will work on your recommendations and let you know how it's going.

If I have more questions, I will try to be as specific as I can...but you hit on it in your last post. The crocs were giving frowning faces on all shelters and trees.
User avatar
fern
african elephant keeper
Posts: 9692
Joined: Thu Feb 26, 2004 3:29 am

Post by fern »

Hi John
It looks like ztuf is down so here is what I posted
Okay ingame I have one gripe with this. The menu icon is yuck. You can do better. So do you know how to use Zoot? Do you have a graphics program? If not I would suggest you download Gimp which is free and one I know a little, and I mean a little, about.
Also go Here and look through to see if there are any backgrounds you might like for your icon and go fetch them

Other than seeing a need to fix this I really enjoyed playing with them.

Further instructions coming when you are ready.
Post Reply