Advertisement
Guest User

Untitled

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