| 
		
	
		| VisualTech48   Junior Member
 
 Posts: 21
 Threads: 5
 Joined: Apr 2012
 Reputation: 
0
 | 
			| Timer help 
 
				Hi, I have ran into a problem where i have no clue how to script this. 
Here is the overview of the situation
 
1.A player enters a room and colides with script area ["TheTime"]
 
2. The timer must be 30 sek 
3. After 30 sek the monster comes in [Brakes the door, but with script and ps]
 
Case2# If the player findes the key early, the monster brakes the door immediately
 
And if he dies by the monster "Death" That the sequence happens again (So you dont commit suiced and then just chill walk trought the room)
 
If anyone could help me it whould be great, Ty   
 - Order and Law! - The new Mod[WIP] 
				
(This post was last modified: 03-15-2013, 08:06 PM by VisualTech48.)
 |  |  
	| 03-13-2013, 02:28 PM |  |  
	
		| PutraenusAlivius   Posting Freak
 
 Posts: 4,713
 Threads: 75
 Joined: Dec 2012
 Reputation: 
119
 | 
			| RE: Timer help 
 
				void OnStart(){
 AddEntityCollideCallback("Player", "TheTime", "MonsterTimerBegin", true, 1); //TheTime is the script area you mention.
 }
 
 void MonsterTimerBegin(string &in asParent, string &in asChild, int alState)
 {
 AddTimer("", 30.0f, "MonsterTimer"); //Begins the timer with the duration of 30 sec.
 }
 
 void MonsterTimer(string &in asTimer)
 {
 SetEntityActive("MONSTERNAME", true);   //Change MONSTERNAME to whatever your monster's name is.
 }
 
I don't know how to script Case2, but i think it uses the if else statement.
			 
 "Veni, vidi, vici.""I came, I saw, I conquered."
 |  |  
	| 03-13-2013, 03:45 PM |  |  
	
		| VisualTech48   Junior Member
 
 Posts: 21
 Threads: 5
 Joined: Apr 2012
 Reputation: 
0
 | 
			| RE: Timer help 
 
				 (03-13-2013, 03:45 PM)JustAnotherPlayer Wrote:  I don't know how to script Case2, but i think it uses the if else statement.void OnStart(){
 AddEntityCollideCallback("Player", "TheTime", "MonsterTimerBegin", true, 1); //TheTime is the script area you mention.
 }
 
 void MonsterTimerBegin(string &in asParent, string &in asChild, int alState)
 {
 AddTimer("", 30.0f, "MonsterTimer"); //Begins the timer with the duration of 30 sec.
 }
 
 void MonsterTimer(string &in asTimer)
 {
 SetEntityActive("MONSTERNAME", true);   //Change MONSTERNAME to whatever your monster's name is.
 }
 
 
Ty man, but still waiting if anyone cound help me make Case 2#
			 
 - Order and Law! - The new Mod[WIP] |  |  
	| 03-13-2013, 05:21 PM |  |  
	
		| Adrianis   Senior Member
 
 Posts: 620
 Threads: 6
 Joined: Feb 2012
 Reputation: 
27
 | 
			| RE: Timer help 
 
				void OnStart(){
 AddEntityCollideCallback("Player", "TheTime", "MonsterTimerBegin", true, 1); //TheTime is the script area you mention.
 SetLocalVarInt("MonTimLoopVal", 0);
 }
 
 void MonsterTimerBegin(string &in asParent, string &in asChild, int alState)
 {
 AddTimer("MonTimLoop", 1.0f, "MonsterTimerLoop"); //Begins the timer with the duration of 30 sec.
 }
 
 void MonsterTimerLoop(string &in asTimer)
 {
 AddLocalVarInt("MonTimLoopVal", 1); // adds 1 to var each time function is called
 if ((GetLocalVarInt("MonTimLoopVal") == 30) || (HasItem("KEYNAMEHERE"))) {
 SetEntityActive("MONSTERNAME", true);   //Change MONSTERNAME to whatever your monster's name is.
 }
 else {
 AddTimer("MonTimLoop", 1, "MonsterTimerLoop");
 }
 }
In the MonsterTimerLoop function, the 'if' is checking whether... 
A. 30 seconds have expired 
OR 
B. Player has the key in their inventory 
THEN  
Spawn the monster 
and if neither 30 seconds has gone by nor the player has the key, add another timer with 1 second to call the same func 
Next time the func is called, 1 gets added to the total var for time keeping, and so on and so forth
 
Word of warning, I just wrote this at work so I havent tested whether it works, let me know if you get any errors
			 
 
				
(This post was last modified: 03-13-2013, 05:36 PM by Adrianis.)
 |  |  
	| 03-13-2013, 05:35 PM |  |  
	
		| VisualTech48   Junior Member
 
 Posts: 21
 Threads: 5
 Joined: Apr 2012
 Reputation: 
0
 | 
			| RE: Timer help 
 
				 (03-13-2013, 05:35 PM)Adrianis Wrote:  void OnStart(){
 AddEntityCollideCallback("Player", "TheTime", "MonsterTimerBegin", true, 1); //TheTime is the script area you mention.
 SetLocalVarInt("MonTimLoopVal", 0);
 }
 
 void MonsterTimerBegin(string &in asParent, string &in asChild, int alState)
 {
 AddTimer("MonTimLoop", 1.0f, "MonsterTimerLoop"); //Begins the timer with the duration of 30 sec.
 }
 
 void MonsterTimerLoop(string &in asTimer)
 {
 AddLocalVarInt("MonTimLoopVal", 1); // adds 1 to var each time function is called
 if ((GetLocalVarInt("MonTimLoopVal") == 30) || (HasItem("KEYNAMEHERE"))) {
 SetEntityActive("MONSTERNAME", true);   //Change MONSTERNAME to whatever your monster's name is.
 }
 else {
 AddTimer("MonTimLoop", 1, "MonsterTimerLoop");
 }
 }
In the MonsterTimerLoop function, the 'if' is checking whether...
 A. 30 seconds have expired
 OR
 B. Player has the key in their inventory
 THEN
 Spawn the monster
 and if neither 30 seconds has gone by nor the player has the key, add another timer with 1 second to call the same func
 Next time the func is called, 1 gets added to the total var for time keeping, and so on and so forth
 
 Word of warning, I just wrote this at work so I havent tested whether it works, let me know if you get any errors
 Ty, gona try when i come back home, hope it works      
 - Order and Law! - The new Mod[WIP] |  |  
	| 03-13-2013, 06:15 PM |  |  |