How to bypass the 40-dino limit

Animal/Building ini, inx and nwt doubts

How to bypass the 40-dino limit

Unread postby brolyeuphyfusion » Wed, 8th Jun 2016 8:42

(concept by me, code and video by DPJWei/EchoGreen)

After thinking about things for a while, I may have come up with a hypothesis on how to get past that 40 dinosaurs limit that have restricted mods for so long.

And I'm not talking about exercise-exclusive species.

It's basically goes like this: You'll have to take advantage of the fact that you could have units outside of the DinoList.ini and the FslHunt.ini lists.

Just don't add them to the Fslhunt.ini or the DinoList.ini. I got the idea after thinking about how the famous "Dino poop mod" turns the "excrmnt" unit into a functional "dinosaur" despite it not being included in the DinoList.ini or the Fslhunt.ini. With the DPM, you could effectively have 41 dinosaur species in your game. But what if you wanted 50?

You'll have to spawn them using feeders. That's right, feeders. You'll have to copy the carnivore feeder. Instead of having the carnivore feeder copy spawn cows and goats, it would spawn dinosaurs.

And no, you're not going to use goat and cow clones with dinosaur models. Everything in the .ini, .inx, and .nwt, will be the same as that of a regular hatchery-spawned dinosaur, except that the Directory and TClass values will be that of livestock.

Code: Select all
    Directory=AUnitFoodCow;
    TClass=AUnitFoodCow;


You'll also need to replace the contents of your FodGraze.fsm file with the one below:

Code: Select all
machine FodderGraze
{
    default state Start
    {
        action AddRandomAnimation("call", "01_lp", 10.0, 15.0)
        action AddRandomAnimation("tail", "flck_lp", 3.0, 5.0)
        action StartLook("LookProximity", 0.5)
        action ClearTarget()
        action SetRunMode(false)
        action SetSpeedModifierWalk(1.0)
        transition IsAnimLoaded("call", "02_lp")
        {
            direct goto PreDinoWander
        }
        transition
        {
            goto SetWander
        }
    }

    state SetWander
    {
        transition SetWander() == true
        {
            action SetRandomTimerBetween(1, 5.0, 7.0)
            goto GetTarget
        }
    }

    state GetTarget
    {
        transition HasArrived()
        {
            goto Start
        }
        transition IsTimerUp(1)
        {
            goto GrazeStart
        }
    }
    state GrazeStart
    {
        transition IsInGrazeArea() == false
        {
            goto GetTarget
        }
        transition
        {
            action SetStandStill()
            action SetRandomTimerBetween(1, 1.0, 2.0)
            goto Graze
        }
    }

    state Graze
    {
        transition IsTimerUp(1)
        {
            action SetSpeedDirect(0.0)
            action SetStandStill()
            action SendEnclosureEvent("feeding_plant")
            action StopAllRandomAnimations()
            action SetAutoMovementBlend(false)
            action StopLook()
            action PlayAnim("graze", "st", false)
            goto GrazeWait
        }
    }

    state GrazeWait
    {
        transition IsAnimPlaying("graze", "lp", false) == true
        {
            action SetRandomTimerBetween(1, 5.0, 15.0)
            goto GrazeLoop
        }
    }

    state GrazeLoop
    {
        action UpdateDeltaVariable("FoodEnergy", 0.01)
        transition IsTimerUp(1)
        {
            action StopAnimState("graze")
            action SetRandomTimerBetween(1, 3.0, 4.0)
            goto GrazeEnd
        }
    }

    state GrazeEnd
    {
        transition IsAnimStatePlaying("graze", false) == false
        {
            action AddRandomAnimation("call", "02_lp", 10.0, 15.0)
            action AddRandomAnimation("tail", "flck_lp", 3.0, 5.0)
            action StartLook("LookProximity", 0.5)
            action SetAutoMovementBlend(true)
            goto WanderWait
        }
    }

    state WanderWait
    {
        transition IsTimerUp(1)
        {
            goto SetWander
        }
    }

    state PreDinoWander
    {
        action AddRandomAnimation("call", "02_lp", 5.0, 10.0)
        action SetAutoMovementBlend(true)
        action SetSpeedModifier(1.0)
        action SetRunMode(true)
        action SetFlockImpulse(true)

        action StartLook("LookProximity", 0.5)

        transition
        {
            goto DinoWander
        }
    }

    state DinoWander
     {
        action AddRandomAnimation("call", "02_lp", 5.0, 10.0)
        action SetFlockImpulse(true)
        transition
        {
            call JoinFlck CheckCanJoinTargetFlock
        }
        transition
        {
            call GaliFlck Start
        }
        transition
        {
            action SetRandomTimerBetween(2, 5.0, 5.0)
            goto DinoWanderWait
        }
    }

    state DinoWanderWait
    {
        transition IsTimerUp(2) == false
        {
            goto DinoWanderWait
        }
        transition HasArrived()
        {
            goto Start
        }
    }

;------------------------ Exit States Begin ----------------------
    exitstart state GrazeCleanUp
    {
        action StopAnimState("graze")
        transition
        {
            goto GrazeCleanUpLoop
        }
    }

    state GrazeCleanUpLoop
    {
        transition IsAnimStatePlaying("graze", false) == false
        {
            goto GrazeCleanUpEnd
        }
    }

    exitend state GrazeCleanUpEnd
    {
        action SetAutoMovementBlend(true)
        action StopLook()
    }
;------------------------ Exit States End ----------------------
}


The game would think you only have 40 dinosaur species, while you actually have more!

Of course, you'll still need the digsite for each dinosaur open due to the models being linked to a particular TML, but that's about it. You don't even have to dig them up, they effectively start with 100% DNA.

Also, since you're not actually digging these dinosaurs up from a digsite, misplaced fauna for those who want accuracy isn't an issue. You could just put each group of dinosaurs from the same formation IRL in their own feeder-turned-hatchery, but the individual dinosaurs still need their own respective TML's unlocked, you still can't freely mix and match them due to the fact that each model is connected to a particular TML.

You'll have to set your feeder-turned-hatchery so it would only spawn dinosaurs when manually controlled though, don't want them to spawn dinosaurs continuously.

Video

Issues:
The total number of individual feeder-spawned dinosaurs alive at any one time is limited to a certain amount (15), and unfortunately, livestock such as cows and goats count towards this limit. Once reached, any further spawning of livestock or feeder-spawned dinosaurs will kill off the oldest one. This is restricted to docile herbivores which don't really defend themselves. They also don't form flocks.
User avatar
brolyeuphyfusion
Fodder
Fodder
 
Posts: 54
Joined: Mon, 7th May 2012 9:53
User Title: Sauropodomorphs rule!!!

Return to Units

Who is online

Users browsing this forum: No registered users and 1 guest

Help keep this forum ad-free - please Donate


This free, ad-free forum is hosted by ForumLaunch
cron