Advertisement
Guest User

Snaps BLM

a guest
Apr 22nd, 2016
382
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 16.53 KB | None | 0 0
  1. -------------------------------------------------------------------------------------------------------------------
  2. -- Setup functions for this job.  Generally should not be modified.
  3. -------------------------------------------------------------------------------------------------------------------
  4.  
  5. -- Initialization function for this job file.
  6. function get_sets()
  7.     mote_include_version = 2
  8.    
  9.     -- Load and initialize the include file.
  10.     include('Mote-Include.lua')
  11. end
  12.  
  13.  
  14. -- Setup vars that are user-independent.  state.Buff vars initialized here will automatically be tracked.
  15. function job_setup()
  16.     state.MagicBurst = M(false, 'Magic Burst')
  17.     state.Spaekona = M(false, 'Spaekona')
  18. end
  19.  
  20. -------------------------------------------------------------------------------------------------------------------
  21. -- User setup functions for this job.  Recommend that these be overridden in a sidecar file.
  22. -------------------------------------------------------------------------------------------------------------------
  23.  
  24. -- Setup vars that are user-dependent.  Can override this function in a sidecar file.
  25. function user_setup()
  26.     state.OffenseMode:options('Normal', 'HighMP')
  27.     state.CastingMode:options('Normal', 'HighMP')
  28.     state.IdleMode:options('Normal', 'HighMP')
  29.  
  30.     -- Additional local binds
  31.     send_command('bind ^` gs c toggle MagicBurst')
  32.     send_command('bind ^1 gs c toggle Spaekona')
  33.     gear.aspir_body = {name="Merlinic Jubbah", augments={'Mag. Acc.+26','"Drain" and "Aspir" potency +11','INT+2','"Mag.Atk.Bns."+6',}}
  34.     gear.aspir_hands = {name="Merlinic Dastanas", augments={'Mag. Acc.+6','"Drain" and "Aspir" potency +11','CHR+10',}}
  35.     gear.aspir_legs = {name="Merlinic Shalwar", augments={'"Mag.Atk.Bns."+25','"Drain" and "Aspir" potency +10','INT+2',}}
  36.     gear.aspir_feet = {name="Merlinic Crackows", augments={'"Mag.Atk.Bns."+14','"Drain" and "Aspir" potency +11','Mag. Acc.+12',}}
  37.     gear.fc_head = {name="Merlinic Hood", augments={'"Mag.Atk.Bns."+26','"Fast Cast"+6','INT+1',}}
  38.     gear.fc_feet = {name="Merlinic Crackows", augments={'Accuracy+13','"Fast Cast"+6','Mag. Acc.+12','"Mag.Atk.Bns."+15',}}
  39.     gear.nuke_head = {name="Merlinic Hood", augments={'Mag. Acc.+23 "Mag.Atk.Bns."+23','INT+7','Mag. Acc.+14','"Mag.Atk.Bns."+15',}}
  40.     gear.nuke_body = {name="Merlinic Jubbah", augments={'Mag. Acc.+25 "Mag.Atk.Bns."+25','Magic burst mdg.+8%','"Mag.Atk.Bns."+14',}}
  41.     gear.nuke_legs = {name="Merlinic Shalwar", augments={'Mag. Acc.+25 "Mag.Atk.Bns."+25','MND+3','"Mag.Atk.Bns."+15',}}
  42.     gear.nuke_feet = {name="Merlinic Crackows", augments={'Mag. Acc.+25 "Mag.Atk.Bns."+25','Magic Damage +2','INT+1','Mag. Acc.+2','"Mag.Atk.Bns."+14',}}
  43.     gear.burst_head = {name="Merlinic Hood", augments={'"Mag.Atk.Bns."+30','Magic burst mdg.+9%','INT+5',}}
  44.     gear.burst_feet = {name="Merlinic Crackows", augments={'"Mag.Atk.Bns."+28','Magic burst mdg.+10%','MND+5','Mag. Acc.+8',}}
  45.     select_default_macro_book()
  46. end
  47.  
  48. -- Called when this job file is unloaded (eg: job change)
  49. function user_unload()
  50.     send_command('unbind ^`')
  51.     send_command('unbind ^1')
  52. end
  53.  
  54. -- Define sets and vars used by this job file.
  55. function init_gear_sets()
  56.     --------------------------------------
  57.     -- Start defining the sets
  58.     --------------------------------------
  59.  
  60.     ---- Idle Sets ----
  61.     sets.idle = {
  62.         ammo={name="Psilomene", priority=15},
  63.         head={name="Hagondes Hat +1", priority=13},
  64.         neck="Loricate Torque +1",
  65.         ear1={name="Etiolation Earring", priority=16},
  66.         ear2="Genmei Earring",
  67.         body={name="Hagondes Coat +1", priority=12},
  68.         hands={name="Hagondes Cuffs +1", priority=10},
  69.         ring1="Defending Ring",
  70.         ring2="Dark Ring",
  71.         back="Umbra Cape",
  72.         waist="Slipor Sash",
  73.         legs={name="Hagondes Pants +1", priority=14},
  74.         feet={name="Hagondes Sabots +1", priority=11},
  75.     }
  76.  
  77.     sets.idle.HighMP = {
  78.         ammo={name="Psilomene", priority=16},
  79.         head={name="Amalric Coif", priority=7},
  80.         neck="Loricate Torque +1",
  81.         ear1={name="Etiolation Earring", priority=15},
  82.         ear2={name="Loquacious Earring", priority=14},
  83.         body={name="Amalric Doublet +1", priority=9},
  84.         hands={name="Amalric Gages +1", priority=10},
  85.         ring1="Defending Ring",
  86.         ring2={name="Dark Ring", priority=8},
  87.         back={name="Bane Cape", priority=11},
  88.         waist="Slipor Sash",
  89.         legs={name="Amalric Slops +1", priority=13},
  90.         feet={name="Amalric Nails +1", priority=12},
  91.     }
  92.  
  93.     ---- Precast Sets ----
  94.     sets.precast.FC = {
  95.         ammo="Impatiens",
  96.         head=gear.fc_head,
  97.         body="Zendik Robe",
  98.         hands={name="Otomi Gloves", priority=16},
  99.         legs="Psycloth Lappas",
  100.         feet=gear.fc_feet,
  101.         neck="Orunmila's Torque",
  102.         waist="Witful Belt",
  103.         left_ear={name="Etiolation Earring", priority=15},
  104.         right_ear="Loquac. Earring",
  105.         left_ring="Lebeche Ring",
  106.         right_ring={name="Rahab Ring", priority=14},
  107.         back="Perimede Cape",
  108.     }
  109.    
  110.     sets.precast.FC.Impact = set_combine(sets.precast.FC, {head=empty, body="Twilight Cloak"})
  111.  
  112.     sets.precast.FC.HighMP = {
  113.         ammo="Impatiens",
  114.         head={name="Amalric Coif", priority=10},
  115.         body={name="Amalric Robe +1", priority=11},
  116.         hands={name="Otomi Gloves", priority=13},
  117.         legs={name="Amalric Slops +1", priority=10},
  118.         feet={name="Amalric Nails +1", priority=17},
  119.         neck={name="Orunmila's Torque", priority=12},
  120.         waist="Witful Belt",
  121.         left_ear={name="Etiolation Earring", priority=16},
  122.         right_ear={name="Loquac. Earring", priority=15},
  123.         left_ring={name="Lebeche Ring", priority=14},
  124.         right_ring={name="Mephitas's Ring +1", priority=8},
  125.         back="Perimede Cape",
  126.     }
  127.  
  128.     sets.precast.FC['Elemental Magic'] = set_combine(sets.precast.FC, {})
  129.     sets.precast.FC['Elemental Magic'].HighMP = set_combine(sets.precast.FC, {})
  130.  
  131.     ---- Midcast Sets ----
  132.     sets.midcast.Myrkr = {
  133.         ammo="Psilomene",
  134.         head="Amalric Coif",
  135.         neck="Dualism Collar +1",
  136.         ear1="Etiolation Earring",
  137.         ear2="Moonshade Earring",
  138.         body="Amalric Doublet +1",
  139.         hands="Otomi Gloves",
  140.         ring1="Persis Ring",
  141.         ring2="Mephitas's Ring +1",
  142.         back="Bane Cape",
  143.         waist="Refoccilation Stone",
  144.         legs="Amalric Slops +1",
  145.         feet="Amalric Nails +1",
  146.     }
  147.  
  148.     sets.midcast.Cure = {
  149.         head="Vanya Hood",
  150.         neck="Nodens Gorget",
  151.         ear1="Novia Earring",
  152.         ear2="Roundel Earring",
  153.         body="Nefer Kalasiris",
  154.         hands="Telchine Gloves",
  155.         ring1="Tamas Ring",
  156.         ring2="Sirona's Ring",
  157.         back="Oretania's Cape",
  158.         waist=gear.ElementalObi,
  159.         legs="Gyve Trousers",
  160.         feet="Amalric Nails +1"
  161.     }
  162.  
  163.     sets.midcast.Curaga = sets.midcast.Cure
  164.  
  165.     sets.midcast.Stoneskin = {
  166.         ammo={name="Psilomene", priority=15},
  167.         neck={name="Nodens Gorget", priority=12},
  168.         ear2="Earthcry Earring",
  169.         waist="Siegel Sash",
  170.         legs="Shedir Seraweels",
  171.     }
  172.  
  173.     sets.midcast.Stoneskin.HighMP = set_combine(sets.midcast.Stoneskin, {
  174.         body={name="Amalric Doublet +1", priority=11},
  175.         back={name="Bane Cape", priority=10}
  176.     })
  177.    
  178.     sets.midcast.Aquaveil = {
  179.         head={name="Amalric Coif", priority=12},
  180.         neck="Incanter's Torque",
  181.         waist="Emphatikos Rope",
  182.         legs="Shedir Seraweels",
  183.     }
  184.    
  185.     sets.midcast.Aquaveil.HighMP = set_combine(sets.midcast.Aquaveil, {
  186.         body={name="Amalric Doublet +1", priority=11},
  187.         back={name="Bane Cape", priority=10},
  188.     })
  189.  
  190.     sets.midcast['Enfeebling Magic'] = {
  191.         ammo="Pemphredo Tathlum",
  192.         head=gear.nuke_head,
  193.         body="Zendik Robe",
  194.         hands="Hagondes Cuffs +1",
  195.         legs=gear.nuke_legs,
  196.         feet=gear.nuke_feet,
  197.         neck="Incanter's Torque",
  198.         waist="Luminary Sash",
  199.         left_ear="Barkaro. Earring",
  200.         right_ear="Digni. Earring",
  201.         left_ring="Persis Ring",
  202.         right_ring="Vertigo Ring",
  203.         back="Taranus's Cape",
  204.     }
  205.  
  206.     sets.midcast.Aspir = {
  207.         ammo="Pemphredo Tathlum",
  208.         head="Pixie Hairpin +1",
  209.         body=gear.aspir_body,
  210.         hands=gear.aspir_hands,
  211.         legs=gear.aspir_legs,
  212.         feet=gear.aspir_feet,
  213.         neck="Incanter's Torque",
  214.         waist=gear.ElementalObi,
  215.         left_ear="Hirudinea Earring",
  216.         right_ear="Dark Earring",
  217.         left_ring="Evanescence Ring",
  218.         right_ring="Archon Ring",
  219.         back="Bane Cape",
  220.     }
  221.  
  222.     sets.midcast.Aspir.HighMP = {
  223.         ammo={name="Psilomene", priority=15},
  224.         head={name="Pixie Hairpin +1", priority=14},
  225.         body={name="Amalric Doublet +1", priority=13},
  226.         hands={name="Amalric Gages +1"},
  227.         legs={name="Amalric Slops +1", priority=12},
  228.         feet=gear.aspir_feet,
  229.         neck="Incanter's Torque",
  230.         waist=gear.ElementalObi,
  231.         left_ear={name="Etiolation Earring", priority=16},
  232.         right_ear="Dark Earring",
  233.         left_ring="Evanescence Ring",
  234.         right_ring="Archon Ring",
  235.         back={name="Bane Cape", priority=11},
  236.     }
  237.  
  238.     sets.midcast.Drain = sets.midcast.Aspir
  239.  
  240.     sets.midcast['Elemental Magic'] = {
  241.         ammo="Pemphredo Tathlum",
  242.         head=gear.nuke_head,
  243.         body="Amalric Doublet +1",
  244.         hands="Amalric Gages +1",
  245.         legs="Amalric Slops +1",
  246.         feet="Amalric Nails +1",
  247.         neck="Saevus Pendant +1",
  248.         waist=gear.ElementalObi,
  249.         left_ear="Barkaro. Earring",
  250.         right_ear="Friomisi Earring",
  251.         left_ring="Shiva Ring +1",
  252.         right_ring="Shiva Ring +1",
  253.         back="Taranus's Cape",
  254.     }
  255.  
  256.     sets.midcast.Impact = {
  257.         ammo="Seraphic Ampulla",
  258.         body="Twilight Cloak",
  259.         hands={name="Merlinic Dastanas", augments={'Mag. Acc.+9','"Occult Acumen"+10','INT+6','"Mag.Atk.Bns."+4',}},
  260.         legs="Perdition Slops",
  261.         feet={name="Merlinic Crackows", augments={'Mag. Acc.+30','"Occult Acumen"+11','"Mag.Atk.Bns."+1',}},
  262.         neck="Combatant's Torque",
  263.         waist="Oneiros Rope",
  264.         left_ear="Dedition Earring",
  265.         right_ear="Telos Earring",
  266.         left_ring="Petrov Ring",
  267.         right_ring="Rajas Ring",
  268.         back="Taranus's Cape",
  269.     }
  270.        
  271.     sets.midcast['Elemental Magic'].Comet = set_combine(sets.midcast['Elemental Magic'], {
  272.         head="Pixie Hairpin +1",
  273.         left_ring="Archon Ring",
  274.     })
  275.  
  276.     sets.midcast.ElementalEnfeeble = sets.midcast['Elemental Magic']
  277.  
  278.     sets.midcast.Death = {
  279.         ammo="Pemphredo Tathlum",
  280.         head="Pixie Hairpin +1",
  281.         body=gear.nuke_body,
  282.         hands="Amalric Gages +1",
  283.         legs="Amalric Slops +1",
  284.         feet="Amalric Nails +1",
  285.         neck="Saevus Pendant +1",
  286.         waist=gear.ElementalObi,
  287.         left_ear="Barkaro. Earring",
  288.         right_ear="Friomisi Earring",
  289.         left_ring="Archon Ring",
  290.         right_ring="Strendu Ring",
  291.         back="Taranus's Cape",
  292.     }
  293.  
  294.     sets.midcast.Death.HighMP = {
  295.         ammo="Psilomene",
  296.         head="Pixie Hairpin +1",
  297.         body="Amalric Doublet +1",
  298.         hands="Amalric Gages +1",
  299.         legs="Amalric Slops +1",
  300.         feet="Amalric Nails +1",
  301.         neck="Saevus Pendant +1",
  302.         waist=gear.ElementalObi,
  303.         left_ear="Barkaro. Earring",
  304.         right_ear="Friomisi Earring",
  305.         left_ring="Archon Ring",
  306.         right_ring="Mephitas's Ring +1",
  307.         back="Taranus's Cape",
  308.     }
  309.    
  310.     sets.midcast.Stun = {
  311.         ammo="Pemphredo Tathlum",
  312.         head=gear.nuke_head,
  313.         body="Zendik Robe",
  314.         hands="Hagondes Cuffs +1",
  315.         legs=gear.nuke_legs,
  316.         feet=gear.nuke_feet,
  317.         neck="Incanter's Torque",
  318.         waist="Refoccilation Stone",
  319.         left_ear="Barkaro. Earring",
  320.         right_ear="Digni. Earring",
  321.         left_ring="Evanescence Ring",
  322.         right_ring="Vertigo Ring",
  323.         back="Taranus's Cape",
  324.     }
  325.  
  326.     ---- Magic Burst Sets ----
  327.     sets.magic_burst = {}
  328.     sets.magic_burst['Elemental Magic'] = {
  329.         head=gear.burst_head,
  330.         neck="Mizukage-no-Kubikazari",
  331.         ear2="Static Earring",
  332.         ring1="Mujin Band",
  333.         ring2="Locus Ring",
  334.         back="Taranus's Cape"
  335.     }
  336.    
  337.     sets.magic_burst['Elemental Magic'].Comet = {
  338.         neck="Mizukage-no-Kubikazari",
  339.         ear2="Static Earring",
  340.         ring2="Locus Ring",
  341.         back="Taranus's Cape"
  342.     }
  343.  
  344.     sets.magic_burst.Death = {
  345.         neck="Mizukage-no-Kubikazari",
  346.         ear2="Static Earring",
  347.         ring2="Locus Ring",
  348.     }
  349.  
  350.     sets.magic_burst.Death.HighMP = {
  351.         neck="Mizukage-no-Kubikazari",
  352.         ear2="Static Earring",
  353.     }
  354.    
  355.     sets.magic_burst.Aspir = {
  356.         neck="Mizukage-no-Kubikazari",
  357.         ear2="Static Earring",
  358.         back="Taranus's Cape",
  359.     }
  360.    
  361.     sets.magic_burst.Aspir.HighMP = {
  362.         neck="Mizukage-no-Kubikazari",
  363.         ear2="Static Earring",
  364.     }
  365.  
  366.     -- Engaged sets
  367.     sets.engaged = sets.idle
  368.     sets.engaged.HighMP = sets.idle.HighMP
  369.  
  370.     sets.Kiting = {feet="Herald's Gaiters"}
  371. end
  372.  
  373. -------------------------------------------------------------------------------------------------------------------
  374. -- Job-specific hooks for standard casting events.
  375. -------------------------------------------------------------------------------------------------------------------
  376.  
  377. -- Set eventArgs.handled to true if we don't want any automatic gear equipping to be done.
  378. -- Set eventArgs.useMidcastGear to true if we want midcast gear equipped on precast.
  379. function job_precast(spell, action, spellMap, eventArgs)
  380.     if spellMap == 'Cure' or spellMap == 'Curaga' then
  381.         gear.default.obi_waist = "Pythia Sash"
  382.     elseif spell.skill == 'Elemental Magic' or spell.name == 'Death' and (not spell.name == 'Impact') then
  383.         gear.default.obi_waist = "Refoccilation Stone"
  384.     elseif spellMap == 'Aspir' or spellMap == 'Drain' then
  385.         gear.default.obi_waist = "Fucho-no-Obi"
  386.     end
  387. end
  388.  
  389. function job_post_midcast(spell, action, spellMap, eventArgs)
  390.     if state.MagicBurst.value and not (spell.name == 'Impact') then
  391.         if spell.skill == 'Elemental Magic' then
  392.             if spell.name == 'Comet' then
  393.                 equip(sets.magic_burst['Elemental Magic'].Comet)
  394.             else
  395.                 equip(sets.magic_burst['Elemental Magic'])
  396.             end
  397.         elseif spell.name == 'Death' then
  398.             if state.CastingMode.current == 'Normal' then
  399.                 equip(sets.magic_burst.Death)
  400.             else
  401.                 equip(sets.magic_burst.Death.HighMP)
  402.             end
  403.         end
  404.         if spellMap == 'Aspir' or spellMap == 'Drain' then
  405.             if state.CastingMode.current == 'Normal' then
  406.                 equip(sets.magic_burst.Aspir)
  407.             else
  408.                 equip(sets.magic_burst.Aspir.HighMP)
  409.             end
  410.         end
  411.     end
  412.     if spell.skill == 'Elemental Magic' and state.Spaekona.value and not (spell.name == 'Impact') then
  413.         equip({body="Spaekona's Coat +1"})
  414.     end
  415. end
  416.  
  417. -------------------------------------------------------------------------------------------------------------------
  418. -- Job-specific hooks for non-casting events.
  419. -------------------------------------------------------------------------------------------------------------------
  420.  
  421. function job_buff_change(buff, gain)
  422.     if buff == "Mana Wall" then
  423.         handle_equipping_gear(player.status)
  424.     end
  425. end
  426.  
  427. -------------------------------------------------------------------------------------------------------------------
  428. -- User code that supplements standard library decisions.
  429. -------------------------------------------------------------------------------------------------------------------
  430.  
  431. function customize_idle_set(idleSet)
  432.     if buffactive['Mana Wall'] then
  433.         return set_combine(idleSet, {feet='Wicce Sabots +1', back="Taranus's Cape"})
  434.     else
  435.         return idleSet
  436.     end
  437. end
  438.  
  439. function customize_melee_set(meleeSet)
  440.     if buffactive['Mana Wall'] then
  441.         return set_combine(meleeSet, {feet='Wicce Sabots +1', back="Taranus's Cape"})
  442.     else
  443.         return meleeSet
  444.     end
  445. end
  446.  
  447. -- Function to display the current relevant user state when doing an update.
  448. function display_current_job_state(eventArgs)
  449.     display_current_caster_state()
  450.     eventArgs.handled = true
  451. end
  452.  
  453. -------------------------------------------------------------------------------------------------------------------
  454. -- Utility functions specific to this job.
  455. -------------------------------------------------------------------------------------------------------------------
  456.  
  457. -- Select default macro book on initial load or subjob change.
  458. function select_default_macro_book()
  459.     set_macro_page(1, 15)
  460. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement