> > Spec_procs for rooms would be nice - adding certain room types, such as > 'RIVER', would be even nicer! Teleport rooms, a la Silly code, provide > much to play with as far as adventure building goes (note that this is > NOT the same thing as mere building - "teleport rooms" provide the sense > of time passing, and give more meaning to waiting to see what happens. A fellow God on Kallisti and I were talking about a way that we could relatively painlessly implement 'conveyor/elevator' type rooms. Basically we want water currents to be able to carry you downstream, undertows that can drag you under water, avalanches and rockslides that can knock your butt down the mountainside, freefall for if you happen to fall off a cliff, or if your fly spell wears off while you're soaring. We ended up calling such forced movement: 'Flow' Okay, we wanted to avoid numerous special procedures for a variety of reasons. Mainly we wanted a system in which builders would have a lot of freedom and would be 100% compatible to the existing world files so we wouldn't have to go back through and edit the crap out of everything that already exists. We looked at the sector types and sector_flag bit vectors. Adding to those seemed very grubby. Then we got to Doors, and at the point it hit me. What we came up with: FLOW { F<direction> <message>~ <wait counter> <type> } Direction (standard) 0 North 1 East 2 South 3 West 4 Up 5 Down Message - optional, basically what it echo's to the player just before it pushes them into the next room. Wait Counter - 1 Wait counter is defined to be an equivalent unit of time to one wait state (typically about 4 seconds real time). Basically this is the length of time a player will remain in the room before it sends them into the next one. The units here (for reality sake) would be (seconds/room) So if you wanted to convert this to velocity (in rooms/second), to get some kind of realistic idea, just take the inverse. Type - Basically you can have as many of these as you feel like defining. Here are a few we came up with: 0 Water Current - for use in water_swim, water_noswim, and water_submerged rooms. Note that if the current pulls you under and you have no water_breathing spell, there is a chance you will take damage, but this is based on water_submerged room routines, not Flow itself. 1 Rock Slide - we wanted earthquake like damage to be done but it should a percentage based on max, instead of a set damage dice. so we came up with 1d<vict_level>+<vict_level>. 2 Avalanche - similar to above only add chill_touch affects. 3 Free_fall - for use with flying room, and the lack of a fly spell Start a counter if they hit a !flying room, then take <counter> * <char_weight> damage. *SPLAT* 4 Wind - This is the hardest so far to set up. Basically if the victim is flying, they get blown around, but if they are on the ground instead, you have to take weight, dex, strength into consideration. Anyway, the F flag would be fully optional just as a D or and E flag would be. For the record, I've not seen the actual implementation of this but I am told that it worked great on Circle 2.1 code. -Eric: rasta@CSOS.ORST.EDU, gt7282c@prism.gatech.edu | mud.CSOS.ORST.EDU 4000 ------------------------------------------------------+------------------------ "We expect such comments coming from you." - Robert & | God is not dead. He is Sara (Pestilence & Destiny) Implementors of Apoc IV | wizinvis w/ a headache!
This archive was generated by hypermail 2b30 : 12/07/00 PST