Your Computer   
 
 
		
			SCAN ME! 
			
			
			
 
			
	Posts: 3,456 
	Threads: 32 
	Joined: Jul 2011
	
 Reputation: 
235  
		 
	 
	
		
			
RE: Script help needed 
  
			 
			
				You're still working on this? Here's my working version of it. All four sticky areas have the same detach and attach functions. The local map variable names have the names of the sticky areas. Study, modify, etc...
const  string []  oven_sticky_areas  = { "OvenArea_1" ,  "OvenArea_2" ,  "OvenArea_3" ,  "OvenArea_4" }; const  string oven_object_name  =  "oven_object" ; const  string oven_door_name  =  "mansion_1" ; const  string oven_lever_name  =  "lever_simple01_22" ; void OnStart ()     {          SetEntityConnectionStateChangeCallback ( oven_lever_name ,  "CheckIngredients" );     } ////////////LEVER CHECK///////////////// void CheckIngredients ( string  & in asEntity ,  int alState )     {         if( alState  ==  1 )         {             if ( GetLocalVarInt ( oven_sticky_areas [ 0 ]) ==  1               &&  GetLocalVarInt ( oven_sticky_areas [ 1 ]) ==  1               &&  GetLocalVarInt ( oven_sticky_areas [ 2 ]) ==  1               &&  GetLocalVarInt ( oven_sticky_areas [ 3 ]) ==  1 )             {                  AddDebugMessage ( "OvenPuzzle: Correct!" ,  false );                  AddTimer ( "CompleteOvenPuzzle" ,  1 ,  "CompleteOvenPuzzle" );             }             else             {                  AddDebugMessage ( "OvenPuzzle: Wrong!" ,  false );                  SetMessage ( "Messages" ,  "IncorrectCombination" ,  0 );             }         }     } void AttachObjectOven ( string  & in asStickyArea ,  string  & in asBodyName )     {         if ( StringContains ( asBodyName ,  oven_object_name ))              SetAllowStickyAreaAttachment ( true );         else         {              SetAllowStickyAreaAttachment ( false );             return;         }          AddDebugMessage ( asStickyArea  +  " "  +  asBodyName ,  true );          asBodyName  =  StringSub ( asBodyName ,  0 ,  oven_object_name . length () +  2 );          AddDebugMessage ( asBodyName ,  false );         if ( StringContains ( asStickyArea ,  "1" ) &&  StringContains ( asBodyName ,  "1" ))              SetLocalVarInt ( asStickyArea ,  1 );         else if ( StringContains ( asStickyArea ,  "2" ) &&  StringContains ( asBodyName ,  "2" ))              SetLocalVarInt ( asStickyArea ,  1 );         else if ( StringContains ( asStickyArea ,  "3" ) &&  StringContains ( asBodyName ,  "3" ))              SetLocalVarInt ( asStickyArea ,  1 );         else if ( StringContains ( asStickyArea ,  "4" ) &&  StringContains ( asBodyName ,  "4" ))              SetLocalVarInt ( asStickyArea ,  1 );     } void DetachObjectOven ( string  & in asStickyArea ,  string  & in asBodyName )     {          SetLocalVarInt ( asStickyArea ,  0 );     } void CompleteOvenPuzzle ( string  & in asTimer )     {          SetSwingDoorLocked ( oven_door_name ,  false ,  true );          SetMessage ( "Messages" ,  "correctcombinationchemicals" ,  0 );     }  
 
			 
			
			
 
			
				
(This post was last modified: 09-19-2012, 07:23 PM by Your Computer .) 
 
				
			 
		  
	
 
 
	09-19-2012, 06:30 PM   
	
		
	 
 
	
		 
		FlawlessHappiness   
 
 
		
			Posting Freak 
			
			
			
 
			
	Posts: 3,980 
	Threads: 145 
	Joined: Mar 2012
	
 Reputation: 
171  
		 
	 
	
		
			
RE: Script help needed 
  
			 
			
				Very nice script YC! I love it!
			
			
			
 
Trying is the first step to success.
			
		  
	
 
 
	09-19-2012, 06:38 PM   
	
		
	 
 
	
		 
		Steve   
 
 
		
			Member 
			
			
			
 
			
	Posts: 178 
	Threads: 17 
	Joined: Jun 2012
	
 Reputation: 
7  
		 
	 
	
		
			
RE: Script help needed 
  
			 
			
				 (09-19-2012, 06:30 PM) Your Computer Wrote:   You're still working on this? Here's my working version of it. All four sticky areas have the same detach and attach functions. The local map variable names have the names of the sticky areas. Study, modify, etc... 
 
const  string []  oven_sticky_areas  = { "OvenArea_1" ,  "OvenArea_2" ,  "OvenArea_3" ,  "OvenArea_4" }; const  string oven_object_name  =  "oven_object" ; const  string oven_door_name  =  "mansion_1" ; const  string oven_lever_name  =  "lever_simple01_22" ; void OnStart ()     {          SetEntityConnectionStateChangeCallback ( oven_lever_name ,  "CheckIngredients" );     } ////////////LEVER CHECK///////////////// void CheckIngredients ( string  & in asEntity ,  int alState )     {         if( alState  ==  1 )         {             if ( GetLocalVarInt ( oven_sticky_areas [ 0 ]) ==  1               &&  GetLocalVarInt ( oven_sticky_areas [ 1 ]) ==  1               &&  GetLocalVarInt ( oven_sticky_areas [ 2 ]) ==  1               &&  GetLocalVarInt ( oven_sticky_areas [ 3 ]) ==  1 )             {                  AddDebugMessage ( "OvenPuzzle: Correct!" ,  false );                  AddTimer ( "CompleteOvenPuzzle" ,  1 ,  "CompleteOvenPuzzle" );             }             else             {                  AddDebugMessage ( "OvenPuzzle: Wrong!" ,  false );                  SetMessage ( "Messages" ,  "IncorrectCombination" ,  0 );             }         }     } void AttachObjectOven ( string  & in asStickyArea ,  string  & in asBodyName )     {         if ( StringContains ( asBodyName ,  oven_object_name ))              SetAllowStickyAreaAttachment ( true );         else         {              SetAllowStickyAreaAttachment ( false );             return;         }          AddDebugMessage ( asStickyArea  +  " "  +  asBodyName ,  true );          asBodyName  =  StringSub ( asBodyName ,  0 ,  oven_object_name . length () +  2 );          AddDebugMessage ( asBodyName ,  false );         if ( StringContains ( asStickyArea ,  "1" ) &&  StringContains ( asBodyName ,  "1" ))              SetLocalVarInt ( asStickyArea ,  1 );         else if ( StringContains ( asStickyArea ,  "2" ) &&  StringContains ( asBodyName ,  "2" ))              SetLocalVarInt ( asStickyArea ,  1 );         else if ( StringContains ( asStickyArea ,  "3" ) &&  StringContains ( asBodyName ,  "3" ))              SetLocalVarInt ( asStickyArea ,  1 );         else if ( StringContains ( asStickyArea ,  "4" ) &&  StringContains ( asBodyName ,  "4" ))              SetLocalVarInt ( asStickyArea ,  1 );     } void DetachObjectOven ( string  & in asStickyArea ,  string  & in asBodyName )     {          SetLocalVarInt ( asStickyArea ,  0 );     } void CompleteOvenPuzzle ( string  & in asTimer )     {          SetSwingDoorLocked ( oven_door_name ,  false ,  true );          SetMessage ( "Messages" ,  "correctcombinationchemicals" ,  0 );     }  
Nice script 
 thank you YC yes I still haven't made it completely yet I gave up for a short period and continued a bit with the level_editing. But i guessed I should complete this one first.
I only have one request though, could you give me some annotations of what i should fill in with what?
I have this at the moment and my object names are (object_1, object_2, object_3, object_4)
Spoiler below!   
const string[] oven_sticky_areas = {"OvenArea_1", "OvenArea_2", "OvenArea_3", "OvenArea_4"}; 
const string oven_object_name = "object_"; 
const string oven_door_name = "extaction_oven_6"; 
const string oven_lever_name = "Lever_1"; 
void OnStart() 
{ 
SetEntityConnectionStateChangeCallback(oven_lever_name, "CheckIngredients"); 
} 
////////////LEVER CHECK///////////////// 
void CheckIngredients(string &in asEntity, int alState) 
{ 
if(alState == 1) 
{ 
if (GetLocalVarInt(oven_sticky_areas[0]) == 1 
&& GetLocalVarInt(oven_sticky_areas[1]) == 1 
&& GetLocalVarInt(oven_sticky_areas[2]) == 1 
&& GetLocalVarInt(oven_sticky_areas[3]) == 1) 
{ 
AddDebugMessage("OvenPuzzle: Correct!", false); 
AddTimer("CompleteOvenPuzzle", 1, "CompleteOvenPuzzle"); 
} 
 else 
{ 
AddDebugMessage("OvenPuzzle: Wrong!", false); 
SetMessage("Messages", "IncorrectCombination", 0); 
} 
} 
} 
void AttachObjectOven(string &in asStickyArea, string &in asBodyName) 
{ 
if (StringContains(asBodyName, oven_object_name)) 
SetAllowStickyAreaAttachment(true); 
else 
{ 
SetAllowStickyAreaAttachment(false); 
return; 
} 
 AddDebugMessage(asStickyArea + " " + asBodyName, true); 
 asBodyName = StringSub(asBodyName, 0, oven_object_name.length() + 2); 
AddDebugMessage(asBodyName, false); 
 if (StringContains(asStickyArea, "1") && StringContains(asBodyName, "1")) 
SetLocalVarInt(asStickyArea, 1); 
 else if (StringContains(asStickyArea, "2") && StringContains(asBodyName, "2")) 
SetLocalVarInt(asStickyArea, 1); 
 else if (StringContains(asStickyArea, "3") && StringContains(asBodyName, "3")) 
SetLocalVarInt(asStickyArea, 1); 
 else if (StringContains(asStickyArea, "4") && StringContains(asBodyName, "4")) 
SetLocalVarInt(asStickyArea, 1); 
} 
void DetachObjectOven(string &in asStickyArea, string &in asBodyName) 
{ 
SetLocalVarInt(asStickyArea, 0); 
} 
void CompleteOvenPuzzle(string &in asTimer) 
{ 
SetSwingDoorLocked(oven_door_name, false, true); 
SetMessage("Messages", "correctcombinationchemicals", 0); 
}  
 
 
As I have it now it doesn't seem to work though
			
 
			
			
 
CURRENTLY WORKING ON: 
Final Light  = 40%
Need of voice actors.
 
			
		  
	
 
 
	09-19-2012, 08:29 PM   
	
		
	 
 
	
		 
		Your Computer   
 
 
		
			SCAN ME! 
			
			
			
 
			
	Posts: 3,456 
	Threads: 32 
	Joined: Jul 2011
	
 Reputation: 
235  
		 
	 
	
		
			
RE: Script help needed 
  
			 
			
				oven_object_name shouldn't end with an underscore or any suffix. oven_object_name should be the name that all the objects have in common. In your case it would be simply "object", since you have object_1, object_2, object_3 and object_4.
			
			
			
 
			
				
(This post was last modified: 09-19-2012, 08:39 PM by Your Computer .) 
 
				
			 
		  
	
 
 
	09-19-2012, 08:38 PM   
	
		
	 
 
	
		 
		Steve   
 
 
		
			Member 
			
			
			
 
			
	Posts: 178 
	Threads: 17 
	Joined: Jun 2012
	
 Reputation: 
7  
		 
	 
	
		
			
RE: Script help needed 
  
			 
			
				so?
Spoiler below!   
 
const string[] oven_sticky_areas = {"OvenArea_1", "OvenArea_2", "OvenArea_3", "OvenArea_4"}; 
const string oven_object_name = "object"; 
const string oven_door_name = "extaction_oven_6"; 
const string oven_lever_name = "Lever_1"; 
void OnStart() 
{ 
SetEntityConnectionStateChangeCallback(oven_lever_name, "CheckIngredients"); 
} 
////////////LEVER CHECK///////////////// 
void CheckIngredients(string &in asEntity, int alState) 
{ 
if(alState == 1) 
{ 
if (GetLocalVarInt(oven_sticky_areas[0]) == 1 
&& GetLocalVarInt(oven_sticky_areas[1]) == 1 
&& GetLocalVarInt(oven_sticky_areas[2]) == 1 
&& GetLocalVarInt(oven_sticky_areas[3]) == 1) 
{ 
AddDebugMessage("OvenPuzzle: Correct!", false); 
AddTimer("CompleteOvenPuzzle", 1, "CompleteOvenPuzzle"); 
} 
else 
{ 
AddDebugMessage("OvenPuzzle: Wrong!", false); 
SetMessage("Messages", "IncorrectCombination", 0); 
} 
} 
} 
void AttachObjectOven(string &in asStickyArea, string &in asBodyName) 
{ 
if (StringContains(asBodyName, oven_object_name)) 
SetAllowStickyAreaAttachment(true); 
else 
{ 
SetAllowStickyAreaAttachment(false); 
return; 
} 
AddDebugMessage(asStickyArea + " " + asBodyName, true); 
asBodyName = StringSub(asBodyName, 0, oven_object_name.length() + 2); 
AddDebugMessage(asBodyName, false); 
if (StringContains(asStickyArea, "1") && StringContains(asBodyName, "1")) 
SetLocalVarInt(asStickyArea, 1); 
else if (StringContains(asStickyArea, "2") && StringContains(asBodyName, "2")) 
SetLocalVarInt(asStickyArea, 1); 
else if (StringContains(asStickyArea, "3") && StringContains(asBodyName, "3")) 
SetLocalVarInt(asStickyArea, 1); 
else if (StringContains(asStickyArea, "4") && StringContains(asBodyName, "4")) 
SetLocalVarInt(asStickyArea, 1); 
} 
void DetachObjectOven(string &in asStickyArea, string &in asBodyName) 
{ 
SetLocalVarInt(asStickyArea, 0); 
} 
void CompleteOvenPuzzle(string &in asTimer) 
{ 
SetSwingDoorLocked(oven_door_name, false, true); 
SetMessage("Messages", "correctcombinationchemicals", 0); 
}  
 
 
 
			 
			
			
 
CURRENTLY WORKING ON: 
Final Light  = 40%
Need of voice actors.
 
			
		  
	
 
 
	09-19-2012, 08:51 PM   
	
		
	 
 
	
		 
		Steve   
 
 
		
			Member 
			
			
			
 
			
	Posts: 178 
	Threads: 17 
	Joined: Jun 2012
	
 Reputation: 
7  
		 
	 
	
		
			
RE: Script help needed 
  
			 
			
				Oka after some week I'm back and eager to end this I tried what you said YC but It doesn't seem to work. I have the script as the previous reply.
			
			
			
 
CURRENTLY WORKING ON: 
Final Light  = 40%
Need of voice actors.
 
			
		  
	
 
 
	10-04-2012, 03:46 PM   
	
		
	 
 
	
		 
		Steve   
 
 
		
			Member 
			
			
			
 
			
	Posts: 178 
	Threads: 17 
	Joined: Jun 2012
	
 Reputation: 
7  
		 
	 
	
		
			
RE: Script help needed 
  
			 
			
				bumbosaurus
			
			
			
 
CURRENTLY WORKING ON: 
Final Light  = 40%
Need of voice actors.
 
			
		  
	
 
 
	10-05-2012, 04:55 PM   
	
		
	 
 
	
		 
		Robby   
 
 
		
			Posting Freak 
			
			
			
 
			
	Posts: 2,549 
	Threads: 38 
	Joined: Jun 2009
	
 Reputation: 
47  
		 
	 
	
		
			
RE: Script help needed 
  
			 
			
				 (10-05-2012, 04:55 PM) Steve Wrote:   bumpity bump bump bumpWell, looking at your script, it's quite complicated. I mean I know scripting and all, but you're already using advanced functions I never really did.
I'd love to help, but my limited knowledge prevents me from that.
			
 
			
			
 
Infrequently active. Don't expect an immediate response. Best to contact me at a different locale. If I create a thread, expect me to be quite active.
			
		  
	
 
 
	10-05-2012, 05:48 PM   
	
		
	 
 
	
		 
		The chaser   
 
 
		
			Posting Freak 
			
			
			
 
			
	Posts: 2,486 
	Threads: 76 
	Joined: Jun 2012
	
 Reputation: 
113  
		 
	 
	
		
			
RE: Script help needed 
  
			 
			
				Whoa, I just can't read the script that way. Put it in code, remember. I'm practising with these, maybe I can solve your problem.
			
			
			
 
                              THE OTHERWORLD (WIP)
 
Aculy iz dolan.
 
			
		  
	
 
 
	10-05-2012, 08:33 PM   
	
		
	 
 
	
		 
		Steve   
 
 
		
			Member 
			
			
			
 
			
	Posts: 178 
	Threads: 17 
	Joined: Jun 2012
	
 Reputation: 
7  
		 
	 
	
		
			
RE: Script help needed 
  
			 
			
				 (10-05-2012, 08:33 PM) The chaser Wrote:   Whoa, I just can't read the script that way. Put it in code, remember. I'm practising with these, maybe I can solve your problem.you mean like this?
const string[] oven_sticky_areas = {"OvenArea_1", "OvenArea_2", "OvenArea_3", "OvenArea_4"}; 
const string oven_object_name = "object"; 
const string oven_door_name = "extaction_oven_6"; 
const string oven_lever_name = "Lever_1"; 
void OnStart() 
{ 
SetEntityConnectionStateChangeCallback(oven_lever_name, "CheckIngredients"); 
} 
////////////LEVER CHECK///////////////// 
void CheckIngredients(string &in asEntity, int alState) 
{ 
if(alState == 1) 
{ 
if (GetLocalVarInt(oven_sticky_areas[0]) == 1 
&& GetLocalVarInt(oven_sticky_areas[1]) == 1 
&& GetLocalVarInt(oven_sticky_areas[2]) == 1 
&& GetLocalVarInt(oven_sticky_areas[3]) == 1) 
{ 
AddDebugMessage("OvenPuzzle: Correct!", false); 
AddTimer("CompleteOvenPuzzle", 1, "CompleteOvenPuzzle"); 
} 
else 
{ 
AddDebugMessage("OvenPuzzle: Wrong!", false); 
SetMessage("Messages", "IncorrectCombination", 0); 
} 
} 
} 
void AttachObjectOven(string &in asStickyArea, string &in asBodyName) 
{ 
if (StringContains(asBodyName, oven_object_name)) 
SetAllowStickyAreaAttachment(true); 
else 
{ 
SetAllowStickyAreaAttachment(false); 
return; 
} 
AddDebugMessage(asStickyArea + " " + asBodyName, true); 
asBodyName = StringSub(asBodyName, 0, oven_object_name.length() + 2); 
AddDebugMessage(asBodyName, false); 
if (StringContains(asStickyArea, "1") && StringContains(asBodyName, "1")) 
SetLocalVarInt(asStickyArea, 1); 
else if (StringContains(asStickyArea, "2") && StringContains(asBodyName, "2")) 
SetLocalVarInt(asStickyArea, 1); 
else if (StringContains(asStickyArea, "3") && StringContains(asBodyName, "3")) 
SetLocalVarInt(asStickyArea, 1); 
else if (StringContains(asStickyArea, "4") && StringContains(asBodyName, "4")) 
SetLocalVarInt(asStickyArea, 1); 
} 
void DetachObjectOven(string &in asStickyArea, string &in asBodyName) 
{ 
SetLocalVarInt(asStickyArea, 0); 
} 
void CompleteOvenPuzzle(string &in asTimer) 
{ 
SetSwingDoorLocked(oven_door_name, false, true); 
SetMessage("Messages", "correctcombinationchemicals", 0); 
}
 
			 
			
			
 
CURRENTLY WORKING ON: 
Final Light  = 40%
Need of voice actors.
 
			
		  
	
 
 
	10-06-2012, 08:02 PM