| 
		
	
		| 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 |  |  |