1. ACiDXiAN

    ACiDXiAN Active Member

    Messages:
    30
    In ToS (Mystic specifically) there is a spell line called Litany of Combat. I have redone most of the mystic routines and updated as much as I could in the UI part and how it runs to reflect all the changes in ToS etc. However I am a little stuck and cannot figure out WHY I cannot do something that shoudl work but isnt.

    Here is the thing. I havea pulldown menu on the class page for Litany. It lists all 3 'stances' of self buffs when you put points into that AA line. What I am trying to do is have it so when I select one it checks the buff, casts it if its not running, or removes whatever one was up and casts the currently selected one once eq2bot pulses.

    I have declared, litany, got the ui to save the current selected, load it on reload etc, but for some reason it wont run the selected one.
    Preaction as its a buff (The numbers may be different but thats because I redid the spell list as some were outdated etc (I will send to Pygar if he is wanting after I complete my changes to the overall script)

    The problem is that is has 3 components and no real singlular name. teh AA itself is called Litany of Combat, but the 3 sub spells it gives you are Battle Prowess, Casting Expertise, and Sacred Follower.

    Is there a way to check if there is a certain AA with points in it or will I need to think of some other creative way to do this?
  2. inire

    inire Active Member

    Messages:
    34
    You need to know what the actual ability is called. then you will need to cast it based on it existing in the spell list for the class.

    For example, the coercer as it stands right now doesn't cast the AA Empathic Soothing, only Empathic Aura. checking the spell list in the coercer spell listing i get a value of <Setting Name="10,385">Empathic Soothing</Setting>. I'm not sure if the second number needs to be globally unique, but the words need to be the exact spell name/ability. Since level 10 is the first time that it's possible for you to have ANY AA, setting the AA abilities to level 10 is fine.

    Next, I would need to make sure the spell is used by the coercer file.

    I would add the following to the coercer class routine file. Note that this is NOT the recommended way to do this, as there are specific things you can add to your character iss file that will do this as well, but I'm kinda stuck in my ways, and have been creating new class iss's for a bit..

    Code (Text):

    function Class_Declaration()
    {
    declare BuffEmpathicSoothing bool script FALSE
    BuffEmpathicSoothing:Set[${CharacterSet.FindSet[${Me.SubClass}].FindSetting[BuffEmpathicSoothing,FALSE]}]

    function Buff_Init()
    {
        PreAction[11]:Set[AA_Empathic_Soothing]
        PreSpellRange[11,1]:Set[385]

    function Buff_Routine(int xAction)
    {
            case AA_Empathic_Soothing
                if ${BuffEmpathicSoothing}
                {
                    if !${Me.Maintained[${SpellType[${PreSpellRange[${xAction},1]}]}](exists)}
                    {
                        call CastSpellRange ${PreSpellRange[${xAction},1]} 0 0 0 ${Me.ID} 0 0 1 0 0
                        wait 5
                    }
                }
                break

     
    So, i'm guessing you'll need to find the exact name of each stance in the game, then put them in the spell list, with unique id's. then you'll need to use the toggle style casting list like the mage pet (tome/drake/etc) to choose the spell you want up. i think that one cancels the current maintained spell.
  3. ACiDXiAN

    ACiDXiAN Active Member

    Messages:
    30
    I have been trying for the last few days using the warlock as an example as they have teh Tome/Gargoyle thing and the script is way different than the coercer one (seems to be more constant with other styles) I will post my findings once the pacthes go through today as I think I may have foudn the issues.
  4. ACiDXiAN

    ACiDXiAN Active Member

    Messages:
    30
    OKay it sort of works but not really. Here are the snippets I used.

    Code (Text):

    [B]In Class declaration[/B]
     declare BuffLitany int script 1

    [B]In the Buff Init section:[/B]
     PreAction[13]:Set[AA_Litany]
     PreSpellRange[13,1]:Set[385]
     PreSpellRange[13,2]:Set[386]
     PreSpellRange[13,3]:Set[387]

    [B]In the preaction buffs, switch section at the very end[/B]
    case AA_Litany
        if (${Me.Ability[${SpellType[${PreSpellRange[${xAction},1]}]}](exists)})
        {
            if !${Me.Maintained[${SpellType[${PreSpellRange[${xAction},1]}]}](exists)}
                call CastSpellRange ${PreSpellRange[${xAction},${BuffLitany}]}
        }
        break

    [B]In the UI the following is put in[/B]
    <Combobox Name='BuffLitany'>
        <X>5%</X>
        <Y>275</Y>
        <Width>25%</Width>
        <Height>20</Height>
        <AutoTooltip>Select Litany of Combat effect</AutoTooltip>
        <Items>
            <Item Value='0'>None</Item>
            <Item Value='1'>Battle Prowess</Item>
            <Item Value='2'>Casting Expertise</Item>
            <Item Value='3'>Sacred Follower</Item>
        </Items>
        <OnLoad>
            This.ItemByValue[${LavishSettings[EQ2Bot].FindSet[Character].FindSet[${Me.SubClass}].FindSetting[BuffLitany]}]:Select
        </OnLoad>
        <OnSelect>
            Script[EQ2Bot].Variable[BuffLitany]:Set[${This.SelectedItem.Value}]
            LavishSettings[EQ2Bot].FindSet[Character].FindSet[${Me.SubClass}]:AddSetting[BuffLitany,${This.SelectedItem.Value}]
            Script[EQ2Bot].VariableScope.EQ2Bot:Save_Settings
        </OnSelect>
        <OnLeftClick></OnLeftClick>
    </Combobox>
     
    Now it will check and see if the buff is up BUT it wont change them unless I cancel the buff from the buff window. Not sure if this is normal or if I have somethign all fubard here. Everythign else seems to work fine. I was thinking to change it to OnChange instead of OnSelect but not sure if that steh right course of action.
    Last edited: May 1, 2009

Share This Page