UGX-Mods Login

or login with an authentication provider below
Sign In with Google
Sign In with Twitter
Sign In with Discord
Sign In with Steam
Sign In with Facebook
Sign In with Twitch

[Script] Elevator (Rise Elevator Script)

broken avatar :(
Created 10 years ago
by JR-Imagine
0 Members and 1 Guest are viewing this topic.
2,662 views
broken avatar :(
×
broken avatar :(
Location: be
Date Registered: 17 August 2013
Last active: 3 years ago
Posts
369
Respect
Forum Rank
Perk Hacker
Primary Group
Community Scripter
My Groups
More
My Contact & Social Links
More
Personal Quote
Web & Software Developer and Designer
Signature
"Deleted code is debugged code." - Jeff Sickel
"Mathematicians stand on each others' shoulders and computer scientists stand on each others' toes." - Richard Hamming
×
JR-Imagine's Groups
Community Scripter Has shown effort and knowledge in the area of scripting while being a part of the UGX-Mods community.
Quite a lot of people have been asking me how I did the elevator in Rise, so I decided to share the script. (Note: You'll need to figure out the Radiant part yourself, I currently do not have time to make a complete tutorial. I did however comment all entities in the script. You'll also have to add a call for the script in your mapname.gsc.)

Code Snippet
Plaintext
//================================================================================================
// Rise Elevator Script
// By JR-Imagine
//================================================================================================

#include maps\_utility;
#include common_scripts\utility;
#include maps\_zombiemode_utility;

init()
{
self.status = "bottom";
self.movestatus = "idle";

elev_panel_trig = getEnt("elev_panel_trig","targetname"); // Elevator Panel Trigger (trigger_use)
elev_panel_trig setHintString("Take the Elevator [Cost: 250]");
elev_panel_trig setCursorHint( "HINT_NOICON" );

thread elev_bottom_door();
thread elevator();
}

elev_bottom_door()
{
door = getEnt("elev_bottom_door_out","targetname"); // Elevator Door (script -> brushmodel)
elev_door = getEnt("elev_door","targetname"); // Outside door (bottom) (script -> brushmodel)

flag_wait("electricity_on");

door MoveZ (128, 3);
elev_door MoveZ (128, 3);
}

elevator()
{
interest_point = getEnt("interest","targetname"); // Point of Interest (script -> origin)

elev = getEnt("elev","targetname"); // Main Elevator (script -> brushmodel)
elev_panel = getEnt("elev_panel","targetname"); // Elevator Panel (scipt -> model)
elev_door = getEnt("elev_door","targetname"); // Elevator Door (script -> brushmodel)
elev_panel_trig = getEnt("elev_panel_trig","targetname"); // Elevator Panel Trigger (trigger_use)
door_bottom = getEnt("elev_bottom_door_out","targetname"); // Bottom Door (script -> brushmodel)
door_top = getEnt("elev_top_door_out","targetname"); // Top Door (script -> brushmodel)
elev_nojump = getEnt("elevator_nojump","targetname"); // No Jump Area (trigger_multiple)

elev_panel enablelinkto();
elev_panel linkto (elev);
elev_panel_trig enablelinkto();
elev_panel_trig linkto (elev);
elev_nojump enablelinkto();
elev_nojump linkto (elev);

player = undefined;
elev_panel_trig waittill("trigger", player);

if(player.score > 249 && !(self.movestatus == "moving") && !(self.status == "cooldown"))
{
player maps\_zombiemode_score::minus_to_player_score(250);
player playsound("steam_effect");
if(self.status == "bottom")
{
interest_point create_zombie_point_of_interest( 1536, 96, 10000, true );

thread movestatus();

door_bottom MoveZ (-128, 3);
elev_door MoveZ (-128, 3);
wait 3.5;

players = getplayers();
for(i=0;i<players.size;i++)
{
if(players[i] isTouching(elev_nojump))
{
players[i] AllowJump(false);
wait 0.5;
}
}

elev MoveZ (640, 5);
elev_door MoveZ (640, 5);
wait 5.5;

for(i=0;i<players.size;i++)
{
if(players[i] isTouching(elev_nojump))
{
players[i] AllowJump(true);
wait 0.5;
}
}

door_top MoveZ (128, 3);
elev_door MoveZ (128, 3);
wait 3.5;

interest_point create_zombie_point_of_interest( 0, 0, 0, true );

thread elev_cooldown();
}
else
{
interest_point create_zombie_point_of_interest( 1536, 96, 10000, true );

thread movestatus();

door_top MoveZ (-128, 3);
elev_door MoveZ (-128, 3);
wait 3.5;

players = getplayers();
for(i=0;i<players.size;i++)
{
if(players[i] isTouching(elev_nojump))
{
players[i] AllowJump(false);
wait 0.5;
}
}

elev MoveZ (-640, 5);
elev_door MoveZ (-640, 5);
wait 5.5;

for(i=0;i<players.size;i++)
{
if(players[i] isTouching(elev_nojump))
{
players[i] AllowJump(true);
wait 0.5;
}
}

door_bottom MoveZ (128, 3);
elev_door MoveZ (128, 3);
wait 3.5;

interest_point create_zombie_point_of_interest( 0, 0, 0, true );

thread elev_cooldown();
}
}
thread elevator();
}

elev_cooldown()
{
elev_panel_trig = getEnt("elev_panel_trig","targetname");

if(self.status == "bottom")
{
self.status = "cooldown";
elev_panel_trig setHintString("Elevator is Cooling Down");

wait 20;
self.status = "top";
self.movestatus = "idle";
elev_panel_trig setHintString("Take the Elevator [Cost: 250]");
}
else
{
self.status = "cooldown";
elev_panel_trig setHintString("Elevator is Cooling Down");

wait 20;
self.status = "bottom";
self.movestatus = "idle";
elev_panel_trig setHintString("Take the Elevator [Cost: 250]");
}
}

movestatus()
{
elev_panel_trig = getEnt("elev_panel_trig","targetname");

self.movestatus = "moving";

elev_panel_trig setHintString("Elevator is Moving");
}
Last Edit: November 28, 2013, 05:06:42 pm by JR-Imagine

 
Loading ...