eagledude4 
 
 
		
			Member 
			
			
			
 
			
	Posts: 144 
	Threads: 14 
	Joined: Dec 2011
	
 Reputation: 
0
		
	 | 
	
		
			
Monster Path Help 
			 
			
				I want a monster to follow a path, and based on which area the player enters, the monster will enter the same area via a path node. I'm having trouble getting it to work. 
void EnteredEnemyTriggerArea(string &in asParent, string &in asChild, int alState) { 
    SetEntityActive("servant_grunt_1", true); 
    AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_1", 0, ""); 
    AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_2", 0, ""); 
    if(GetEntitiesCollide("Player", "SonRoomArea") == true) { 
        AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_4", 5, ""); 
    } else if(GetEntitiesCollide("Player", "DadRoomArea") == true) { 
        AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_5", 5, ""); 
    } 
    AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_3", 0, ""); 
     
}
 
pathNodes 1 + 2 help the enemy get up the stairs and into the hallway, pathNodes 4 + 5 are for seperate rooms, and pathNode 3 is at the bottom of the stairs, so the monster retreats after entering one of the rooms.
			  
			
			
 
Its hard to see the truth when you've been blinded by lies. 
 
			
				
(This post was last modified: 01-05-2012, 01:11 AM by eagledude4.)
 
				
			 
		 |  
	 
 | 
 
	| 01-02-2012, 03:50 AM  | 
	
		
	 | 
 
 
	
		
		Linus Ågren 
 
 
		
			Senior Member 
			
			
			
 
			
	Posts: 309 
	Threads: 58 
	Joined: Jan 2011
	
 Reputation: 
5
		
	 | 
	
		
			
RE: Scripting a Monster chase 
			 
			
				If you use the ShowEnemyPlayerPosition script, the enemy ignores all PathNodeAreas untill he stops chasing the player. He will return to the nodes after that. (Which one I am unsure, but probably the closest one, or the one after the last one he passed before the chase)
			 
			
			
 
Creator of The Dark Treasure. 
			
		 |  
	 
 | 
 
	| 01-02-2012, 04:07 AM  | 
	
		
	 | 
 
 
	
		
		eagledude4 
 
 
		
			Member 
			
			
			
 
			
	Posts: 144 
	Threads: 14 
	Joined: Dec 2011
	
 Reputation: 
0
		
	 | 
	
		
			
RE: Scripting a Monster chase 
			 
			
				 (01-02-2012, 04:07 AM)junkfood2121 Wrote:  If you use the ShowEnemyPlayerPosition script, the enemy ignores all PathNodeAreas untill he stops chasing the player. He will return to the nodes after that. (Which one I am unsure, but probably the closest one, or the one after the last one he passed before the chase) Thanks.
			  
			
			
 
Its hard to see the truth when you've been blinded by lies. 
 
			
				
(This post was last modified: 01-02-2012, 05:35 AM by eagledude4.)
 
				
			 
		 |  
	 
 | 
 
	| 01-02-2012, 04:27 AM  | 
	
		
	 | 
 
 
	
		
		eagledude4 
 
 
		
			Member 
			
			
			
 
			
	Posts: 144 
	Threads: 14 
	Joined: Dec 2011
	
 Reputation: 
0
		
	 | 
	
		
			
RE: Scripting a Monster chase 
			 
			
				Update the first post, please re-read.
			 
			
			
 
Its hard to see the truth when you've been blinded by lies. 
 
			
				
(This post was last modified: 01-03-2012, 12:33 AM by eagledude4.)
 
				
			 
		 |  
	 
 | 
 
	| 01-02-2012, 05:36 AM  | 
	
		
	 | 
 
 
	
		
		eagledude4 
 
 
		
			Member 
			
			
			
 
			
	Posts: 144 
	Threads: 14 
	Joined: Dec 2011
	
 Reputation: 
0
		
	 | 
	
		
			
RE: Scripting a Monster chase 
			 
			
				Hep please. 
			 
			
			
 
Its hard to see the truth when you've been blinded by lies. 
 
			
		 |  
	 
 | 
 
	| 01-03-2012, 12:33 AM  | 
	
		
	 | 
 
 
	
		
		Your Computer 
 
 
		
			SCAN ME! 
			
			
			
 
			
	Posts: 3,456 
	Threads: 32 
	Joined: Jul 2011
	
 Reputation: 
235
		
	 | 
	
		
			
RE: Scripting a Monster chase 
			 
			
				Sounds like you have only 5 path nodes and expect the monster to find its way to the path nodes. Path nodes are used to help the monster navigate its way around. You're going to need more than 5 path nodes if you want the monster to move as expected.
			 
			
			
 
			
		 |  
	 
 | 
 
	| 01-03-2012, 09:40 PM  | 
	
		
	 | 
 
 
	
		
		eagledude4 
 
 
		
			Member 
			
			
			
 
			
	Posts: 144 
	Threads: 14 
	Joined: Dec 2011
	
 Reputation: 
0
		
	 | 
	
		
			
Solved - Please remove 
			 
			
				 (01-03-2012, 09:40 PM)Your Computer Wrote:  Sounds like you have only 5 path nodes and expect the monster to find its way to the path nodes. Path nodes are used to help the monster navigate its way around. You're going to need more than 5 path nodes if you want the monster to move as expected. 
Is this better?
  
There are now 31 PathNodes instead of 5. The enemy still isn't following the paths correctly though.
 void EnteredEnemyTriggerArea(string &in asParent, string &in asChild, int alState) { 
    SetEntityActive("servant_grunt_1", true); 
    AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_1", 0, ""); 
    AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_2", 0, ""); 
    AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_3", 0, ""); 
    AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_4", 0, ""); 
    AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_5", 0, ""); 
    if(GetEntitiesCollide("Player", "SonRoomArea") == true) { 
        AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_6", 0, ""); 
        AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_7", 0, ""); 
        AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_8", 0, ""); 
        AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_9", 0, ""); 
        AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_10", 0, ""); 
        AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_11", 0, ""); 
        AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_12", 0, ""); 
        AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_13", 0, ""); 
        AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_14", 0, ""); 
        AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_15", 8, ""); 
        AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_14", 0, ""); 
        AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_13", 0, ""); 
        AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_12", 0, ""); 
        AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_11", 0, ""); 
        AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_10", 0, ""); 
        AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_9", 0, ""); 
        AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_8", 0, ""); 
        AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_7", 0, ""); 
        AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_6", 0, ""); 
    } else if(GetEntitiesCollide("Player", "DadRoomArea") == true) { 
        AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_16", 0, ""); 
        AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_17", 0, ""); 
        AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_18", 0, ""); 
        AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_19", 0, ""); 
        AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_20", 0, ""); 
        AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_21", 0, ""); 
        AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_22", 0, ""); 
        AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_23", 0, ""); 
        AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_24", 0, ""); 
        AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_25", 0, ""); 
        AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_26", 0, ""); 
        AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_27", 0, ""); 
        AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_28", 0, ""); 
        AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_29", 0, ""); 
        AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_30", 8, ""); 
        AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_29", 0, ""); 
        AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_28", 0, ""); 
        AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_27", 0, ""); 
        AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_26", 0, ""); 
        AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_25", 0, ""); 
        AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_24", 0, ""); 
        AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_23", 0, ""); 
        AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_22", 0, ""); 
        AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_21", 0, ""); 
        AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_19", 0, ""); 
        AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_18", 0, ""); 
        AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_17", 0, ""); 
        AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_16", 0, ""); 
    } 
    AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_5", 0, ""); 
    AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_4", 0, ""); 
    AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_3", 0, ""); 
    AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_2", 0, ""); 
    AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_1", 0, ""); 
    AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_31", 0, ""); 
}
  
			 
			
			
 
Its hard to see the truth when you've been blinded by lies. 
 
			
				
(This post was last modified: 01-05-2012, 06:29 AM by eagledude4.)
 
				
			 
		 |  
	 
 | 
 
	| 01-05-2012, 12:29 AM  | 
	
		
	 | 
 
 
	
		
		Your Computer 
 
 
		
			SCAN ME! 
			
			
			
 
			
	Posts: 3,456 
	Threads: 32 
	Joined: Jul 2011
	
 Reputation: 
235
		
	 | 
	
		
			
RE: Monster Path Help 
			 
			
				You're not supposed to add all the path nodes to the monster, only the starting path node, the ones that are in the center of an intersection (because the monster has trouble walking around corners), and the ending path node.
			 
			
			
 
			
		 |  
	 
 | 
 
	| 01-05-2012, 07:09 AM  | 
	
		
	 | 
 
 
	
		
		eagledude4 
 
 
		
			Member 
			
			
			
 
			
	Posts: 144 
	Threads: 14 
	Joined: Dec 2011
	
 Reputation: 
0
		
	 | 
	
		
			
RE: Monster Path Help 
			 
			
				 (01-05-2012, 07:09 AM)Your Computer Wrote:  You're not supposed to add all the path nodes to the monster, only the starting path node, the ones that are in the center of an intersection (because the monster has trouble walking around corners), and the ending path node. Gaw, all that work for nothing    I removed all the pathnodes except for _1 to start the path, _5 which is in the middle of the intersection, and _15 and _30 which are in seperate rooms for my if statements. The monster still doesn't walk the path's correctly.
 void EnteredEnemyTriggerArea(string &in asParent, string &in asChild, int alState) { 
    SetEntityActive("servant_grunt_1", true); 
    AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_1", 0, ""); 
    AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_5", 0, ""); 
    if(GetEntitiesCollide("Player", "SonRoomArea") == true) { 
        AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_15", 8, ""); 
    } else if(GetEntitiesCollide("Player", "DadRoomArea") == true) { 
        AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_30", 8, ""); 
    } 
    AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_5", 0, ""); 
    AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_31", 0, ""); 
}
  
			 
			
			
 
Its hard to see the truth when you've been blinded by lies. 
 
			
				
(This post was last modified: 01-05-2012, 06:23 PM by eagledude4.)
 
				
			 
		 |  
	 
 | 
 
	| 01-05-2012, 06:06 PM  | 
	
		
	 | 
 
 
	
		
		Your Computer 
 
 
		
			SCAN ME! 
			
			
			
 
			
	Posts: 3,456 
	Threads: 32 
	Joined: Jul 2011
	
 Reputation: 
235
		
	 | 
	
		
			
RE: Monster Path Help 
			 
			
				What is the monster supposed to do?
			 
			
			
 
			
				
(This post was last modified: 01-05-2012, 09:49 PM by Your Computer.)
 
				
			 
		 |  
	 
 | 
 
	| 01-05-2012, 09:49 PM  | 
	
		
	 | 
 
 
	 
 |