Post deleted by User.
GearSwap Question |
||
GearSwap Question
download and load shortcuts addon from windower, it does the same thing
The dirty way to do it is to fire alias commands with your macros, and re-assign the alias commands when you change jobs/avatar etc.
I don't believe Gearswap can pickup on a spell you don't have(please correct me if I'm wrong!), unlike spellcast where things like //poisoin5 were used.
However, within Gearswap there is pet.name('Titan','Shiva',etc). or pet.element('Fire','Thunder',etc). Obviously I'd recommend pet.name since a few share elements now. If you're ok with using a macro and not really being type-out friendly, I'd just make custom commands under your user command function to handle desired BPs. Example: Code function self_command(command) if command == 'Nuke2' then if pet.name == 'Titan' then send_command('stone2') elseif pet.name == 'Ifrit' then send_command('fire2') .... There's a few more elegant ways to handle this, but this will work. You'd have to make a command for each of the sets you want(Nuke4, Buff1, etc) and define the inside of that command in a similar fashion so its a bit of writing. To execute the macro would be "/console gs c Nuke2", or whatever you set "command" equal to in place of Nuke2. Second option would be canceling the spell and rechecking within the same subset of spells you'd want to replace it with. Example, you type //hastega, but have a different pet out: Code if spell.english == 'Hastega' and not pet.name == 'Garuda' then cancel_spell() if pet.name == 'Titan' send_command(whatever spell titan has you'd want to use if not hastega) elseif pet.name == 'Ifrit' send_command(same thing for Ifrit) ... The downside of this is its one way unless you define every possible outcome. Say you had Leviathan out, and Hastega and Spring Water are in the same set of spells for you. So you defined it the way I did, meaning //hastega cancels with Leviathan out and replaces with Spring Water. //springwater would not cancel back to Hastega with Garuda out unless you wrote the whole thing out again with Spring Water as your base spell. Though there is a way to write that out pretty efficiently without backtracking, its more than I'd really care to type out right now. I'm assuming the first option will cover your needs. The only way I think you can do this is using both Gearswap and windower .txt scripts. The in game macro would tell windower to execute a specific script, like //exec meritBP.txt (or whatever the actually in game command is, it's been a while since I used them). Then, the meritBP.txt file would say:
input /ja "Geocrush" <t>; input /ja "Meteor Strike" <t>; input /ja "Heavenly Strike" <t>; Etc. Then after hitting the macro, it should attempt and fail to use all of the BPs, until it it can use one corresponding to your current avatar. From there, Gearswap should take over and equip the correct precast midcast and aftercast sets. Mote's SMN.lua already has code to perform the BP correlating to the correct avatar out if you want to use his code instead of coming up with your own method.
Feel free to change the spells you want, but putting this into a Macro
Code /console gs c HeavyMelee will make GS check your Avatar Name and then perform the Avatar's pre defined Heavy Melee Type Spell as below~ You can do the same for wards etc just change the if command trigger from heavy Melee to w.e and all the avatars BPs and from <t> to <me> Code function self_command(command) if command == 'HeavyMelee' then if (windower.ffxi.get_ability_recasts() > 0) then if pet.name == 'Ifrit' then send_command('input /ja "Meteor Strike" <t>') elseif pet.name == 'Shiva' then send_command('input /ja "Heavenly Strike" <t>') elseif pet.name == 'Leviathan' then send_command('input /ja "Spinning Dive" <t>') elseif pet.name == 'Titan' then send_command('input /ja "Geocrush" <t>') elseif pet.name == 'Garuda' then send_command('input /ja "Predator Claws" <t>') elseif pet.name == 'Ramuh' then send_command('input /ja "Chaotic Strike" <t>') elseif pet.name == 'Carbuncle' then send_command('input /ja "Holy Mist" <t>') elseif pet.name == 'Diabolos' then send_command('input /ja "Night Terror" <t>') elseif pet.name == 'Fenrir' then send_command('input /ja "Eclipse Bite" <t>') elseif pet.name == 'Cait Sith' then send_command('input /ja "Level ? Holy" <t>') end else add_to_chat(159,'Blood Pact: Rage Timer not ready') end end Cerberus.Conagh said: » Feel free to change the spells you want, but putting this into a Macro Code /console gs c HeavyMelee will make GS check your Avatar Name and then perform the Avatar's pre defined Heavy Melee Type Spell as below~ You can do the same for wards etc just change the if command trigger from heavy Melee to w.e and all the avatars BPs and from <t> to <me> Code function self_command(command) if command == 'HeavyMelee' then if (windower.ffxi.get_ability_recasts() > 0) then if pet.name == 'Ifrit' then send_command('input /ja "Meteor Strike" <t>') elseif pet.name == 'Shiva' then send_command('input /ja "Heavenly Strike" <t>') elseif pet.name == 'Leviathan' then send_command('input /ja "Spinning Dive" <t>') elseif pet.name == 'Titan' then send_command('input /ja "Geocrush" <t>') elseif pet.name == 'Garuda' then send_command('input /ja "Predator Claws" <t>') elseif pet.name == 'Ramuh' then send_command('input /ja "Chaotic Strike" <t>') elseif pet.name == 'Carbuncle' then send_command('input /ja "Holy Mist" <t>') elseif pet.name == 'Diabolos' then send_command('input /ja "Night Terror" <t>') elseif pet.name == 'Fenrir' then send_command('input /ja "Eclipse Bite" <t>') elseif pet.name == 'Cait Sith' then send_command('input /ja "Level ? Holy" <t>') end else add_to_chat(159,'Blood Pact: Rage Timer not ready') end end windower.ffxi.get_ability_recasts() returns a table; you have to extract the recast you're looking for specifically by using an index. Usually you'd use spell.recast_id, but since you aren't actually using a spell at the time, you have to look up the proper ID and use it: 173 for Rage, 174 for Ward. Ragnarok.Flippant said: » Cerberus.Conagh said: » Feel free to change the spells you want, but putting this into a Macro Code /console gs c HeavyMelee will make GS check your Avatar Name and then perform the Avatar's pre defined Heavy Melee Type Spell as below~ You can do the same for wards etc just change the if command trigger from heavy Melee to w.e and all the avatars BPs and from <t> to <me> Code function self_command(command) if command == 'HeavyMelee' then if (windower.ffxi.get_ability_recasts() > 0) then if pet.name == 'Ifrit' then send_command('input /ja "Meteor Strike" <t>') elseif pet.name == 'Shiva' then send_command('input /ja "Heavenly Strike" <t>') elseif pet.name == 'Leviathan' then send_command('input /ja "Spinning Dive" <t>') elseif pet.name == 'Titan' then send_command('input /ja "Geocrush" <t>') elseif pet.name == 'Garuda' then send_command('input /ja "Predator Claws" <t>') elseif pet.name == 'Ramuh' then send_command('input /ja "Chaotic Strike" <t>') elseif pet.name == 'Carbuncle' then send_command('input /ja "Holy Mist" <t>') elseif pet.name == 'Diabolos' then send_command('input /ja "Night Terror" <t>') elseif pet.name == 'Fenrir' then send_command('input /ja "Eclipse Bite" <t>') elseif pet.name == 'Cait Sith' then send_command('input /ja "Level ? Holy" <t>') end else add_to_chat(159,'Blood Pact: Rage Timer not ready') end end windower.ffxi.get_ability_recasts() returns a table; you have to extract the recast you're looking for specifically by using an index. Usually you'd use spell.recast_id, but since you aren't actually using a spell at the time, you have to look up the proper ID and use it: 173 for Rage, 174 for Ward. Code if (windower.ffxi.get_ability_recasts() [173] > 0) then You'd put the code in the [] to make it check ~ I do that on WHM but I was too lazy to find the ID for Rage |
||
All FFXI content and images © 2002-2024 SQUARE ENIX CO., LTD. FINAL
FANTASY is a registered trademark of Square Enix Co., Ltd.
|