| Script problem, need help please 
 
				Been having a script problem now for some time and I cannot find the problem. Would you guys mind giving me a hand? Here's the script.
 //-----------------------------------------
 
 ///////////////////////////////////////////
 // CONTROL VARIABLES
 ////////////////////////////////////////////
 
 //------------------------------------------
 
 float gfTimeToActivateNextWorm = 8.0f;
 float gfTimeToActivateRandomRockSounds = RandFloat(8.0f, 15.0f);
 float gfTimeToActivateRockShakeBeforeWorm = 4.0f;
 float gfTimeToActivateWormItself = 7.0f;
 
 //-----------------------------------------
 
 ///////////////////////////////////////////
 // WORM HELPERS
 ////////////////////////////////////////////
 
 //------------------------------------------
 
 //A helper telling where the player is located
 void LocatePlayerLocation(bool abActivated)
 {
 if(GetLocatePlayerLocation()==true)
 return;
 
 //There are six areas giving a different local that tells what worm is gonna spawn
 int lAreaOne = GetLocalVarInt("AreaOne");
 int lAreaTwo = GetLocalVarInt("AreaTwo");
 int lAreaThree = GetLocalVarInt("AreaThree");
 int lAreaFour = GetLocalVarInt("AreaFour");
 int lAreaFive = GetLocalVarInt("AreaFive");
 int lAreaSix = GetLocalVarInt("AreaSix");
 
 if(lAreaOne == 1){
 StartScreenShake(0.02f, 0.5f, 0.8f, 2.0f);
 PlaySoundAtEntity("rumble", "general_rock_rumble_no3d.snt", "Player", 0.5f, true);
 }
 }
 //Each timer for each worm
 void TimerInitiateWorm01(string &in asTimer)
 {
 AddLocalVarInt("Worm01", 1);	//What step to play in the event
 float fEventSpeed = 0.5f;				//The default time between steps in an event
 
 switch(GetLocalVarInt("Worm01")) {
 case 1:
 SetEntityActive("worm_1", true);
 
 }
 //Collide with AreaCheckPlayer, give a certain local
 void CollideCheckPlayer01(string &in asParent, string &in asChild, int alState)
 {
 //Remove any existing local to avoid multiple worms
 SetLocalVarInt("AreaTwo", 0);
 SetLocalVarInt("AreaThree", 0);
 SetLocalVarInt("AreaFour", 0);
 SetLocalVarInt("AreaFive", 0);
 SetLocalVarInt("AreaSix", 0);
 
 SetLocalVarInt("AreaOne", 1);
 }
 void CollideCheckPlayer02(string &in asParent, string &in asChild, int alState)
 {
 //Remove any existing local to avoid multiple worms
 SetLocalVarInt("AreaOne", 0);
 SetLocalVarInt("AreaThree", 0);
 SetLocalVarInt("AreaFour", 0);
 SetLocalVarInt("AreaFive", 0);
 SetLocalVarInt("AreaSix", 0);
 
 SetLocalVarInt("AreaTwo", 1);
 }
 void CollideCheckPlayer03(string &in asParent, string &in asChild, int alState)
 {
 //Remove any existing local to avoid multiple worms
 SetLocalVarInt("AreaOne", 0);
 SetLocalVarInt("AreaTwo", 0);
 SetLocalVarInt("AreaFour", 0);
 SetLocalVarInt("AreaFive", 0);
 SetLocalVarInt("AreaSix", 0);
 
 SetLocalVarInt("AreaThree", 1);
 }
 void CollideCheckPlayer04(string &in asParent, string &in asChild, int alState)
 {
 //Remove any existing local to avoid multiple worms
 SetLocalVarInt("AreaTwo", 0);
 SetLocalVarInt("AreaThree", 0);
 SetLocalVarInt("AreaOne", 0);
 SetLocalVarInt("AreaFive", 0);
 SetLocalVarInt("AreaSix", 0);
 
 SetLocalVarInt("AreaFour", 1);
 }
 void CollideCheckPlayer05(string &in asParent, string &in asChild, int alState)
 {
 //Remove any existing local to avoid multiple worms
 SetLocalVarInt("AreaOne", 0);
 SetLocalVarInt("AreaThree", 0);
 SetLocalVarInt("AreaFour", 0);
 SetLocalVarInt("AreaTwo", 0);
 SetLocalVarInt("AreaSix", 0);
 
 SetLocalVarInt("AreaFive", 1);
 }
 void CollideCheckPlayer06(string &in asParent, string &in asChild, int alState)
 {
 //Remove any existing local to avoid multiple worms
 SetLocalVarInt("AreaOne", 0);
 SetLocalVarInt("AreaTwo", 0);
 SetLocalVarInt("AreaFour", 0);
 SetLocalVarInt("AreaFive", 0);
 SetLocalVarInt("AreaThree", 0);
 
 SetLocalVarInt("AreaSix", 1);
 }
 
 //-----------------------------------------
 
 ///////////////////////////////////////////
 // THE HUNGRY WORM
 ////////////////////////////////////////////
 
 //------------------------------------------
 
 //Use meat to feed the worm
 void UseMeatOnDoor(string &in asItem, string &in asEntity)
 {
 RemoveItem(asItem);
 SetEntityActive("fresh_meat_static", true);
 
 PlaySoundAtEntity("meetworm", "worm_distant.snt", "Player", 0.0f, true);
 AddTimer("", 5.0f, "TimerWormEatFlesh");
 }
 //The Worm is hungry
 void TimerWormEatFlesh(string &in asTimer)
 {
 AddLocalVarInt("Worm", 1);	//What step to play in the event
 float fEventSpeed = 0.5f;				//The default time between steps in an event
 
 switch(GetLocalVarInt("Worm")) {
 case 1:
 PlaySoundAtEntity("meetworm", "worm_distant.snt", "Player", 0.0f, true);
 fEventSpeed = 2.0f;
 break;
 case 2:
 SetEntityActive("hungry_worm", true);
 //Needed due to that the worm doesn't have any form of animations
 PlayPropAnimation("hungry_worm", "character_rockworm_attack.dae", float afFadeTime, false, "");
 fEventSpeed = 3.3f;
 break;
 case 3:
 SetEntityActive("hungry_worm", false);
 break;
 }
 
 if(GetLocalVarInt("Worm") < 3)  AddTimer("", fEventSpeed, "TimerWormEatFlesh");
 }
 //Some stuff to make sure he doesn't go through objects
 void CollideBoardWorm(string &in asParent, string &in asChild, int alState)
 {
 SetPropHealth("wooden_boards_block_1", 0);
 }
 void CollideBreakDoor(string &in asParent, string &in asChild, int alState)
 {
 SetEntityActive("fresh_meat_static", false);
 SetPropHealth("cellar_wood01_3", 0);
 }
 //If player feels like standing in the way of the worm
 void CollideWormPlayer(string &in asParent, string &in asChild, int alState)
 {
 FadeOut(0.5f);
 AddTimer("", 5.0f, "TimerPlayerEaten");
 
 CheckPoint("", "PlayerStartArea_2", "JustInCase", "Hints", "PlayerEaten");
 }
 void TimerPlayerEaten(string &in asTimer)
 {
 //Kill player without making a sound
 DisableDeathStartSound();
 AddPlayerHealth(-200);
 }
 void JustInCase(string &in asParent, string &in asChild, int alState)
 {
 //Not sure if everything works as it should if you die
 SetEntityActive("cellar_wood01_3", false);
 SetEntityActive("hungry_worm", false);
 SetEntityActive("fresh_meat_static", false);
 }
 
 //-----------------------------------------
 
 ///////////////////////////////////////////
 // BOIL ACETONE
 ////////////////////////////////////////////
 
 //------------------------------------------
 
 void UseAcetoneOnContainer(string &in asItem, string &in asEntity)
 {
 SetEntityActive("container_1", true);
 SetEntityActive("container_2", false);
 
 RemoveItem(asItem);
 
 PlaySoundAtEntity("pl", "puzzle_add_chemical", asEntity, 0.0f, false);
 
 //Delay the boil a bit
 AddTimer("BloodInPlace", 1, "TimerBloodInPlace");
 }
 void UseContainerOnBurner(string &in asItem, string &in asEntity)
 {
 SetEntityActive("container_2", true);
 
 RemoveItem(asItem);
 
 PlaySoundAtEntity("plss", "puzzle_place_jar", asEntity, 0.0f, false);
 }
 void UseAcetoneOnBurner(string &in asItem, string &in asEntity)
 {
 SetMessage("Ch03Lvl18", "UseAcetoneJarOnBurner", 0);
 }
 
 void TimerBloodInPlace(string &in asTimer)
 {
 SetLocalVarInt("AcetoneOnBurner", 1);
 
 //Check if player can now boil acetone
 CheckBoilAcetone();
 }
 
 //Turn on the burner
 void TurnSpecialBurner(string &in asEntity, int alState)
 {
 if(alState == 1){
 PlaySoundAtEntity("bruner_on","26_burner_ignite.snt", "AreaBurner", 0, false);
 
 CreateParticleSystemAtEntity("burnerfire", "ps_fire_lab_burner.ps", "AreaBurner", true);
 
 PlaySoundAtEntity("burnerfire","26_burner_loop.snt", "AreaBurner", 1, true);
 
 AddTimer("burnerfullspeed",2, "TimerBurnerFullSpeed");
 }
 else if(alState == -1)
 {
 PlaySoundAtEntity("bruner_off","26_burner_ignite.snt", "AreaBurner", 0.15f, false);
 
 DestroyParticleSystem("burnerfire");
 StopSound("burnerfire", 1);
 
 RemoveTimer("burnerfullspeed");
 
 SetLocalVarInt("BurnerReady", 0);
 }
 }
 void TimerBurnerFullSpeed(string &in asTimer)
 {
 SetLocalVarInt("BurnerReady", 1);
 
 //Check if player can now boil acetone
 CheckBoilAcetone();
 }
 void CheckBoilAcetone()
 {
 //If the burner is a full speed, acetone is in place and it is not boiled yet, then
 if(GetLocalVarInt("BurnerReady")==1 && GetLocalVarInt("AcetoneOnBurner")==1 && GetLocalVarInt("AcetoneBoiled")==0)
 {
 SetLocalVarInt("AcetoneBoiled", 1);
 
 CreateParticleSystemAtEntity("bloodboil", "ps_glass_container_blood_bubbles.ps", "AreaBloodBoil", false);
 PlaySoundAtEntity("bloodboil","puzzle_boil.snt", "AreaBloodBoil", 1, false);
 
 AddTimer("boileffectdone", 3, "TimerBoilEffectDone");
 }
 }
 
 void TimerBoilEffectDone(string &in asTimer)
 {
 DestroyParticleSystem("bloodboil");
 StopSound("bloodboil",1);
 
 AddTimer("fadeoutblood", 0.3, "TimerBoilEffectFadeOutContainer");
 SetPropActiveAndFade("complete_substance", true, 0.5);
 
 PlaySoundAtEntity("boildone","puzzle_acid", "special_burner", 0, false);
 }
 
 void TimerBoilEffectFadeOutContainer(string &in asTimer)
 {
 SetPropActiveAndFade("container_1", false, 0.5);
 }
 
 //-----------------------------------------
 
 ///////////////////////////////////////////
 // ROCK WORM
 ////////////////////////////////////////////
 
 //------------------------------------------
 
 //When returning, turn on some worms that arrive depending where the player is
 void CollideStartWorm(string &in asParent, string &in asChild, int alState)
 {
 PlaySoundAtEntity("meetworm", "worm_distant.snt", "Player", 0.0f, false);
 SetPlayerActive(false);
 StartPlayerLookAt("Look_1", 2, 5,"");
 
 AddTimer("", 2.0f, "TimerStartWorm);
 }
 void TimerStartWorm(string &in asTimer)
 {
 AddLocalVarInt("StartWorm", 1);	//What step to play in the event
 float fEventSpeed = 0.5f;				//The default time between steps in an event
 
 switch(GetLocalVarInt("StartWorm")) {
 case 1:
 PlaySoundAtEntity("meetworm", "worm_distant.snt", "Player", 0.0f, false);
 StartPlayerLookAt("Look_2", 3, 5,"");
 fEventSpeed = 1.5f;
 break;
 case 2:
 StartPlayerLookAt("Look_3", 3, 5,"");
 PlaySoundAtEntity("meetworm", "worm_distant.snt", "Player", 0.0f, false);
 fEventSpeed = 1.0f;
 break;
 case 3:
 StopPlayerLookAt();
 SetPlayerActive(true);
 GiveSanityDamage(10, false);
 break;
 case 4:
 SetEntityActive("hungry_worm", true);
 PlayPropAnimation("hungry_worm", "character_rockworm_attack.dae", float afFadeTime, false, "");
 fEventSpeed = 3.3f;
 break;
 case 5:
 SetEntityActive("hungry_worm", false);
 LocatePlayerLocation(true);
 break;
 }
 
 if(GetLocalVarInt("StartWorm") < 5)  AddTimer("", fEventSpeed, "TimerStartWorm");
 }
 
 //-----------------------------------------
 
 ///////////////////////////////////////////
 // MISCS
 ////////////////////////////////////////////
 
 //------------------------------------------
 //Pick the note about the worm
 void PickWormNote(string &in asEntity, string &in asType)
 {
 PlayMusic("05_paper_transformation.ogg", false, 0.7f, 0, 10, false);
 }
 //Interact with machine lever, without having things completed
 void InteractTooQuick(string &in asEntity)
 {
 SetMessage("Ch03Lvl18", "TooQuick", 0);
 }
 
 ////////////////////////////
 // Run first time starting map
 void OnStart()
 {
 SetMapDisplayNameEntry("Ravine");
 
 //Use Item
 AddUseItemCallback("", "fresh_meat", "cellar_wood01_3", "UseMeatOnDoor", true);
 AddUseItemCallback("", "container", "special_burner", "UseContainerOnBurner", true);
 
 //Collide Callback
 AddEntityCollideCallback("Player", "hungry_worm", "CollideWormPlayer", false, 0);
 for(int i=1;i<=4; ++i) AddEntityCollideCallback("Player", "rockworm_attack_static_"+i, "CollideWormPlayerExt", false, 0);
 AddEntityCollideCallback("hungry_worm", "AreaBreakPlanks_2", "CollideBoardWorm", false, 0);
 AddEntityCollideCallback("hungry_worm", "AreaBreakDoor", "CollideBreakDoor", false, 0);
 }
 ////////////////////////////
 // Run when entering map
 void OnEnter()
 {
 PlayMusic("22_amb", true, 1, 5, 0, true);
 }
 
 ////////////////////////////
 // Run when leaving map
 void OnLeave()
 {
 
 }
 |