MUSH to Mudlet

MarielMariel Member Posts: 51 Capable
On the advice of my guild and a handful of other people I'm going to attempt to retire MUSHClient and move to Mudlet. However, I have no idea how to do this. Is there a simple way to simply move all my aliases and triggers over?

Comments

  • TarkentonTarkenton Traitor Bear Member Posts: 2,555 Transcendent
    Nope.  Unfortunately, they use rather different commands to do things, so there's no real easy/fast way to do this.  What sorts of triggers/aliases are you looking to move?
    image
  • MarielMariel Member Posts: 51 Capable
    edited September 2013
    Nothing I couldn't recreate, I suppose, with some time. I suppose the most advanced thing I have is a targeting alias.

    Oh, as well as my precious directional keybindings. I also have stuff mapped to F1-F4 and some ctrl+* bindings, would those be problematic?
  • ZouviqilZouviqil Queen of Uberjerkiness Member Posts: 975 Transcendent
    edited September 2013
    Pattern: ^t ([0123456789a-zA-Z]+)$

    Big Box Area For Code: target = matches[2]


    ... tada
  • HiriakoHiriako Member Posts: 374 Gifted
    You can do those pretty easily in Mudlet, so no. Not too troublesome. If you have any great difficulties, feel free to hit me up, Mariel. I'm fairly skilled at working with the client, after a couple of years of manipulation.
  • MarielMariel Member Posts: 51 Capable
    Okay, great! So if I'm interpreting this right, I just input t (whatever) and it'll be stored in the variable "target"...or something?

    Having opened up Mudlet I've really underestimated how different two clients could be!
  • HiriakoHiriako Member Posts: 374 Gifted
    Correct. That's how it'd work.

    Do you understand how Regex functions? If you do, it's really easy to write stuff. If you don't, it takes a little more.

    One more major change for you to understand.

    To send commands to the game:

    send("kick " ..target) will send directly to the game. Anything within " " is the exact text, while .. will act as a concat for variables. My attacks actually use send(attack .. target) in some cases. It's a bit more complex, but that's the gist of it. There's a little learning curve, but it'll work out.
  • MarielMariel Member Posts: 51 Capable
    image
    This is going to take some time.
  • SynkarinSynkarin Nothing to see here Member Posts: 3,216 Transcendent
    Feel free to ask me as well, I use Mudlet and have coded lots of my own stuff

    Everiine said:
    "'Cause the fighting don't stop till I walk in."
    -Synkarin's Lament.
  • MarielMariel Member Posts: 51 Capable
    @Synkarin I'll definitely be bugging you IG (but not IC) for some stuff later in the week/into next week. We'll probably just go into the arena and OOC-chat away, kind of like I was doing with the Guildie who turned me on to Mudlet in the first place.
  • NeosNeos The Subtle Griefer Member Posts: 1,538 Transcendent
    http://wiki.mudlet.org/w/Manual:Migrating#From_MUSHclient

    Not much, but you can also browse the rest of the manual as you go. Do point out any typos and such! I've been meaning to fix a few on there.
    Love gaming? Love gaming stuff? Sign up for Lootcrate and get awesome gaming items. Accompanying video.

     Signature!


    Celina said:
    You can't really same the same, can you?
    Zvoltz said:
    "The Panthron"
  • MarielMariel Member Posts: 51 Capable
    Okay, I'm using the Medic! system, for some background information. A couple of things I'd like to try that I haven't been able to get working.

    One is triggers. I asked someone I knew about why this one wasn't working, and was advised to ensure the trigger was right. It is.

    I also wanted to make use of Medic's "dor" function to make bashing easier, but the trouble with this is when critters decide to shield. Is there a way to make a trigger that has blank spaces in it, so to speak? That is, one that would respond to both "Billy Gould mutters and traces a cobalt blue pentagram around himself...." and "Mike Patton mutters and traces a cobalt blue pentagram around himself..."? I'm sure there's some term for this that I don't know (and I didn't know how to do this in MUSHClient either).

    Lastly, I've set up a targeting alias according to the thread's instructions, but I'm not sure how to use it. This is how I had it set up in MUSH, which is an alias which I then bound to a key. I'd like to repeat the same thing in MUDlet, since I like binding aliases to keys to make my life easier in numerous ways.

    Aside from that I've no complaints! Once I started to wrap my head around it things started making lots of sense.
  • ReylReyl Member Posts: 134 Capable
    edited September 2013
    Mike Patton <3333

    By spaces do you mean white space? Or line breaks? The former is trivial to handle with regex, the latter a little more of a pain sometimes. Are you using config line wrap 0 or whatever? Letting your client do the wrapping solves it mostly but then I still have issues with some lines. Keep in mind in a lot of cases you only need to trigger off the first bit anyway...


    Edit: waitwaitwait.... Did you mean one that triggers for either mike Patton or billy Gould? Like a wildcard? If so all you need to do is set the trigger type to "perl regex" then make the line

    "(.+) mutters and traces a cobalt blue pentagram about (him|her)self"

    To explain: "." Means "any character", "+" means "1 or more of the previous", and using a pipe between him and her means "either of these", so "himself" or "herself"

    Regex is so cool.
  • ReylReyl Member Posts: 134 Capable
    edited September 2013
    Also once something is in brackets it's accessible as a variable, so in your trigger script "matches[2]" can be used and it'll be equal to "Mike Patton", and "matches[3]" would be "him"

    So you could make a trigger that pauses your attack and then does

    Send("say "..matches[2].. " shielded! Don't attack "..matches[3].."!")

    Which will say "Mike Patton shielded! Don't attack him!" OR "Reyl shielded! Don't attack her!"

    As for the "..", you need that before (and after) a variable name whenever it's mixed in with 'normal text' (a string). Because reasons.


    Ps. matches[1] apparently refers to the whole trigger line? But I'm not sure, I never use it.
  • MarielMariel Member Posts: 51 Capable
    Some Googling revealed that "wildcard" is the term I was looking for. But I'll have to do some more testing, by the looks of things!
  • NeosNeos The Subtle Griefer Member Posts: 1,538 Transcendent
    First, Reyl is a girl? I had no idea.

    Second, check that there's no extra space in your insomnia trigger, as that tends to happen at times.

    Third, I will recommend this in addition to my link to the mudlet wiki. Thank @Zouviqil (spelled the name right on my first try, woo!) for that.

    Add echo("Target set to:" .. target) to your targeting alias and it will let you know it's properly working.

    And last, http://wiki.mudlet.org/w/Manual:Introduction#Keybindings
    Check that out for your fourth issue.
    Love gaming? Love gaming stuff? Sign up for Lootcrate and get awesome gaming items. Accompanying video.

     Signature!


    Celina said:
    You can't really same the same, can you?
    Zvoltz said:
    "The Panthron"
  • ReylReyl Member Posts: 134 Capable
    you might be confusing me with Nayl - it happens :P
  • MarielMariel Member Posts: 51 Capable
    More issues! Minor ones this time.

    As said before, I'm using the Medic! system. It has a lovely 'dor' function that I want to make sweet love to. But since I can't, I'm trying to bind it to a key instead.

    Now, I set up and then bound a normal "swing" alias that works just fine. But, I thought, why not just make an alias out of the  "dor" function and put that on a key?

    Unfortunately, it ain't happening. Some of those were the input of the alias, some were the pressing of the key. Alas, it just shows my alias as input and nothing else. I'm pretty sure what makes this fail is that I'm trying to do an alias within an alias.

    On a less important note, none of these are working and I'm still stumped as to why.
  • LehkiLehki Member Posts: 1,222 Fabled
    Yeah, you can't "send" an alias. Try using expandAlias("dor swing "..target) instead, think that should do it.

    I'm not sure about the crit highlight triggers offhand though. My first step to figuring it out would be changing it to the substring type and see if it triggers on that.
  • TarkentonTarkenton Traitor Bear Member Posts: 2,555 Transcendent
    Perhaps, for the crit highlighter, try matching You have scored with a begin of line substring option, and set your highlight color.  Also, might be handy to have something like echo("My crushing crit trigger matched!") in the big box below so you can see whether or not your trigger is actually matching, and it's some odd issue with the highlighting.
    image
  • ZouviqilZouviqil Queen of Uberjerkiness Member Posts: 975 Transcendent
    Mariel said:
    More issues! Minor ones this time.

    As said before, I'm using the Medic! system. It has a lovely 'dor' function that I want to make sweet love to. But since I can't, I'm trying to bind it to a key instead.

    Now, I set up and then bound a normal "swing" alias that works just fine. But, I thought, why not just make an alias out of the  "dor" function and put that on a key?

    Unfortunately, it ain't happening. Some of those were the input of the alias, some were the pressing of the key. Alas, it just shows my alias as input and nothing else. I'm pretty sure what makes this fail is that I'm trying to do an alias within an alias.

    On a less important note, none of these are working and I'm still stumped as to why.
    First off, suggestion for your highlighting triggers... make them all into one trigger. Perl Regular Expression. Pattern: ^You have scored an? ((CRUSHING|ANNIHILATING|OBLITERATING|(WORLD SHATTERING)) )?CRITICAL HIT!$

    By doing this, we've reduced your code to a single, neat trigger.

    Now, as for highlighting the above... go to the code area.

    critCols = {["CRUSHING"] = "orange", ["OBLITERATING"] = "yellow", ["ANNIHILATING"] = "cyan", ["WORLD SHATTERING"] = "white"}
    selectCurrentLine()
    if matches[3] then
    fg(critCols[matches[3]])
    else
    fg("red")
    end
    resetFormat()

    This, theoretically, should work. I haven't used selectCurrentLine() before, but in theory, it should work.

  • HiriakoHiriako Member Posts: 374 Gifted
    Recommendation:

    Do.
    Not.
    Use.
    expandAlias().
    Ever.

    It's a buggy bit of code that can cause slowdowns and occasionally loops. If you want to do something akin to that, put the code that'd go into the alias into a script under:

    function myAlias()
     ALIAS CODE
    end

    and then just use:

    myAlias()

    in the box for the alias and the key.
  • MarielMariel Member Posts: 51 Capable
    I took Hiriako's advice and switched up my keybinding; works like a charm! The less-important critical trigger is doing nothing, though, bafflingly.
  • VadiVadi Member Posts: 256 Gifted
    Hiriako said:
    Recommendation:

    Do.
    Not.
    Use.
    expandAlias().
    Ever.

    It's a buggy bit of code that can cause slowdowns and occasionally loops. If you want to do something akin to that, put the code that'd go into the alias into a script under:

    function myAlias()
     ALIAS CODE
    end

    and then just use:

    myAlias()

    in the box for the alias and the key.
    expandAlias() isn't buggy, but it will loop if you call an alias that then calls itself, and it is far slower than using a function, for certain! I don't recommend it using for those reasons.
Sign In or Register to comment.