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 .)