MUSHclient Help Desk

KikonKikon Member Posts: 52 ✭✭✭
So I thought I'd open up a thread for MUSHclient help, since everyone else has one and us minorities need some love too. If you have a question specific to MUSHclient, feel free to ask it here and I'll check through and answer what I can.

Your questions can be as pathetically simple or stupidly complex as you'd like, I'll try my best to answer in a fashion that helps you out!
HavenJasline
«1

Comments

  • DaskalosDaskalos Credit Whore Extraordinare Rolling amongst piles of credits.Member, Guildmaster Posts: 1,509 ✭✭✭✭✭
    edited November 2013

    Equal Opporunity is dead. Down with MUSH. (no, seriously, if you support it more people might actually use it. Stupid pain in the butt client.)

    Edit: MUSHclient, to me, is easier to use than Mudlet but harder than cMUD. I started with MUSH about 14 years ago so maybe it's come a long way.

    Post edited by Daskalos on

    image

    image


    Message #17059 Sent By: Oleis           Received On: 1/03/2014/17:24
    "If it makes you feel better, just checking your artifact list threatens to crash my mudlet."

    Haven
  • KikonKikon Member Posts: 52 ✭✭✭
    That's the idea! I'm too stuck in my old fashion ways to make a switch to those fancy new clients, but I think most people would be surprised with how robust MUSHclient actually is.
    Haven
  • HavenHaven World Burner Flight SchoolMember Posts: 2,226 ✭✭✭✭✭
    MUSHclient is awesome and more true-newb friendly than Mudlet in my opinion. I think it was Mygale who said this, I'm not sure, but I think it sums up the arguments well: It's like you're facing a zombie (the mud) and you have several weapons at your disposal to take it on. You can use the shotgun (MUSHclient), a relatively easy to use and simple weapon, or you can pick up the Ray Cannon, a high-tech super weapon with many augment slots for bells and whistles.

    Both are powerful and effective but for this foe, it's more a matter of the style in which you want to take the zombie down.

    In any case, I'll offer my services in answering questions for the client too.
    ¤ Si vis pacem, para bellum. ¤
    Someone powerful says, "We're going to have to delete you."
    havenbanner2
  • FerrikFerrik Member Posts: 189 ✭✭✭✭
    I looooved Mushclient. Still do, @Kikon 's screenie there brought me back to some good memories!
    I've extended some help to newbies who preferred Mush. So I'm available too for this kind of stuff if necessary; still have my old stuff to look back at.
     
  • JaslineJasline Member Posts: 106 ✭✭✭
    How to in the world do you make a simple trigger? I have not been able to figure it out.
  • KikonKikon Member Posts: 52 ✭✭✭
    edited November 2013

    Jasline said:
    How to in the world do you make a simple trigger? I have not been able to figure it out.

    Making a simple trigger is easy peasy.

    Let's start with a simple idea, like you want to trigger night time to use the racial ability Stalking. First we need our line telling us that night has struck down upon the world.

    The deepening dusk yields to impenetrable darkness as night claims the land.

    First thing we want to do is pull up the Triggers menu inside MUSHclient. You can do this two ways, by hitting Shift + Ctrl + 8 or you can click on the Triggers button as shown below.

    image

    Inside the new menu, you'll want to click on the Add... button. This is how you begin to start creating a trigger, and your screen should look like below.

    image

    So at this point, the rest is very easy. You place the night text (as I showed above) into the Trigger text box, and then you place the command you want to send when this text is matched into the Send text box. In this case you'd write in STALK.

    image

    There is a lot of various options you can obviously do from here, I'm not going to list them all because that'd take far too much time. If you want to know any specifics on a certain function, you're more then welcome to ask.

    At this point, it's simply a matter of pressing OK, which will load your new trigger and the next time night time falls, it will send the command STALK to the Aetolia world.

    That pretty much concludes making the simplest of triggers.
  • JaslineJasline Member Posts: 106 ✭✭✭
    Oh. Awesome, thanks!
  • MacianMacian Member Posts: 167 ✭✭✭
    Dear Abby (kiki?)

    Why can't a use a variable from a plugin in the internal MUSHclient triggers? They keep telling me it's them, not me, but I'm pretty sure it's me and I'm just a dumbass.

    Sincerely, 

    Confused
  • KikonKikon Member Posts: 52 ✭✭✭
    edited November 2013
    Macian said:
    Dear Abby (kiki?)

    Why can't a use a variable from a plugin in the internal MUSHclient triggers? They keep telling me it's them, not me, but I'm pretty sure it's me and I'm just a dumbass.

    Sincerely, 

    Confused

    Plugin variables are intentionally cornered off from the main world variables so a plugin author doesn't accidentally overwrite your own variables when he/she shares it with other people.

    Having said that though, it doesn't mean it's impossible to pull down variables from a plugin into your world.

    First of all inside your plugin, you need to set what you need into MUSHclients own storage for variables using the SetVariable command. Let's say you have a string with very important information you want.

    Note that I'll be using Lua in this example, as MUSHclient can support multiple script languages.

    function setInformation()

       local letters = "abcdefghijklmnopqrstuvwxyz"

       SetVariable( "letters", letters )

    end
    When you use SetVariable inside a plugin, this sets it to the plugins own memory space. Only the plugin will be able to find that variable with GetVariable, so what you need to do from inside the main world is use GetPluginVariable.

    function getInformation()

       local letters

       letters = GetPluginVariable( "<Plugin ID>", "letters" )

    end
    You will obviously need to replace <Plugin ID> with your own unique Plugin ID string in order for it to work. Now that you have the variable though, you can apply whatever you wish to it.
  • JaslineJasline Member Posts: 106 ✭✭✭
    What does the 'convert to regular expression' button do? Is that how you can use variables in a trigger?
  • KikonKikon Member Posts: 52 ✭✭✭
    Convert to regular expression is basically an easy way to convert your trigger string into a regex pattern. You use regular expression create triggers that need match at a much more specific level.

    I'm not really sure what you mean by using variables in a trigger, as it could mean many things, you'll have to elaborate on that.
    Jasline
  • TozToz Member Posts: 2,153 ✭✭✭✭✭
    I turned on 'auto-say' on MUSH client 3 years ago mid-pk. How did I do that, and how do I make it stop without nuking the entire install from the computer and never touching the program ever again?
    (Oasis): Azzello says, "I'll still never forget the first time I saw Toz throwing hammers."
    (Oasis): Azzello says, "I freaked out and thought they had somehow managed to pull me into them."
    (Oasis): Azzello says, "So I tumbled away from my team and into theirs."


  • KikonKikon Member Posts: 52 ✭✭✭

    Toz said:
    I turned on 'auto-say' on MUSH client 3 years ago mid-pk. How did I do that, and how do I make it stop without nuking the entire install from the computer and never touching the program ever again?
    Auto-say is either switched on by pushing Shift + Ctrl + A or by pressing the button below.

    image

    As for how you turned it on mid-comat, I have no idea :P But it's a great way of dumping, say, a code paste to a Web for example if you modify the prefixed command to WT.


  • KikonKikon Member Posts: 52 ✭✭✭
    Also, you just turn it off by pressing the same button again, or the keyboard shortcut :P
  • IvolnIvoln Azvosh RakarMember, Immortal Posts: 111 Immortal
    Kikon said:


    I'm not really sure what you mean by using variables in a trigger, as it could mean many things, you'll have to elaborate on that.
    This is a practice from the Zugg clients in which you would create a trigger that looks something like: ^You begin to silently shadow &ShadowTarget across the land.$ It sets up a variable automatically called ShadowTarget. At least that's how I think it works?
    image
  • SetneSetne The Grand Tyrant Member Posts: 835 ✭✭✭✭✭
    Ivoln said:
    Kikon said:


    I'm not really sure what you mean by using variables in a trigger, as it could mean many things, you'll have to elaborate on that.
    This is a practice from the Zugg clients in which you would create a trigger that looks something like: ^You begin to silently shadow &ShadowTarget across the land.$ It sets up a variable automatically called ShadowTarget. At least that's how I think it works?
    Way to sloppy regex.
    Love gaming? Love gaming stuff? Sign up for Lootcrate and get awesome gaming items. Accompanying video.

    Ingram said:
    "Oh my arms are suddenly lubed"
  • IvolnIvoln Azvosh RakarMember, Immortal Posts: 111 Immortal
    I have similar opinions on the coding habits these methods teach you, but that's not for this thread.
    image
  • DraimanDraiman Dr. Drai Member Posts: 1,094 ✭✭✭✭✭
    To the best of my knowledge, you had to have the variable set up already.  For instance, coloring your target could be done by making the "target" variable, and then making a trigger that was simply "@target" and coloring it red. So whenever you saw whatever your variable was (Daskalos for instance) it would show his name in red instead of the normal text. Or you could do it like ^@target lost their rebounding stuff.$ and it would only track whenever your target lost rebounding and not every person around you.
    "You ever been divided by zero?" Nia asks you with a squint.



    HavenKikonJasline
  • KikonKikon Member Posts: 52 ✭✭✭
    Ok, so if we're talking about setting up a trigger in that format, it's fairly simple.

    Say you're wanting to make an echo to let yourself know when your target has put up a shield tattoo.

    A nearly invisible magical shield forms around Draiman.

    It's pretty much as Draiman described, but there's a flag you need to set and few things to take note of as well.

    First of you need to change your trigger line to incorporate your MUSHclient variable to the following below. We'll assume you want to use the variable 'target'.

    A nearly invisible magical shield forms around @target.

    Once you done that, you need to check the flag on the right side of the trigger window called Expand variables.

    image

    After that, you simply change the Send to menu to Output and write in what you want.

    Now! Things to take note of:
    • If you have Expand variables and need to use the literal @ character for any reason in your trigger, then you need to prepend it with itself in order for it to escape expansion. 'me@@email.com' would match 'me@email.com' with the mentioned flag set, otherwise it'll attempt to expand 'email.com' into a variable.
    • Your variables are capital sensitive. If you're making a trigger like the above, then your variable needs to be set with a capital D in Draiman. Either run a script in your targeting alias that capitalizes the variable for you, or just capture the player with a wildcard, tick Make wildcards lower-case or otherwise apply string functions in a script to it to match your needs.
    JaslineIvoln
  • JaslineJasline Member Posts: 106 ✭✭✭
    Wow, you are all awesome. I'm so trying that later.

    So say I want to set a trigger up for reviving. The revive message that you get when someone tries to revive you has the specific room name in it. Which means that if I setup a normal trigger for it then it'll only work in that exact same room. So, in order for it to work in any room I'd have to change the room name to ..something else. What do you change it to? Do you use a wildcard to do that? I figure somewhere in the making of this trigger it would need to be turned into a regex pattern.

    Hopefully that made sense. If not, let me know.
  • PerilunaPeriluna Member Posts: 509 ✭✭✭✭
    edited November 2013
    Not sure how it works in mush so maybe don't listen to me, but I have a trigger that for that in cMud that picks up a partial line like so:

        (%w) is attempting to revive you at

    and it works. But again, not sure how mush works.
  • XavinXavin Member Posts: 1,422 ✭✭✭✭✭
    You would could use the universal wildcard, assuming there's one for that language?

    In lua it'd be something like:

    ^(\w+) is attempting to revive you at (.+).$

  • KikonKikon Member Posts: 52 ✭✭✭
    edited November 2013

    Jasline said:
    Wow, you are all awesome. I'm so trying that later.

    So say I want to set a trigger up for reviving. The revive message that you get when someone tries to revive you has the specific room name in it. Which means that if I setup a normal trigger for it then it'll only work in that exact same room. So, in order for it to work in any room I'd have to change the room name to ..something else. What do you change it to? Do you use a wildcard to do that? I figure somewhere in the making of this trigger it would need to be turned into a regex pattern.

    Hopefully that made sense. If not, let me know.
    You can do what Periluna said and make a partial trigger by simply trimming out what you need.

    For example, triggering:
    is attempting to revive you at
    Would work perfectly fine for your requirements. But if you're actually wanting to capture the name, and the location, then yes, you'll need to start using wildcards.
    * is attempting to revive you at *, use REVIVE to accept this resurrection.
    The above is an example using wildcards, which you can then access by using %1, %2, %3, and so on for each wildcard in your trigger. %1 will be the first wildcard and so forth.

    There is also %0 if you want the whole line.


    Xavin said:
    You would could use the universal wildcard, assuming there's one for that language?

    In lua it'd be something like:

    ^(\w+) is attempting to revive you at (.+).$
    What Xavin is describing here is known as regular expression, which you can use to make your triggers match a lot more faster and improve "system speed".

    In general, the more specific you are in trying to match something, the faster it will realize it has an imperfect match (this is important, as we get a lot of possible text to match from the server) and move onto the next thing.

    MUSHclient really doesn't do this any different from other systems, other then the fact that it'll interpret anything within brackets - e.g, (hi) - as something to copy to it's wildcard clipboard for use with %1, %2, ...%n.

    Here's an example for the revive line:
    ^([\w]+) is attempting to revive you at (.+)\, use REVIVE to accept this resurrection\.$
    Make sure you have wrapwidth set to 0 inside the game.
  • MoireanMoirean Chairmander PortlandMember, Newbie Helper, Guildmaster Posts: 5,612 ✭✭✭✭✭
    All of these examples are making me twitch at the comma splice in the revive message. >_<
    The Divine voice of Razmael echoes in your head, "God of imps."
    Eugenides says to you, "Imp, Are you sure you were not born a Troll?"
    The Divine voice of Arion echoes in your head, "Every time I try to punish you for being so flippant, I find Myself laughing instead."
    Hugo has expressed his esteem of you for the following reason: Being a badass leader.
    image
    OleisIvoln
  • ArimiaArimia Member Posts: 2
    I'm trying to figure out how to set up some basic arithmetic in a trigger. One example is for a pincher counting script. I kill a pincher, and pick it up. I want it to trigger off the 'You pick up the corpse of a tiny pincher.' line, and add 1 to my tinypincher variable, so when I type showpinchers it shows a breakdown of which pinchers I have and how many of them.. And I want to do this in the window that opens when you click triggers, not through the scripts window, because that crap confuses me. 
  • HavenHaven World Burner Flight SchoolMember Posts: 2,226 ✭✭✭✭✭
    @Arimia: Easy peasy if I'm understanding you correctly! I'm assuming you're using the default script language Lua for MUSHclient.

    When you create your trigger 'You pick up the corpse of a tiny pincher.', enter the following script in the large Send: field:

    if vermincount then
    vermincount = vermincount + 1
    else
    vermincount = 1
    end

    Next, beneath the large white field where you entered the above script, you should see the Send to: drop down menu field. Change the field from World to Script. And just like that you're done. What this script will do is check your global variable list for a variable called "vermincount" (or whatever you decide to call the variable) whenever the trigger matches/crops up. If the variable DOES exist already, then it will take its current value and add 1. If, however, the variable does NOT exist then it will create the variable for you with a starting value of 1, which is appropriate since that scenario should only arise when the trigger matches the first time since opening the world.
    ¤ Si vis pacem, para bellum. ¤
    Someone powerful says, "We're going to have to delete you."
    havenbanner2
  • ArimiaArimia Member Posts: 2
    That's exactly what I was looking for, thank you. And looking at it I should be able to easily modify it so that it'll do a count of the individual types of pinchers as well as a total. 
  • HavenHaven World Burner Flight SchoolMember Posts: 2,226 ✭✭✭✭✭
    edited December 2013
    @Arimia: I should note that you'll want to decide on how you wish to reset the counter some how because as is, with just that script, if you log out and log into another char or something (or even the same one) the counter will not reset to 1. Unless of course you close down the client and open it up again.

    I'd recommend an alias that turns vermin mode on or off. Or if you want something super simple, just make the logging out message a trigger that resets vermincount.

    vermincount = 0

    vermincount = nil
    ¤ Si vis pacem, para bellum. ¤
    Someone powerful says, "We're going to have to delete you."
    havenbanner2
  • ReuxReux Member Posts: 251 ✭✭✭
    edited August 2015
    Edit: The last | wasn't ()'d, and that doesn't work apparently. Capture it and everything works.

    I don't get regex. -_-
    Post edited by Reux on
    I mean, you know, an amount.


  • ReuxReux Member Posts: 251 ✭✭✭
    edited August 2015
    To save Ashmer frustration:
    Keroc said:

    Stuff on JSON.

    Why are people using pattern matching instead of converting JSON directly? With the way GMCP is implemented in MUSHclient, I can't trigger the GMCP line like I can for any input from the mud; GMCP is handled through plugins only.

    That means instead of using typical pattern matching you learn probably as your first lesson in any new client, I have to learn string manipulation of the raw data; I need to get rid of the 'Char.Vitals ' from the raw string incoming to let JSON decode it.

    And then I have to figure out how to name a table by variable.

    I have to... LRNOMG.

    So why do people lazy through JSON instead of using JSON? Because we're lazy, using things we already know.

    And yeh yeh, I'm lrnin, I'm lrnin.

    Less of a request for help and more of a rant. I don't know what people want when they're asking for constructive criticism or 'help me help you'.
    I mean, you know, an amount.


«1
Sign In or Register to comment.