willochill 
 
 
		
			Member 
			
			
			
 
			
	Posts: 73 
	Threads: 27 
	Joined: Apr 2011
	
 Reputation: 
0
		
	 | 
	
		
			
Scripting noob, help needed! 
			 
			
				I just starting scripting a level i made and in this level there is a bone saw (named bone_saw_2) in one room, and another room is blocked off with wooden boards. basically this is what i want to happen: when you use the saw with the boards the boards fall apart, and a grunt in the blocked off room awakens. so i have a set of inactive broken wooden boards (right near the intact boards) which i want to activate, and the intact boards will be deactivated, to create the illusion of the boards breaking. the grunt in the room is inactive and i want to activate it as well once the saw hits the intact boards. i scripted this but when i test it in the map it's still not working. i copied/pasted the script i wrote for the level below. please tell me what i'm doing wrong here, very confused! 
(P.S. to have a script .hps file correspond to a certain map, do you just need to name them the same thing, or is it more complicated than that? also, i have all the maps im testing and their scripts (or at least this one i wrote) in a folder in the "maps" folder in common/amnesia tdd. should they be somewhere else for the script to correspond to it?) 
 
void OnStart () 
{ 
AddEntityCollideCallback("bone_saw_2", "wooden_boards_block_1", "SawGruntAlert", true, 1); 
} 
 
void SawGruntAlert(string &in asParent, string &in asChild, int alState) 
{ 
SetEntityActive("wooden_boards_block_1", false); 
SetEntityActive("wooden_boards_block_broken_1", true); 
SetEntityActive("servant_grunt_1", true); 
}
			 
			
			
			
		 |  
	 
 | 
 
	| 05-22-2011, 04:45 AM  | 
	
		
	 | 
 
 
	
		
		Kyle 
 
 
		
			Posting Freak 
			
			
			
 
			
	Posts: 911 
	Threads: 36 
	Joined: Sep 2010
	
 Reputation: 
7
		
	 | 
	
		
			
RE: Scripting noob, help needed! 
			 
			
				Well, you could say I can literally almost script anything with the HPL 2 engine. 
I see what you are trying to do, since the bone_saw_2 is a item, you need to go into your inventory and use it on the boards.
 
I could make it so complex to where it shows the animation of the saw cutting the boards, but I'm short on time. :/
 
Try this:
 void OnStart() 
{ 
     AddUseItemCallback("", "bone_saw_2", "wooden_boards_block_1", "SawGruntAlert", true); 
} 
void SawGruntAlert(string &in asItem, string &in asEntity) 
{ 
     SetEntityActive("wooden_boards_block_1", false); 
     SetEntityActive("wooden_boards_block_broken_1", true); 
     PlaySoundAtEntity("", "23_saw2.snt", "Player", 0, false); 
     AddTimer("", 1, "TimerFunc"); 
} 
void TimerFunc(string &in asTimer) 
{ 
     SetEntityActive("servant_grunt_1", true); 
}
  
			 
			
			
 
			
		 |  
	 
 | 
 
	| 05-22-2011, 12:15 PM  | 
	
		
	 | 
 
 
	
		
		Karai16 
 
 
		
			Member 
			
			
			
 
			
	Posts: 164 
	Threads: 24 
	Joined: Apr 2011
	
 Reputation: 
0
		
	 | 
	
		
			
RE: Scripting noob, help needed! 
			 
			
				 (05-22-2011, 12:15 PM)Kyle Wrote:  Well, you could say I can literally almost script anything with the HPL 2 engine. 
 
I see what you are trying to do, since the bone_saw_2 is a item, you need to go into your inventory and use it on the boards. 
 
I could make it so complex to where it shows the animation of the saw cutting the boards, but I'm short on time. :/ 
 
Try this: 
 
void OnStart() 
{ 
     AddUseItemCallback("", "bone_saw_2", "wooden_boards_block_1", "SawGruntAlert", true); 
} 
void SawGruntAlert(string &in asItem, string &in asEntity) 
{ 
     SetEntityActive("wooden_boards_block_1", false); 
     SetEntityActive("wooden_boards_block_broken_1", true); 
     PlaySoundAtEntity("", "23_saw2.snt", "Player", 0, false); 
     AddTimer("", 1, "TimerFunc"); 
} 
void TimerFunc(string &in asTimer) 
{ 
     SetEntityActive("servant_grunt_1", true); 
}
  wow Kyle, you're everywhere today O.o ... I just wanted to put in the same thing    saves me work though.
			  
			
			
 
Custom stories: 
Her Games (100% Complete) 
Her Games, All Bugs Fixed (100% Complete) 
 
			
		 |  
	 
 | 
 
	| 05-22-2011, 02:16 PM  | 
	
		
	 | 
 
 
	
		
		Kyle 
 
 
		
			Posting Freak 
			
			
			
 
			
	Posts: 911 
	Threads: 36 
	Joined: Sep 2010
	
 Reputation: 
7
		
	 | 
	
		
			
RE: Scripting noob, help needed! 
			 
			
				Thanks. I know, I can be at 3 places at once. It's my speciality. :p
			 
			
			
 
			
		 |  
	 
 | 
 
	| 05-22-2011, 02:26 PM  | 
	
		
	 | 
 
 
	
		
		willochill 
 
 
		
			Member 
			
			
			
 
			
	Posts: 73 
	Threads: 27 
	Joined: Apr 2011
	
 Reputation: 
0
		
	 | 
	
		
			
RE: Scripting noob, help needed! 
			 
			
				Okay, so first of all, this was great, problem was the sound of the saw didn't stop, so this is how I changed the script: 
void OnStart() 
{ 
   AddUseItemCallback("", "bone_saw_2", "wooden_boards_block_1", "SawGruntAlert", true); 
} 
void SawGruntAlert(string &in asItem, string &in asEntity) 
{ 
     SetEntityActive("wooden_boards_block_1", false); 
     SetEntityActive("wooden_boards_block_broken_1", true); 
     PlaySoundAtEntity("", "23_saw2.snt", "Player", 0, false); 
     AddTimer("", 1, "TimerFunc"); 
     AddTimer("StopSoundTimer", 1, "TimerFunc2"); 
} 
void TimerFunc(string &in asTimer) 
{ 
     SetEntityActive("servant_grunt_1", true); 
} 
void TimerFunc2(string &in asTimer) 
{ 
     StopSound("23_saw2.snt", 0); 
} 
 
But it didn't do anything. 
Second, I wanted to start an ambience sound file playing from the beginning of the map so this is what I added: 
void OnStart() 
{ 
   FadeInSound("amb_guardian.snt", 0, abPlayStart); 
} 
{ 
   AddUseItemCallback("", "bone_saw_2", "wooden_boards_block_1", "SawGruntAlert", true); 
} 
void SawGruntAlert(string &in asItem, string &in asEntity) 
{ 
     SetEntityActive("wooden_boards_block_1", false); 
     SetEntityActive("wooden_boards_block_broken_1", true); 
     PlaySoundAtEntity("", "23_saw2.snt", "Player", 0, false); 
     AddTimer("", 1, "TimerFunc"); 
     AddTimer("StopSoundTimer", 1, "TimerFunc2"); 
} 
void TimerFunc(string &in asTimer) 
{ 
     SetEntityActive("servant_grunt_1", true); 
} 
void TimerFunc2(string &in asTimer) 
{ 
     StopSound("23_saw2.snt", 0); 
} 
Once i add the fade in sound the map crashes. 
 
Third of all although I don't want to learn how to do it all could you post whatever script you would need to make the sawing animation with the sound? that would be a lot cooler than just what it is now. thx. 
 
			 
			
			
			
		 |  
	 
 | 
 
	| 05-26-2011, 04:19 AM  | 
	
		
	 | 
 
 
	 
 |