AshuraDX Posted December 31, 2020 Posted December 31, 2020 5 minutes ago, fullkevlar said: Nice, thank you! Any chance you could point me towards a walkthrough on how to make my own Roff? Or is it already in the file? I'm not at my computer, and also haven't slept - had a pipe burst last night, and I'm still dealing with the aftermath. Happy New Year? My mapping Toolkit for 3ds max, Q3ME, includes a roff exporter. I was planning on walking someone through using it on stream and make that stream available on Youtube, then release the current version of Q3ME (which is long overdue). @mjtcould guide you through the process in blender. Oh dear, that's some bad luck. Hope you get it fixed soon! Happy new year to you too, let's hope that burst pipe is 2020's last swipe your way OCD2 and ChalklYne like this
OCD2 Posted December 31, 2020 Author Posted December 31, 2020 8 hours ago, AshuraDX said: My mapping Toolkit for 3ds max, Q3ME, includes a roff exporter. I was planning on walking someone through using it on stream and make that stream available on Youtube, then release the current version of Q3ME (which is long overdue). @mjtcould guide you through the process in blender. Oh dear, that's some bad luck. Hope you get it fixed soon! Happy new year to you too, let's hope that burst pipe is 2020's last swipe your way Ah, that would be helpful! It was some really interesting luck to come down in the middle of the night and find the bathroom flooded and spraying water, and the basement filled as well. Plus my antique workshop is down there, so a few things took a hit. But oh well, 2020s just about done. lol I just tested the Roff you were kind enough to make: I call this film DUI - Din "thissss spotss guud enufffff, hic" https://jkhub.org/images/CkHu2Xr.mp4 Afterward I realized that I did move the starting ref tag origin yesterday (and added one additional), when I was trying to smooth out the animation myself, so I borked your Roff! I tried reseting the origins to what I sent you yesterday, but it did not fix it, just made it not spawn. But I do see how the animations are much smoother and fluid, it will be nice to learn that skill for this and future projects.
OCD2 Posted December 31, 2020 Author Posted December 31, 2020 Little bits of progress today, in-between unnatural home disasters. Shaped the RC, and gave it two quickie textures to give it some, well, texture! The shape is right, just need some new and better textures and it will look good (enough lol). Minor optimizing and building out of the correctional transport ship. https://jkhub.org/images/0ecETKO.mp4 Would be even better if I did not bork up the Roff file I was generously provided lol. HUM-3154 likes this
OCD2 Posted January 1, 2021 Author Posted January 1, 2021 Significantly remodeled Crest(+textures), modified Correctional ship, and more work on scripted landing. (non-Roff for the moment) And some more textures, improved brushwork and some changes to the correctional transports gun batteries based off source material. Done for the day, but far from done. bigphil2695 and ZelZel like this
Lazarus Posted January 1, 2021 Posted January 1, 2021 On 12/31/2020 at 2:39 PM, fullkevlar said: Nice, thank you! Any chance you could point me towards a walkthrough on how to make my own Roff? Or is it already in or able to be worked out by looking at the file? I'm not at my computer, and also haven't slept - had a pipe burst last night, and I'm still dealing with the aftermath. Happy New Year? I would be interested in such thing as well. I cant find any good tutorials on making roff files. Would also be an asset to JKHUB in common OCD2 likes this
AshuraDX Posted January 2, 2021 Posted January 2, 2021 @fullkevlar would you like me to update the roff to match the new positions or would you prefer having me send you a new file with just the start and end points in it? As long as the difference between those two points match what's in the roff, it's all gonna be fine and matching. OCD2 likes this
OCD2 Posted January 2, 2021 Author Posted January 2, 2021 5 hours ago, AshuraDX said: @fullkevlar would you like me to update the roff to match the new positions or would you prefer having me send you a new file with just the start and end points in it? As long as the difference between those two points match what's in the roff, it's all gonna be fine and matching. Hmm, I'll have to check, I added ref tags and in general changed a lot afterward, not knowing/thinking it would matter. Do you need all of the new ref tags origins, or strictly the starting point of the origin brush of the mover and the last ref tag? Edit: Sent you all of the coordinates, if you could update the roff that would be amazing. Or just the start and end points? I'm unclear as to the process, so whichever is easiest for you. PS What program do you use to actually view the ROFF files? Extra PS: If I added an fx_runner, would it need its own ROFF? I tried to add one to the brushwork and found thats not possible. Just looking to have a puff of steam or smoke come out near the nose of the ship right before it docks. (like the source)
OCD2 Posted January 2, 2021 Author Posted January 2, 2021 More work today on my mini practical model Razor Crest I plan on using the mini Razor Crest in more of my mods, for intro movies and etc, so it will be receiving "model" (brushwork) and texture upgrades over time. All of the riveting and panel lines are really extensive, that will take a bit to texture nicely. Did I mention the ship is only 110 x 76 "map" units? Eventually I will add things like working animated side and cargo doors, and landing gears. As well as a partially textured interior. But im liking it already in its plain early stages: My little RC certainly still needs work, but its far closer to the source material than the prison transport; which unfortunately the transport does not have a lot of clear appearances on camera The couple of times its featured, there are discrepancies in its depiction. Missing parts in different scenes, 2/3 holographic maps shown in the episode that are all different...... Its going to take some time to get the lines right. Edit:. After watching the episode for the umpteenth time while exercising, I spotted and took some screenshots of clear angles of the prison ship! Its even wired framed lol, so the shapes are clear. Will definitely expedite the process. Also did some good optimizing, alteration and reworking on the actual playable map today- I've been busy! bigphil2695 likes this
OCD2 Posted January 3, 2021 Author Posted January 3, 2021 Little bit of a ship shape. Head of ship given first pass on shape, gun batteries built to match source, side protrusions (radar?) shaped, engine attachment piece and some early placeholder textures. mjt and DarthValeria like this
ZanderNao Posted January 29, 2021 Posted January 29, 2021 The waiting room lobby thing is such a masterful extra gift, pushing the whole project well past the normal run of the mill map. Wonderful work! DarthValeria and OCD2 like this
OCD2 Posted January 30, 2021 Author Posted January 30, 2021 Just as an update to let anyone who watched this thread, know that it looks like I will not make the contest deadline in time. Had some personal setbacks in a home disaster that occured on New Years eve which ruined part of the house and some of my things, and temporarily shut down my workshop. Ive been extremely busy dealing with the aftermath since! I intended to at least push out a "beta" version of the map for the contest, though nearly all of my waking hours have been dedicated to restoring the house and my workshop etc. I do plan to follow through with the project, when time allows. I have a ton of ideas for the map, things I think people will appreciate. I have a lot of photos, diagrams and notes ready for when I am able to take up the project again at a quicker and more focused pace. Thank you to everyone who has been guiding and helping me along the way, and will probably be helping me again in the future! Just to show a bit of the minor progress I made during my disaster: Remade and optimized the entry point ladder for the attackers to be closer to the source material. Added a access hole above the ladder and a small "Razor Crest room" (its a placeholder grey textured room currently). Still need to make the ladder "scalable". Fiddled around with the alarm system functionality. An iteration of the connecting corridors that will lead to the other sub-sections of the map. The connective areas are not shown in the episode, so there is going to be some creative interpretation to achieve symmetry with the rest of the map. I think this half-wall and beam structure that I made fits well already, though needs some refinement (last 3 pictures show the area). DarthValeria, ZelZel, Noodle and 3 others like this
OCD2 Posted February 1, 2021 Author Posted February 1, 2021 Doughnuts outstanding Din Djarin model has really inspired me, having the proper model is starting to add immersion to the map. Its starting to feel like youre playing scenes straight from the episode. mjt, DarthValeria and Jolly like this
OCD2 Posted February 1, 2021 Author Posted February 1, 2021 To show a bit of the tentative plan for the map, here is a rough sketch of the layout. The Purple Circle indicates the attackers starting point, and end point to escort the NPC prisoner for a win. The Gold Circle indicates the defenders tentative starting point. The RED Star is the 1st obj, entering the control room. The BLUE Star is the 2nd obj, the NPC prisoners cell location. The Correctional Transport has a large spline ridge across the top centerline, which im going to use creative license to adapt to be an in-ceiling maintenance shaft for gameplay enhancement purposes. The episode shows Din Djarin ambush Burg the Davarionian in the control room, from an in-ceiling grate - the maintenance shaft will be the way to access that location, and a way for the attackers to flank and breach the control room (1st obj). The Blue Line represents the upper level maintenance shaft, and the Green Circles indicate ladder access points to enter the maintenance shaft. The Red Lines indicate doors that will be included to divide the map into sections and help with portal-ing and VIS. The Orange Lines indicate extra unlockable flank corridors, to help attackers breach the control room. Its a relatively straight forward layout that reflects the source material closely, but has a number of possible routes to keep players moving and flanking. With inclusion of the security system that will drops doors on player detection, im hoping there is never be a single choke that dominates the map, and each play through can potentially feel dynamic and new/different. Lazarus and DarthValeria like this
OCD2 Posted February 3, 2021 Author Posted February 3, 2021 Small reprieve from rebuilding the house today! So gtkradiant is open and forward progress continues on the project! Someone recently mentioned interest in making the Type 1 security droid, the ultimate companion piece for this map, and got me excited. I already spent hours yesterday fighting with Doughnuts amazing Din Djarin NPC around the map and it was a blast. Completing the map and its set pieces, as well as having the main antagonist droid model would really push the project to the next level. Already began the process of further building out the connective joints this morning. The project will see the light of day eventually! DarthValeria likes this
OCD2 Posted February 3, 2021 Author Posted February 3, 2021 Early connective corridor build. At the end of the main hallways, this type of C shaped connector will be applied to connect the subsections of the map. This area being shown is near the attackers starting point, and an alternative route to the maintenance shaft that will lead to the area above the control room via ladder access. Its a risk/reward area - it will lead directly to the 1st objective, though there is little to no cover available along the path. It does require some backtracking to access, so its not quite a perfect navigation choice. If an enemy makes it to the secondary ladder access point and enters the shaft, they will have a clear line of fire to anyone in still the shaft. The area is incomplete/bland currently, and my intention is to decorate/spruce up the corridor with decorative/inaccessable doors to either the engine bay or a droid bivouac station. Progress! DarthValeria, bigphil2695 and NumberWan like this
OCD2 Posted February 4, 2021 Author Posted February 4, 2021 Some surprise downtime today, so I optimized and simplified the connecting corridors, and did some work in the access shaft area. With the exception of the corner room "light panel" position, I feel the connecting areas are clean and uniform to the rest of the level, all while including an easy to areaportal doorway. The rest of the map can be propagated soon, and that should go fairly quickly as it is a lot of mirroring with minor alterations. The biggest piece left is to build the control room to scale. I have some diagrams and photos, just need to do the math, and then build it out. AshuraDX, ZelZel and yeyo JK like this
OCD2 Posted February 6, 2021 Author Posted February 6, 2021 Had some time to work on the connective corridors further today. Here is the current approach- the ceiling is simplified to be almost mirrored from the floor. I think something practical looking makes sense for a military/industrial utility type spaceship interior. Still needs better textures of course, keep in mind that these are still just quick mock up textures. yeyo JK and ZelZel like this
OCD2 Posted February 8, 2021 Author Posted February 8, 2021 Decided to prioritize working on the existing area before building out the map further. Some things need to be optimized, some need to be rebuilt - its best if the beginning area is further streamlined before mirroring out the rest of the map sections and having to rebuild/optimize each area individually. One aspect that I worked on today, was the attackers entrance ladder area. I realigned the "razor crest room" to the proper orientation, and resized it to approximate scale. Plan to have it as a bonus area, not essential to the map, but for completion/immersion. (And eventually single player) The Razor Crest area will likely consist strictly of the cargo hold interior where they enter into the transport. Perhaps over time it will include the cockpit and etc. I also retextured the ladder entrance ceiling, which in the episode I found was the same as the floor material. Another thing I tried adding today was a way to scale the ladder, to what will eventually be a modelled interior of the razor crest. I tried using a trigger_push, for the first time. This is how it worked out so far: The effect is not what I expected; currently any time youre in the trigger_push, it constantly keeps you suspended up to the ceiling where you stay! You never come down unless you hold control and slowly edge out of the area. What I want to occur, is have the player be able to trigger the push up to scale the ladder if and when they want. So far I have a trigger_push, with the keys speed 100, wait 3, multiple and linear checked in the entity entry - and its linked to a target position. I suspect it requires a trigger multiple attached to a target activate attached to the trigger_push? Any input on how to make that work as intended would be appreciated! Also, the bevels around the hole may be the barrier to being able to enter the ship. I discussed how to make them not solid with someone months back, though before I was able to implement the idea I was derailed by a life event that postponed my project and I've subsequently forgot how to make the bevels non solid! The other aspect I worked on today was the shape, size and position of the prison cell door frames. Incomplete but where I left off in the remake. BEFORE: After: Any input on how to address the trigger_push issue would be very much appreciated!
OCD2 Posted February 9, 2021 Author Posted February 9, 2021 Tried to make the beveled area passable, by overlaying caulk non solid pieces over the bevels and cylinder that connect the laddered areas. No success. Now the character will float up the the ceiling and drop down slowly, and then re-jump to the ceiling repeatedly. I believe its keeping with the wait 3 timing now. But still not a large enough or maybe not properly "non-solid" yet for a player model to go through. Im now recalling someone telling me that if I add inverted patch meshes overlaid stop the textured side that the model should pass through - will try that next time I work on the project. Tried smoothing some brush edges through a shader, limited success lol, will need to try more another day. Recessed the cell doors further, which gave them a nice depth, and bringing them closer to the source. bigphil2695 and ZelZel like this
mjt Posted February 9, 2021 Posted February 9, 2021 Do you currently try out your map in SP only? AFAIK there is a ladder surfaceflag inherited from SOF2 / EliteForce prior to when Raven did JK2 and JKA - as q3map2 parses the headers one after the other if I'm not mistaken, it should still be possible to put this surface flag into a map - based on a shader keyword. How the engine reacts to it is another thing altogether. You can make a lift trigger brush close to only the ladder - instead of being a volume, the bounding box of the player would only need to touch it. And you can specify direction based on wheter the player comes from below or above by setting the trigger push inactive for the desired direction based on a separate trigger. I'll try to make a little sample for it and push it here.
OCD2 Posted February 9, 2021 Author Posted February 9, 2021 30 minutes ago, mjt said: Do you currently try out your map in SP only? AFAIK there is a ladder surfaceflag inherited from SOF2 / EliteForce prior to when Raven did JK2 and JKA - as q3map2 parses the headers one after the other if I'm not mistaken, it should still be possible to put this surface flag into a map - based on a shader keyword. How the engine reacts to it is another thing altogether. You can make a lift trigger brush close to only the ladder - instead of being a volume, the bounding box of the player would only need to touch it. And you can specify direction based on wheter the player comes from below or above by setting the trigger push inactive for the desired direction based on a separate trigger. I'll try to make a little sample for it and push it here. Currently I test in MP - the first iteration of the map will be MP, afterwards im hoping to convert it to SP. I believe I understood what you were explaining, though im not certain how to implement that exactly. I look forward to your sample, and appreciate your time and effort to help! (im not sure what a lift trigger is though, ill have to investigate)
mjt Posted February 9, 2021 Posted February 9, 2021 Sadly there is no lift trigger and the ladder texture in system/ladder is not implemented correctly or at all. Crashes SP, does nothing in MP. Spoiler // entity 0 { "classname" "worldspawn" "gridsize" "32 32 32" "_keeplights" "1" "_ls" "0.0625" "_rs" "1" "_cs" "1" // brush 0 { brushDef { ( 16 0 192 ) ( 16 -32 192 ) ( -16 0 192 ) ( ( 0.015625 0 -0 ) ( -0 0.015625 0 ) ) system/clip 0 0 0 ( 16 8 128 ) ( -16 8 128 ) ( 16 8 0 ) ( ( 0.015625 0 -0 ) ( -0 0.015625 0 ) ) system/clip 0 0 0 ( 24 0 128 ) ( 24 0 0 ) ( 24 -32 128 ) ( ( 0.015625 0 -0 ) ( -0 0.015625 0 ) ) system/clip 0 0 0 ( -16 -32 0 ) ( 16 -32 0 ) ( -16 0 0 ) ( ( 0.015625 0 -0 ) ( -0 0.015625 0 ) ) system/clip 0 0 0 ( -16 0 0 ) ( -16 0 128 ) ( 16 0 0 ) ( ( 0.015625 0 -0 ) ( -0 0.015625 0 ) ) system/clip 0 0 0 ( -24 -32 0 ) ( -24 0 0 ) ( -24 -32 128 ) ( ( 0.015625 0 -0 ) ( -0 0.015625 0 ) ) system/clip 0 0 0 } } // brush 1 { brushDef { ( -128 64 448 ) ( 128 -128 448 ) ( 128 64 448 ) ( ( 0.25 0 0 ) ( 0 0.25 0 ) ) colors/gray 0 0 0 ( 128 64 480 ) ( 128 -128 480 ) ( -128 64 480 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) system/caulk 0 0 0 ( -128 -128 448 ) ( -128 64 448 ) ( -160 -160 480 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0.4748736918 ) ) system/caulk 0 0 0 ( 128 64 448 ) ( 128 -128 448 ) ( 160 -160 480 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0.4748736918 ) ) system/caulk 0 0 0 ( -160 -160 480 ) ( 160 -160 480 ) ( 128 -128 448 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0.4748736918 ) ) system/caulk 0 0 0 ( 160 96 480 ) ( -160 96 480 ) ( -128 64 448 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0.4748736918 ) ) system/caulk 0 0 0 } } // brush 2 { brushDef { ( 128 64 224 ) ( -128 64 352 ) ( 128 64 352 ) ( ( 0.25 0 -0 ) ( -0 0.25 0 ) ) colors/gray 0 0 0 ( 128 96 128 ) ( -128 96 128 ) ( 128 96 0 ) ( ( 0.015625 0 -0 ) ( -0 0.015625 0 ) ) system/caulk 0 0 0 ( -128 64 0 ) ( 128 64 0 ) ( -160 96 -32 ) ( ( 0.015625 0 -0 ) ( -0 0.015625 0 ) ) system/caulk 0 0 0 ( 128 64 0 ) ( 128 64 224 ) ( 160 96 -32 ) ( ( 0.015625 0 -0 ) ( -0 0.015625 0 ) ) system/caulk 0 0 0 ( 128 64 448 ) ( -128 64 448 ) ( 160 96 480 ) ( ( 0.015625 0 -0 ) ( -0 0.015625 0 ) ) system/caulk 0 0 0 ( -128 64 224 ) ( -128 64 0 ) ( -160 96 -32 ) ( ( 0.015625 0 -0 ) ( -0 0.015625 0 ) ) system/caulk 0 0 0 } } // brush 3 { brushDef { ( 128 -128 128 ) ( 128 64 0 ) ( 128 64 128 ) ( ( 0.25 0 -0 ) ( -0 0.25 0 ) ) colors/gray 0 0 0 ( 160 64 128 ) ( 160 64 0 ) ( 160 -128 128 ) ( ( 0.015625 0 -0 ) ( -0 0.015625 0 ) ) system/caulk 0 0 0 ( 128 64 224 ) ( 128 64 0 ) ( 160 96 256 ) ( ( 0.015625 0 -0 ) ( -0 0.015625 0 ) ) system/caulk 0 0 0 ( 128 64 0 ) ( 128 -128 0 ) ( 160 96 -32 ) ( ( 0.015625 0 -0 ) ( -0 0.015625 0 ) ) system/caulk 0 0 0 ( 128 -128 0 ) ( 128 -128 224 ) ( 160 -160 -32 ) ( ( 0.015625 0 -0 ) ( -0 0.015625 0 ) ) system/caulk 0 0 0 ( 128 -128 448 ) ( 128 64 448 ) ( 160 96 480 ) ( ( 0.015625 0 -0 ) ( -0 0.015625 0 ) ) system/caulk 0 0 0 } } // brush 4 { brushDef { ( -128 64 0 ) ( 128 -128 0 ) ( -128 -128 0 ) ( ( 0.25 0 -0 ) ( -0 0.25 0 ) ) colors/gray 0 0 0 ( -128 -128 -32 ) ( 128 -128 -32 ) ( -128 64 -32 ) ( ( 0.015625 0 -0 ) ( -0 0.015625 0 ) ) system/caulk 0 0 0 ( 128 64 0 ) ( -128 64 0 ) ( 160 96 -32 ) ( ( 0.015625 0 -0 ) ( -0 0.015625 0 ) ) system/caulk 0 0 0 ( -128 -128 0 ) ( 128 -128 0 ) ( 160 -160 -32 ) ( ( 0.015625 0 -0 ) ( -0 0.015625 0 ) ) system/caulk 0 0 0 ( 160 96 -32 ) ( 160 -160 -32 ) ( 128 -128 0 ) ( ( 0.015625 0 -0 ) ( -0 0.015625 0 ) ) system/caulk 0 0 0 ( -160 -160 -32 ) ( -160 96 -32 ) ( -128 64 0 ) ( ( 0.015625 0 -0 ) ( -0 0.015625 0 ) ) system/caulk 0 0 0 } } // brush 5 { brushDef { ( 128 -128 224 ) ( -128 -128 352 ) ( -128 -128 224 ) ( ( 0.25 0 -0 ) ( -0 0.25 0 ) ) colors/gray 0 0 0 ( -128 -160 0 ) ( -128 -160 128 ) ( 128 -160 0 ) ( ( 0.015625 0 -0 ) ( -0 0.015625 0 ) ) system/caulk 0 0 0 ( 128 -128 0 ) ( -128 -128 0 ) ( 160 -160 -32 ) ( ( 0.015625 0 -0 ) ( -0 0.015625 0 ) ) system/caulk 0 0 0 ( -128 -128 0 ) ( -128 -128 224 ) ( -160 -160 -32 ) ( ( 0.015625 0 -0 ) ( -0 0.015625 0 ) ) system/caulk 0 0 0 ( -128 -128 448 ) ( 128 -128 448 ) ( -160 -160 480 ) ( ( 0.015625 0 -0 ) ( -0 0.015625 0 ) ) system/caulk 0 0 0 ( 128 -128 224 ) ( 128 -128 0 ) ( 160 -160 -32 ) ( ( 0.015625 0 -0 ) ( -0 0.015625 0 ) ) system/caulk 0 0 0 } } // brush 6 { brushDef { ( -128 -128 128 ) ( -128 64 0 ) ( -128 -128 0 ) ( ( 0.25 0 -0 ) ( -0 0.25 0 ) ) colors/gray 0 0 0 ( -160 -128 0 ) ( -160 64 0 ) ( -160 -128 128 ) ( ( 0.015625 0 -0 ) ( -0 0.015625 0 ) ) system/caulk 0 0 0 ( -128 -128 0 ) ( -128 64 0 ) ( -160 -160 -32 ) ( ( 0.015625 0 -0 ) ( -0 0.015625 0 ) ) system/caulk 0 0 0 ( -128 64 0 ) ( -128 64 224 ) ( -160 96 -32 ) ( ( 0.015625 0 -0 ) ( -0 0.015625 0 ) ) system/caulk 0 0 0 ( -128 64 448 ) ( -128 -128 448 ) ( -160 96 480 ) ( ( 0.015625 0 -0 ) ( -0 0.015625 0 ) ) system/caulk 0 0 0 ( -128 -128 224 ) ( -128 -128 0 ) ( -160 -160 -32 ) ( ( 0.015625 0 -0 ) ( -0 0.015625 0 ) ) system/caulk 0 0 0 } } // brush 7 { brushDef { ( 8 0 8 ) ( 8 -40 8 ) ( -40 0 8 ) ( ( 0.0625 0 -0 ) ( -0 0.0625 0 ) ) system/cushion 0 0 0 ( 24 0 112 ) ( -24 0 112 ) ( 24 0 104 ) ( ( 0.0625 0 -0 ) ( -0 0.0625 0 ) ) system/cushion 0 0 0 ( 24 0 112 ) ( 24 0 104 ) ( 24 -40 112 ) ( ( 0.0625 0 -0 ) ( -0 0.0625 0 ) ) system/cushion 0 0 0 ( -32 -40 0 ) ( 16 -40 0 ) ( -32 0 0 ) ( ( 0.0625 0 -0 ) ( -0 0.0625 0 ) ) system/cushion 0 0 0 ( -24 -40 104 ) ( -24 -40 112 ) ( 24 -40 104 ) ( ( 0.0625 0 -0 ) ( -0 0.0625 0 ) ) system/cushion 0 0 0 ( -24 -40 104 ) ( -24 0 104 ) ( -24 -40 112 ) ( ( 0.0625 0 -0 ) ( -0 0.0625 0 ) ) system/cushion 0 0 0 } } // brush 8 { patchDef2 { colors/red ( 9 3 0 0 0 ) ( ( ( 17 4 0 0 0 ) ( 17 4 96 0 -24 ) ( 17 4 192 0 -48 ) ) ( ( 17 1 0 0.5 0 ) ( 17 1 96 0.5 -24 ) ( 17 1 192 0.5 -48 ) ) ( ( 20 1 0 1 0 ) ( 20 1 96 1 -24 ) ( 20 1 192 1 -48 ) ) ( ( 23 1 0 1.5 0 ) ( 23 1 96 1.5 -24 ) ( 23 1 192 1.5 -48 ) ) ( ( 23 4 0 2 0 ) ( 23 4 96 2 -24 ) ( 23 4 192 2 -48 ) ) ( ( 23 7 0 2.5 0 ) ( 23 7 96 2.5 -24 ) ( 23 7 192 2.5 -48 ) ) ( ( 20 7 0 3 0 ) ( 20 7 96 3 -24 ) ( 20 7 192 3 -48 ) ) ( ( 17 7 0 3.5 0 ) ( 17 7 96 3.5 -24 ) ( 17 7 192 3.5 -48 ) ) ( ( 17 4 0 4 0 ) ( 17 4 96 4 -24 ) ( 17 4 192 4 -48 ) ) ) } } // brush 9 { patchDef2 { colors/red ( 9 3 0 0 0 ) ( ( ( -23 4 0 0 0 ) ( -23 4 96 0 -24 ) ( -23 4 192 0 -48 ) ) ( ( -23 1 0 0.5 0 ) ( -23 1 96 0.5 -24 ) ( -23 1 192 0.5 -48 ) ) ( ( -20 1 0 1 0 ) ( -20 1 96 1 -24 ) ( -20 1 192 1 -48 ) ) ( ( -17 1 0 1.5 0 ) ( -17 1 96 1.5 -24 ) ( -17 1 192 1.5 -48 ) ) ( ( -17 4 0 2 0 ) ( -17 4 96 2 -24 ) ( -17 4 192 2 -48 ) ) ( ( -17 7 0 2.5 0 ) ( -17 7 96 2.5 -24 ) ( -17 7 192 2.5 -48 ) ) ( ( -20 7 0 3 0 ) ( -20 7 96 3 -24 ) ( -20 7 192 3 -48 ) ) ( ( -23 7 0 3.5 0 ) ( -23 7 96 3.5 -24 ) ( -23 7 192 3.5 -48 ) ) ( ( -23 4 0 4 0 ) ( -23 4 96 4 -24 ) ( -23 4 192 4 -48 ) ) ) } } // brush 10 { patchDef2 { colors/red ( 9 3 0 0 0 ) ( ( ( -20 2 180 0 0 ) ( 0 2 180 0 -5 ) ( 20 2 180 0 -10 ) ) ( ( -20 2 178 0.5 0 ) ( 0 2 178 0.5 -5 ) ( 20 2 178 0.5 -10 ) ) ( ( -20 4 178 1 0 ) ( 0 4 178 1 -5 ) ( 20 4 178 1 -10 ) ) ( ( -20 6 178 1.5 0 ) ( 0 6 178 1.5 -5 ) ( 20 6 178 1.5 -10 ) ) ( ( -20 6 180 2 0 ) ( 0 6 180 2 -5 ) ( 20 6 180 2 -10 ) ) ( ( -20 6 182 2.5 0 ) ( 0 6 182 2.5 -5 ) ( 20 6 182 2.5 -10 ) ) ( ( -20 4 182 3 0 ) ( 0 4 182 3 -5 ) ( 20 4 182 3 -10 ) ) ( ( -20 2 182 3.5 0 ) ( 0 2 182 3.5 -5 ) ( 20 2 182 3.5 -10 ) ) ( ( -20 2 180 4 0 ) ( 0 2 180 4 -5 ) ( 20 2 180 4 -10 ) ) ) } } // brush 11 { patchDef2 { colors/red ( 9 3 0 0 0 ) ( ( ( -20 2 4 0 0 ) ( 0 2 4 0 -5 ) ( 20 2 4 0 -10 ) ) ( ( -20 2 2 0.5 0 ) ( 0 2 2 0.5 -5 ) ( 20 2 2 0.5 -10 ) ) ( ( -20 4 2 1 0 ) ( 0 4 2 1 -5 ) ( 20 4 2 1 -10 ) ) ( ( -20 6 2 1.5 0 ) ( 0 6 2 1.5 -5 ) ( 20 6 2 1.5 -10 ) ) ( ( -20 6 4 2 0 ) ( 0 6 4 2 -5 ) ( 20 6 4 2 -10 ) ) ( ( -20 6 6 2.5 0 ) ( 0 6 6 2.5 -5 ) ( 20 6 6 2.5 -10 ) ) ( ( -20 4 6 3 0 ) ( 0 4 6 3 -5 ) ( 20 4 6 3 -10 ) ) ( ( -20 2 6 3.5 0 ) ( 0 2 6 3.5 -5 ) ( 20 2 6 3.5 -10 ) ) ( ( -20 2 4 4 0 ) ( 0 2 4 4 -5 ) ( 20 2 4 4 -10 ) ) ) } } // brush 12 { patchDef2 { colors/red ( 9 3 0 0 0 ) ( ( ( -20 2 20 0 0 ) ( 0 2 20 0 -5 ) ( 20 2 20 0 -10 ) ) ( ( -20 2 18 0.5 0 ) ( 0 2 18 0.5 -5 ) ( 20 2 18 0.5 -10 ) ) ( ( -20 4 18 1 0 ) ( 0 4 18 1 -5 ) ( 20 4 18 1 -10 ) ) ( ( -20 6 18 1.5 0 ) ( 0 6 18 1.5 -5 ) ( 20 6 18 1.5 -10 ) ) ( ( -20 6 20 2 0 ) ( 0 6 20 2 -5 ) ( 20 6 20 2 -10 ) ) ( ( -20 6 22 2.5 0 ) ( 0 6 22 2.5 -5 ) ( 20 6 22 2.5 -10 ) ) ( ( -20 4 22 3 0 ) ( 0 4 22 3 -5 ) ( 20 4 22 3 -10 ) ) ( ( -20 2 22 3.5 0 ) ( 0 2 22 3.5 -5 ) ( 20 2 22 3.5 -10 ) ) ( ( -20 2 20 4 0 ) ( 0 2 20 4 -5 ) ( 20 2 20 4 -10 ) ) ) } } // brush 13 { patchDef2 { colors/red ( 9 3 0 0 0 ) ( ( ( -20 2 36 0 0 ) ( 0 2 36 0 -5 ) ( 20 2 36 0 -10 ) ) ( ( -20 2 34 0.5 0 ) ( 0 2 34 0.5 -5 ) ( 20 2 34 0.5 -10 ) ) ( ( -20 4 34 1 0 ) ( 0 4 34 1 -5 ) ( 20 4 34 1 -10 ) ) ( ( -20 6 34 1.5 0 ) ( 0 6 34 1.5 -5 ) ( 20 6 34 1.5 -10 ) ) ( ( -20 6 36 2 0 ) ( 0 6 36 2 -5 ) ( 20 6 36 2 -10 ) ) ( ( -20 6 38 2.5 0 ) ( 0 6 38 2.5 -5 ) ( 20 6 38 2.5 -10 ) ) ( ( -20 4 38 3 0 ) ( 0 4 38 3 -5 ) ( 20 4 38 3 -10 ) ) ( ( -20 2 38 3.5 0 ) ( 0 2 38 3.5 -5 ) ( 20 2 38 3.5 -10 ) ) ( ( -20 2 36 4 0 ) ( 0 2 36 4 -5 ) ( 20 2 36 4 -10 ) ) ) } } // brush 14 { patchDef2 { colors/red ( 9 3 0 0 0 ) ( ( ( -20 2 52 0 0 ) ( 0 2 52 0 -5 ) ( 20 2 52 0 -10 ) ) ( ( -20 2 50 0.5 0 ) ( 0 2 50 0.5 -5 ) ( 20 2 50 0.5 -10 ) ) ( ( -20 4 50 1 0 ) ( 0 4 50 1 -5 ) ( 20 4 50 1 -10 ) ) ( ( -20 6 50 1.5 0 ) ( 0 6 50 1.5 -5 ) ( 20 6 50 1.5 -10 ) ) ( ( -20 6 52 2 0 ) ( 0 6 52 2 -5 ) ( 20 6 52 2 -10 ) ) ( ( -20 6 54 2.5 0 ) ( 0 6 54 2.5 -5 ) ( 20 6 54 2.5 -10 ) ) ( ( -20 4 54 3 0 ) ( 0 4 54 3 -5 ) ( 20 4 54 3 -10 ) ) ( ( -20 2 54 3.5 0 ) ( 0 2 54 3.5 -5 ) ( 20 2 54 3.5 -10 ) ) ( ( -20 2 52 4 0 ) ( 0 2 52 4 -5 ) ( 20 2 52 4 -10 ) ) ) } } // brush 15 { patchDef2 { colors/red ( 9 3 0 0 0 ) ( ( ( -20 2 68 0 0 ) ( 0 2 68 0 -5 ) ( 20 2 68 0 -10 ) ) ( ( -20 2 66 0.5 0 ) ( 0 2 66 0.5 -5 ) ( 20 2 66 0.5 -10 ) ) ( ( -20 4 66 1 0 ) ( 0 4 66 1 -5 ) ( 20 4 66 1 -10 ) ) ( ( -20 6 66 1.5 0 ) ( 0 6 66 1.5 -5 ) ( 20 6 66 1.5 -10 ) ) ( ( -20 6 68 2 0 ) ( 0 6 68 2 -5 ) ( 20 6 68 2 -10 ) ) ( ( -20 6 70 2.5 0 ) ( 0 6 70 2.5 -5 ) ( 20 6 70 2.5 -10 ) ) ( ( -20 4 70 3 0 ) ( 0 4 70 3 -5 ) ( 20 4 70 3 -10 ) ) ( ( -20 2 70 3.5 0 ) ( 0 2 70 3.5 -5 ) ( 20 2 70 3.5 -10 ) ) ( ( -20 2 68 4 0 ) ( 0 2 68 4 -5 ) ( 20 2 68 4 -10 ) ) ) } } // brush 16 { patchDef2 { colors/red ( 9 3 0 0 0 ) ( ( ( -20 2 84 0 0 ) ( 0 2 84 0 -5 ) ( 20 2 84 0 -10 ) ) ( ( -20 2 82 0.5 0 ) ( 0 2 82 0.5 -5 ) ( 20 2 82 0.5 -10 ) ) ( ( -20 4 82 1 0 ) ( 0 4 82 1 -5 ) ( 20 4 82 1 -10 ) ) ( ( -20 6 82 1.5 0 ) ( 0 6 82 1.5 -5 ) ( 20 6 82 1.5 -10 ) ) ( ( -20 6 84 2 0 ) ( 0 6 84 2 -5 ) ( 20 6 84 2 -10 ) ) ( ( -20 6 86 2.5 0 ) ( 0 6 86 2.5 -5 ) ( 20 6 86 2.5 -10 ) ) ( ( -20 4 86 3 0 ) ( 0 4 86 3 -5 ) ( 20 4 86 3 -10 ) ) ( ( -20 2 86 3.5 0 ) ( 0 2 86 3.5 -5 ) ( 20 2 86 3.5 -10 ) ) ( ( -20 2 84 4 0 ) ( 0 2 84 4 -5 ) ( 20 2 84 4 -10 ) ) ) } } // brush 17 { patchDef2 { colors/red ( 9 3 0 0 0 ) ( ( ( -20 2 100 0 0 ) ( 0 2 100 0 -5 ) ( 20 2 100 0 -10 ) ) ( ( -20 2 98 0.5 0 ) ( 0 2 98 0.5 -5 ) ( 20 2 98 0.5 -10 ) ) ( ( -20 4 98 1 0 ) ( 0 4 98 1 -5 ) ( 20 4 98 1 -10 ) ) ( ( -20 6 98 1.5 0 ) ( 0 6 98 1.5 -5 ) ( 20 6 98 1.5 -10 ) ) ( ( -20 6 100 2 0 ) ( 0 6 100 2 -5 ) ( 20 6 100 2 -10 ) ) ( ( -20 6 102 2.5 0 ) ( 0 6 102 2.5 -5 ) ( 20 6 102 2.5 -10 ) ) ( ( -20 4 102 3 0 ) ( 0 4 102 3 -5 ) ( 20 4 102 3 -10 ) ) ( ( -20 2 102 3.5 0 ) ( 0 2 102 3.5 -5 ) ( 20 2 102 3.5 -10 ) ) ( ( -20 2 100 4 0 ) ( 0 2 100 4 -5 ) ( 20 2 100 4 -10 ) ) ) } } // brush 18 { patchDef2 { colors/red ( 9 3 0 0 0 ) ( ( ( -20 2 116 0 0 ) ( 0 2 116 0 -5 ) ( 20 2 116 0 -10 ) ) ( ( -20 2 114 0.5 0 ) ( 0 2 114 0.5 -5 ) ( 20 2 114 0.5 -10 ) ) ( ( -20 4 114 1 0 ) ( 0 4 114 1 -5 ) ( 20 4 114 1 -10 ) ) ( ( -20 6 114 1.5 0 ) ( 0 6 114 1.5 -5 ) ( 20 6 114 1.5 -10 ) ) ( ( -20 6 116 2 0 ) ( 0 6 116 2 -5 ) ( 20 6 116 2 -10 ) ) ( ( -20 6 118 2.5 0 ) ( 0 6 118 2.5 -5 ) ( 20 6 118 2.5 -10 ) ) ( ( -20 4 118 3 0 ) ( 0 4 118 3 -5 ) ( 20 4 118 3 -10 ) ) ( ( -20 2 118 3.5 0 ) ( 0 2 118 3.5 -5 ) ( 20 2 118 3.5 -10 ) ) ( ( -20 2 116 4 0 ) ( 0 2 116 4 -5 ) ( 20 2 116 4 -10 ) ) ) } } // brush 19 { patchDef2 { colors/red ( 9 3 0 0 0 ) ( ( ( -20 2 132 0 0 ) ( 0 2 132 0 -5 ) ( 20 2 132 0 -10 ) ) ( ( -20 2 130 0.5 0 ) ( 0 2 130 0.5 -5 ) ( 20 2 130 0.5 -10 ) ) ( ( -20 4 130 1 0 ) ( 0 4 130 1 -5 ) ( 20 4 130 1 -10 ) ) ( ( -20 6 130 1.5 0 ) ( 0 6 130 1.5 -5 ) ( 20 6 130 1.5 -10 ) ) ( ( -20 6 132 2 0 ) ( 0 6 132 2 -5 ) ( 20 6 132 2 -10 ) ) ( ( -20 6 134 2.5 0 ) ( 0 6 134 2.5 -5 ) ( 20 6 134 2.5 -10 ) ) ( ( -20 4 134 3 0 ) ( 0 4 134 3 -5 ) ( 20 4 134 3 -10 ) ) ( ( -20 2 134 3.5 0 ) ( 0 2 134 3.5 -5 ) ( 20 2 134 3.5 -10 ) ) ( ( -20 2 132 4 0 ) ( 0 2 132 4 -5 ) ( 20 2 132 4 -10 ) ) ) } } // brush 20 { patchDef2 { colors/red ( 9 3 0 0 0 ) ( ( ( -20 2 148 0 0 ) ( 0 2 148 0 -5 ) ( 20 2 148 0 -10 ) ) ( ( -20 2 146 0.5 0 ) ( 0 2 146 0.5 -5 ) ( 20 2 146 0.5 -10 ) ) ( ( -20 4 146 1 0 ) ( 0 4 146 1 -5 ) ( 20 4 146 1 -10 ) ) ( ( -20 6 146 1.5 0 ) ( 0 6 146 1.5 -5 ) ( 20 6 146 1.5 -10 ) ) ( ( -20 6 148 2 0 ) ( 0 6 148 2 -5 ) ( 20 6 148 2 -10 ) ) ( ( -20 6 150 2.5 0 ) ( 0 6 150 2.5 -5 ) ( 20 6 150 2.5 -10 ) ) ( ( -20 4 150 3 0 ) ( 0 4 150 3 -5 ) ( 20 4 150 3 -10 ) ) ( ( -20 2 150 3.5 0 ) ( 0 2 150 3.5 -5 ) ( 20 2 150 3.5 -10 ) ) ( ( -20 2 148 4 0 ) ( 0 2 148 4 -5 ) ( 20 2 148 4 -10 ) ) ) } } // brush 21 { patchDef2 { colors/red ( 9 3 0 0 0 ) ( ( ( -20 2 164 0 0 ) ( 0 2 164 0 -5 ) ( 20 2 164 0 -10 ) ) ( ( -20 2 162 0.5 0 ) ( 0 2 162 0.5 -5 ) ( 20 2 162 0.5 -10 ) ) ( ( -20 4 162 1 0 ) ( 0 4 162 1 -5 ) ( 20 4 162 1 -10 ) ) ( ( -20 6 162 1.5 0 ) ( 0 6 162 1.5 -5 ) ( 20 6 162 1.5 -10 ) ) ( ( -20 6 164 2 0 ) ( 0 6 164 2 -5 ) ( 20 6 164 2 -10 ) ) ( ( -20 6 166 2.5 0 ) ( 0 6 166 2.5 -5 ) ( 20 6 166 2.5 -10 ) ) ( ( -20 4 166 3 0 ) ( 0 4 166 3 -5 ) ( 20 4 166 3 -10 ) ) ( ( -20 2 166 3.5 0 ) ( 0 2 166 3.5 -5 ) ( 20 2 166 3.5 -10 ) ) ( ( -20 2 164 4 0 ) ( 0 2 164 4 -5 ) ( 20 2 164 4 -10 ) ) ) } } // brush 22 { brushDef { ( 24 16 192 ) ( 24 8 192 ) ( -24 16 192 ) ( ( 0.25 0 -0 ) ( -0 0.25 0 ) ) colors/red 0 0 0 ( 16 64 196 ) ( -32 64 196 ) ( 16 64 192 ) ( ( 0.25 0 -0 ) ( -0 0.25 0 ) ) colors/red 0 0 0 ( 24 16 196 ) ( 24 16 192 ) ( 24 8 196 ) ( ( 0.25 0 -0 ) ( -0 0.25 0 ) ) colors/red 0 0 0 ( -24 8 188 ) ( 24 8 188 ) ( -24 16 188 ) ( ( 0.25 0 -0 ) ( -0 0.25 0 ) ) colors/red 0 0 0 ( -24 0 192 ) ( -24 0 196 ) ( 24 0 192 ) ( ( 0.25 0 -0 ) ( -0 0.25 0 ) ) colors/red 0 0 0 ( -24 8 192 ) ( -24 16 192 ) ( -24 8 196 ) ( ( 0.25 0 -0 ) ( -0 0.25 0 ) ) colors/red 0 0 0 } } } // entity 1 { "classname" "target_deactivate" "origin" "-40 -32 8" "angle" "45" "targetname" "push_up_enable" "target" "push_down" } // entity 2 { "classname" "trigger_multiple" "spawnflags" "262" "speed" "0.1" "angles" "-90 0 0" "target" "push_up_enable" "wait" "1" "target2" "push_up_disable" // brush 0 { brushDef { ( 16 28 256 ) ( 16 -4 256 ) ( -16 28 256 ) ( ( 0.015625 0 0.3125 ) ( 0 0.015625 -0.125 ) ) system/trigger 0 0 0 ( 24 0 128 ) ( -8 0 128 ) ( 24 0 0 ) ( ( 0.015625 0 0.125 ) ( 0 0.015625 0 ) ) system/trigger 0 0 0 ( 16 -8 128 ) ( 16 -8 0 ) ( 16 -40 128 ) ( ( 0.015625 0 0.3125 ) ( 0 0.015625 0 ) ) system/trigger 0 0 0 ( -4 -20 0 ) ( 28 -20 0 ) ( -4 12 0 ) ( ( 0.0625 0 0.25 ) ( 0 0.03125 0.75 ) ) system/trigger 0 0 0 ( 12 -40 8 ) ( 12 -40 136 ) ( 44 -40 8 ) ( ( 0.015625 0 -0.125 ) ( 0 0.015625 0 ) ) system/trigger 0 0 0 ( -16 -28 0 ) ( -16 4 0 ) ( -16 -28 128 ) ( ( 0.015625 0 -0.3125 ) ( 0 0.015625 0 ) ) system/trigger 0 0 0 } } } // entity 3 { "classname" "target_activate" "origin" "-40 -32 120" "angle" "45" "targetname" "push_up_disable" "target" "push_down" } // entity 4 { "classname" "light" "origin" "62 -114 368" "light" "1628.97" "_samples" "32" "_deviance" "2" } // entity 5 { "classname" "light" "origin" "-96 -112 192" "light" "300" "_samples" "32" "_deviance" "6" } // entity 6 { "classname" "trigger_push" "targetname" "push_up" "spawnflags" "388" "speed" "10" "target" "push_direction_up" "wait" "1" // brush 0 { brushDef { ( 64 72 192 ) ( 64 -56 192 ) ( -64 72 192 ) ( ( 0.015625 0 0 ) ( 0 0.015625 -0 ) ) system/trigger 0 0 0 ( 64 0 128 ) ( -64 0 128 ) ( 64 0 0 ) ( ( 0.03125 0 0.5 ) ( 0 0.03125 0 ) ) system/trigger 0 0 0 ( 2 64 144 ) ( 2 64 16 ) ( 2 -64 144 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) system/trigger 0 0 0 ( -64 -60 0 ) ( 64 -60 0 ) ( -64 68 0 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) system/trigger 0 0 0 ( -62 -2 -24 ) ( -62 -2 104 ) ( 66 -2 -24 ) ( ( 0.015625 0 -0 ) ( 0 0.015625 0 ) ) system/trigger 0 0 0 ( -2 -64 -16 ) ( -2 64 -16 ) ( -2 -64 112 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) system/trigger 0 0 0 } } } // entity 7 { "classname" "info_player_start" "origin" "0 -96 24" "angle" "90" } // entity 8 { "classname" "target_position" "origin" "0 61 109" "targetname" "push_direction_up" "angles" "-90 0 0" } // entity 9 { "classname" "target_deactivate" "origin" "40 -32 8" "angle" "135" "targetname" "push_up_disable" "target" "push_up" } // entity 10 { "classname" "target_activate" "origin" "40 -32 120" "angle" "135" "targetname" "push_up_enable" "target" "push_up" } // entity 11 { "classname" "trigger_push" "targetname" "push_down" "spawnflags" "388" "speed" "10" "target" "push_direction_down" "wait" "1" // brush 0 { brushDef { ( 2 -2 150 ) ( -2 -2 150 ) ( -2 0 150 ) ( ( 0.0156249981 -0 0.7499998212 ) ( 0 0.015625 0 ) ) system/trigger 0 0 0 ( -2 -2 148 ) ( 2 -2 148 ) ( 2 0 150 ) ( ( 0.03125 0 -0.5 ) ( 0 0.0220970847 -0.3437499702 ) ) system/trigger 0 0 0 ( 16 80 112 ) ( 16 80 -16 ) ( 16 -48 112 ) ( ( 0.015625 0 -0.25 ) ( 0 0.015625 -0.5 ) ) system/trigger 0 0 0 ( 2 -2 148 ) ( -2 -2 148 ) ( 2 -32 148 ) ( ( 0.0166666675 0 -0.2166666687 ) ( 0 0.015625 0 ) ) system/trigger 0 0 0 ( -2 -32 150 ) ( 2 -32 150 ) ( 2 -32 -32 ) ( ( 0.015625 0 0 ) ( 0 0.015625 -0.5 ) ) system/trigger 0 0 0 ( -16 -44 -48 ) ( -16 84 -48 ) ( -16 -44 80 ) ( ( 0.015625 0 0.25 ) ( 0 0.015625 -0.5 ) ) system/trigger 0 0 0 } } // brush 1 { brushDef { ( 2 -2 148 ) ( -2 -2 148 ) ( -2 0 150 ) ( ( -0 -0.0110485433 -0.671875 ) ( 0.015625 0 0 ) ) system/trigger 0 0 0 ( 64 0 130 ) ( -64 0 130 ) ( 64 0 2 ) ( ( 0.03125 0 -0.5 ) ( 0 0.03125 0 ) ) system/trigger 0 0 0 ( 2 80 144 ) ( 2 80 16 ) ( 2 -48 144 ) ( ( 0.015625 0 -0.25 ) ( 0 0.015625 0 ) ) system/trigger 0 0 0 ( -64 -44 80 ) ( 64 -44 80 ) ( -64 84 80 ) ( ( 0.015625 0 -0.25 ) ( 0 0.015625 0 ) ) system/trigger 0 0 0 ( -2 -2 148 ) ( 2 -2 148 ) ( 2 -2 -32 ) ( ( 0.015625 0 0 ) ( 0 0.0157986116 0 ) ) system/trigger 0 0 0 ( -2 -46 -16 ) ( -2 82 -16 ) ( -2 -46 112 ) ( ( 0.015625 0 0.25 ) ( 0 0.015625 0 ) ) system/trigger 0 0 0 } } } // entity 12 { "classname" "target_position" "origin" "0 61 103" "targetname" "push_direction_down" "angles" "-90 0 0" } The above .map file should give you a good starting point. trigger_multiple for limiting the activation of going up to when you look up (additionally you can leave or take the condition of use_button) and the only other thing to take into account is that linear spawnflag does not take into account what speed you set. It uses the vector from brush center to target_position as direction AND speed vector - here I let the player be pushed against the clip brush which has base friction. Certainly worth a try to see if the multiple spawnflag on trigger_multiple and the trigger_push can be left out so only one player can use the ladder at once. This configuration doesn't work in SP - it seems that some of the features such as setting speed and so on work differntly in SP - I'll try to adapt it one day. OCD2 likes this
OCD2 Posted February 10, 2021 Author Posted February 10, 2021 1 hour ago, mjt said: Sadly there is no lift trigger and the ladder texture in system/ladder is not implemented correctly or at all. Crashes SP, does nothing in MP. Reveal hidden contents // entity 0 { "classname" "worldspawn" "gridsize" "32 32 32" "_keeplights" "1" "_ls" "0.0625" "_rs" "1" "_cs" "1" // brush 0 { brushDef { ( 16 0 192 ) ( 16 -32 192 ) ( -16 0 192 ) ( ( 0.015625 0 -0 ) ( -0 0.015625 0 ) ) system/clip 0 0 0 ( 16 8 128 ) ( -16 8 128 ) ( 16 8 0 ) ( ( 0.015625 0 -0 ) ( -0 0.015625 0 ) ) system/clip 0 0 0 ( 24 0 128 ) ( 24 0 0 ) ( 24 -32 128 ) ( ( 0.015625 0 -0 ) ( -0 0.015625 0 ) ) system/clip 0 0 0 ( -16 -32 0 ) ( 16 -32 0 ) ( -16 0 0 ) ( ( 0.015625 0 -0 ) ( -0 0.015625 0 ) ) system/clip 0 0 0 ( -16 0 0 ) ( -16 0 128 ) ( 16 0 0 ) ( ( 0.015625 0 -0 ) ( -0 0.015625 0 ) ) system/clip 0 0 0 ( -24 -32 0 ) ( -24 0 0 ) ( -24 -32 128 ) ( ( 0.015625 0 -0 ) ( -0 0.015625 0 ) ) system/clip 0 0 0 } } // brush 1 { brushDef { ( -128 64 448 ) ( 128 -128 448 ) ( 128 64 448 ) ( ( 0.25 0 0 ) ( 0 0.25 0 ) ) colors/gray 0 0 0 ( 128 64 480 ) ( 128 -128 480 ) ( -128 64 480 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) system/caulk 0 0 0 ( -128 -128 448 ) ( -128 64 448 ) ( -160 -160 480 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0.4748736918 ) ) system/caulk 0 0 0 ( 128 64 448 ) ( 128 -128 448 ) ( 160 -160 480 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0.4748736918 ) ) system/caulk 0 0 0 ( -160 -160 480 ) ( 160 -160 480 ) ( 128 -128 448 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0.4748736918 ) ) system/caulk 0 0 0 ( 160 96 480 ) ( -160 96 480 ) ( -128 64 448 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0.4748736918 ) ) system/caulk 0 0 0 } } // brush 2 { brushDef { ( 128 64 224 ) ( -128 64 352 ) ( 128 64 352 ) ( ( 0.25 0 -0 ) ( -0 0.25 0 ) ) colors/gray 0 0 0 ( 128 96 128 ) ( -128 96 128 ) ( 128 96 0 ) ( ( 0.015625 0 -0 ) ( -0 0.015625 0 ) ) system/caulk 0 0 0 ( -128 64 0 ) ( 128 64 0 ) ( -160 96 -32 ) ( ( 0.015625 0 -0 ) ( -0 0.015625 0 ) ) system/caulk 0 0 0 ( 128 64 0 ) ( 128 64 224 ) ( 160 96 -32 ) ( ( 0.015625 0 -0 ) ( -0 0.015625 0 ) ) system/caulk 0 0 0 ( 128 64 448 ) ( -128 64 448 ) ( 160 96 480 ) ( ( 0.015625 0 -0 ) ( -0 0.015625 0 ) ) system/caulk 0 0 0 ( -128 64 224 ) ( -128 64 0 ) ( -160 96 -32 ) ( ( 0.015625 0 -0 ) ( -0 0.015625 0 ) ) system/caulk 0 0 0 } } // brush 3 { brushDef { ( 128 -128 128 ) ( 128 64 0 ) ( 128 64 128 ) ( ( 0.25 0 -0 ) ( -0 0.25 0 ) ) colors/gray 0 0 0 ( 160 64 128 ) ( 160 64 0 ) ( 160 -128 128 ) ( ( 0.015625 0 -0 ) ( -0 0.015625 0 ) ) system/caulk 0 0 0 ( 128 64 224 ) ( 128 64 0 ) ( 160 96 256 ) ( ( 0.015625 0 -0 ) ( -0 0.015625 0 ) ) system/caulk 0 0 0 ( 128 64 0 ) ( 128 -128 0 ) ( 160 96 -32 ) ( ( 0.015625 0 -0 ) ( -0 0.015625 0 ) ) system/caulk 0 0 0 ( 128 -128 0 ) ( 128 -128 224 ) ( 160 -160 -32 ) ( ( 0.015625 0 -0 ) ( -0 0.015625 0 ) ) system/caulk 0 0 0 ( 128 -128 448 ) ( 128 64 448 ) ( 160 96 480 ) ( ( 0.015625 0 -0 ) ( -0 0.015625 0 ) ) system/caulk 0 0 0 } } // brush 4 { brushDef { ( -128 64 0 ) ( 128 -128 0 ) ( -128 -128 0 ) ( ( 0.25 0 -0 ) ( -0 0.25 0 ) ) colors/gray 0 0 0 ( -128 -128 -32 ) ( 128 -128 -32 ) ( -128 64 -32 ) ( ( 0.015625 0 -0 ) ( -0 0.015625 0 ) ) system/caulk 0 0 0 ( 128 64 0 ) ( -128 64 0 ) ( 160 96 -32 ) ( ( 0.015625 0 -0 ) ( -0 0.015625 0 ) ) system/caulk 0 0 0 ( -128 -128 0 ) ( 128 -128 0 ) ( 160 -160 -32 ) ( ( 0.015625 0 -0 ) ( -0 0.015625 0 ) ) system/caulk 0 0 0 ( 160 96 -32 ) ( 160 -160 -32 ) ( 128 -128 0 ) ( ( 0.015625 0 -0 ) ( -0 0.015625 0 ) ) system/caulk 0 0 0 ( -160 -160 -32 ) ( -160 96 -32 ) ( -128 64 0 ) ( ( 0.015625 0 -0 ) ( -0 0.015625 0 ) ) system/caulk 0 0 0 } } // brush 5 { brushDef { ( 128 -128 224 ) ( -128 -128 352 ) ( -128 -128 224 ) ( ( 0.25 0 -0 ) ( -0 0.25 0 ) ) colors/gray 0 0 0 ( -128 -160 0 ) ( -128 -160 128 ) ( 128 -160 0 ) ( ( 0.015625 0 -0 ) ( -0 0.015625 0 ) ) system/caulk 0 0 0 ( 128 -128 0 ) ( -128 -128 0 ) ( 160 -160 -32 ) ( ( 0.015625 0 -0 ) ( -0 0.015625 0 ) ) system/caulk 0 0 0 ( -128 -128 0 ) ( -128 -128 224 ) ( -160 -160 -32 ) ( ( 0.015625 0 -0 ) ( -0 0.015625 0 ) ) system/caulk 0 0 0 ( -128 -128 448 ) ( 128 -128 448 ) ( -160 -160 480 ) ( ( 0.015625 0 -0 ) ( -0 0.015625 0 ) ) system/caulk 0 0 0 ( 128 -128 224 ) ( 128 -128 0 ) ( 160 -160 -32 ) ( ( 0.015625 0 -0 ) ( -0 0.015625 0 ) ) system/caulk 0 0 0 } } // brush 6 { brushDef { ( -128 -128 128 ) ( -128 64 0 ) ( -128 -128 0 ) ( ( 0.25 0 -0 ) ( -0 0.25 0 ) ) colors/gray 0 0 0 ( -160 -128 0 ) ( -160 64 0 ) ( -160 -128 128 ) ( ( 0.015625 0 -0 ) ( -0 0.015625 0 ) ) system/caulk 0 0 0 ( -128 -128 0 ) ( -128 64 0 ) ( -160 -160 -32 ) ( ( 0.015625 0 -0 ) ( -0 0.015625 0 ) ) system/caulk 0 0 0 ( -128 64 0 ) ( -128 64 224 ) ( -160 96 -32 ) ( ( 0.015625 0 -0 ) ( -0 0.015625 0 ) ) system/caulk 0 0 0 ( -128 64 448 ) ( -128 -128 448 ) ( -160 96 480 ) ( ( 0.015625 0 -0 ) ( -0 0.015625 0 ) ) system/caulk 0 0 0 ( -128 -128 224 ) ( -128 -128 0 ) ( -160 -160 -32 ) ( ( 0.015625 0 -0 ) ( -0 0.015625 0 ) ) system/caulk 0 0 0 } } // brush 7 { brushDef { ( 8 0 8 ) ( 8 -40 8 ) ( -40 0 8 ) ( ( 0.0625 0 -0 ) ( -0 0.0625 0 ) ) system/cushion 0 0 0 ( 24 0 112 ) ( -24 0 112 ) ( 24 0 104 ) ( ( 0.0625 0 -0 ) ( -0 0.0625 0 ) ) system/cushion 0 0 0 ( 24 0 112 ) ( 24 0 104 ) ( 24 -40 112 ) ( ( 0.0625 0 -0 ) ( -0 0.0625 0 ) ) system/cushion 0 0 0 ( -32 -40 0 ) ( 16 -40 0 ) ( -32 0 0 ) ( ( 0.0625 0 -0 ) ( -0 0.0625 0 ) ) system/cushion 0 0 0 ( -24 -40 104 ) ( -24 -40 112 ) ( 24 -40 104 ) ( ( 0.0625 0 -0 ) ( -0 0.0625 0 ) ) system/cushion 0 0 0 ( -24 -40 104 ) ( -24 0 104 ) ( -24 -40 112 ) ( ( 0.0625 0 -0 ) ( -0 0.0625 0 ) ) system/cushion 0 0 0 } } // brush 8 { patchDef2 { colors/red ( 9 3 0 0 0 ) ( ( ( 17 4 0 0 0 ) ( 17 4 96 0 -24 ) ( 17 4 192 0 -48 ) ) ( ( 17 1 0 0.5 0 ) ( 17 1 96 0.5 -24 ) ( 17 1 192 0.5 -48 ) ) ( ( 20 1 0 1 0 ) ( 20 1 96 1 -24 ) ( 20 1 192 1 -48 ) ) ( ( 23 1 0 1.5 0 ) ( 23 1 96 1.5 -24 ) ( 23 1 192 1.5 -48 ) ) ( ( 23 4 0 2 0 ) ( 23 4 96 2 -24 ) ( 23 4 192 2 -48 ) ) ( ( 23 7 0 2.5 0 ) ( 23 7 96 2.5 -24 ) ( 23 7 192 2.5 -48 ) ) ( ( 20 7 0 3 0 ) ( 20 7 96 3 -24 ) ( 20 7 192 3 -48 ) ) ( ( 17 7 0 3.5 0 ) ( 17 7 96 3.5 -24 ) ( 17 7 192 3.5 -48 ) ) ( ( 17 4 0 4 0 ) ( 17 4 96 4 -24 ) ( 17 4 192 4 -48 ) ) ) } } // brush 9 { patchDef2 { colors/red ( 9 3 0 0 0 ) ( ( ( -23 4 0 0 0 ) ( -23 4 96 0 -24 ) ( -23 4 192 0 -48 ) ) ( ( -23 1 0 0.5 0 ) ( -23 1 96 0.5 -24 ) ( -23 1 192 0.5 -48 ) ) ( ( -20 1 0 1 0 ) ( -20 1 96 1 -24 ) ( -20 1 192 1 -48 ) ) ( ( -17 1 0 1.5 0 ) ( -17 1 96 1.5 -24 ) ( -17 1 192 1.5 -48 ) ) ( ( -17 4 0 2 0 ) ( -17 4 96 2 -24 ) ( -17 4 192 2 -48 ) ) ( ( -17 7 0 2.5 0 ) ( -17 7 96 2.5 -24 ) ( -17 7 192 2.5 -48 ) ) ( ( -20 7 0 3 0 ) ( -20 7 96 3 -24 ) ( -20 7 192 3 -48 ) ) ( ( -23 7 0 3.5 0 ) ( -23 7 96 3.5 -24 ) ( -23 7 192 3.5 -48 ) ) ( ( -23 4 0 4 0 ) ( -23 4 96 4 -24 ) ( -23 4 192 4 -48 ) ) ) } } // brush 10 { patchDef2 { colors/red ( 9 3 0 0 0 ) ( ( ( -20 2 180 0 0 ) ( 0 2 180 0 -5 ) ( 20 2 180 0 -10 ) ) ( ( -20 2 178 0.5 0 ) ( 0 2 178 0.5 -5 ) ( 20 2 178 0.5 -10 ) ) ( ( -20 4 178 1 0 ) ( 0 4 178 1 -5 ) ( 20 4 178 1 -10 ) ) ( ( -20 6 178 1.5 0 ) ( 0 6 178 1.5 -5 ) ( 20 6 178 1.5 -10 ) ) ( ( -20 6 180 2 0 ) ( 0 6 180 2 -5 ) ( 20 6 180 2 -10 ) ) ( ( -20 6 182 2.5 0 ) ( 0 6 182 2.5 -5 ) ( 20 6 182 2.5 -10 ) ) ( ( -20 4 182 3 0 ) ( 0 4 182 3 -5 ) ( 20 4 182 3 -10 ) ) ( ( -20 2 182 3.5 0 ) ( 0 2 182 3.5 -5 ) ( 20 2 182 3.5 -10 ) ) ( ( -20 2 180 4 0 ) ( 0 2 180 4 -5 ) ( 20 2 180 4 -10 ) ) ) } } // brush 11 { patchDef2 { colors/red ( 9 3 0 0 0 ) ( ( ( -20 2 4 0 0 ) ( 0 2 4 0 -5 ) ( 20 2 4 0 -10 ) ) ( ( -20 2 2 0.5 0 ) ( 0 2 2 0.5 -5 ) ( 20 2 2 0.5 -10 ) ) ( ( -20 4 2 1 0 ) ( 0 4 2 1 -5 ) ( 20 4 2 1 -10 ) ) ( ( -20 6 2 1.5 0 ) ( 0 6 2 1.5 -5 ) ( 20 6 2 1.5 -10 ) ) ( ( -20 6 4 2 0 ) ( 0 6 4 2 -5 ) ( 20 6 4 2 -10 ) ) ( ( -20 6 6 2.5 0 ) ( 0 6 6 2.5 -5 ) ( 20 6 6 2.5 -10 ) ) ( ( -20 4 6 3 0 ) ( 0 4 6 3 -5 ) ( 20 4 6 3 -10 ) ) ( ( -20 2 6 3.5 0 ) ( 0 2 6 3.5 -5 ) ( 20 2 6 3.5 -10 ) ) ( ( -20 2 4 4 0 ) ( 0 2 4 4 -5 ) ( 20 2 4 4 -10 ) ) ) } } // brush 12 { patchDef2 { colors/red ( 9 3 0 0 0 ) ( ( ( -20 2 20 0 0 ) ( 0 2 20 0 -5 ) ( 20 2 20 0 -10 ) ) ( ( -20 2 18 0.5 0 ) ( 0 2 18 0.5 -5 ) ( 20 2 18 0.5 -10 ) ) ( ( -20 4 18 1 0 ) ( 0 4 18 1 -5 ) ( 20 4 18 1 -10 ) ) ( ( -20 6 18 1.5 0 ) ( 0 6 18 1.5 -5 ) ( 20 6 18 1.5 -10 ) ) ( ( -20 6 20 2 0 ) ( 0 6 20 2 -5 ) ( 20 6 20 2 -10 ) ) ( ( -20 6 22 2.5 0 ) ( 0 6 22 2.5 -5 ) ( 20 6 22 2.5 -10 ) ) ( ( -20 4 22 3 0 ) ( 0 4 22 3 -5 ) ( 20 4 22 3 -10 ) ) ( ( -20 2 22 3.5 0 ) ( 0 2 22 3.5 -5 ) ( 20 2 22 3.5 -10 ) ) ( ( -20 2 20 4 0 ) ( 0 2 20 4 -5 ) ( 20 2 20 4 -10 ) ) ) } } // brush 13 { patchDef2 { colors/red ( 9 3 0 0 0 ) ( ( ( -20 2 36 0 0 ) ( 0 2 36 0 -5 ) ( 20 2 36 0 -10 ) ) ( ( -20 2 34 0.5 0 ) ( 0 2 34 0.5 -5 ) ( 20 2 34 0.5 -10 ) ) ( ( -20 4 34 1 0 ) ( 0 4 34 1 -5 ) ( 20 4 34 1 -10 ) ) ( ( -20 6 34 1.5 0 ) ( 0 6 34 1.5 -5 ) ( 20 6 34 1.5 -10 ) ) ( ( -20 6 36 2 0 ) ( 0 6 36 2 -5 ) ( 20 6 36 2 -10 ) ) ( ( -20 6 38 2.5 0 ) ( 0 6 38 2.5 -5 ) ( 20 6 38 2.5 -10 ) ) ( ( -20 4 38 3 0 ) ( 0 4 38 3 -5 ) ( 20 4 38 3 -10 ) ) ( ( -20 2 38 3.5 0 ) ( 0 2 38 3.5 -5 ) ( 20 2 38 3.5 -10 ) ) ( ( -20 2 36 4 0 ) ( 0 2 36 4 -5 ) ( 20 2 36 4 -10 ) ) ) } } // brush 14 { patchDef2 { colors/red ( 9 3 0 0 0 ) ( ( ( -20 2 52 0 0 ) ( 0 2 52 0 -5 ) ( 20 2 52 0 -10 ) ) ( ( -20 2 50 0.5 0 ) ( 0 2 50 0.5 -5 ) ( 20 2 50 0.5 -10 ) ) ( ( -20 4 50 1 0 ) ( 0 4 50 1 -5 ) ( 20 4 50 1 -10 ) ) ( ( -20 6 50 1.5 0 ) ( 0 6 50 1.5 -5 ) ( 20 6 50 1.5 -10 ) ) ( ( -20 6 52 2 0 ) ( 0 6 52 2 -5 ) ( 20 6 52 2 -10 ) ) ( ( -20 6 54 2.5 0 ) ( 0 6 54 2.5 -5 ) ( 20 6 54 2.5 -10 ) ) ( ( -20 4 54 3 0 ) ( 0 4 54 3 -5 ) ( 20 4 54 3 -10 ) ) ( ( -20 2 54 3.5 0 ) ( 0 2 54 3.5 -5 ) ( 20 2 54 3.5 -10 ) ) ( ( -20 2 52 4 0 ) ( 0 2 52 4 -5 ) ( 20 2 52 4 -10 ) ) ) } } // brush 15 { patchDef2 { colors/red ( 9 3 0 0 0 ) ( ( ( -20 2 68 0 0 ) ( 0 2 68 0 -5 ) ( 20 2 68 0 -10 ) ) ( ( -20 2 66 0.5 0 ) ( 0 2 66 0.5 -5 ) ( 20 2 66 0.5 -10 ) ) ( ( -20 4 66 1 0 ) ( 0 4 66 1 -5 ) ( 20 4 66 1 -10 ) ) ( ( -20 6 66 1.5 0 ) ( 0 6 66 1.5 -5 ) ( 20 6 66 1.5 -10 ) ) ( ( -20 6 68 2 0 ) ( 0 6 68 2 -5 ) ( 20 6 68 2 -10 ) ) ( ( -20 6 70 2.5 0 ) ( 0 6 70 2.5 -5 ) ( 20 6 70 2.5 -10 ) ) ( ( -20 4 70 3 0 ) ( 0 4 70 3 -5 ) ( 20 4 70 3 -10 ) ) ( ( -20 2 70 3.5 0 ) ( 0 2 70 3.5 -5 ) ( 20 2 70 3.5 -10 ) ) ( ( -20 2 68 4 0 ) ( 0 2 68 4 -5 ) ( 20 2 68 4 -10 ) ) ) } } // brush 16 { patchDef2 { colors/red ( 9 3 0 0 0 ) ( ( ( -20 2 84 0 0 ) ( 0 2 84 0 -5 ) ( 20 2 84 0 -10 ) ) ( ( -20 2 82 0.5 0 ) ( 0 2 82 0.5 -5 ) ( 20 2 82 0.5 -10 ) ) ( ( -20 4 82 1 0 ) ( 0 4 82 1 -5 ) ( 20 4 82 1 -10 ) ) ( ( -20 6 82 1.5 0 ) ( 0 6 82 1.5 -5 ) ( 20 6 82 1.5 -10 ) ) ( ( -20 6 84 2 0 ) ( 0 6 84 2 -5 ) ( 20 6 84 2 -10 ) ) ( ( -20 6 86 2.5 0 ) ( 0 6 86 2.5 -5 ) ( 20 6 86 2.5 -10 ) ) ( ( -20 4 86 3 0 ) ( 0 4 86 3 -5 ) ( 20 4 86 3 -10 ) ) ( ( -20 2 86 3.5 0 ) ( 0 2 86 3.5 -5 ) ( 20 2 86 3.5 -10 ) ) ( ( -20 2 84 4 0 ) ( 0 2 84 4 -5 ) ( 20 2 84 4 -10 ) ) ) } } // brush 17 { patchDef2 { colors/red ( 9 3 0 0 0 ) ( ( ( -20 2 100 0 0 ) ( 0 2 100 0 -5 ) ( 20 2 100 0 -10 ) ) ( ( -20 2 98 0.5 0 ) ( 0 2 98 0.5 -5 ) ( 20 2 98 0.5 -10 ) ) ( ( -20 4 98 1 0 ) ( 0 4 98 1 -5 ) ( 20 4 98 1 -10 ) ) ( ( -20 6 98 1.5 0 ) ( 0 6 98 1.5 -5 ) ( 20 6 98 1.5 -10 ) ) ( ( -20 6 100 2 0 ) ( 0 6 100 2 -5 ) ( 20 6 100 2 -10 ) ) ( ( -20 6 102 2.5 0 ) ( 0 6 102 2.5 -5 ) ( 20 6 102 2.5 -10 ) ) ( ( -20 4 102 3 0 ) ( 0 4 102 3 -5 ) ( 20 4 102 3 -10 ) ) ( ( -20 2 102 3.5 0 ) ( 0 2 102 3.5 -5 ) ( 20 2 102 3.5 -10 ) ) ( ( -20 2 100 4 0 ) ( 0 2 100 4 -5 ) ( 20 2 100 4 -10 ) ) ) } } // brush 18 { patchDef2 { colors/red ( 9 3 0 0 0 ) ( ( ( -20 2 116 0 0 ) ( 0 2 116 0 -5 ) ( 20 2 116 0 -10 ) ) ( ( -20 2 114 0.5 0 ) ( 0 2 114 0.5 -5 ) ( 20 2 114 0.5 -10 ) ) ( ( -20 4 114 1 0 ) ( 0 4 114 1 -5 ) ( 20 4 114 1 -10 ) ) ( ( -20 6 114 1.5 0 ) ( 0 6 114 1.5 -5 ) ( 20 6 114 1.5 -10 ) ) ( ( -20 6 116 2 0 ) ( 0 6 116 2 -5 ) ( 20 6 116 2 -10 ) ) ( ( -20 6 118 2.5 0 ) ( 0 6 118 2.5 -5 ) ( 20 6 118 2.5 -10 ) ) ( ( -20 4 118 3 0 ) ( 0 4 118 3 -5 ) ( 20 4 118 3 -10 ) ) ( ( -20 2 118 3.5 0 ) ( 0 2 118 3.5 -5 ) ( 20 2 118 3.5 -10 ) ) ( ( -20 2 116 4 0 ) ( 0 2 116 4 -5 ) ( 20 2 116 4 -10 ) ) ) } } // brush 19 { patchDef2 { colors/red ( 9 3 0 0 0 ) ( ( ( -20 2 132 0 0 ) ( 0 2 132 0 -5 ) ( 20 2 132 0 -10 ) ) ( ( -20 2 130 0.5 0 ) ( 0 2 130 0.5 -5 ) ( 20 2 130 0.5 -10 ) ) ( ( -20 4 130 1 0 ) ( 0 4 130 1 -5 ) ( 20 4 130 1 -10 ) ) ( ( -20 6 130 1.5 0 ) ( 0 6 130 1.5 -5 ) ( 20 6 130 1.5 -10 ) ) ( ( -20 6 132 2 0 ) ( 0 6 132 2 -5 ) ( 20 6 132 2 -10 ) ) ( ( -20 6 134 2.5 0 ) ( 0 6 134 2.5 -5 ) ( 20 6 134 2.5 -10 ) ) ( ( -20 4 134 3 0 ) ( 0 4 134 3 -5 ) ( 20 4 134 3 -10 ) ) ( ( -20 2 134 3.5 0 ) ( 0 2 134 3.5 -5 ) ( 20 2 134 3.5 -10 ) ) ( ( -20 2 132 4 0 ) ( 0 2 132 4 -5 ) ( 20 2 132 4 -10 ) ) ) } } // brush 20 { patchDef2 { colors/red ( 9 3 0 0 0 ) ( ( ( -20 2 148 0 0 ) ( 0 2 148 0 -5 ) ( 20 2 148 0 -10 ) ) ( ( -20 2 146 0.5 0 ) ( 0 2 146 0.5 -5 ) ( 20 2 146 0.5 -10 ) ) ( ( -20 4 146 1 0 ) ( 0 4 146 1 -5 ) ( 20 4 146 1 -10 ) ) ( ( -20 6 146 1.5 0 ) ( 0 6 146 1.5 -5 ) ( 20 6 146 1.5 -10 ) ) ( ( -20 6 148 2 0 ) ( 0 6 148 2 -5 ) ( 20 6 148 2 -10 ) ) ( ( -20 6 150 2.5 0 ) ( 0 6 150 2.5 -5 ) ( 20 6 150 2.5 -10 ) ) ( ( -20 4 150 3 0 ) ( 0 4 150 3 -5 ) ( 20 4 150 3 -10 ) ) ( ( -20 2 150 3.5 0 ) ( 0 2 150 3.5 -5 ) ( 20 2 150 3.5 -10 ) ) ( ( -20 2 148 4 0 ) ( 0 2 148 4 -5 ) ( 20 2 148 4 -10 ) ) ) } } // brush 21 { patchDef2 { colors/red ( 9 3 0 0 0 ) ( ( ( -20 2 164 0 0 ) ( 0 2 164 0 -5 ) ( 20 2 164 0 -10 ) ) ( ( -20 2 162 0.5 0 ) ( 0 2 162 0.5 -5 ) ( 20 2 162 0.5 -10 ) ) ( ( -20 4 162 1 0 ) ( 0 4 162 1 -5 ) ( 20 4 162 1 -10 ) ) ( ( -20 6 162 1.5 0 ) ( 0 6 162 1.5 -5 ) ( 20 6 162 1.5 -10 ) ) ( ( -20 6 164 2 0 ) ( 0 6 164 2 -5 ) ( 20 6 164 2 -10 ) ) ( ( -20 6 166 2.5 0 ) ( 0 6 166 2.5 -5 ) ( 20 6 166 2.5 -10 ) ) ( ( -20 4 166 3 0 ) ( 0 4 166 3 -5 ) ( 20 4 166 3 -10 ) ) ( ( -20 2 166 3.5 0 ) ( 0 2 166 3.5 -5 ) ( 20 2 166 3.5 -10 ) ) ( ( -20 2 164 4 0 ) ( 0 2 164 4 -5 ) ( 20 2 164 4 -10 ) ) ) } } // brush 22 { brushDef { ( 24 16 192 ) ( 24 8 192 ) ( -24 16 192 ) ( ( 0.25 0 -0 ) ( -0 0.25 0 ) ) colors/red 0 0 0 ( 16 64 196 ) ( -32 64 196 ) ( 16 64 192 ) ( ( 0.25 0 -0 ) ( -0 0.25 0 ) ) colors/red 0 0 0 ( 24 16 196 ) ( 24 16 192 ) ( 24 8 196 ) ( ( 0.25 0 -0 ) ( -0 0.25 0 ) ) colors/red 0 0 0 ( -24 8 188 ) ( 24 8 188 ) ( -24 16 188 ) ( ( 0.25 0 -0 ) ( -0 0.25 0 ) ) colors/red 0 0 0 ( -24 0 192 ) ( -24 0 196 ) ( 24 0 192 ) ( ( 0.25 0 -0 ) ( -0 0.25 0 ) ) colors/red 0 0 0 ( -24 8 192 ) ( -24 16 192 ) ( -24 8 196 ) ( ( 0.25 0 -0 ) ( -0 0.25 0 ) ) colors/red 0 0 0 } } } // entity 1 { "classname" "target_deactivate" "origin" "-40 -32 8" "angle" "45" "targetname" "push_up_enable" "target" "push_down" } // entity 2 { "classname" "trigger_multiple" "spawnflags" "262" "speed" "0.1" "angles" "-90 0 0" "target" "push_up_enable" "wait" "1" "target2" "push_up_disable" // brush 0 { brushDef { ( 16 28 256 ) ( 16 -4 256 ) ( -16 28 256 ) ( ( 0.015625 0 0.3125 ) ( 0 0.015625 -0.125 ) ) system/trigger 0 0 0 ( 24 0 128 ) ( -8 0 128 ) ( 24 0 0 ) ( ( 0.015625 0 0.125 ) ( 0 0.015625 0 ) ) system/trigger 0 0 0 ( 16 -8 128 ) ( 16 -8 0 ) ( 16 -40 128 ) ( ( 0.015625 0 0.3125 ) ( 0 0.015625 0 ) ) system/trigger 0 0 0 ( -4 -20 0 ) ( 28 -20 0 ) ( -4 12 0 ) ( ( 0.0625 0 0.25 ) ( 0 0.03125 0.75 ) ) system/trigger 0 0 0 ( 12 -40 8 ) ( 12 -40 136 ) ( 44 -40 8 ) ( ( 0.015625 0 -0.125 ) ( 0 0.015625 0 ) ) system/trigger 0 0 0 ( -16 -28 0 ) ( -16 4 0 ) ( -16 -28 128 ) ( ( 0.015625 0 -0.3125 ) ( 0 0.015625 0 ) ) system/trigger 0 0 0 } } } // entity 3 { "classname" "target_activate" "origin" "-40 -32 120" "angle" "45" "targetname" "push_up_disable" "target" "push_down" } // entity 4 { "classname" "light" "origin" "62 -114 368" "light" "1628.97" "_samples" "32" "_deviance" "2" } // entity 5 { "classname" "light" "origin" "-96 -112 192" "light" "300" "_samples" "32" "_deviance" "6" } // entity 6 { "classname" "trigger_push" "targetname" "push_up" "spawnflags" "388" "speed" "10" "target" "push_direction_up" "wait" "1" // brush 0 { brushDef { ( 64 72 192 ) ( 64 -56 192 ) ( -64 72 192 ) ( ( 0.015625 0 0 ) ( 0 0.015625 -0 ) ) system/trigger 0 0 0 ( 64 0 128 ) ( -64 0 128 ) ( 64 0 0 ) ( ( 0.03125 0 0.5 ) ( 0 0.03125 0 ) ) system/trigger 0 0 0 ( 2 64 144 ) ( 2 64 16 ) ( 2 -64 144 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) system/trigger 0 0 0 ( -64 -60 0 ) ( 64 -60 0 ) ( -64 68 0 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) system/trigger 0 0 0 ( -62 -2 -24 ) ( -62 -2 104 ) ( 66 -2 -24 ) ( ( 0.015625 0 -0 ) ( 0 0.015625 0 ) ) system/trigger 0 0 0 ( -2 -64 -16 ) ( -2 64 -16 ) ( -2 -64 112 ) ( ( 0.015625 0 0 ) ( 0 0.015625 0 ) ) system/trigger 0 0 0 } } } // entity 7 { "classname" "info_player_start" "origin" "0 -96 24" "angle" "90" } // entity 8 { "classname" "target_position" "origin" "0 61 109" "targetname" "push_direction_up" "angles" "-90 0 0" } // entity 9 { "classname" "target_deactivate" "origin" "40 -32 8" "angle" "135" "targetname" "push_up_disable" "target" "push_up" } // entity 10 { "classname" "target_activate" "origin" "40 -32 120" "angle" "135" "targetname" "push_up_enable" "target" "push_up" } // entity 11 { "classname" "trigger_push" "targetname" "push_down" "spawnflags" "388" "speed" "10" "target" "push_direction_down" "wait" "1" // brush 0 { brushDef { ( 2 -2 150 ) ( -2 -2 150 ) ( -2 0 150 ) ( ( 0.0156249981 -0 0.7499998212 ) ( 0 0.015625 0 ) ) system/trigger 0 0 0 ( -2 -2 148 ) ( 2 -2 148 ) ( 2 0 150 ) ( ( 0.03125 0 -0.5 ) ( 0 0.0220970847 -0.3437499702 ) ) system/trigger 0 0 0 ( 16 80 112 ) ( 16 80 -16 ) ( 16 -48 112 ) ( ( 0.015625 0 -0.25 ) ( 0 0.015625 -0.5 ) ) system/trigger 0 0 0 ( 2 -2 148 ) ( -2 -2 148 ) ( 2 -32 148 ) ( ( 0.0166666675 0 -0.2166666687 ) ( 0 0.015625 0 ) ) system/trigger 0 0 0 ( -2 -32 150 ) ( 2 -32 150 ) ( 2 -32 -32 ) ( ( 0.015625 0 0 ) ( 0 0.015625 -0.5 ) ) system/trigger 0 0 0 ( -16 -44 -48 ) ( -16 84 -48 ) ( -16 -44 80 ) ( ( 0.015625 0 0.25 ) ( 0 0.015625 -0.5 ) ) system/trigger 0 0 0 } } // brush 1 { brushDef { ( 2 -2 148 ) ( -2 -2 148 ) ( -2 0 150 ) ( ( -0 -0.0110485433 -0.671875 ) ( 0.015625 0 0 ) ) system/trigger 0 0 0 ( 64 0 130 ) ( -64 0 130 ) ( 64 0 2 ) ( ( 0.03125 0 -0.5 ) ( 0 0.03125 0 ) ) system/trigger 0 0 0 ( 2 80 144 ) ( 2 80 16 ) ( 2 -48 144 ) ( ( 0.015625 0 -0.25 ) ( 0 0.015625 0 ) ) system/trigger 0 0 0 ( -64 -44 80 ) ( 64 -44 80 ) ( -64 84 80 ) ( ( 0.015625 0 -0.25 ) ( 0 0.015625 0 ) ) system/trigger 0 0 0 ( -2 -2 148 ) ( 2 -2 148 ) ( 2 -2 -32 ) ( ( 0.015625 0 0 ) ( 0 0.0157986116 0 ) ) system/trigger 0 0 0 ( -2 -46 -16 ) ( -2 82 -16 ) ( -2 -46 112 ) ( ( 0.015625 0 0.25 ) ( 0 0.015625 0 ) ) system/trigger 0 0 0 } } } // entity 12 { "classname" "target_position" "origin" "0 61 103" "targetname" "push_direction_down" "angles" "-90 0 0" } The above .map file should give you a good starting point. trigger_multiple for limiting the activation of going up to when you look up (additionally you can leave or take the condition of use_button) and the only other thing to take into account is that linear spawnflag does not take into account what speed you set. It uses the vector from brush center to target_position as direction AND speed vector - here I let the player be pushed against the clip brush which has base friction. Certainly worth a try to see if the multiple spawnflag on trigger_multiple and the trigger_push can be left out so only one player can use the ladder at once. This configuration doesn't work in SP - it seems that some of the features such as setting speed and so on work differntly in SP - I'll try to adapt it one day. Thank you for all the information, I will test this out!
OCD2 Posted February 15, 2021 Author Posted February 15, 2021 Hello everyone, My time has still been near totally absorbed in restoring my house, and that work still only halfway complete. Ah the good life!............ Though I have been thinking about my project, and ways to proceed/make it better/optimization. Between near total free-time loss, and me still being "amateur modder" status, I think its best to call in the modding calvary! I have some questions and thoughts for the experienced mappers and modders: (For ease of reading, questions below are highlighted in bold) One of the big sticking points for me currently is my map construction(s), and how to best optimize the brushwork. Even though I have not had time to sit and work with the map editor, I have been doing some reading and researching on various aspects of level design with radiant. 1. Currently the map is made entirely of brushwork. Some of the things ive read suggest using models to optimize finicky brushwork. Aspects in this map like the columnways and prison cell doors have an amount of patchs\patchmesh, and I have been thinking about trying to make them into ASE models to help optimize the construction, and reducing the brushwork to a simple structural caulk hull corridor(s), and then using the ASE models to adorn those corridors. (and subsequently making the columns solid with clip brushes) I read that converting brushwork into ASE models can help optimize, as it creates a mesh out of textured surfaces and "ignores" caulked or nodraw surfaces in creating the model which reduces the polycount. Is that accurate? 2. The majority of the map is composed of sections that consist of 4 in total columned parallel prison cells (a grouping of 2 cells and a grouping of 6 cells), a 4 way intersection connecting corridor, and capped by two T junction connector corridors that lead to the other sections, as shown below. Each section is composed of 3 of these hallways, running parallel to each other. If I do start converting sections of the map into ASE models, what might be an efficient way of breaking up the map sections into models? My current thought is to make 3-5 different models that compose the different prison cell door clusters, intersections, and end corridors - and then rearrange them as needed to compose the layout of the map. Is there a limit to how many models you can have in a map? 3. If the models are a good way to proceed, if I convert the columnways into models, will the glow shaders on the column be effected, or do they become part of the ASE model? 4. The overhead light panels (circled in red below) and the floor border trim (circled in yellow below) need to become embedded as textures to cut down on brush count significantly. I have been a bit stumped how to do so accurately with the long hallway runs made out of brushwork, and im wondering if making the prison cell and columnway constructions into models would be a way to simplify the process of texturing the floors and ceilings. (Instead of cutting up the ceiling into 8-10 brushes per hallway multiplied by 6 for each hallway in a section, multiplied by section(3-4 sections)!!) Seems like aligning the texures properly would be easier if the columnways were made into models that incorporated them as textures. Question here being if I did make the prison cell sections ASE models, would using a brush or patchmesh for the floor and ceiling areas be more efficient/optimized when converted to an ASE model? 5. The ladder leading to the Razor Crest room is still currently impassable. I had the notion that making the entry point ladder into a model would help in optimizing and allow for a simpler way of clipping the area to help solve the currently impassable cylinder hole leading to the above room (and being able to enter the prison cell doors!). Would making the Razor Crest entry ladder into a model be helpful in optimization and in making sure player models can pass through to the upper level? Thank you for your time, interest, help and effort. I value everyone who has provided input and help along the way - the map will be completed at some point this year I promise!
ZanderNao Posted February 15, 2021 Posted February 15, 2021 I absolutely love your approach to this! Fantastic. Reaching out with well researched questions, checking for the techniques to improve. It already is a beautiful map but it'll only get better from here! As for the security guard, I had a slight miscommunication with my 3d modeler that I commissioned. I asked for (and provided picture references) for the New Republic Security droid with an alternate head from a different droid, but he made the whole body of the other droid first. We switched gears to prioritize the security droid but we'll come out the other side with two new droid types instead of one, lol. Thanks for sharing your progress, you are astounding! OCD2 likes this
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now