Jump to content


Photo

Help with Recasts in spellcast


    4 replies to this topic

    #1 Valadorn

    Valadorn

      Newbie

    • Members
    • Pip
    • 6 posts

      Posted 09 January 2014 - 11:53 PM

      sorry i'm still trying to get a handle on the spellcasts.. but can anyone be able to help me out with.

       

      Im using this for trash monsters to avoid having to constantly put up manuevers..

       

       

                  <if status="engaged">
                  <if notbuffactive="Ice Maneuver">
                      <command>input /pet "Ice Maneuver" $me</command>
                  </if>
                  <elseif notbuffactive="Dark Maneuver">
                      <command>input /pet "Dark Maneuver" $me</command>
                  </elseif>
                  <elseif notbuffactive="Light Maneuver">
                      <command>input /pet "Light Maneuver" $me</command>
                  </elseif>
                  </if>
       

       

       

      Everything works except that while not all three are up it keeps trying to put them up, and this locks being able to use any other abilities till all 3 are up.

       

      Is there a way to have it check if the timer is ready or add a delay equal to the recast?.. I tried adding wait 12; but it crashed the system, maybe my positioning?



      #2 Byrth

      Byrth

        Advanced Member

      • Members
      • PipPipPip
      • 85 posts

        Posted 10 January 2014 - 12:02 PM

        Add "wait 1;" before "input" in the commands.

        #3 cytime1000

        cytime1000

          Member

        • Members
        • PipPip
        • 13 posts

          Posted 10 January 2014 - 03:12 PM

          A few issues with doing it that way every action you do will perform that code when you are engaged ergo you constantly spamming your input until all buffs are up active. The best way to do it keeping in the same vein is trigger off of each other and cascade them

           

          pseudo coded ala

           

          if not buffactive = ice maneuver then ice maneuver if spell = ice maneuver aftercast dark maneuver and if spell = dark maneuver aftercast light maneuver. Need to add a delay before the command when = aftercast> wait X; input /ja "...";  

           

           

          <ifstatus="engaged">
                      <ifnotbuffactive="Ice Maneuver">
                          <command>input /pet "Ice Maneuver" $me</command>
                      </if>
                      <ifspell="ice Maneuver">
                          <command when="aftercast" >wait 15; input /pet "Dark Maneuver" $me</command>
                      </elseif>
                      <elseifspell="dark Maneuver">
                          <command when = "aftercast" >wait 15; input /pet "Light Maneuver" $me</command>
                      </elseif>


                      </if>

           

          So when engaged ice manuever 15 seconds later dark and 15 seconds later light could add 15 seconds later ice in an endless loop while engaged or need ice to drop and any action to start up again but without a prec or post cast action could crash.  Stops if status isn't engaged of course....



          #4 Valadorn

          Valadorn

            Newbie

          • Members
          • Pip
          • 6 posts

            Posted 10 January 2014 - 04:59 PM

            Ohh i see, thank you guys very much!



            #5 Shadowmeld

            Shadowmeld

              Member

            • Members
            • PipPip
            • 12 posts

              Posted 10 January 2014 - 07:30 PM

              You could also do this with a trigger event in autoexec too, which would make it much easier to expand to multiple uses

               

              add a var

              <var name="maneuveronrecast">false</var>
              

              Next you can add an autoexec line (I'm a little rusty with autoexec, so this might be wrong), I also don't know the syntax for writing it directly in autoexec

              <!-- From spellcast, in rules section -->
              <cmd>ae registerq 23003 gainbuff_*_Maneuver sc var set maneuveronrecast true\; wait 14\; sc var set maneuveronrecast false</cmd>
              

              Now you just change your original code like so

               

              <if status="Engaged">
               <if notspell="*Maneuver" advanced='"$maneuveronrecast" == "false"'>
                <if notbuffactive="Ice Maneuver">
                 <cancelspell />
                 <cmd>input /pet "Ice Maneuver" $me</cmd>
                </if>
                <elseif notbuffactive="Dark Maneuver">
                 <cancelspell />
                 <cmd>input /pet "Dark Maneuver" $me</cmd>
                </elseif>
                <elseif notbuffactive="Light Maneuver">
                 <cancelspell />
                 <cmd>input /pet "Light Maneuver" $me</cmd>
                </elseif>
               </if>
              </if>
              

              That should not try to use the maneuvers while you are waiting for the recast period to be up.  I did a wait 14 on the autoexec rule because it takes a second or 2 to update autoexec when you gain a buff.






              1 user(s) are reading this topic

              0 members, 1 guests, 0 anonymous users