Frictional Games Forum (read-only)
Script help (complex script) SOLVED - Printable Version

+- Frictional Games Forum (read-only) (https://www.frictionalgames.com/forum)
+-- Forum: Amnesia: The Dark Descent (https://www.frictionalgames.com/forum/forum-6.html)
+--- Forum: Custom Stories, TCs & Mods - Development (https://www.frictionalgames.com/forum/forum-38.html)
+---- Forum: Development Support (https://www.frictionalgames.com/forum/forum-39.html)
+---- Thread: Script help (complex script) SOLVED (/thread-24658.html)



Script help (complex script) SOLVED - Neelke - 02-19-2014

Code:
int glNumOfAreas = 6;

string[] gvEnemies = { "brute", "grunt" }

//---------------------------------------------------------------------

// This chooses what enemy to pick
string ChoseEnemy()
{
    int lIndex = RandInt(0, 1);
    
    return gvEnemies[lIndex];
}

// This inits an enemy
void InitEnemies()
{
    // General setup
    SetEntityActive("servant_ChoseEnemy()_*, false);
    SetEnemyDisabled("servant_ChoseEnemy()_*, false);
    ClearEnemyPatrolNodes("servant_ChoseEnemy()_*);
    
    ////////////////
    // Different pathnodes
    // 1
    if(RandInt(0,1)==1)    AddEnemyPatrolNode("servant_ChoseEnemy()_1", "PathNodeArea_8", RandFloat(1,7), "");
                        AddEnemyPatrolNode("servant_ChoseEnemy()_1", "PathNodeArea_80", RandFloat(1,5), "");
                        AddEnemyPatrolNode("servant_ChoseEnemy()_1", "PathNodeArea_83", RandFloat(1,5), "");
                        AddEnemyPatrolNode("servant_ChoseEnemy()_1", "PathNodeArea_78", RandFloat(1,3), "");
                        AddEnemyPatrolNode("servant_ChoseEnemy()_1", "PathNodeArea_41", RandFloat(1,2), "");
    else            AddEnemyPatrolNode("servant_ChoseEnemy()_1", "PathNodeArea_3", RandFloat(1,3), "");
                    AddEnemyPatrolNode("servant_ChoseEnemy()_1", "PathNodeArea_1", RandFloat(1,3), "");
                    AddEnemyPatrolNode("servant_ChoseEnemy()_1", "PathNodeArea_4", RandFloat(1,3), "");
                    AddEnemyPatrolNode("servant_ChoseEnemy()_1", "PathNodeArea_5", RandFloat(1,3), "");
                    AddEnemyPatrolNode("servant_ChoseEnemy()_1", "PathNodeArea_8", RandFloat(1,3), "");
                    AddEnemyPatrolNode("servant_ChoseEnemy()_1", "PathNodeArea_14", RandFloat(1,1), "");
                    AddEnemyPatrolNode("servant_ChoseEnemy()_1", "PathNodeArea_17", RandFloat(1,1), "");
    
    //////////////////////////
    // 2
    if(RandInt(0,1)==1)    AddEnemyPatrolNode("servant_ChoseEnemy()_2", "PathNodeArea_78", RandFloat(1,7), "");
                        AddEnemyPatrolNode("servant_ChoseEnemy()_2", "PathNodeArea_83", RandFloat(1,5), "");
                        AddEnemyPatrolNode("servant_ChoseEnemy()_2", "PathNodeArea_83", RandFloat(1,5), "");
                        AddEnemyPatrolNode("servant_ChoseEnemy()_2", "PathNodeArea_8", RandFloat(1,3), "");
                        AddEnemyPatrolNode("servant_ChoseEnemy()_2", "PathNodeArea_14", RandFloat(1,2), "");
    else            AddEnemyPatrolNode("servant_ChoseEnemy()_2", "PathNodeArea_85", RandFloat(1,3), "");
                    AddEnemyPatrolNode("servant_ChoseEnemy()_2", "PathNodeArea_88", RandFloat(1,3), "");
                    AddEnemyPatrolNode("servant_ChoseEnemy()_2", "PathNodeArea_56", RandFloat(1,3), "");
                    AddEnemyPatrolNode("servant_ChoseEnemy()_2", "PathNodeArea_57", RandFloat(1,3), "");
                    AddEnemyPatrolNode("servant_ChoseEnemy()_2", "PathNodeArea_55", RandFloat(1,3), "");
                    AddEnemyPatrolNode("servant_ChoseEnemy()_2", "PathNodeArea_59", RandFloat(1,1), "");
                    AddEnemyPatrolNode("servant_ChoseEnemy()_2", "PathNodeArea_64", RandFloat(1,1), "");
    
    //////////////////////////
    // 3
    AddEnemyPatrolNode("servant_ChoseEnemy()_3", "PathNodeArea_59", RandFloat(1,3), "");
    AddEnemyPatrolNode("servant_ChoseEnemy()_3", "PathNodeArea_55", RandFloat(1,3), "");
    AddEnemyPatrolNode("servant_ChoseEnemy()_3", "PathNodeArea_57", RandFloat(1,2), "");
    AddEnemyPatrolNode("servant_ChoseEnemy()_3", "PathNodeArea_88", RandFloat(1,1), "");
    
    //////////////////////////
    // 4
    if(RandInt(0,1)==1)    AddEnemyPatrolNode("servant_ChoseEnemy()_4", "PathNodeArea_71", RandFloat(1,7), "");
                        AddEnemyPatrolNode("servant_ChoseEnemy()_4", "PathNodeArea_74", RandFloat(1,5), "");
                        AddEnemyPatrolNode("servant_ChoseEnemy()_4", "PathNodeArea_30", RandFloat(1,5), "");
                        AddEnemyPatrolNode("servant_ChoseEnemy()_4", "PathNodeArea_34", RandFloat(1,3), "");
    else            AddEnemyPatrolNode("servant_ChoseEnemy()_4", "PathNodeArea_65", RandFloat(1,3), "");
                    AddEnemyPatrolNode("servant_ChoseEnemy()_4", "PathNodeArea_64", RandFloat(1,3), "");
                    AddEnemyPatrolNode("servant_ChoseEnemy()_4", "PathNodeArea_59", RandFloat(1,3), "");
                    AddEnemyPatrolNode("servant_ChoseEnemy()_4", "PathNodeArea_55", RandFloat(1,3), "");
                    
    //////////////////////////
    // 5
    if(RandInt(0,1)==1)    AddEnemyPatrolNode("servant_ChoseEnemy()_5", "PathNodeArea_17", RandFloat(1,7), "");
                        AddEnemyPatrolNode("servant_ChoseEnemy()_5", "PathNodeArea_14", RandFloat(1,5), "");
                        AddEnemyPatrolNode("servant_ChoseEnemy()_5", "PathNodeArea_8", RandFloat(1,5), "");
                        AddEnemyPatrolNode("servant_ChoseEnemy()_5", "PathNodeArea_5", RandFloat(1,3), "");
    else            AddEnemyPatrolNode("servant_ChoseEnemy()_5", "PathNodeArea_24", RandFloat(1,3), "");
                    AddEnemyPatrolNode("servant_ChoseEnemy()_5", "PathNodeArea_27", RandFloat(1,3), "");
                    AddEnemyPatrolNode("servant_ChoseEnemy()_5", "PathNodeArea_30", RandFloat(1,3), "");
                    AddEnemyPatrolNode("servant_ChoseEnemy()_5", "PathNodeArea_74", RandFloat(1,3), "");
                    
    //////////////////////////
    // 6
    AddEnemyPatrolNode("servant_ChoseEnemy()_6", "PathNodeArea_43", RandFloat(1,2), "");
    AddEnemyPatrolNode("servant_ChoseEnemy()_6", "PathNodeArea_41", RandFloat(1,3), "");
    AddEnemyPatrolNode("servant_ChoseEnemy()_6", "PathNodeArea_78", RandFloat(1,2), "");
    AddEnemyPatrolNode("servant_ChoseEnemy()_6", "PathNodeArea_83", RandFloat(1,1), "");
}

// Helper to reset all enemy event related stuff
void ResetEnemyEvent()
{
    SetLocalVarInt("EnemyEventActive", 0); //Clear that any enemy event is in progress!
    
    RemoveTimer("EnemyEventStart"); //In case the timer has ended yet.
}

//---------------------------------------------------------------------

void EnemyDisabled(string &in asEnemy, string &in asType)
{
    ResetEnemyEvent();
    
    AddDebugMessage("Disabled Enemy: "+ asEnemy, false);
}

//---------------------------------------------------------------------

void CollideEnemyEvent(string &in asParent, string &in asChild, int alState)
{
    /////////////////////////
    //Check if OK to start event
    
    //There can only be one enemy event triggered at any time!
    if(GetLocalVarInt("EnemyEventActive")==1) return;
    SetLocalVarInt("EnemyEventActive",1);
    
    //Get index of area (and the enemy)
    int lIdx = GetLocalVarInt(asChild+"_Idx");
    SetLocalVarInt("EnemyEvent_Idx",lIdx);
    
    /////////////////////////
    //Start up event
    
    //Area only triggered once!
    SetEntityActive(asChild, false);
        
    //Use timer so it enconter feels more random
    AddTimer("EnemyEventStart", RandFloat(0.5, 3.5), "TimerEnemyEventStart");
    
    //Setup checkpoint
    string sCheckPointStartPos = "PlayerStartArea_"+RandInt(2,4);
    
    CheckPoint("checkpoint", sCheckPointStartPos, "CheckPointEnemy", "Hints", "Regular");
}

//Used a delay start of enemy to make it feel more random.
void TimerBruteEventStart(string &in asTimer)
{
    int lIdx = GetLocalVarInt("EnemyEvent_Idx");
    
    SetEntityActive("servant_ChoseEnemy()_"+lIdx, true);
    
    AddDebugMessage("Started enemy event: "+ "servant_ChoseEnemy()_"+lIdx, false);
}

//---------------------------------------------------------------------

void CheckPointEnemy(string &in asName, int alCount)
{
    ResetEnemyEvent();
    
    InitEnemies(); //Reset all enemy paths
        
    //Enable a random area
    int lIdx = RandInt(1, glNumOfAreas);
    SetEntityActive("Area_Event_"+lIdx, true);
    
    AddDebugMessage("Checkpoint activated Random Area: "+lIdx, false);
}

////////////////////////////
// Run first time starting map
void OnStart()
{
    SetMapDisplayNameEntry("SewerSouth");
    
    //Enemies
    for(int i=1; i<=glNumOfAreas; ++i)
    {
        AddEntityCollideCallback("Player", "Area_Event_"+i, "CollideEnemyEvent", false, 1);
        SetLocalVarInt("Area_Event_"+i+"_Idx", i);
        
    }
}

Appearntly theres a unexpected end of file or so, and I am really bad at locating those. Would you guys help me a little?


RE: Script help (complex script) - PutraenusAlivius - 02-19-2014

I think you forgot some brackets at the InitEnemies function at the If-Else statements. Notepad++ is not helping here.


RE: Script help (complex script) - Traggey - 02-19-2014

Wrong forum, moved to development support.


RE: Script help (complex script) - Mudbill - 02-19-2014

Yes, as JustAnotherPlayer said, the curly braces are missing in your if-statements. There might be something else wrong here but I do not want to dedicate time to analyse the script if this is the only problem. Fix it, then if it's still not working I can take a closer look.

If-statements do not need the curly braces if you only have 1 function following it, but as soon as you have multiple, you'll need to add the block to surround those. You might already know this but forgot.

Example:
Code:
if(a == b) RunScript();
Code:
if(a == b) {
    RunScript();
    RunAnotherScript();
}



RE: Script help (complex script) - Daemian - 02-19-2014

Also check this

PHP Code:
SetEntityActive("servant_ChoseEnemy()_*, false); 

Try with this instead:
PHP Code:
SetEntityActive("servant_" ChoseEnemy(), false); 



RE: Script help (complex script) - Neelke - 02-19-2014

Alright, I fixed it. Turned it to be a quite small detail.

Code:
int glNumOfAreas = 6;

string[] gvEnemies = { "brute", "grunt" };

//---------------------------------------------------------------------

// This chooses what enemy to pick
string ChoseEnemy()
{
    int lIndex = RandInt(0, 1);
    
    return gvEnemies[lIndex];
};

// This inits an enemy
void InitEnemies()
{
    // General setup
    SetEntityActive("servant_ChoseEnemy()_*", false);
    SetEnemyDisabled("servant_ChoseEnemy()_*", false);
    ClearEnemyPatrolNodes("servant_ChoseEnemy()_*");
    
    ////////////////
    // Different pathnodes
    // 1
    if(RandInt(0,1)==1){    AddEnemyPatrolNode("servant_ChoseEnemy()_1", "PathNodeArea_8", RandFloat(1,7), "");
                        AddEnemyPatrolNode("servant_ChoseEnemy()_1", "PathNodeArea_80", RandFloat(1,5), "");
                        AddEnemyPatrolNode("servant_ChoseEnemy()_1", "PathNodeArea_83", RandFloat(1,5), "");
                        AddEnemyPatrolNode("servant_ChoseEnemy()_1", "PathNodeArea_78", RandFloat(1,3), "");
                        AddEnemyPatrolNode("servant_ChoseEnemy()_1", "PathNodeArea_41", RandFloat(1,2), "");
    }else{            AddEnemyPatrolNode("servant_ChoseEnemy()_1", "PathNodeArea_3", RandFloat(1,3), "");
                    AddEnemyPatrolNode("servant_ChoseEnemy()_1", "PathNodeArea_1", RandFloat(1,3), "");
                    AddEnemyPatrolNode("servant_ChoseEnemy()_1", "PathNodeArea_4", RandFloat(1,3), "");
                    AddEnemyPatrolNode("servant_ChoseEnemy()_1", "PathNodeArea_5", RandFloat(1,3), "");
                    AddEnemyPatrolNode("servant_ChoseEnemy()_1", "PathNodeArea_8", RandFloat(1,3), "");
                    AddEnemyPatrolNode("servant_ChoseEnemy()_1", "PathNodeArea_14", RandFloat(1,1), "");
                    AddEnemyPatrolNode("servant_ChoseEnemy()_1", "PathNodeArea_17", RandFloat(1,1), "");
    }
    
    //////////////////////////
    // 2
    if(RandInt(0,1)==1){    AddEnemyPatrolNode("servant_ChoseEnemy()_2", "PathNodeArea_78", RandFloat(1,7), "");
                        AddEnemyPatrolNode("servant_ChoseEnemy()_2", "PathNodeArea_83", RandFloat(1,5), "");
                        AddEnemyPatrolNode("servant_ChoseEnemy()_2", "PathNodeArea_83", RandFloat(1,5), "");
                        AddEnemyPatrolNode("servant_ChoseEnemy()_2", "PathNodeArea_8", RandFloat(1,3), "");
                        AddEnemyPatrolNode("servant_ChoseEnemy()_2", "PathNodeArea_14", RandFloat(1,2), "");
    }else{            AddEnemyPatrolNode("servant_ChoseEnemy()_2", "PathNodeArea_85", RandFloat(1,3), "");
                    AddEnemyPatrolNode("servant_ChoseEnemy()_2", "PathNodeArea_88", RandFloat(1,3), "");
                    AddEnemyPatrolNode("servant_ChoseEnemy()_2", "PathNodeArea_56", RandFloat(1,3), "");
                    AddEnemyPatrolNode("servant_ChoseEnemy()_2", "PathNodeArea_57", RandFloat(1,3), "");
                    AddEnemyPatrolNode("servant_ChoseEnemy()_2", "PathNodeArea_55", RandFloat(1,3), "");
                    AddEnemyPatrolNode("servant_ChoseEnemy()_2", "PathNodeArea_59", RandFloat(1,1), "");
                    AddEnemyPatrolNode("servant_ChoseEnemy()_2", "PathNodeArea_64", RandFloat(1,1), "");
    }
    
    //////////////////////////
    // 3
    AddEnemyPatrolNode("servant_ChoseEnemy()_3", "PathNodeArea_59", RandFloat(1,3), "");
    AddEnemyPatrolNode("servant_ChoseEnemy()_3", "PathNodeArea_55", RandFloat(1,3), "");
    AddEnemyPatrolNode("servant_ChoseEnemy()_3", "PathNodeArea_57", RandFloat(1,2), "");
    AddEnemyPatrolNode("servant_ChoseEnemy()_3", "PathNodeArea_88", RandFloat(1,1), "");
    
    //////////////////////////
    // 4
    if(RandInt(0,1)==1){    AddEnemyPatrolNode("servant_ChoseEnemy()_4", "PathNodeArea_71", RandFloat(1,7), "");
                        AddEnemyPatrolNode("servant_ChoseEnemy()_4", "PathNodeArea_74", RandFloat(1,5), "");
                        AddEnemyPatrolNode("servant_ChoseEnemy()_4", "PathNodeArea_30", RandFloat(1,5), "");
                        AddEnemyPatrolNode("servant_ChoseEnemy()_4", "PathNodeArea_34", RandFloat(1,3), "");
    }else{            AddEnemyPatrolNode("servant_ChoseEnemy()_4", "PathNodeArea_65", RandFloat(1,3), "");
                    AddEnemyPatrolNode("servant_ChoseEnemy()_4", "PathNodeArea_64", RandFloat(1,3), "");
                    AddEnemyPatrolNode("servant_ChoseEnemy()_4", "PathNodeArea_59", RandFloat(1,3), "");
                    AddEnemyPatrolNode("servant_ChoseEnemy()_4", "PathNodeArea_55", RandFloat(1,3), "");
    }
                    
    //////////////////////////
    // 5
    if(RandInt(0,1)==1){    AddEnemyPatrolNode("servant_ChoseEnemy()_5", "PathNodeArea_17", RandFloat(1,7), "");
                        AddEnemyPatrolNode("servant_ChoseEnemy()_5", "PathNodeArea_14", RandFloat(1,5), "");
                        AddEnemyPatrolNode("servant_ChoseEnemy()_5", "PathNodeArea_8", RandFloat(1,5), "");
                        AddEnemyPatrolNode("servant_ChoseEnemy()_5", "PathNodeArea_5", RandFloat(1,3), "");
    }else{            AddEnemyPatrolNode("servant_ChoseEnemy()_5", "PathNodeArea_24", RandFloat(1,3), "");
                    AddEnemyPatrolNode("servant_ChoseEnemy()_5", "PathNodeArea_27", RandFloat(1,3), "");
                    AddEnemyPatrolNode("servant_ChoseEnemy()_5", "PathNodeArea_30", RandFloat(1,3), "");
                    AddEnemyPatrolNode("servant_ChoseEnemy()_5", "PathNodeArea_74", RandFloat(1,3), "");
    }
                    
    //////////////////////////
    // 6
    AddEnemyPatrolNode("servant_ChoseEnemy()_6", "PathNodeArea_43", RandFloat(1,2), "");
    AddEnemyPatrolNode("servant_ChoseEnemy()_6", "PathNodeArea_41", RandFloat(1,3), "");
    AddEnemyPatrolNode("servant_ChoseEnemy()_6", "PathNodeArea_78", RandFloat(1,2), "");
    AddEnemyPatrolNode("servant_ChoseEnemy()_6", "PathNodeArea_83", RandFloat(1,1), "");
}

Added a few missing ; { and }. Dont know why a few of these were necessary.


RE: Script help (complex script) SOLVED - Mudbill - 02-19-2014

Well, it is part of the syntax. I would've expected someone using complex code like this to know the syntax. Did you not write this code yourself perhaps?


RE: Script help (complex script) SOLVED - Neelke - 02-19-2014

I knew why these ; were necessary. I don't undestand why the { } were needed.

Code:
// 1
    if(RandInt(0,1)==1){    AddEnemyPatrolNode("servant_ChoseEnemy()_1", "PathNodeArea_8", RandFloat(1,7), "");
                        AddEnemyPatrolNode("servant_ChoseEnemy()_1", "PathNodeArea_80", RandFloat(1,5), "");
                        AddEnemyPatrolNode("servant_ChoseEnemy()_1", "PathNodeArea_83", RandFloat(1,5), "");
                        AddEnemyPatrolNode("servant_ChoseEnemy()_1", "PathNodeArea_78", RandFloat(1,3), "");
                        AddEnemyPatrolNode("servant_ChoseEnemy()_1", "PathNodeArea_41", RandFloat(1,2), "");
    }else{            AddEnemyPatrolNode("servant_ChoseEnemy()_1", "PathNodeArea_3", RandFloat(1,3), "");
                    AddEnemyPatrolNode("servant_ChoseEnemy()_1", "PathNodeArea_1", RandFloat(1,3), "");
                    AddEnemyPatrolNode("servant_ChoseEnemy()_1", "PathNodeArea_4", RandFloat(1,3), "");
                    AddEnemyPatrolNode("servant_ChoseEnemy()_1", "PathNodeArea_5", RandFloat(1,3), "");
                    AddEnemyPatrolNode("servant_ChoseEnemy()_1", "PathNodeArea_8", RandFloat(1,3), "");
                    AddEnemyPatrolNode("servant_ChoseEnemy()_1", "PathNodeArea_14", RandFloat(1,1), "");
                    AddEnemyPatrolNode("servant_ChoseEnemy()_1", "PathNodeArea_17", RandFloat(1,1), "");
    }
    
    //////////////////////////
    // 2
    if(RandInt(0,1)==1){    AddEnemyPatrolNode("servant_ChoseEnemy()_2", "PathNodeArea_78", RandFloat(1,7), "");
                        AddEnemyPatrolNode("servant_ChoseEnemy()_2", "PathNodeArea_83", RandFloat(1,5), "");
                        AddEnemyPatrolNode("servant_ChoseEnemy()_2", "PathNodeArea_83", RandFloat(1,5), "");
                        AddEnemyPatrolNode("servant_ChoseEnemy()_2", "PathNodeArea_8", RandFloat(1,3), "");
                        AddEnemyPatrolNode("servant_ChoseEnemy()_2", "PathNodeArea_14", RandFloat(1,2), "");
    }else{            AddEnemyPatrolNode("servant_ChoseEnemy()_2", "PathNodeArea_85", RandFloat(1,3), "");
                    AddEnemyPatrolNode("servant_ChoseEnemy()_2", "PathNodeArea_88", RandFloat(1,3), "");
                    AddEnemyPatrolNode("servant_ChoseEnemy()_2", "PathNodeArea_56", RandFloat(1,3), "");
                    AddEnemyPatrolNode("servant_ChoseEnemy()_2", "PathNodeArea_57", RandFloat(1,3), "");
                    AddEnemyPatrolNode("servant_ChoseEnemy()_2", "PathNodeArea_55", RandFloat(1,3), "");
                    AddEnemyPatrolNode("servant_ChoseEnemy()_2", "PathNodeArea_59", RandFloat(1,1), "");
                    AddEnemyPatrolNode("servant_ChoseEnemy()_2", "PathNodeArea_64", RandFloat(1,1), "");
    }
    
    //////////////////////////
    // 3
    AddEnemyPatrolNode("servant_ChoseEnemy()_3", "PathNodeArea_59", RandFloat(1,3), "");
    AddEnemyPatrolNode("servant_ChoseEnemy()_3", "PathNodeArea_55", RandFloat(1,3), "");
    AddEnemyPatrolNode("servant_ChoseEnemy()_3", "PathNodeArea_57", RandFloat(1,2), "");
    AddEnemyPatrolNode("servant_ChoseEnemy()_3", "PathNodeArea_88", RandFloat(1,1), "");
    
    //////////////////////////
    // 4
    if(RandInt(0,1)==1){    AddEnemyPatrolNode("servant_ChoseEnemy()_4", "PathNodeArea_71", RandFloat(1,7), "");
                        AddEnemyPatrolNode("servant_ChoseEnemy()_4", "PathNodeArea_74", RandFloat(1,5), "");
                        AddEnemyPatrolNode("servant_ChoseEnemy()_4", "PathNodeArea_30", RandFloat(1,5), "");
                        AddEnemyPatrolNode("servant_ChoseEnemy()_4", "PathNodeArea_34", RandFloat(1,3), "");
    }else{            AddEnemyPatrolNode("servant_ChoseEnemy()_4", "PathNodeArea_65", RandFloat(1,3), "");
                    AddEnemyPatrolNode("servant_ChoseEnemy()_4", "PathNodeArea_64", RandFloat(1,3), "");
                    AddEnemyPatrolNode("servant_ChoseEnemy()_4", "PathNodeArea_59", RandFloat(1,3), "");
                    AddEnemyPatrolNode("servant_ChoseEnemy()_4", "PathNodeArea_55", RandFloat(1,3), "");
    }
                    
    //////////////////////////
    // 5
    if(RandInt(0,1)==1){    AddEnemyPatrolNode("servant_ChoseEnemy()_5", "PathNodeArea_17", RandFloat(1,7), "");
                        AddEnemyPatrolNode("servant_ChoseEnemy()_5", "PathNodeArea_14", RandFloat(1,5), "");
                        AddEnemyPatrolNode("servant_ChoseEnemy()_5", "PathNodeArea_8", RandFloat(1,5), "");
                        AddEnemyPatrolNode("servant_ChoseEnemy()_5", "PathNodeArea_5", RandFloat(1,3), "");
    }else{            AddEnemyPatrolNode("servant_ChoseEnemy()_5", "PathNodeArea_24", RandFloat(1,3), "");
                    AddEnemyPatrolNode("servant_ChoseEnemy()_5", "PathNodeArea_27", RandFloat(1,3), "");
                    AddEnemyPatrolNode("servant_ChoseEnemy()_5", "PathNodeArea_30", RandFloat(1,3), "");
                    AddEnemyPatrolNode("servant_ChoseEnemy()_5", "PathNodeArea_74", RandFloat(1,3), "");
    }
                    
    //////////////////////////
    // 6
    AddEnemyPatrolNode("servant_ChoseEnemy()_6", "PathNodeArea_43", RandFloat(1,2), "");
    AddEnemyPatrolNode("servant_ChoseEnemy()_6", "PathNodeArea_41", RandFloat(1,3), "");
    AddEnemyPatrolNode("servant_ChoseEnemy()_6", "PathNodeArea_78", RandFloat(1,2), "");
    AddEnemyPatrolNode("servant_ChoseEnemy()_6", "PathNodeArea_83", RandFloat(1,1), "");

I expected it to be fine without those here. And I wrote most of this, but I used other hps files as guides.


RE: Script help (complex script) SOLVED - Mudbill - 02-19-2014

Ah, well as I explained in my example before, the if-statement only executes the first thing coming after it. If the first thing is a block however, it will run everything within that block. Without the block, the script will only test the first line with the if-statement, but accept all the others regardless.