Shoop
Junior Member
Posts: 36
Threads: 10
Joined: Feb 2011
Reputation:
0
|
Level changing area script not working?
I want someone to fall down a hole and the level change, whats wrong with this?
void OnStart()
{
AddUseItemCallback("", "key1", "castle_1", "UsedKeyOnDoor", true);
AddUseItemCallback("", "key2", "metal_1", "UsedKeyOnDoor2", true);
AddEntityCollideCallback("Player" , "ScriptArea_1" , "MonsterFunc1" , true , 1);
}
void UsedKeyOnDoor(string &in asItem, string &in asEntity)
{
SetSwingDoorLocked("castle_1", false, true);
PlaySoundAtEntity("", "unlock_door", "castle_1", 0, false);
RemoveItem("key1");
}
void UsedKeyOnDoor2(string &in asItem, string &in asEntity)
{
SetSwingDoorLocked("metal_1", false, true);
PlaySoundAtEntity("", "unlock_door", "metal_1", 0, false);
RemoveItem("key2");
}
void MonsterFunc1(string &in asParent , string &in asChild , int alState)
{
SetEntityActive("servant_grunt_1" , true);
}
ChangeMap("Level2", "PlayerStartArea_1", "break_stairs", "water_lurker_eat");
////////////////////////////
// Run when entering map
void OnEnter()
{
}
////////////////////////////
// Run when leaving map
void OnLeave()
{
}
The last two ones are sound file names... I think thats how you do it. (I put my whole script just in case I did something else wrong that makes it not work)
(This post was last modified: 04-02-2011, 07:51 PM by Shoop.)
|
|
04-02-2011, 07:50 PM |
|
MrBigzy
Senior Member
Posts: 616
Threads: 18
Joined: Mar 2011
Reputation:
8
|
RE: Level changing area script not working?
You can never have something outsude a function. It has to be inside a function somewhere.
|
|
04-02-2011, 08:03 PM |
|
Shoop
Junior Member
Posts: 36
Threads: 10
Joined: Feb 2011
Reputation:
0
|
RE: Level changing area script not working?
How would I do that? I copied this from the script functions wiki page.
|
|
04-02-2011, 08:06 PM |
|
MrBigzy
Senior Member
Posts: 616
Threads: 18
Joined: Mar 2011
Reputation:
8
|
RE: Level changing area script not working?
Oh, ok so when you fall down a hole. So you'll have to put an area in the hole, and put an entitycollide function there. It can't tell when you want to change a map if you just stick it randomly in your script. D:
(This post was last modified: 04-02-2011, 08:27 PM by MrBigzy.)
|
|
04-02-2011, 08:25 PM |
|
Shoop
Junior Member
Posts: 36
Threads: 10
Joined: Feb 2011
Reputation:
0
|
RE: Level changing area script not working?
Oh true aha. Could you give me an example how to do this?
|
|
04-02-2011, 08:40 PM |
|
Pandemoneus
Senior Member
Posts: 328
Threads: 2
Joined: Sep 2010
Reputation:
0
|
RE: Level changing area script not working?
|
|
04-02-2011, 09:00 PM |
|
Russ Money
Senior Member
Posts: 360
Threads: 25
Joined: Dec 2010
Reputation:
4
|
RE: Level changing area script not working?
(04-02-2011, 08:40 PM)Shoop Wrote: Oh true aha. Could you give me an example how to do this?
It's pretty much the same way you did your monster func. When the player collides with and area, the callback would be the ChangeMap func.
|
|
04-02-2011, 09:00 PM |
|
Shoop
Junior Member
Posts: 36
Threads: 10
Joined: Feb 2011
Reputation:
0
|
RE: Level changing area script not working?
Oh, I think I understand this now. Is this correct?
void OnStart()
{
AddUseItemCallback("", "key1", "castle_1", "UsedKeyOnDoor", true);
AddUseItemCallback("", "key2", "metal_1", "UsedKeyOnDoor2", true);
AddUseItemCallback("", "key2", "castle_3", "UsedKeyOnDoor3", true);
AddEntityCollideCallback("Player" , "ScriptArea_1" , "MonsterFunc1" , true , 1);
AddEntityCollideCallback("Player", "ScriptArea_2", "ChangeMap", true, 1);
}
void UsedKeyOnDoor(string &in asItem, string &in asEntity)
{
SetSwingDoorLocked("castle_1", false, true);
PlaySoundAtEntity("", "unlock_door", "castle_1", 0, false);
RemoveItem("key1");
}
void UsedKeyOnDoor2(string &in asItem, string &in asEntity)
{
SetSwingDoorLocked("metal_1", false, true);
PlaySoundAtEntity("", "unlock_door", "metal_1", 0, false);
RemoveItem("key2");
}
void UsedKeyOnDoor3(string &in asItem, string &in asEntity)
{
SetSwingDoorLocked("castle_3", false, true);
PlaySoundAtEntity("", "unlock_door", "castle_3", 0, false);
RemoveItem("key3");
}
void MonsterFunc1(string &in asParent , string &in asChild , int alState)
{
SetEntityActive("servant_grunt_1" , true);
}
ChangeMap("Level2", "PlayerStartArea_1", "break_stairs", "water_lurker_eat");
(This post was last modified: 04-02-2011, 09:08 PM by Shoop.)
|
|
04-02-2011, 09:06 PM |
|
MrBigzy
Senior Member
Posts: 616
Threads: 18
Joined: Mar 2011
Reputation:
8
|
RE: Level changing area script not working?
You forgot to put ChangeMap in the changemap function.
|
|
04-02-2011, 09:37 PM |
|
Shoop
Junior Member
Posts: 36
Threads: 10
Joined: Feb 2011
Reputation:
0
|
RE: Level changing area script not working?
I don't understand, where would I need to put this?
|
|
04-02-2011, 09:39 PM |
|
|