MU Soapbox

    • Register
    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Muxify
    • Mustard
    1. Home
    2. Alzie
    3. Posts
    • Profile
    • Following 0
    • Followers 4
    • Topics 18
    • Posts 478
    • Best 110
    • Controversial 7
    • Groups 3

    Posts made by Alzie

    • RE: Optional Realities & Project Redshift

      @il-volpe Actually, the articles don't say anything.

      Community Manager vs. The Troll - Summed up: Hey guys, the internet is mean. Don't be mean back, but don't ban people either, because that might be too draconian. Instead, what you do, is ignore the troll and talk about RP! (Cue Nicholas Cage)

      So You Wanna Make a Game - Making shit is hard, mmkay? (Cue Nicholas Cage)

      Customer Service and Muds - I wrote an entire article to tell you to let people know what you're doing, to handle player complaints privately and to never commit to anything. (Cue Nicholas Cage)

      How to Write Branching Storylines - I will show you how to make flow charts, because you cannot make branching storylines without them. Also you should connect all your plots together, because that needs to be said. How do you do that? Flow charts.

      Staff Ethics - Hi, I am going to tell you what is right and wrong. What? You say that ethics are highly subjective, surely you must be joking. You're stupid if you can't agree that these things are wrong! Oh yeah, by the way, the best way to have an ethical staff is to have no staff at all! So automate everything.

      Saying that we've already talked about all things may be an understatement. Not only have we talked about them, but so has every other community around gaming ever.

      posted in Adver-tis-ments
      Alzie
      Alzie
    • RE: Kushiel's Debut

      @BigDaddyAmin They're more like serenity courtesans. Expert aides who have been trained in sex but may not only focus on that.

      posted in Adver-tis-ments
      Alzie
      Alzie
    • RE: Optional Realities & Project Redshift

      @jaunt 'Yo dawg, I totally came here to participate in civil discussion. Oh did I say civil discussion, dawg I meant i'm here to troll.'

      posted in Adver-tis-ments
      Alzie
      Alzie
    • RE: Kushiel's Debut

      I tried kushiel's debut, Ash and Skaldia are great, but they aren't what keep you in the game. RP is. That i'm afraid I found lacking. Most people were downright unapproachable. Attempting to talk to the person in charge of my particular section of territory in a manner of saying 'Hi, I exist, what's up' got me a finger and no further reply. So I was like 'Well let's go to an event,' but I found that I was quickly ignored. The game is cliquish, which is, to be fair, what you expect with any game like this, but when you rely on other players for RP and go to a scene to RP with others only to be ignored completely in favor of other people in the scene, well it isn't a very compelling reason to stay. Regardless, I was okay with that, because I found two players who seemed to resonant with my goals and wanted to interact further. Then one was promptly killed and the other was pushed out of interaction with anyone because of an NPC post that basically made it a crime to interact with foreigners. And while I was willing to ignore it, the PC in question was not. Which put me back in to a lacking RP mode with no way to get it. There certainly weren't an overabundance of rumors in my chosen fields, so little to investigate there.

      So basically, my advice to you is: Ash and Skaldia will be great, but unless you find yourself in one of the cliques, give up.

      posted in Adver-tis-ments
      Alzie
      Alzie
    • RE: Optional Realities & Project Redshift

      At the least, lets give them credit for creating a site that states it wants to talk about all text based RPGs equally and finds an ingenious way to make it so that only muds end up really being talked about. Let's be honest, automated systems was a great decision as far as criteria. It's vague enough to be subjective and just clear enough to disqualify most of our systems since they don't decide rp.

      posted in Adver-tis-ments
      Alzie
      Alzie
    • RE: Hosting: 10 Things To Know

      Since it's been brought up several times, Security through Obscurity is a perfectly fine, viable solution as long as it's not your only security layer. Changing the default port of SSH or any other service will never stop a targeted attack, however as an additional layer of security, it will defeat the non-targeted attacks that are employed regularly that look for a specific opened port.

      Additionally, Services like fail2ban or sshguard have their own issues, such as someone recognizing that they are being employed and locking you out of your own server. They're not particularly good solutions given that danger unless you have local access to the server.

      posted in How-Tos
      Alzie
      Alzie
    • RE: Optional Realities & Project Redshift

      @crayon If you can't see the inherent discrimination in your opening statement being Optional Realities is a community and design blog for text-based, online Roleplaying Games with a focus on character and story-driven games that include permanent death as a feature while at the same time giving only games that conform to a completely different set of principles the spotlight then i'm afraid we can't help you. In any case, I do not care. As you stated, you can do whatever you want because it's your project and you're footing the bill, not us.

      posted in Adver-tis-ments
      Alzie
      Alzie
    • RE: Capped XP vs Staggered XP?

      At least in the case of GMC, the xp staggering is actually in the book. After so many XP spent, cost goes up. I can't say though that I ever heard any complaints about the XP staggering. As to just having a cap, I think most people react negatively to a hard cap and I don't think hard caps solve anything really. The problem with places like TR is that the XP gain was too fast so everyone had too much XP before they knew what to do with it.

      Just having a hard cap though, the only thing that really does is ensure that players hit a wall where they feel like advancement is blocked for them. You can fix that in other ways, by providing them advancement through secondary means (political, etc) but most players probably won't be satisfied with that. Also it's weird if every person, no matter how long they've played, eventually is equal to every other person.

      Personally, I don't see an issue with staggering costs and it's a good middle ground to the problem.

      posted in Mildly Constructive
      Alzie
      Alzie
    • RE: Optional Realities & Project Redshift

      So, why are we still having this discussion? They said they wanted to treat this place like twitter and announce their new posts. Move on. They're certainly not interested in addressing the discrimination inherent in their website's design and that's perfectly fine since none of us are involved in paying for keeping it on the net. Ya'll are acting like anything they say about anything means anything.

      posted in Adver-tis-ments
      Alzie
      Alzie
    • Hosting: 10 Things To Know

      I host a lot of things. At this time, 4 websites, 4 games, SSH Service, FTP Server, MySQL DB, DLNA Media Server and even a local git repository. Apache is the tool of choice, which some people will run away from and others will embrace. There are other options. Here are 10 things no one will tell you but everyone should know.

      • Rotate your DB logs
        Everyone talks about rotating your server logs. Everyone talks about rotating your PHP or apache logs. No one talks about the fact that databases store a binary, per transaction log. They certainly don't tell you that this log can sometimes take up gigabytes of space given any query which has enough data in it or that runs off unattended or stopped. Contrary to popular belief, there is nothing to lose by deleting them or to gain by keeping them.

      In *Nix, there are two locations:
      /var/log/mysqld.log
      /var/lib/mysql/ib_logfile*

      In Windows, they are found:
      %ALLUSERSPROFILE%\MySQL\MySQL Server X.Y\ - XP, Server 2003
      %PROGRAMDATA%\MySQL\MySQL Server X.Y\ - Everything Else
      Where X.Y are your version. They have the same name as the ones above.

      • Use Non Standard Ports
        One of the easiest and most overlooked ways to prevent a large majority of intrusion attempts is to simply use a different port than what is normally used. If you want to host SSH, then don't use 22. That will stop a good chunk of people trying to get into your server without permission. Preferably, host using high numbers. Most ports between 1 and 9000 hold standard uses even if they aren't defined by the standards committee. So picking a number higher than 9000 is the best.

      • Don't allow root logins on SSH
        If you are going to allow SSH logins, don't allow root logins on SSH. Let's say that again. Don't allow root logins on SSH. One more time. Don't allow root logins on SSH. This is easy to set up because it's a simple toggle in the sshd.conf file present in both Nix and Windows.

      • FTP is dangerous
        FTP is quite possibly the most innocuous and dangerous thing you will ever host. Then again, so is any web system which lets users upload files to your server. If you are going to host FTP, do not use the default port ever and make sure that the user can only ever access their own home folder. If you use filezilla FTP server, it is easy to set a home folder and lock a person to that folder using the GUI provided. Be wary when allowing anyone access to uploading files. I recommend not allowing them to set files +x.

      • Virtual Hosts are actually easy
        Virtual Host definitions for multiple websites and hosts may seem ambiguous but as it turns out, they're really not. I know lots of people struggle with them, but allow me to demystify them. At their base form, a virtual host definition only needs this much information.
        <VirtualHost *:80> - This tells apache we want to serve this site to any ip address that connects on port 80. Unless you run a server that differentiates hosts based on ip, you will never the change the *.
        ServerName <text> - Mostly likely, you differentiate based on host name. This is where you put that host name. So if your host name was www.vertinext.com then you would put www.vertinext.com where <text> is.
        Optional: ServerAlias <text> - This is for aliases. A good rule of thumb is to put your address without www here. It can also match wildcards (*). This can be useful for matching subdomains if you have several for the same host but not separate websites for those domains. It can also be used to allow you to access it locally by a keyword, such as by putting in mysite in your web browser on your local machine.

      And that's all. So at most you would have this.

      <VirtualHost *:80>
         ServerName www.vertinext.com
         ServerAlias vertinext.com
      </VirtualHost>
      
      • Use Prepared Statements
        If you're going to write SQL, whether it is in softcode or any other language, write using prepared statements. While you can't achieve this in every language (You usually can using the native client drivers), you can usually mirror it. In softcode, you can call the sql statements using U, which is close as you can get to prepared statements as they're essentially paramaterized statements, which is what python does. This is important for several reasons. The first is that you always know where the input is going, the second is that the input is interpreted as that specific type (especially when using sqlescape in softcode and if you want to prevent softcode in the input use escape or decompose) which means it won't run it as interpreted code. Better yet, if you're going to use a sql statement a lot, create them as procedures on the server itself. Procedures will only ever interpret their input as just that, input. This assumes that you have created your stored procedures the right way and not by stuffing SQL statements without parameters into them. See http://blogs.msdn.com/b/brian_swan/archive/2011/02/16/do-stored-procedures-protect-against-sql-injection.aspx .

      For those reading ahead, yes, that means that technically, you don't need to write any SQL on the mush, you could write it all as stored procedures and simply call sql(CALL <procedure>(input)) in game.

      • If you store passwords as plain text you deserve to die
        Does that seem harsh? Well it is and you should feel bad if you've done this. Encryption is ruefully easy now. There is no excuse. Decide what data should be encrypted and encrypt it in the database. Mostly, the data that should be encrypted is data that users wouldn't want released to others. This includes passwords (Since they may have reused a password - because no one does that right), email addresses (because believe it or not, you can use an email address to find people) and any data relating to real names and locations. In PHP, encryption is as simple as using Defuse in the following way: https://github.com/defuse/php-encryption/blob/master/example.php
        Also, for the love of all that is holy, stop using mcrypt.

      • Caching is important
        So you know that thing they call caching? You're gonna want that. No matter what you choose to use, make sure it supports caching and see if you need to turn it on manually. Then turn it on. Caching can be the cause of weird errors but all of those weird errors are easily solved by deleting the server's cache which takes about 3 seconds. The bandwidth and time saved (As well as the reduction in comments on slowness) make caching a necessity.

      • The default method of running more than one mush sucks
        Tinymux and Pennmush, also rhost mush, all have a method for setting up a configuration for more than one game on one server. It sucks. Don't bother with it. The solution is an attempted wrap around server that tries to differentiate each of the games based on very fine lines. This doesn't always work (Assuming that it makes the folders for the new game correctly at all or that it starts). There's a far easier way. Before starting your new game, change the name of the PID file. In the game directory you'll find a restart script, change Netmush to some other name and make sure that name is changed in the other CONF files. Then start your mush the normal way. This is by far an easier way to run multiple mu's than the way found in the make file. It also makes it far easier to tell which mush actually crashed when one does, if it does at all, because this changes the name of the process when it is launched.

      • Your router may not forward port 80
        Depending on the software in your router, it may not support forwarding port 80. Some do, some don't. Before you decide 'i'm going to host a website,' you should test and see if forwarding port 80 kills all your web browser traffic. If so, your software doesn't support it. There are options though! You can see if you can get dd-wrt on your router or openwrt. These are two open source firmwares that support port 80 forwarding correctly based on iptables.

      posted in How-Tos
      Alzie
      Alzie
    • RE: You're on a boat!

      @il-volpe it was just an example. If you want that functionality. Replace the if part with...
      @assert [u(%qA/CANPASS,%#)]=@pemit %#=Can't pass;@fo [where(%#)]=[name(%qA)]

      posted in MU Code
      Alzie
      Alzie
    • RE: The State of the Chronicles of Darkness

      @Arkandel said:

      Early 2017. I'm callin' it!

      You've put a date on it! Now we have to move it forward by a couple years as normal! 2019!

      posted in Mildly Constructive
      Alzie
      Alzie
    • RE: You're on a boat!

      Okay, so, the player types sail north for instance from inside the object. The problem is that the exit isn't inside the object. So you can't just assume it is. So you have to account for that.

      sail *:@switch [setq(a,0)][iter(lexits(where(where(%#))),if(strmatch(name(%i0),%0*),setq(a,%i0)), ,)]%qA=0,{@pemit %#=That doesn't appear to be a direction you can sail!},{[if(u(%qA/CANPASS,%#),tel(where(%#),loc(%qA)),pemit(%#,Your boat can't fit through there!))]}

      posted in MU Code
      Alzie
      Alzie
    • RE: You're on a boat!

      @il-volpe the fail messages can be whatever you want to be clear. As to where, it would grab the object's dbref. If you enter an object, your location is that objects dbref. As to making it part of the @ command, that's a little harder. I will do that in a little

      posted in MU Code
      Alzie
      Alzie
    • RE: A General Apology from the Guy Who Was Ashur

      I'm always amused that we tend to continue to interact with our community babe Ruth's rather than writing them off and tipping our hat.

      I went back and read this entire thread. It's good that an apology spawned staff ethics discussion even if it did devolve into the catriona show.

      That being said, reserving a name I think is OK. After all, you're accepting the stigmas from the name so that's your problem.

      posted in Mildly Constructive
      Alzie
      Alzie
    • RE: You're on a boat!

      That makes things considerably easier.

      @lock exit=canpass/1|type^player
      &canpass exit=lte(get([where(%#)]/size),v(size))

      That will only allow someone through the exit if the size attribute of where they are is less than or equal to the exits size attribute or they are a player object.

      posted in MU Code
      Alzie
      Alzie
    • RE: You're on a boat!

      I can help with that. Can I know a bit more about the setup? For example, are the boats objects they carry? Or are they objects players enter? If they are just things they carry, how do you know when someone is sailing?

      posted in MU Code
      Alzie
      Alzie
    • RE: You're on a boat!

      So basically. You want to do this.

      Set size on boat. Lock it to wizards but set it visual so exits can pull it without being set wizard.
      @lock exit=canpass/1|type^player
      &canpass exit=grab size of %#'s boat and compare to get(%!/size)

      That will let them pass if the size of the boat works or they're a player object.

      posted in MU Code
      Alzie
      Alzie
    • RE: You're on a boat!

      2 options. Easy and hard. I suggest easy.

      Easy:

      • Create zones for the ships and exits. Check the parents of each. Code for the large and small waterway parent.

      Hard:

      • Set each exit to have a size and each boat to have one too. Make sure they're compatible.

      The easy way just requires setting a parent. The hard requires each one to have an attribute set.

      posted in MU Code
      Alzie
      Alzie
    • RE: Help Me Decide (Please!)

      @coin or bad shit starts happening to those werewolfs who keep ignoring the oath. Because you know it's not like father wolf isn't still out there or that they don't each have auspice totem spirits.

      posted in Mildly Constructive
      Alzie
      Alzie
    • 1
    • 2
    • 15
    • 16
    • 17
    • 18
    • 19
    • 23
    • 24
    • 17 / 24