Login Issues
Forgot password?Activate Issues
Account activation email not received? Wrong account activation email used?Other Problems?
Contact Support - Help Center Get help on the UGX Discord. Join it now!make one, copy it 3 more times until there are 4, and put them in different rooms each
here try this, add 4 script origins with the targetname "exta_tele" for the extra teleport spots. (needs 4 so players dont go to the same spots)
show me your script and i'll try to help
#include common_scripts\utility;
#include maps\_utility;
#include maps\_zombiemode_utility;
init()
{
thread level_players();
addItems();
thread handleTriggers(level.kts["teleporter_trigger"], level.kts["mainframe_trigger"]);
flag_wait("electricity_on");
thread teleport_room_fx();
thread main();
}
addItems()
{
// Create Kino Teleporting System array
level.kts = [];
// Set variables needed for the teleporting system (using the setVar function)
// DO NOT EDIT THESE
setVar("teleporter_trigger", getEnt("kino_teleporter_trigger","targetname"));
setVar("mainframe_trigger", getEnt("kino_mainframe_trigger","targetname"));
setVar("teleporter_fxspot", getEnt("kino_teleporter_fxspot","targetname"));
setVar("mainframe_fxspot", getEnt("kino_mainframe_fxspot","targetname"));
setVar("zombie_goto", getEnt("kino_teleporter_zombiegoto","targetname"));
setVar("mainframe_spawn", getEntArray("kino_mainframe_spawn","targetname"));
setVar("pap_room_spawn", getEntArray("kino_paproom_spawn","targetname"));
setVar("transfer_room_structs", getEntArray("kino_image_room","targetname"));
setVar("teleporter_status", 0);
level.paping = false;
level.disable_pap = true;
level.kts["zombie_goto"] create_zombie_point_of_interest( 1536, 96, 10000, true );
level.kts["zombie_goto"].attract_to_origin = false;
// You CAN edit these
setVar("teleporter_cooldown_time", 60); // After a teleport, this is how long a wait until you can use it again
setVar("teleport_lag", 5); // When you go to teleport, this is how long it will wait until it actually teleports
setVar("pap_room_time", 40); // This is how long you are in the pack-a-punch room
setVar("wait_for_pap", true); // If false, you can be teleported out of the room even if there is a gun in the slot of the pap machine
setVar("teleport_cost", 0); // This is the amount of money it costs to teleport
// You MUST change these to be correct
setVar("room_is_pap", true); // If the room you go to when teleporting does NOT have the pack-a-punch in it, set this to false
if(!level.kts["room_is_pap"])
level.disable_pap = false;
}
level_players()
{
while(1)
{
level.players = get_players();
wait 0.5;
}
}
teleport_room_fx()
{
//points = level.kts["transfer_room_structs"];
points = getEntArray("kino_image_room","targetname");
for(i=0;i<points.size;i++)
{
points[i].struct = Spawn( "script_model", points[i].origin );
points[i].struct SetModel( "tag_origin_animate" );
points[i].struct.angles = points[i].angles;
PlayFxOnTag( level._effect["zombie_flashback_american"], points[i].struct, "tag_origin" );
}
}
main()
{
while(1)
{
setVar("teleporter_status", 1);
level.kts["teleporter_trigger"] waittill("trigger");
setVar("teleporter_status", 2);
level.kts["mainframe_trigger"] waittill("trigger");
setVar("teleporter_status", 3);
while(1)
{
level.kts["teleporter_trigger"] waittill("trigger", who);
if(level.kts["teleport_cost"] == 0)
break;
if(who.score < level.kts["teleport_cost"])
{
who playsound("deny");
continue;
}
who playsound("purchase");
who maps\_zombiemode_score::minus_to_player_score( level.kts["teleport_cost"] );
break;
}
setVar("teleporter_status", 4);
level.kts["teleporter_trigger"] do_teleport();
setVar("teleporter_status", 5);
wait level.kts["teleporter_cooldown_time"];
}
}
do_teleport()
{
// start fps fx
self thread teleport_pad_player_fx();
// Activate the TP zombie kill effect
self thread teleport_nuke( 20, 300, false); // Max 20 zombies and range 300
// 3rd Person Beam
level.kts["teleporter_fxspot"] thread pad_explosion();
// Teleport the players
self teleport_players();
}
teleport_players()
{
//thread do_mainframe_explode();
wait level.kts["teleport_lag"];
self notify( "fx_done" );
players_in = [];
attract = false;
for ( i = 0; i <level.players.size; i++ )
{
if( self player_is_near_pad( level.players[i] ) )
{
players_in[players_in.size] = level.players[i];
level.players[i] SetTransported( 2 );
level.players[i] SetStance( "stand" );
level.players[i] disableOffhandWeapons();
level.players[i] disableweapons();
image_room = getent( "teleport_room_" + i, "script_noteworthy" );
level.players[i].teleport_origin = spawn( "script_origin", level.players[i].origin );
level.players[i].teleport_origin.angles = level.players[i].angles;
level.players[i] linkto( level.players[i].teleport_origin );
level.players[i].teleport_origin.origin = image_room.origin + (0,70,-60); // 0, -70, -60
level.players[i].teleport_origin.angles = image_room.angles + (0,180,0);
setClientSysState("levelNotify", "t2d", level.players[i]);
level.players[i] FreezeControls( true );
wait_network_frame();
}
}
if(players_in.size == level.players.size)
{
attract = true;
level.kts["zombie_goto"].attract_to_origin = true;
}
wait 2;
for ( i = 0; i <players_in.size; i++ )
{
players_in[i].teleport_origin delete();
players_in[i].teleport_origin = undefined;
players_in[i] SetTransported( 0 );
players_in[i] FreezeControls( false );
players_in[i] enableOffhandWeapons();
players_in[i] enableweapons();
players_in[i] setOrigin(level.kts["pap_room_spawn"][i].origin);
}
if(level.kts["room_is_pap"])
level.disable_pap = false;
wait(level.kts["pap_room_time"] - 2);
if(level.kts["room_is_pap"] && level.kts["wait_for_pap"])
while(level.paping)
{
wait 0.5;
}
for ( i = 0; i <players_in.size; i++ )
players_in[i] SetTransported( 2 );
if(level.kts["room_is_pap"])
level.disable_pap = true;
level.kts["mainframe_fxspot"] thread do_mainframe_explode();
wait 2;
for ( i = 0; i <players_in.size; i++ )
{
players_in[i] SetTransported( 2 );
players_in[i] SetStance( "stand" );
players_in[i] disableOffhandWeapons();
players_in[i] disableweapons();
image_room = getent( "teleport_room_" + i, "script_noteworthy" );
players_in[i].teleport_origin = spawn( "script_origin", players_in[i].origin );
players_in[i].teleport_origin.angles = players_in[i].angles;
players_in[i] linkto( players_in[i].teleport_origin );
players_in[i].teleport_origin.origin = image_room.origin + (0,70,-60);
players_in[i].teleport_origin.angles = image_room.angles + (0,180,0);
players_in[i] FreezeControls( true );
setClientSysState("levelNotify", "t2d", players_in[i]);
wait_network_frame();
}
wait 2;
for ( i = 0; i <players_in.size; i++ )
{
players_in[i].teleport_origin delete();
players_in[i].teleport_origin = undefined;
players_in[i] SetTransported( 0 );
players_in[i] FreezeControls( false );
players_in[i] enableOffhandWeapons();
players_in[i] enableweapons();
players_in[i] setOrigin(level.kts["mainframe_spawn"][i].origin);
}
if(attract)
{
level.kts["zombie_goto"].attract_to_origin = false;
}
}
handleTriggers(self1, self2)
{
self1 SetCursorHint( "HINT_NOICON" );
self2 SetCursorHint( "HINT_NOICON" );
while(1)
{
hint1 = "";
hint2 = "";
switch(level.kts["teleporter_status"])
{
case 0: // Need power
hint1 = "You need to activate the power before using the teleporter";
hint2 = "You need to activate the power before using the teleporter";
break;
case 1: // Startup
hint1 = "Press &&1 to initiate link to mainframe";
hint2 = "Waiting for initial link to mainframe";
break;
case 2: // Waiting for link
hint1 = " ";
hint2 = "Press &&1 to link pad to mainframe";
break;
case 3: // Linked
if(level.kts["teleport_cost"] == 0)
hint1 = "Press &&1 to teleport";
else
hint1 = "Press &&1 to teleport [Cost: " + level.kts["teleport_cost"] + "]";
hint2 = " ";
break;
case 4: // Teleporting
hint1 = "Teleporting in progress";
hint2 = "Teleporting in progress";
break;
case 5: // Cooling down
hint1 = "The teleporter is cooling down";
hint2 = "The teleporter is cooling down";
break;
default: // Failsafe
hint1 = " ";
hint2 = " ";
break;
}
self1 setHintString(hint1);
self2 setHintString(hint2);
wait 0.5;
}
}
setVar(var, value)
{
// Sets the value on the array
level.kts[var] = value;
}
teleport_pad_player_fx()
{
self endon( "fx_done" );
while ( 1 )
{
players = getplayers();
for ( i = 0; i < players.size; i++ )
{
if ( isdefined( players[i] ) )
{
if ( self player_is_near_pad( players[i] ) )
{
players[i] SetTransported( 2 );
}
else
{
players[i] SetTransported( 0 );
}
}
}
wait ( .05 );
}
}
player_is_near_pad( player )
{
radius = 88;
scale_factor = 2;
dist = Distance2D( player.origin, self.origin );
dist_touching = radius * scale_factor;
if ( dist < dist_touching )
{
return true;
}
return false;
}
teleport_nuke( max_zombies, range, end_after_one )
{
self endon( "fx_done" );
if(!isDefined(end_after_one))
end_after_one = false;
while(1)
{
zombies = getaispeciesarray("axis");
zombies = get_array_of_closest( self.origin, zombies, undefined, max_zombies, range );
for (i = 0; i < zombies.size; i++)
{
wait (randomfloatrange(0.2, 0.3));
if( !IsDefined( zombies[i] ) )
{
continue;
}
if( is_magic_bullet_shield_enabled( zombies[i] ) )
{
continue;
}
if( !( zombies[i] enemy_is_dog() ) )
{
zombies[i] maps\_zombiemode_spawner::zombie_head_gib();
}
zombies[i] dodamage( 10000, zombies[i].origin );
playsoundatposition( "nuked", zombies[i].origin );
}
if(end_after_one)
return;
wait 0.01;
}
}
pad_explosion()
{
self thread pad_explosion_sound();
playfx(level._effect["transporter_pad_start"], self.origin);
wait level.kts["teleport_lag"];
playfx(level._effect["transporter_beam"], self.origin);
}
pad_explosion_sound()
{
count = 0;
while(1)
{
count ++;
if(count == 5)
return;
sound = "top_spark" + count + "_warmup";
playsoundatposition(sound, self.origin);
wait 0.1;
if(count == 4)
return;
}
}
do_mainframe_explode()
{
playfx(level._effect["zombie_mainframe_beam_start"], self.origin);
wait 4;
earthquake(0.3, 2, self.origin, 1024);
playfx(level._effect["zombie_mainframe_beam"], self.origin);
self thread teleport_nuke( 20, 300, true);
}
How dit you get that torn down Ferris wheel, I would really want that in my map :p