BunnyHugger goes to the board and writes, "I. Special Effects, II. Best Practices and Review, III. Final Exams" Beltrami nodnods? Skyler doesn't have homework and such, but enjoyed listening in last week, so stopped by again. :) J.P. steps off of the floating disk that carried him up. J.P. has arrived. You say, "Hello, J.P." BunnyHugger says, "Aha! Hi!" BunnyHugger says, "No homework was assigned last week." BunnyHugger says, "OK, let's get started." Claude earperks. BunnyHugger says, "First, I want to make sure all of you know about the public MUF library, and a little bit about how to work with MUFs. Not writing MUF, of course, just using ones that others have helpfully provided." BunnyHugger says, "So, first question for the class: who knows how to view the public MUF library?" Claude raises a paw after looking around. BunnyHugger says, "Claude?" You say, "It should be listed by @register." Chandra says, "@Plib or @Plib for a full listing."" BunnyHugger says, "Pardon, Austin, I'm getting a request that this room be on 'wa' for some reason." BunnyHugger says, "Do you think we should? The directions to get here are really convoluted." Niny'ah steps off of the floating disk that carried her up. Niny'ah has arrived. Niny'ah, late sorry Skyler says, "It's 'park'." Skyler says, "Right now, I mean." BunnyHugger says, "I know." You say, "Hello, Niny'ah." BunnyHugger says, "Hi there." Austin says, "It should be, yeah. D you have the whole mess?" BunnyHugger says, "Actually Chandra, it's 'plib', no @." BunnyHugger says, "For 'public library.'" Chandra says, "Yeah, I never remember what has @ in front of it unless it's something I use all the time." BunnyHugger says, "OK, it's 'luge S2 W1, mb, mb, hallway, classroom 1'" Chandra says, "But close enough." Austin gads. "We've got to get this place fied." Austin says, "But it's on whereare now." BunnyHugger says, "Thanks." BunnyHugger says, "OK, so, right. 'plib' is for viewing the public MUF library. Of course, this is only applicable on SpinDizzy." BunnyHugger says, "On FurryMUCK, for instance, it's 'programs', so there's no universal standard." Chandra says, "Other MUCKs may or may not have a Plib facility at all, too." BunnyHugger says, "And, it does accept a search string. 'plib karaoke' will find my karaoke program." GreenKai has disconnected. Niny'ah . o O ( 'fied'? ) BunnyHugger says, "That's correct. However, Claude's suggestion of searching by @register may or may not work because a program may not be properly registered, though it should be." BunnyHugger says, "In fact, last night I found a program in the public library that was not registered, 'keypad.muf,' and I had Austin fix it." BunnyHugger says, "In theory, all programs in the plib should be @reg'd by the name of the program, e.g. $keypad.muf, $noises.muf... but in practice if you find one that isn't, tell a wizard." Skyler says, "Also, in the case of @register, I (well, speaking for myself, anyway) get several hundred entries." Austin says, "Please. Often we don't realize something's supposed to be in there." BunnyHugger says, "Now, the search function for 'plib' will turn up stuff from the name of the program or its description. So for instance, I wanted to find out if there was a public program for setting up apartment buildings, when I built Candor Terrace." BunnyHugger says, "So I put 'plib apartment' and found 'AnotherDirectory.muf' which does just that. Hooray!" Claude giggles. BunnyHugger says, "OK! Sorry, conferring with wizards, I found another un-reg'd program." BunnyHugger says, "OK, so... let's say I want to have a door in my apartment that I can give people a code to open, but is otherwise locked." Chandra says, "So, question -- do Plib and $register use independent sources for maintaining and index of software, or is PLib reliant on the register listing/index for generating its own listing?" You say, "Interesting!" BunnyHugger says, "They're independent." BunnyHugger says, "The owner of a program enters it into the public library him or herself, and perhaps sometimes forgets to have it registered." BunnyHugger says, "Here, at least, 'plib' is going to generally get you the best list of usable programs." BunnyHugger says, "But all this stuff is manually done." BunnyHugger says, "So back to my idea for a code system for unlocking my hideout. Using the plib, do you think you can find a program that does that?" Beltrami nods. Chandra says, "Keypad.muf." BunnyHugger says, "Did you already know that, or did you find it with a search, Chandra?" Chandra says, "It's used extensively on the Freeloader and I use it on the Europa." BunnyHugger says, "Aw." Chandra says, "You can actually find it via Plib, too." Skyler says, "Maybe privacy-lock." Chandra says, "Plib keypad" Chandra says, "It also comes up if you do 'Plib lock'" BunnyHugger says, "Right. I wanted to see if people might try something like 'plib lock' to find it." Chandra says, "Along with about five other programs." Austin says, "Yes, that's what I leapt to. 'plib lock', that is." Skyler nods. "It's why I thought there might be another possibility or two." BunnyHugger says, "So Skyler was wondering if 'privacy-lock.muf' might do it." BunnyHugger says, "Just looking at the short descs, it might not be obvious what that does." BunnyHugger says, "So that leads to the next thing I wanted to show you: how to figure out what something does and how to install and use it." Chandra says, "ManualLock might be a good option, too." Claude listens and nods. BunnyHugger says, "So let's say I want to know what privacy-lock (or for that matter manual-lock) does. The plib should tell you how to look at the 'docs' of a given program. If it's set up sensibly, it SHOULD always be using the command '@view'." GreenKai has connected. BunnyHugger says, "So, '@view $privacy-lock.muf' should, if the program has been registered right, view the documentation for the program. (I've checked and in this case it does.) If not, you can use the DBREF, which the plib also gives." BunnyHugger says, "Try having a look at the documentation. (You have to confirm that you do in fact want to view it. Because what @view does is basically @forces the player to @list certain lines of the program. And it's dangerous to let things @force you, so it checks to make sure the action it's going to force really is just viewing some program lines as opposed to some exploit of @rec'ing all your stuff. n.n)" You say, "So we shouldn't be too upset if looking at the program doesn't yield any useful information?" Chandra ponders something for a moment then eases back into his chair. BunnyHugger says, "You mean, if you @view it and the documentation isn't very useful, or...?" You say, "No, I mean if you do look $privacy-lock.muf." BunnyHugger says, "Generally you won't be able to look at the program directly, unless it's in the room with you. But most folks don't put any information in the program's description." Austin says, "Oh, no, the descriptions of MUF is just scrolls. It's the muck's default for programs." BunnyHugger says, "Remember, a program is an object like any other -- it does have a sort of physical 'presence' and thus is located probably in a big chest of programs somewhere." Austin says, "And most programs are kept in various wizardly archives. Individuals who code keep their scrolls wherever they like." BunnyHugger says, "Right." BunnyHugger says, "I own a couple of plib programs and they're in a container I call 'Chest O' MUFs'." BunnyHugger says, "They can be anywhere; doesn't matter where." BunnyHugger says, "Because a program in the plib will be set L, meaning Link_OK, so that anyone can use it." Chandra says, "Except for some programs." Chandra says, "For example, you can't do that with pose, if I recall correctly." Chandra says, "So not all MUF programs installed on the MUCK will be accessible." BunnyHugger says, "That's not really a library program. It's a global, which is different. But -- actually, Morticon has changed 'pose' and 'say' so they ARE linkable, for reasons I'll explain some other time." BunnyHugger says, "Normally they're not." Beltrami nods? BunnyHugger says, "Because they're not publicly linkable programs. They are linked by the wizards to a publicly available ACTION, but the programs themselves are not actually public programs." Royce steps off of the floating disk that carried him up. Royce has arrived. BunnyHugger says, "You could do the same if you owned a MUF -- put an action that uses it in your property so anyone can run it, but leave the program itself inaccessible by others." Chandra nods. "That was an issue I ran into and I needed Morticon's help to get that set up last week." You say, "Sounds complicated. O hai, Royce" Beltrami smiles to Royce. Royce churrs, "Hello." Niny'ah looks lost BunnyHugger says, "It is, but it's not important at the moment. Right now I want to talk to you about looking at docs for a program." BunnyHugger says, "In theory, the documentation should be accessible by @view. If it's not... that's annoying. But you might still be able to find it yourself manually." Chandra says, "On two fronts: 1) Linkage, 2) enablement, but enablement is a bit of a separate thing, and I'm slightly digressing anyway. The only reason I bring it up is because at some point, a user might want to actually link to a piece of installed software and they might need special permissions or Wizard assistance to do so." BunnyHugger says, "Because @view just lists the lines of the program where the docs are written. If that's not set up, you can @list the whole program, which will blast you with a wall o text. But at the START of all that wall, should be the documentation." BunnyHugger says, "So if you try to '@view $privacy-lock.muf' and it says there are no documents, then you could try '@list $privacy-lock.muf' and then ignore everything but the lines at the start where the documents ought to be." BunnyHugger says, "In this case, though, it does have @view set up. Good!" BunnyHugger says, "But, it turns out, this isn't what we want. Chandra had it the first time: I was thinking of keypad.muf." Claude nodnods. BunnyHugger says, "@view $keypad.muf will show you the programmer's documents, which generally include a step by step guide to installing and using the program. Some programs, it's as easy as just setting up an action and linking it to the program (e.g. my 'karaoke.muf'). Others, you need to set up some properties, and that's the case in keypad.muf." BunnyHugger says, "Now, if you're totally new to this stuff, it might seem intimidating." BunnyHugger says, "And in all honesty, how well the programmer has written the documents will vary." You say, "Heh." BunnyHugger says, "But generally if you do exactly what they tell you there in the docs, you will be able to run all kinds of fun stuff." Chandra says, "No unified coding or documentation standards, but they're generally good enough. Some are ... sketchy." Chandra says, "But the best part about coding is breaking stuff and learning from your mistakes." BunnyHugger says, "And if you don't understand the docs, ask a wizard! Or a helpstaffer if we ever get a staff again. Ha ha." You say, "Based on my limited experience, the situation is better than in the software world at large." BunnyHugger says, "Or ask me! I like helping out and know how to run a few of the popular MUF programs." BunnyHugger nods to Claude. BunnyHugger says, "It's usually not bad. They do want people to make use of stuff, after all. Everyone's very proud of MUFs they write." You say, "And for good reason. Mwahaha." BunnyHugger says, "Any questions about using the public library or viewing documentation or anything related?" Beltrami shakes no. BunnyHugger says, "Great. Before we leave the topic of using MUFs from the library, I'd like to point out a few MUFs that I think are especially useful in your building." Claude earperks. BunnyHugger says, "First, let me propose a situation. Let's say I want to create a tent that I can pitch in various places, and that has an interior room. I want to be able to enter the tent wherever the tent object is located, and then be able to exit the tent back to the room where the tent is pitched." BunnyHugger says, "How do you think I should do that?" BunnyHugger looks around at the class for hands. Chandra says, "Well..." Claude raises a paw. BunnyHugger says, "I'll call on Claude." BunnyHugger says, "How would you do that, Claude?" You say, "Sounds like it could use the code for vehicles." BunnyHugger is quite sure Chandra knows. n.n Probably Claude too. BunnyHugger says, "IT is actually related to what you use for vehicles, yes!" BunnyHugger says, "Or what you can use for vehicles, at least." BunnyHugger says, "Do you know the MUF you'd want to employ?" Niny'ah says, "a vehicle with no wheels" BunnyHugger says, "Right, Niny'ah. A stationary vehicle." Niny'ah cheekygrin GreenKai giggles at the thought of using StarDrive to make a floating tent. You say, "Not by heart, no." Niny'ah <.< BunnyHugger says, "Well then, Chandra?" Chandra blinks and chuckles. "I was going to give a more general Answer." Austin says, "Gets better, GreenKai. You can use it for puppets too." BunnyHugger says, "Oh, all right. Well, let me set up the problem this way." 1) Search the existing available public MUF software available to see if something meets your needs. 2) Search for integrated MUCK methods for handling the issues (i.e. editvehicle) 3) See if MPI has something for this. Chandra says, "Ali's VARDIS is actually a good example of a 'stationary vehicle.'" BunnyHugger says, "Good. I'm actually aiming at 1), but you're right." BunnyHugger says, "It's easy to make it so your tent object linked to an interior room. As I've told you folks before, you can put an exit on an object and link it to a room." Niny'ah says, "Vardo" Chandra nods. "I just always remember that it's like a Vulpine TARDIS." Chandra says, "Especially since, you know, it makes the sound." BunnyHugger says, "So you could '@action enter tent=tent' and '@link enter tent='" BunnyHugger says, "And then if you did 'enter tent' when the tent was in the room, you'd go into the tent interior room." You say, "That's the easy part." BunnyHugger says, "Right. The problem is, there's no built-in way to exit the tent back to the room it's located in." BunnyHugger says, "What now? Well, we need something that will link to an @action that's inside the tent interior room, and teleport us back to the room the tent's in." BunnyHugger says, "The first time I made such an object, I did 'plib exit' to figure it out. That gets you a lot of stuff, but it does get you the basic program that will do this, if you pick through the listings." GreenKai looks, "Umm, what about ObjExit? It has objects, and exits in! That sounds good." BunnyHugger says, "Good!" BunnyHugger says, "Yep." BunnyHugger says, "ObjExit.muf is used for vehicles, but can also be used for my tent. It takes you from the interior room of a vehicle or tent or anything, back to the room it's sitting in." BunnyHugger says, "So now you know! And this is also most of what you'd need to build a vehicle manually, though as noted, StarDrive and other programs make the vehicle process even easier." Claude ooh, never thought of using it independently. Niny'ah will probably have to get someone to step her throgh it, really isn't grasping the linking concepts properly BunnyHugger says, "Which part can I help you with? Let me review a little and maybe that will help." Niny'ah headshakes, "It's partly being sick is draining my brainpower, part that I need a project to wrap the lessons around Niny'ah has trouble with learning things abstractly You say, "Open secret: everyone does. :P" BunnyHugger says, "An @action has two 'ends' -- where it's attached and what it's linked to. The basic format is '@action = . Once you've got that end of the rope tied, you tie the other end by linking it: @link =" BunnyHugger says, "What it's attached to, the first end of the rope, determines where it's accessed from. For instance, if it's attached to a room, anyone can access it. Same if it's attached to an object in your vicinity." BunnyHugger says, "What it's linked to determines what you find when you grab the rope." BunnyHugger says, "It can be a room, in which case you go to that room when running the action (so it's a door), or it can be a program in this case, in which case using the action runs the program." BunnyHugger says, "So in the case of my tent, I can attach an exit to a tent object, and link it to a room, and so if the tent is near me, I can 'enter tent' (name of exit) and it will bring me to the 'tent interior room' I made." Niny'ah says, "so where it is and what it does" BunnyHugger says, "Exactly." BunnyHugger says, "The trouble is getting back out, but I can use a program that does that for me. So I create an action called, say, 'out' and attach it to the tent interior room -- then link it to ObjExit.muf. Because the tent will move around, so you can't just link the interior exit action to any particular room." Niny'ah says, "link action to room = on ACT, transport triggering ENTITY (PLAYER, ZPET) to linked room" BunnyHugger says, "That's why we need a MUF to help. It basically teleports you out to the room the tent's in using MUF magic." BunnyHugger says, "That's one way to put it, Niny'ah." Niny'ah says, "well, that's what it Does, innit?" Niny'ah says, "is there a MUF behind that?" BunnyHugger says, "Yes, that's exactly what it does. I just tend to think of it colloquially as, well, a door! >:D" BunnyHugger says, "No, not for an ordinary action-linked-to-a-room. That's part of the MUCK's built in structure." Niny'ah says, "ahh" BunnyHugger says, "But, the good news is, I AM going to give you a project at the end of class and that may help you." Niny'ah says, "awesome" BunnyHugger says, "Oh, so the other half of a vehicle, really, is being able to listen outside the vehicle. Otherwise it's just going to crash into stuff if you can't look out the window. >;)" BunnyHugger says, "If you were setting up a vehicle 'manually' (or closer to manually), you could use 'listen.muf' for that. There are others too, that's just the one I know better." Claude nodnods. ( Hey, listen! ) Niny'ah facepalm BunnyHugger says, "Oh, but I wanted to mention how this, again, can be useful beyond vehicles." BunnyHugger says, "During the Olympics, you might remember we had a running race that went across several rooms." BunnyHugger says, "And a swimming race that did the same." BunnyHugger says, "For the running race, I created a viewing tent with 'monitors' in it to allow the judges to see what was going on in all rooms at once." Niny'ah headtilts. Hangon. did ZPet Whereare get defaulted to not show names? You say, "I wasn't there... but had RPs like that." BunnyHugger says, "Whereare never finds zombies. >:/" Niny'ah says, "nonono" BunnyHugger says, "It's a known annoyance." Niny'ah headshakes BunnyHugger says, "Oh?" Niny'ah says, "using the WA ~from~ a Zpet didn;'t show names just now" BunnyHugger says, "Odd." BunnyHugger says, "It works if you add the #names stipulation." Austin huhs. He didn't know that. TL> WhereAre 1.3b -- 20 Players awake -- 1 to show a room TL> -Location-----------------Players-Comments----------------------------------- TL> Adh Venturo Store 1 The SpinDizzy branch of Adh Venturo, Inc.! TL> The Rose Garden 1 The 'rose' garden -- center of the world! TL> The Old Lighthouse (N0 E2) 1 N0 E2 TL> Classroom 1 10 luge S2 W1, mb, mb, hallway, classroom 1 TL> ----------------------------------------------------------------------------- TL> 4 rooms listed. ... WhereAre 1.3b -- 20 Players awake -- 1 to show a room -Location-----------------Players-Comments----------------------------------- Adh Venturo Store 1 The SpinDizzy branch of Adh Venturo, Inc.! - Present: Xor = Directions: N0 E4, A The Rose Garden 1 The 'rose' garden -- center of the world! - Present: Azure = Directions: Just type 'rose' The Old Lighthouse (N0 E2) 1 N0 E2 - Present: JasonRDT Classroom 1 10 luge S2 W1, mb, mb, hallway, classroom 1 - Present: Royce Niny'ah J.P. Chandra Beltrami Claude Austin BunnyHugger - GreenKai ----------------------------------------------------------------------------- 4 rooms listed. BunnyHugger says, "' wa #names' will do it, but why it defaults differently I have no clue." Niny'ah says, "i don't mind" Niny'ah says, "i just thought it was different" Niny'ah says, "it's less spammy" Austin says, "I know why. When a character is created it's with the default wa settings of 1 #n #dir. But a zombie isn't created through the character-creation template and so has the built-in whereare defaults of nothing." BunnyHugger says, "Anyway, what we did was used a combination of 'objexit.muf' and 'listen.muf' to make a stationary vehicle with multiple 'windows'. We dropped the viewing tent object in a room and had an action on it that went to the 'viewing room'." BunnyHugger says, "And one going out that used Objexit." Niny'ah ohhh Claude nods? BunnyHugger says, "Then, we set up 'monitors' in the room by having several cameras in different locations that used listen.muf to broadcast to the tent interior room." Niny'ah says, "neat" J.P. has disconnected. BunnyHugger says, "The cameras were also zombies, so we could 'talk' through their 'intercoms' to tell racers what to do next." BunnyHugger says, "It got REALLY hard for me to keep track of. n.n" BunnyHugger says, "I had five cameras talking at me, and me doing 'cam1' 'cam2' etc. to talk to racers." You say, "I'm not surprised. But that's really ingenious." BunnyHugger says, "So that's just to show how stuff designed for vehicles can be useful for other purposes, particularly things like movable doors." You say, "Now you know how they must feel in a TV studio." BunnyHugger says, "You could use objexit.muf to make a magical door to somewhere that can be moved around... Jaxen even uses it to make his foxholes that can be dropped in two locations." BunnyHugger says, "So that you enter in one and pop out the other." You say, "So that's how they work!" BunnyHugger says, "And you can use 'listen.muf' to make something like a security camera." BunnyHugger nods! "I asked him and he confirmed that he uses objexit.muf to do it." Niny'ah says, "back to back objexit?" You say, "Makes sense once you know about it." BunnyHugger says, "You can have the target object (the one you leave from) be different from the one you enter from. It looks for a property called 'goto:' and you can enter the 'far' foxhole in that instead of the 'near' one." J.P. has connected. GreenKai thinks it could be good if the idle timer could be disabled for a period in particular rooms so that people didn't fall asleep in classe. J.P. giggles. BunnyHugger says, "So you can have the 'entering' action also be the 'exiting' action at the same time." BunnyHugger says, "And just skip the interior room." BunnyHugger says, "It was clever of him to realize it could work that way. >:)" You say, "Indeed." Servaldroid has teleported in. Servaldroid has arrived. BunnyHugger says, "The other two MUFs I want to mention as being GREAT ones to use for atmosphere, are noises.muf and movie.muf." Chandra street luges away... Chandra has left. Claude waves to the droid. BunnyHugger says, "You can @view either one to read how to install them. They are rather complicated because you have to set a lot of properties, but the docs tell you how." Austin says, "Those are really great. I think noises.muf might be as useful as a room description, really, for giving a setting its sense of place." BunnyHugger says, "noises.muf is the thing in the Rose Garden that tells you that a nonanthro fish just hugged an anthro wombat or whatever." BunnyHugger says, "And I agree with Austin." You say, "I used noises.muf, it's great." BunnyHugger says, "It makes a room feel like stuff is going on in it even if there are only a couple of players talking." You say, "Though tuning it is a delicate balancing act." BunnyHugger says, "Yes. Austin and I were discussing this." BunnyHugger says, "A big, common mistake is to have noises.muf fire too often and with too small a list of possible noises." BunnyHugger says, "Sally, for instance, initially set up the Olympic areas so that noises.muf had a 'chance' property of 1 in 30." ( I used to be an Olympian like you, until I took a javelin to the knee . . . ) J.P. giggles. BunnyHugger says, "This property tells you how likely it is to go off for each line of activity in the room. It only goes off when there's visible activity." BunnyHugger says, "Unfortunately, 1/30 meant it was firing about once for every 30 lines of stuff happening, which is really very often." Claude nodnods. "But that depends on how active the room is." BunnyHugger says, "In a busy room, that's going to make it way too frequent." BunnyHugger says, "It might be appropriate, as Claude notes, to have it be more frequent if it's something like a maze that a player is wandering around solo." BunnyHugger says, "In a busy room, I tend to set it at 1/600. Austin says the Rose Garden is set at 1/750. Just to give you an idea of frequency." You say, "Amazing." You say, "We need to write articles on this kind of stuff." BunnyHugger says, "The awesome thing about noises.muf is how tunable it is. You can do stuff with it that probably isn't what the programmer imagined, yet that's a sign of a good program." BunnyHugger says, "Let me give you an example." BunnyHugger says, "I use noises.muf a lot in my Bates Motel haunted house, which I Should bring out again come to think of it." Austin says, "Oh, definitely." BunnyHugger says, "I had one room where I wanted to *guarantee* that a certain thing would happen, but only after a long delay." BunnyHugger says, "So. I made a noises.muf list with only one item on it." You say, "Right!" BunnyHugger says, "Gave it a 1/1 chance of happening... and then made the 'delay' (how often 'til it can go off again) very long, so long that people would have left the room by then." BunnyHugger says, "So that people would walk in, stand there looking at the props and scenery, and then in 30 seconds... BAM! A startling event!!" BunnyHugger smiles. BunnyHugger says, "So you can play with stuff and if it's flexible, get what meets your needs with a little experimentation." BunnyHugger says, "movie.muf is also good for simple triggerable actions that do more than one line of stuff." GreenKai says, "Can you have a noise that turns itself off?" BunnyHugger says, "Unfortunately, noises.muf, at least, has no way to tell it to turn itself off after going once. But I set the 'wait' time so long that in a haunted house, well, it's your own fault if you hang around that long. I set it at half an hour or something." GreenKai says, "Like, if there were a fire, but maybe it would burn itself out sometime." BunnyHugger says, "Maybe someone should write an add-on. >;)" [Connection froze here.] BunnyHugger says, "Now, movie.muf was used by a number of builders in the amusement park... it's also used for showing the MST3K text movies." Claude earperks. BunnyHugger says, "What it does, is allows an action that you trigger, to set in motion a 'movie' -- a script of text that goes by according to a delay that you set." BunnyHugger says, "It's also quite customizable. You can set the default delay between each line, but then if you want one line to have a long delay, you can include that in the script." You say, "I could have used that for the House of Cats if I knew about it." BunnyHugger says, "It's complicated if you want it to be, but pretty simple if you don't want it to be." BunnyHugger says, "Yes, Claude, it would be a good thing to use for that!" BunnyHugger says, "The Shooting Star roller coaster that I built in Edgeworld Park uses it. When you trigger boarding the coaster, it gives you messages of climbing the lift hill, going down the hill, going around the turnaround, etc." BunnyHugger says, "It's just another great MUF to use for making your stuff more interactive." BunnyHugger says, "But the plib is HUGE. I find new stuff in there all the time." Claude should poke his nose in it sometime. BunnyHugger says, "There are 70 programs in it currently. You can do 'plib *' to view every darned one." ---DBRef-Name---------------------Owner----------------Modified-Docs--------- - #19 lib-index SpinDizzy 02/18/06 @view Make your own indices, for fun and profit. - #106 Zomcont.muf SpinDizzy 02/18/06 @view An easy way to work with puppets/zombies (also replaces "pet") - #108 do-nothing.muf SpinDizzy 04/10/09 @list Do nothing. Link actions that run MPI to this. - #139 sq-action.muf SpinDizzy 02/18/06 @view Make your own hug-like globals, and live with them. - #147 gen-mesgboard-3.muf SpinDizzy 02/18/06 @view read;write;editmesg;erase;protect your own message board - #165 obv-exits.muf SpinDizzy 02/18/06 @list A better wrapping obvious exits. To quickly use: '@succ here=@165' - #1562 StaffManager.muf Austin 02/18/06 @view Make up lists of people, who do stuff. - #2005 liarpic.muf Boki 04/08/12 @list Graphically display 6-sided dice. For example: [Command] 1;2;3;4 - #2027 @name.muf SpinDizzy 02/18/06 @list A program to rename things, if @name isn't enough by itself. - #2301 Add-Remove-Names.muf SpinDizzy 02/18/06 @view Add or remove names from exits you own, keeping the order the same. - #2304 bcastall.muf SpinDizzy 02/18/06 @view Broadcast everything from one room to another - #2305 mirrorhack.muf SpinDizzy 02/18/06 @list Mirror program compatible with MPI descriptions - #2306 PeekWho.muf SpinDizzy 02/18/06 @view See who's through that exit, if you can peek. - #2372 fishies.muf SpinDizzy 02/18/06 @view Makes a fishtank full of randomly moving fish - #2375 odrop.muf SpinDizzy 02/18/06 @view Change odrop message on an exit to vary according to the room left - #2376 quiet-sweep.muf SpinDizzy 02/18/06 @view Sweep players without notice to the room - #2383 noises.muf SpinDizzy 02/18/06 @view A program to make random noises in a room - #2391 doorbell.muf SpinDizzy 02/18/06 @view A simple doorbell program - #2434 Rand-Exit.muf SpinDizzy 02/18/06 @view Multiple exits from one action? It's not madness, it works! - #2460 privacy-lock.muf Austin 02/18/06 @view Secure your room against those pesky intruders. - #2638 timelock.muf SpinDizzy 02/18/06 @view Lock an exit/object for a specific time of day - #2665 map.muf Terry 09/18/12 @view Create, edit, and display maps. - #2793 vlisten.muf Austin 02/18/06 @view Listen inside and outside a vehicle - #2830 t-hugall.muf Terry 02/18/06 @view hugall that pays attention to noglobals, nohug, etc. - #2851 ObjExit.muf Austin 02/18/06 @view Vehicle -- Go from inside to outside, in one easy exit/action - #3138 AnotherDirectory.muf Austin 02/18/06 @view Set up your own apartment building, with claimable rooms for all. - #3208 TRaM-finish.muf SpinDizzy 02/18/06 @view Undo the worst temporary transmogrifications that hit you. - #3239 containment-shell.muf SpinDizzy 02/18/06 @view Create a more customized container/inventory/library - #3486 farhug.muf SpinDizzy 02/18/06 @view Make your own slightly annoying farhug globals - #3553 grandfatherClock.muf Austin 12/15/07 @view Overly configurable grandfather clock program - #3631 gotoxy.muf Terry 02/18/06 @view Goto a room on the map by x,y coordinates. Safer than the old one. Really. - #3687 fox-com.muf Austin 10/21/12 @view Vehicle -- Your own interstellar radio/TV network! - #3727 TRaM-start.muf SpinDizzy 02/18/06 @view Temporary transmogrification, courtesy an incomprehensible interface - #3874 fakemunchies.muf Austin 02/18/06 @view Create your own fake food or drink objects, to order. - #3875 makefood.muf Austin 02/18/06 @list Make your own food. - #3876 makedrink.muf Austin 02/18/06 @list Make your own drinks. - #4277 gwen-sit.muf Austin 02/18/06 @view Red-hot seating action, in your own home! - #4377 dice.muf Austin 02/18/06 @list Roll dice for fun and profit - #4580 pageturner.muf SpinDizzy 02/18/06 @view A program to turn a set of lists into a book that you can 'turn' pages of. - #5566 Window.muf Austin 05/21/06 @view Vehicle -- Look at what's outside (good desc for 'out;exit;leave') - #5757 commandCounter.muf Austin 02/18/06 @view Count the uses of your actions - #5828 Sensor.muf Austin 02/18/06 @view Vehicle -- What's happening all around you? Find out! - #5848 zoneWhoSpe.muf Morticon 02/18/06 @view Find out who is in an area you own, subject to privacy restrictions. - #6287 lingo.muf Austin 02/18/06 @view Try to "dig" that "hip" "new" talk of the "cool" folks - #6489 StarDrive.muf Austin 04/03/10 @view Vehicle -- Make your vehicle work! - #6860 Listen.muf Austin 02/18/06 @view Vehicle -- Stop, Children! What's that sound? - #7365 vote.muf SpinDizzy 11/12/11 @view Set up voting machines! Dangling chads sold separately - #7892 movie.muf Austin 02/18/06 @view Be your own Eric von Stoatheimm! - #8844 Perudo.muf Boki 02/18/06 @list GAME: Liars Dice / Perudo for up to nine players! - #9956 aibot-stub Austin 03/01/07 @view Intelligent Artifacts -- cread for help - #11609 makeFakeSouvenir.muf Austin 08/25/10 @view Create fake items, as a souvenir vendor might do. - #11733 rockpaperscissors.muf Morticon 02/18/06 @view Play rock paper scissors with a friend! - #12072 EZcom.muf SpinDizzy 08/06/11 @view As the name suggests, a nice easy com program. Written by Kinsor. - #12240 NickNack.muf SpinDizzy 07/30/12 @view A boggle-like game. - #12386 remoteTram.muf Austin 01/01/09 @list Add remote control to TRaM objects - #14216 hurl.muf Morticon 07/12/10 @view Records URLs said in a room for later viewing. - #15648 countdown.muf Logan 02/18/06 @list Simple countdown timer with notice every ten seconds countdown for final ten - #16550 ManualLock.muf SpinDizzy 02/18/06 @view Allow others to lock and unlock a doorway. Good for homes. - #16582 mancala.muf Boki 04/08/12 @list Mancala - The ancient Game of stones. - #17497 snow.muf Austin 12/07/06 @view Create your own snowstorms! - #19425 coaster.muf Austin 08/24/11 @view Build an amusement park-style ride - #20809 proplock.muf SpinDizzy 09/23/12 @list @lock exits based on an object's prop and value. - #20844 keypad.muf SpinDizzy 09/23/12 @view Remote keypad to unlock exits for brief periods. - #21210 dartboard.muf SpinDizzy 09/23/12 @view Throw darts with the power of math! - #21810 CorkBoard.muf Morticon 10/17/12 @view A new an improved bulletin board program (courtesy of Kelketek). - #21879 karaoke.muf Ping 08/23/11 @view Facilitates scripted performances like songs (by BunnyHugger). - #22092 makeFakeSouvenir-new.muf Morticon 03/28/12 @view Create fake items, like makeFakeSouvenir.muf, but uses props and money. - #22378 RoomSweep.muf Austin 09/18/11 @view Auto-sweep someone who's fallen asleep in your room. - #22512 DoorCheck.muf BunnyHugger 08/24/12 @view Find out the type of thing an exit is linked to (by BunnyHugger). - #22979 AltSafety.muf BunnyHugger 01/27/12 @view Helps avoid embarrassing mistakes when playing more than one character. -----------------------------------------[ 70 programs found ]-------------- BunnyHugger says, "Poke through it sometime and you might find stuff you didn't know was possible, to make your rooms really snazzy." BunnyHugger says, "Quirky stuff. Like '$fishies.muf' that makes randomly moving fish for a fishtank." BunnyHugger says, "Er, which isn't @reg'd." BunnyHugger facepaws. BunnyHugger says, "And useful nuts and bolts stuff, like ObjExit.muf." Skyler says, "(Which _also_ isn't re...oh, wait, it is.)" BunnyHugger says, "That one is." Claude giggles. "Don't tempt the cat!" You say, "Wow, a game of Mancala." BunnyHugger says, "It's all stuff some MUF writer either thought would be cool, or created to solve a problem that was driving hir crazy." Austin says, "Got fishies.muf registered now." BunnyHugger says, "Thanks!" BunnyHugger says, "That's my little presentation about using the public library..." GreenKai tries @reg, blinks at wall of text. BunnyHugger says, "I'd recommend, by the way, the vehicle editor (editvehicle) for setting up vehicles." BunnyHugger says, "Normally I like to tell people to learn to do stuff manually for experience, but vehicles are so bothersome to set up I really think this is a case where automation is warranted." BunnyHugger says, "You can use the various programs to set up listening/exiting/moving etc. separately, but ..." BunnyHugger smiles. Claude nodnods. BunnyHugger says, "OK, any questions about using the public program library or setting up programs?" You say, "It's all clear now." BunnyHugger says, "I hope so! Please, feel free to ask me for help." BunnyHugger says, "I know how to use movie/noises pretty well and can definitely assist with those." BunnyHugger says, "Remember, '@view $movie.muf' and '@view $noises.muf' to learn to set them up." BunnyHugger says, "Last thing for today is a bit of final review of good building hygiene." Claude earperks again. BunnyHugger says, "First question: what properties should be set on exit/actions?" GreenKai considers, "So if there's a property I have to set for the program to work, I @set it on the action, right?" BunnyHugger says, "GreenKai, it depends. If it doesn't tell you, it probably means on the action. Sometimes, though, it'll be on an object, but if so the docs should tell you that." Austin says, "It's just unpredictable enough to keep wizards in business." GreenKai nods, "This one said there was one that could be set on players as well." BunnyHugger says, "IT could even be on yourself (karaoke.muf looks for props on the user)." You say, "noises.muf looks at the room it's set on." BunnyHugger nods. BunnyHugger says, "It's different for each program, in other words." BunnyHugger says, "It really depends on what the program does, which it's going to need." BunnyHugger says, "But it should tell you that." GreenKai says, "I guess you have to have a certain level of M to do that, though. Otherwise anything could sneakily look at everything on you." BunnyHugger says, "It requires M2 to read props off the user." BunnyHugger says, "But it can't read the wizard-only ones like your alt list or your force-lock." Claude idles for a moment. BunnyHugger goes to the board and writes, "Tidy actions" as a header and draws a line under it. BunnyHugger says, "This is a bit of review and recommendation for best practices." BunnyHugger says, "In general, for any ordinary action (such as a door from one room to another), it should have set:" Austin says, "Or our secret files on everyone. Just saying." BunnyHugger writes along with what she says, "@succ, @osucc, @drop, @odrop, and @desc." She adds, "It also should ALWAYS be linked to something, lest it be @chowned by someone else. Even if it's only linked to $nothing." BunnyHugger adds, "If an action is ever going to be locked, it should also have @fail and probably @ofail set." Claude shakeshakes and listens. BunnyHugger writes next to it, "Tidy objects" and puts the same list there too. "An object should also have the same properties set, including @fail; @ofail is a bit more optional, I would say, since others may not need to know someone just tried to pick something up and failed." BunnyHugger says, "Plus, an object should be @locked to yourself if you don't want others carrying it around. Generally, unless you really want it to be pick-up-OK, I would recommend locking." BunnyHugger says, "Sorry, by 'object' I actually mean 'thing type object' -- that was a bit unclearly put." BunnyHugger says, "Since of course everything we deal with on the MUCK is an object of some sort!" Claude nods! BunnyHugger says, "A thing also needs to be @linked to a home. This defaults to you when you @create it, but you can change it with @link thing=. You should remember to @link a thing when it's @chowned to you, since it will still have its old home otherwise." ### Azure has posted a new message entitled "Imaginary Time" in board "SpinDizzy Main Bulletin Board". Type '+read 46' to read it. BunnyHugger erases the board to make her column read, 'Tidy things'! BunnyHugger writes, "Tidy rooms!" and under it writes "Environment rooms" and "Obvious exits". BunnyHugger says, "A room should have an appropriate environment room, either one of the basic ones like '$indoors' or '$outdoors' or -- if you're building a whole area -- one that you create for your area." BunnyHugger says, "Generally, too, you should leave your exits obvious, which is the MUCK default and is part of the building code. If you have a real reason to make them non-obvious, like it's a puzzle or it's actually a program action and not an exit to somewhere, you can set them DARK and they will no longer show up." You say, "I only needed to do that once, for mood. It was strongly hinted at in the room desc." GreenKai wags her tail, "My room *is* an environment!" BunnyHugger says, "Giving local exits the same name as global exits/actions is generally a bad idea. The local will usually override the global, but it could cause confusion. The exception is when this is done for a specific reason: Aleister, for instance, once had an RP in which he made a local 'say;"' and @linked it to $nothing in order to indicate that everyone had been magically muted." BunnyHugger says, "Which I thought was brilliant." Beltrami blinks? Servaldroid opens its mouth and says, in a flat, baritone voice, "There are also times when you want to override actions higher up on the food chain, particularly when you want more control over your environment." Claude tilts his head at Beltrami. BunnyHugger says, "Well, for people unaccustomed to it, that was a big hindrance, Beltrami." BunnyHugger says, "Right. As I said, you might have reasons. But normally, it's something to be cautious about." BunnyHugger looks over her notes. BunnyHugger says, "I think that's it for my lesson today." Beltrami nodnods. BunnyHugger says, "Now let me leave you with your take-home FINAL EXAM. If you complete this successfully, and also complete a short written final, you will receive your diploma for this class." Servaldroid says, "Another case might be if you want to implement your own version of a software program. The best way to handle this is to 1) understand what you want to do differently, 2) implement those changes in your own code, 3) work with the Wizards to get this set up. This is pretty atypical, and some MUCKs might allow you to set your own MUCKer permissions for an action (which allows for precedence) but for the most part, it's an exercise in collaboration and care." BunnyHugger nods. BunnyHugger says, "Now, Austin and I are going to be away at FurFright this next weekend." BunnyHugger says, "I'm thinking of holding the written final on Sunday, November 4, at 10:00 (our normal class time). That's in two weeks." BunnyHugger says, "If that's OK with everyone we'll do that. Anyone who WANTS to take the final and can't make that time, can arrange a make-up with me." BunnyHugger says, "Taking the final/doing the final project is going to be limited to anyone who has come to AT LEAST ONE class. I don't want a bunch of folks suddenly appearing to take the final who've never been to class. I get enough of that in real life. >;)" Austin grins. [OOC] GreenKai says, "Do any of them pass?" BunnyHugger says, "Sometimes." Skyler says, "Sheesh." BunnyHugger says, "Often they pass, but with a much lower grade than they probably could have easily gotten... because the fact that they can pass without ever going to class shows they're pretty sharp,b ut sharp enough that they should have been able to get an A or B in the class instead of a D." [OOC] GreenKai had a friend who did that once and scored 97% on the exam. Got a 5 for effort (6 is worst) and a 1 (best) for achievement in the class review. BunnyHugger says, "Are you all ready for your final instructions?" GreenKai nodnods. Niny'ah is You say, "Sure!" Beltrami nodnods. Final exam (practical section) You are to create a building project that meets the following specifications. Although I won't know for sure whether you "cheated" and used something you already own, I would prefer that it be a new creation. (Exception: you may use objects created for previous homework assignments as part of this.) You are to build an area that: -- Makes use of at least one environment room of your own creation, and that environment room should be appropriately parented also -- Contains at least three rooms, linked by exits -- Is either linked to from somewhere accessible from the grid (e.g. an apartment room, a grid square...) or via an object (e.g. a teleporter, a magic door). -- Contains a resident zombie that you can control via an action -- Contains a thing type object with some sort of interactive element -- Uses noises.muf, movie.muf, keypad.muf, or some other "special effects" type MUF for atmosphere or functionality Remember to follow best practices in building your area! I reserve the right to award bonus points for creativity. Your building project is due before you take the written final exam, and I will inspect it anytime before then; just find me and ask. The written final will cover technical knowledge, definitions, etc. It will be open notes, but timed. It will be held on November 4 during our usual class period or by appointment. BunnyHugger passes out the exam instructions. Skyler hmms. "What of the 'thing type object'? Something that say, you can look at, or more?" BunnyHugger says, "Skyler, this refers to an earlier lesson." Claude rubs his eyes and reads. Skyler says, "Yeah, I kinda figured it did." BunnyHugger says, "I taught the class how to put @actions on objects to make them 'do things.'" Skyler aaahs! "Oh, okay." BunnyHugger says, "So it could be, like, a record player you can start up, or a refrigerator you can open... or anything like that. It doesn't have to link to a MUF, though it could if you wanted." BunnyHugger says, "Or use MPI. For students who know MPI, that's not off limits either, but it's not required. A little MPI will have to be used to make the zombie work, but otherwise not." BunnyHugger says, "Now, you ARE allowed to ask me questions while you work." Claude nodnods. "I have an idea, but it will need developing." BunnyHugger says, "I may try to make you work through things with assistance rather than telling you straight out, but asking is OK. Asking others is also OK." BunnyHugger says, "Being able to use the community's resources is, after all, part of learning to build." BunnyHugger says, "But struggling on your own as much as you can stand, is also good for your skills." Claude will need help with the concept. :P BunnyHugger says, "So I'd say, work through until you're frustrated, then, instead of throwing things, ask me or someone else for help." Skyler says, "What if what I want to do is use throw.muf?" BunnyHugger laughs. BunnyHugger says, "That's OK then." BunnyHugger says, "The final exam won't allow asking assistance, but WILL allow you to use the help files and any notes you have including the logs." BunnyHugger says, "The written final, that is." J.P. has disconnected. PatchO'Black has arrived. BunnyHugger says, "I'm modeling the final after Joshua's MUF class final, though in his case, the practical and written exams were one and the same and were timed. I wanted to let you have more time to do the practical part." Beltrami smiles to PatchO'Black. You say, "Hello, Patchy." BunnyHugger says, "Have fun with this!" BunnyHugger says, "It would be fun to have an 'open house' after graduation to look through everyone's building projects." BunnyHugger says, "My understanding is that Joshua will start his MPI class as soon as we're done with this." PatchO'Black sits in the back, so as not to interupt the lesson, if it is still going on. You say, "Ooh, that's a great idea!" BunnyHugger says, "I recommend moving onto that, because MPI combined with building gives you a lot of power even if you don't write MUF." BunnyHugger says, "I for one hardly know MPI and will be taking that class." BunnyHugger says, "Claude, you can close the log if you're logging. I think we're done!" BunnyHugger says, "Class is dismissed!" You say, "Thank you!" Beltrami touches her chin.