Author |
Topic: Last scripting needed: trigger on/off triger.origin?help needed |
pallchrn |
General Member Since: Feb 12, 2004 Posts: 31 Last: Feb 16, 2010 [view latest posts] |
|
|
|
The_Caretaker |
General Member Since: Jun 8, 2004 Posts: 11625 Last: Jul 7, 2009 [view latest posts] |
|
|
|
pallchrn |
General Member Since: Feb 12, 2004 Posts: 31 Last: Feb 16, 2010 [view latest posts] |
|
|
Category: CoDUO Mapping Posted: Thursday, Nov. 8, 2007 09:36 pm |
|
thankyou very much caretaker i searched for the linkto and found a very useful post about a big block ;p (exactly what i wanted)
now i have a problem for the trigger of my door to work with the big block here are my .gsc files trying to use (i want the block to work at the time the door is coming down)
door script:
main() {
level.elevatorDown = true; // elevator starts at bottom: true/false
level.elevatorMoving = false; // elevator is not currently moving
thread elevator_start();
thread elevator_start2();
}
elevator_start() {
elevator = getentarray ("door_sequence_trigger","targetname");
if ( isdefined(elevator) )
for (i = 0; i < elevator.size; i++)
elevator thread elevator_think();
}
elevator_start2() {
elevator = getentarray ("door_trigger_2","targetname");
if ( isdefined(elevator) )
for (i = 0; i < elevator.size; i++)
elevator thread elevator_think();
}
elevator_think() {
while (1) {
self waittill ("trigger");
if (!level.elevatorMoving)
thread elevator_move();
}
}
elevator_move() {
elevatormodel = getent ("updowndoor", "targetname");
;
level.elevatorMoving = true;
speed = 3;
height = 170;
wait (1);
if (level.elevatorDown) { // moves to top
fish = getent ("doorsound", "targetname");
fish playsound ("doorso"); // sound definition for soundaliases.csv
wait (1); // wait a second to hear the motor start and then start the movement of the lift - feels more realistic
elevatormodel moveZ (height, speed,1,1);
elevatormodel waittill ("movedone");
level.elevatorDown = false;
}
else { // moves to bottom
fish = getent ("doorsound", "targetname");
fish playsound ("doorso"); // sound definition for soundaliases.csv
wait (1); // wait a second to hear the motor start and then start the movement of the lift - feels more realistic
elevatormodel moveZ (height - (height * 2), speed,1,1);
elevatormodel waittill ("movedone");
level.elevatorDown = true;
}
level.elevatorMoving = false;
}
block script eddited:
Main ()
{
maps\mp\_load::main();
thread block_move();
thread block_kill();
}
block_move()
{
block = getent ("block","targetname");
trig = getent ("block_trigger","targetname");
while (1)
{
trig waittill ("trigger",user);
block moveto ((-675,-240,0), 2);
block waittill ("movedone");
wait 2;
block moveto ((-675,-240,168), 2);
block waittill ("movedone");
}
}
block_kill()
{
block = getent ("block","targetname");
killzone = getent ("block_killzone","targetname");
while (1)
{
killzone waittill ("trigger",user);
if (user istouching(block))
{
user suicide();
wait 1;
}
}
}
|
|
|
|
The_Caretaker |
General Member Since: Jun 8, 2004 Posts: 11625 Last: Jul 7, 2009 [view latest posts] |
|
|
|
pallchrn |
General Member Since: Feb 12, 2004 Posts: 31 Last: Feb 16, 2010 [view latest posts] |
|
|
Category: CoDUO Mapping Posted: Friday, Nov. 9, 2007 06:46 pm |
|
ok i tried into one script ( thankyou caretaker)
but nothing working now, the sound works for the door but nothing moves (updowndoor is the origin and door)
i took out the block_trigger (as triggered from the door)
main() {
level.elevatorDown = true; // elevator starts at bottom: true/false
level.elevatorMoving = false; // elevator is not currently moving
thread elevator_start();
thread elevator_start2();
thread block_kill();
}
elevator_start() {
elevator = getentarray ("door_sequence_trigger","targetname");
if ( isdefined(elevator) )
for (i = 0; i < elevator.size; i++)
elevator thread elevator_think();
}
elevator_start2() {
elevator = getentarray ("door_trigger_2","targetname");
if ( isdefined(elevator) )
for (i = 0; i < elevator.size; i++)
elevator thread elevator_think();
}
elevator_think() {
while (1) {
self waittill ("trigger");
if (!level.elevatorMoving)
thread elevator_move();
}
}
elevator_move() {
elevatormodel = getentarray ("updowndoor", "targetname");
;
level.elevatorMoving = true;
speed = 3;
height = 170;
wait (1);
if (level.elevatorDown) { // moves to top
fish = getent ("doorsound", "targetname");
fish playsound ("doorso"); // sound definition for soundaliases.csv
wait (1); // wait a second to hear the motor start and then start the movement of the lift - feels more realistic
elevatormodel moveZ (height, speed,1,1);
elevatormodel waittill ("movedone");
level.elevatorDown = false;
}
else { // moves to bottom
fish = getent ("doorsound", "targetname");
fish playsound ("doorso"); // sound definition for soundaliases.csv
wait (1); // wait a second to hear the motor start and then start the movement of the lift - feels more realistic
elevatormodel moveZ (height - (height * 2), speed,1,1);
elevatormodel waittill ("movedone");
level.elevatorDown = true;
}
level.elevatorMoving = false;
}
block_kill()
{
death = getentarray ("updowndoor","targetname");
killzone = getent ("block_killzone","targetname");
while (1)
{
killzone waittill ("death",user);
if (user istouching(death))
{
user suicide();
wait 1;
}
}
}
|
|
|
|
pallchrn |
General Member Since: Feb 12, 2004 Posts: 31 Last: Feb 16, 2010 [view latest posts] |
|
|
|
The_Caretaker |
General Member Since: Jun 8, 2004 Posts: 11625 Last: Jul 7, 2009 [view latest posts] |
|
|
|
pallchrn |
General Member Since: Feb 12, 2004 Posts: 31 Last: Feb 16, 2010 [view latest posts] |
|
|
Category: CoDUO Mapping Posted: Saturday, Nov. 10, 2007 02:13 pm |
|
thankyou caretaker for all your help
i got the door working a dream now ;p
if anyone wants the script ill leave it here any questions xfire me "pallchrn"
i had to use two script 1st is the door
main() {
level.elevatorDown = true; // elevator starts at bottom: true/false
level.elevatorMoving = false; // elevator is not currently moving
thread elevator_start();
thread elevator_start2();
}
elevator_start() {
elevator = getentarray ("door_sequence_trigger","targetname");
if ( isdefined(elevator) )
for (i = 0; i < elevator.size; i++)
elevator thread elevator_think();
}
elevator_start2() {
elevator = getentarray ("door_trigger_2","targetname");
if ( isdefined(elevator) )
for (i = 0; i < elevator.size; i++)
elevator thread elevator_think();
}
elevator_think() {
while (1) {
self waittill ("trigger");
if (!level.elevatorMoving)
thread elevator_move();
}
}
elevator_move() {
elevatormodel = getent ("updowndoor", "targetname");
;
level.elevatorMoving = true;
speed = 3;
height = 170;
wait (1);
if (level.elevatorDown) { // moves to top
fish = getent ("doorsound", "targetname");
fish playsound ("doorso"); // sound definition for soundaliases.csv
wait (1); // wait a second to hear the motor start and then start the movement of the lift - feels more realistic
elevatormodel moveZ (height, speed,1,1);
elevatormodel waittill ("movedone");
level.elevatorDown = false;
}
else { // moves to bottom
fish = getent ("doorsound", "targetname");
fish playsound ("doorso"); // sound definition for soundaliases.csv
wait (1);
thread maps\mp\hotchkiss_script::main();
elevatormodel moveZ (height - (height * 2), speed,1,1);
elevatormodel waittill ("movedone");
level.elevatorDown = true;
}
level.elevatorMoving = false;
}
and the 2nd was the door killzone
Main ()
{
block = getent ("block","targetname");
fish = getent ("block_killzone","targetname");
trig = getent ("block_trigger","targetname");
block thread maps\mp\_utility::triggeron();
fish thread maps\mp\_utility::triggeron();
trig thread maps\mp\_utility::triggerOn();
thread block_move();
thread block_kill();
}
block_move()
{
block = getent ("block","targetname");
trig = getent ("block_trigger","targetname");
fish = getent ("block_killzone","targetname");
while (1)
{
trig waittill ("trigger",user);
block moveto ((-675,-240,0), 2);
block waittill ("movedone");
wait 2;
block moveto ((-675,-240,168), 2);
block waittill ("movedone");
block thread maps\mp\_utility::triggerOff();
fish thread maps\mp\_utility::triggerOff();
trig thread maps\mp\_utility::triggerOff();
}
}
block_kill()
{
block = getent ("block","targetname");
killzone = getent ("block_killzone","targetname");
while (1)
{
killzone waittill ("trigger",user);
if (user istouching(block))
{
user suicide();
wait 1;
}
}
} |
|
|
|