Frictional Games Forum (read-only)

Full Version: How to make grunt respawn when player dies?
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
At the moment, if my player dies, all the enemies in the map will not spawn when the player re-spawns. How do I make the enemies spawn every life?
Using ResetProp on the monster followed by SetEntityActive should work.
Or you can make a checkpoint. If you post your script, I'll put it for you Smile
Ooh, ok sweet. Here's the script.

Edit: the formatting kind of went to shit. Want me to post the file to download, or can you work from this?

Spoiler below!
Code:
void OnStart(){    if(ScriptDebugOn())    {        GiveItemFromFile("lantern", "lantern.ent");    }            //****** ATTACKING GRUNTS *********        SetEntityActive("gruntTwo", false);    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)     {         if(GetLocalVarInt("Grunt1State") == 1)        {              SetEntityActive("gruntOne", false);              CreateParticleSystemAtEntity("electro1", "ps_electro_charge.ps", "gruntOne", true);              PlaySoundAtEntity("grunt1", "15_bang.snt", "Player", 0, false);              AddTimer("GruntOneSpawnDelay", 3, "GruntOneTimer");              SetLocalVarInt("Grunt1State", 0);          }     }}
void GruntTwo(string &in asEntity, int alState) {    if(alState == 1)    {        if(GetLocalVarInt("Grunt2State") == 1)        {                SetEntityActive("gruntTwo", false);            CreateParticleSystemAtEntity("electro2", "ps_electro_charge.ps", "gruntTwo", true);            PlaySoundAtEntity("grunt2", "15_bang.snt", "Player", 0, false);            AddTimer("GruntTwoSpawnDelay", 3, "GruntTwoTimer");            SetLocalVarInt("Grunt2State", 0);        }    }}
void GruntOneTimer(string &in asTimer){    SetEntityActive("gruntTwo", true);    DestroyParticleSystem("electro2");    SetLocalVarInt("Grunt1State", 1);    ShowEnemyPlayerPosition("gruntTwo");}
void GruntTwoTimer(string &in asTimer){    ShowEnemyPlayerPosition("gruntOne");    SetEntityActive("gruntOne", true);    DestroyParticleSystem("electro1");    SetLocalVarInt("Grunt2State", 1);}//****** ATTACKING GRUNTS *********

(06-23-2013, 03:16 PM)Zokrar Wrote: [ -> ]Ooh, ok sweet. Here's the script.

Edit: the formatting kind of went to shit. Want me to post the file to download, or can you work from this?

Spoiler below!
Code:
void OnStart(){    if(ScriptDebugOn())    {        GiveItemFromFile("lantern", "lantern.ent");    }            //****** ATTACKING GRUNTS *********        SetEntityActive("gruntTwo", false);    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)     {         if(GetLocalVarInt("Grunt1State") == 1)        {              SetEntityActive("gruntOne", false);              CreateParticleSystemAtEntity("electro1", "ps_electro_charge.ps", "gruntOne", true);              PlaySoundAtEntity("grunt1", "15_bang.snt", "Player", 0, false);              AddTimer("GruntOneSpawnDelay", 3, "GruntOneTimer");              SetLocalVarInt("Grunt1State", 0);          }     }}
void GruntTwo(string &in asEntity, int alState) {    if(alState == 1)    {        if(GetLocalVarInt("Grunt2State") == 1)        {                SetEntityActive("gruntTwo", false);            CreateParticleSystemAtEntity("electro2", "ps_electro_charge.ps", "gruntTwo", true);            PlaySoundAtEntity("grunt2", "15_bang.snt", "Player", 0, false);            AddTimer("GruntTwoSpawnDelay", 3, "GruntTwoTimer");            SetLocalVarInt("Grunt2State", 0);        }    }}
void GruntOneTimer(string &in asTimer){    SetEntityActive("gruntTwo", true);    DestroyParticleSystem("electro2");    SetLocalVarInt("Grunt1State", 1);    ShowEnemyPlayerPosition("gruntTwo");}
void GruntTwoTimer(string &in asTimer){    ShowEnemyPlayerPosition("gruntOne");    SetEntityActive("gruntOne", true);    DestroyParticleSystem("electro1");    SetLocalVarInt("Grunt2State", 1);}//****** ATTACKING GRUNTS *********

Doesn't matter, got the script from your other thread:

Put a ScriptArea right before all your stuff happens.

void OnStart()
{
if(ScriptDebugOn())
{
GiveItemFromFile("lantern", "lantern.ent");
}

AddEntityCollideCallback(“Player”, “ScriptArea_1”, “Restart”, true, 1);

///The ScriptArea_1 is right before all your things happen

void Restart(string &in asParent, string &in asChild, int alState)
{
CheckPoint (“FirstCheckpoint”, “PlayerStartArea_1”, “Happening”, “DeathCategory”, “Deathtext”);
}

void Happening(string &in asName, int alCount)
{
SetEntityPlayerLookAtCallback("gruntOne", "GruntOne", false);
SetEntityPlayerLookAtCallback("gruntTwo", "GruntTwo", false);
AddLocalVarInt("Grunt1State", 1);
AddLocalVarInt("Grunt2State", 1);
}


//****** 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)
{
if(GetLocalVarInt("Grunt1State") == 1)
{
SetEntityActive("gruntOne", false);
CreateParticleSystemAtEntity("electro1", "ps_electro_charge.ps", "gruntOne", true);
PlaySoundAtEntity("grunt1", "15_bang.snt", "Player", 0, false);
AddTimer("GruntOneSpawnDelay", 3, "GruntOneTimer");
SetLocalVarInt("Grunt1State", 0);
}
}
}

void GruntTwo(string &in asEntity, int alState)
{
if(alState == 1)
{
if(GetLocalVarInt("Grunt2State") == 1)
{
SetEntityActive("gruntTwo", false);
CreateParticleSystemAtEntity("electro2", "ps_electro_charge.ps", "gruntTwo", true);
PlaySoundAtEntity("grunt2", "15_bang.snt", "Player", 0, false);
AddTimer("GruntTwoSpawnDelay", 3, "GruntTwoTimer");
SetLocalVarInt("Grunt2State", 0);
}
}
}

void GruntOneTimer(string &in asTimer)
{
SetEntityActive("gruntTwo", true);
DestroyParticleSystem("electro2");
SetLocalVarInt("Grunt1State", 1);
}

void GruntTwoTimer(string &in asTimer)
{
SetEntityActive("gruntOne", true);
DestroyParticleSystem("electro1");
SetLocalVarInt("Grunt2State", 1);
}
//****** ATTACKING GRUNTS *********


This should work.

Maybe this helps you.

http://wiki.frictionalgames.com/hpl2/tut...riptarea_s