Server Queueing with Clientside Aliases Question

edited May 2015 in Tech Support
Hey everyone,

So currently, I'm trying to get aliases of these sort to work, where I want all of the commands to fire on a single EQ bal.

I have "\" as my in-game separator and ";" as my client-side separator.


Example 1:

send("envenom longsword with prefarar")

send("clearqueue all;queue add eqbal stand;queue add eqbal shieldstrike " ..target.. " mid\battlecry " ..target"\arc " ..target)


Example 2:

send("clearqueue all;queue add eqbal stand;queue add eqbal rend " ..target.. " left leg curare\breathgust " ..target)


How does one queue multiple things into one EQ bal command made by a client-side alias?



[ SnB PvP Guide | Link ]

[ Runewarden Sparring Videos | Link ]

Comments

  • Example 1:

    send("envenom longsword with prefarar")

    send("clearqueue all;queue add eqbal stand;queue add eqbal shieldstrike " ..target.. " mid\battlecry " ..target"\arc " ..target)


    Example 2:

    send("clearqueue all;queue add eqbal stand;queue add eqbal rend " ..target.. " left leg curare\breathgust " ..target)

    I don't know about mudlet but just from consistency the bolded look wrong.
  • To fire it as a single command, you need to store it all in a single alias. The in-game alias command separator is /, so it should look something like this:

    alias: Whatever 
    send("clearalias Whatever;setalias Whatever shieldstrike "..target.." left leg curare/breathgust "..target.."clearqueue all;queue add eqbal Whatever")

    That's how I do mine, for everything, but there may be a better way.

  • What he has should work from the server-side aspect of it because he set an in-game command separator and that won't work with aliases, so throwing aliases in will just confuse the issue. I really think it's syntax error on client-side.
  • I can't check right now, but I am pretty sure that "send" does not expand client side separators. Try splitting it up and using sendAll. So your first example would be
    sendAll("envenom longsword with prefarer", "clearqueue all", "queue add eqbal stand", "queue add eqbal shieldstrike " .. target .. " mid\\battlecry " ..target .. "\\arc " .. target)

    Also now after typing it, "\" is the escape character in lua strings. You'll need to double it if you mean a literal \

  • TharvisTharvis The Land of Beer and Chocolate!
    edited May 2015
    Keneanung said:
    I can't check right now, but I am pretty sure that "send" does not expand client side separators. Try splitting it up and using sendAll. So your first example would be
    sendAll("envenom longsword with prefarer", "clearqueue all", "queue add eqbal stand", "queue add eqbal shieldstrike " .. target .. " mid\\battlecry " ..target .. "\\arc " .. target)

    Also now after typing it, "\" is the escape character in lua strings. You'll need to double it if you mean a literal \

    edit : oh, client side seperators - never mind, you're right about them
    can use the serverside seperators though, those work in a "send"
    or you can use svo.sendc("") if you use svo
    Aurora says, "Tharvis, why are you always breaking things?!"
    Artemis says, "You are so high maintenance, Tharvis, gosh."
    Tecton says, "It's still your fault, Tharvis."

  • KlendathuKlendathu Eye of the Storm
    edited May 2015
    You can just use send... I have a variable, concatChr, which picks up my command separator from CONFIG.
    send("QUEUE ADD eqbal open backpack"..concatChr.."put gold in backpack"..concatChr.."close backpack")



    Tharos, the Announcer of Delos shouts, "It's near the end of the egghunt and I still haven't figured out how to pronounce Clean-dat-hoo."
  • If you use settarget in game you can do it too

    Send ("clearqueue all;queue add eqbal envenom sword with curare/stand; queue add eqbal shieldstrike &tar mid; queue add eqbal arc &tar")




    Penwize has cowardly forfeited the challenge to mortal combat issued by Atalkez.
  • What I thought he wanted was the ability to store the multi-line alias inside one queue space, as the queue only holds six commands. So something like sendAll("envenom longsword with prefarer", "clearqueue all", "queue add eqbal stand", "queue add eqbal shieldstrike " .. target .. " mid\\battlecry " ..target .. "\\arc " .. target) would take up 2-3 spots in the queue. Which, for timing purposes, doesn't matter, but there's more spam as each command get's a "added to queue" message and then a "running queued command" thing.

    But I think I misunderstood what he was wanting, and both methods achieve the same effect.

  • edited May 2015
    Eh you can gag all of that. Mine looks like normal attacks now but it's all queued. 

    @Exelethril can you do all of that on a single balance?




    Penwize has cowardly forfeited the challenge to mortal combat issued by Atalkez.
  • @Atalkez : Yush, I can do all of that on a single balance - shieldstrike/battlecry/arc. The functionality would be the same as the rend/breathgust alias, where I want both to fire at the same time only when I have EQ and balance.

    [ SnB PvP Guide | Link ]

    [ Runewarden Sparring Videos | Link ]
  • edited May 2015
    This is how I do it:

    send("setalias qalais get doll from pack/probe doll/wield doll/laugh/fashion doll of "..target)
    send("queue add eqbal qalais")
    The idea is to use SETALIAS to link all commands together, and then, send it separately on EQBAL.

    For your example of:
    send("clearqueue all;queue add eqbal stand;queue add eqbal rend " ..target.. " left leg curare\breathgust " ..target)

    This is what you can do:

    send("setalias rendalias cq all/stand/rend "..target.." left leg curare/breathgust "..target)
    send("queue add eqbal rendalias")

    This will queue all the actions on one EQBAL, which will execute the alias 'rendalias'.

    Hope this helps.

  • edited May 2015
    Then you're really wanting to do this:

    send("clearqueue all;queue add eqbal stand/envenom sword with curare/shieldstrike " ..target.. " low/battlecry " ..target.. " /arc")

    or

    send("clearqueue all;queue add eqbal stand/envenom sword with curare/shieldstrike &tar low/battlecry &tar/arc")

    Depending on how you use targetting. I personally use both.




    Penwize has cowardly forfeited the challenge to mortal combat issued by Atalkez.
  • edited May 2015
    Can I not use serverside aliases or is that necessary? I suspect that it's necessary.

    Edit : Actually, lemme try and get back to you guys.

    [ SnB PvP Guide | Link ]

    [ Runewarden Sparring Videos | Link ]
  • KlendathuKlendathu Eye of the Storm
    You don't need to any more. Because people were repeatedly redefining aliases to chain commands together, the server side system was improved to allow multiple (up to 9 I think) commands per entry, as long as none of them are multi-command aliases

    Tharos, the Announcer of Delos shouts, "It's near the end of the egghunt and I still haven't figured out how to pronounce Clean-dat-hoo."
  • edited May 2015
    You have four options:
    1. Use sendAll to just send a bunch of individual QUEUE ADD commands, one for each thing you want to do - if you don't need to queue more than 6 actions, this should be fine. So: sendAll("queue add eqbal do a thing", "queue add eqbal do another thing", "queue add eqbal do all the things")
    2. Use send to send a single QUEUE ADD that has all the things you wanted to do separated by your serverside separator (I don't know if there's a limit on how many separators you can include or on the total command length). Here you have a little issue with your choice of command separator though - backslashes are escape characters in Lua strings. So you can either change your command separator (if you set it to, say, semicolon, just replace \\ with ; in all of the subsequent examples), or you need to escape the backslashes themselves with another backslash. I imagine that might be the source of your problem. So: send("queue add eqbal do a thing\\do another thing\\do all the things")
    3. Make a serverside alias that looks just like #2, and then run it by sending "aliasName". This doesn't really gain you anything. So: sendAll("setalias doThings queue add eqbal do a thing\\do another thing\\do all the things", "doThings")
    4. Make a serverside alias that looks like #2, but without the QUEUE ADD, then when you want to run the alias, instead of calling it directly, send "QUEUE ADD aliasName". This is Dochitha's solution. So: sendAll("setalias doThings do a thing\\do another thing\\do all the things", "queue add eqbal doThings")
    In each case with the sendAll, you could instead break this up into a series of calls to send. That does exactly the same thing.

    Generally, you'll probably want to use option #1 or #2. Using serverside aliases doesn't buy you anything except additional complexity.

    The only exception is when you want to make a queue more like SVO's do queue - then you can do something like sendAll("setalias jabTwice queue add eqbal jab &tar\\queue add eqbal jab &tar", "jabTwice"). If you do that, it'll add the alias to the queue, so when you get balance back, instead of doing the first jab and then trying to do the second jab and failing, it will run the alias which makes you first jab your target, then add the second jab to the queue to run next time you have balance.

    If you have CONFIG USEQUEUEING ON though, you mostly shouldn't need to do this since your second jab in the queue will just get re-added to the queue like any command you try to do while off-balance. The only time it's actually necessary is when you have things that you want to do immediately before your second jab or just after it, but those things don't require balance themselves (if you try to do that without the alias trick, it'll run the first jab, do all of your stuff in the queue that doesn't require balance, try to run the second jab and fail which will re-add it to the queue, and then do the second jab next time you have balance).

    Important warning though: do not be tempted to make the alias recursive (like: setalias jabTwice queue add eqbal jab &tar\\jabTwice) - it will run away and break Achaea. ( @Tecton, the setalias command should probably check to prevent that...).
  • Thanks guys. I managed to get it to work :)

    [ SnB PvP Guide | Link ]

    [ Runewarden Sparring Videos | Link ]
Sign In or Register to comment.