Page 1 of 2

Touch Activated Message

Posted: September 3rd, 2006, 5:08 pm
by Soviet
i want to add a scripted message onto my map where when somebody walks on it it sends a message to my map...like in peds parkour. Im assuming its easy but i cant find any tuts on it. Can someone please give me a link to a tut or just give me the basic script for it please?

Posted: September 3rd, 2006, 5:23 pm
by Luke
Make a trigger_multiple, give it a targetname then simple use

Code: Select all

message()
{
trig = getent("trigger","targetname"); //change "trigger" to your triggers targetname
while(1)
{
    trig waittill("trigger",user);
    user iprintlnbold ("your message");
    wait 1; //use a wait time to prevent it being triggered again instantly
}
}
If want the message to be seen by everyone in the map, then use trig waittill("trigger"); and remove user before iprintlnbold

Posted: September 3rd, 2006, 5:37 pm
by Soviet
ok, i used that and i got script compile error. Here is my main .gsc (it shouldnt be the elevator script because that was working without errors yesterday)

Code: Select all

main() { 
level.elevatorDown = true; // elevator starts at bottom: true/false 
level.elevatorMoving = false; // elevator is not currently moving 
thread elevator_start(); 
} 

elevator_start() { 
elevator = getentarray ("elevatorswitch","targetname"); 
if ( isdefined(elevator) ) 
for (i = 0; i < elevator.size; i++) 
elevator[i] thread elevator_think(); 
} 

elevator_think() { 
while (1) { 
self waittill ("trigger"); 
if (!level.elevatorMoving) 
thread elevator_move(); 
} 
} 

elevator_move() { 
elevatormodel = getent ("elevatormodel", "targetname"); 
level.elevatorMoving = true; 
speed = 2; 
height = 192; 
wait (1); 
if (level.elevatorDown) { // moves to top 
elevatormodel moveZ (-1520,6,1,1); 
elevatormodel waittill ("movedone"); 
level.elevatorDown = false; 
wait (5);
elevatormodel moveZ (1520,6,1,1); 
elevatormodel waittill ("movedone"); 
level.elevatorDown = true; 
} 
level.elevatorMoving = false; 
} 
}





message()
{
trig = getent("ks_message","targetname"); //change "trigger" to your triggers targetname
trig waittill("ks_message");

while(1)
{
    trig waittill("ks_message");
    iprintlnbold ("text");
    wait (2)
    iprintInbold ("text");
    wait (8)
}
}

Posted: September 3rd, 2006, 5:44 pm
by Luke
There was a typo sorry, try my script again

you also need to add thread message(); below main

Posted: September 3rd, 2006, 5:55 pm
by Soviet
still getting compile error

Code: Select all

main() { 
level.elevatorDown = true; // elevator starts at bottom: true/false 
level.elevatorMoving = false; // elevator is not currently moving 
thread elevator_start(); 
} 

elevator_start() { 
elevator = getentarray ("elevatorswitch","targetname"); 
if ( isdefined(elevator) ) 
for (i = 0; i < elevator.size; i++) 
elevator[i] thread elevator_think(); 
} 

elevator_think() { 
while (1) { 
self waittill ("trigger"); 
if (!level.elevatorMoving) 
thread elevator_move(); 
} 
} 

elevator_move() { 
elevatormodel = getent ("elevatormodel", "targetname"); 
level.elevatorMoving = true; 
speed = 2; 
height = 192; 
wait (1); 
if (level.elevatorDown) { // moves to top 
elevatormodel moveZ (-1520,6,1,1); 
elevatormodel waittill ("movedone"); 
level.elevatorDown = false; 
wait (5);
elevatormodel moveZ (1520,6,1,1); 
elevatormodel waittill ("movedone"); 
level.elevatorDown = true; 
} 
level.elevatorMoving = false; 
} 
}




thread message();
message();
{
trig = getent("ks_message","targetname"); //change "trigger" to your triggers targetname
while(1)
{
    trig waittill("trigger");
    iprintlnbold ("text");
    wait 2;
    iprintInbold ("text");
    wait 8;
}
}
i also replaced trig waittill("trigger"); with trig waittill("ks_message"); just in case. I tried not having thread message(); as well.

Posted: September 3rd, 2006, 6:01 pm
by Luke

Code: Select all

main() 
{
level.elevatorDown = true; // elevator starts at bottom: true/false
level.elevatorMoving = false; // elevator is not currently moving
thread elevator_start();
thread message();
}

elevator_start() {
elevator = getentarray ("elevatorswitch","targetname");
if ( isdefined(elevator) )
for (i = 0; i < elevator.size; i++)
elevator[i] thread elevator_think();
}

elevator_think() {
while (1) {
self waittill ("trigger");
if (!level.elevatorMoving)
thread elevator_move();
}
}

elevator_move() {
elevatormodel = getent ("elevatormodel", "targetname");
level.elevatorMoving = true;
speed = 2;
height = 192;
wait (1);
if (level.elevatorDown) { // moves to top
elevatormodel moveZ (-1520,6,1,1);
elevatormodel waittill ("movedone");
level.elevatorDown = false;
wait (5);
elevatormodel moveZ (1520,6,1,1);
elevatormodel waittill ("movedone");
level.elevatorDown = true;
}
level.elevatorMoving = false;
}
}

message()
{
trig = getent("ks_message","targetname");
while(1)
{
    trig waittill("trigger");
    iprintlnbold ("text");
    wait 2;
    iprintInbold ("text");
    wait 8;
}
}

Posted: September 3rd, 2006, 6:06 pm
by Soviet
still compile error :x

i checked map and there is definitely a trigger_multiple with a targetname of ks_message

Posted: September 3rd, 2006, 6:08 pm
by Luke
It should be iprintLnbold not iprintInbold

Posted: September 3rd, 2006, 6:18 pm
by Soviet
changed it....god i hate scripting (didnt work)

Code: Select all

main() { 
level.elevatorDown = true; // elevator starts at bottom: true/false 
level.elevatorMoving = false; // elevator is not currently moving 
thread elevator_start(); 
thread message(); 
} 

elevator_start() { 
elevator = getentarray ("elevatorswitch","targetname"); 
if ( isdefined(elevator) ) 
for (i = 0; i < elevator.size; i++) 
elevator[i] thread elevator_think(); 
} 

elevator_think() { 
while (1) { 
self waittill ("trigger"); 
if (!level.elevatorMoving) 
thread elevator_move(); 
} 
} 

elevator_move() { 
elevatormodel = getent ("elevatormodel", "targetname"); 
level.elevatorMoving = true; 
speed = 2; 
height = 192; 
wait (1); 
if (level.elevatorDown) { // moves to top 
elevatormodel moveZ (-1520,6,1,1); 
elevatormodel waittill ("movedone"); 
level.elevatorDown = false; 
wait (5);
elevatormodel moveZ (1520,6,1,1); 
elevatormodel waittill ("movedone"); 
level.elevatorDown = true; 
} 
level.elevatorMoving = false; 
} 
}




message();
{
trig = getent("ks_message","targetname"); //change "trigger" to your triggers targetname
while(1)
{
    trig waittill("trigger");
    iprintLnbold ("text");
    wait 2;
    iprintLnbold ("text");
    wait 8;
}
}

Posted: September 3rd, 2006, 6:27 pm
by creator
/developer 1 can help... :P send us the error

Posted: September 3rd, 2006, 6:35 pm
by Luke
Yes do that, but first remove the ; from message(); :P

Posted: September 3rd, 2006, 7:08 pm
by creator
Soviet wrote:

Code: Select all

main() { 
dont know if this can be a problem
main() { change to

Code: Select all

main()
{

Posted: September 3rd, 2006, 7:49 pm
by Soviet
i changed main thing and took away semicolon, still no working

how do i get my console like the cod1 one? all i have is a bar to enter stuff, there is no history thingy for the console

edit: all it says is "bad syntax"

Posted: September 3rd, 2006, 8:05 pm
by Soviet
there was an error i found so i fixed it, now im getting some type of game file error:

Image

Posted: September 3rd, 2006, 8:06 pm
by creator
wtf lol u got alot of game type compile errors :|
maybe try unistall cod2 delete files that are left over install again :shock: