Quixacotl

[LUA] FFXI SCH LUA

Dec 21st, 2013
1,839
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 12.65 KB | None | 0 0
  1. -- updated 1/20/2014. This is a WIP and subject to frequent changes. It is useable as-is but nowhere near complete. So check back often.
  2.  
  3. function get_sets()
  4.     -- Precast sets
  5.     sets.precast = {}
  6.     sets.precast.Fastcast = {
  7.         sub="Arbuda Grip",
  8.         ammo="Hasty Pinion",
  9.         hands="Gendewitha Gages",
  10.         legs="Bokwus Slops",
  11.         feet="Argute Loafers +2",
  12.         neck="Stoicheion Medal",
  13.         waist="Goading Belt",
  14.         left_ear="Loquac. Earring",
  15.         left_ring="Prolix Ring",
  16.         back="Swith Cape"
  17.         }
  18.  
  19.     sets.precast.Stun = {
  20.         main="Apamajas II",
  21.         sub="Arbuda Grip",
  22.         ammo="Kalboron Stone",
  23.         head="Nahtirah Hat",
  24.         body="Hedera Cotehardie",
  25.         hands="Gendewitha Gages",
  26.         legs="Bokwus Slops",
  27.         feet="Argute Loafers +2",
  28.         neck="Eddy Necklace",
  29.         waist="Goading Belt",
  30.         left_ear="Lifestorm Earring",
  31.         right_ear="Psystorm Earring",
  32.         left_ring="Sangoma Ring",
  33.         right_ring="Maquette Ring",
  34.         back="Swith Cape"
  35.         }
  36.  
  37.     sets.precast.Impact = {
  38.         main="Atinian Staff",
  39.         sub="Mephitis Grip",
  40.         ammo="Ombre Tathlum",
  41.         head="Remove",
  42.         body="Twilight Cloak",
  43.         hands="Yaoyotl Gloves",
  44.         legs="Savant's Pants +2",
  45.         feet="Svnt. Loafers +2",
  46.         neck="Eddy Necklace",
  47.         waist="Oneiros Sash",
  48.         left_ear="Hecate's Earring",
  49.         right_ear="Strophadic Earring",
  50.         left_ring="Sangoma Ring",
  51.         right_ring="Maquette Ring",
  52.         back="Bookworm's Cape"
  53.         }
  54.  
  55.     sets.precast.Cure = {
  56.         main="Arka IV",
  57.         sub="Arbuda Grip",
  58.         ammo="Aqua Sachet",
  59.         head="Gende. Caubeen",
  60.         body="Heka's Kalasiris",
  61.         hands="Bokwus Gloves",
  62.         legs="Bokwus Slops",
  63.         feet="Argute Loafers +2",
  64.         neck="Savant's Chain",
  65.         waist="Argute Belt",
  66.         left_ear="Lifestorm Earring",
  67.         right_ear="Psystorm Earring",
  68.         left_ring="Omega Ring",
  69.         right_ring="Aquasoul Ring",
  70.         back="Pahtli Cape"
  71.         }
  72.  
  73.     -- Midcast Sets
  74.     sets.midcast = {}
  75.     sets.midcast.EnhancingMagic = {
  76.         main="Kirin's Pole",
  77.         sub="Fulcio Grip",
  78.         ammo="Savant's Treatise",
  79.         head="Svnt. Bonnet +2",
  80.         body="Hedera Cotehardie",
  81.         hands="Gendewitha Gages",
  82.         legs="Orvail Pants",
  83.         feet="Rubeus Boots",
  84.         neck="Enhancing Torque",
  85.         waist="Olympus Sash",
  86.         left_ear="Loquac. Earring",
  87.         right_ear="Moonshade Earring",
  88.         left_ring="Prolix Ring",
  89.         right_ring="Paguroidea Ring",
  90.         back="Merciful Cape"
  91.         }
  92.  
  93.     sets.midcast.Embrava = {
  94.         main="Kirin's Pole",
  95.         sub="Fulcio Grip",
  96.         ammo="Savant's Treatise",
  97.         head="Svnt. Bonnet +2",
  98.         body="Hedera Cotehardie",
  99.         hands="Savant's Bracers +2",
  100.         legs="Orvail Pants",
  101.         feet="Rubeus Boots",
  102.         neck="Enhancing Torque",
  103.         waist="Olympus Sash",
  104.         left_ear="Loquac. Earring",
  105.         right_ear="Moonshade Earring",
  106.         left_ring="Prolix Ring",
  107.         right_ring="Paguroidea Ring",
  108.         back="Merciful Cape"
  109.         }
  110.  
  111.     sets.midcast.Storm = {feet="Argute Loafers +2"}
  112.  
  113.     sets.midcast.Stoneskin = {
  114.         main="Kirin's Pole",
  115.         sub="Fulcio Grip",
  116.         ammo="Savant's Treatise",
  117.         head="Svnt. Bonnet +2",
  118.         body="Hedera Cotehardie",
  119.         hands="Savant's Bracers +2",
  120.         legs="Orvail Pants",
  121.         feet="Rubeus Boots",
  122.         neck="Enhancing Torque",
  123.         waist="Olympus Sash",
  124.         left_ear="Loquac. Earring",
  125.         right_ear="Moonshade Earring",
  126.         left_ring="Prolix Ring",
  127.         right_ring="Paguroidea Ring",
  128.         back="Merciful Cape"
  129.         }
  130.  
  131.     sets.midcast.HealingMagic = {
  132.         sub="Arbuda Grip",
  133.         ammo="Hasty Pinion",
  134.         head="Nahtirah Hat",
  135.         body="Hedera Cotehardie",
  136.         hands="Gendewitha Gages",
  137.         legs="Bokwus Slops",
  138.         feet="Argute Loafers +2",
  139.         neck="Savant's Chain",
  140.         waist="Argute Belt",
  141.         left_ear="Lifestorm Earring",
  142.         right_ear="Psystorm Earring",
  143.         left_ring="Omega Ring",
  144.         right_ring="Aquasoul Ring",
  145.         back="Tempered Cape"
  146.         }
  147.  
  148.     sets.midcast.Cure = {
  149.         main="Arka IV",
  150.         sub="Arbuda Grip",
  151.         ammo="Aqua Sachet",
  152.         head="Gende. Caubeen",
  153.         body="Heka's Kalasiris",
  154.         hands="Bokwus Gloves",
  155.         legs="Bokwus Slops",
  156.         feet="Argute Loafers +2",
  157.         neck="Savant's Chain",
  158.         waist="Argute Belt",
  159.         left_ear="Lifestorm Earring",
  160.         right_ear="Psystorm Earring",
  161.         left_ring="Omega Ring",
  162.         right_ring="Aquasoul Ring",
  163.         back="Pahtli Cape"
  164.         }
  165.  
  166.     sets.midcast.EnfeeblingMagic = {
  167.         main="Atinian Staff",
  168.         sub="Mephitis Grip",
  169.         ammo="Kalboron Stone",
  170.         head="Nahtirah Hat",
  171.         body="Hagondes Coat",
  172.         hands="Yaoyotl Gloves",
  173.         legs="Bokwus Slops",
  174.         feet="Rubeus Boots",
  175.         neck="Eddy Necklace",
  176.         waist="Demonry Sash",
  177.         left_ear="Lifestorm Earring",
  178.         right_ear="Psystorm Earring",
  179.         left_ring="Sangoma Ring",
  180.         right_ring="Maquette Ring",
  181.         back="Refraction Cape"
  182.         }
  183.  
  184.     sets.midcast.ElementalMagic = {
  185.         main="Atinian Staff",
  186.         sub="Wizzan Grip",
  187.         ammo="Ombre Tathlum",
  188.         head="Hagondes Hat",
  189.         body="Hagondes Coat",
  190.         hands="Yaoyotl Gloves",
  191.         legs="Hagondes Pants",
  192.         feet="Svnt. Loafers +2",
  193.         neck="Eddy Necklace",
  194.         waist="Oneiros Sash",
  195.         left_ear="Hecate's Earring",
  196.         right_ear="Strophadic Earring",
  197.         left_ring="Omega Ring",
  198.         right_ring="Snow Ring",
  199.         back="Bookworm's Cape"
  200.         }
  201.  
  202.     sets.midcast.Helix = {
  203.         main="Atinian Staff",
  204.         sub="Wizzan Grip",
  205.         ammo="Ombre Tathlum",
  206.         head="Hagondes Hat",
  207.         body="Hagondes Coat",
  208.         hands="Yaoyotl Gloves",
  209.         legs="Hagondes Pants",
  210.         feet="Svnt. Loafers +2",
  211.         neck="Eddy Necklace",
  212.         waist="Oneiros Sash",
  213.         left_ear="Hecate's Earring",
  214.         right_ear="Strophadic Earring",
  215.         left_ring="Omega Ring",
  216.         right_ring="Snow Ring",
  217.         back="Bookworm's Cape"
  218.         }
  219.  
  220.     sets.midcast.Impact = {
  221.         main="Atinian Staff",
  222.         sub="Mephitis Grip",
  223.         ammo="Ombre Tathlum",
  224.         head="Remove",
  225.         body="Twilight Cloak",
  226.         hands="Yaoyotl Gloves",
  227.         legs="Savant's Pants +2",
  228.         feet="Svnt. Loafers +2",
  229.         neck="Eddy Necklace",
  230.         waist="Oneiros Sash",
  231.         left_ear="Hecate's Earring",
  232.         right_ear="Strophadic Earring",
  233.         left_ring="Sangoma Ring",
  234.         right_ring="Maquette Ring",
  235.         back="Bookworm's Cape"
  236.         }
  237.  
  238.     sets.midcast.DarkMagic = {
  239.         main="Atinian Staff",
  240.         sub="Mephitis Grip",
  241.         ammo="Kalboron Stone",
  242.         head="Nahtirah Hat",
  243.         body="Hedera Cotehardie",
  244.         hands="Gendewitha Gages",
  245.         legs="Argute Pants +2",
  246.         feet="Argute Loafers +2",
  247.         neck="Eddy Necklace",
  248.         waist="Goading Belt",
  249.         left_ear="Lifestorm Earring",
  250.         right_ear="Psystorm Earring",
  251.         left_ring="Sangoma Ring",
  252.         right_ring="Maquette Ring",
  253.         back="Bookworm's Cape"
  254.         }
  255.  
  256.     -- Aftercast sets
  257.     sets.aftercast = {}
  258.  
  259.  
  260.     -- Status sets
  261.     sets.idle = {}
  262.     sets.idle.Base = {
  263.         main="Chatoyant Staff",
  264.         -- main="Baqil Staff",
  265.         sub="Vallus Grip",
  266.         ammo="Aqua Sachet",
  267.         head="Nahtirah Hat",
  268.         body="Hagondes Coat",
  269.         hands="Yaoyotl Gloves",
  270.         legs="Hagondes Pants",
  271.         feet="Hagondes Sabots",
  272.         neck="Twilight Torque",
  273.         waist="Slipor Sash",
  274.         left_ear="Darkness Earring",
  275.         right_ear="Moonshade Earring",
  276.         left_ring="Sheltered Ring",
  277.         right_ring="Paguroidea Ring",
  278.         back="Cheviot Cape"
  279.         }
  280.        
  281.     sets.idle.Sublimation = {
  282.         main="Plenitas Virga",
  283.         sub="Vallus Grip",
  284.         ammo="Aqua Sachet",
  285.         head="Svnt. Bonnet +2",
  286.         body="Hagondes Coat",
  287.         hands="Yaoyotl Gloves",
  288.         legs="Hagondes Pants",
  289.         feet="Hagondes Sabots",
  290.         neck="Twilight Torque",
  291.         waist="Slipor Sash",
  292.         left_ear="Savant's Earring",
  293.         right_ear="Moonshade Earring",
  294.         left_ring="Sheltered Ring",
  295.         right_ring="Paguroidea Ring",
  296.         back="Cheviot Cape"
  297.         }
  298.  
  299.     sets.idle.Weak = {}
  300.     sets.idle.Kite = {feet="Desert Boots +1"}
  301.  
  302.     -- Defense sets
  303.     sets.defense = {}
  304.  
  305.     sets.Resting = {
  306.         main="Chatoyant Staff",
  307.         sub="Ariesian Grip",
  308.         ammo="Clarus Stone",
  309.         head="Nahtirah Hat",
  310.         neck="Eidolon Pendant",
  311.         ear1="Antivenom Earring",
  312.         ear2="Moonshade Earring",
  313.         body="Hagondes Coat",
  314.         hands="Serpentes Cuffs",
  315.         ring1="Sheltered Ring",
  316.         ring2="Paguroidea Ring",
  317.         back="Shadow Mantle",
  318.         waist="Austerity Belt",
  319.         legs="Sagacity Lappas"
  320.         }
  321.  
  322.  
  323.     sets.Obi = {}
  324.     -- sets.Obi.Fire = {waist='Karin Obi',back='Twilight Cape'}
  325.     -- sets.Obi.Earth = {waist='Dorin Obi',back='Twilight Cape'}
  326.     -- sets.Obi.Water = {waist='Suirin Obi',back='Twilight Cape'}
  327.     -- sets.Obi.Wind = {waist='Furin Obi',back='Twilight Cape'}
  328.     sets.Obi.Ice = {waist='Hyorin Obi',back='Twilight Cape'}
  329.     sets.Obi.Thunder = {waist='Rairin Obi',back='Twilight Cape'}
  330.     sets.Obi.Light = {waist='Korin Obi',back='Twilight Cape'}
  331.     sets.Obi.Dark = {waist='Anrin Obi',back='Twilight Cape'}
  332.  
  333.     sets.staves = {}
  334.     sets.staves.damage = {}
  335.     sets.staves.damage.Thunder = {main="Apamajas I"}
  336.     sets.staves.damage.Fire = {}
  337.     sets.staves.accuracy = {}
  338.     sets.staves.damage.Thunder = {main="Apamajas II"}
  339.     sets.staves.damage.Ice = {}
  340.  
  341.     sets.JA = {}
  342.     sets.JA['Tabula Rasa'] = {legs="Argute Pants +2"}
  343.  
  344.     sets.precast.Arts = {}
  345.     sets.midcast.Regen = {head="Svnt. Bonnet +2"}
  346.  
  347.     sets.Buff = {}
  348.     sets.Buff['Rapture'] = {head="Svnt. Bonnet +2"}
  349.     sets.Buff['Ebullience'] = {head="Svnt. Bonnet +2"}
  350.     sets.Buff['Immanence'] = {hands="Svnt. Bracers +2"}
  351.     sets.Buff['Perpetuance'] = {hands="Svnt. Bracers +2"}
  352.     sets.Buff['Penury'] = {legs="Savant's Pants +2"}
  353.     sets.Buff['Parsimony'] = {legs="Savant's Pants +2"}
  354.     sets.Buff['Alacrity'] = {feet="Argute Loafers +2"}
  355.     sets.Buff['Celerity'] = {feet="Argute Loafers +2"}
  356.  
  357.     -- Variables and notes to myself
  358.     sets.aftercast.Idle = sets.idle.Base
  359.     stuntarg = 'Quixacotl'
  360.     stunmode = 'false'
  361.     Return_Spells = T{'Arts','Bar','Raise','Teleport','Tractor','Warp','Warp II'} -- We don't need to blink when casting these spells.
  362.     send_command('input /macro book 17;wait .1;input /macro set 1')
  363. end
  364.  
  365. function precast(spell,action)
  366.     if Return_Spells:contains(spell.name) or string.find(spell.english,'Teleport') then
  367.         return
  368.     end
  369.  
  370.     if sets.JA[spell.english] then
  371.         equip(sets.JA[spell.english])
  372.     end
  373.    
  374.     if spell.english == 'Stun' then
  375.         cast_delay(0.1)
  376.         equip(sets.precast.Stun)
  377.         if not buffactive.thunderstorm then
  378.             add_to_chat(8,'--------- Thunderstorm is down ---------')
  379.         end
  380.         if not buffactive.klimaform then
  381.             add_to_chat(8,'----------- Klimaform is down -----------')
  382.         end
  383.         if stuntarg ~= 'Shantotto' then
  384.             send_command('@input /t '..stuntarg..' ---- Quixacotl Stunned --- Your next!!! ---- ')
  385.         end
  386.     elseif spell.english == 'Impact' then
  387.             cast_delay(2)
  388.             equip(sets.precast.Impact)
  389.             if not buffactive['elemental seal'] then
  390.                 add_to_chat(8,'--------- Elemental Seal is down ---------')
  391.             end
  392.     elseif string.find(spell.english,'Cur') then
  393.             equip(sets.precast.Cure)
  394.     elseif spell.skill=='ElementalMagic' and spell.casttime < 3 then
  395.             cast_delay(0.1)
  396.             equip(sets.precast.Fastcast)
  397.     else
  398.         equip(sets.precast.Fastcast)
  399.         cast_delay(0.5)
  400.     end
  401. end
  402.  
  403. function midcast(spell,action)
  404.     if Return_Spells:contains(spell.name) or string.find(spell.english,'Teleport') then
  405.         return
  406.     end
  407.  
  408.     if spell.type == 'WhiteMagic' or spell.type == 'BlackMagic' then
  409.         if string.find(spell.english,'Cur') then
  410.             equip(sets.midcast.Cure)
  411.         elseif string.find(spell.english,'storm') then
  412.             equip(sets.midcast.Storm)
  413.         elseif sets.midcast[spell.english] then
  414.             equip(sets.midcast[spell.english])
  415.         elseif sets.midcast[spell.skill] then
  416.             equip(sets.midcast[spell.skill])
  417.         elseif sets.midcast[spell.type] then
  418.             equip(sets.midcast[spell.type])
  419.         elseif spell.english == 'Impact' then
  420.             equip(sets.midcast.Impact)
  421.         else
  422.             equip(sets.midcast)
  423.         end
  424.     end
  425.     Idle()
  426. end
  427.  
  428. function aftercast(spell,action)
  429.     if Return_Spells:contains(spell.name) or string.find(spell.english,'Teleport') then
  430.         return
  431.     end
  432. end
  433.  
  434. function status_change(new,action)
  435.     if new=='Idle' then
  436.         Idle()
  437.     elseif new=='Resting' then
  438.         equip(sets.Resting)
  439.     end
  440. end
  441.  
  442. function buff_change(buff,gain_or_loss)
  443.     if buff == "Sublimation: Activated" then
  444.         add_to_chat(8,'--------- Sublimation buff check Passed ---------') -- for debugging
  445.         Idle()
  446.     end
  447. end
  448.  
  449. function Idle()
  450.     if buffactive['Sublimation: Activated'] then
  451.         add_to_chat(8,'--------- Sublimation buff check 2 Passed ---------') -- for debugging
  452.         equip(sets.idle.Sublimation)
  453.     else
  454.         equip(sets.aftercast.Idle)
  455.     end
  456. end
  457.  
  458. function self_command(command)
  459.     if command == 'idle' then
  460.         Idle()
  461.     elseif command == 'stuntarg' then
  462.             stuntarg = target.name
  463.     elseif command == 'stunmode' then
  464.             windower.add_to_chat(8,'--------- Stun Mode ---------')
  465.                 if sets.aftercast.Idle ~= sets.precast.Stun then
  466.                         stunmode = true
  467.                         sets.aftercast.Idle = sets.precast.Stun
  468.                 else
  469.                         stunmode = false
  470.                         sets.aftercast.Idle = sets.idle.Base
  471.                 end
  472.             Idle()
  473.     end
  474. end
  475.  
  476. -- This function is user defined, but never called by GearSwap itself. It's just a user function that's only called from user functions. I wanted to check the weather and equip a weather-based set for some spells, so it made sense to make a function for it instead of replicating the conditional in multiple places.
  477.  
  478. function weathercheck(spell_element,set)
  479.     if spell_element == world.weather_element or spell_element == world.day_element then
  480.         equip(set,sets['Obi_'..spell_element])
  481.     else
  482.         equip(set)
  483.     end
  484. end
Advertisement
Add Comment
Please, Sign In to add comment