Three cellular phones

This is a selection of three different objects that each act as a personal cell-phone! There are three different versions here, depending on what you want to use, not three objects that must be linked together. The first two are designed to be used as seperate objects. The third is configured to be set on the character using the phone, and includes options for either an external phone, or, cyber-punkish implanted phone.

Category: Other
Compatibility: PennMUSH, TinyBit, TinyMUSH, TinyMUX.

Instructions

Copy and paste the below code into a compatible MUSH or MUX.

MUSHCode for Three cellular phones

@@ This is a selection of three different objects that each act as a personal cell-phone!
@@ There are three different versions here, depending on what you want to use, not three objects
@@ that must be linked together.
@@ The first two are designed to be used as seperate objects. The third is configured to be set on
@@ the character using the phone, and includes options for either an external phone, or, cyber-punkish
@@ implanted phone.
@@ Credits maintained where they were found on the original object.

@create Cellular Phone=10
@lock Cellular Phone=*Sorex
@Desc Cellular Phone=You see a state of the art cellular phone. It is sleek and black and fits easily into any [get(me/ph-hold)]. <phonehelp for help>
&PH-HELP Cellular Phone=$phonehelp:@pemit [v(#)]=[repeat(-=,13)] [name(me)] Help [repeat(=-,13)]%r%r[ljust(Dial <player>,18)]Dails the player%r[ljust(Phone <mesasge>,18)]Sends a message to the player%r[ljust( ,18)]that others in the room can hear.%r[ljust(Qphone <message>,18)]Sends a Quite message to <player>%r[ljust(Pswi <player>,18)]To switch as if the phone was handed to another Player%r[ljust(Answer <player>,18)]Answers Players call.%r[ljust(Hangup,18)]Hangs the phone up and puts it away.%r[ljust(Noanswer,18)]To let the person know you are unable to answer them.%r[ljust(Busy,18)]To let the person know the phone busy.%r[ljust(Pickup,18)]Picks up your ringing phone.%r[ljust(Pplace <place>,18)]Indicates the place where you will keep your phone.%r[ljust(Phans <message>,18)]Will set up your greeting when you answer the phone.%r%r[repeat(-=,13)] [name(me)] Help [repeat(=-,13)]
&CMD-HOLD Cellular Phone=$pplace *:&ph-hold me=%0;@pemit [v(#)]=Your [name(me)] will be placed in %0 when you are not using it.
&PH-HOLD Cellular Phone=pocket
&CMD-QPHONE Cellular Phone=$qphone *:@switch [Gt([u(call)],0)]=1,{@force [owner(me)]=pose speaks quietly in to [v(p)] phone.},1,{@pemit [u(calling)]=You hear over the phone, [u(phone-pose,%0)].},1,{@pemit [v(#)]=You softly say into the phone to [name([u(calling)])], so no one else can hear, [u(phone-pose,%0)].},@pemit [v(#)]={You might want to call you want call someone first.}
&CMD-ANSWER Cellular Phone=$answer *:@vs me=[v(p)];&user me=[v(#)];&calling me=[num(*%0)];@switch [hasflag(*%0,CONNECTED)]=1,{@switch %vr=0,{@wait 2=@tr me/ring-tr},2,{@pemit *[v(0)]=The phone rings, but there is no answer. An answering service picks up and asks you to leave a message (+mail [name(owner(me))]);@vr me=0},3,{@pemit *[v(0)]=You dial the number, and find that the line is busy.;@vr me=0},1,{@wait 3=@force [owner(me)]=pose pulls the phone out of %vs [get(me/ph-hold)] and swings it open, answering it.;&CALLING me=[num(*%0)];&CALL me=1;@wait 3=@pemit *[v(0)]=[name([v(#)])] says over the phone, "[u(dat-answer)]".;@vr me=0}},{@pemit [v(#)]=Sorry that player is no longer connected.}
&DAT-ANSWER Cellular Phone=G'day, aye. You gots Andi here.
@VP Cellular Phone=1
&CMD-DIAL Cellular Phone=$dial *:@switch [hasflag(*%0,CONNECTED)]=1,{@force [owner(me)]=pose pulls out [v(p)] cellular phone and dials a number.;@pemit *%0=Your IC telephone rings if you are anywhere near it. (page [name(%#)] to answer).;&CALLING me=[num(*%0)];&CALL me=1},@pemit [v(#)]={Sorry that player is not connected to the MUSH at this time.}
&CMD-PHONE Cellular Phone=$phone *:@switch [Gt([u(call)],0)]=1,{@force [owner(me)]=pose on the phone, [u(phone-pose,%0)];@pemit [u(calling)]=You hear over the phone, [u(phone-pose,%0)]},@pemit %#=You wanna call someone first?
&CMD-HANGUP Cellular Phone=$hangup:@switch [Gt([get(me/call)],0)]=1,{@force [owner(me)]=pose folds the phone closed and tucks it neatly into [v(p)] [get(me/ph-hold)].;@pemit [get_eval(me/calling)]=You hear the phone click as it is hung up.;@set me=Dark;&CALL me=;&CALLING me=;@vr me=0},@pemit %#=You're not on the phone with anyone!
&RING-TR Cellular Phone=@pemit/c [loc([owner(me)])]=[name([owner(me)])]'s phone rings.;@pemit *[u(calling)]=The phone on the other end rings;answer [u(calling)]
&CMD-PICKUP Cellular Phone=$pickup:@vr me=1
&CMD-NOANSWER Cellular Phone=$noanswer:@vr me=2
&CMD-BUSY Cellular Phone=$busy:@vr me=3
&CMD-ANSWERM Cellular Phone=$phans *:&dat-answer me=%0;@pemit [v(#)]=Your greet to a phone call is "%0".
@VR Cellular Phone=0
&CALLER-DAT Cellular Phone=andi
&CMD-HAND Cellular Phone=$hand phone to *:@switch [Gt([get(me/call)],0)]=1,{@force [owner(me)]=pose [v(#)] hands the phone to [capstr(%0)];&calling me=%0},@pemit [v(#)]={You might want to call you want call someone first.}
&USER Cellular Phone=#2561
@Adesc Cellular Phone=@pemit [owner(me)]=<FROM your [name(me)]> %N just looked at me.
&PHONE-POSE Cellular Phone=[switch(mid(%0,0,1),:,[delete(%0,0,1)],;,[delete(%0,0,1)], "%0")]
&CMD-CHANGE Cellular Phone=$pswi *:@switch [gt([u(call)],0)]=1,{@pemit [u(calling)]=%N switches over to [name(num(*%0))] to talk.;@pemit %#=You switch to talking to [name(num(*%0))];&calling me=[num(*%0)];@pemit [u(calling)]=When the phone is handed to you you hear %N on the other end of the line.},{@pemit %#=Maybe you should call someone first.}
@VS Cellular Phone=his
@set Cellular Phone=DARK
@set Cellular Phone=INHERIT
@set Cellular Phone=MONITOR
@set Cellular Phone=OPAQUE
@set Cellular Phone=PARENT_OK
@set Cellular Phone=COMMANDS

@create PARENT: Cellular Phone=10
@Desc PARENT: Cellular Phone=This appears to be your standard cellular telephone - a dark grey oblong that flips open to reveal a numeric keypad with adjoining microphone, speaker, and a few extras. A short protrusion at the upper end extends to form a short antenna.
&RING PARENT: Cellular Phone=$ring:@pemit/c [room(me)]=[switch(rand(4),0,{%N's cellular suddenly begins to ring!!},1,{A nearby phone begins to ring - it seems to be coming from %N.},2,{A phone somewhere nearby begins to ring - it appears to be %N's.},{%N's cellular phone begins to ring.})]
&ANSWER PARENT: Cellular Phone=$answer *:@switch/first [setq(0,num(*%0))]%q0:[type(%q0)]=#-1:*,{@pemit %#=OOC: I can't find a player named '%0'.},%#:*,{@pemit %#=OOC: You cannot call yourself.},*:PLAYER,{@switch hasflag(%q0,CONNECTED)=0,{@pemit %#=OOC: That person is currently disconnected.},{@pemit/c [room(me)]=%N removes %p cellular, flipping it open to answer the call.;@pemit %#=<Phone> You hear a click as the line is established.;@pemit %q0=<Phone> The phone is picked up at the far end.;&status me=active;&called me=%q0}},{@pemit %#=OOC: I can't find a player named '%0'.}
&BUSY PARENT: Cellular Phone=$busy *:@switch/first [setq(0,num(*%0))]%q0:[type(%q0)]=#-1:*,{@pemit %#=OOC: I can't find a player named '%0'.},%#:*,{@pemit %#=OOC: You can't do that.},*:PLAYER,{@pemit %#=OOC: Your line is busy.;@pemit %q0=<Phone> After a moment, you receive a busy signal from the far end.%RPossibly %N's phone is in use or is off the hook.},{@pemit %#=OOC: I can't find a player named '%0'.}
&RINGS PARENT: Cellular Phone=$rings *:@switch/first [setq(0,num(*%0))]%q0:[type(%q0)]=#-1:*,{@pemit %#=OOC: I can't find a player named '%0'.},%#:*,{OOC: You can't do that.},*:PLAYER,{@pemit %#=[switch(v(message),,OOC: Your phone rings and rings - but no one's there to pick up.,OOC: Your phone rings and rings before the answering machine picks up.)];@pemit %q0=<Phone> The phone at the far end rings and rings, but there's no answer.[switch(v(message),,,{%bAfter a moment an answering machine picks up: (OOC: +mail %N to leave a message.)%R%R[space(5)]"[u(message)]"})]},{@pemit %#=OOC: I can't find a player named '%0'.}
&HANGUP PARENT: Cellular Phone=$hangup:@switch v(status)=inactive,{@pemit %#=OOC: You're cellular is already hung up.},{@pemit/c [room(me)]=%N clicks %p cellular to disconnect the call and hangs up.;@pemit [v(called)]=<Phone> There is a click as the phone at the far end is hung up.;&called me;&status me=inactive}
&STATUS PARENT: Cellular Phone=inactive
&OPTIONS PARENT: Cellular Phone=$options:@pemit %#=[repeat(=,78)]%ROptions: On Receiving a Call%R%RAnswer <person>%t%tanswer the phone when <person> calls you%RRing%t%t%temit _your_ phone ringing if someone calls you%R%RBusy <person>%t%tif your phone is busy/off the hook icly%RRings <person>%t%tif there's no answer and they should leave a message%RUnlisted <person>%tif your number is unlisted%R%RNote: <person> for all of these cases should be the person who called you.%R[repeat(=,78)]
&PHONEHELP PARENT: Cellular Phone=$phonehelp:@pemit %#=[repeat(=,78)]%R[center(- - - Cellular Phone Commands - - -,78)]%R[repeat(-,78)]%RDial <person>%t%tcall someone on your cellular%R%RAnswer <person>%t%tanswer the phone when <person> calls you%RRing%t%t%temit _your_ phone ringing for anyone nearby%RBusy <person>%t%tif your phone is busy/off the hook when called%RRings <person>%t%tif there's no answer at your phone when called%RUnlisted <person>%tif your number is unlisted when called%R%RTalk <pose/speak>%ttalk into your cellular (you can be overheard)%RTalkq <pose/speak>%ttalk quietly into your cellular (cannot be overheard)%RGruff <pose/speak>%ttalk in an unrecognizeable voice%R%RHangup%t%thangup your phone (emits to both ends of the line)%RHangupq%t%thangup the phone (emits to your end only)%R%RType 'phonehelp2' for further information.%R[repeat(=,78)]
&PHONEHELP2 PARENT: Cellular Phone=$phonehelp2:@pemit %#=[repeat(=,78)]%R[center(- - - Cellular Phone Notes - - -,78)]%R[repeat(-,78)]%R* Talking on the Phone *%RAll of the talking commands: talk, talkq, and gruff make use of the standard pose/emit characters - namely (:,;,|) in the same manner as tabletalk . This allows you to pose and emit across the phone line.%R%R* Bugging & Being Overheard *%RCurrently no one can overhear you (unless you want them to) on the phone. Phones are not code-bugged in any way and are solely designed as an rp aid. %R%R* Leaving Messages *%RThis code assumes the use of the +mail system for leaving messages on people's machines. To leave a message type: +mail <person>=Phone Message%R%R* Anonymous Calls *%RAlthough fairly secure, there are ways to OOCly ascertain identity through this phone system. At minimum if you want to make an anonymous call you should probably change your name (and +finger info) prior to making it. Gruff is also a good command for this sort of thing.%R%RType 'phonehelp3' for configuration information.%R[repeat(=,78)]
&PHONEHELP3 PARENT: Cellular Phone=$phonehelp3:@pemit %#=[repeat(=,78)]%R[center(- - - Cellular Phone Configuration - - -,78)]%R[repeat(-,78)]%RThis code is designed with the intent to simulate personal cellular phones that would normally be carried by an individual. Phones can be desc-ed to look like any style you want. All phones should be uselocked (see below) to keep other characters from using them inadvertantly. The MESSAGE attribute below is optional, if you'd like to have a message emitted to people calling you on the 'rings' command.%R%R@desc phone=<what you want it to look like>%R@lock/uselock phone=me%R&MESSAGE phone=<message on your answering machine, if you have one>%R%R[repeat(=,78)]
@Adesc PARENT: Cellular Phone=@pemit %#=%R[center(- - - Type 'phonehelp' for commands. - - -,78)]%R
&MESSAGE PARENT: Cellular Phone=We'd like to thank you for calling the number you just dialed.... but we can't. <BEEP!>
&DIAL PARENT: Cellular Phone=$dial *:@switch/first [setq(0,num(*%0))]%q0:[type(%q0)]=#-1:*,{@pemit %#=OOC: I can't find a player named '%0'.},%#:*,{@pemit %#=OOC: You cannot call yourself.},*:PLAYER,{@pemit/c [room(me)]=%N picks up %p cellular phone and begins to dial.;@wait 4=@pemit %#=<Phone> You hear the phone ringing at the other end.;@wait 6=@switch hasflag(%q0,CONNECTED)=0,{@pemit %#=<Phone> The phone rings and rings at the other end, but there's no answer.%ROOC: [name(%q0)] is currently disconnected.},{@pemit %q0=[repeat(-,78)]%RYour phone (or possibly another nearby) rings if you are ICly anywhere near it.%ROOC: Type 'answer %N' - or 'options' - if you have a coded cellular, or page %N to reply. Note that those about you cannot hear this message and you may wish to rp the phone ringing.%R[repeat(-,78)];&status me=active;&called me=%q0}},{@pemit %#=OOC: I can't find a player named '%0'.}
&UNLISTED PARENT: Cellular Phone=$unlisted *:@switch/first [setq(0,num(*%0))]%q0:[type(%q0)]=#-1:*,{@pemit %#=OOC: I can't find a player named '%0'.},%#:*,{@pemit %#=OOC: You can't do that.},*:PLAYER,{@pemit %#=OOC: [name(%q0)] is unable to get through as you're unlisted.;@pemit %q0=<Phone> An operator picks up: "I'm very sorry, but if the person you're trying to reach is one of our customers, they've asked to be unlisted for privacy reasons."},{@pemit %#=OOC: I can't find a player named '%0'.}
&TALK PARENT: Cellular Phone=$talk ?*:@switch [setq(0,switch(%0,:,%N %1,\;,%N%1,|,%1,%N says "%0%1"))]v(status)=active,{@pemit/c [room(me)]=(Directed into the phone) %q0;@pemit [v(called)]=<Phone> %q0},{@pemit %#=OOC: You haven't called anyone yet.}
&TALKQ PARENT: Cellular Phone=$talkq ?*:@switch v(status)=active,{@pemit %#=(Quietly into the phone) [switch(%0,:,%N %1,\;,%N%1,|,%1,You say "%0%1")];@pemit [v(called)]=<Phone> [switch(%0,:,%N %1,\;,%N%1,|,%1,%N says quietly "%0%1")]},{@pemit %#=OOC: You haven't called anyone yet.}
&GRUFF PARENT: Cellular Phone=$gruff ?*:@switch v(status)=active,{@Pemit %#=(Gruffly into the phone) [switch(%0,:,%N %1,\;,%N%1,|,%1,You say "%0%1")];@pemit [v(called)]=<Phone> [switch(%0,:,Someone %1,\;,Someone%1,|,%1,A gruff voice says "%0%1")]},{@pemit %#=OOC: You haven't called anyone yet.}
&HANGUPQ PARENT: Cellular Phone=$hangupq:@switch v(status)=inactive,{@pemit %#=OOC: You're cellular is already hung up.},{@pemit/c [room(me)]=%N clicks %p cellular to disconnect the call and hangs up.;&called me;&status me=inactive}
&CREDITS PARENT: Cellular Phone=This code originally created by William@Bloodletting (WIlliam Fitzhegh) via RiverBLDR@Blood (BLdr char) Copyright 1995, distributable freely with &credits intact.
@set PARENT: Cellular Phone=VISUAL
@set PARENT: Cellular Phone=PARENT_OK
@set PARENT: Cellular Phone=HALTED
@set PARENT: Cellular Phone=SAFE

@lock/UseLock me=me
&RING me=$ring:@pemit/c [room(me)]=[switch(rand(4),0,{%N's cellular suddenly begins to ring!!},1,{A nearby phone begins to ring - it seems to be coming from %N.},2,{A phone somewhere nearby begins to ring - it appears to be %N's.},{%N's cellular phone begins to ring.})]
&ANSWER me=$answer *:@switch/first [setq(0,num(*%0))]%q0:[type(%q0)]=#-1:*,{@pemit %#=OOC: I can't find a player named '%0'.},%#:*,{@pemit %#=OOC: You cannot call yourself.},*:PLAYER,{@switch hasflag(%q0,CONNECTED)=0,{@pemit %#=OOC: That person is currently disconnected.},{@pemit/c [room(me)]=%N removes %p cellular, flipping it open to answer the call.;@pemit %#=<Phone> You hear a click as the line is established.;@pemit %q0=<Phone> The phone is picked up at the far end.;&status me=active;&called me=%q0}},{@pemit %#=OOC: I can't find a player named '%0'.}
&BUSY me=$busy *:@switch/first [setq(0,num(*%0))]%q0:[type(%q0)]=#-1:*,{@pemit %#=OOC: I can't find a player named '%0'.},%#:*,{@pemit %#=OOC: You can't do that.},*:PLAYER,{@pemit %#=OOC: Your line is busy.;@pemit %q0=<Phone> After a moment, you receive a busy signal from the far end.%RPossibly %N's phone is in use or is off the hook.},{@pemit %#=OOC: I can't find a player named '%0'.}
&RINGS me=$rings *:@switch/first [setq(0,num(*%0))]%q0:[type(%q0)]=#-1:*,{@pemit %#=OOC: I can't find a player named '%0'.},%#:*,{OOC: You can't do that.},*:PLAYER,{@pemit %#=[switch(v(message-a),,OOC: Your cyber phone rings and rings - but no one's there to pick up.,OOC: Your cyber phone rings and rings before the answering machine picks up.)];@pemit %q0=<Phone> The phone at the far end rings and rings, but there's no answer.[switch(v(message-a),,,{%bAfter a moment an answering machine picks up: (OOC: +mail %N to leave a message.)%R%R[space(5)]"[u(message-a)]"})]},{@pemit %#=OOC: I can't find a player named '%0'.}
&HANGUP me=$hangup:@switch v(status)=inactive,{@pemit %#=OOC: You're cellular is already hung up.},{@pemit/c [room(me)]=%N clicks %p cellular to disconnect the call and hangs up.;@pemit [v(called)]=<Phone> There is a click as the phone at the far end is hung up.;&called me;&status me=inactive}
&STATUS me=inactive
&OPTIONS me=$options:@pemit %#=[repeat(=,78)]%ROptions: On Receiving a Call%R%RAnswer <person>%t%tanswer the phone when <person> calls you%RAnswerc <person>%tanswer your cyber cellular%RRing%t%t%temit _your_ phone ringing if someone calls you%R%RBusy <person>%t%tif your phone is busy/off the hook icly%RRings <person>%t%tif there's no answer and they should leave a message%RUnlisted <person>%tif your number is unlisted%R%RNote: <person> for all of these cases should be the person who called you.%R[repeat(=,78)]
&PHONEHELP me=$phonehelp:@pemit %#=[repeat(=,78)]%R[center(- - - Cellular Phone Commands - - -,78)]%R[repeat(-,78)]%RDial <person>%t%tcall someone on your cellular%RDialc <person>%t%tcall someone using your cyber cellular%R%RAnswer <person>%t%tanswer the phone when <person> calls you%RAnswerc <person>%tanswer the phone using your implanted cyber cellular.%R%RRing%t%t%temit your phone ringing, if it isn't a cyber cellular.%RBusy <person>%t%tif your phone is busy/off the hook when called%RRings <person>%t%tif there's no answer at your phone when called%RUnlisted <person>%tif your number is unlisted when called%R%RTalk <pose/speak>%ttalk into your cellular (you can be overheard)%RTalkq <pose/speak>%ttalk quietly into your cellular (cannot be overheard)%RCybert <pose/speak>%ttalk using a cyber cellular if you have one implanted%RGruff <pose/speak> implanted%RGruff <pose/speak>%ttalk in an unrecognizeable voice%R%RHangup%t%thangup your phone (emits to both ends of the line)%RHangupq%t%thangup the phone (emits to your end only)%RHangupc%t%thangup your cyber phone if you have one implanted%R%RType 'phonehelp2' for further information.%R[repeat(=,78)]
&PHONEHELP2 me=$phonehelp2:@pemit %#=[repeat(=,78)]%R[center(- - - Cellular Phone Notes - - -,78)]%R[repeat(-,78)]%R* Talking on the Phone *%RAll of the talking commands: talk, talkq, cybert, and gruff make use of the standard pose/emit characters - namely (:,;,|) in the same manner as tabletalk . This allows you to pose and emit across the phone line.%R%R* Bugging & Being Overheard *%RCurrently no one can overhear you (unless you want them to) on the phone. Phones are not code-bugged in any way and are solely designed as an rp aid.%R%R* Leaving Messages *%RThis code assumes the use of the +mail system for leaving messages on people's machines. To leave a message type: +mail <person>=Phone Message%R%R* Anonymous Calls *%RAlthough fairly secure, there are ways to OOCly ascertain identity through this phone system. At minimum if you want to make an anonymous call you should probably change your name (and +finger info) prior to making it. Gruff is also a good command for this sort of thing.%R%RType 'phonehelp3' for configuration information.%R[repeat(=,78)]
&PHONEHELP3 me=$phonehelp3:@pemit %#=[repeat(=,78)]%R[center(- - - Cellular Phone Configuration - - -,78)]%R[repeat(-,78)]%RThis code is designed with the intent to simulate personal cellular phones that would normally be carried by an individual, or surgically implanted. Phones can be desc-ed to look like any style you want. All phones should be uselocked (see below) to keep other characters from using them inadvertantly. The message-a attribute below is optional, if you'd like to have a message emitted to people calling you on the 'rings' command.%R%R@desc <phone name> = <what you want it to look like, none if it is implanted>%R@lock/uselock <phone name> = me%R&message-a <phone name> = <message on your answering machine, if you have one>%R%R[repeat(=,78)]
&MESSAGE-A me=I'm sorry, but the me you called isn't answering. It may be switched off. Please leave a massage after the tone. <+mail!>
&DIAL me=$dial *:@switch/first [setq(0,num(*%0))]%q0:[type(%q0)]=#-1:*,{@pemit %#=OOC: I can't find a player named '%0'.},%#:*,{@pemit %#=OOC: You cannot call yourself.},*:PLAYER,{@pemit/c [room(me)]=%N picks up %p cellular phone and begins to dial.;@wait 4=@pemit %#=<Phone> You hear the phone ringing at the other end.;@wait 6=@switch hasflag(%q0,CONNECTED)=0,{@pemit %#=<Phone> The phone rings and rings at the other end, but there's no answer.%ROOC: [name(%q0)] is currently disconnected.},{@pemit %q0=[repeat(-,78)]%RYour phone (or possibly another nearby) rings if you are ICly anywhere near it.%ROOC: Type 'answer %N' - or 'options' - if you have a coded cellular, or page %N to reply. Note that those about you cannot hear this message and you may wish to rp the phone ringing.%R[repeat(-,78)];&status me=active;&called me=%q0}},{@pemit %#=OOC: I can't find a player named '%0'.}
&UNLISTED me=$unlisted *:@switch/first [setq(0,num(*%0))]%q0:[type(%q0)]=#-1:*,{@pemit %#=OOC: I can't find a player named '%0'.},%#:*,{@pemit %#=OOC: You can't do that.},*:PLAYER,{@pemit %#=OOC: [name(%q0)] is unable to get through as you're unlisted.;@pemit %q0=<Phone> An operator picks up: "I'm very sorry, but if the person you're trying to reach is one of our customers, they've asked to be unlisted for privacy reasons."},{@pemit %#=OOC: I can't find a player named '%0'.}
&TALK me=$talk ?*:@switch [setq(0,switch(%0,:,%N %1,\;,%N%1,|,%1,%N says "%0%1"))]v(status)=active,{@pemit/c [room(me)]=(Directed into the phone) %q0;@pemit [v(called)]=<Phone> %q0},{@pemit %#=OOC: You haven't called anyone yet.}
&TALKQ me=$talkq ?*:@switch v(status)=active,{@pemit %#=(Quietly into the phone) [switch(%0,:,%N %1,\;,%N%1,|,%1,You say "%0%1")];@pemit [v(called)]=<Phone> [switch(%0,:,%N %1,\;,%N%1,|,%1,%N says quietly "%0%1")]},{@pemit %#=OOC: You haven't called anyone yet.}
&GRUFF me=$gruff ?*:@switch v(status)=active,{@Pem&GRUFF me=$gruff ?*:@switch v(status)=active,{@Pemit %#=(Gruffly into the phone) [switch(%0,:,%N %1,\;,%N%1,|,%1,You say "%0%1")];@pemit [v(called)]=<Phone> [switch(%0,:,Someone %1,\;,Someone%1,|,%1,A gruff voice says "%0%1")]},{@pemit %#=OOC: You haven't called anyone yet.}
&HANGUPQ me=$hangupq:@switch v(status)=inactive,{@pemit %#=OOC: You're cellular is already hung up.},{@pemit/c [room(me)]=%N clicks %p cellular to disconnect the call and hangs up.;&called me;&status me=inactive}