Skip to content

New HTML Client Sneak Peek

I don't think I have mentioned this lately, but we are getting close to releasing a major update to the client.

Here is a sneak peek.

image

«1

Comments

  • IniarIniar Australia
    edited March 2015
    I wish you guys hadn't used JavaScript but I can understand why. (I'm assuming you're still using javascript). Looks nice though.
    wit beyond measure is a Sidhe's greatest treasure
  • IniarIniar Australia
    Are the GUI options more flexible?
    wit beyond measure is a Sidhe's greatest treasure
  • Are there plans for documentation for the client to be released as well? This was by far one of the biggest hurdles for me to introduce friends to the web client.


  • Extremely excited. JavaScript is my comfort blanket.
  • IniarIniar Australia
    Claudius said:

    Extremely excited. JavaScript is my comfort blanket.

    pls2makeFreeSystem kthx <3
    wit beyond measure is a Sidhe's greatest treasure
  • edited March 2015
    Warning, bribe in progress: will buy $40 credits if you give a few other screen grabs of editor and other features (if they have changed) :D
  • Iniar said:

    Are the GUI options more flexible?

    Yes. It should be much easier to move things around. That has been a major focus of this version.

  • Claudius said:

    Warning, bribe in progress: will buy $40 credits if you give a few other screen grabs of editor and other features (if they have changed) :D

    The script editor is essentially unchanged - the focus of this version is on the user interface.
  • Did it fix the issue with following mobs adding an additional version of themselves every time you move rooms? It gets irritating quickly. 

    Can I customize what the windows contain or are they still limited to moving and resizing? 


  • First time I hear about that moving issue, so not sure there offhand.

    You can enable/disable and rearrange windows/tabs.
  • IniarIniar Australia
    That's good news. Last time I stopped tinkering with it because I couldn't display information.
    wit beyond measure is a Sidhe's greatest treasure
  • I'm not sure I understand how it's different from now. I can currently enable/disable the existing displays and move them around.

    The mob thing I can send a bug report on if you like. I think it only does it while following people.
  • edited March 2015
    Krysaliss said:

    I'm not sure I understand how it's different from now. I can currently enable/disable the existing displays and move them around.

    The mob thing I can send a bug report on if you like. I think it only does it while following people.

    The mob thing is likely due to the way gmcp works. IRE doesn't send the room data on room change when following. It's annoying and I IDEA'd it a while back.

    Edit: forgot to mention...you can make it send the data if you ql in the room.
  • IniarIniar Australia
    Krysaliss said:

    I'm not sure I understand how it's different from now. I can currently enable/disable the existing displays and move them around.

    The mob thing I can send a bug report on if you like. I think it only does it while following people.

    Displaying my own variables.
    wit beyond measure is a Sidhe's greatest treasure
  • Iniar said:

    Krysaliss said:

    I'm not sure I understand how it's different from now. I can currently enable/disable the existing displays and move them around.

    The mob thing I can send a bug report on if you like. I think it only does it while following people.

    Displaying my own variables.
    Right.
    But it doesn't sound like that's the change? Maybe I'm misreading what Garryn wrote.
  • IniarIniar Australia
    edited April 2015
    Nice.

    Observations:
    1. When the target name is really long, it runs onto the 'gold' readout on the bottom bar, obscuring both of them
    2. Would it be possible to have a little (click to return to top) bottom for the inventory and chat mini-windows?
    3. Is there a button shortcut to bring the scrollback in the main window back to the current output?
    4. Could you demarcate the scrollback/current a little stronger? The thin grey line is really easy to miss
    5. When using timestamps, can you left-align the text to make it leave the width of timestamp empty when the text wraps to the next line?
    6. The target info appears to give information about the health status of a mobile, will this info be added to general gmcp data? (not sure if it is, but doesn't appear to be in my Mudlet gmcp)
    7. The sizing of fonts for things like HELP files and SCORE/STAT seems to be inconsistent with the other output. (It's larger, and ugly :/)

    The map loading is a little sluggish, might be my connection, but not sure.

    E: also, the logging feature is really neat. Really neat. What's the buffer size on the scrollback?

    E2: would we be able to change the color of the frames?

    E3: would you give us a client. command that pushes text to a separate window? I'm thinking chat-window could be suitably co-opted for now?
    wit beyond measure is a Sidhe's greatest treasure
  • @Iniar Question six:

    sendGMCP("Core.Supports.Add [\"IRE.Target 1\"]")
    sendGMCP('IRE.Target.Set "47300"')
    send(sep)--send your separator to force gmcp to get processed
    tempTimer(1, function () display(gmcp.IRE.Target) end)

    display gmcp.IRE.Target
    {
      Info = {
        short_desc = "an august burnished stallion",
        hpperc = "100%",
        id = "47300"
      }
    }
    image
  • IniarIniar Australia
    Question 2: There is one for the chat window, my mistake.
    wit beyond measure is a Sidhe's greatest treasure
  • IniarIniar Australia

    e.negatory = function(a,b) {
       client.send_direct("say " + a+b);
    };

    e.negatory(1,3);

    You say, "13."

    image
    wit beyond measure is a Sidhe's greatest treasure
  • JavaScript does a lot of implicit conversion. You can use the Number function to explicitly cast to a number.
    Like what we're doing? Why not take a second to vote? Vote for Imperian at http://www.imperian.com/vote
  • Iniar said:


    e.negatory = function(a,b) {
       client.send_direct("say " + a+b);
    };

    e.negatory(1,3);

    You say, "13."
    "say " + (a+b)
    Welcome to the wonders of Javascript ;)
  • IniarIniar Australia
    edited April 2015
    I don't know how to say this nicely, but:

    sometimes the client sounds like it's playing two tracks simultaneously. Either that or it's really bad in some sections? :S

    (otherwise it has some good sections)
    wit beyond measure is a Sidhe's greatest treasure
  • Agreed. At certain points, I'd look through my tabs again to make sure that nothing else was playing music, but that one Imperian tab was the only one Chrome identified as producing sound. Was a little off-putting.
    image
  • IniarIniar Australia
    Two major things for me:

    When scripting reflexes, trying to organize them by dragging them around makes it freeze up, the 'trigger' stops moving and hovers suspended in mid-transfer and when save/reloaded, has not been moved at all. Is there a way around this, or is there another method to organize triggers without drag/drop?

    Will you also eventually allow for multiple triggers to run the same script without me clicking 'add'->'trigger' for like 20 shield triggers?

    Will you also allow me to default trigger type to regex?

    Will I be able to eventually display my own variables?
    wit beyond measure is a Sidhe's greatest treasure
  • An adjustable bar would be handy when I'm scrolling back instead of the fixed view I have now. 


  • IniarIniar Australia
    edited April 2015
    Same 'randomizer' for speech in JScript:
    * note that I have predefined variables 'mclass' 'sp' and function 'msend'. 'msend' can be replaced with 'client.send_direct(str)'.
    ** any pointers appreciated.

    var str = "";
    var style = {};
    if (mclass && mclass == "Deathknight") {
    style = {
    "Rasping" : 2,
    "In quiet undertones" : 2,
    "Chuckling softly" : 15,
    "Steel in his voice" : 5,
    "Chuckling sinisterly" : 400,
    "Booming with malicious laughter" : 400
    };
    } else {
    style = {
    "Rasping" : 5,
    "In quiet undertones" : 3,
    "Steel in his voice" : 33,
    "Chuckling sinisterly" : 76,
    "Booming with malicious laughter" : 310,
    }
    };

    var out = "";
    var f = [];
    var preSize = 0;
    var postSize = 0;
    var pointer = 0;
    for (var k in style) {
        var v = style[k];
        preSize = preSize + v;
    };
    for (var k in style) {
        var v = style[k];
        postSize = postSize + Math.ceil(preSize/v);
        var t  = {
            sn : k,
            pr : Math.ceil(preSize/v)
        };
        f.push(t);
    };

    f.sort( function(k1, k2) {return k1.pr > k2.pr } );
    var go = getRandomInt(1,postSize);

    for (i = 0; i < f.length; i++) { 
    pointer = pointer + f[i].pr;
    if (go <= pointer) { 
    out = f[i].sn;
    break;
        };
    }

    if (out != "") { out = " (" + out + ") " };
    str = str + "say " + out + args[1] + sp;
    if (mclass == "Deathknight") {
        str = "open bevor" + sp + str + "close bevor" + sp;
    };
    msend(str);

    * for some reason, this alias seems to make the client unselect the command-line text on running, which is a little frustrating. Other script-aliases don't do this.
    wit beyond measure is a Sidhe's greatest treasure
  • IniarIniar Australia
    First pass at a javascript sys, for DK only atm: https://www.dropbox.com/s/elg4ocy410cjqqc/eden.js?dl=0
    wit beyond measure is a Sidhe's greatest treasure
  • IniarIniar Australia
    1. The map animation is sluggish at times, is there a way to reduce the run_time for the animation?
    2. Will the client have access to the xml map data that Imperian provides (and that is extensively used by Mudlet Mapper)?
    wit beyond measure is a Sidhe's greatest treasure
  • IniarIniar Australia
    edited April 2015
    Multitarget script:

    targets = typeof(targets) == 'undefined' ? {} : targets;
    tloc = typeof(tloc) == 'undefined' ? 0 : tloc;

    _target = function(t1,t2){
        t1 = toTitleCase(t1);
        var tx = 0;
        var str = "";
        var rank = 3;
        
        if (t2 && t2 != "a") {
            t2 = Number(t2);
            if (targets[t2]) {
                tx = targets[t2];
            };
        }
        
        // insert highlight code here
        
        if (t2) {
            // retrieve the argument
            if (t1 == "") {
                if (!targets[t2]) {
                    // echo this failure to retrieve
                    client.send_direct("rt Failure to retrieve target. Target remains" + client.get_variable('tar'));
                } else {
                    client.set_variable('tar',tx);
                    // highlight target red
                    // echo this information
                    client.send_direct("rt Assigned target to " + tx);
                };
            } else if (t2 == "a") {
                for (i = 9; i < 100; i++) { 
                    if (!targets[i]) {
                        targets[i] = t1;
                        break;
                    };
                };
            } else {
                targets[t2] = t1;
                client.set_variable('tar',t1);
                // cecho this information
                client.send_direct("rt Assigned target to " + t1);
            };
        } else if (t1) {
            // unspecified location
            // reset the rankings
            if (tloc >= rank) {
                client.set_variable('tar',t1);
                tloc = 1;
                targets[tloc] = t1;
                // echo this information
                client.send_direct("rt Assigned target to " + t1 + ". Rank: " + tloc);
            } else { // add to the next rank
                client.set_variable('tar',t1);
                tloc = tloc + 1;
                targets[tloc] = t1;
                // echo this information
                client.send_direct("rt Assigned target to " + t1 + ". Rank: " + tloc);
            };      
        };
    };

    Invoked like so, using this regex trigger:
    ^t(\d+)*([ ]+\w+)*$ 

    And this script:
    var digit = Number(args[1]);
    var name = "";
    if (args[2]) {
        name = args[2].trim();
    }
    _target(name,digit);

    Allowing you to do this:
    t kryss -> assigned to t1, 'tar' is Kryss
    t5 iniar -> assigned to t5, 'tar' is Iniar
    t monkey -> assigned to t2, 'tar' is Monkey
    t1 -> retrieves 'Kryss' and assigns it to 'tar'
    t obelisk -> assigns 'Obelisk' to t3 and 'tar'
    t Abigail -> assigns t1 to Abigail
    t5 -> retrieves 'Iniar' and assigns it to 'tar'
    wit beyond measure is a Sidhe's greatest treasure
Sign In or Register to comment.