MQ2Bardswap

Discussion in 'E3' started by Neriuni, Apr 15, 2020.

  1. Neriuni

    Neriuni Orc Pawn

    Messages:
    10
    I cannot find the setup guide for bardswap for PEQ. So I am going to put the way I did. Please let me know if there is more smarter way :)

    Reference:
    https://www.mmobugs.com/wiki/index.php/MQ2BardSwap


    Step1: Enable MQ2bardswap

    Do following command

    /plugin MQ2Bardswap load

    Alternative way. Modify MacroQuest.ini file.
    MacroQuest.ini:
    Code:
    [Plugins]
    mq2ic=1
    mq2eqbc=1
    ...
    mq2linkdb=1
    mq2bardswap=1   <---- add this line or modify to 1
    


    Step2: Generate config file

    Do following command

    /bardswap

    This will generates MQ2BardSwap_yourtoonname_PEQTGC.ini on E3_ROF directory.



    Step3: Modify config file

    Following is an example. Using /bandolier is not recommended because of the risk of item lost. Use /exchange instead.

    MQ2BardSwap_yourtoonname_PEQTGC.ini:
    Code:
    [Settings]
    Horn=/if (${FindItemCount[Blaring Horn of Fire]} && !${Window[MerchantWnd].Open}) /exchange "Blaring Horn of Fire" offhand
    Drum=/if (${FindItemCount[War Drum of the Rathe]} && !${Window[MerchantWnd].Open}) /exchange "War Drum of the Rathe" offhand
    Lute=/if (${FindItemCount[Aged Lyran's Mystical Lute]} && !${Window[MerchantWnd].Open}) /exchange "Aged Lyran's Mystical Lute" offhand
    Wind=/if (${FindItemCount[Tormented Flute]} && !${Window[MerchantWnd].Open}) /exchange "Tormented Flute" offhand
    Singing=DISABLED
    Weapons=/if (${FindItemCount[Edge of Eternity]} && !${Window[MerchantWnd].Open}) /exchange "Edge of Eternity" offhand
    Delay=21
    


    Step4: Enable it

    Just do following commands

    /bardswap
    /bardswap melee



    Step5: **OPTIONAL** Activate when you login

    Im not sure this is the best way. Add the red part in e3_Classes_Bard.inc file.

    e3_Classes_Bard.inc:
    Code:
    Sub BRD_Setup
    /if (${Debug}) /echo |- BRD_Setup ==>
        /call iniToVarV "${Character_Ini},Bard,Auto-Melody" autoMelody string outer
      /call iniToVarV "${Character_Ini},Bard,AutoMez (On/Off)" autoMez bool outer
      /call IniToArrayV "${Character_Ini},Bard,Mez#"      mezArray
      /call IniToArrayV "${Character_Ini},Bard,Charm#"    charmArray
      /declare returnTwist        bool outer FALSE
      /declare playingMelody    bool outer TRUE
      /declare songSet string outer
      /declare resumeTwistDelay timer outer
    
      | add following red codes to auto-enable bardswap when login/reset e3
      /if (!${BardSwap}) {
        /bardswap
        /bardswap melee
      }
    
      /if (${Defined[mezArray]}) {
        /call BuildSpellArray "mezArray"    "mezArray2D"
      } else {
        /varset autoMez FALSE
      }
    
      /declare charmTarget int outer
      /if (${Defined[charmArray]}) {
        /call BuildSpellArray "charmArray"    "charmArray2D"
        /declare doCharm bool outer TRUE
        /declare charmBuffTimer timer outer
      } else {
        /declare doCharm bool outer FALSE
      }
    /if (${Debug}) /echo <== BRD_Setup -|
    /return
    


    Note: Bandolier has an issue while the item is on the hand. Combination with item loot and bardswap(actually using bandolier) may lose item. This may occur bandoiler swap happens while the bag is full and there is a different item on the hand. I am not assigning bard as a looter to be safe. Or using /exchange will be more safer but I have not tested it. I am modifying e3 disabling bardswap when looting or when the bag is full.

    Meat
     
    Last edited: Apr 17, 2020
  2. Neriuni

    Neriuni Orc Pawn

    Messages:
    10
    I think I put this on wrong thread. It supposed to be posted on "General MQ2"...
     
  3. Coreidan

    Coreidan Orc Pawn

    Messages:
    20
    Two thoughts here:
    1.) You can use /plugin MQ2Bardswap load - This will enable the plugin if it isn't already. That way you don't have to mess with macroquest.ini and reloading the client.
    2.) For your exchange you can utilize the below command. I prefer using this command, otherwise when you're naked after dying you'll see tons of mq error output. In the end it doesn't make a difference, but if you're OCD like me you don't want to see tons of errors.

    Drum=/if (${FindItemCount[Thunderous Drum of Karana]}) /exchange "Thunderous Drum of Karana" offhand
     
  4. chance

    chance Enraged War Boar

    Messages:
    732
    Note: Bandolier STILL deletes Items. STILL suggest not using it.
    ( Tried it again April 2020 ... lost an item within 10 minutes of testing it )

    Note2: using /exchange instead of bandoilier along with mq2bardswap ... risks selling items. Suggest not using item
     
  5. Coreidan

    Coreidan Orc Pawn

    Messages:
    20
    Interesting point about exchange and selling of items. I haven't put a lot of thought into that. Personally I always turn off twist before interacting with NPC, because mq2bardswap is pretty weird in general.

    With that said, the issue isn't exchange, it's the conditional that is wrong. If you're really paranoid about selling your items when using bardswap, I suggest turning off twist, or better yet, modify your exchange to be smarter.

    Drum=/if (${FindItemCount[Thunderous Drum of Karana]} && !${Window[MerchantWnd].Open}) /exchange "Thunderous Drum of Karana" offhand

    This exchange won't do anything if:
    A.) You don't have that drum in your inventory
    B.) The merchant window is open

    This is all MQ code, so you can modify that to do anything you want as it is a conditional.

    In the end there is no reason to not use bardswap with exchange since you can provide a conditional and look for any case that might break it.

    If you want to use bandolier go right ahead, you can leverage the same /if logic to prevent anything bad happening.

    -Tacoduh
     
  6. Neriuni

    Neriuni Orc Pawn

    Messages:
    10
    Thanks Tacoduh and Barbatos,

    I modifed e3_sell.inc to stop bardswap while doing /autosell. But the way Tacoduh do looks smarter.

    e3_Sell.inc
    Code:
    SUB EVENT_sellItems
    /if (${Debug} || ${Debug_Sell}) /echo |- EVENT_sellItems ==>
       
        | Stop Bardswap
        /declare bsstat bool local false
        /if (${BardSwap.Swapping}) {
                /BardSwap
                /BardSwap melee
                /varset bsstat true
            }
        }
    
        | Record starting location.
        /declare startingLoc string local ${Me.Loc.Replace[ ,]}
           
        | Sync inventory with Loot_Ini.
        | /call EVENT_syncInventory
           
        | Open trade with the nearest merchant.
        /call openMerchant
           
        /if (${Window[MerchantWnd].Open}) {
       
            | Open bags.
            /keypress OPEN_INV_BAGS
       
            | Sell Items.
            /call sellItems
           
            | Move back to starting location.   
            /squelch /moveto loc ${startingLoc.Arg[1,,]} ${startingLoc.Arg[2,,]}
           
            | Close merchant.
            /if (${Window[MerchantWnd].Open}) /call closeMerchant
       
            | Destroy bad items.
            /if (${DestroyableItems.Size}) /call destroyItems
       
            | Close bags.
            /keypress CLOSE_INV_BAGS
           
            /echo I have finished selling.
        }
    
        | Restart Bardswap
        /if (${bsstat}) {
            /Bardswap
            /BardSwap melee
        }
       
    /if (${Debug} || ${Debug_Sell}) /echo <== EVENT_sellItems -|
    /RETURN
    
     
  7. Neriuni

    Neriuni Orc Pawn

    Messages:
    10
    I modified the first post based on the feedback. Thank you!
     
  8. mackal

    mackal Pyrilen Fireblade

    Messages:
    2,267
    Report how you lost items then FFS.
     
    • Like Like x 1
  9. Ridiculous

    Ridiculous Orc Pawn

    Messages:
    36
    Glad I found this because I was looking at using MQ2Bandolier because my bard actively putting items on the cursor for the swap makes me apprehensive.
    Anyone done any additional research and I know of at least one boxer who uses bandolier.

    What is everyone using? Is the consensus to use /exchange?


    Note: Since using Bardswap a month or so ago, I was told to not have bard looting. I do not use autosell but am currently working on setting mine up to do. Since my bard no longer is looter I was not concerned about that. BUT I was going to have my autosell broadcast to have all chars sell at least initially #BecausePackRack.

    I have not lost an item or instrument due to /bardswap to date. The same cannot be said for the auto-forage script here on the forums (which aside from 8 items I was attempting to trade from my druid works great if you like completely full bags of foraged stuffs).
     
  10. mackal

    mackal Pyrilen Fireblade

    Messages:
    2,267
    I use built in bandolier /shrug
     
  11. Hive

    Hive Froglok Krup Watcher

    Messages:
    340
    Exchange was crashing me when I first started to use bardswap so i switched it to bandolier instead. I've used it for like 18 months on 6 bards that change items once every ~4 seconds for thousands of hours and never lost an item. Imo is it difficult to lose anything to bando. Also doesn't exchange use the cursor where bando does not? If so bando cigs out the middleman and should be better. Also this way you NEVER have to edit your bardswap ini, just edit the bando in game.
     
  12. CE2JRH

    CE2JRH Orc Warlord

    Messages:
    186
    New here; can I ask why people are swapping items on their bards every 4 seconds for thousands of hours? Once you get the bard epic don't you usually just always have that in offhand?
     
  13. Ridiculous

    Ridiculous Orc Pawn

    Messages:
    36
    Yeah - Working on that.
     
  14. Malik_Gynax

    Malik_Gynax Orc Pawn

    Messages:
    40
    Bards have plenty of access to armor with instrument mods on them as well, for the record. IMO, Instrument swapping only has application if you're specifically limiting yourself to some progression that is pre-armor instrument mods.
     
  15. CE2JRH

    CE2JRH Orc Warlord

    Messages:
    186
    Ah, I thought Hive was saying that he was still using instrument swap post epic, since he said he was using it for 18 months and I assumed you'd do an epic in that time. My bad.
     
  16. Hive

    Hive Froglok Krup Watcher

    Messages:
    340
    Of course I still use it, why wouldn't I? 2.0 is only 19 mod, horn from ikk2, strings from qvic, drum from txevu are all 27. And wind is useless :p.

    The instrument mods on armor are generally really bad compared to instrument mods.
     
  17. Ridiculous

    Ridiculous Orc Pawn

    Messages:
    36
    *scribbles on scrap paper near desk* "horn from ikk2, strings from qvic, drum from txevu"
     
    • Friendly Friendly x 1
  18. CE2JRH

    CE2JRH Orc Warlord

    Messages:
    186
    So you have them swap instruments in time with the first tick of each song? Do songs "snapshot" with highest mod upon completion of casting for duration of song, or do they drop bonuses as soon as you swap the instrument out?
     
  19. Hive

    Hive Froglok Krup Watcher

    Messages:
    340
    If you don't have access to those iirc the 2nd best are horn from Fennin Ro event in fire, strings from Griohin the Wise in water, and drums from...stone? ring in earthA.

    The mod only needs to be equipped when the song finishes casting. So the bard could swap back to melee weps or whatever right after the song is finished casting. I use melee, strings, horn, drums sets on my bando. Only one bard actually uses the strings bando because it's AE.

    Below is my bardswap.ini for one of my bards. Looking at it again I could get rid of the Exclue6 line. Drums certainly have an effect on that song, but it is also incorrectly named in this ini as it has ` when it should be '.

    Code:
    [Settings]
    Horn=/bandolier Activate brass
    Drum=/bandolier Activate perc
    Lute=/bandolier Activate string
    Wind=DISABLED
    Singing=/bandolier Activate melee
    Weapons=/bandolier Activate melee
    Delay=12
    [Exclude]
    ;Instruments don't have an effect on these
    Exclude1=Requiem of Time
    Exclude2=Selo's Rhythm of Speed
    Exclude3=Selo`s Assonant Strane
    Exclude4=Song of Sustenance
    Exclude5=Alenia`s Disenchanting Melody
    ;no swap for my Selo's AA
    Exclude6=Selo`s Accelerating Chorus
    ;or lute of the flowing waters click
    Exclude7=Wind of Marr
     
    Last edited: Dec 20, 2020
  20. Hive

    Hive Froglok Krup Watcher

    Messages:
    340
    Bando for that bard. Always 2.0 is main hand, ranged item does not change, only the offhand changes for the instrument. That's the way it falls for me at this time, of course before I got the 2.0 I may change the main hand too.
    upload_2020-12-20_13-29-4.png upload_2020-12-20_13-29-30.png upload_2020-12-20_13-29-43.png upload_2020-12-20_13-29-56.png