TUNNEL MOD TUTORIAL

Animal/Building ini, inx and nwt mods

TUNNEL MOD TUTORIAL

Unread postby LethalGene » Wed, 16th Jan 2013 13:43

Okay, So The Original Tunnel Mod Link was Broken and nobody ever posted a tutorial on how to do it...

It Took me Days But i Finally Worked Out How to Do It from scratch


Follow this Step by Step


First Copy HVENTRY.ini and HVENTRY.inx and rename them "Tunnel"

Replace the tunnel.ini with this
Code: Select all
Unit {
    Name=tunnel;
    Directory=AUnitViewingDome;
    TClass=AUnitBuilding;
    ScreenName=$Unit_tunnel;
    Help=$UnitHelp_Atunnel;
    GUIDialog=AUnitViewingDomeDialog;
    BuildMenuPath="Structure/Attractions";
    FootprintX= 1 ;
    FootprintY= 1 ;
    UseINX= 1 ;
}

Traits {
    Health=1000.0;
    Visual=0;
    Audio=0;
    Smell=0;
    Damage=0;
    ProtectMod=0;
    Territory=0;
    Energy=0;
    Metabolism=0;
    LifeSpan=0;
    FoodVal=0;
    FoodReq=0;
    Mass=0;
    Radius=0;
    CamRadius=10.0;
    VisRadius=10.0;
    Speed=0;
    HeadRadius=0;
    MoveAnimSpeed=0;
    RunAnimSpeed=0;
    MaxForce=0;
    NHRate=2.0;
    GoalTolerance=0;
    Arrival=0;
    Acc=0;
    Dec=0;
    PathStrt=0;
    PlanStrt=0;
    FieldWt=0;
    TurnDamp=0;
    SteerLevel=0;
    Size=0;
    BuildCost=5000.0;
    FenceBreak=0;
    FlockSize=0;
    FlockCoh=0;
    FlockSep=0;
    FlockRad=0;
    CenterHeight=1.0;
    SelectionBoxRadius=4.0;
    LookH=0;
    LookV=0;
    StepCat=0;
    FleeMod=0;
    PredNeed=0;
    PreyVal=0;
    DecayTime=0;
    RampageTime=0;
    ComatoseTime=0;
    HungerThirstStress=0;
    TurnSpdThresh=0.001;
}

Flags {
    UnitFlags= 8232 ;
    UnitFlagsID= 140 ;
}

Drives {
    Drive_Hunger=0.0;
    Drive_Thirst=0.0;
    Drive_Defecate=0.0;
    Drive_Sleep=0.0;
    Drive_Defend=0.0;
    Drive_Play=0.0;
    Drive_Communicate=0.0;
}

Animations {
    Model=hventry;
    }

UnitSpecific {
    UnitsAllowed= 60 ;
    PlaceOnce= 1 ;
}

DNATraits {
    Aggression=0.0;
    Playfulness=0.0;
    Appetite=0.0;
    Energy=0.0;
    Speed=0.0;
    LethalGene=0.0;
}



and Replace the tunnel.inx with this

Code: Select all
Building {
    BuildingType=Slave;
    LinkTo=tunnelexit;
    MaxLinkDistanceSq=80736;  // (18*8) squared
    MaxCapacity=12;
    NumExits=1;
    NumInteriorNetworks=4;
    NumBuildingAnimations=1;
    NumComponents = 1;

   // Delayed throughput adding
   DelayedThroughput=1;

    Exit[ 0 ] {
   PosX=0;
   PosY=1;
    }

    Component[0] {
        Type=AVisViewingComponent;
      PerceptionRange=0;
        MinVisitorFee=0;
        MaxVisitorFee=25;
        InitialVisitorFee=5;
      ExpectedVisitorFee=15;
        VisitorFeeStep=5;
      Quality = 9.0;
        Capacity=12;
        DegTimeRate=0.0;
        DegVisRate=0.0;   // Cleaners can't currently get to the dome!! FIXME
      BaseDuration=2.0;
      RangeDuration=6.0;
      NamedAttraction=1;   
    }

    Anim[ 0 ] {
        Type=ADoorAnimation;
    }


    Network[ 1 ] {
        NumPaths=2;
        Name=Vis;
        Path[ 0 ] {
            FromExit=0;
            Anim=0;
            ToLinkedBuildingPath=0;
         SmoothStart=1;
        }
        Path[ 1 ] {
            Anim=0;
            ToExit=0;
         SmoothEnd=1;
        }
    }
    Network[ 2 ] {
        NumPaths=2;
        Name=Dino;
        Path[ 0 ] {
            FromExit=0;
            Anim=0;
            ToLinkedBuildingPath=0;
            Name=Path_Vis1;           
        }
        Path[ 1 ] {
            Anim=0;
            ToExit=0;
            Name=Path_Vis2;
        }
    }
    Network[ 0 ] {
        NumPaths=6;
        Name=Vis;
        Path[ 0 ] {
            ToExit=0;
       Anim=0;
            Name=Path_Vis2;
            Type=AInteriorAnimatingPath;
            Component=AVisViewingComponent;
            PathCode=StartWaitViewing;
            UserEndFacing="1 0 0";
            AnimatingFlags=1;
        }
        Path[ 1 ] {
            ToPath=2;
       PathHookNum=1;
            Type=AInteriorAnimatingPath;
            Component=AVisViewingComponent;
            PathCode=WaitViewing;
            UserEndFacing="0 1 0";
            AnimatingFlags=1;
        }
        Path[ 2 ] {
            ToPath=3;
       PathHookNum=1;
            Type=AInteriorAnimatingPath;
            Component=AVisViewingComponent;
            PathCode=WaitViewing;
            UserEndFacing="-1 0 0";
            AnimatingFlags=1;
        }
        Path[ 3 ] {
            ToPath=4;
       PathHookNum=1;
            Type=AInteriorAnimatingPath;
            Component=AVisViewingComponent;
            PathCode=WaitViewing;
            UserEndFacing="0 -1 0";
            AnimatingFlags=1;
        }
        Path[ 4 ] {
            ToPath=5;
       PathHookNum=1;
        }
        Path[ 5 ] {
            Type=AInteriorSpecialPath;
       PathHookNum=1;
            Component=AVisViewingComponent;
            PathCode=EndViewing;
            ToExit=0;
        }
    }

    Network[ 3 ] {
        NumPaths=8;
        Name=Sp;
        Path[ 0 ] {
      FromExit=0;
      ToPath=1;
      HookedToAnimation=1;   // Lift
      Anim=0;
        }
        Path[ 1 ] {
      ToExit=0;
      PathHookNum=2;
      Name=path_aux1;
      ExplicitTransforms=1;   // Not just a 2D facing
        }
        Path[ 2 ] {
      FromExit=0;
      ToPath=3;
      HookedToAnimation=1;   // Lift
      Anim=1;
        }
        Path[ 3 ] {
      ToExit=0;
      PathHookNum=3;
      Name=path_aux1;
      ExplicitTransforms=1;   // Not just a 2D facing
        }
        Path[ 4 ] {
      FromExit=0;
      ToPath=5;
      HookedToAnimation=1;   // Lift
      Anim=2;
        }
        Path[ 5 ] {
      ToExit=0;
      PathHookNum=4;
      Name=path_aux1;
      ExplicitTransforms=1;   // Not just a 2D facing
        }
        Path[ 6 ] {
      FromExit=0;
      ToPath=7;
      HookedToAnimation=1;   // Lift
      Anim=3;
        }
        Path[ 7 ] {
      ToExit=0;
      PathHookNum=5;
      Name=path_aux1;
      ExplicitTransforms=1;   // Not just a 2D facing
        }
    }
}

Particles
{
    NumLocators=1;
   Locator[0]{
      Name="D_Smoke01";
      NumEffects=1;
      Effect[0]{
         DamageStart=80;
         DamageEnd=0;
         Setting="MediumSmoke";
      }
   }
}

PreviewScene
{
   CamPosition = {0, -6.5, -10};
   CamAngle = 30;

   Model
   {
      Model = HVEntry;
      Position = {0, 0, 0};
   }
   Model
   {
      Model = GrndPW;
      Position = {0, 0.12, 0};
   }
}

// WARNING: Do not place anything below these lines.
//Anything past this point is destroyed on exporting bounding information



BoundingGeometry

{

   Geom_Max["Sphere01"]

   {

      Position = {0.000000, -0.524222, 0.000000};

      Rotation = {0.000000, 0.000000, 0.000000, 1.000000};

      PrimType = ePrimSphere;

       Radius = 4.500000;

   }

}




THEN Copy hvdome.ini and hvdome.inx and rename to "TunnelExit"

then replace the tunnelexit.ini with this
Code: Select all
Unit {
    Name=tunnel;
    Directory=AUnitViewingDome;
    TClass=AUnitBuilding;
    ScreenName=$Unit_tunnel;
    Help=$UnitHelp_Atunnel;
    GUIDialog=AUnitViewingDomeDialog;
    BuildMenuPath="Structure/Attractions";
    FootprintX= 1 ;
    FootprintY= 1 ;
    UseINX= 1 ;
}

Traits {
    Health=1000.0;
    Visual=0;
    Audio=0;
    Smell=0;
    Damage=0;
    ProtectMod=0;
    Territory=0;
    Energy=0;
    Metabolism=0;
    LifeSpan=0;
    FoodVal=0;
    FoodReq=0;
    Mass=0;
    Radius=0;
    CamRadius=20.0;
    VisRadius=20.0;
    Speed=0;
    HeadRadius=0;
    MoveAnimSpeed=0;
    RunAnimSpeed=0;
    MaxForce=0;
    NHRate=2.0;
    GoalTolerance=0;
    Arrival=0;
    Acc=0;
    Dec=0;
    PathStrt=0;
    PlanStrt=0;
    FieldWt=0;
    TurnDamp=0;
    SteerLevel=0;
    Size=0;
    BuildCost=0.0;
    FenceBreak=0;
    FlockSize=0;
    FlockCoh=0;
    FlockSep=0;
    FlockRad=0;
    CenterHeight=0.5;
    SelectionBoxRadius=4.0;
    LookH=0;
    LookV=0;
    StepCat=0;
    FleeMod=0;
    PredNeed=0;
    PreyVal=0;
    DecayTime=0;
    RampageTime=0;
    ComatoseTime=0;
    HungerThirstStress=0;
    TurnSpdThresh=0.001;
}

Flags {
    UnitFlags= 1056808 ;
    UnitFlagsID= 141 ;
}

Drives {
    Drive_Hunger=0.0;
    Drive_Thirst=0.0;
    Drive_Defecate=0.0;
    Drive_Sleep=0.0;
    Drive_Defend=0.0;
    Drive_Play=0.0;
    Drive_Communicate=0.0;
}

Animations {
    Model=hventry;
    }

UnitSpecific {
    UnitsAllowed= 50 ;
    PlaceOnce= 1 ;
    TerScore= 0 ;
    CamAngleHoriz= 50 ;
    CamAngleUp= 10 ;
    CamAngleDown= 10 ;
    NumCameraLocators= 4 ;
}

DNATraits {
    Aggression=0.0;
    Playfulness=0.0;
    Appetite=0.0;
    Energy=0.0;
    Speed=0.0;
    LethalGene=0.0;
}



and replace the tunnelexit.inx with this

Code: Select all
Building {
    NumComponents=1;
    NumInteriorNetworks=4;
    NumBuildingAnimations=1;
    MaxCapacity=12;
   // Delayed throughput adding
   DelayedThroughput=1;

   // Obstruction mask with padded areas for grazing
    ObstructionMask = {
        0, 0, 0, 0, 0, 0,
        0, 1, 1, 1, 1, 0,
        0, 1, 1, 1, 1, 0,
        0, 1, 1, 1, 1, 0,
        0, 1, 1, 1, 1, 0,
        0, 0, 0, 0, 0, 0
    };

    NumExits=1;
   // Delayed throughput adding
   DelayedThroughput=1;

    Exit[ 0 ] {
   PosX=0;
   PosY=1;
    }

    Component[0] {
        Type=AVisViewingComponent;
      PerceptionRange=0;
        MinVisitorFee=0;
        MaxVisitorFee=25;
        InitialVisitorFee=0;
      ExpectedVisitorFee=15;
        VisitorFeeStep=5;
      Quality = 9.0;
        Capacity=12;
        DegTimeRate=0.0;
        DegVisRate=0.0;   // Cleaners can't currently get to the dome!! FIXME
      BaseDuration=0;
      RangeDuration=0;
      NamedAttraction=1;   
    }
    Network[ 0 ] {
        NumPaths=6;
        Name=Vis;
        Path[ 0 ] {
            ToExit=0;
       Anim=0;
            Name=Path_Vis2;
            Type=AInteriorAnimatingPath;
            Component=AVisViewingComponent;
            PathCode=StartWaitViewing;
            UserEndFacing="1 0 0";
            AnimatingFlags=1;
        }
        Path[ 1 ] {
            ToPath=2;
       PathHookNum=1;
            Type=AInteriorAnimatingPath;
            Component=AVisViewingComponent;
            PathCode=WaitViewing;
            UserEndFacing="0 1 0";
            AnimatingFlags=1;
        }
        Path[ 2 ] {
            ToPath=3;
       PathHookNum=1;
            Type=AInteriorAnimatingPath;
            Component=AVisViewingComponent;
            PathCode=WaitViewing;
            UserEndFacing="-1 0 0";
            AnimatingFlags=1;
        }
        Path[ 3 ] {
            ToPath=4;
       PathHookNum=1;
            Type=AInteriorAnimatingPath;
            Component=AVisViewingComponent;
            PathCode=WaitViewing;
            UserEndFacing="0 -1 0";
            AnimatingFlags=1;
        }
        Path[ 4 ] {
            ToPath=5;
       PathHookNum=1;
        }
        Path[ 5 ] {
            Type=AInteriorSpecialPath;
       PathHookNum=1;
            Component=AVisViewingComponent;
            PathCode=EndViewing;
            ToExit=0;
        }
    }
    Network[ 1 ] {
        NumPaths=2;
        Name=Vis;
        Path[ 0 ] {
            FromExit=0;
            Anim=0;
            ToLinkedBuildingPath=0;
         SmoothStart=1;
        }
        Path[ 1 ] {
            Anim=0;
            ToExit=0;
            Name=Path_Vis2;
        }
    }

    Network[ 3 ] {
        NumPaths=2;
        Name=Dino;
        Path[ 0 ] {
            FromExit=0;
            Anim=0;
            ToLinkedBuildingPath=0;
            Name=Path_Vis1;           
        }
        Path[ 1 ] {
            Anim=0;
            ToExit=0;
            Name=Path_Vis2;
        }
    }
    Network[ 2 ] {
        NumPaths=8;
        Name=Sp;
        Path[ 0 ] {
      FromExit=0;
      ToPath=1;
      HookedToAnimation=1;   // Lift
      Anim=0;
        }
        Path[ 1 ] {
      ToExit=0;
      PathHookNum=2;
      Name=path_aux1;
      ExplicitTransforms=1;   // Not just a 2D facing
        }
        Path[ 2 ] {
      FromExit=0;
      ToPath=3;
      HookedToAnimation=1;   // Lift
      Anim=1;
        }
        Path[ 3 ] {
      ToExit=0;
      PathHookNum=3;
      Name=path_aux1;
      ExplicitTransforms=1;   // Not just a 2D facing
        }
        Path[ 4 ] {
      FromExit=0;
      ToPath=5;
      HookedToAnimation=1;   // Lift
      Anim=2;
        }
        Path[ 5 ] {
      ToExit=0;
      PathHookNum=4;
      Name=path_aux1;
      ExplicitTransforms=1;   // Not just a 2D facing
        }
        Path[ 6 ] {
      FromExit=0;
      ToPath=7;
      HookedToAnimation=1;   // Lift
      Anim=3;
        }
        Path[ 7 ] {
      ToExit=0;
      PathHookNum=5;
      Name=path_aux1;
      ExplicitTransforms=1;   // Not just a 2D facing
        }
    }
    // All these animations have the same animation name since there are
    // four logical entities but only one actual model animation

    Anim[ 0 ] {
        Type=ADoorAnimation;
    }
}

Dialog {
   Field[Status] {
      type = ADialogCycleField;
   }

   Field[PerUseFee] {
      type = ADialogCycleField;
      format = $FieldFormat_Money;
   }
   Field[Duration] {
      type = ADialogSliderField;
      minval = 0.0;
      maxval = 0.0;
      step = 0.0;
   }
/*
   Field["Duration#Description"] {
      type = ADialogLabelField;
      transform = TranslateDurationDescription;
   }
*/
   Field[ViolentExperience] {
      type = ADialogSliderField;
      minval = 0.0;
      maxval = 1.0;
      step = 0.1;
   }
   Field[NonviolentExperience] {
      type = ADialogSliderField;
      minval = 0.0;
      maxval = 1.0;
      step = 0.1;
   }
   Field[EnvironmentExperience] {
      type = ADialogSliderField;
      minval = 0.0;
      maxval = 1.0;
      step = 0.1;
   }
   Field[ExperienceScore] {
      type = ADialogLabelField;
      format = $FieldFormat_NumberPercent;
   }
   Field[VisibleDinosaurs] {
      type = ADialogVisibleDinosField;
   }
   Field[View] {
      type = ADialogCommandField;
   }
   Field[JumpToLinkedBuilding] {
      type = ADialogCommandField;
   }
   Field[AttractionName] {
      type = ADialogCycleField;
   }
   Field[LastDinoEvent] {
      type = ADialogLabelField;
   }
}

Particles
{
    NumLocators=3;
   Locator[0]{
      Name="D_Smoke01";
      NumEffects=1;
      Effect[0]{
         DamageStart=80;
         DamageEnd=0;
         Setting="SmallSmoke";
      }
   }
   Locator[1]{
      Name="D_Smoke02";
      NumEffects=1;
      Effect[0]{
         DamageStart=60;
         DamageEnd=0;
         Setting="SmallSmoke";
      }
   }

   Locator[2]{
      Name="D_Smoke03";
      NumEffects=1;
      Effect[0]{
         DamageStart=80;
         DamageEnd=0;
         Setting="MediumSmoke";
      }
   }
}

// WARNING: Do not place anything below these lines.
//Anything past this point is destroyed on exporting bounding information



BoundingGeometry

{

   Geom_Max["Box01"]

   {

      Position = {0.000000, 0.000000, 0.000000};

      Rotation = {0.000000, 0.000000, 0.000000, 1.000000};

      PrimType = ePrimBox;

      Sides = { 12.000000, 12.000000, 3.000000 };

   }

}





THEN GO TO GUI FOLDER OPEN UP BLDMENU and ADD IT TO THE LIST OF BUILDINGS

FOR EXAMPLE

Code: Select all
      submenu[Paths]
      {
         unit = road;
         unit = fountn;
         unit = bin;
         unit = bench;
         unit = tunnel;
      }



Create the Language Files within Gui/Locales/Eng

and your all set.


Tunnel Mod... Cracked


Follow my Progress and See my Other New Structures @

http://www.jplegacy.org/board/showthread.php?t=23248
LethalGene
Park Visitor
Park Visitor
 
Posts: 25
Joined: Tue, 4th Dec 2012 5:09
Gender: Male
User Title: Member

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