Facebook Twitter YouTube Frictional Games | Forum | Privacy Policy | Dev Blog | Dev Wiki | Support | Gametee


Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Please remove
eagledude4 Offline
Member

Posts: 144
Threads: 14
Joined: Dec 2011
Reputation: 0
#11
RE: AddEntityCollideCallback

(01-02-2012, 07:08 AM)Statyk Wrote: It makes the screen black instantly. That's actually a good teting idea. see, if a function isn't working, a visual like THAT would easily tell you if something is wrong with a specific function, or if it is working fine but has a typo somewhere, etc. Understand?

Indeed, I do. I tested the map again, but the screen didn't go black when I opened the chest.

Full code:
bool TriggeredEnemy;

void OnStart() {
    if (ScriptDebugOn()) {
        GiveItemFromFile("lantern", "lantern.ent");
        for(int i=0;i<10;i++) GiveItemFromFile("tinderbox_"+i, "tinderbox.ent");
        /*SetEntityActive("invisWall", false);
        SetEntityActive("blockArea", false);*/
    }
    AddEntityCollideCallback("Player", "EnemyTriggerArea", "EnteredEnemyTriggerArea", true, 1);
    AddEntityCollideCallback("Player", "BlockArea", "EnteredBlockArea", true, 1);
    SetEntityPlayerInteractCallback("chest_small_2", "TriggerSpider", true);
    PlaySoundAtEntity("", "Custom\big_clock_chime.snt", "clock_grandfather_1", 0, false);
    SetDeathHint("Death", "StairScare");
    SetEntityCallbackFunc("key_1", "OnPickup");
}

void OnEnter() {
}

void OnLeave() {
}

void EnteredEnemyTriggerArea(string &in asParent, string &in asChild, int alState) {
    TriggeredEnemy = true;
    SetEntityActive("servant_grunt_1", true);
    ShowEnemyPlayerPosition("servant_grunt_1");
    AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_1", 0, "");
    AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_2", 0, "");
    AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_3", 0, "");
}

void EnteredBlockArea(string &in asParent, string &in asChild, int alState) {
    if (HasItem("key_1") == false) {
        SetMessage("CustomStory", "Barrier", 6);
    }
}

void OnPickup(string &in asEntity, string &in type) {
    SetEntityActive("invisWall", false);
    SetEntityActive("blockArea", false);
}

void TriggerSpider(string &in asParent, string &in asChild, int alState) {
    SetEntityActive("spider_1", true);
    FadeOut(0);
}

/*int EnemyLooksForPlayer() {
    if (TriggeredEnemy == true) {
        if (SonRoomArea.contains("Player") == true) {
            AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_4", 5, "");
        } else if (DadRoomArea.contains("Player") == true) {
            AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_5", 5, "");
        }
    }
    return 500;
}*/

Its hard to see the truth when you've been blinded by lies.
(This post was last modified: 01-02-2012, 07:44 AM by eagledude4.)
01-02-2012, 07:27 AM
Find
eagledude4 Offline
Member

Posts: 144
Threads: 14
Joined: Dec 2011
Reputation: 0
#12
RE: AddEntityCollideCallback

(01-02-2012, 07:08 AM)Statyk Wrote: It makes the screen black instantly. That's actually a good teting idea. see, if a function isn't working, a visual like THAT would easily tell you if something is wrong with a specific function, or if it is working fine but has a typo somewhere, etc. Understand?

Indeed, I do. I've done similar things in the past with other scripting applications.
I tested the map again, but the screen didn't go black when I opened the chest.

Full code:
bool TriggeredEnemy;

void OnStart() {
    if (ScriptDebugOn()) {
        GiveItemFromFile("lantern", "lantern.ent");
        for(int i=0;i<10;i++) GiveItemFromFile("tinderbox_"+i, "tinderbox.ent");
        /*SetEntityActive("invisWall", false);
        SetEntityActive("blockArea", false);*/
    }
    //SetPlayerActive(false);
    AddNote("First", "");
    AddTimer("FadeTimer", 5, "StartGame");
    AddEntityCollideCallback("Player", "EnemyTriggerArea", "EnteredEnemyTriggerArea", true, 1);
    AddEntityCollideCallback("Player", "BlockArea", "EnteredBlockArea", true, 1);
    SetEntityCallbackFunc("chest_small_2", "TriggerSpider");
    PlaySoundAtEntity("big_clock_chime", "Custom\big_clock_chime.snt", "clock_grandfather_1", 0, false);
    SetDeathHint("Death", "StairScare");
    SetEntityCallbackFunc("key_1", "OnPickup");
}

void OnEnter() {
}

void OnLeave() {
}

void StartGame() {
    FadeIn(5);
    SetPlayerActive(true);
}
    
void EnteredEnemyTriggerArea(string &in asParent, string &in asChild, int alState) {
    SetEntityActive("servant_grunt_1", true);
    AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_1", 0, "");
    AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_2", 0, "");
    if(GetEntitiesCollide("Player", "SonRoomArea") == true) {
        AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_4", 5, "");
    } else if(GetEntitiesCollide("Player", "DadRoomArea") == true) {
        AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_5", 5, "");
    }
    AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_3", 0, "");
    
}

void EnteredBlockArea(string &in asParent, string &in asChild, int alState) {
    if (HasItem("key_1") == false) {
        SetMessage("CustomStory", "Barrier", 6);
    }
}

void OnPickup(string &in asEntity, string &in type) {
    SetEntityActive("invisWall", false);
    SetEntityActive("blockArea", false);
}

void TriggerSpider(string &in asParent, string &in asChild, int alState) {
    SetEntityActive("spider_1", true);
    FadeOut(0);
}


Help please?

Its hard to see the truth when you've been blinded by lies.
(This post was last modified: 01-03-2012, 12:36 AM by eagledude4.)
01-03-2012, 12:34 AM
Find
flamez3 Offline
Posting Freak

Posts: 1,281
Threads: 48
Joined: Apr 2011
Reputation: 57
#13
RE: AddEntityCollideCallback

Your using the wrong syntax, use this
(string &in asEntity, string &in type)


You should check http://wiki.frictionalgames.com/hpl2/amn..._functions for help with syntaxes and functions.

01-03-2012, 12:44 AM
Find
eagledude4 Offline
Member

Posts: 144
Threads: 14
Joined: Dec 2011
Reputation: 0
#14
RE: AddEntityCollideCallback

(01-03-2012, 12:44 AM)flamez3 Wrote: Your using the wrong syntax, use this
(string &in asEntity, string &in type)


You should check http://wiki.frictionalgames.com/hpl2/amn..._functions for help with syntaxes and functions.

I've been using that. I didn't realize I can't rename the functions. Whats the type for opening a chest? onInteract?



Its hard to see the truth when you've been blinded by lies.
(This post was last modified: 01-03-2012, 03:18 AM by eagledude4.)
01-03-2012, 02:58 AM
Find
flamez3 Offline
Posting Freak

Posts: 1,281
Threads: 48
Joined: Apr 2011
Reputation: 57
#15
RE: AddEntityCollideCallback

SetEntityPlayerInteractCallback(string& asName, string& asCallback, bool abRemoveOnInteraction);
Syntax: (string &in asEntity)


Quote:void OnStart()
{
SetEntityPlayerInteractCallback("chest", "TriggerSpider", true);
}
void TriggerSpider(string &in asEntity)
{
SetEntityActive("spider_1", true);
FadeOut(0);
}

(This post was last modified: 01-03-2012, 03:20 AM by flamez3.)
01-03-2012, 03:14 AM
Find
eagledude4 Offline
Member

Posts: 144
Threads: 14
Joined: Dec 2011
Reputation: 0
#16
RE: AddEntityCollideCallback

I thought
void SetEntityCallbackFunc

and

void SetEntityPlayerInteractCallback

had the same effect? They're both described as "Calls a function when the player interacts with a certain entity."

I replaced my code with what you just quoted, and it isn't working.


Its hard to see the truth when you've been blinded by lies.
(This post was last modified: 01-03-2012, 03:25 AM by eagledude4.)
01-03-2012, 03:22 AM
Find
Statyk Offline
Schrödinger's Mod

Posts: 4,390
Threads: 72
Joined: Sep 2011
Reputation: 241
#17
RE: AddEntityCollideCallback

Please make sure there are no typos in the level.... That's usually the highest percentage of the "issue list".
(This post was last modified: 01-03-2012, 03:42 AM by Statyk.)
01-03-2012, 03:42 AM
Find
eagledude4 Offline
Member

Posts: 144
Threads: 14
Joined: Dec 2011
Reputation: 0
#18
RE: AddEntityCollideCallback

(01-03-2012, 03:42 AM)Statyk Wrote: Please make sure there are no typos in the level.... That's usually the highest percentage of the "issue list".

Yep, typo. Thanks. Spider doesn't want to move though.
Why did "SetEntityPlayerInteractCallback" work while "SetEntityCallbackFunc" did not? The wiki says the serve the same purpose.


Its hard to see the truth when you've been blinded by lies.
(This post was last modified: 01-03-2012, 03:54 AM by eagledude4.)
01-03-2012, 03:48 AM
Find
flamez3 Offline
Posting Freak

Posts: 1,281
Threads: 48
Joined: Apr 2011
Reputation: 57
#19
RE: AddEntityCollideCallback

SetEntityCallbackFunc(string& asName, string& asCallback);
Calls a function when the player interacts with a certain entity.
Callback syntax: void MyFunc(string &in asEntity, string &in type)
Type depends on entity type and includes: “OnPickup”, “Break”, “OnIgnite”, etc
Last line is why I think.

01-03-2012, 06:09 AM
Find
eagledude4 Offline
Member

Posts: 144
Threads: 14
Joined: Dec 2011
Reputation: 0
#20
RE: AddEntityCollideCallback

Ah, I see. Any reason why the spider doesn't move though?

Its hard to see the truth when you've been blinded by lies.
01-03-2012, 06:10 AM
Find




Users browsing this thread: 1 Guest(s)