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() 
{ 
 
}
			 
			
			
			
		 |