MU Soapbox

    • Register
    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Muxify
    • Mustard
    1. Home
    2. ixokai
    3. Posts
    I
    • Profile
    • Following 2
    • Followers 3
    • Topics 18
    • Posts 686
    • Best 270
    • Controversial 14
    • Groups 3

    Posts made by ixokai

    • RE: Wiki best practices

      Yeah, on mediawiki sites I always do manual creation of accounts.

      That said, its primarily because I've never heard of QuestyCaptcha before. I'd use that and have a command in game that's available only once approved, you type +wiki/password and get a password you enter into there. (This is basically what I do for wikidot wiki's)

      posted in How-Tos
      I
      ixokai
    • RE: Deep Shadows - Shadowrun 5th Edition MUSH - Help Wanted

      @Tirit said in Deep Shadows - Shadowrun 5th Edition MUSH - Help Wanted:

      @ixokai Let's talk. I would love to pick your brain, at minimum. Best case, maybe you and I have some commonality and we can get a MUSH coded, or maybe you can help me get past the Chargen stuff?

      As far as the books version of chargen goes, I just found it a bit... dizzying. Like nothing ever seemed set in stone, but I was new to Shadowrun as a game outside of the two videogames I kickstarted.

      As for talking, sure. PMing contact information.

      posted in Adver-tis-ments
      I
      ixokai
    • RE: Deep Shadows - Shadowrun 5th Edition MUSH - Help Wanted

      @Tirit said in Deep Shadows - Shadowrun 5th Edition MUSH - Help Wanted:

      @ixokai I felt the same way a year ago. Which is why I got frustrated. Ultimately decided to hang up the hat for awhile.

      Ours is alive now. If you know Python, I would love to chat and see if maybe we can get a hand.

      I know Python -- my day job is as a Python programmer, in fact. But I've only explored Evennia a mild bit. Granted, from what I learned of SR5 it'd be a lot easier to program in Python with a real language then it would be in Mushcode. But SR5's chargen seemed to be one of the most obscene things I've ever seen when I was considering coding it.

      posted in Adver-tis-ments
      I
      ixokai
    • RE: Deep Shadows - Shadowrun 5th Edition MUSH - Help Wanted

      @Jennkryst said in Deep Shadows - Shadowrun 5th Edition MUSH - Help Wanted:

      There is code floating somewhere for the 5e game that sputtered... dunno who has it. @ixokai maybe? Unsure how far it got, either.

      I never got that far making the code a thing. The other people seemed to vanish around me in the planning stage while I was still devouring the rule books.

      I can't code a project that's not alive. If its not obviously alive around me with other people doing things and such, that's it.

      posted in Adver-tis-ments
      I
      ixokai
    • Loggers

      Some people have expressed interest in my loggers, so here's the Penn version (I'll add the Rhost version later).

      This isn't actually anything like super clever or advanced/special code, its really pretty basic and easy, so its not a big deal. But it has a dramatic and positive effect on those games which like logs.

      Some of the key features:

      • By default it ignores lines that have 'OOC' in the first word, though this can be turned off.
      • It logs everything it hears, but if you make a mistake in a pose, you can simply +log/undo to delete the last entry and repose.
      • You can +log/show with an argument of like '5' to see just the last 5 poses, useful if you disconnect and need reposes without anyone having to repose to you.
      • It formats your logs for wiki output (will need to be customized for your game's particulars)

      On my games, I modify the room parent so the @conformat actually changes get(%i0/shortdesc) to be: objeval(%i0,u(%i0/shortdesc)) for the express purposes of these loggers use their shortdesc to report their on/off status brightly to avoid confusion.

      The usage is pretty simple: @create an object, drop it, +log/make object, and voila. Its now a logger. +log/on object and pose away. +log/capture is a quick shortcut command to set all the metadata for the log, or you can set them individually. Then +log/wiki

      On the parent you'll want to modify SHOW_HEADER_WIKI to match whatever the wikicode your logs need for your wiki.

      This is the parent:
      
      -- START --
      @create Logging Parent; LP
      @set Logging Parent; LP = NO_COMMAND
      &AHEAR Logging Parent; LP=@include me/CHECK_INCLUDE_OOC[v(include_ooc)];@include me/CHECK_CONNECT;&log`[inc(after(last(sortby(sort_log,lattr(me/LOG`*))),`))] me=[secs()] %0
      @set Logging Parent; LP/AHEAR=no_command prefixmatch
      &CHECK_CONNECT Logging Parent; LP=@break strmatch(%0,* has connected.);@break strmatch(%0,* has disconnected.);@break strmatch(%0,* has reconnected.);@break strmatch(%0,* has partially disconnected)
      &CHECK_INCLUDE_OOC0 Logging Parent; LP=@break strmatch(first(%0),*OOC*)
      &CHECK_INCLUDE_OOC1 Logging Parent; LP=
      &DESCRIBE Logging Parent; LP=Status: [ifelse(v(logging),[ansi(hg,ON)],[ansi(hr,OFF)])]%ROOC Included? [ifelse(v(include_ooc),[ansi(hg,YES)],[ansi(hr,NO)])]%R%R[ansi(hw,Scene Information:)]%R%T[ansi(hw,Summary)]: [get(me/SCENE`SUMMARY)]%r%t[ansi(hw,Date)]: [get(me/SCENE`DATE)]%r%t[ansi(hw,Cast)]: [iter(get(me/SCENE`CAST),name(##))]%R%t[ansi(hw,Location Name)]: [get(me/SCENE`LOCATION)]%R%t[ansi(hw,Location Description)]: [get(me/SCENE`LOCATIONDESC)]%R%R[ansi(hw,Log entries recorded)]: [words(lattr(me/LOG`))]
      @set Logging Parent; LP/DESCRIBE=no_command visual prefixmatch public nearby
      &DO-SET-LOG-OOC Logging Parent; LP=&include_ooc me=[not(get(me/include_ooc))];@remit %l=[ansi(hy,OOC)]: [name(me)] is now set [ifelse(v(include_ooc),[ansi(hg,TO)] include OOC communication,[ansi(hr,TO NOT)] include OOC communication)].
      &DO-SHOW-LOG Logging Parent; LP=@dol/inline HEADER [setq(0,sortby(sort_log,lattr(me/LOG`*)))][ifelse(t(%2),extract(%q0,mul(%2,-1),%2),%q0)] FOOTER={@pemit %0=[switch(%i0,HEADER,u(SHOW_HEADER_%1),FOOTER,u(SHOW_FOOTER_%1),u(SHOW_LOG_%1,%i0))]}
      &DO-START-LOG Logging Parent; LP=&logging me=1;@listen me=*;@remit loc(me)=[ansi(hy,OOC)]: This scene is now being logged by [ansi(hw,name(me))].
      &DO-STOP-LOG Logging Parent; LP=&logging me=0;@remit loc(me)=[ansi(hy,OOC)]: This scene is no longer being logged by [ansi(hw,name(me))].
      &DO-UNDO-LOG Logging Parent; LP=&log`[after(last(sortby(sort_log,lattr(me/LOG`*))),`)] me;@pemit/contents loc(me)=[ansi(hw,OOC)]: The last entry in the log has been undone.
      &INCLUDE_OOC Logging Parent; LP=0
      &LISTEN Logging Parent; LP=*
      @set Logging Parent; LP/LISTEN=no_command prefixmatch
      &LOG Logging Parent; LP=
      &LOGGING Logging Parent; LP=0
      &MESSAGE_LOGGING0 Logging Parent; LP=[ansi(y,OFF)]
      &MESSAGE_LOGGING1 Logging Parent; LP=[ansi(hg,ON)] [ansi(hr,- SCENE IS BEING LOGGED)]
      &SHORTDESC Logging Parent; LP=is currently [u(message_logging[v(logging)])].
      &SHOW_FOOTER_PLAIN Logging Parent; LP=[line_with_text([ansi(hw,end of log)])]
      &SHOW_FOOTER_WIKI Logging Parent; LP=[line_with_text([ansi(hw,end of log)])]
      &SHOW_HEADER_PLAIN Logging Parent; LP=[line_with_text([ansi(hw,[name(me)]'s Log)])]
      &SHOW_HEADER_WIKI Logging Parent; LP=[line_with_text([ansi(hw,[name(me)]'s Log)])]%r[[include LogInfoBox%r|summary=[get(me/SCENE`SUMMARY)]%r|date=[get(me/SCENE`DATE)]%R|location=[get(me/SCENE`LOCATION)]%r|related=If there are no related logs, put 'None', -- please don't leave blank! [!-- IMPORTANT: The formatting MUST be: [http://marvel1963mush.wikidot.com/log:name NameOfLogGoesHere] --]%r|themesong=None%r]]%r[[include LogPlayerTop]]%r[iter(get(me/SCENE`CAST),[[include LogIcon name=[lcstr(name(%i0))]]],%b,%r)]%r[[include LogPlayerBottom]]%R%R====%R%R
      &SHOW_LOG_PLAIN Logging Parent; LP=[setq(0,get(me/%0))][ansi(hx,%[[timefmt($H:$M:$S,first(%q0))]%])] [rest(%q0)]
      &SHOW_LOG_WIKI Logging Parent; LP=[rest(get(me/%0))]%r%r*%r
      &SORT_LOG Logging Parent; LP=comp(after(%0,`),after(%1,`),N)
      -- END --
      
      This is the master room: note the last command, set @VP to the dbref of the parent:
      
      -- START -- 
      @create Logging Commands; LC
      @lock/Use Logging Commands; LC=IS_APPROVED/1
      @lset Logging Commands; LC/Use=no_inherit
      @set Logging Commands; LC = TRUST
      @set Logging Commands; LC = WIZARD
      &CMD-+LOG/CAPTURE Logging Commands; LC=$+log/capture *:@include me/DO_CHECK_BASIC;&scene`cast %q<logger>=[lvplayers(%l)];&scene`location %q<logger>=[name(%l)];&scene`locationdesc %q<logger>=[ifelse(hasflag(%l,temporary),get(%l/tempdesc),get(%l/desc))];&scene`date %q<logger>=[ictime()];@pemit %#=Captured.
      &CMD-+LOG/CAST Logging Commands; LC=$+log/cast *=*:@include me/DO_CHECK_BASIC;@eval [setq(cast,iter(%1,pmatch(%i0)))];@break strmatch(%q<cast>,*#-1*)={@pemit %#=I can't find anyone named: [iter(%1,ifelse(t(pmatch(%i0)),,%i0))].};&SCENE`CAST %q<logger>=%q<cast>;@pemit %#=[ansi(hy,OOC)]: Cast set to: [itemize(iter(%q<cast>,name(%i0),%b,|),|)].
      &CMD-+LOG/DATE Logging Commands; LC=$+log/date *=*:@include me/DO_CHECK_BASIC;&scene`summary %q<logger>=[ifelse(strmatch(lcstr(%1),today),ictime(),%1)];@pemit %#=[ansi(hy,OOC: Date set to: [ansi(hw,%1)].
      &CMD-+LOG/LOCDESC Logging Commands; LC=$+log/location/desc *=*:@include me/DO_CHECK_BASIC;&SCENE`LOCATIONDESC %q<logger>=[switch(%1,here,objeval(%#,u(%l/desc)),%l)];@pemit %#=[ansi(hy,OOC)]: Location description set to: [get(%q<logger>/SCENE`LOCATIONDESC)].;
      &CMD-+LOG/LOCNAME Logging Commands; LC=$+log/location/name *=*:@include me/DO_CHECK_BASIC;&SCENE`LOCATION %q<logger>=[switch(%1,here,name(%l),%1)];@pemit %#=[ansi(hy,OOC)]: Location name set to: [get(%q<logger>/SCENE`LOCATION)].;
      &CMD-+LOG/MAKE Logging Commands; LC=$+log/make *:@eval [setq(logger,locate(%#,%0,Tn))];@break hastype(%q<logger>,PLAYER)={@pemit %#=You can't make a player a logger!};@assert t(%q<logger>)={@pemit %#=I can't find an object named [ansi(hw,%0)].};@break match(parent(%q<logger>),%vp)={@pemit %#=That object is already a scene logger.};@parent %q<logger>=%vp;&LOGGING %q<logger>=0;@lock/listen %q<logger>=logging/1;@listen %q<logger>=*;@pemit %#=You have made [ansi(hw,name(%q<logger>))] a Scene Logger.;
      &CMD-+LOG/OFF Logging Commands; LC=$+log/off *:@include me/DO_CHECK_BASIC;@assert get(%q<logger>/logging)={@pemit %#=[ansi(hw,name(%q<logger>))] is not logging this scene.};@tri %q<logger>/DO-STOP-LOG=%q<logger>
      &CMD-+LOG/ON Logging Commands; LC=$+log/on *:@include me/DO_CHECK_CONTROLS;@break get(%q<logger>/logging)={@pemit %#=[ansi(hw,name(%q<logger>))] is already logging this scene.};@tri %q<logger>/DO-START-LOG=%q<logger>
      &CMD-+LOG/OOC Logging Commands; LC=$+log/ooc *:@include me/DO_CHECK_CONTROLS;@tri %q<logger>/DO-SET-LOG-OOC=%#
      &CMD-+LOG/RECLAIM Logging Commands; LC=$+log/reclaim:@pemit %#=[ansi(hw,OOC)]: Reclaiming all loggers...;@dol children(%vp)={@assert strmatch(%#,owner(##));&logging ##=0;@pemit %#=... [ansi(hw,name(##))];@tel ##=%#}
      &CMD-+LOG/RETURN Logging Commands; LC=$+log/return *:@include me/DO_CHECK_BASIC;@tri %q<logger>/DO-STOP-LOG=%q<logger>;@tel %q<logger>=owner(%q<logger>);@mail [name(owner(%q<logger>))]=Logger Returned/[name(%#)] has returned your logger to you from [name(%l)];
      &CMD-+LOG/SHOW Logging Commands; LC=$+log/show *:@break strmatch(%0,*=*);@include me/DO_CHECK_BASIC;@tri %q<logger>/DO-SHOW-LOG=%#,plain
      &CMD-+LOG/SHOW-LAST Logging Commands; LC=$+log/show *=*:@assert isint(%1)={@pemit %#=The second argument is expected to be a number, got [ansi(hw,%1)]};@include me/DO_CHECK_BASIC;@tri %q<logger>/DO-SHOW-LOG=%#,plain,%1
      &CMD-+LOG/SUMMARY Logging Commands; LC=$+log/summary *=*:@include me/DO_CHECK_BASIC;&SCENE`SUMMARY %q<logger>=%1;@pemit %#=[ansi(hy,OOC)]: Summary set to: [ansi(hw,%1)].
      &CMD-+LOG/UNDO Logging Commands; LC=$+log/undo *:@include me/DO_CHECK_BASIC;@tri %q<logger>/DO-UNDO-LOG=%q<logger>
      &CMD-+LOG/WIKI Logging Commands; LC=$+LOG/wiki *:@include me/DO_CHECK_BASIC;@tri %q<logger>/DO-SHOW-LOG=%#,wiki
      &CMD-+LOG/WIPE Logging Commands; LC=$+log/wipe *:@include me/DO_CHECK_CONTROLS;@wipe %q<logger>/LOG`*;@wipe %q<logger>/SCENE`*;@pemit %#=[ansi(hw,name(%q<logger>))] has had its current log wiped.
      &CMD-+LOG/POSE Logging Commands; LC=$+log/pose *=*:@include me/DO_CHECK_BASIC;@tri %q<logger>/ahear=%1;@pemit %#=[ansi(hw,OOC)]: Pose added.
      &DESCRIBE Logging Commands; LC=
      @set Logging Commands; LC/DESCRIBE=no_command visual prefixmatch public nearby
      &DO_CHECK_BASIC Logging Commands; LC=@eval [setq(logger,locate(%#,%0,Tni))];@assert t(%q<logger>)={@pemit %#=I can't find an object named [ansi(hw,%0)].};@assert match(parent(%q<logger>),%vp)={@pemit %#=That object is not a Scene Logger.};
      &DO_CHECK_CONTROLS Logging Commands; LC=@include me/DO_CHECK_BASIC;@assert controls(%#,%q<logger>)={@pemit %#=You do not control that scene logger.};
      &IS_APPROVED Logging Commands; LC=not(strmatch(get(%#/status),NEW))
      &UFAIL Logging Commands; LC=You must be approved to use the logging system.
      @set Logging Commands; LC/UFAIL=no_command prefixmatch
      @VP Logging Commands; LC=#396
      -- END --
      
      
      Here's the help file:
      
      -- START --
      The +log system is used for logging of scenes in such a way that it minimizes the amount of stuff you have to clean before posting, not to mention making sure you post the log in the correct format.
      
      The scene revolves around Scene Loggers, which are plain objects that you own and re-use from one scene to the next. You never really need to have more then one. To create a <logger>, type: @create <logger> and then drop it. You can make this a scene <logger> then by typing: +log/make <logger>. Once you drop the <logger>, the following commands are available:
      
      +log/on <logger> - activate logging
      +log/off <logger> - deactivate logging
      +log/ooc <logger> - toggle if OOC communication is logged. Default: off.
      +log/show <logger>=X - show the current log or X lines of it. (=X is optional.).
      +log/wipe <logger> - clear the current log.
      +log/undo <logger> - remove the last entry in the log. Useful to repose a correction.
      +log/pose <logger>=<pose> - add a pose directly to the logger
      
      Before posting, you can store the scene information with:
      
      +log/summary <logger>=description - set summary of current scene
      +log/cast <logger>=person1 person2 .. personN - set participants in log
      +log/location/name <logger>=name - name of place where log takes place. 'here' gets current room name.
      +log/location/desc <logger>=text - description of place where log takes place. 'here' takes current room desc.
      
      +log/capture <logger> - cast, location/name and location/desc all in one handy command
      
      When you're ready to post your log, +log/wiki <logger> will show you the current log and wiki formatting.
      
      When done, just 'get' your <logger> and take it with you. If you see someone's <logger> laying around, +log/return <logger> will return it to their inventory.
      
      If you've lost your logger, +log/reclaim will teleport ALL of your loggers to your inventory whether they're in use or not.
      -- END -- 
      

      This is the Rhost version of the code. It probably would require very minimal tweaking to work on MUX but I don't know.

      This is the Rhost version of the code, though it requires the penn_setq option to be set to on.
      
      The logging parent:
      
      --START--
      @create Logging Parent; LP=10
      @Ahear Logging Parent; LP=@include me/CHECK_INCLUDE_OOC[v(include_ooc)];@include me/CHECK_CONNECT;&log-[inc(after(last(sortby(sort_log,lattr(me/LOG-*))),-))] me=[secs()] %0
      &CHECK_CONNECT Logging Parent; LP=@break strmatch(%0,* has connected.);@break strmatch(%0,* has disconnected.);@break strmatch(%0,* has reconnected.);@break strmatch(%0,* has partially disconnected)
      &CHECK_INCLUDE_OOC0 Logging Parent; LP=@break strmatch(first(%0),*OOC*)
      @Desc Logging Parent; LP=Status: [ifelse(v(logging),[ansi(hg,ON)],[ansi(hr,OFF)])]%ROOC Included? [ifelse(v(include_ooc),[ansi(hg,YES)],[ansi(hr,NO)])]%R%R[ansi(hw,Scene Information:)]%R%T[ansi(hw,Summary)]: [get(me/SCENE-SUMMARY)]%r%t[ansi(hw,Date)]: [get(me/SCENE-DATE)]%r%t[ansi(hw,Cast)]: [iter(get(me/SCENE-CAST),name(##))]%R%t[ansi(hw,Location Name)]: [get(me/SCENE-LOCATION)]%R%t[ansi(hw,Location Description)]: [get(me/SCENE-LOCATIONDESC)]%R%R[ansi(hw,Log entries recorded)]: [words(lattr(me/LOG-))]
      &DO-SET-LOG-OOC Logging Parent; LP=&include_ooc me=[not(get(me/include_ooc))];@remit %l=[ansi(hy,OOC)]: [name(me)] is now set [ifelse(v(include_ooc),[ansi(hg,TO)] include OOC communication,[ansi(hr,TO NOT)] include OOC communication)].
      &DO-SHOW-LOG Logging Parent; LP=@dol/inline HEADER [setq(0,sortby(sort_log,lattr(me/LOG-*)))][ifelse(t(%2),extractword(%q0,mul(%2,-1),%2),%q0)] FOOTER={@pemit %0=[switch(%d0,HEADER,u(SHOW_HEADER_%1),FOOTER,u(SHOW_FOOTER_%1),u(SHOW_LOG_%1,%d0))]}
      &DO-START-LOG Logging Parent; LP=&logging me=1;@listen me=*;@remit loc(me)=[ansi(hy,OOC)]: This scene is now being logged by [ansi(hw,name(me))].
      &DO-STOP-LOG Logging Parent; LP=&logging me=0;@remit loc(me)=[ansi(hy,OOC)]: This scene is no longer being logged by [ansi(hw,name(me))].
      &DO-UNDO-LOG Logging Parent; LP=&log-[after(last(sortby(sort_log,lattr(me/LOG-*))),-)] me;@pemit/contents loc(me)=[ansi(hw,OOC)]: The last entry in the log has been undone.
      &INCLUDE_OOC Logging Parent; LP=0
      @Listen Logging Parent; LP=*
      &LOGGING Logging Parent; LP=0
      &MESSAGE_LOGGING0 Logging Parent; LP=[ansi(y,OFF)]
      &MESSAGE_LOGGING1 Logging Parent; LP=[ansi(hg,ON)] [ansi(hr,- SCENE IS BEING LOGGED)]
      &SHORTDESC Logging Parent; LP=is currently [u(message_logging[v(logging)])].
      &SHOW_FOOTER_PLAIN Logging Parent; LP=[ui-footer([ansi(hw,end of log)])]
      &SHOW_FOOTER_WIKI Logging Parent; LP=[ui-footer([ansi(hw,end of log)])]
      &SHOW_HEADER_PLAIN Logging Parent; LP=[ui-header([ansi(hw,[name(me)]'s Log)])]
      &SHOW_HEADER_WIKI Logging Parent; LP=[ui-header([ansi(hw,[name(me)]'s Log)])]%r[[include logheader%r|summary=[get(me/SCENE-SUMMARY)]%r|location=[get(me/SCENE-LOCATION)]%r|desc=[get(me/SCENE-LOCATIONDESC)]%R]]%r%r[[include logcastbegin]]%r[iter(get(me/SCENE-CAST),[[include logccon name=[lcstr(name(%i0))]]],%b,%r)]%r[[include logcastend]]%r%r[[include logstart]]%R%R====%R%R
      &SHOW_LOG_PLAIN Logging Parent; LP=[setq(0,get(me/%0))][ansi(hx,%[[timefmt($02H:$02T:$02S $P,first(%q0))]%])] [rest(%q0)]
      &SHOW_LOG_WIKI Logging Parent; LP=[rest(get(me/%0))]%r%r-----%r%r
      &SORT_LOG Logging Parent; LP=ncomp(after(%0,-),after(%1,-))
      @set Logging Parent; LP=NO_COMMAND
      --STOP--
      
      The master room commands: be sure to set @VP to the dbref of above:
      
      --START--
      @create Logging Commands; LC=10
      &CMD-+LOG/CAPTURE Logging Commands; LC=$+log/capture *:@include me/DO_CHECK_BASIC;&scene-cast %q<logger>=[lcon(%l/player)];&scene-location %q<logger>=[name(%l)];&scene-locationdesc %q<logger>=[ifelse(hasflag(%l,temporary),get(%l/tempdesc),get(%l/desc))];&scene-date %q<logger>=[time()];@pemit %#=Captured.
      &CMD-+LOG/CAST Logging Commands; LC=$+log/cast *=*:@include me/DO_CHECK_BASIC;@eval [setq(cast,iter(%1,pmatch(%i0)))];@break strmatch(%q<cast>,*#-1*)={@pemit %#=I can't find anyone named: [iter(%1,ifelse(t(pmatch(%i0)),,%i0))].};&SCENE-CAST %q<logger>=%q<cast>;@pemit %#=[ansi(hy,OOC)]: Cast set to: [itemize(iter(%q<cast>,name(%i0),%b,|),|)].
      &CMD-+LOG/DATE Logging Commands; LC=$+log/date *=*:@include me/DO_CHECK_BASIC;&scene-summary %q<logger>=[ifelse(strmatch(lcstr(%1),today),time(),%1)];@pemit %#=[ansi(hy,OOC: Date set to: [ansi(hw,%1)].
      &CMD-+LOG/LOCDESC Logging Commands; LC=$+log/location/desc *=*:@include me/DO_CHECK_BASIC;&SCENE-LOCATIONDESC %q<logger>=[switch(%1,here,objeval(%#,u(%l/desc)),%l)];@pemit %#=[ansi(hy,OOC)]: Location description set to: [get(%q<logger>/SCENE-LOCATIONDESC)].;
      &CMD-+LOG/LOCNAME Logging Commands; LC=$+log/location/name *=*:@include me/DO_CHECK_BASIC;&SCENE-LOCATION %q<logger>=[switch(%1,here,name(%l),%1)];@pemit %#=[ansi(hy,OOC)]: Location name set to: [get(%q<logger>/SCENE`LOCATION)].;
      &CMD-+LOG/MAKE Logging Commands; LC=$+log/make *:@eval [setq(logger,locate(%#,%0,Tn))];@break hastype(%q<logger>,PLAYER)={@pemit %#=You can't make a player a logger!};@assert t(%q<logger>)={@pemit %#=I can't find an object named [ansi(hw,%0)].};@break match(parent(%q<logger>),%vp)={@pemit %#=That object is already a scene logger.};@parent %q<logger>=%vp;&LOGGING %q<logger>=0;@lock/use %q<logger>=logging/1;@set %q<logger>=!no_command;@listen %q<logger>=*;@pemit %#=You have made [ansi(hw,name(%q<logger>))] a Scene Logger.;
      &CMD-+LOG/OFF Logging Commands; LC=$+log/off *:@include me/DO_CHECK_BASIC;@assert get(%q<logger>/logging)={@pemit %#=[ansi(hw,name(%q<logger>))] is not logging this scene.};@tri %q<logger>/DO-STOP-LOG=%q<logger>
      &CMD-+LOG/ON Logging Commands; LC=$+log/on *:@include me/DO_CHECK_CONTROLS;@break get(%q<logger>/logging)={@pemit %#=[ansi(hw,name(%q<logger>))] is already logging this scene.};@tri %q<logger>/DO-START-LOG=%q<logger>
      &CMD-+LOG/OOC Logging Commands; LC=$+log/ooc *:@include me/DO_CHECK_CONTROLS;@tri %q<logger>/DO-SET-LOG-OOC=%#
      &CMD-+LOG/RECLAIM Logging Commands; LC=$+log/reclaim:@pemit %#=[ansi(hw,OOC)]: Reclaiming all loggers...;@dol children(%vp)={@assert strmatch(%#,owner(##));&logging ##=0;@tel ##=%#}
      &CMD-+LOG/RETURN Logging Commands; LC=$+log/return *:@include me/DO_CHECK_BASIC;@tri %q<logger>/DO-STOP-LOG=%q<logger>;@tel %q<logger>=owner(%q<logger>);mail/send [name(owner(%q<logger>))]=Logger Returned//[name(%#)] has returned your logger to you from [name(%l)];
      &CMD-+LOG/SHOW Logging Commands; LC=$+log/show *:@break strmatch(%0,*=*);@include me/DO_CHECK_BASIC;@tri %q<logger>/DO-SHOW-LOG=%#,plain
      &CMD-+LOG/SHOW-LAST Logging Commands; LC=$+log/last *=*:@assert isint(%1)={@pemit %#=The second argument is expected to be a number, got [ansi(hw,%1)]};@include me/DO_CHECK_BASIC;@tri %q<logger>/DO-SHOW-LOG=%#,plain,%1
      &CMD-+LOG/SUMMARY Logging Commands; LC=$+log/summary *=*:@include me/DO_CHECK_BASIC;&SCENE-SUMMARY %q<logger>=%1;@pemit %#=[ansi(hy,OOC)]: Summary set to: [ansi(hw,%1)].
      &CMD-+LOG/UNDO Logging Commands; LC=$+log/undo *:@include me/DO_CHECK_BASIC;@tri %q<logger>/DO-UNDO-LOG=%q<logger>
      &CMD-+LOG/WIKI Logging Commands; LC=$+LOG/wiki *:@include me/DO_CHECK_BASIC;@tri %q<logger>/DO-SHOW-LOG=%#,wiki
      &CMD-+LOG/WIPE Logging Commands; LC=$+log/wipe *:@include me/DO_CHECK_CONTROLS;@wipe %q<logger>/LOG-*;@wipe %q<logger>/SCENE-*;@pemit %#=[ansi(hw,name(%q<logger>))] has had its current log wiped.
      &CMD-+LOG/POSE Logging Commands; LC=$+log/pose *=*:@include me/DO_CHECK_BASIC;@tri %q<logger>/ahear=%1;@pemit %#=[ansi(hw,OOC)]: Pose added.
      &DO_CHECK_BASIC Logging Commands; LC=@eval [setq(logger,locate(%#,%0,Tni))];@assert t(%q<logger>)={@pemit %#=I can't find an object named [ansi(hw,%0)].};@assert match(parent(%q<logger>),%vp)={@pemit %#=That object is not a Scene Logger.};
      &DO_CHECK_CONTROLS Logging Commands; LC=@include me/DO_CHECK_BASIC;@assert controls(%#,%q<logger>)={@pemit %#=You do not control that scene logger.};
      &IS_APPROVED Logging Commands; LC=[!hasflag(%#,wanderer)]	
      @Ufail Logging Commands; LC=You must be approved to use the logging system.
      @set Logging Commands; LC=SHOWFAILCMD INHERIT STOP
      @VP Logging Commands; LC=#359
      --STOP--
      
      Help file is the same as Penn version.
      
      posted in MU Code
      I
      ixokai
    • RE: We Need a Game Set In the Roman Empire.

      @Avarice said in We Need a Game Set In the Roman Empire.:

      @Seraphim73 Technically I still have it up. We still need to play test the system. That all said, if there's interest, it's something we could look at again...I never finished coding the combat system though.

      I'm just saying I would play the ever loving shit out of a Codex Alera game. The big question is: WHAT FURY?! Oh god the decisions.

      Everytime you mentioned this on the 100 I had to have some private time to myself over the idea.

      posted in Mildly Constructive
      I
      ixokai
    • RE: Marvel: 1963

      @Tempest said in Marvel: 1963:

      Personally, mixing Marvel/DC just waters down both to me. Feels wrong-fun to me, and I've honestly never seen a particularly well-done scene with say Batman/Spider-Man (fucking wrote superman here, whoops) together.

      Does that have to do with the fact that one is Marvel and one is DC, or the fact that the mood and atmosphere of these two characters could not be more diametrically opposed? I can imagine a lot of people who would just feel weird in an entirely in-Marvel scene cohabiting with your friendly neighborhood Spider-Man.

      Doing both in 'one universe' just seems super fanservice-y/"we need players".

      I prefer single universe games, but I also recognize I'm in the minority, because the two single-uni games, DC Rebirth and Marvel Reborn are dead as fuck.

      I prefer Marvel only (but voted yes on this change; but the reason I prefer Marvel only is I kinda hate DC. Die, Superman, Die.), but I also want to listen to people. While we've had a couple players not happy with it, we've had more happy, and if that makes it fanservicey, then I plead guilty. We've had a few new people come by recently who just can't seem to find a character they want to play and don't want to do an OC. That's unfortunate.

      posted in Adver-tis-ments
      I
      ixokai
    • RE: NO-GO IPs for MU*

      @faraday said in NO-GO IPs for MU*:

      Except except.... many copyrighted RPGs/TV shows/universes/etc. are also trademarked. If you want to make a Shadowrun game, for instance, you're butting up against not only the copyrighted material in the rulebooks, but also Shadowrun itself, which is a registered trademark of... someone. I lost track. Now Shadowrun happens to encourage fan contributions but the example stands in principle.

      Yes, but those are different things and there isn't really overlap. A copyright protects a specific expression: its automatic, lasts damn near forever these days, and you have absolute authority to determine who can do what with it except in the case of fair use (which a court determines on a case by case basis), including who can create derivative works of it.

      A trademark protects, essentially, a title, name or symbol (a 'mark'). Specifically, it allows you exclusive use of a title in a certain context for the purpose of consumers not being confused. Shadowrun may be trademarked but unless you use Shadowrun in such a way that you're presenting your thing as Shadowrun confusingly, you're not violating someone's trademark.

      You can say 'This game is based on Shadowrun' and voila: there's no way anyone can be confused and think this game is Shadowrun. The trademark is protected.

      A MUSH would almost certainly be a derivative work, so the authors are entirely legally allowed to disallow their use. But they have no obligation or need to based on any danger of losing any IP rights. Arguably, if someone names a game 'Shadowrun Toronto' it might be in violation of a Shadowrun trademark, so just name the game 'Toronto Sprawl' and put a subnote, 'a game based on Shadowrun'.

      Further, people overstate this 'you must enforce the trademark' thing a lot. You are not required to defend every use of a trademark. You're required to maintain control: but control doesn't mean that everytime you see someone use the name of your work you have to send them a C&D letter. It just means you need to enforce when people use it in a way that you do not allow for. You're entirely permitted to allow people to use Trademarks according to certain rules you establish. Just be careful they aren't too lax or your word will turn generic.

      posted in Mildly Constructive
      I
      ixokai
    • RE: NO-GO IPs for MU*

      @bladesurfer said in NO-GO IPs for MU*:

      I think one of the biggest reasons that they say 'no' is because they have to 'defend their copyright' or else it can be lost. So if you ask, they have to say no.

      I think another part of this question is 'Which IPs have come after MU*'s to Cease and Desist?'

      Except.. this isn't how copyright works. You can't lose copyright. You are under no obligation to defend copyright. If you don't defend copyright you in no way shape or form lose it.

      That's trademarks, an entirely different type of intellectual property.

      posted in Mildly Constructive
      I
      ixokai
    • RE: Generic sci fi game.

      @Ghost said in Generic sci fi game.:

      @ixokai said in Generic sci fi game.:

      I want my characters story to begin and end in a meaningful way, not end in an arbitrary point because a meta-story is now done, even if my personal story has gaping holes I didn't fully address or solve

      That's why I think that a story that actually ends would be the one to grant you a beginning, middle, and end.

      I'm gonna go out on a limb and say that a very, very small number of char-stories actually resolve in this hobby. Most games either get shut down, or people leave, flake off, characters come and go, or IC romantic partners disappear for 4 weeks and come back having made an alt to bang some PC with A HEMSWORTH as a PB.

      In theory, if done right, an anthology game, with some planning and care/consideration, could assist players in finding ways to make their arcs in the "season", so to speak, being meaningful.

      I can speak only for myself, but if I don't find regular character growth-- the development and resolution of my characters faults, issues, complications and what not-- then I have no interest in the game and quit quickly. The issue with an anthology game is characters will join at different periods: they'll have different understanding of the metaplot. They'll develop independantly of that metaplot. Some resolutions and growth will be at different paces. By timing out characters according to the metaplot, you're putting an effective deadline on growth. If I happen to be in right away that's one thing, I know in theory how long the metaplot lasts: but there's a constant pressure of knowing how long I have to solve and grow my character. If I come in two thirds in, this is a drastically different situation. I can either make a wildly less complex or interesting character, or I can make one I think can 'resolve' by the ending.

      All luck to you but to me, this coupling of characters with an arc in an anthology situation? Totally turns me off. But maybe others would love it! I generally get a lot more out of games from my personal character growth and involvement with other characters then I do the 'metaplot'.

      posted in Mildly Constructive
      I
      ixokai
    • RE: Generic sci fi game.

      @Ghost said in Generic sci fi game.:

      @ixokai To each their own. I'm just that guy that is of the opinion that part of the problem on far too many games are that there's very little harvesting and a whoooole lot of old, tired, ancient character nonsense.

      On a lot of these games it's just plenty of ancient characters with sheets so maxxed out that they've started to have to take stuff like Skill Focus: Underwater Taxidermy, and far too many players are comfortable doing really stupid heroic things IC on the belief that your character will never die until you choose for them to die.

      Creating a new character every season is attractive to me because it would be challenging and keep games from becoming stale.

      I'm very aware of the dinosaur problem, but there's other ways to address it. I want my characters story to begin and end in a meaningful way, not end in an arbitrary point because a meta-story is now done, even if my personal story has gaping holes I didn't fully address or solve.

      posted in Mildly Constructive
      I
      ixokai
    • RE: Generic sci fi game.

      @Ghost said in Generic sci fi game.:

      Love FS3 or not, it cuts down heavily on the overcomplicated sheet management systems, as well as people dicking around trying to find unbeatable feat/merit/etc combinations.

      Back to Topic
      I think you'd want to be clear ahead of time if it's a SPACE HORROR game. One cool idea, IMO, would be to have each "season" be a new setting with new characters and an established end-goal, run credits, etc.

      Season. 1 could be like an ALIENS plot with plenty of char death/danger
      Season 2: Space colonists find something under the ice
      Season 3: Body snatchers a-la The Thing
      Season 4: Everyone loved season 2 so staff introduced a sequel.

      I for one wouldn't want to play an anthology game where every 'season' I have to start a new character. Its basically a new MUSH every season.

      I like American Horror Story but wouldn't want to play it.

      posted in Mildly Constructive
      I
      ixokai
    • RE: Logging your activity

      @Thenomain said in Logging your activity:

      I am from such an older age of online text gaming

      Who isn't? I've been doing this for 23 years now.

      Back in the day something like a wiki was nearly unthinkable. When I discovered LAMush and their automated system to dump help/news and what amounts to character's +finger to upload to the web it was astonishing to me.

      Back in the day I remember the OOC Masquerade and how super serious some games were about it.

      Things evolve.

      posted in Mildly Constructive
      I
      ixokai
    • RE: Logging your activity

      @TNP said in Logging your activity:

      @Auspice Nothing worse than logging with a client's logging function. The coder on Dark Spires - I don't recall his name - coded up a logger object that works fantastically. You drop it and it records only the IC that happens in the room so it doesn't pick up any of your pages, bboard reading, +wheres, etc. It's since migrated to other games, including Marvel: 1963 where @ixokai has greatly improved on the functionality and has configured it to the wiki format as well. I never log without it.

      Slight correction here.

      The logging code we use on Marvel:1963 and Star Wars: Insurgency may look like the Dark Spires code but it isn't anything like it. I implemented it from scratch and have added a number of features to it since (most notably, +log/capture which grabs the location, desc, and all the people in the current room for wiki output; and the ability to view just the last X poses instead of the whole log for connection issues; and the ability to undo log entries so you can repose a fixed pose instead of emitting something for the logger to edit).

      My goal for +log is for it to be absolutely trivial for someone to post their logs to the wiki. I post logs after most of my scenes within a minute of it ending, often the most difficult part is thinking up a name.

      But lately I seem to be playing mostly (Arx excluded) on games that have heavy log-cultures.

      But since credit has been mentioned and I do think credit is important, the only credit I give is inspiration -- since until today I wasn't sure who originated the original code 🙂

      That said, if anyone wants it for Penn or Rhost they can PM me and I'll email it to you. It won't work on MUX (and I don't think TinyMUSH but I don't touch the server with a ten foot pole so don't know for sure) as it relies heavily on @include.

      posted in Mildly Constructive
      I
      ixokai
    • RE: How do you make money?

      First job: McDonalds, drive-thru specialist. Yeah this is a thing. Not everyone has the chops to keep the drive-thru going. I'd periodically work the front or grill just for a change, but my go-to position was taking drive-thru orders. This job honestly defined my work ethic. It was my first real, real friends, too.
      Second job: Robinsons May sales associate, women's shoes.
      Third Job: Macy's sales associate, women's shoes.
      Fourth Job: Macy's sales associate, men's shoes. Oh my god the sanity.
      Fifth job: Tech Support.
      Sixth and current job: Developer, small software company.

      posted in Tastes Less Game'y
      I
      ixokai
    • RE: Mobile phone usage poll

      @Ashen-Shugar said in Mobile phone usage poll:

      I use an ssh client to connect to my server to use tinyfugue 🙂

      Then you need a good SSH client on your mobile 🙂

      FWIW, Prompt 2 on IOS is superb for those who are iDrones like myself.

      posted in Mildly Constructive
      I
      ixokai
    • RE: Star Wars: Insurgency

      @Tennyson said in Star Wars: Insurgency:

      There's something else to consider. If a stunt turns out to be too powerful, staff can always re-evaluate it and tone it down.

      Indeed, and we will be doing that when we transition into beta (which is soon: I wanted to get the final ship code done this weekend but kinda got sick so probably another week)

      Also we have public, open sheets exactly to avoid someone getting unfair treatment stunt wise.

      posted in Adver-tis-ments
      I
      ixokai
    • RE: Mac Client Recommendations?

      @Three-Eyed-Crow said in Mac Client Recommendations?:

      @Auspice said in Mac Client Recommendations?:

      And that dual-input, right? That's the main reason I'm bit-chomping. I've been missing my Potato dual-input soooooo bad.

      Does Potato work for Mac? I thought it did (and thought this and its Linux compatibility was part of the reason it had that kind of infuriating Aspell thing instead of a live SimpleMu-style spellchecker). But I'm a Windows user so I only know what it says on their site, not what it actually does. I'm now curious what it's like for non-Windows users, since I've found it pretty functional.

      The last time I tried it (pre-Sierra, which @Auspice says is an issue) it was 'functional' but utterly did not fit. I've seen a TK app that looked fine on mac, but whatever toolkit it uses isn't the one Potato does. Potato on the mac is a glaring heathen of wrongness.

      posted in MU Questions & Requests
      I
      ixokai
    • RE: Mac Client Recommendations?

      @Auspice said in Mac Client Recommendations?:

      And that dual-input, right? That's the main reason I'm bit-chomping. I've been missing my Potato dual-input soooooo bad.

      It really is the best feature ever. I love Atlantis but if Potato wasn't so godawful ugly on Mac I'd probably switch just for that... until Atlantis 2.0 at least.

      posted in MU Questions & Requests
      I
      ixokai
    • Cassandra @ 100

      I can't remember your msb username, are you out there?

      posted in A Shout in the Dark
      I
      ixokai
    • 1
    • 2
    • 23
    • 24
    • 25
    • 26
    • 27
    • 34
    • 35
    • 25 / 35