This is an experimental construct concept using Lua. Basically, it allows more building space by expanding vertically rather than horizontally in the most efficient way possible - elevators. This map was built as a tech demo and proof of concept.
[img]http://img520.imageshack.us/img520/7741/gmelevatestcar.jpg[/img]
[img]http://img197.imageshack.us/img197/8431/gmelevatestfreighthall.jpg[/img]
[img]http://img197.imageshack.us/img197/9739/gmelevatestfreighttop.jpg[/img]
[img]http://img197.imageshack.us/img197/6517/gmelevatestlobby.jpg[/img]
[img]http://img193.imageshack.us/img193/7942/gmelevatestshaft.jpg[/img]
[url=http://img189.imageshack.us/img189/7673/gmelevatestbuild.jpg]Misc 1[/url]
[url=http://img33.imageshack.us/img33/822/gmelevatestvoid.jpg]Misc 2[/url]
[url=http://www.garrysmod.org/downloads/?a=view&id=74367][img]http://www.garrysmod.org/img/?t=dll&id=74367[/img][/url]
[b]Features[/b]:
-Control panels with fast cursor computation algorithm from LuaChip
-2 passenger elevators that respond to the same set of calls
-1 freight elevator for moving of contraptions
-9 floors with lobbies and "air" locks
-1 control room/office
-Script supports at least 83 floors per elevator
[b]Heresys[/b]:
-Lighting without apparent light sources
-gm_construct textures
-Flat displacements
-Bland architecture
-Default freight lift placement results in bad shadows
[b]Notes[/b]:
-The SENTs transmit data as efficiently as possible with custom data streams. The scripts are optimized for very little garbage collection. For the layman: it doesn't lag.
-The passenger elevators are set to a very high speed (400), and because of GMod's broken clientside prediction, you may appear to be riding on the top of the car when you're actually on the floor. You can still jump - you're view is just wrong. If you don't like this, reduce the speed to 200 or so.
-Supports elevators with more than one set of doors (Doors can open independently of each other)
[b]Please steal my work![/b] You have permission to use all or part of this release in your own map. In fact, this is [i]the only reason I made this map[/i].
For those of you who haven't figured it out yet, I'm talking about stealing the elevators.
I don't get this.
What is the experiment in this, if you want more build space why not just have a bigger room?
Really horrible texture work, but I guess it could be useful if people need an elevator.
Just I wouldn't encourage people to use this, because it doesn't look good, and they'll get shouted at.
Am I the only one that likes a little security when building? ...but I guess you're right. The applications for a platform that can move between several different vertical levels on demand and in queue are limited, if not, non-existential.
Are we still talking about the concept, or the quick-job tech demo map?
Sorry, I should clarify:
Concept = multi-floor elevator with minimal entity placement and setup
Refocus, here is the FGD:
[code]
//elevator sent data
//Night-Eagle aka HDIEagle 2009.07.28
//revision 0
@include "base.fgd"
@SolidClass base(Targetname, Origin) = func_lua_elevator :
"Script-controlled elevator " +
"Holds an ID"
[
lua_elevatorid(integer) : "Elevator ID" : 0 : "Unique ID for the elevator."
output OnDoors1Close(void) : "Fires when door set 1 should be closed. Doors should forcibly close in 1 second."
output OnDoors1Open(void): "Fires when door set 1 should be opened."
output OnDoors2Close(void) : "Fires when door set 2 should be closed."
output OnDoors2Open(void): "Fires when door set 2 should be opened."
output OnDoors3Close(void) : "Fires when door set 3 should be closed."
output OnDoors3Open(void): "Fires when door set 3 should be opened."
output OnDoors4Close(void) : "Fires when door set 4 should be closed. For more door sets, manually enter the number."
output OnDoors4Open(void): "Fires when door set 4 should be opened. For more door sets, manually enter the number."
]
@PointClass = info_lua_elevator_node :
"Script-controlled elevator " +
"Position for linear elevator"
[
lua_elevatorid(integer) : "Elevator ID" : 0 : "Unique ID for the elevator that this node applies to."
lua_elevatornodeid(integer) : "Node ID" : 0 : "ID for this floor level. This number can be shared with other elevators for elevator systems."
lua_elevatornodename(string) : "Node Name" : "1" : "Floor display name. 2 characters. Space will be appended to front if one. Alphanumeric only."
lua_elevatordoors(string) : "Elevator doors" : "1" : "Comma delimited list of door sets that should be opened/closed for this floor. Example: '1,3' (without quotes) will make OnDoors1Open and OnDoors3Open trigger when an elevator stops at this floor."
output OnDoorsClose(void) : "Fires when this floor's doors should be closed"
output OnDoorsOpen(void): "Fires when this floor's doors should be opened"
]
@PointClass = info_lua_elevator :
"Script-controlled elevator controller"
[
lua_elevatorid(integer) : "Elevator ID" : 0 : "Unique ID for the elevator that this controller applies to."
lua_elevatorsystemid(string) : "Elevator System ID" : "lobby" : "Unique ID for the elevator system that this controller belongs to. Used for call groups for more efficient handling of passengers."
elevator(string) : "Elevator Targetname" : "" : "func_tracktrain"
dooropentime(integer) : "Door Open Time" : 4 : "Time the elevator will stay open after being called/landing. -1 for until just before the elevator moves."
stopwaittime(integer) : "Stop Wait Time" : -1 : "Minimum time the elevator will spend waiting at a floor. (For use with Door Open Time -1) -1 for the same as Door Open Time. If Door Open Time is also -1, this will default to 4."
output OnDoors1Close(void) : "Fires when door set 1 should be closed. Doors should forcibly close in 1 second."
output OnDoors1Open(void): "Fires when door set 1 should be opened."
output OnDoors2Close(void) : "Fires when door set 2 should be closed."
output OnDoors2Open(void): "Fires when door set 2 should be opened."
output OnDoors3Close(void) : "Fires when door set 3 should be closed."
output OnDoors3Open(void): "Fires when door set 3 should be opened."
output OnDoors4Close(void) : "Fires when door set 4 should be closed. For more door sets, manually enter the number."
output OnDoors4Open(void): "Fires when door set 4 should be opened. For more door sets, manually enter the number."
]
@PointClass base(Angles) iconsprite("editor/info_target.vmt") = info_lua_elevator_call :
"Script-controlled elevator call buttons " +
"External directional call buttons"
[
lua_elevatorsystemid(string) : "Elevator System ID" : "lobby" : "ID for the elevator system that this call button will work for."
lua_elevatornodeid(integer) : "Node ID" : 0 : "ID for this floor level. Same as the elevator nodes it applies to."
x(integer) : "Display X" : 8 :"Width of the display. (Traveling right from this point) (1 line per 4 inches)"
y(integer) : "Display Y" : 16 : "Height of the display. (Traveling down from this point) (3 lines per 4 inches)"
drawdistance(integer) : "Draw Distance" : 256 : "Distance player has to be from panel before it draws. (Inches) (Maximum value: 32767)"
]
@PointClass base(Angles,Parentname) iconsprite("editor/info_target.vmt") = info_lua_elevator_panel :
"Script-controlled elevator panel " +
"In-car floor-selection panel"
[
lua_elevatorid(integer) : "Elevator ID" : 0 : "Unique ID for the elevator that this node applies to. Make sure to parent the panel to the elevator if you want it to move."
x(integer) : "Display X" : 8 :"Width of the display. (Traveling right from this point)"
y(integer) : "Display Y" : 16 : "Height of the display. (Traveling up from this point)"
drawdistance(integer) : "Draw Distance" : 256 : "Distance player has to be from panel before it draws. (Inches) (Maximum value: 32767)"
]
@PointClass base(Angles,Parentname) iconsprite("editor/info_target.vmt") = info_lua_elevator_loadlight :
"Script-controlled elevator loading lights " +
"Displays which way the elevator is going to move after the doors open " +
"Should be placed on sides of entryway in elevator car"
[
lua_elevatorid(integer) : "Elevator ID" : 0 : "Unique ID for the elevator that this node applies to. Make sure to parent the panel to the elevator if you want it to move."
x(integer) : "Display X" : 8 :"Width of the display. (Traveling right from this point)"
y(integer) : "Display Y" : 8 : "Height of the display. (Traveling up from this point)"
drawdistance(integer) : "Draw Distance" : 1024 : "Distance player has to be from panel before it draws. (Inches) (Maximum value: 32767)"
]
@PointClass base(Angles,Parentname) iconsprite("editor/info_target.vmt") = info_lua_elevator_status :
"Script-controlled elevator status display " +
"Displays which way the elevator is going and which floor it is currently on"
[
lua_elevatorid(integer) : "Elevator ID" : 0 : "Unique ID for the elevator that this node applies to. Make sure to parent the panel to the elevator if you want it to move."
x(integer) : "Display X" : 16 :"Width of the display. (Traveling right from this point)"
y(integer) : "Display Y" : 8 : "Height of the display. (Traveling up from this point)"
drawdistance(integer) : "Draw Distance" : 2048 : "Distance player has to be from panel before it draws. (Inches) (Maximum value: 32767)"
]
@PointClass base(Angles,Parentname) iconsprite("editor/info_target.vmt") = info_lua_elevator_monitor :
"Script-controlled elevator monitor " +
"Displays statistics for two elevators. Mostly for show. Both elevators required."
[
lua_elevatorid1(integer) : "Elevator ID 1" : 0 : "Unique ID for monitoring elevator 1."
lua_elevatorid2(integer) : "Elevator ID 2" : 0 : "Unique ID for monitoring elevator 2."
x(integer) : "Display X" : 16 :"Width of the display. (Traveling right from this point)"
y(integer) : "Display Y" : 16 : "Height of the display. (Traveling up from this point)"
drawdistance(integer) : "Draw Distance" : 2048 : "Distance player has to be from panel before it draws. (Inches) (Maximum value: 32767)"
]
[/code]
Great work.
I've made a multi-floor elevator, but queueing is a godsend.
Is there a download file?
[highlight](User was banned for this post ("Bump / Missed the OP" - Terrenteller))[/highlight]
Garrysmod.org is no good for downloading. Night-Eagle do you have another website to download GM_elevatest?
Sorry, you need to Log In to post a reply to this thread.