| 
		
	
		| FrictionalWeekly   Junior Member
 
 Posts: 19
 Threads: 6
 Joined: Apr 2011
 Reputation: 
2
 | 
			| How to make more than 1 script? 
 
				I'm having trouble making my first custom story because I'm newby with scripts. I'm having trouble making 2 scripts in 1 map mainly and it's frustrating. 
 Here's what it is that I'm trying to do that's wrong somehow
 
 _____________________________________________________________
 
 void OnEnter()
 
 {
 PlayMusic("penumbra_music_E1_D1", true, 1, 0, 0, true);
 }
 
 void DoggyAttackPart(string &in asEntity, string &in type)
 {
 SetEntityActive("doggy", true);
 StartPlayerLookAt("doggy", 15, 15, "");
 AddTimer("monstertimer", 2, "monstertimer");
 ShowEnemyPlayerPosition("doggy");
 }
 
 void monstertimer(string &in asTimer)
 {
 StopPlayerLookAt();
 }
 
 
 //////// Scare music in bloody room
 void AddEntityCollideCallback("Player", "scare_script", "scare_script", false, 0);
 
 
 
 void scare_script(string &in asParent, string &in asChild, int alState)
 {
 //music scripts here
 // If enters and leave
 if(alState == 1)
 {
 PlayMusic("Penumbra_BP_C1.ogg", false, 1.00, 0, 5, true);
 }
 if(alState == -1)
 {
 
 }
 _____________________________________________________________________________________
 
 
 
 And this is the error that pops up when it tries to load the map.
 
 
 
 ___________________________________________
 
 FATAL ERROR: Could not load script file 'custom_stories/Zombie
 Survival/maps/C;/Program Files (x86)/Amnesia - The Dark
 Descent/redist/custom_stories/Zombie Survival/maps/lv3.hps'!
 ExecuteString (1, 1) : ERR : No matching signatures to 'OnLeave()'
 main (37, 2): ERR : Unexpected end of file
 
 __________________________________________
 |  |  
	| 06-02-2012, 11:18 PM |  |  
	
		| Bridge   Posting Freak
 
 Posts: 1,971
 Threads: 25
 Joined: May 2012
 Reputation: 
128
 | 
			| RE: How to make more than 1 script? 
 
				I don't really know anything about Amnesia scripting but presumably every declaration of OnEnter() must be followed by a declaration of OnLeave(), even if it's blank, right? That seems to be what the compiler is complaining about. 
 Is this the complete script? There is no reference to lv3.hps anywhere so I have no idea why it's mentioning that. Also that file path is really fucked up, are you sure it's correct?
 
 Main (37, 2) is complaining about it being incomplete code I guess. Don't you need to return 0 or something?
 
 EDIT: Actually I suppose you don't since I recall seeing a function called OnStart() on the wiki which returns type void. In that case, where is that function? Is this only an excerpt?
 
				
(This post was last modified: 06-02-2012, 11:45 PM by Bridge.)
 |  |  
	| 06-02-2012, 11:42 PM |  |  
	
		| palistov   Posting Freak
 
 Posts: 1,208
 Threads: 67
 Joined: Mar 2011
 Reputation: 
57
 | 
			| RE: How to make more than 1 script? 
 
				Missing } at the very end of your script.
			 
 |  |  
	| 06-02-2012, 11:53 PM |  |  
	
		| Bridge   Posting Freak
 
 Posts: 1,971
 Threads: 25
 Joined: May 2012
 Reputation: 
128
 | 
			| RE: How to make more than 1 script? 
 
				 (06-02-2012, 11:53 PM)palistov Wrote:  Missing } at the very end of your script. Surely that won't resolve all of his issues, or that debugger doesn't know what it's talking about. Speaking of missing squiggly brackets you should really wrap some [code] tags around that and make sure it's properly indented, it's hell to read.
			 
				
(This post was last modified: 06-02-2012, 11:57 PM by Bridge.)
 |  |  
	| 06-02-2012, 11:56 PM |  |  
	
		| Putmalk   Senior Member
 
 Posts: 290
 Threads: 13
 Joined: Apr 2012
 Reputation: 
15
 | 
			| RE: How to make more than 1 script? 
 
				It's late and I had more to say but I just rewrote the script so it should work... //I'm guessing this is called after picking up a key or something?void DoggyAttackPart(string &in asEntity, string &in type)
 {
 SetEntityActive("doggy", true);
 StartPlayerLookAt("doggy", 15, 15, "");
 AddTimer("monstertimer", 2, "monstertimer");
 ShowEnemyPlayerPosition("doggy");
 }
 
 void monstertimer(string &in asTimer)
 {
 StopPlayerLookAt();
 }
 
 void scare_script(string &in asParent, string &in asChild, int alState)
 {
 //music scripts here
 // If enters and leave
 if(alState == 1)
 {
 PlayMusic("Penumbra_BP_C1.ogg", false, 1.00, 0, 5, true);
 }
 if(alState == -1)
 {
 
 }
 } // error was here, you forgot to add this end bracket
 
 void OnStart()
 {
 //////// callbacks go here
 AddEntityCollideCallback("Player", "scare_script", "scare_script", false, 0);
 }
 
 void OnEnter()
 {
 PlayMusic("penumbra_music_E1_D1", true, 1, 0, 0, true);
 }
 
 void OnLeave()
 {
 
 }
 |  |  
	| 06-03-2012, 06:52 AM |  |  |