@@ +DELLANG &lang`cmd.dellang %va=$+dellang *: @nspemit/silent %#=\[+LANGUAGE\] [ufun(%vb/lang`fun.dellang,%0)] &lang`fun.dellang %vb=switch(0,hasflag(%#,wizard),Permission denied,setr(0,member(ucstr(get(%ve/lang`languages)),ucstr(squish(stripansi(%0))),|)),That language does not exist.,ufun(lang`fun.dellang-players,%q0)[attrib_set(%ve/lang`languages,squish(ldelete(get(%ve/lang`languages),%q0,|),|))]Language deleted.) &lang`fun.dellang-players %vb=null(iter(lsearch(all,type,player,elock,lang:[iter(lnum(1,%0),?,,?)]*),attrib_set(##/LANG,ldelete(get(##/LANG),%0,|)))) &lang`fun.setfluency-cmd %vb=switch(0,orflags(%#,Wr),Permission denied.,t(setr(0,locate(%#,%0,PFapym))),No such player.,t(setr(1,ufun(%ve/lang`fun.islang,%1))),No such language.,strmatch(bound(%2,0,1000),%2),That's not a valid fluency level. Must be between 0 and 1000.,setq(2,ufun(%ve/lang`fun.fluency,%q0,%q1))[ufun(%vb/lang`fun.setfluency,%q0,%q1,%2)]You set [name(%q0)]'s fluency in [setr(3,ufun(%ve/lang`fun.langname,%q1))] from %q2 ([setr(4,ufun(%ve/lang`fun.fluency-english-int,%q2))]) to %2 ([setr(5,ufun(%ve/lang`fun.fluency-english-int,%2))]).[nspemit(%q0,\[+SETFLUENCY\] %n adjusts your fluency in %q3 from %q4 to %q5.)]) &lang`fun.maketeacher %vb=switch(0,orflags(%:,Wr),Permission denied.,t(setr(0,locate(%#,%0,PFapym))),No such player.,hasflag(%q0,TEACHER),You grant [name(%q0)] teaching privileges.[attrib_set(%ve/lang`teachers,setunion(get(%ve/lang`teachers),objid(%q0)))][set(%q0,TEACHER)][nspemit(%q0,\[+MAKETEACHER\] %n has granted you teaching privileges.)],You revoke [name(%q0)]'s teaching privileges.[attrib_set(%ve/lang`teachers,setdiff(get(%ve/lang`teachers),objid(%q0)))][set(%q0,!TEACHER)][nspemit(%q0,\[+MAKETEACHER\] %n has revoked your teaching privileges.)]) &lang`fun.teach %vb=switch(0,hasflag(%#,TEACHER),You aren't a teacher.,t(setr(0,locate(%#,%0,PFapym))),No such player.,ufun(%ve/lang`fun.can-teach-player,%#),You can't teach [name(%q0)].,t(setr(1,ufun(%ve/lang`fun.islang,%1))),No such language.,ufun(%ve/lang`fun.can-teach-player-2,%#,%q0),You can't teach [name(%q0)] at the moment.,gte(sub(secs(),get(%ve/lang`teach-time)),default(%q0/lang`lasttaught,convtime(ctime(%q0)))),name(%q0) needs to rest a while before learning anything new.,comp(%#,%q0),You can't teach yourself.,lt(setr(2,ufun(%ve/lang`fun.fluency,%q0,%q1)),setr(3,ufun(%ve/lang`fun.fluency,%#,%q1))),There's not much you can teach [name(%q0)].,gte(%q3,401),You need to learn a bit more [ufun(%ve/lang`fun.langname,%q1)] before you can teach it to others.,You teach [name(%q0)] some [ufun(%ve/lang`fun.langname,%q1)].[nspemit(%q0,\[+TEACH\] %n teaches you some [ufun(%ve/lang`fun.langname,%q1)].)][attrib_set(%q0/lang`lasttaught,secs())][ufun(%vb/lang`fun.learn,%q0,%q1,ufun(%ve/lang`learn`teach,%q2,%q3))]) +TMCS/ADDPACKAGE lang=+Language/1.3/System to allow players to learn and speak many languages/