Zokrar   
 
 
		
			Member 
			
			
			
 
			
	Posts: 85 
	Threads: 16 
	Joined: May 2013
	
 Reputation: 
0  
		 
	 
	
		
			
Script help required 
  
			 
			
				What I'm trying to accomplish is this:
There are two grunts at first. gruntOne, gruntTwo. If you look at one, it disappears, a sound plays, and a particle system appears where the grunt disappeared. I have this much working so far. 
What's NOT working is when I try and add a timer between when the other one can spawn. In this case, say gruntOne is active, and gruntTwo is not. I want it so that when I look at gruntOne, it'll disappear, do all the particles/sounds etc., and 3 seconds after it disappears, gruntTwo spawns in, and vice versa. Could someone take a look at my script to see if they can fix it please?
Spoiler below!   
void OnStart() 
{ 
    if(ScriptDebugOn()) 
    { 
        GiveItemFromFile("lantern", "lantern.ent"); 
    } 
     
     
    //****** ATTACKING GRUNTS ********* 
    SetEntityPlayerLookAtCallback("gruntOne", "GruntOne", false); 
    SetEntityPlayerLookAtCallback("gruntTWo", "GruntTwo", false); 
    //****** ATTACKING GRUNTS ********* 
     
     
    SetSkyBoxActive(true); 
       SetSkyBoxTexture("nighttime.dds"); 
        
        
       PlayMusic("ending_alexander.ogg", true, 0.30, 2.00, 5, true); 
} 
 
 
 
 
//****** ATTACKING GRUNTS ********* 
void GruntOne(string &in asEntity, int alState)  
{ 
    if(alState == 1) 
    { 
        SetEntityActive("gruntOne", false); 
        CreateParticleSystemAtEntity("electro1", "ps_electro_charge.ps", "gruntOne", true); 
        PlaySoundAtEntity("grunt1", "15_bang.snt", "Player", 0, false); 
         
         
        AddTimer("GruntTwoSpawnDelay", 3.00, ""); 
        GetTimerTimeLeft("GruntTwoSpawnDelay"); 
        if(GetTimerTimeLeft("GruntTwoSpawnDelay") > 0) 
        { 
            GetTimerTimeLeft("GruntTwoSpawnDelay"); 
        } 
        else if(GetTimerTimeLeft("GruntTwoSpawnDelay") == 0) 
        { 
            SetEntityActive("gruntTwo", true); 
            DestroyParticleSystem("electro2"); 
        } 
    } 
} 
 
void GruntTwo(string &in asEntity, int alState)  
{ 
    if(alState == 1) 
    { 
        SetEntityActive("gruntTwo", false); 
        CreateParticleSystemAtEntity("electro2", "ps_electro_charge.ps", "gruntTwo", true); 
        PlaySoundAtEntity("grunt2", "15_bang.snt", "Player", 0, false); 
         
         
        AddTimer("GruntOneSpawnDelay", 3.00, ""); 
        if(GetTimerTimeLeft("GruntOneSpawnDelay") > 0) 
        { 
            GetTimerTimeLeft("GruntOneSpawnDelay"); 
        } 
        else if(GetTimerTimeLeft("GruntOneSpawnDelay") == 0) 
        { 
            SetEntityActive("gruntOne", true); 
            DestroyParticleSystem("electro1"); 
        } 
    } 
} 
//****** ATTACKING GRUNTS *********
 
 
 
 
UPDATED SCRIPT: Still not working, but closer to solution I think.
Spoiler below!   
void OnStart() 
{ 
    if(ScriptDebugOn()) 
    { 
        GiveItemFromFile("lantern", "lantern.ent"); 
    } 
     
     
    //****** ATTACKING GRUNTS ********* 
     
    SetEntityPlayerLookAtCallback("gruntOne", "GruntOne", false); 
    SetEntityPlayerLookAtCallback("gruntTWo", "GruntTwo", false); 
    AddLocalVarInt("Grunt1State", 1); 
    AddLocalVarInt("Grunt2State", 1); 
     
    //****** ATTACKING GRUNTS ********* 
     
     
    SetSkyBoxActive(true); 
       SetSkyBoxTexture("nighttime.dds"); 
        
        
       PlayMusic("ending_alexander.ogg", true, 0.30, 2.00, 5, true); 
} 
 
 
 
 
//****** ATTACKING GRUNTS ********* 
void GruntOne(string &in asEntity, int alState)  
{ 
    if(alState == 1) 
     { 
          SetEntityActive("gruntOne", false); 
          CreateParticleSystemAtEntity("electro1", "ps_electro_charge.ps", "gruntOne", true); 
          PlaySoundAtEntity("grunt1", "15_bang.snt", "Player", 0, false); 
          AddTimer("GruntOneSpawnDelay", 3.00, ""); 
          SetLocalVarInt("Grunt1State", 0);  
   
     } 
    else if(alState == -1) 
     { 
          if(GetLocalVarInt("Grunt1State") == 0) 
          { 
               if(GetTimerTimeLeft("GruntOneSpawnDelay") <= 0) 
               { 
                SetEntityActive("gruntTwo", true); 
                DestroyParticleSystem("electro1"); 
                SetLocalVarInt("Grunt1State", 1); 
               } 
          } 
     } 
} 
 
void GruntTwo(string &in asEntity, int alState)  
{ 
    if(alState == 1) 
    { 
        SetEntityActive("gruntTwo", false); 
        CreateParticleSystemAtEntity("electro2", "ps_electro_charge.ps", "gruntTwo", true); 
        PlaySoundAtEntity("grunt2", "15_bang.snt", "Player", 0, false); 
        AddTimer("GruntTwoSpawnDelay", 3.00, ""); 
        SetLocalVarInt("Grunt2State", 0); 
     
    } 
    else if(alState == -1) 
    { 
        if(GetLocalVarInt("Grunt2State") == 0) 
        { 
            if(GetTimerTimeLeft("GruntTwoSpawnDelay") <= 0) 
            { 
                SetEntityActive("gruntOne", true); 
                DestroyParticleSystem("electro2"); 
                SetLocalVarInt("Grunt2State", 1); 
            } 
        } 
    } 
} 
//****** ATTACKING GRUNTS *********
 
 
 
 
			 
			
			
 
			
				
(This post was last modified: 06-23-2013, 02:32 AM by Zokrar .)