@Coin No. I updated to the newest dev version of the forums and noticed the same thing.
Posts made by Glitch
-
RE: Post + Refresh Stopped.
-
RE: Basic Anomaly +Jobs Functions
@Cobaltasaurus Works in progress are great and thanks for taking the time to do this one!
-
RE: 1 Sphere, 2 Sphere, 3 Sphere, 4!
I like the idea of at least GMC mortal+ content. It adds a little bit of that edge against the darkness and I personally prefer playing something other than a straight mortal.
-
Muxify (MU code editor)
So I have an online editor for MU code that I've added to the menu (the document icon with the hover text Muxify). This will bring you to the editor in a new tab.
Usage:
def <alias> { <code> } - Simple preprocessor for code repetition or object replacement.
Ex:def roller { #36 }
def alert { [ansi(hr, |, hw, %o, hr, |)] }
To use in code wrap the def in colons:
&f.function :roller:=pemit(%1, :alert:)
Which will result in:
&f.function #36=pemit(%1, [ansi(hr, |, hw, %o, hr, |)])
Commenting - Use // before any comments to have them parsed when minified. Everything after // is commented out, so make sure no code follows it. Block commenting is also available as /* <multiline comments> */
Ex:// set initial total value [setq(t, ladd(%qf))] // here is okay too
or
/* this is a multiline comment */
Keyboard Shortcuts - Supported, see the ACE editor list
Storage - Code can be saved locally or loaded in minified or expanded form.
Minification - As you code, the minified version will be filled in simultaneously. It should cover most cases to proper format.
Explode - This will take minified code and add whitespace to it in the left pane.
Finally, here is some example code you can copy/paste to the left pane to test it out:
/* Requires global function pluck: * [setq(i, if(t(%2), %2, %b))][setq(o, if(t(%3), %3, %b))][extract(%0, match(%0, %1*, %qi), 1, %qi, %qo)] * * Requires global function alert: * [ansi(hr, |, hw, %b%0%b, hr, |)] * * For english stats, a fate stat object is needed, defined here with fss, * with the following format &d.skills fss=skill|skill|skill */ def fr { #36 // set to object dbref } def fss { #75 // dbref for stat system } &c.roll :fr:=$+roll *:ulocal(%!/f.parse, %#, %0) &f.parse :fr:= // preformat roll string [setq(s, edit(%1, %b, , +, %b))] // set error register [setq(e,)] // set natural language register [setq(l,)] // fate dice [setq(f, lrand(-1, 1, 4))] // set initial total value [setq(t, ladd(%qf))] /* check if string token is a word and parse it, otherwise assume * it is a number and add to total */ [iter( %qs, if(isword(%i0), setq(t, ladd(%qt [u(%!/f.get-dice, %0, %i0)])), [setq(t, add(%qt, %i0))] [setq(l, %ql|%i0)] ) )] // if error(s), display them, otherwise display successful roll [if( t(%qe), u(%!/f.display.error, %0, trim(%qe, , |)), u(%!/f.display.roll, %0, trim(%ql, , |), %qt, %qf) )] &f.get-dice :fr:= /* get the skill from the stat object (used for default cases where the * skill exists but is not present on charbit) */ [setq( 0, pluck( get(%va/d.skills), %1, |))] [if( t(%q0), // get skill value from charbit or return 0 [setq( 1, pluck( get(%0/_skills), %q0, |))] [if( t(%q1), trim(rest(%q1, :)), 0 )] // add to the language output [setq( l, %ql|[if(t(%q1), %q1, %q0)])], // or add as an error setq(e, %qe|could not find '%1'.) )] &f.display.roll :fr:= // send roll message to room remit(loc(%0), [alert(+roll)]%b[name(%0)] rolls [u(%!/f.tr.dice, %3)] + [iter(%1, if(t(rest(%i0,:)), [first(%i0,:)] %(+[rest(%i0,:)]%), %i0), |, %b+%b)] for a[case(%qt,1,n,7,n)] [ansi(hw,[u(%!/f.tr.success, %qt)] %([if(gte(%qt,0), +%qt, %qt)]%))].)] ) &f.tr.dice :fr:= // make fate dice pretty edit(%0, -1, ansi(y, %[, hw, -, y, %]), 0, ansi(y, %[, hw, %b, y, %]), 1, ansi(y, %[, hw, +, y, %])) &f.tr.success :fr:= // provide english language values case(%0, -2, Terrible, -1, Poor, 0, Mediocre, 1, Average, 2, Fair, 3, Good, 4, Great, 5, Superb, 6, Fantastic, 7, Epic, 8, Legendary, Mythic) &f.display.error :fr:= // display any errors to roller pemit(%0, [alert(+roll)] Errors: [itemize(%1, |)]) /* set the data object for skills list. Alternatively add a d.skills * attribute to the roller and edit f.get-dice to use %! instead of %va */ @va :fr:=:fss:
-
RE: [Request] Good AnomalyJobs tutorials?
I think he probably just wants a quick run-through of creating a bucket, setting up jgroups and little tricks of the trade that might help make using it easier (maybe /cc or whatever?).
-
How-To Badge
It's a little thing, but if you write up a nice tutorial for our How-To category, you'll get a Tutorialist badge for your contribution. It will sit under your image, staring down all-comers and declaring your awesomeness.
-
Questions and Requests
Please feel free to use this category to post your MU-related questions and to make How-To requests! Please make sure to use tags that might be useful for later searching. Also, if making a request for a specific How-To, use [Request] in your topic's title.
-
RE: This Category
@Bobotron Let me make another category for that. Then we have a place for questions and requests and we can keep this category focused on solutions.
-
RE: This Category
I had intended it to just be for tutorials and the discussions about them, but maybe we can do something like [Request] in the topic if you're looking for a particular tutorial? Or did you have something less specific in mind?
-
Zero to Mux (with wiki)
Intro
This is one way to get yourself started with a MUX and a wiki. I'll include a particular hosting company, domain name company and server setup. I do not think this setup is necessarily superior to any other combination of the above, but it is what I use personally, what was used for MSB and for at least one other MUX. Please feel free to substitute out any of the following for your own setup considerations.
Server
We use digitalocean.com for MSB and they have a simple server setup that includes mediawiki out of the box. Their smallest plan gets you a good basic setup with plenty of space for $5 bucks. If you decide to use digital ocean, please consider using my referral link: https://www.digitalocean.com/?refcode=cc025ed46a11.
Once you have an account created, the following tutorial will walk you through setting up your new server and mediawiki: Digital Ocean Mediawiki Tutorial
Domain
Now it's time to select a name. I use namecheap.com for my domains, but you can, once again, use any domain hosting service. They offer free whois protection for a year (and then a cheap rate after that). Whois protection keeps your registration information private, such as real name and address. After purchasing a suitable domain, use the following short tutorial to setup the nameservers for your domain: Nameserver setup on namecheap
For our purposes, you will want to use the following nameservers:
ns1.digitalocean.com ns2.digitalocean.com
If you are not using digital ocean, find out the nameservers offered by your hosting company and use those instead.
Now back to digital ocean where you will follow this tutorial skipping straight to Step 3 and stopping at A record (unless you plan to add subdomains).
Server Interlude
Before we continue, I'd like to get some server stuff out of the way. This step is recommended, but optional.
If you're running linux, use terminal so we can ssh to your server. If you're on Windows, download a program called kitty which will similarly allow you to ssh to your server. You will use the username and password provided by digital ocean to connect to the IP address of your server (found in your droplets list).
Once connected, we're going to create a new user that isn't root.
adduser <username>
This will put you through a simple question/answer creation script. It's unnecessary to fill out any of the information other than the password, but it will create everything you need for a user.
Next, we want to give this new user sudo permissions. This allows your new user to run commands as root when necessary.
adduser <username> sudo useradd -G www-data <username>
Now, the next time you log in with this user, which you should be using from now on, you will have sudo privileges.
Wiki Settings
After your domain is pointing to the right place, you'll want to do the following to make sure the domain name you want shows in the url bar when wiki handles its redirecting:
Log in to your shell with ssh or kitty, then:
cd /var/www/html vi LocalSettings.php
This will open up an editor called vi. The commands are a little different to use, so you can use whatever editor you might be familiar with. Or follow this directly:
Hit i to enter insert text mode.
Go down to the following line (where you will see your own IP):
$wgServer = "http://104.236.219.143";
And replace it with your domain name:
$wgServer = "http://atfmux.com";
Once you've done so, hit :wq! (that's colon, then "wq!") and you should be all set with this step!
PennMUSH
This is a pennmush install that comes with @Volund's basic build-out, basically a complete game except for chargen. You can check out his repo at github for installing nwod, nwod2 and exalted 3e.
So you've completed your mediawiki install and you've copied down the mysql root password (it is displayed to you when you first ssh into the server). Ssh into your server and do the following, I'll be using <user> to denote the user created in the Server Interlude section.
sudo apt-get update sudo apt-get install git cd /var/www sudo git clone https://github.com/pennmush/pennmush.git sudo chown -R <user>:<user> pennmush
Now for setup of pennmush itself:
sudo apt-get install libmysqlclient-dev cd pennmush ./configure make update make install
Make update will ask you a couple of questions, you can just hit enter through them.
Now, because Volund's job system uses mysql, we have to do a little extra tweaking. Log into mysql with root and the password provided to you when you first ssh in to your server.
mysql -u root -p
This will prompt you for the password. Enter it. If everything is successful you'll see a
mysql>
prompt. Enter the following commands, but remember to changepassword
to something unique!mysql> CREATE database mush; mysql> GRANT USAGE ON *.* TO mush_user@localhost IDENTIFIED BY 'password'; mysql> GRANT ALL PRIVILEGES ON mush.* TO mush_user@localhost;
Just type
exit
to exit out.Now, to get the preinstalled mush db:
cd game wget http://musoapbox.net/volund-penn.tar.gz tar xzvf volund-penn.tar.gz
Then edit your
mush.cnf
file, make sure instead of password, you use the password you just made in mysql:mud_name Your MUSH Name sql_database mush sql_username mush_user sql_password password
Finally, do a
./restart
and your game is up and running on port 4201!Use your favorite telnet client to connect. The code wizard is
Three
, password iswl9y@tx$he
. You should only do code install on this wizard bit. As for the #1 bit, it isOne
with the passwords00telk1!alw.
. Make sure to change these!TinyMUX
Okay, your server is up, your domain name is purchased and we've redirected it to your new server. Now we wait for domain name resolution (can take up to 48 hours, but rarely takes that long). While we're waiting, lets setup our MUX.
As described in the Server Interlude step, open up an ssh connection to your server. Your mediawiki install is in the directory /var/www/html. We'll be putting your mux one level below that. So first, lets install git, which we'll use to grab tinymux:
sudo apt-get install git
It may ask you for your password (because you're using your newly created user, right?), so go ahead and enter it. After that, your screen will scroll with some info and offer a final [Y/n] option. Hit Y to continue.
After it's installed:
cd /var/www git clone https://github.com/brazilofmux/tinymux.git
This will make a tinymux folder in /var/www. Next we will install tinymux.
cd tinymux/src ./configure --enable-stubslave --with-mysql-include=/usr/include/mysql --with-mysql-libs=/usr/lib/mysql --enable-inlinesql
There are other configuration options you may include:
--enable-memorybased See docs/MEMORY.
--enable-realitylvls See REALITY and REALITY.SETUP.
--enable-wodrealms See docs/REALMS.
--enable-ssl See SSL.This will take a little time, but once done, then we:
make depend make cd ../game
And our final step:
./Startmux
Your MUX is now up and running at your IP Address on port 2860. There are many mux configuration changes you can make, but we'll leave that for another tutorial.
For a starter setup, @Rook has provided an initial setup to make your life easier that can be found here.
Know how to improve this? Let me know and I'll update it! Questions or Problems? Please let me know!
-
This Category
So this category is here for you to post your how-tos and tutorials on how to accomplish any of the myriad of things necessary to running a game. Hopefully this can be a handy repository for everything from setting up a mux to how to manage a parent room or implement pose breaks. This isn't strictly related to code, but will likely touch on everything from server-side information to build and admin settings as well.
Rules:
- Make sure your topic title is descriptive of what is being explained.
- Make sure to include relevant tags.
-
RE: RL peeves! >< @$!#
@Ganymede That is patently false. The information, visualization and documentation tools of all trades are moving toward digital mediums. Some more slowly than others, but you are wrong to claim otherwise.
If you want your kids to have basic hand-writing skills in case of some technological apocalypse, that's fine, but you're still wrong about "how shit's done in real life."
-
RE: RL peeves! >< @$!#
@Ganymede said:
That's how shit is done still in real life.
Only for legal stuff, which is why I imagine your world is filled with paper. I very rarely have to do anything on paper and it's definitely going to continue in that direction, rather than the other way.
-
RE: Dragon Age: Inquisition
@HelloRaptor Wasn't me. I liked DA:O way more, but I wasn't filled with rage for DA2.
-
Some Forum Stats
Just some stats from MSB's first full month up.
Users: 139
Topics: 129
Posts: 3737 -
RE: XP Rollover
@HelloRaptor The difference between Business As Usual Nothing To Complain About and Meanie Cheater Who Cheats is trust. That NPC is not the totality of the ST's interactions with players, and the implicit relationship there is a story provided to and for the players (with varying degrees of TPKs).
That Elder on a MU may be a reasonable person (hah, reasonable vampire), but the dynamic is different. They might be screwing you because it is IC for them, but in no way advances your story or even provides opportunity for such, it might be totally unintentional and, at the worst, it could be to utterly screw you for no other reason than your PB is from Vampire Bund. They don't have any particular duty to consider you, your story or your character and no one expects them to do so for all actions taken on their part on a MU.
It's another player, playing their character for fun. They're not an ST. Different expectations and different situations.
I consider 'a steady influx of new people' to be a design flaw, though.
You were here on day 3, so you're safe. Not like those that were here a week or two after that.
-
RE: XP Rollover
@HelloRaptor Except the power curve isn't part of the player setting. You're all neonates or apprentices. The elders and masters are NPCs. It is a problem with the conversion of a tabletop to an always-on game that runs for multiple years and has a steady influx of new people. Arguing that there is a power curve in the setting is ridiculous, as most settings attempt to provide a societal framework of some sort, which almost invariably includes haves and have-nots.
-
RE: Tidy Board, Untidy Board
Sorry, no. I was just thinking the same thing and was peeved that it didn't do that on its own.
-
RE: Tidy Board, Untidy Board
@Cobaltasaurus Yeah, that'd certainly be nice, wouldn't it?