Welcome to the Achaea Forums! Please be sure to read the Forum Rules.

Svof

1222324252628»

Comments

  • VoliVoli Posts: 32Member ✭✭ - Stalwart
    edited November 14

    EDIT: I apologize for the formatting of this post. The spoiler thing seems to break and everything is falling apart so I've given up and am just leaving it like this.


    If you remove the <CLASS> SVOF folder from your mudlet profile and stick it someplace else, on loading up it'll request a class folder. You can navigate to the folder you put it in and select the class you want.

    It requires you to restart mudlet each time you switch class, but it works.

    Add an "if/then" statement to every single class alias and trigger you have, that prompts off an alias or trigger, that checks whether your class variable is set to w/e class you're using (myclass = "whatever") and it'll only use whatever aliases and variables have that class.

    I stuck it all into a spoiler cause it's spammy @Torinn (I gave up, clearly)

    For example: my Achaea profile only has AK 4.1, Bashing, Current, Log, Map, Map downlods, svo, and ZulahGUI. I cut Depthswalker SVO and Blademaster SVO and stuck those into a separate folder. Every time I log into Achaea mudlet, it asks me for one of those because svo requires it (I think) and I just navigate to the folder and pick the class I'm using for the day.

    Every alias and trigger I have looks like some variation of this:

    if myclass == "blademaster" then
      send("alleviate")
    end

    or this:

    if myclass == "depthswalker" then
      if matches[2] == "s" or matches[2] == "S" then
        send("shadow manifest scythe")
      elseif matches[2] == "d" or matches[2] == "D" then
        send("shadow manifest dagger")
      else
        send("shadow manifest " .. matches[2])
      end
    end

    Just need to make a trigger or alias that does something like this:

    myclass = "depthswalker"

    for example, I have something that triggers off of keneanung's bashing thingy that does this when it selects the attack type:

    if myclass = "blademaster"
    send("position scabbard")
    Torinn
  • TorinnTorinn Posts: 544Member ✭✭✭✭ - Eminent
    edited November 14
    @Voli That is really helpful.  Initially, do you install both DW and BM SVO packages, or just one? 

    Edit: I think I see.  In my profile's folder on disk (C:/Users/<user>/.config/mudlet/profiles/<profile>  there is a Priest svo folder.  So you're saying you put that in its own folder with the other SVO as well, then it doesn't matter what SVO you have on your profile when you start up SVO will ask what you want to use and you point it to one or the other.  Interesting!
    Deucalion says, "Torinn is quite nice."
  • CaelanCaelan Posts: 744Member ✭✭✭✭✭ - Grand Achaean
    edited November 14
    Gmcp has the class info you need.

    myClass = Gmcp.Char.Status.class
    I have mine set to that event so I never have to worry about it

    I dont use SVO but have 4 classes. And I recycle my aliases/macros with them so i do something similar.

    If myClass == "Sentinel" then
        send("doublestrike "..targetting.." "..target.." "..venom)
    Elseif myClass == "Runewarden" then
       sendAll("order entourage kill "..target, "doubleslash "..target.." "..targetting.." "..venom1.." "..venom2)
    ....
    End

    Torinn
  • DochithaDochitha Posts: 1,069Member ✭✭✭✭✭ - Grand Achaean
    Kogan said:
    Torinn said:
    So for the time being, multiclassing is a nightmare.  The only thing I want to change when I switch classes is SVOF.  Everything else, my aliases, triggers, scripts, everything, can stay the same.  To do this with mudlet I have to have two different profiles, throw a whole bunch of stuff in to Modules, then install certain things that write files to disk per profile.  For example, Zulah's GUI doesn't work as a module because it has files specific to a profile.  SVO obviously doesn't either.  This is really annoying. But..

    Could I, theoretically, have multiple different class's SVOFs on one profile, then if I switch classes, deactivate one set, activate the other, restart mudlet, and call it good?  Or will that mess up something I don't know about?
    @Dochitha can maybe explain how. Not sure how he handles it. I know he switches classes multiple times a day and never relogs to do so.
    I am using svo Runewarden as my profile, since I am mostly a runie nowadays. When I switch class, I'd detect my class and send defense upkeep into serverside curing based on the class. That's to handle defenses part.

    On my triggers, I use a folder to contain all class related triggers. The folder itself is a filter, which has 
    if myClass == "Alchemist" then return true end. < lua function.
    Using this, I use a folder to automatically enable or disable group of triggers without using enableTrigger or disableTrigger functions.

    for Aliases, it's what others have posted, same key for different classes.

    local case = {}
    case.alchemist = function () send("imbibe mayology") end
    case.runewarden = function () send("say I will pulp you") end

    case[myclass]()

    So I'd use a table to hold the commands I want to send for as a function, and then fire the function at the end. The same can be used for aliases with multiple combinations like ^play(h|g|q|a|v|w)$, along with multiple classes, I handle it this way:

    local Runewarden = {}
    local Alchemist = {}

    and do the same thing, assigning then with a function
    Runewarden.h = function () send("things") end

    Then we need to know our class and call the functions based on class and matches[2]
    local class = {}
    class.Runewarden = Runewarden
    class.Alchemist = Alchemist

    class[mylass][matches[2]]() --assuming myclass is gmcp whatever your class is

    I hope this makes sense, I am not a programmer so there could be more efficient way, I just don't like if else cos they are too noisy... So I learned to use table, more readable to me.
    Torinn
  • VoliVoli Posts: 32Member ✭✭ - Stalwart
    @Torinn I use the Blademaster install cause it gets mindnet while depthswalker does not. As the one I have installed.

    It's a nice workaround if you don't know more sophisticated answers. The only reason I did it the way I did is cause the DEF list doesn't change. Fortunately, my way fixed that for me :P There may be other ways that are better to implement though
    Torinn
  • AtalkezAtalkez Posts: 4,058Member, Secret Squirrel @@ - Legendary Achaean
    Crazy to me that svo can’t handle class swapping properly. 


    You hug Aurora compassionately.
    Tysandr
  • KeneanungKeneanung Posts: 542Member ✭✭✭✭ - Eminent
    Atalkez said:
    Crazy to me that svo can’t handle class swapping properly. 
    It's not easy to implement due to a number of (necessary IMHO) optimizations that bind svof to classes. I started an implementation (the branch is still out there, if anybody wwnts to pick it up), but ran into road blocks that I can't handle with the time I have at hand.
  • SolnirSolnir Posts: 374Member ✭✭✭✭ - Eminent

    When I was multiclassed the easiest way to handle svof for me was to just keep whatever class I'm using installed, then uninstall, switch, reinstall appropriate one.

    Am DW, want to switch to Runie.
    uninstall DW svof
    qq/relog
    class switch runewarden
    install runie svof
    vinstall

    Never had any issues this way, and didn't require upkeeping multiple profiles.

  • AtalkezAtalkez Posts: 4,058Member, Secret Squirrel @@ - Legendary Achaean
    Keneanung said:
    Atalkez said:
    Crazy to me that svo can’t handle class swapping properly. 
    It's not easy to implement due to a number of (necessary IMHO) optimizations that bind svof to classes. I started an implementation (the branch is still out there, if anybody wwnts to pick it up), but ran into road blocks that I can't handle with the time I have at hand.
    I suppose I’m curious why it’s necessary? Sounds to me like a compiling/code base problem more than anything.

    I have nearly every functionality of svo in my wsys, but I have no issues swapping classes.

    Maybe this could be a fix with putting everything into Mudlet like Vadi mentioned earlier?


    You hug Aurora compassionately.
  • AntoniusAntonius Posts: 4,200Member @@ - Legendary Achaean
    Dochitha said:
    Kogan said:
    Torinn said:
    So for the time being, multiclassing is a nightmare.  The only thing I want to change when I switch classes is SVOF.  Everything else, my aliases, triggers, scripts, everything, can stay the same.  To do this with mudlet I have to have two different profiles, throw a whole bunch of stuff in to Modules, then install certain things that write files to disk per profile.  For example, Zulah's GUI doesn't work as a module because it has files specific to a profile.  SVO obviously doesn't either.  This is really annoying. But..

    Could I, theoretically, have multiple different class's SVOFs on one profile, then if I switch classes, deactivate one set, activate the other, restart mudlet, and call it good?  Or will that mess up something I don't know about?
    @Dochitha can maybe explain how. Not sure how he handles it. I know he switches classes multiple times a day and never relogs to do so.
    On my triggers, I use a folder to contain all class related triggers. The folder itself is a filter, which has 
    if myClass == "Alchemist" then return true end. < lua function.
    Using this, I use a folder to automatically enable or disable group of triggers without using enableTrigger or disableTrigger functions.
    Just enable and disable the folder so the triggers aren't checked at all, rather than applying an inefficient trigger type to literally every line of output. Also, return myClass == "Alchemist" would be identical in functionality to what you have (if you have an if statement that ONLY returns a boolean value, you're doing it wrong).
    Dochitha
  • VoliVoli Posts: 32Member ✭✭ - Stalwart
    I applied an if/then statement because I wanted to avoid having to on/off folders in my triggers and aliases. Also, since I'm still relatively new, I don't have a massive number of triggers or aliases, so it wasn't too much work to just throw the check onto my.. what.. 20-ish triggers/aliases?

    If you have upwards to 50+, I can see how it would be something akin to pulling teeth, nails, and hair one after the other.

    I also avoid the whole return thing, I just put if myClass == "Blademaster" then <insert trigger or alias> end.

    That said, I know: if myClass ~= "Blademaster" then return false end | also works, due to my experience using the same/similar method in Aetolia.

    I genuinely don't know if the opposite works, like what was mentioned above...
  • AntoniusAntonius Posts: 4,200Member @@ - Legendary Achaean
    Voli said:
    I applied an if/then statement because I wanted to avoid having to on/off folders in my triggers and aliases. Also, since I'm still relatively new, I don't have a massive number of triggers or aliases, so it wasn't too much work to just throw the check onto my.. what.. 20-ish triggers/aliases?

    If you have upwards to 50+, I can see how it would be something akin to pulling teeth, nails, and hair one after the other.

    I also avoid the whole return thing, I just put if myClass == "Blademaster" then <insert trigger or alias> end.

    That said, I know: if myClass ~= "Blademaster" then return false end | also works, due to my experience using the same/similar method in Aetolia.

    I genuinely don't know if the opposite works, like what was mentioned above...
    You seem to be talking about doing the check in the code of the trigger, after the pattern matching has already succeeded. Dochitha is talking about the check being the pattern that's matched in the top-level of a trigger filter/chain.
  • VoliVoli Posts: 32Member ✭✭ - Stalwart
    @Antonius Ohhhhh okay :)

    It's pretty fun hearing all the ways people worked around the single class thing, though.
  • ThalakThalak Posts: 50Member ✭✭✭ - Distinguished
    Okay, so ever since switching to bard and using bard svof, every time I attack, like bashing for instance, the prompt is deleted after the attack goes through. The prompt doesn't show up again until another line pops in the client, so I can sometimes go three attacks without seeing a prompt depending on how slow the target is going ..

    I've searched through my personal triggers and other triggers that I've downloaded and use, and none of the ones are the ones deleting the prompt. I've personally gone through and disabled each and every one just to find that it still deletes the prompt, but when I turn off triggers completely, it does not delete the prompt, thus I think it may have something to do with svof.

    Has anyone else ever had a problem with that in bard svof, I didn't have this problem with blademaster svof. Any suggestions for finding the culprit deleting my desired prompt would be greatly appreciated!

    Plz halp!
  • SolnirSolnir Posts: 374Member ✭✭✭✭ - Eminent
    My dahhhling Thalak (sorry that's the only way I know your name so it's stuck)

    I didn't have any issues with bard svof. Initial recommendation is double checking all your deleteLine's and deleteFull's, and I think deleteLineP is svofs. If you're sure you've checked your own, try uninstalling and reinstalling svof and seeing if that fixes the problem.
    Thalak
  • ThalakThalak Posts: 50Member ✭✭✭ - Distinguished
    Solnir said:
    My dahhhling Thalak (sorry that's the only way I know your name so it's stuck)

    I didn't have any issues with bard svof. Initial recommendation is double checking all your deleteLine's and deleteFull's, and I think deleteLineP is svofs. If you're sure you've checked your own, try uninstalling and reinstalling svof and seeing if that fixes the problem.
    I checked the svo delete lines too beforehand, but checked them again anyway, that doesn't seem to be it. I'll try reinstalling again, is there a special way I should reinstall, or just package manager uninstall/reinstall? Do I have to do vinstall again?
  • CaelanCaelan Posts: 744Member ✭✭✭✭✭ - Grand Achaean
           

    ThalakShirszae
  • ThalakThalak Posts: 50Member ✭✭✭ - Distinguished
    Wow, reinstalling worked. Didn't work last time. Thanks!
    Rangor
  • SolnirSolnir Posts: 374Member ✭✭✭✭ - Eminent
    This is why I work in IT. :D
    Sobriquet
  • ThalakThalak Posts: 50Member ✭✭✭ - Distinguished
    edited 7:39PM
    Solnir said:
    This is why I work in IT. :D
    Halp again plz Mr. IT?!?!

    So now, after my attack, my prompt pops up on the same line as the attack, rather than giving it a new line. I tried reinstalling to fix it, but alas, it did not this time. Anything you might have seen?

    Edit: Need a tag @Solnir

    edit2: texample -

    You viciously jab a rapier into a baby rat.
    You have slain a baby rat, retrieving the corpse.(4755/4755)h (3611/3626)m (99%)e (100%)wp (68%)xp cekdbv-
    (Rat)
    You have recovered balance on all limbs.

    edit3: I've added \n to the beginning of my custom prompt as a quick fix as per Xaden's advice(Thanks @Xaden!). I am considering this a quick fix, as it now gives me an extra blank line if I'm not attacking, but it'll work for now. Still looking for advice on a normal fix. Thx in advance!
  • SolnirSolnir Posts: 374Member ✭✭✭✭ - Eminent
    Actually, I have seen that. Though, it's caused by my gui not interfacing very well with the dragon talisman tracker. I'mma go real basic here and say restart mudlet and see if that helps, because other than that my suggestion was what Xaden said, add \n. 
  • KlendathuKlendathu Eye of the StormPosts: 2,579Member @@ - Legendary Achaean
    Solnir said:
    Actually, I have seen that. Though, it's caused by my gui not interfacing very well with the dragon talisman tracker. I'mma go real basic here and say restart mudlet and see if that helps, because other than that my suggestion was what Xaden said, add \n. 
    IT Support qualifications verified.

    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."
  • AlyxeriAlyxeri Posts: 274Member ✭✭✭ - Distinguished
    Make sure all of your deleteLines / deleteFulls use 'svo.deleteLineP()' - I know that was my problem when I used Vadi's system in Lusternia.

    Also make sure SVO triggers are at the top, not below others so that they're firing first.
Sign In to Comment.