| 
		
	
		| Daktoa   Member
 
 Posts: 98
 Threads: 10
 Joined: Jul 2014
 Reputation: 
1
 | 
			| I suck at scripting 
 
				I don't know what I'm doing. 
I have 2 separate scripts for different monsters spawning when you enter different areas. The game crashes if they're both in the script, but if there's only one at a time it runs perfectly.
 void OnStart() {
 AddEntityCollideCallback("Player", "PlayerCollide", "MonsterFunction", true, 1);
 }
 
 void MonsterFunction(string &in asParent, string &in asChild, int alState)
 {
 AddEnemyPatrolNode("servant_brute_1", "PathNodeArea_1", 0.0001, "");
 AddEnemyPatrolNode("servant_brute_1", "PathNodeArea_5", 0.0001, "");
 AddEnemyPatrolNode("servant_brute_1", "PathNodeArea_10", 0.001, "");
 AddEnemyPatrolNode("servant_brute_1", "PathNodeArea_13", 0.0001, "");
 AddEnemyPatrolNode("servant_brute_1", "PathNodeArea_17", 0.0001, "");
 SetEntityActive("servant_brute_1", true);
 }
 
 void OnStart()
 
 {
 AddEntityCollideCallback("Player", "PlayerCollide_2", "MonsterFunction", true, 1);
 }
 
 void MonsterFunction(string &in asParent, string &in asChild, int alState)
 {
 AddEnemyPatrolNode("servant_brute_2", "PathNodeArea_18", 5, "");
 
 AddEnemyPatrolNode("servant_brute_2", "PathNodeArea_26", 0.0001, "");
 AddEnemyPatrolNode("servant_brute_2", "PathNodeArea_29", 0.0001, "");
 SetEntityActive("servant_brute_2", true);
 }
 |  |  
	| 07-28-2014, 04:16 AM |  |  
	
		| Mudbill   Muderator
 
 Posts: 3,881
 Threads: 59
 Joined: Apr 2013
 Reputation: 
179
 | 
			| RE: I suck at scripting 
 
				You can't have 2 functions of the same name (unless they use different parameters).
			 
 |  |  
	| 07-28-2014, 05:07 AM |  |  
	
		| Daktoa   Member
 
 Posts: 98
 Threads: 10
 Joined: Jul 2014
 Reputation: 
1
 | 
			| RE: I suck at scripting 
 
				I tried changing it and it still doesn't work void OnStart() {
 AddEntityCollideCallback("Player", "PlayerCollide", "MonsterFunction", true, 1);
 }
 
 void MonsterFunction(string &in asParent, string &in asChild, int alState)
 {
 AddEnemyPatrolNode("servant_brute_1", "PathNodeArea_1", 0.0001, "");
 AddEnemyPatrolNode("servant_brute_1", "PathNodeArea_5", 0.0001, "");
 AddEnemyPatrolNode("servant_brute_1", "PathNodeArea_10", 0.001, "");
 AddEnemyPatrolNode("servant_brute_1", "PathNodeArea_13", 0.0001, "");
 AddEnemyPatrolNode("servant_brute_1", "PathNodeArea_17", 0.0001, "");
 SetEntityActive("servant_brute_1", true);
 }
 
 {
 AddEntityCollideCallback("Player", "PlayerCollide_2", "MonsterFunction_2", true, 1);
 }
 
 void MonsterFunction_2(string &in asParent, string &in asChild, int alState)
 {
 AddEnemyPatrolNode("servant_brute_2", "PathNodeArea_18", 5, "");
 
 AddEnemyPatrolNode("servant_brute_2", "PathNodeArea_26", 0.0001, "");
 AddEnemyPatrolNode("servant_brute_2", "PathNodeArea_29", 0.0001, "");
 SetEntityActive("servant_brute_2", true);
 }
 |  |  
	| 07-28-2014, 07:55 AM |  |  
	
		| Slanderous   Posting Freak
 
 Posts: 1,606
 Threads: 78
 Joined: Dec 2012
 Reputation: 
63
 | 
			| RE: I suck at scripting 
 
				All of the EntityCollideCallbacks, SetEntityCallback and other shit have to be either in Void OnStart(), void onEntern(), and you use void OnLeave() to do shit when leaving a map for example preparing loading text and background, halting the music etc 
it should look like this...
 void OnStart(){
 AddEntityCollideCallback("Player","AreaYell_1","Yell",true,1);
 AddEntityCollideCallback("Player","Scare","Yell2",true,1);
 }
 
 void Yell2(string &in asParent, string &in asChild, int alState)
 {
 //use your stuff here
 }
 
 void Yell(string &in asParent, string &in asChild, int alState)
 {
 //do shit here
 }
 
				
(This post was last modified: 07-28-2014, 08:25 AM by Slanderous.)
 |  |  
	| 07-28-2014, 08:25 AM |  |  
	
		| Mudbill   Muderator
 
 Posts: 3,881
 Threads: 59
 Joined: Apr 2013
 Reputation: 
179
 | 
			| RE: I suck at scripting 
 
				Making a code block without a constructor will crash you. Instead of having 2 with the same name, just merge them into 1 and have both scripts inside your first OnStart() like Lazzer provided.
			 
 |  |  
	| 07-28-2014, 05:14 PM |  |  
	
		| CarnivorousJelly   Posting Freak
 
 Posts: 1,196
 Threads: 41
 Joined: Dec 2012
 Reputation: 
80
 | 
			| RE: I suck at scripting 
 
				Daktoa, not sure whether this'll be much help for the future, but I found scripting got a ton easier when I started taking programming courses (which are required for first year engineering). I still have the notes in a .rar file . It's all designed for people who have never even looked at programming before. Since angelscript (what hpl2 uses) is similar to C++, most of the stuff overlaps (except apparently arrays and vectors - but that's beyond the basics for hpl2).
 
If you want to practice that stuff and see it actually do things, Visual Studio 2010  is free and fairly easy to use (it's what the notes use as well). I was able to make simple guessing games and text adventures using that.
			
 |  |  
	| 07-29-2014, 01:24 AM |  |  
	
		| TheGreatCthulhu   Member
 
 Posts: 213
 Threads: 10
 Joined: Oct 2010
 Reputation: 
32
 | 
			| RE: I suck at scripting 
 
				That's good advice, but what you linked to is not Visual Studio itself, but rather the Microsoft Visual C++ 2010 Redistributable Package - which is a set of libraries required to run programs developed with Visual C++ (I don't think that it includes the command line compiler.) 
Actually, Microsoft publishes a free version of the Visual Studio IDE with every release, called Microsoft Visual Studio Express - and it's not some crappy version with limited functionality, it's really good - it can satisfy the needs of even intermediate developers, or advanced enthusiasts. What it lacks are some advanced/professional features that a beginner will not need anyway. So, it doesn't have to be VS 2010, you can take your pick from any of these:
Visual Studio 2010 Express
Visual Studio 2012 Express
Visual Studio 2013 Express  - scroll down to where it says Express 2013 for Windows Desktop 
P.S. If you want to understand amnesia scripting a bit deeper, you can check out my Script Language Reference and Guide  on the wiki. It's unfinished, but it covers pretty much everything you'd normally encounter when scripting. I'll see if I can add some more content one of these days - the final section is a bit rushed/confusing, and I'd love to write about classes and objects before SOMA is released.
			 |  |  
	| 07-29-2014, 03:15 PM |  |  
	
		| Mudbill   Muderator
 
 Posts: 3,881
 Threads: 59
 Joined: Apr 2013
 Reputation: 
179
 | 
			| RE: I suck at scripting 
 
				 (07-29-2014, 03:15 PM)TheGreatCthulhu Wrote:  P.S. If you want to understand amnesia scripting a bit deeper, you can check out my Script Language Reference and Guide on the wiki. 
This section looks really well made. I took a look at it and it really is easy to follow and explains well with a good overview. I like it    
 |  |  
	| 07-29-2014, 06:08 PM |  |  
	
		| Daemian   Posting Freak
 
 Posts: 1,129
 Threads: 42
 Joined: Dec 2012
 Reputation: 
49
 | 
			| RE: I suck at scripting 
 
				OMG Cthulhu is back? xDSo many posts about code brought him back.
 
 |  |  
	| 07-30-2014, 03:10 AM |  |  |