$ring_egypt_trigger and $ring_nazi_trigger are 2 trigger multiple , when fired they teleport my player to the appropriate location .
Architecture made by Bdbodger:
Code: Select all
ring_teleporter1: // this ring_nazi_trigger triggered by setthread
//self waittill trigger
self nottriggerable
$ring_egypt_trigger nottriggerable
wait 2 // wait for players to enter
waitthread end_trigger_touched $ring_egypt_trigger
$ring_speaker playsound transring
waitthread rings_down
local.counter = 0
for(local.p = 1;local.p <= $player.size;local.p++)
{
if($player[local.p] istouching self && local.counter < 2 )
{
thread ring_teleport $player[local.p] $ring_egypt
local.counter++
}
}
waitthread rings_up
waitthread end_trigger_touched $ring_egypt_trigger
//self triggerable
//$ring_egyt_trigger triggerable
waitthread release_trigger
end
ring_teleporter2: // this ring_egypt_trigger triggered by setthread
//self waittill trigger
self nottriggerable
$ring_nazi_trigger nottriggerable
wait 2 // wait for players to enter
waitthread end_trigger_touched $ring_nazi_trigger
$ring_speaker playsound transring
waitthread rings_down
local.counter = 0
for(local.p = 1;local.p <= $player.size;local.p++)
{
if($player[local.p] istouching self && local.counter < 2)
{
thread ring_teleport $player[local.p] $ring_nazi
local.counter++
}
}
waitthread rings_up
waitthread end_trigger_touched $ring_nazi_trigger
//self triggerable
//$ring_nazi_trigger triggerable
waitthread release_trigger
end
spot_used:
while(1)
{
self waittill trigger
self nottriggerable
self.isused = 1
local.ringuser = parm.other
while(local.ringuser istouching self)
waitframe
self.isused = 0
self triggerable
}
end
end_trigger_touched local.trigger:
local.ok = 0
while(local.ok != 1)
{
local.check = 0
for(local.p=1;local.p<=$player.size;local.p++)
{
if($player[local.p] istouching local.trigger)
local.check = 1
}
if(local.check == 0)
local.ok = 1
waitframe
}
end
rings_down:
$ring1 time .3
$ring2 time .3
$ring3 time .3
$ring4 time .3
$ring5 time .3
$ring1_1 time .3
$ring2_2 time .3
$ring3_3 time .3
$ring4_4 time .3
$ring5_5 time .3
$ring1 movedown 191
$ring1 waitmove
$ring1_1 movedown 191
$ring1_1 waitmove
$ring2 movedown 191
$ring2 waitmove
$ring2_2 movedown 191
$ring2_2 waitmove
$ring3 movedown 191
$ring3 waitmove
$ring3_3 movedown 191
$ring3_3 waitmove
$ring4 movedown 191
$ring4 waitmove
$ring4_4 movedown 191
$ring4_4 waitmove
$ring5 movedown 191
$ring5 waitmove
$ring5_5 movedown 191
$ring5_5 waitmove
end
rings_up:
$ring1 time .3
$ring2 time .3
$ring3 time .3
$ring4 time .3
$ring5 time .3
$ring1_1 time .3
$ring2_2 time .3
$ring3_3 time .3
$ring4_4 time .3
$ring5_5 time .3
$ring5 moveup 191
$ring5 waitmove
$ring5_5 moveup 191
$ring5_5 waitmove
$ring4 moveup 191
$ring4 waitmove
$ring4_4 moveup 191
$ring4_4 waitmove
$ring3 moveup 191
$ring3 waitmove
$ring3_3 moveup 191
$ring3_3 waitmove
$ring2 moveup 191
$ring2 waitmove
$ring2_2 moveup 191
$ring2_2 waitmove
$ring1 moveup 191
$ring1 waitmove
$ring1_1 moveup 191
$ring1_1 waitmove
end
I have a MAJOR bug , the script is broken after a while, and the rings are getting crazy .
So i think to fix it i ll have to make My main triggers triggerable only if none players are touching them ingame.
So i skiped :
Code: Select all
//self triggerable
//$ring_nazi_trigger triggerable
Code: Select all
waiithread release_trigger
Code: Select all
release_trigger:
local.trigger_activated = 0
while(local.trigger_activated != 1)
{
for(local.i=1;local.i<=$player.size;local.i++)
{
if(($player[local.i] istouching $ring_egypt_trigger) || ($player[ocal.i] istouching $ring_egypt_trigger))
{
local.trigger_activated= 1
}
if(local.trigger_activated == 0)
{
$ring_egypt_trigger triggerable
$ring_nazi_trigger triggerable
}
}
waitframe
}
end
Can someone help me to fix it plz .
