HansEnMilan
Junior Member
Posts: 6
Threads: 2
Joined: Aug 2011
Reputation:
0
|
Triggering Monsters
Hello,
I don't know if this is the right place to post this thread but I am new here.
Well I have tried everything to trigger a monster and make it walk from one position to another and then dissapear.
I've added a monster and 1 PathNode and I added a script area.
But everytime I end up getting different kinds of errors like : Invalid Token ''{'', etc
This is what I've got so far :
////////////////////////////
// Run first time starting map
void OnStart()
{
AddEntityCollideCallback("Player", "AreaEen", "CollideRoomEen", true, 1);
}
void CollideRoomEen(string &in asParent, string &in asChild, int alState)
{
SetSwingDoorLocked("hanskamerdeur", true, true);
}
////////////////////////////
// Run when entering map
void OnEnter()
{
AddUseItemCallback("", "hanskamerdeurkey_1", "hanskamerdeur", "UsedKeyOnDoor", true);
}
void UsedKeyOnDoor(string &in asItem, string &in asEntity)
{
SetSwingDoorLocked("hanskamerdeur", false, true);
PlaySoundAtEntity("", "unlock_door", "hanskamerdeur", 0, false);
RemoveItem("hanskamerdeurkey_1");
}
////////////////////////////
// Run when leaving map
void OnLeave()
{
}
As you can see I can trigger a door to close itself but I can't seem to trigger a monster, I started off the same way as I started with the door but then instead of CloseDoor I used this scripts :
void AddEnemyPatrolNode(string& asName, string& asNodeName, float afWaitTime, string& asAnimation);
Could someone Please help me, I've searched all of the internet but no one can give me a answer.
|
|
08-12-2011, 05:54 PM |
|
Tanshaydar
From Beyond
Posts: 3,085
Threads: 17
Joined: Mar 2009
Reputation:
67
|
RE: Triggering Monsters
Hi and welcome to forum.
Yes, this is correct section.
You need to place a monster where you want to spawn it, then deactivate it in the editor. This can be done with unchecking "active" checkbox.
After that, you need to activate the monster, with setentityactive function; then add the patrols.
You need to add patrol nodes in level editor first.
You can find the exact functions here: http://wiki.frictionalgames.com/hpl2/amn..._functions
|
|
08-12-2011, 06:06 PM |
|
HansEnMilan
Junior Member
Posts: 6
Threads: 2
Joined: Aug 2011
Reputation:
0
|
RE: Triggering Monsters
(08-12-2011, 06:06 PM)Tanshaydar Wrote: Hi and welcome to forum.
Yes, this is correct section.
You need to place a monster where you want to spawn it, then deactivate it in the editor. This can be done with unchecking "active" checkbox.
After that, you need to activate the monster, with setentityactive function; then add the patrols.
You need to add patrol nodes in level editor first.
You can find the exact functions here: http://wiki.frictionalgames.com/hpl2/amn..._functions
I tried this but I seem to fail haha, So If I'm correct I use :
void AddEntityCollideCallback(string& asParentName, string& asChildName, string& asFunction, bool abDeleteOnCollide, int alStates);
then link it with :
void SetEntityActive(string& asName, bool abActive);
and link that up with :
void AddEnemyPatrolNode(string& asName, string& asNodeName, float afWaitTime, string& asAnimation);
Mind giving me an example that fits in with this:
////////////////////////////
// Run first time starting map
void OnStart()
{
AddEntityCollideCallback("Player", "AreaEen", "CollideRoomEen", true, 1);
}
void CollideRoomEen(string &in asParent, string &in asChild, int alState)
{
SetSwingDoorLocked("hanskamerdeur", true, true);
}
////////////////////////////
// Run when entering map
void OnEnter()
{
AddUseItemCallback("", "hanskamerdeurkey_1", "hanskamerdeur", "UsedKeyOnDoor", true);
}
void UsedKeyOnDoor(string &in asItem, string &in asEntity)
{
SetSwingDoorLocked("hanskamerdeur", false, true);
PlaySoundAtEntity("", "unlock_door", "hanskamerdeur", 0, false);
RemoveItem("hanskamerdeurkey_1");
}
////////////////////////////
// Run when leaving map
void OnLeave()
{
}
I would be very very happy.
|
|
08-12-2011, 06:25 PM |
|
Tanshaydar
From Beyond
Posts: 3,085
Threads: 17
Joined: Mar 2009
Reputation:
67
|
RE: Triggering Monsters
If you already have a deactivated monster in your map, then:
void OnStart()
{
AddEntityCollideCallback("Player", "AreaEen", "CollideRoomEen", true, 1);
}
void CollideRoomEen(string &in asParent, string &in asChild, int alState)
{
SetSwingDoorLocked("hanskamerdeur", true, true);
SetEntityActive("monster_name_here", true);
AddEnemyPatrolNode("monster_name_here", "node_name_here", 0, "");
}
////////////////////////////
// Run when entering map
void OnEnter()
{
AddUseItemCallback("", "hanskamerdeurkey_1", "hanskamerdeur", "UsedKeyOnDoor", true);
}
void UsedKeyOnDoor(string &in asItem, string &in asEntity)
{
SetSwingDoorLocked("hanskamerdeur", false, true);
PlaySoundAtEntity("", "unlock_door", "hanskamerdeur", 0, false);
RemoveItem("hanskamerdeurkey_1");
}
////////////////////////////
// Run when leaving map
void OnLeave()
{
}
|
|
08-12-2011, 06:28 PM |
|
HansEnMilan
Junior Member
Posts: 6
Threads: 2
Joined: Aug 2011
Reputation:
0
|
RE: Triggering Monsters
(08-12-2011, 06:28 PM)Tanshaydar Wrote: If you already have a deactivated monster in your map, then:
void OnStart()
{
AddEntityCollideCallback("Player", "AreaEen", "CollideRoomEen", true, 1);
}
void CollideRoomEen(string &in asParent, string &in asChild, int alState)
{
SetSwingDoorLocked("hanskamerdeur", true, true);
SetEntityActive("monster_name_here", true);
AddEnemyPatrolNode("monster_name_here", "node_name_here", 0, "");
}
////////////////////////////
// Run when entering map
void OnEnter()
{
AddUseItemCallback("", "hanskamerdeurkey_1", "hanskamerdeur", "UsedKeyOnDoor", true);
}
void UsedKeyOnDoor(string &in asItem, string &in asEntity)
{
SetSwingDoorLocked("hanskamerdeur", false, true);
PlaySoundAtEntity("", "unlock_door", "hanskamerdeur", 0, false);
RemoveItem("hanskamerdeurkey_1");
}
////////////////////////////
// Run when leaving map
void OnLeave()
{
}
Thanks for helping, But I seem to be a total noob at coding.
I made it like this now :
////////////////////////////
// Run first time starting map
void OnStart()
{
AddEntityCollideCallback("Player", "AreaEen", "CollideRoomEen", true, 1);
}
void CollideRoomEen(string &in asParent, string &in asChild, int alState)
{
SetSwingDoorLocked("hanskamerdeur", true, true);
SetEntityActive("Hans", true);
AddEnemyPatrolNode("Hans", "PadTwee", 0, "");
}
////////////////////////////
// Run when entering map
void OnEnter()
{
AddUseItemCallback("", "hanskamerdeurkey_1", "hanskamerdeur", "UsedKeyOnDoor", true);
}
void UsedKeyOnDoor(string &in asItem, string &in asEntity)
{
SetSwingDoorLocked("hanskamerdeur", false, true);
PlaySoundAtEntity("", "unlock_door", "hanskamerdeur", 0, false);
RemoveItem("hanskamerdeurkey_1");
}
////////////////////////////
// Run when leaving map
void OnLeave()
{
}
But I get this error :
FATAL ERROR: Could not load script file
'custom_stories/DeAvond/maps/Lol.hps'!
main (36,1) : ERR : Unexpected token '--''
Sorry again for not being able to fix it
|
|
08-12-2011, 06:38 PM |
|
Tanshaydar
From Beyond
Posts: 3,085
Threads: 17
Joined: Mar 2009
Reputation:
67
|
RE: Triggering Monsters
There is something wrong in 36th row, however as far as I can see 36th row is empty.
Check it in your text editor, it should work as it is now.
|
|
08-12-2011, 06:56 PM |
|
HansEnMilan
Junior Member
Posts: 6
Threads: 2
Joined: Aug 2011
Reputation:
0
|
RE: Triggering Monsters
(08-12-2011, 06:56 PM)Tanshaydar Wrote: There is something wrong in 36th row, however as far as I can see 36th row is empty.
Check it in your text editor, it should work as it is now.
I looked at Notepad ++ and there isn't anything in at row 36?
So I guess it just doesn't work for me?
(08-12-2011, 06:56 PM)Tanshaydar Wrote: There is something wrong in 36th row, however as far as I can see 36th row is empty.
Check it in your text editor, it should work as it is now.
Never Mind I got it to work, I was saving on the backup file which actually wasn't in the maps folder :$
Thanks for all your help!
(This post was last modified: 08-12-2011, 07:03 PM by HansEnMilan.)
|
|
08-12-2011, 06:59 PM |
|
MegaScience
Member
Posts: 213
Threads: 1
Joined: Aug 2011
Reputation:
2
|
RE: Triggering Monsters
Although you said you figured this out, I felt this might need to be added: I work with Torque Game Code, and I believe the source it uses is the same (or similar) language to this. Although I haven't worked with the source, it appears to be a much more specific variation of the game coding I'm accustom to. As such, you should avoid extra spaces and words out of proper case/capitalization.
|
|
08-13-2011, 06:20 AM |
|
|