Frictional Games Forum (read-only)
[SCRIPT] Mind-boggling "SetEntityCallbackFunc" issue - 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] Mind-boggling "SetEntityCallbackFunc" issue (/thread-48421.html)



Mind-boggling "SetEntityCallbackFunc" issue - Slanderous - 05-27-2016

I'm working on a script triggered after player picks up two items. What I used are two
PHP Code:
SetEntityCallbackFunc 
functions triggered to add 1 to local variable, which is then checked via the functions if it equals 2. However, the issue is that for some reason it doesn't want to work.

Here is the broken piece of code:

PHP Code:
void OnStart()
{
    
/////callback func
    
SetEntityCallbackFunc("orbpiece_turquoise_1""check_1");
    
SetEntityCallbackFunc("lantern_1""check_2");
}

void check_2(string &in asEntitystring &in asType)
{
    
check();
    
AddLocalVarInt("var_pick"1);
}

void check_1(string &in asEntitystring &in asType)
{
    
check();
    
AddLocalVarInt("var_pick"1);
}

void check() 
{
    if(
GetLocalVarInt("var_pick") == 2)
    {
        
AutoSave();
        
CheckPoint("save_orb_redux_02""checkpoint_1""""Hints""BeCarefulYouSilly");
        
GiveSanityBoost();
        
AddTimer("spawn_warden"4.0f"warden_scene");
    }
}

void warden_scene(string &in asTimer)
{
    
AddEffectVoice("placeholder""""Dialogues""CH01L09_Alodar_1"false"Player"5.0f100.0f);
    
AddQuest("get_out2""get_outta_here2");
    
SetEntityActive("shadow_appear"true);
    
SetEntityActive("warden_placeholder_good_1"true);
    for(
int i=1;i<=11;i++)
    { 
        
AddEnemyPatrolNode("warden_placeholder_good_1""PathNodeArea_"+i0.01f"");
    }


Any ideas? Thanks ahead of time


RE: Mind-boggling "SetEntityCallbackFunc" issue - Romulator - 05-27-2016

Try adding the variable before check();. You're getting your desired output of 2, but it's doing the check before.

First pass:

Check
Local Var = 0, so don't check.
Local Var = 1.

Check
Local Var = 1, so don't check.
Local Var = 2.


RE: Mind-boggling "SetEntityCallbackFunc" issue - Slanderous - 05-27-2016

(05-27-2016, 12:54 AM)Romulator Wrote: Try adding the variable before check();. You're getting your desired output of 2, but it's doing the check before.

First pass:

Check
Local Var = 0, so don't check.
Local Var = 1.

Check
Local Var = 1, so don't check.
Local Var = 2.

Thanks, that worked like a charm! Had no clue that the solution was so simple.


RE: Mind-boggling "SetEntityCallbackFunc" issue - Romulator - 05-27-2016

No problem mate Smile The main thing to remember that code is sequential, practically always working top-down.

Closing~ :3