GreyFox 
 
 
		
			Member 
			
			
			
 
			
	Posts: 162 
	Threads: 23 
	Joined: Jul 2011
	
 Reputation: 
2
		
	 | 
	
		
			
Key Problem  
			 
			
				Hey, Me once again with another problem but it seems easy to fix. Just to hard for me.  
Anyways I Have 2 Keys and each key unlocks a different door the problem is when i unlock one door the other one unlocks as well. because I don't know how to separate the code in the script,
 void UsedKeyOnDoor(string &in asItem, string &in asEntity) 
{ 
    SetSwingDoorLocked("LockedDoor_1", false, true); 
    PlaySoundAtEntity("", "unlock_door", "LockedDoor_1", 0, false); 
    RemoveItem("LockedDoorKey"); 
} 
 
void UsedKeyOnDoor(string &in asItem, string &in asEntity) 
{ 
    SetSwingDoorLocked("Door_2", false, true); 
    PlaySoundAtEntity("", "unlock_door", "Door_2", 0, false); 
    RemoveItem("Key_2"); 
}
 
I had that first, and it said I cannot use it because that prefix was already being used. So I did this. 
 void UsedKeyOnDoor(string &in asItem, string &in asEntity) 
{ 
    SetSwingDoorLocked("LockedDoor_1", false, true); 
    PlaySoundAtEntity("", "unlock_door", "LockedDoor_1", 0, false); 
    RemoveItem("LockedDoorKey"); 
 
    SetSwingDoorLocked("Door_2", false, true); 
    PlaySoundAtEntity("", "unlock_door", "Door_2", 0, false); 
    RemoveItem("Key_2"); 
}
 
But that Didn't work either. 
Thank you for helping in Advance 
-Grey Fox (The Noob)
			  
			
			
 
Current Project 
Forgotten  
			
		 |  
	 
 | 
 
	| 07-13-2011, 10:39 PM  | 
	
		
	 | 
 
 
	
		
		SkuLLfac3 
 
 
		
			Junior Member 
			
			
			
 
			
	Posts: 48 
	Threads: 11 
	Joined: Jun 2011
	
 Reputation: 
0
		
	 | 
	
		
			
RE: Key Problem  
			 
			
				I'm not good at scripting but I would say, the reason is, that you use the same void syntax. I would do something like that: 
void UsedKeyOnDoor(string &in asItem, string &in asEntity) 
{ 
    SetSwingDoorLocked("LockedDoor_1", false, true); 
    PlaySoundAtEntity("", "unlock_door", "LockedDoor_1", 0, false); 
    RemoveItem("LockedDoorKey"); 
} 
 
void UsedKeyOnDoor2(string &in asItem, string &in asEntity) 
{ 
    SetSwingDoorLocked("Door_2", false, true); 
    PlaySoundAtEntity("", "unlock_door", "Door_2", 0, false); 
    RemoveItem("Key_2"); 
}
 
Sry for my bad English but I hope you know what I mean   
EDIT: Of course, if you have something else in the script with "UsedKeyOnDoor" but you want the second door (Door_2) , you have to change that to "UsedKeyOnDoor2".
			  
			
			
 
			
				
(This post was last modified: 07-13-2011, 10:56 PM by SkuLLfac3.)
 
				
			 
		 |  
	 
 | 
 
	| 07-13-2011, 10:54 PM  | 
	
		
	 | 
 
 
	
		
		xtron 
 
 
		
			Senior Member 
			
			
			
 
			
	Posts: 402 
	Threads: 37 
	Joined: May 2011
	
 Reputation: 
2
		
	 | 
	
		
			
RE: Key Problem  
			 
			
				The first one you posted with two different voids is wrong and will probably give you errors 'cuz you can't have a script that executes two functions. please post your void OnStart() 
stuff aswell and I'll see if I can fix it   
			 
			
			
 
 Dubstep <3 
			
		 |  
	 
 | 
 
	| 07-13-2011, 11:20 PM  | 
	
		
	 | 
 
 
	
		
		GreyFox 
 
 
		
			Member 
			
			
			
 
			
	Posts: 162 
	Threads: 23 
	Joined: Jul 2011
	
 Reputation: 
2
		
	 | 
	
		
			
RE: Key Problem  
			 
			
				My Whole Script? Okay 
//////////////////////////// 
// Run first time starting map 
void OnStart() 
{ 
SetEntityPlayerInteractCallback("Mansion_5", "MonsterActivate", true); 
AddUseItemCallback("", "LockedDoorKey_1", "LockedDoor_1", "UsedKeyOnDoor", true);     
AddUseItemCallback("", "Key_2", "Door_2", "UsedKeyOnDoor", true); 
AddEntityCollideCallback("Player", "Scare_1", "CollideScare_1", true, 1); 
AddEntityCollideCallback("Player", "Doorslam_1", "CollideDoorslam_1", true, 1); 
AddEntityCollideCallback("Player", "MonsterActivate", "CollideMonsterActivate", true, 1); 
} 
 
void MonsterActivate(string &in Entity) 
{ 
    SetEntityActive("Frank", true); 
} 
 
void UsedKeyOnDoor(string &in asItem, string &in asEntity) 
{ 
    SetSwingDoorLocked("LockedDoor_1", false, true); 
    PlaySoundAtEntity("", "unlock_door", "LockedDoor_1", 0, false); 
    RemoveItem("LockedDoorKey"); 
 
    SetSwingDoorLocked("Door_2", false, true); 
    PlaySoundAtEntity("", "unlock_door", "Door_2", 0, false); 
    RemoveItem("Key_2"); 
} 
 
void CollideScare_1(string &in asParent, string &in asChild, int alState) 
{ 
    SetSwingDoorClosed("ScareDoor_1", true, true); 
} 
 
void CollideDoorslam_1(string &in asParent, string &in asChild, int alState) 
{ 
    SetSwingDoorClosed("LockedDoor_1", true, true); 
} 
 
void CollideMonsterActivate(string &in asParent, string &in asChild, int alState) 
{ 
    SetNPCAwake("Frank_2", true, false); 
    AddEnemyPatrolNode("Frank_2", "PathNodeArea_5", 0, ""); 
    AddEnemyPatrolNode("Frank_2", "PathNodeArea_7", 0, ""); 
    AddEnemyPatrolNode("Frank_2", "PathNodeArea_17", 0, ""); 
    AddEnemyPatrolNode("Frank_2", "PathNodeArea_27", 0, ""); 
    AddEnemyPatrolNode("Frank_2", "PathNodeArea_36", 0, ""); 
    SetEnemyDisabled("Frank_2", true); 
} 
 
//////////////////////////// 
// Run when entering map 
void OnEnter() 
{ 
 
} 
 
/////////////////////////// 
//Run when leaving map 
void OnLeave() 
{ 
 
}
 
Ignore the bottom part with all the waypoints i have to fix that Unless someone knows how to fix that? It won't activate. no error or anything but not the point.
 
-Grey Fox
			  
			
			
 
Current Project 
Forgotten  
			
		 |  
	 
 | 
 
	| 07-13-2011, 11:38 PM  | 
	
		
	 | 
 
 
	
		
		SkuLLfac3 
 
 
		
			Junior Member 
			
			
			
 
			
	Posts: 48 
	Threads: 11 
	Joined: Jun 2011
	
 Reputation: 
0
		
	 | 
	
		
			
RE: Key Problem  
			 
			
				 (07-13-2011, 11:20 PM)xtron Wrote:  The first one you posted with two different voids is wrong and will probably give you errors 'cuz you can't have a script that executes two functions. please post your void OnStart() 
stuff aswell and I'll see if I can fix it   
Do you mean my solution? I don't know much about it    I'm new   
I still would say this:
 //////////////////////////// 
// Run first time starting map 
void OnStart() 
{ 
SetEntityPlayerInteractCallback("Mansion_5", "MonsterActivate", true); 
AddUseItemCallback("", "LockedDoorKey_1", "LockedDoor_1", "UsedKeyOnDoor", true);     
AddUseItemCallback("", "Key_2", "Door_2", "UsedKeyOnDoor2", true); 
AddEntityCollideCallback("Player", "Scare_1", "CollideScare_1", true, 1); 
AddEntityCollideCallback("Player", "Doorslam_1", "CollideDoorslam_1", true, 1); 
AddEntityCollideCallback("Player", "MonsterActivate", "CollideMonsterActivate", true, 1); 
} 
 
void MonsterActivate(string &in Entity) 
{ 
    SetEntityActive("Frank", true); 
} 
 
void UsedKeyOnDoor(string &in asItem, string &in asEntity) 
{ 
    SetSwingDoorLocked("LockedDoor_1", false, true); 
    PlaySoundAtEntity("", "unlock_door", "LockedDoor_1", 0, false); 
    RemoveItem("LockedDoorKey"); 
} 
 
void UsedKeyOnDoor2(string &in asItem, string &in asEntity) 
{ 
    SetSwingDoorLocked("Door_2", false, true); 
    PlaySoundAtEntity("", "unlock_door", "Door_2", 0, false); 
    RemoveItem("Key_2"); 
} 
 
void CollideScare_1(string &in asParent, string &in asChild, int alState) 
{ 
    SetSwingDoorClosed("ScareDoor_1", true, true); 
} 
 
void CollideDoorslam_1(string &in asParent, string &in asChild, int alState) 
{ 
    SetSwingDoorClosed("LockedDoor_1", true, true); 
} 
 
void CollideMonsterActivate(string &in asParent, string &in asChild, int alState) 
{ 
    SetNPCAwake("Frank_2", true, false); 
    AddEnemyPatrolNode("Frank_2", "PathNodeArea_5", 0, ""); 
    AddEnemyPatrolNode("Frank_2", "PathNodeArea_7", 0, ""); 
    AddEnemyPatrolNode("Frank_2", "PathNodeArea_17", 0, ""); 
    AddEnemyPatrolNode("Frank_2", "PathNodeArea_27", 0, ""); 
    AddEnemyPatrolNode("Frank_2", "PathNodeArea_36", 0, ""); 
    SetEnemyDisabled("Frank_2", true); 
} 
 
//////////////////////////// 
// Run when entering map 
void OnEnter() 
{ 
 
} 
 
/////////////////////////// 
//Run when leaving map 
void OnLeave() 
{ 
 
}
 
I'm not sure but you can try it ^^
			  
			
			
 
			
				
(This post was last modified: 07-14-2011, 12:13 AM by SkuLLfac3.)
 
				
			 
		 |  
	 
 | 
 
	| 07-14-2011, 12:12 AM  | 
	
		
	 | 
 
 
	
		
		Zypherzemus 
 
 
		
			Member 
			
			
			
 
			
	Posts: 94 
	Threads: 7 
	Joined: Jul 2011
	
 Reputation: 
0
		
	 | 
	
		
			
RE: Key Problem  
			 
			
				Yea.. Uh... You have to change the "UsedKeyOnDoor" function name to something else. Like what SkuLL posted. "UsedKeyOnDoor2" etc. 
Like so:
 //////////////////////////// 
// Run first time starting map 
void OnStart() 
{ 
SetEntityPlayerInteractCallback("Mansion_5", "MonsterActivate", true); 
AddUseItemCallback("", "LockedDoorKey_1", "LockedDoor_1", "UsedKeyOnDoor", true);     
AddUseItemCallback("", "Key_2", "Door_2", "UsedKeyOnDoor2", true); 
AddEntityCollideCallback("Player", "Scare_1", "CollideScare_1", true, 1); 
AddEntityCollideCallback("Player", "Doorslam_1", "CollideDoorslam_1", true, 1); 
AddEntityCollideCallback("Player", "MonsterActivate", "CollideMonsterActivate", true, 1); 
} 
 
void MonsterActivate(string &in Entity) 
{ 
    SetEntityActive("Frank", true); 
} 
 
void UsedKeyOnDoor(string &in asItem, string &in asEntity) 
{ 
    SetSwingDoorLocked("LockedDoor_1", false, true); 
    PlaySoundAtEntity("", "unlock_door", "LockedDoor_1", 0, false); 
    RemoveItem("LockedDoorKey"); 
} 
 
void UsedKeyOnDoor2(string &in asItem, string &in asEntity) 
{ 
    SetSwingDoorLocked("Door_2", false, true); 
    PlaySoundAtEntity("", "unlock_door", "Door_2", 0, false); 
    RemoveItem("Key_2"); 
} 
 
void CollideScare_1(string &in asParent, string &in asChild, int alState) 
{ 
    SetSwingDoorClosed("ScareDoor_1", true, true); 
} 
 
void CollideDoorslam_1(string &in asParent, string &in asChild, int alState) 
{ 
    SetSwingDoorClosed("LockedDoor_1", true, true); 
} 
 
void CollideMonsterActivate(string &in asParent, string &in asChild, int alState) 
{ 
    SetNPCAwake("Frank_2", true, false); 
    AddEnemyPatrolNode("Frank_2", "PathNodeArea_5", 0, ""); 
    AddEnemyPatrolNode("Frank_2", "PathNodeArea_7", 0, ""); 
    AddEnemyPatrolNode("Frank_2", "PathNodeArea_17", 0, ""); 
    AddEnemyPatrolNode("Frank_2", "PathNodeArea_27", 0, ""); 
    AddEnemyPatrolNode("Frank_2", "PathNodeArea_36", 0, ""); 
    SetEnemyDisabled("Frank_2", true); 
} 
 
//////////////////////////// 
// Run when entering map 
void OnEnter() 
{ 
 
} 
 
/////////////////////////// 
//Run when leaving map 
void OnLeave() 
{ 
 
}
 
I fixed the function for "Key_2" and "Door_2". it's now "UsedKeyOnDoor2".  
You also had both commands in the same callback function, which is a big "no-no".    
Hope this helps. 
EDIT: 
Oh.. I'm not sure if the "AddUseItemCallback" command really matters if it's in either the OnStart() or OnEnter() 
I was told it did, but try it out and see first. If it gives you an error, move both "AddUseItemCallback" commands as well as their callback functions down into the OnEnter() section.
			  
			
			
			
				
(This post was last modified: 07-14-2011, 02:13 AM by Zypherzemus.)
 
				
			 
		 |  
	 
 | 
 
	| 07-14-2011, 02:09 AM  | 
	
		
	 | 
 
 
	
		
		xtron 
 
 
		
			Senior Member 
			
			
			
 
			
	Posts: 402 
	Threads: 37 
	Joined: May 2011
	
 Reputation: 
2
		
	 | 
	
		
			
RE: Key Problem  
			 
			
				Snuffs code should do it   
			 
			
			
 
 Dubstep <3 
			
		 |  
	 
 | 
 
	| 07-14-2011, 03:04 AM  | 
	
		
	 | 
 
 
	
		
		GreyFox 
 
 
		
			Member 
			
			
			
 
			
	Posts: 162 
	Threads: 23 
	Joined: Jul 2011
	
 Reputation: 
2
		
	 | 
	
		
			
RE: Key Problem  
			 
			
				Hey Guys, You Helped Me alot. Sorry For the Late Reply Been Gone the past two days.  
 
Thank You!! 
-Grey Fox
			 
			
			
 
Current Project 
Forgotten  
			
		 |  
	 
 | 
 
	| 07-15-2011, 03:07 PM  | 
	
		
	 | 
 
 
	 
 |