Page 1 of 2
tricky teleporter
Posted: February 13th, 2010, 5:37 pm
by TTTT
i know i ask alot, but you guys are the only ones who actually post helpful replys.
Alright heres my question, I have 6 hidden items on my map. after a person have pressed hes use button on all thoose items, he shoulld be teleported to another place thats unreachable otherwise. is this possible and if it is, how do i make it happen?
Re: tricky teleporter
Posted: February 13th, 2010, 10:11 pm
by Drofder2004
Code: Select all
main()
{
thread grabconnectedplayers();
thread trigger1();
thread trigger2();
thread trigger3();
thread trigger4();
thread trigger5();
thread trigger6();
}
grabconnectedplayers()
{
while(1)
{
level waittill("connected", player);
player thread triggers();
}
}
triggers()
{
self.triggers = [];
self.triggers[1] = false;
self.triggers[2] = false;
self.triggers[3] = false;
self.triggers[4] = false;
self.triggers[5] = false;
self.triggers[6] = false;
self thread count();
}
trigger1()
{
trig = getent("triggername","targetname");
while(1)
{
trig waittill("trigger",user);
if(!isDefined(user.triggers[1]) || (user.triggers[1] != true))
{
user.triggers[1] = true;
user.trigcount += 1;
}
}
}
trigger2()
{
trig = getent("triggername","targetname");
while(1)
{
trig waittill("trigger",user);
if(!isDefined(user.triggers[2]) || (user.triggers[2] != true))
{
user.triggers[2] = true;
user.trigcount += 1;
}
}
}
etc - to 6.
count()
{
while(self.trigcount != 6)
wait 0.1;
//TELEPORT HERE
}
It can be further simplified using entity arrays, but this should work fine.
Re: tricky teleporter
Posted: February 14th, 2010, 12:06 am
by TTTT
got another lovley error, can be seen in screenshot. heres my code :
main()
{
thread grabconnectedplayers();
thread trigger1();
thread trigger2();
thread trigger3();
thread trigger4();
thread trigger5();
thread trigger6();
}
grabconnectedplayers()
{
while(1)
{
level waittill("connected", player);
player thread triggers();
}
}
triggers()
{
self.triggers = [];
self.triggers[1] = false;
self.triggers[2] = false;
self.triggers[3] = false;
self.triggers[4] = false;
self.triggers[5] = false;
self.triggers[6] = false;
self thread count();
}
trigger1()
{
trig = getent("ak47","targetname");
while(1)
{
trig waittill("trigger",user);
if(!isDefined(user.triggers[1]) || (user.triggers[1] != true))
{
user.triggers[1] = true;
user.trigcount += 1;
}
}
}
trigger2()
{
trig = getent("miniuzi","targetname");
while(1)
{
trig waittill("trigger",user);
if(!isDefined(user.triggers[2]) || (user.triggers[2] != true))
{
user.triggers[2] = true;
user.trigcount += 1;
}
}
}
trigger3()
{
trig = getent("lmg","targetname");
while(1)
{
trig waittill("trigger",user);
if(!isDefined(user.triggers[3]) || (user.triggers[3] != true))
{
user.triggers[3] = true;
user.trigcount += 1;
}
}
}
trigger4()
{
trig = getent("m1014","targetname");
while(1)
{
trig waittill("trigger",user);
if(!isDefined(user.triggers[4]) || (user.triggers[4] != true))
{
user.triggers[4] = true;
user.trigcount += 1;
}
}
}
trigger5()
{
trig = getent("dragunov","targetname");
while(1)
{
trig waittill("trigger",user);
if(!isDefined(user.triggers[5]) || (user.triggers[5] != true))
{
user.triggers[5] = true;
user.trigcount += 1;
}
}
}
trigger6()
{
trig = getent("de","targetname");
while(1)
{
trig waittill("trigger",user);
if(!isDefined(user.triggers[6]) || (user.triggers[6] != true))
{
user.triggers[6] = true;
user.trigcount += 1;
}
}
}
count()
{
while(self.trigcount != 6)
wait 0.1;
thread Transporter();
}
Transporter()
{
while(true)
{
self waittill("trigger",other);
entTarget = getent(self.target, "targetname");
wait(0.10);
other setorigin(entTarget.origin);
other setplayerangles(entTarget.angles);
wait(0.10);
}
}
I really dont know how to combine a teleporter with the code you sent me, its probably my try to mix them together that fucked it up
Re: tricky teleporter
Posted: February 14th, 2010, 2:11 am
by Rezil
What screenshot?
Re: tricky teleporter
Posted: February 14th, 2010, 4:02 am
by TTTT
sorry i forgot to post the image xD well it is on my last reply now
Re: tricky teleporter
Posted: February 14th, 2010, 6:47 am
by Rezil
Hm, not sure about the error but the script wouldn't achieve what he wanted Drof, since he wants the teleport to happen after all six triggers are triggered, so:
Code: Select all
count()
{
while(self.trigcount != 6)
wait 0.1;
thread Transporter();
}
should in fact be:
Code: Select all
count()
{
while(self.trigcount == 6)
wait 0.1;
thread Transporter();
}
Also, try adding self.trigcount = 0; in the triggers() thread.
Re: tricky teleporter
Posted: February 14th, 2010, 2:35 pm
by Drofder2004
Code: Select all
triggers()
{
self.triggers = [];
self.triggers[1] = false;
self.triggers[2] = false;
self.triggers[3] = false;
self.triggers[4] = false;
self.triggers[5] = false;
self.triggers[6] = false;
self.trigcount = 6; // Add this line
self thread count();
}
Do NOT change the WHILE LOOP, changing it to "==" (equal to) will cause the while loop to be ignored because the while loop is there to stop the thread continuing without teleporting until the counter equals 6.
Because I did not include the curly brackets { } to enclose the while loop, the loop will ONLY read the first line (wait 0.1;) and will only move passed this line, once the while loop parameters have become false.
Once the player has been teleported once, the thread will end. If you want the player to be able to use all the triggers again, and be able to teleport again, simply add the line:
To the end of your 'teleport' function (or 'count' function).
Re: tricky teleporter
Posted: February 14th, 2010, 11:28 pm
by TTTT
yeah well thanks for that but i have no idea how to make a teleporter
Re: tricky teleporter
Posted: February 14th, 2010, 11:42 pm
by Soviet
Re: tricky teleporter
Posted: February 15th, 2010, 4:59 am
by Pedsdude
Re: tricky teleporter
Posted: February 15th, 2010, 2:20 pm
by Drofder2004
Code: Select all
count()
{
while(self.trigcount != 6)
wait 0.1;
self thread transporter();
}
Code: Select all
transporter()
{
org = (0,0,0);
self setorigin(org);
//self thread triggers();
//If you want the triggers & count to be reset so a player can reactivate the teleporter, remove the // above
}
Change the (0,0,0) to the exact position you want (to find it you can use /viewpos ingame or use the radiant coordinates.
Re: tricky teleporter
Posted: February 15th, 2010, 4:51 pm
by TTTT
alright, no errors, but with this code nothing happens after i presses all 6 triggers.
main()
{
thread grabconnectedplayers();
thread trigger1();
thread trigger2();
thread trigger3();
thread trigger4();
thread trigger5();
thread trigger6();
}
grabconnectedplayers()
{
while(1)
{
level waittill("connected", player);
player thread triggers();
}
}
triggers()
{
self.triggers = [];
self.triggers[1] = false;
self.triggers[2] = false;
self.triggers[3] = false;
self.triggers[4] = false;
self.triggers[5] = false;
self.triggers[6] = false;
self.trigcount = 6;
self thread count();
}
trigger1()
{
trig = getent("ak47","targetname");
while(1)
{
trig waittill("trigger",user);
if(!isDefined(user.triggers[1]) || (user.triggers[1] != true))
{
user.triggers[1] = true;
user.trigcount += 1;
}
}
}
trigger2()
{
trig = getent("m1014","targetname");
while(1)
{
trig waittill("trigger",user);
if(!isDefined(user.triggers[2]) || (user.triggers[2] != true))
{
user.triggers[2] = true;
user.trigcount += 1;
}
}
}
trigger3()
{
trig = getent("lmg","targetname");
while(1)
{
trig waittill("trigger",user);
if(!isDefined(user.triggers[3]) || (user.triggers[3] != true))
{
user.triggers[3] = true;
user.trigcount += 1;
}
}
}
trigger4()
{
trig = getent("de","targetname");
while(1)
{
trig waittill("trigger",user);
if(!isDefined(user.triggers[4]) || (user.triggers[4] != true))
{
user.triggers[4] = true;
user.trigcount += 1;
}
}
}
trigger5()
{
trig = getent("dragunov","targetname");
while(1)
{
trig waittill("trigger",user);
if(!isDefined(user.triggers[5]) || (user.triggers[5] != true))
{
user.triggers[5] = true;
user.trigcount += 1;
}
}
}
trigger6()
{
trig = getent("miniuzi","targetname");
while(1)
{
trig waittill("trigger",user);
if(!isDefined(user.triggers[6]) || (user.triggers[6] != true))
{
user.triggers[6] = true;
user.trigcount += 1;
}
}
}
count()
{
while(self.trigcount != 6)
wait 0.1;
thread transporter();
}
transporter()
{
org = (0,0,0);
self setorigin(org);
self thread triggers();
}
Is there any radiant work included to make this work expect making 6 trigger_use on all 6 guns with targetname ?
Re: tricky teleporter
Posted: February 15th, 2010, 5:13 pm
by Drofder2004
Added some print commands. Test the map using this GSC and then let me know which messages appear.
Code: Select all
main()
{
thread grabconnectedplayers();
thread trigger1();
thread trigger2();
thread trigger3();
thread trigger4();
thread trigger5();
thread trigger6();
}
grabconnectedplayers()
{
while(1)
{
level waittill("connected", player);
player thread triggers();
}
}
triggers()
{
self.triggers = [];
self.triggers[1] = false;
self.triggers[2] = false;
self.triggers[3] = false;
self.triggers[4] = false;
self.triggers[5] = false;
self.triggers[6] = false;
self.trigcount = 6;
self thread count();
}
trigger1()
{
trig = getent("ak47","targetname");
while(1)
{
trig waittill("trigger",user);
iprintln("Trigger: ^1AK47");
if(!isDefined(user.triggers[1]) || (user.triggers[1] != true))
{
user.triggers[1] = true;
user.trigcount += 1;
iprintln("Trigcount = ^2" + user.trigcount);
}
}
}
trigger2()
{
trig = getent("m1014","targetname");
while(1)
{
trig waittill("trigger",user);
iprintln("Trigger: ^1M1014");
if(!isDefined(user.triggers[2]) || (user.triggers[2] != true))
{
user.triggers[2] = true;
user.trigcount += 1;
iprintln("Trigcount = ^2" + user.trigcount);
}
}
}
trigger3()
{
trig = getent("lmg","targetname");
while(1)
{
trig waittill("trigger",user);
iprintln("Trigger: ^1M1014");
if(!isDefined(user.triggers[3]) || (user.triggers[3] != true))
{
user.triggers[3] = true;
user.trigcount += 1;
iprintln("Trigcount = ^2" + user.trigcount);
}
}
}
trigger4()
{
trig = getent("de","targetname");
while(1)
{
trig waittill("trigger",user);
iprintln("Trigger: ^1DE");
if(!isDefined(user.triggers[4]) || (user.triggers[4] != true))
{
user.triggers[4] = true;
user.trigcount += 1;
iprintln("Trigcount = ^2" + user.trigcount);
}
}
}
trigger5()
{
trig = getent("dragunov","targetname");
while(1)
{
trig waittill("trigger",user);
iprintln("Trigger: ^1Dragunov");
if(!isDefined(user.triggers[5]) || (user.triggers[5] != true))
{
user.triggers[5] = true;
user.trigcount += 1;
iprintln("Trigcount = ^2" + user.trigcount);
}
}
}
trigger6()
{
trig = getent("miniuzi","targetname");
while(1)
{
trig waittill("trigger",user);
iprintln("Trigger: ^1Miniuzi");
if(!isDefined(user.triggers[6]) || (user.triggers[6] != true))
{
user.triggers[6] = true;
user.trigcount += 1;
iprintln("Trigcount = ^2" + user.trigcount);
}
}
}
count()
{
while(self.trigcount != 6)
wait 0.1;
self thread transporter();
}
transporter()
{
iprintln("Transporter: ^2Start");
org = (0,0,0);
self setorigin(org);
self thread triggers();
}
Re: tricky teleporter
Posted: February 15th, 2010, 7:30 pm
by TTTT
at the botteom left corner messages come up each time i presses a gun, but the triggercount starts from 6. becouse when i started the map and pressed use on the first gun it said "trigger: ak47, triggercount 7" the triggercount goes up to 12 after i pressed all guns.
Re: tricky teleporter
Posted: February 15th, 2010, 7:33 pm
by TTTT
i got it to work :DD insted of
triggers()
{
self.triggers = [];
self.triggers[1] = false;
self.triggers[2] = false;
self.triggers[3] = false;
self.triggers[4] = false;
self.triggers[5] = false;
self.triggers[6] = false;
self.trigcount = 6;
self thread count();
}
i did
triggers()
{
self.triggers = [];
self.triggers[1] = false;
self.triggers[2] = false;
self.triggers[3] = false;
self.triggers[4] = false;
self.triggers[5] = false;
self.triggers[6] = false;
self.trigcount = 0;
self thread count();
}
and now it works

thx man