Guest User

Kincard BLM

a guest
Mar 28th, 2016
176
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 24.40 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.     -- Load organizer add on to grab all gear associated with <span class="shl">lua</span>.
  12.     include('organizer-lib')
  13. end
  14.  
  15.  
  16. -- Setup vars that are user-independent.  state.Buff vars initialized here will automatically be tracked.
  17. function job_setup()
  18.  
  19. end
  20.  
  21. -------------------------------------------------------------------------------------------------------------------
  22. -- User setup functions for this job.  Recommend that these be overridden in a sidecar file.
  23. -------------------------------------------------------------------------------------------------------------------
  24.  
  25. -- Setup vars that are user-dependent.  Can override this function in a sidecar file.
  26. function user_setup()
  27.     state.OffenseMode:options('None', 'Normal')
  28.     state.CastingMode:options('Normal', 'Resistant', 'TP')
  29.     state.IdleMode:options('Normal', 'PDT')
  30.     state.MagicBurst = M(false, 'Magic Burst')
  31.     state.Spaekona = M(false, 'Spaekona')
  32.     state.Capacity = M(false, 'Capacity')
  33.      
  34.     lowTierNukes = S{'Stone', 'Water', 'Aero', 'Fire', 'Blizzard', 'Thunder',
  35.                     'Stone II', 'Water II', 'Aero II', 'Fire II', 'Blizzard II', 'Thunder II',
  36.                     'Stone III', 'Water III', 'Aero III', 'Fire III', 'Blizzard III', 'Thunder III',
  37.                     'Stonega', 'Waterga', 'Aeroga', 'Firaga', 'Blizzaga', 'Thundaga',
  38.                     'Stonega II', 'Waterga II', 'Aeroga II', 'Firaga II', 'Blizzaga II', 'Thundaga II'}
  39.      
  40.     -- Additional local binds
  41.     send_command('bind ^` input /ma Stun <t>;input /echo Target <t> Stunned')
  42.     send_command('bind @` gs c toggle MagicBurst')
  43.     send_command('bind !` gs c toggle Capacity')
  44.  
  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 @`')
  52.     send_command('unbind !`')
  53. end
  54.  
  55.  
  56. -- Define sets and vars used by this job file.
  57. function init_gear_sets()
  58. -------------------------------------------------------------------------------------------------------------------
  59. -- Start defining the sets
  60. -------------------------------------------------------------------------------------------------------------------
  61.                                                                          
  62. -- Weaponskill sets
  63.     -- Default set for any weaponskill that isn't any more specifically defined
  64.     sets.precast.WS =                                                       {
  65.     main={ammo="Ghastly Tathlum +1",
  66.     head="Welkin Crown",
  67.     body={ name="Psycloth Vest", augments={'Elem. magic skill +20','INT+7','Enmity-6',}},
  68.     hands={ name="Amalric Gages", augments={'INT+10','Mag. Acc.+15','"Mag.Atk.Bns."+15',}},
  69.     legs={ name="Merlinic Shalwar", augments={'Mag. Acc.+23 "Mag.Atk.Bns."+23','INT+6','Mag. Acc.+9','"Mag.Atk.Bns."+10',}},
  70.     feet={ name="Merlinic Crackows", augments={'Mag. Acc.+11 "Mag.Atk.Bns."+11','Magic burst mdg.+8%','INT+9','"Mag.Atk.Bns."+12',}},
  71.     neck="Fotia Gorget",
  72.     waist="Fotia Belt",
  73.     left_ear="Hecate's Earring",
  74.     right_ear="Friomisi Earring",
  75.     left_ring="Acumen Ring",
  76.     right_ring="Strendu Ring",
  77.     back="Toro Cape"}}
  78.                                                                              
  79. -- Specific weaponskill sets.  Uses the base set if an appropriate WSMod version isn't found.
  80.     -- Rock Crusher Modifiers: STR:20% INT:20% --      
  81.     sets.precast.WS['Rock Crusher'] =                                       set_combine(sets.precast.WS,{})
  82.                                                                              
  83.     -- Spirit Taker Modifiers: INT:50% MND:50% --
  84.     sets.precast.WS['Spirit Taker'] =                                       set_combine(sets.precast.WS,{})
  85.                                                                              
  86.     -- Cataclysm Modifiers: STR:30% INT:30% --
  87.     sets.precast.WS['Cataclysm'] =                                          set_combine(sets.precast.WS,{})
  88.                                                                              
  89.     -- Retribution Modifiers: STR:30%; MND:50% --
  90.     sets.precast.WS['Retribution'] =                                        set_combine(sets.precast.WS,{})
  91.                                                                              
  92.     -- Gate of Tartarus Modifiers: INT:80% --
  93.     sets.precast.WS['Gate of Tartarus'] =                                   set_combine(sets.precast.WS,{
  94.                                                                             })
  95.                                                                              
  96.     -- Myrkr Modifiers: None --
  97.     sets.precast.WS['Myrkr'] =                                              set_combine(sets.precast.WS,{ammo="Ghastly Tathlum +1",
  98.     head="Nahtirah Hat",
  99.     body={ name="Witching Robe", augments={'MP+45','Mag. Acc.+14','"Mag.Atk.Bns."+14',}},
  100.     hands={ name="Telchine Gloves", augments={'DEF+6','"Dbl.Atk."+3',}},
  101.     legs={ name="Psycloth Lappas", augments={'MP+80','Mag. Acc.+15','"Fast Cast"+7',}},
  102.     feet={ name="Medium's Sabots", augments={'MP+45','MND+9','"Conserve MP"+5','"Cure" potency +4%',}},
  103.     neck="Sanctity Necklace",
  104.     waist="Fucho-no-Obi",
  105.     left_ear="Loquac. Earring",
  106.     left_ring="Etana Ring",
  107.     right_ring={ name="Dark Ring", augments={'Breath dmg. taken -4%','Phys. dmg. taken -4%','Magic dmg. taken -4%',}},
  108.     back={ name="Bane Cape", augments={'Elem. magic skill +10','Dark magic skill +8','"Mag.Atk.Bns."+3',}}})
  109.                                                                              
  110.     -- Shattersoul Modifiers: INT:20~100%, depending on merit points upgrades. --
  111.     sets.precast.WS['Shattersoul'] =                                        set_combine(sets.precast.WS,{})
  112.                                                                              
  113. -- Precast sets
  114.     -- Precast sets to enhance JAs
  115.     sets.precast.JA['Mana Wall'] =                                          {}
  116.      
  117.     sets.precast.JA['Manafont'] =                                           {}
  118.      
  119.  
  120.     -- Fast cast sets for spells
  121.     sets.precast.FC =                                                       {
  122.     ammo="Impatiens",
  123.     head="Nahtirah Hat",
  124.     body="Vrikodara Jupon",
  125.     hands={ name="Amalric Gages", augments={'INT+10','Mag. Acc.+15','"Mag.Atk.Bns."+15',}},
  126.     legs={ name="Psycloth Lappas", augments={'MP+80','Mag. Acc.+15','"Fast Cast"+7',}},
  127.     feet={ name="Merlinic Crackows", augments={'Mag. Acc.+11 "Mag.Atk.Bns."+11','Magic burst mdg.+8%','INT+9','"Mag.Atk.Bns."+12',}},
  128.     neck="Orunmila's Torque",
  129.     waist="Witful Belt",
  130.     left_ear="Loquac. Earring",
  131.     right_ear="Friomisi Earring",
  132.     left_ring="Weather. Ring",
  133.     right_ring="Lebeche Ring",
  134.     back="Swith Cape"}
  135.                                                                              
  136.     -- Stoneskin
  137.     sets.precast.Stoneskin =                                                set_combine(sets.precast.FC,{waist="Siegel Sash"})
  138.      
  139.     -- Cure Magic
  140.     sets.precast.Cure =                                                     set_combine(sets.precast.FC,{})
  141.      
  142.     -- Elemental Magic
  143.     sets.precast.FCElementalMagic =                                         set_combine(sets.precast.FC,{})
  144.      
  145.     -- Ancient Magic
  146.     sets.precast.AncientMagic =                                             set_combine(sets.precast.FCElementalMagic,{})
  147.                                                      
  148. -- Midcast Sets
  149.     -- Day Weather Bonus
  150.     sets.midcast.Bonus =                                                    {waist="Hachirin-no-Obi",back="Twilight Cape"}
  151.                                                          
  152.     -- Fastrecast
  153.     sets.midcast.FastRecast =                                               {
  154.     ammo="Ghastly Tathlum +1",
  155.     head="Nahtirah Hat",
  156.     body="Vrikodara Jupon",
  157.     hands={ name="Amalric Gages", augments={'INT+10','Mag. Acc.+15','"Mag.Atk.Bns."+15',}},
  158.     legs={ name="Psycloth Lappas", augments={'MP+80','Mag. Acc.+15','"Fast Cast"+7',}},
  159.     feet={ name="Merlinic Crackows", augments={'Mag. Acc.+11 "Mag.Atk.Bns."+11','Magic burst mdg.+8%','INT+9','"Mag.Atk.Bns."+12',}},
  160.     neck="Orunmila's Torque",
  161.     waist="Witful Belt",
  162.     left_ear="Loquac. Earring",
  163.     right_ear="Friomisi Earring",
  164.     left_ring="Weather. Ring",
  165.     right_ring="Lebeche Ring",
  166.     back="Swith Cape"}
  167.      
  168.     -- Cure
  169.     sets.midcast.Cure =                                                     {
  170.     ammo="Hydrocera",
  171.     head="Nahtirah Hat",
  172.     body="Vrikodara Jupon",
  173.     hands={ name="Telchine Gloves", augments={'DEF+6','"Dbl.Atk."+3',}},
  174.     legs={ name="Psycloth Lappas", augments={'MP+80','Mag. Acc.+15','"Fast Cast"+7',}},
  175.     feet={ name="Medium's Sabots", augments={'MP+45','MND+9','"Conserve MP"+5','"Cure" potency +4%',}},
  176.     neck="Incanter's Torque",
  177.     waist="Gishdubar Sash",
  178.     left_ear="Loquac. Earring",
  179.     right_ear="Roundel Earring",
  180.     left_ring="Weather. Ring",
  181.     right_ring="Lebeche Ring",
  182.     back="Solemnity Cape"}
  183.  
  184.     sets.midcast.Curaga =                                                   sets.midcast.Cure
  185.                                                                              
  186.     sets.midcast['Enhancing Magic'] =                                       set_combine(sets.midcast.FastRecast,{neck="Incanter's Torque"})
  187.  
  188.     sets.midcast['Enhancing Magic'].Stoneskin =                             set_combine(sets.midcast['Enhancing Magic'],{waist="Siegel Sash"})
  189.                                                                              
  190.     sets.midcast['Enhancing Magic'].Aquaveil =                              set_combine(sets.midcast['Enhancing Magic'],{})                                                                        
  191.  
  192.  
  193.     sets.midcast['Enfeebling Magic'] =                                      {
  194.     ammo="Hydrocera",
  195.     head={ name="Helios Band", augments={'Mag. Acc.+18 "Mag.Atk.Bns."+18','Magic crit. hit rate +3','MND+4',}},
  196.     body="Spae. Coat +1",
  197.     hands={ name="Amalric Gages", augments={'INT+10','Mag. Acc.+15','"Mag.Atk.Bns."+15',}},
  198.     legs={ name="Psycloth Lappas", augments={'MP+80','Mag. Acc.+15','"Fast Cast"+7',}},
  199.     feet={ name="Medium's Sabots", augments={'MP+45','MND+9','"Conserve MP"+5','"Cure" potency +4%',}},
  200.     neck="Incanter's Torque",
  201.     waist="Salire Belt",
  202.     left_ear="Loquac. Earring",
  203.     right_ear="Friomisi Earring",
  204.     left_ring="Weather. Ring",
  205.     right_ring="Etana Ring",
  206.     back={ name="Bane Cape", augments={'Elem. magic skill +10','Dark magic skill +8','"Mag.Atk.Bns."+3',}}}
  207.                                                                              
  208.     sets.midcast['Enfeebling Magic'].Mnd =                                  set_combine(sets.midcast['Enfeebling Magic'],{})
  209.        
  210.     sets.midcast.ElementalEnfeeble =                                        sets.midcast['Enfeebling Magic']
  211.  
  212.     sets.midcast['Dark Magic'] =                                            {
  213.     ammo="Ghastly Tathlum +1",
  214.     head={ name="Helios Band", augments={'Mag. Acc.+18 "Mag.Atk.Bns."+18','Magic crit. hit rate +3','MND+4',}},
  215.     body={ name="Psycloth Vest", augments={'Elem. magic skill +20','INT+7','Enmity-6',}},
  216.     hands={ name="Amalric Gages", augments={'INT+10','Mag. Acc.+15','"Mag.Atk.Bns."+15',}},
  217.     legs="Spae. Tonban +1",
  218.     feet={ name="Merlinic Crackows", augments={'Mag. Acc.+11 "Mag.Atk.Bns."+11','Magic burst mdg.+8%','INT+9','"Mag.Atk.Bns."+12',}},
  219.     neck="Incanter's Torque",
  220.     waist="Salire Belt",
  221.     left_ear="Loquac. Earring",
  222.     right_ear="Friomisi Earring",
  223.     left_ring="Weather. Ring",
  224.     right_ring="Etana Ring",
  225.     back={ name="Bane Cape", augments={'Elem. magic skill +10','Dark magic skill +8','"Mag.Atk.Bns."+3',}}}
  226.                                                                              
  227.     sets.midcast['Dark Magic'].Drain =                                      set_combine(sets.midcast['Dark Magic'],{right_ring="Excelsis Ring",waist="Fucho-no-Obi"})
  228.                                                                              
  229.     sets.midcast['Dark Magic'].Aspir =                                      sets.midcast['Dark Magic'].Drain                                        
  230.                                                                              
  231.  
  232.     sets.midcast['Dark Magic'].Stun =                                       set_combine(sets.midcast['Dark Magic'],{})
  233.  
  234.     -- Elemental Magic sets
  235.     sets.midcast.LowTierNuke =                                              {
  236.     ammo="Ghastly Tathlum +1",
  237.     head="Welkin Crown",
  238.     body={ name="Psycloth Vest", augments={'Elem. magic skill +20','INT+7','Enmity-6',}},
  239.     hands={ name="Amalric Gages", augments={'INT+10','Mag. Acc.+15','"Mag.Atk.Bns."+15',}},
  240.     legs={ name="Merlinic Shalwar", augments={'Mag. Acc.+23 "Mag.Atk.Bns."+23','INT+6','Mag. Acc.+9','"Mag.Atk.Bns."+10',}},
  241.     feet={ name="Merlinic Crackows", augments={'Mag. Acc.+11 "Mag.Atk.Bns."+11','Magic burst mdg.+8%','INT+9','"Mag.Atk.Bns."+12',}},
  242.     neck="Sanctity Necklace",
  243.     waist="Salire Belt",
  244.     left_ear="Hecate's Earring",
  245.     right_ear="Friomisi Earring",
  246.     left_ring="Acumen Ring",
  247.     right_ring="Strendu Ring",
  248.     back={ name="Bane Cape", augments={'Elem. magic skill +10','Dark magic skill +8','"Mag.Atk.Bns."+3',}}}
  249.  
  250.     sets.midcast.LowTierNuke.Resistant =                                    {
  251.     ammo="Ghastly Tathlum +1",
  252.     head="Welkin Crown",
  253.     body={ name="Psycloth Vest", augments={'Elem. magic skill +20','INT+7','Enmity-6',}},
  254.     hands={ name="Amalric Gages", augments={'INT+10','Mag. Acc.+15','"Mag.Atk.Bns."+15',}},
  255.     legs={ name="Merlinic Shalwar", augments={'Mag. Acc.+23 "Mag.Atk.Bns."+23','INT+6','Mag. Acc.+9','"Mag.Atk.Bns."+10',}},
  256.     feet={ name="Merlinic Crackows", augments={'Mag. Acc.+11 "Mag.Atk.Bns."+11','Magic burst mdg.+8%','INT+9','"Mag.Atk.Bns."+12',}},
  257.     neck="Sanctity Necklace",
  258.     waist="Salire Belt",
  259.     left_ear="Hecate's Earring",
  260.     right_ear="Friomisi Earring",
  261.     left_ring="Acumen Ring",
  262.     right_ring="Strendu Ring",
  263.     back={ name="Bane Cape", augments={'Elem. magic skill +10','Dark magic skill +8','"Mag.Atk.Bns."+3',}}}
  264.  
  265.     sets.midcast.TP =                                                       {}                                                                          
  266.                                                                              
  267.     sets.midcast.HighTierNuke =                                             set_combine(sets.midcast.LowTierNuke,{
  268.     back="Toro Cape"})
  269.                                                                              
  270.     sets.midcast.HighTierNuke.Resistant =                                   set_combine(sets.midcast.LowTierNuke.Resistant,{
  271.     back="Toro Cape"})
  272.      
  273. -- Sets to return to when not performing an action.
  274.     -- Resting sets
  275.     sets.resting =                                                          {
  276.     ammo="Ghastly Tathlum +1",
  277.     head="Hike Khat +1",
  278.     body="Vrikodara Jupon",
  279.     hands={ name="Amalric Gages", augments={'INT+10','Mag. Acc.+15','"Mag.Atk.Bns."+15',}},
  280.     legs="Assid. Pants +1",
  281.     feet={ name="Merlinic Crackows", augments={'Mag. Acc.+11 "Mag.Atk.Bns."+11','Magic burst mdg.+8%','INT+9','"Mag.Atk.Bns."+12',}},
  282.     neck="Twilight Torque",
  283.     waist="Slipor Sash",
  284.     left_ear="Ethereal Earring",
  285.     right_ear="Spellbr. Earring",
  286.     left_ring="Defending Ring",
  287.     right_ring={ name="Dark Ring", augments={'Breath dmg. taken -4%','Phys. dmg. taken -4%','Magic dmg. taken -4%',}},
  288.     back="Solemnity Cape"}
  289.      
  290.     -- Idle sets
  291.      
  292.     -- Normal refresh idle set
  293.     sets.idle =                                                             {
  294.     main={
  295.     ammo="Ghastly Tathlum +1",
  296.     head="Hike Khat +1",
  297.     body="Vrikodara Jupon",
  298.     hands={ name="Amalric Gages", augments={'INT+10','Mag. Acc.+15','"Mag.Atk.Bns."+15',}},
  299.     legs="Assid. Pants +1",
  300.     feet={ name="Merlinic Crackows", augments={'Mag. Acc.+11 "Mag.Atk.Bns."+11','Magic burst mdg.+8%','INT+9','"Mag.Atk.Bns."+12',}},
  301.     neck="Twilight Torque",
  302.     waist="Slipor Sash",
  303.     left_ear="Ethereal Earring",
  304.     right_ear="Spellbr. Earring",
  305.     left_ring="Defending Ring",
  306.     right_ring={ name="Dark Ring", augments={'Breath dmg. taken -4%','Phys. dmg. taken -4%','Magic dmg. taken -4%',}},
  307.     back="Solemnity Cape"}}
  308.  
  309.     -- Idle mode that keeps PDT gear on, but doesn't prevent normal gear swaps for precast/etc.
  310.     sets.idle.PDT =                                                         {
  311.     main={
  312.     ammo="Ghastly Tathlum +1",
  313.     head="Hike Khat +1",
  314.     body="Vrikodara Jupon",
  315.     hands={ name="Amalric Gages", augments={'INT+10','Mag. Acc.+15','"Mag.Atk.Bns."+15',}},
  316.     legs="Assid. Pants +1",
  317.     feet={ name="Merlinic Crackows", augments={'Mag. Acc.+11 "Mag.Atk.Bns."+11','Magic burst mdg.+8%','INT+9','"Mag.Atk.Bns."+12',}},
  318.     neck="Twilight Torque",
  319.     waist="Slipor Sash",
  320.     left_ear="Ethereal Earring",
  321.     right_ear="Spellbr. Earring",
  322.     left_ring="Defending Ring",
  323.     right_ring={ name="Dark Ring", augments={'Breath dmg. taken -4%','Phys. dmg. taken -4%','Magic dmg. taken -4%',}},
  324.     back="Solemnity Cape"}}
  325.  
  326.     -- Idle mode when weak.
  327.     sets.idle.Weak =                                                        sets.idle.PDT
  328.      
  329.     -- Town gear.
  330.     sets.idle.Town =                                                        set_combine(sets.idle,{})
  331.          
  332.     -- Defense sets
  333.  
  334.     sets.defense.PDT =                                                      set_combine(sets.resting,{})
  335.  
  336.     sets.defense.MDT =                                                      set_combine(sets.resting,{})
  337.  
  338.     sets.Kiting =                                                           {}
  339.  
  340.     sets.latent_refresh =                                                   {}
  341.  
  342.     -- Buff sets: Gear that needs to be worn to actively enhance a current player buff.
  343.      
  344.     sets.buff['Mana Wall'] =                                                {}
  345.  
  346.     sets.magic_burst =                                                      {
  347.     neck="Mizu. Kubikazari",
  348.     left_ring="Locus Ring",
  349.     right_ring="Mujin Band"}
  350.  
  351.     -- Engaged sets
  352.  
  353.     -- Variations for TP weapon and (optional) offense/defense modes.  Code will fall back on previous
  354.     -- sets if more refined versions aren't defined.
  355.     -- If you create a set with both offense and defense modes, the offense mode should be first.
  356.     -- EG: sets.engaged.Dagger.Accuracy.Evasion
  357.      
  358.     -- Normal melee group
  359.     sets.engaged =                                                          {}
  360. end
  361.  
  362. -------------------------------------------------------------------------------------------------------------------
  363. -- Job-specific hooks for standard casting events.
  364. -------------------------------------------------------------------------------------------------------------------
  365.  
  366. -- Set eventArgs.handled to true if we don't want any automatic gear equipping to be done.
  367. -- Set eventArgs.useMidcastGear to true if we want midcast gear equipped on precast.
  368.  
  369. function job_precast(spell, action, spellMap, eventArgs)
  370.     if player.tp > 1000 then
  371.         disable('main','sub')
  372.     elseif (spellMap == 'Cure' or spellMap == 'Curaga') then
  373.         equip(sets.precast.Cure)
  374.         if (world.weather_element == 'Light' or world.day_element == 'Light') then
  375.             equip({waist="Hachirin-no-Obi",back="Twilight Cape"})
  376.         end
  377.     elseif spellMap == 'Freeze II' or spellMap == 'Tornado II' or spellMap == 'Quake II' or spellMap == 'Burst II' or spellMap == 'Flood II' or spellMap == 'Flare II' then
  378.         equip(sets.precast.AncientMagic)
  379.     elseif spellMap == 'Stoneskin' then
  380.         equip(sets.precast.Stoneskin)
  381.     elseif spell.skill == 'Elemental Magic' then
  382.         equip(sets.precast.FCElementalMagic)
  383.     end
  384. end
  385.  
  386. -- Set eventArgs.handled to true if we don't want any automatic gear equipping to be done.
  387. function job_midcast(spell, action, spellMap, eventArgs)
  388.     if spell.skill == 'Elemental Magic' and (spell.element == world.weather_element or spell.element == world.day_element) then
  389.         equip(sets.midcast.Bonus)
  390.     elseif spellMap == 'Slow' or spellMap == 'Silence' or spellMap == 'Paralyze' then
  391.         equip(sets.midcast['Enfeebling Magic'].Mnd)
  392.     end
  393. end
  394.  
  395. function job_post_midcast(spell, action, spellMap, eventArgs)
  396.     if spell.skill == 'Elemental Magic' and state.MagicBurst.value then
  397.         equip(sets.magic_burst)
  398.     end
  399. end
  400.  
  401. function job_post_midcast(spell, action, spellMap, eventArgs)
  402.     if spell.skill == 'Elemental Magic' and state.Spaekona.value then
  403.         equip({body="Spae. Coat +1"})
  404.     end
  405. end
  406.  
  407. function job_aftercast(spell, action, spellMap, eventArgs)
  408.     if player.tp < 1000 then
  409.         enable('main','sub')
  410.     elseif not spell.interrupted then
  411.         if spell.english == 'Mana Wall' then
  412.             enable('feet')
  413.             equip(sets.buff['Mana Wall'])
  414.             disable('feet')
  415.         elseif spell.english == 'Sleep' or spell.english == 'Sleepga' then
  416.             send_command('@wait 55;input /echo ------- '..spell.english..' is wearing off in 5 seconds -------')
  417.         elseif spell.english == 'Sleep II' or spell.english == 'Sleepga II' then
  418.             send_command('@wait 85;input /echo ------- '..spell.english..' is wearing off in 5 seconds -------')
  419.         elseif spell.english == 'Break' or spell.english == 'Breakga' then
  420.             send_command('@wait 25;input /echo ------- '..spell.english..' is wearing off in 5 seconds -------')
  421.         end
  422.     end
  423. end
  424.  
  425. -------------------------------------------------------------------------------------------------------------------
  426. -- Job-specific hooks for non-casting events.
  427. -------------------------------------------------------------------------------------------------------------------
  428.  
  429. -- Called when a player gains or loses a buff.
  430. -- buff == buff gained or lost
  431. -- gain == true if the buff was gained, false if it was lost.
  432. function job_buff_change(buff, gain)
  433.     -- Unlock feet when Mana Wall buff is lost.
  434.     if buff == "Mana Wall" and not gain then
  435.         enable('feet')
  436.         handle_equipping_gear(player.status)
  437.     end
  438. end
  439.  
  440. -- Handle notifications of general user state change.
  441. function job_state_change(stateField, newValue, oldValue)
  442.     if stateField == 'Offense Mode' then
  443.         if newValue == 'Normal' then
  444.             disable('main','sub','range')
  445.         else
  446.             enable('main','sub','range')
  447.         end
  448.     end
  449. end
  450.  
  451. -------------------------------------------------------------------------------------------------------------------
  452. -- User code that supplements standard library decisions.
  453. -------------------------------------------------------------------------------------------------------------------
  454.  
  455. -- Custom spell mapping.
  456. function job_get_spell_map(spell, default_spell_map)
  457.     if spell.skill == 'Elemental Magic' and default_spell_map ~= 'ElementalEnfeeble' then
  458.         if lowTierNukes:contains(spell.english) then
  459.             return 'LowTierNuke'
  460.         else
  461.             return 'HighTierNuke'
  462.         end
  463.     end
  464. end
  465.  
  466. -- Modify the default idle set after it was constructed.
  467. function customize_idle_set(idleSet)
  468.     if player.mpp < 51 then
  469.         idleSet = set_combine(idleSet, sets.latent_refresh)
  470.     end
  471.      
  472.     return idleSet
  473. end
  474.  
  475. -- Function to display the current relevant user state when doing an update.
  476. function display_current_job_state(eventArgs)
  477.     display_current_caster_state()
  478.     eventArgs.handled = true
  479. end
  480.  
  481. -------------------------------------------------------------------------------------------------------------------
  482. -- Utility functions specific to this job.
  483. -------------------------------------------------------------------------------------------------------------------
  484.  
  485. -- Select default macro book on initial load or subjob change.
  486. function select_default_macro_book()
  487.     set_macro_page(1, 5)
  488. end
Advertisement
Add Comment
Please, Sign In to add comment