Topsu
Junior Member
Posts: 12
Threads: 3
Joined: Mar 2012
Reputation:
0
|
Opening cabinet
I have a problem:
When I walk into Script6 (area) enemy6 spawns into cabinet, but doesnt get out. It looks like this:
My script:
//////////////////////////// // Run when entering map void OnEnter() { SetLanternDisabled(false); SetEntityCallbackFunc("tinderbox", "OnPickup"); AddEntityCollideCallback("Player", "script1", "SetMessage1", true, 1); AddEntityCollideCallback("Player", "script3", "easterown", true, 1); AddEntityCollideCallback("Player", "script5", "collideenemy4", true, 1); AddEntityCollideCallback("Player", "script6", "collideenemy6", true, 1); AddEntityCollideCallback("Player", "Check1area", "check1", true, 1); AddEntityCollideCallback("Player", "Check2area", "check2", true, 1); SetEntityPlayerInteractCallback("door2", "Collide", true); SetEntityConnectionStateChangeCallback("lever", "func_shelf"); AddEntityCollideCallback("Player", "startenemy5", "collideenemy5", true, 1); }
void collideenemy6(string &in asParent, string &in asChild, int alState) { ClearEnemyPatrolNodes("enemy6"); SetEntityActive("enemy6", true); SetSwingDoorLocked("cabinet", false, true); AddTimer("timer123", 0.7f, "startenemy6"); StartPlayerLookAt("cabinet", 3, 4, "StopPlayerLookAt"); AddEnemyPatrolNode("enemy6", "PathNodeArea_6", 0, ""); }
void startenemy6(string &in asTimer) { ClearEnemyPatrolNodes("enemy6"); SetEntityActive("enemy6", true); ShowEnemyPlayerPosition("enemy6"); AddEntityCollideCallback("enemy6", "noticeenemy6", "notenemy6", true, 1); }
void collideenemy4(string &in asParent, string &in asChild, int alState) { ClearEnemyPatrolNodes("enemy4"); SetEntityActive("enemy4", true); AddEnemyPatrolNode("enemy4", "PathNodeArea_2", 0, ""); AddEnemyPatrolNode("enemy4", "PathNodeArea_3", 0, ""); AddEntityCollideCallback("enemy4", "fadeenemy4", "Fadeenemy4", true, 1); }
void collideenemy5(string &in asParent, string &in asChild, int alState) { ClearEnemyPatrolNodes("enemy5"); SetEntityActive("enemy5", true); AddEnemyPatrolNode("enemy5", "PathNodeArea_4", 0, ""); AddEnemyPatrolNode("enemy5", "PathNodeArea_5", 0, ""); AddEntityCollideCallback("enemy5", "fadeenemy5", "Fadeenemy5", true, 1); }
void Fadeenemy5(string &in asParent, string &in asChild, int alState) { SetEntityActive("enemy5", false); }
void Fadeenemy4(string &in asParent, string &in asChild, int alState) { SetEntityActive("enemy4", false); }
void Collide(string &in asEntity) { SetEntityPlayerInteractCallback("door1", "Collide2", true); }
void Collide2(string &in asEntity) { // ClearEnemyPatrolNodes("enemy2"); // SetEntityActive("enemy2", true); AddEnemyPatrolNode("enemy2", "PathNodeArea_1", 0, ""); AddEntityCollideCallback("enemy2", "script4", "Collideenemy2", true, 1); }
void Collideenemy2(string &in asParent, string &in asChild, int alState) { SetPropHealth("door2", 50); ShowEnemyPlayerPosition("enemy2"); }
void check1(string &in asParent, string &in asChild, int alState) { CheckPoint ("Check1", "Check1", "CheckPoint01", "Misc", "DeathHint2"); }
void check2(string &in asParent, string &in asChild, int alState) { CheckPoint ("Check2", "Check1", "CheckPoint01", "Misc", "DeathHint1"); }
void CheckPoint01(string &in asName, int alCount) { SetPlayerHealth(RandFloat(80,90)); SetPlayerSanity(RandFloat(40,60)); SetPlayerMoveSpeedMul(1); SetPlayerRunSpeedMul(1); SetPlayerCrouching(false); }
void easterown(string &in asParent, string &in asChild, int alState) { AddTimer("eastern", 3.0f, "easterr"); }
void easterr(string &in asTimer) { SetEntityActive("enemy3", true); ShowEnemyPlayerPosition("enemy3"); StartPlayerLookAt("enemy3", 3, 4, "StopPlayerLookAt"); AddTimer("sanitytimer", 0.5f, "sanitydamage"); SetPlayerHealth(50); SetPlayerMoveSpeedMul(0); SetPlayerRunSpeedMul(0); SetDeathHint("Misc", "DeathHint1"); }
void sanitydamage(string &in asTimer) { GiveSanityDamage(100, true); PlaySoundAtEntity("react", "react_scare.snt", "Player", 0.0f, false); SetPlayerCrouching(true); }
void func_shelf(string &in asEntity, int alState) { if (alState == 1) { SetMoveObjectState("shelf",1.0f); PlaySoundAtEntity("", "quest_completed.snt", "shelf_move_1", 0, false); return; } }
void SetMessage1(string& asTextCategory, string& asTextEntry, float afTime) { SetMessage("Sergej", "Mutter1", 0); }
void OnPickup(string &in asItem, string &in asEntity) { SetLanternDisabled(false); RemoveItem("tinderbox"); SetMessage("Sergej", "Mutter2", 0); } //////////////////////////// // Run when leaving map void OnLeave() { }
Also I have the cabinet locked until you walk in to the area.
|
|
05-25-2012, 01:06 PM |
|
Putmalk
Senior Member
Posts: 290
Threads: 13
Joined: Apr 2012
Reputation:
15
|
RE: Opening cabinet
Is the cabinet named "cabinet"?
You unlock the cabinet but the grunt can't open it himself. You need to open the cabinet itself (try SetMoveObjectState("cabinet", 1);.
On another note, move your Callbacks in the onEnter() function to onStart(). Completely worthless and wasteful to have them in OnEnter. OnStart is where you want them.
|
|
05-25-2012, 01:11 PM |
|
Topsu
Junior Member
Posts: 12
Threads: 3
Joined: Mar 2012
Reputation:
0
|
RE: Opening cabinet
(05-25-2012, 01:11 PM)Putmalk Wrote: Is the cabinet named "cabinet"?
You unlock the cabinet but the grunt can't open it himself. You need to open the cabinet itself (try SetMoveObjectState("cabinet", 1);.
On another note, move your Callbacks in the onEnter() function to onStart(). Completely worthless and wasteful to have them in OnEnter. OnStart is where you want them. SetMoveObjectState("cabinet", 1); didnt work. :/
Now it looks like:
void OnStart() { SetLanternDisabled(false); SetEntityCallbackFunc("tinderbox", "OnPickup"); AddEntityCollideCallback("Player", "script1", "SetMessage1", true, 1); AddEntityCollideCallback("Player", "script3", "easterown", true, 1); AddEntityCollideCallback("Player", "script5", "collideenemy4", true, 1); AddEntityCollideCallback("Player", "script6", "collideenemy6", true, 1); AddEntityCollideCallback("Player", "Check1area", "check1", true, 1); AddEntityCollideCallback("Player", "Check2area", "check2", true, 1); SetEntityPlayerInteractCallback("door2", "Collide", true); SetEntityConnectionStateChangeCallback("lever", "func_shelf"); AddEntityCollideCallback("Player", "startenemy5", "collideenemy5", true, 1); }
void collideenemy6(string &in asParent, string &in asChild, int alState) { ClearEnemyPatrolNodes("enemy6"); SetSwingDoorLocked("cabinet", false, true); AddTimer("timer123", 0.7f, "startenemy6"); StartPlayerLookAt("cabinet", 3, 4, "StopPlayerLookAt"); AddEnemyPatrolNode("enemy6", "PathNodeArea_6", 0, ""); }
void startenemy6(string &in asTimer) { SetMoveObjectState("cabinet", 1); ClearEnemyPatrolNodes("enemy6"); SetEntityActive("enemy6", true); ShowEnemyPlayerPosition("enemy6"); AddEntityCollideCallback("enemy6", "noticeenemy6", "notenemy6", true, 1); }
void collideenemy4(string &in asParent, string &in asChild, int alState) { ClearEnemyPatrolNodes("enemy4"); SetEntityActive("enemy4", true); AddEnemyPatrolNode("enemy4", "PathNodeArea_2", 0, ""); AddEnemyPatrolNode("enemy4", "PathNodeArea_3", 0, ""); AddEntityCollideCallback("enemy4", "fadeenemy4", "Fadeenemy4", true, 1); }
void collideenemy5(string &in asParent, string &in asChild, int alState) { ClearEnemyPatrolNodes("enemy5"); SetEntityActive("enemy5", true); AddEnemyPatrolNode("enemy5", "PathNodeArea_4", 0, ""); AddEnemyPatrolNode("enemy5", "PathNodeArea_5", 0, ""); AddEntityCollideCallback("enemy5", "fadeenemy5", "Fadeenemy5", true, 1); }
void Fadeenemy5(string &in asParent, string &in asChild, int alState) { SetEntityActive("enemy5", false); }
void Fadeenemy4(string &in asParent, string &in asChild, int alState) { SetEntityActive("enemy4", false); }
void Collide(string &in asEntity) { SetEntityPlayerInteractCallback("door1", "Collide2", true); }
void Collide2(string &in asEntity) { // ClearEnemyPatrolNodes("enemy2"); // SetEntityActive("enemy2", true); AddEnemyPatrolNode("enemy2", "PathNodeArea_1", 0, ""); AddEntityCollideCallback("enemy2", "script4", "Collideenemy2", true, 1); }
void Collideenemy2(string &in asParent, string &in asChild, int alState) { SetPropHealth("door2", 50); ShowEnemyPlayerPosition("enemy2"); }
void check1(string &in asParent, string &in asChild, int alState) { CheckPoint ("Check1", "Check1", "CheckPoint01", "Misc", "DeathHint2"); }
void check2(string &in asParent, string &in asChild, int alState) { CheckPoint ("Check2", "Check1", "CheckPoint01", "Misc", "DeathHint1"); }
void CheckPoint01(string &in asName, int alCount) { SetPlayerHealth(RandFloat(80,90)); SetPlayerSanity(RandFloat(40,60)); SetPlayerMoveSpeedMul(1); SetPlayerRunSpeedMul(1); SetPlayerCrouching(false); }
void easterown(string &in asParent, string &in asChild, int alState) { AddTimer("eastern", 3.0f, "easterr"); }
void easterr(string &in asTimer) { SetEntityActive("enemy3", true); ShowEnemyPlayerPosition("enemy3"); StartPlayerLookAt("enemy3", 3, 4, "StopPlayerLookAt"); AddTimer("sanitytimer", 0.5f, "sanitydamage"); SetPlayerHealth(50); SetPlayerMoveSpeedMul(0); SetPlayerRunSpeedMul(0); SetDeathHint("Misc", "DeathHint1"); }
void sanitydamage(string &in asTimer) { GiveSanityDamage(100, true); PlaySoundAtEntity("react", "react_scare.snt", "Player", 0.0f, false); SetPlayerCrouching(true); }
void func_shelf(string &in asEntity, int alState) { if (alState == 1) { SetMoveObjectState("shelf",1.0f); PlaySoundAtEntity("", "quest_completed.snt", "shelf_move_1", 0, false); return; } }
void SetMessage1(string& asTextCategory, string& asTextEntry, float afTime) { SetMessage("Sergej", "Mutter1", 0); }
void OnPickup(string &in asItem, string &in asEntity) { SetLanternDisabled(false); RemoveItem("tinderbox"); SetMessage("Sergej", "Mutter2", 0); } //////////////////////////// // Run when leaving map void OnLeave() { }
|
|
05-25-2012, 01:55 PM |
|
Putmalk
Senior Member
Posts: 290
Threads: 13
Joined: Apr 2012
Reputation:
15
|
RE: Opening cabinet
Oh? SetObjectMoveState didn't work? Hm, okay. That wasn't a set in stone solution, I just wanted to see if it would work.
You might be able to use SetSwingDoorClosed("cabinet", false, true); function. Or you might be able to provide a force on the cabinet to make it open use AddPropForce("cabinet", int x, int y, int z, "world");.
We are trying to get the doors to open, right? So the grunt can charge out? (just double checking).
|
|
05-25-2012, 02:00 PM |
|
Topsu
Junior Member
Posts: 12
Threads: 3
Joined: Mar 2012
Reputation:
0
|
RE: Opening cabinet
(05-25-2012, 02:00 PM)Putmalk Wrote: Oh? SetObjectMoveState didn't work? Hm, okay. That wasn't a set in stone solution, I just wanted to see if it would work.
You might be able to use SetSwingDoorClosed("cabinet", false, true); function. Or you might be able to provide a force on the cabinet to make it open use AddPropForce("cabinet", int x, int y, int z, "world");.
We are trying to get the doors to open, right? So the grunt can charge out? (just double checking). Yup, thats what we are trying.
And SetSwingDoorClosed("cabinet", false, true);
worked, thank you.
(This post was last modified: 05-25-2012, 02:33 PM by Topsu.)
|
|
05-25-2012, 02:25 PM |
|
|