Sit routine interrupts AAs

Third party software discussion goes here.
User avatar
Alulien
Posts: 283

Sit routine interrupts AAs

Post#1 » Thu Jun 19, 2014 2:25 am

I've been working on optimizing some of my macros and I would really like to try to fix a sit routine I made a while back - sitting between casts nets more mana, right? I've got something that works 99% of the time:

Code: Select all

Sub SitCheck
/if ( ${Stick.Active} || ${Me.Moving} || !${Cast.Ready} || ${Me.Sitting} || !${NetBots[${Tank}].Attacking} ) /return
/sit
/return


The only problem lies when a character running this tries to use an AA as they sit down immediately and somehow cancel the cast but put the AA on cooldown. I've tried ${Me.Casting.ID} in place of !${Cast.Ready} and it's the same outcome. It's odd because they return the expected results when /echo'd during casting of an AA: spell id or FALSE respectively. Anyone have a bone to throw?
Malistari (SHD) | Daggar (ROG) | Sarda (BST) | Gurneyman (BRD) | Glamd (SHM) | Wrunken (CLR)

<Muffins>

Letow (PAL) | Feydakin (MAG) | Corpselight (NEC) | Mallyal (ENC) | Thomel (BRD) | Araer (DRU)

Safiya
Posts: 129

Re: Sit routine interrupts AAs

Post#2 » Thu Jun 19, 2014 3:04 am

Mana regen here seems pretty high. I never bother sitting since I've not noticed a significant difference.

Noren
Posts: 1053

Re: Sit routine interrupts AAs

Post#3 » Thu Jun 19, 2014 4:16 pm

You could try writing in a check to see if the casting bar is open. When I get home later I can post what it is if you don't have it figured out by then. That might fix this line.

User avatar
Alulien
Posts: 283

Re: Sit routine interrupts AAs

Post#4 » Thu Jun 19, 2014 5:01 pm

I hadn't considered calling a window check, great idea, Noren. When I get home I'll go ahead and test ${Window[CastingWindow].Open} and ${Window[CastSpellWnd].Open} since the wiki isn't clear on what the differences are.
Malistari (SHD) | Daggar (ROG) | Sarda (BST) | Gurneyman (BRD) | Glamd (SHM) | Wrunken (CLR)

<Muffins>

Letow (PAL) | Feydakin (MAG) | Corpselight (NEC) | Mallyal (ENC) | Thomel (BRD) | Araer (DRU)

User avatar
Nilbus
Posts: 1258

Re: Sit routine interrupts AAs

Post#5 » Thu Jun 19, 2014 5:36 pm

${Window[CastSpellWnd].Open} - returns true if the Spell bar is visible on the character (so on or off with alt s by default) ${Window[CastingWindow].Open} only returns true while my cast bar is up for a spell in progress.
Nodyin-Nilbus-Pockit-Tiah-Rakas- Funeral
Likeatruck-Khaltos-Nilbie-Ziknaf-Prathun-Missus
Elidor
Youme-Yumme-Blazingtide-Sublin-Lissanda-Darmok
Djarik-Ikat-Nerys-Ometi-Tarana-Biln

I know way too much random stuff.

User avatar
Alulien
Posts: 283

Re: Sit routine interrupts AAs

Post#6 » Thu Jun 19, 2014 8:33 pm

Ahh very good, thanks Nilbus. I'll give it a run this evening and see if that helps improve the AA interruption.
Malistari (SHD) | Daggar (ROG) | Sarda (BST) | Gurneyman (BRD) | Glamd (SHM) | Wrunken (CLR)

<Muffins>

Letow (PAL) | Feydakin (MAG) | Corpselight (NEC) | Mallyal (ENC) | Thomel (BRD) | Araer (DRU)

User avatar
Alulien
Posts: 283

Re: Sit routine interrupts AAs

Post#7 » Fri Jun 20, 2014 3:53 am

No dice with ${Window[CastingWindow].Open} - characters still sit down immediately after they stand to cast the AA. Seems like there's a slightly longer delay when you click an AA and it begins casting as compared to a normal spell, only thing I can think of. Not really sure it's worth more time than I've already put into it, though. Thanks for the input, folks.
Malistari (SHD) | Daggar (ROG) | Sarda (BST) | Gurneyman (BRD) | Glamd (SHM) | Wrunken (CLR)

<Muffins>

Letow (PAL) | Feydakin (MAG) | Corpselight (NEC) | Mallyal (ENC) | Thomel (BRD) | Araer (DRU)

Noren
Posts: 1053

Re: Sit routine interrupts AAs

Post#8 » Fri Jun 20, 2014 5:30 am

While I agree - there is little to be gained by the SitCheck routine - I do like the challenge. Perhaps you can incorporate an inactivity timer into your macro (plus I added a few more checks).

Code: Select all

Sub SitCheck

/if (!${Defined[InactivityTimer]}) /declare InactivityTimer timer outer
/if (!${Defined[Inactive]}) /declare Inactive bool outer FALSE

/if (!${Stick.Active} && !${Me.Moving} && !${Me.Casting.ID} && !${Window[CastingWindow].Open} && ${Me.Standing} && ${Me.PctHPs}>90 && !${NetBots[${Tank}].Attacking}) {
  /if (${InactivityTimer}==0) {
    /if (!${Inactive}) {
      /varset InactivityTimer 40
      /varset Inactive TRUE
    } else {
      /varset Inactive FALSE
      /sit
    }
  }
} else /if (${Inactive}) {
  /varset Inactive FALSE
}
/return

Return to “Third party software”

Who is online

Users browsing this forum: No registered users and 1 guest

cron