Advertisement
Guest User

Untitled

a guest
Apr 24th, 2017
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 16.02 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.     sets.grips = {Fire = {sub="Fire Grip"},
  10.     Earth = {sub="Earth Grip"},
  11.     Water = {sub="Water Grip"},
  12.     Wind = {sub="Wind Grip"},
  13.     Ice = {sub="Ice Grip"},
  14.     Lightning = {sub="Lightning Grip"},
  15.     Light = {sub="Light Grip"},
  16.     Dark = {sub="Dark Grip"}}
  17.    
  18.     -- Load and initialize the include file.
  19.     include('Mote-Include.lua')
  20.     end
  21.  
  22.  
  23. -- Setup vars that are user-independent.  state.Buff vars initialized here will automatically be tracked.
  24. function job_setup()
  25.     state.Buff['Poison'] = buffactive['poison'] or false
  26. end
  27.  
  28. -------------------------------------------------------------------------------------------------------------------
  29. -- User setup functions for this job.  Recommend that these be overridden in a sidecar file.
  30. -------------------------------------------------------------------------------------------------------------------
  31.  
  32. -- Setup vars that are user-dependent.  Can override this function in a sidecar file.
  33. function user_setup()
  34.    
  35.     state.OffenseMode:options('None', 'Normal', 'Shield')
  36.     state.PhysicalDefenseMode:options('PDT', 'PDTTP')
  37.     state.HybridMode:options('Normal', 'PhysicalDef', 'MagicalDef')
  38.     state.CastingMode:options('Normal', 'Casting')
  39.     state.IdleMode:options('Normal', 'Casting', 'PDT', 'Town')
  40.    
  41.     select_default_macro_book()
  42. end
  43.  
  44.  
  45. -- Define sets and vars used by this job file.
  46. function init_gear_sets()
  47.     --------------------------------------
  48.     -- Start defining the sets
  49.     --------------------------------------
  50.    
  51.     -- Precast Sets
  52.    
  53.     -- Precast sets to enhance JAs
  54.  
  55.     -- Waltz set (chr and vit)
  56.     sets.precast.Waltz = {}
  57.        
  58.     -- Don't need any special gear for Healing Waltz.
  59.     sets.precast.Waltz['Healing Waltz'] = {}
  60.  
  61.     -- Fast cast sets for spells
  62.  
  63.     sets.precast.FC = {
  64.         ammo="Bibiki Seashell",
  65.         head="Warlock's Chapeau +1",
  66.         neck="Ritter Gorget",
  67.         ear1="Loquacious Earring",
  68.         ear2="Triton Earring",
  69.         body="Duelist's Tabard +1",
  70.         hands="Dusk Gloves +1",
  71.         ring1="Defending Ring",
  72.         ring2="Rajas Ring",
  73.         back="Boxer's Mantle",
  74.         waist="Velocious Belt",
  75.         legs="Mahatma Slops",
  76.         feet="Dusk Ledelsens +1"}
  77.        
  78.     -- Weaponskill sets
  79.     -- Default set for any weaponskill that isn't any more specifically defined
  80.     sets.precast.WS = {
  81.         ammo="Tiphia Sting",
  82.         head="Walahra Turban",
  83.         neck="Peacock Amulet",
  84.         ear1="Triumph Earring",
  85.         ear2="Brutal Earring",
  86.         body="Assault Jerkin",
  87.         hands="Alkyoneus's Bracelets",
  88.         ring1=gear.ToreadorsRing.good,
  89.         ring2="Rajas Ring",
  90.         back="Cerberus Mantle +1",
  91.         waist="Warwolf Belt",
  92.         legs="Dusk Trousers +1",
  93.         feet="Dusk Ledelsens +1"}
  94.     -- Specific weaponskill sets.  Uses the base set if an appropriate WSMod version isn't found.
  95.     sets.precast.WS['Requiescat'] = set_combine(sets.precast.WS,{neck="Soil Gorget"})
  96.    
  97.     sets.precast.WS['Vorpal Blade'] = set_combine(sets.precast.WS,{neck="Soil Gorget"})
  98.    
  99.     sets.precast.WS['Knights of Round'] = set_combine(sets.precast.WS,{neck="Flame Gorget"})
  100.    
  101.     sets.precast.WS['Mercy Stroke'] = set_combine(sets.precast.WS,{neck="Soil Gorget"})
  102.  
  103.    
  104.     -- Midcast Sets
  105.     sets.midcast = {}
  106.    
  107.     sets.midcast.FastRecast = {
  108.         ammo="Bibiki Seashell",
  109.         head="Warlock's Chapeau +1",
  110.         neck="Ritter Gorget",
  111.         ear1="Loquacious Earring",
  112.         ear2="Triton Earring",
  113.         body="Duelist's Tabard +1",
  114.         hands="Dusk Gloves +1",
  115.         ring1="Defending Ring",
  116.         ring2=gear.ToreadorsRing.good,
  117.         back="Boxer's Mantle",
  118.         waist="Velocious Belt",
  119.         legs="Mahatma Slops",
  120.         feet="Dusk Ledelsens +1"}
  121.     --    head="Warlock's Chapeau +1",ear2="Loquacious Earring",
  122.     --    body="Duelist's Tabard",hands="Dusk Gloves +1",
  123.     --    waist="Velocious Belt",feet="Dusk Ledelsens +1"}
  124.  
  125.        
  126.        sets.midcast.Utsusemi = {ammo="Bibiki Seashell",
  127.                     head="Walahra Turban",neck="Ritter Gorget",ear1="Loquacious Earring",ear2="Triton Earring",
  128.                     body="Duelist's Tabard +1",hands="Dusk Gloves +1",ring1="Defending Ring",ring2=gear.ToreadorsRing.good,
  129.                     back="Boxer's Mantle",waist="Velocious Belt",legs="Akinji Salvars",feet="Dusk Ledelsens +1"}
  130.                    
  131.        sets.midcast.Cure = {
  132.         ammo="Bibiki Seashell",
  133.         head="Warlock's Chapeau +1",
  134.         neck="Fylgja Torque +1",
  135.         ear1="Star Earring",
  136.         ear2="Loquacious Earring",
  137.         body="Duelist's Tabard +1",
  138.         hands="Dusk Gloves +1",
  139.         ring1="Aqua Ring",
  140.         ring2="Aqua Ring",
  141.         back="Prism Cape",
  142.         waist="Penitent's Rope",
  143.         legs="Warlock's Tights",
  144.         feet="Dusk Ledelsens +1"}
  145.        
  146.     sets.midcast.Curaga = sets.midcast.Cure
  147.  
  148.     sets.midcast['Enhancing Magic'] = {
  149.         ammo="Bibiki Seashell",
  150.         head="Duelist's Chapeau +1",
  151.         neck="Ritter Gorget",
  152.         ear1="Star Earring",
  153.         ear2="Loquacious Earring",
  154.         body="Duelist's Tabard +1",
  155.         hands="Duelist's Gloves +1",
  156.         ring1="Defending Ring",
  157.         ring2="Rajas Ring",
  158.         back="Merciful Cape",
  159.         waist="Velocious Belt",
  160.         legs="Warlock's Tights",
  161.         feet="Dusk Ledelsens +1"}
  162.        
  163.     sets.midcast.MndEnfeebles = {
  164.         ammo="Bibiki Seashell",
  165.         head="Duelist's Chapeau +1",
  166.         neck="Faith Torque",
  167.         ear1="Star Earring",
  168.         ear2="Loquacious Earring",
  169.         body="Warlock's Tabard",
  170.         hands="Devotee's Mitts +1",
  171.         ring1="Aqua Ring",
  172.         ring2="Aqua Ring",
  173.         back="Prism Cape",
  174.         waist="Penitent's Rope",
  175.         legs="Mahatma Slops",
  176.         feet="Errant Pigaches"}
  177.  
  178.     sets.midcast.IntEnfeebles = {
  179.         ammo="Phantom Tathlum",
  180.         head="Duelist's Chapeau +1",
  181.         neck="Justice Torque",
  182.         ear1="Phantom Earring +1",
  183.         ear2="Loquacious Earring +1",
  184.         body="Warlock's Tabard",
  185.         hands="Duelist's Gloves +1",
  186.         ring1="Snow Ring",
  187.         ring2="Snow Ring",
  188.         back="Prism Cape",
  189.         waist="Penitent's Rope",
  190.         legs="Mahatma Slops",
  191.         feet="Duelist's Boots +1"}
  192.    
  193. -- Check Set
  194.     sets.midcast['Dark Magic'] = {
  195.         ammo="Phantom Tathlum",
  196.         head="Duelist's Chapeau +1",
  197.         neck="Aesir Torque",
  198.         ear1="Phantom Earring +1",
  199.         ear2="Loquacious Earring",
  200.         body="Crimson Scale Mail",
  201.         hands="Blood Finger Gauntlets",
  202.         ring1="Snow Ring",
  203.         ring2="Snow Ring",
  204.         back="Merciful Cape",
  205.         waist="Penitent's Rope",
  206.         legs="Mahatma Slops",
  207.         feet="Duelist's Boots +1"}
  208.        
  209.     sets.midcast['Elemental Magic'] = {
  210.         ammo="Phantom Tathlum",
  211.         head="Duelist's Chapeau +1",
  212.         neck="Justice Torque",
  213.         ear1="Moldavite Earring",
  214.         ear2="Phantom Earring +1",
  215.         body="Crimson Scale Mail",
  216.         hands="Zenith Mitts",
  217.         ring1="Snow Ring",
  218.         ring2="Snow Ring",
  219.         back="Merciful Cape",
  220.         waist="Penitent's Rope",
  221.         legs="Mahatma Slops",
  222.         feet="Duelist's Boots +1"}
  223.    
  224.    
  225.     --[[sets.midcast.Bind = {sets.midcast.IntEnfeebles}
  226.     sets.midcast.Blind = {}
  227.     sets.midcast.Paralyze = {}
  228.     sets.midcast.Slow = {}
  229.     sets.midcast.Gravity = {}
  230.     sets.midcast.Dispel = {}
  231.     sets.midcast.Sleep = {}
  232.     sets.midcast.Stoneskin = {}
  233.  
  234.     sets.midcast.Drain = sets.midcast['Dark Magic']
  235.  
  236.     sets.midcast.Aspir = sets.midcast.Drain
  237.  
  238.     sets.midcast.Stun = sets.midcast['Dark Magic']
  239.    
  240.     sets.midcast.IntEnfeebles.Casting = set_combine(sets.midcast.IntEnfeebles,{})
  241.  
  242.     sets.midcast.Bind.Casting = set_combine(sets.midcast.IntEnfeebles,{sub="Ice Grip"})
  243.    
  244.     sets.midcast.Blind.Casting = set_combine(sets.midcast.IntEnfeebles,{sub="Dark Grip"})
  245.    
  246.     sets.midcast.Dispel.Casting = set_combine(sets.midcast.IntEnfeebles,{sub="Dark Grip"})
  247.    
  248.     sets.midcast.Gravity.Casting = set_combine(sets.midcast.IntEnfeebles,{sub="Wind Grip"})
  249.    
  250.     sets.midcast.Slow.Casting = set_combine(sets.midcast.MndEnfeebles,{sub="Earth Grip"})
  251.    
  252.     sets.midcast.Paralyze.Casting = set_combine(sets.midcast.MndEnfeebles,{sub="Ice Grip"})
  253.    
  254.     sets.midcast.Sleep.Casting = set_combine(sets.midcast['Dark Magic'],{sub="Dark Grip"})
  255.    
  256.     sets.midcast.Stoneskin.Casting = set_combine(sets.midcast.Enhancing,{sub="Raptor Leather Strap +1",head="Errant Hat",body="Errant Houppelande",ring1="Aqua Ring",ring1="Aqua Ring",feet="Errant Pigaches"})
  257.    
  258.     sets.midcast['ElementalEnfeeble'] = set_combine(sets.midcast['Elemental Magic'])
  259.  
  260.     sets.midcast.Cure.Casting = set_combine(sets.midcast.Cure,{feet="Errant Pigaches",hands="Devotee's Mitts +1"})
  261.  
  262.     sets.midcast['Enhancing Magic'].Casting = set_combine(sets.midcast['Enhancing Magic'],{ring1="Aqua Ring",ring1="Aqua Ring",feet="Errant Pigaches"})
  263. ]]
  264.  
  265.     -- Sets for special buff conditions on spells.
  266.    
  267.  
  268.     -- Sets to return to when not performing an action.
  269.  
  270.     -- Resting sets
  271.     sets.resting = {
  272.         ammo="Bibiki Seashell",
  273.         head="Duelist's Chapeau +1",
  274.         neck="Orochi Nodowa",
  275.         ear1="Triton Earring",
  276.         ear2="Loquacious Earring",
  277.         body="Dalmatica",
  278.         hands="Duelist's Gloves +1",
  279.         ring1="Defending Ring",
  280.         ring2="Shadow Ring",
  281.         back="Shadow Mantle",
  282.         waist="Velocious Belt",
  283.         legs="Blood Cuisses",
  284.         feet="Duelist's Boots +1"}
  285.  
  286.     -- Idle sets
  287.     sets.idle = {
  288.         ammo="Bibiki Seashell",
  289.         head="Duelist's Chapeau +1",
  290.         neck="Orochi Nodowa",
  291.         ear1="Triton Earring",
  292.         ear2="Loquacious Earring",
  293.         body="Dalmatica",
  294.         hands="Duelist's Gloves +1",
  295.         ring1="Defending Ring",
  296.         ring2="Shadow Ring",
  297.         back="Shadow Mantle",
  298.         waist="Velocious Belt",
  299.         legs="Blood Cuisses",
  300.         feet="Duelist's Boots +1"}
  301.        
  302.     sets.idle.Town = {
  303.         ammo="Bibiki Seashell",
  304.         head="Duelist's Chapeau +1",
  305.         neck="Ritter Gorget",
  306.         ear1="Suppanomimi",
  307.         ear2="Brutal Earring",
  308.         body="Duelist's Tabard +1",
  309.         hands="Duelist's Gloves +1",
  310.         ring1="Defending Ring",
  311.         ring2="Shadow Ring",
  312.         back="Shadow Mantle",
  313.         waist="Velocious Belt",
  314.         legs="Duelist's Tights +1",
  315.         feet="Duelist's Boots +1"}
  316.        
  317.     sets.idle.Weak = sets.idle
  318.  
  319.     sets.idle.PDT = {}
  320.  
  321.     sets.idle.MDT = {}
  322.    
  323.     sets.idle.Casting = {
  324.         ammo="Bibiki Seashell",
  325.         head="Duelist's Chapeau +1",
  326.         neck="Orocho Nodowa",
  327.         ear1="Loquacious Earring",
  328.         ear2="Triton Earring",
  329.         body="Dalmatica",
  330.         hands="Duelist's Gloves +1",
  331.         ring1="Defending Ring",
  332.         ring2="Shadow Ring",
  333.         back="Shadow Mantle",
  334.         waist="Velocious Belt",
  335.         legs="Blood Cuisses",
  336.         feet="Duelist's Boots +1"}
  337.    
  338.  
  339.     -- Defense sets
  340.     sets.defense.PDT = {ammo="Bibiki Seashell",
  341.                     head="Darksteel Cap +1",neck="Orochi Nodowa",ear1="Suppanomimi",ear2="Brutal Earring",
  342.                     body="Darksteel Harness +1",hands="Darksteel Mittens +1",ring1="Defending Ring",ring2="Jelly Ring",
  343.                     back="Shadow Mantle",waist="Velocious Belt",legs="Darksteel Subligar +1",feet="Darksteel Leggings +1"}
  344.  
  345.     sets.defense.MDT = {ammo="Bibiki Seashell",
  346.                     head="Coral Visor",neck="Orochi Nodowa",ear1="Merman's Earring",ear2="Merman's Earring",
  347.                     body="Coral Scale Mail",hands="Coral Finger Gauntlets",ring1="Defending Ring",ring2="Shadow Ring",
  348.                     back="Resentment Cape",waist="Velocious Belt",legs="Coral Cuisses",feet="Coral Greaves"}
  349.                    
  350.     sets.Kiting = set_combine(sets.defense.PDT, {head="Duelist's Chapeau +1",body="Dalmatica",legs="Blood Cuisses"})
  351.  
  352.     -- Engaged sets
  353.  
  354.     -- Variations for TP weapon and (optional) offense/defense modes.  Code will fall back on previous
  355.     -- sets if more refined versions aren't defined.
  356.     -- If you create a set with both offense and defense modes, the offense mode should be first.
  357.     -- EG: sets.engaged.Dagger.Accuracy.Evasion
  358.    
  359.     -- Normal melee group
  360.     sets.engaged = {
  361.         ammo="Bibiki Seashell",
  362.         head="Duelist's Chapeau +1",
  363.         neck="Peacock Amulet",
  364.         ear1="Suppanomimi",
  365.         ear2="Brutal Earring",
  366.         body="Dalmatica",
  367.         hands="Dusk Gloves +1",
  368.         ring1=gear.ToreadorsRing.good,
  369.         ring2="Defending Ring",
  370.         back="Boxer's Mantle",
  371.         waist="Velocious Belt",
  372.         legs="Dusk Trousers +1",
  373.         feet="Dusk Ledelsens +1"}
  374.        
  375.  
  376.     sets.engaged.Shield = {}
  377.  
  378. end
  379.  
  380. -------------------------------------------------------------------------------------------------------------------
  381. -- Job-specific hooks for standard casting events.
  382. -------------------------------------------------------------------------------------------------------------------
  383.  
  384.  
  385. -- Run after the default midcast() is done.
  386. -- eventArgs is the same one used in job_midcast, in case information needs to be persisted.
  387. function job_post_midcast(spell, action, spellMap, eventArgs)
  388.         if (spell.action_type == "Magic" and state.CastingMode.value ~= 'Casting') then
  389.             equip(sets.grips[spell.element]) else
  390.             handle_equipping_gear(player.status)
  391.         eventArgs.handled = true
  392.             end
  393.    
  394.     if spell.action_type == "Magic" then
  395.         if spell.element == world.weather_element or spell.element == world.day_element then
  396.             equip(sets.obi[spell.element])
  397.             end
  398.     end
  399. end
  400.  
  401. -------------------------------------------------------------------------------------------------------------------
  402. -- Job-specific hooks for non-casting events.
  403. -------------------------------------------------------------------------------------------------------------------
  404.  
  405.  
  406. -- Handle notifications of general user state change.
  407. --function job_state_change(stateField, newValue, oldValue)
  408. --  if spell.action_type == "Magic" then
  409. --      if spell.element == world.weather_element or spell.element == world.day_element then
  410. --          equip(sets.obi[spell.element])
  411. --          end
  412. --      end
  413. --end
  414.  
  415. -------------------------------------------------------------------------------------------------------------------
  416. -- User code that supplements standard library decisions.
  417. -------------------------------------------------------------------------------------------------------------------
  418. -- Called any time we attempt to handle automatic gear equips (ie: engaged or idle gear).
  419. function job_handle_equipping_gear(playerStatus, eventArgs)
  420.     -- Check that ranged slot is locked, if necessary
  421.     check_main_lock()
  422.    
  423. end
  424.  
  425. -- Modify the default idle set after it was constructed.
  426. -- Custom spell mapping.
  427. function job_get_spell_map(spell, default_spell_map)
  428.     if spell.action_type == 'Magic' then
  429.         if spell.skill == 'Enfeebling Magic' then
  430.             if spell.type == 'WhiteMagic' then
  431.                 return 'MndEnfeebles'
  432.             else
  433.                 return 'IntEnfeebles'
  434.             end
  435.         end
  436.     end
  437. end
  438.  
  439.  
  440. -- Set eventArgs.handled to true if we don't want the automatic display to be run.
  441.  
  442. -------------------------------------------------------------------------------------------------------------------
  443. -- Utility functions specific to this job.
  444. -------------------------------------------------------------------------------------------------------------------
  445. -- Function to lock the ranged slot if we have a ranged weapon equipped.
  446. function check_main_lock()
  447.     if player.equipment.main == 'Excalibur' or 'Mandau' then
  448.         disable('sub')
  449.     else
  450.         enable('sub')
  451.     end
  452. end
  453. function customize_idle_set(idleSet)
  454.         if buffactive["Poison"] then --and gain and (player.status == "Engaged" or "Idle" or "Resting") then
  455.         idleSet = set_combine(idleSet, {back="Poison taster's cape"})
  456.     end
  457.     return idleSet
  458. end
  459.  
  460.  
  461. function customize_melee_set(meleeSet)
  462.         if buffactive["Poison"] then --and gain and (player.status == "Engaged" or "Idle" or "Resting") then
  463.         meleeSet = set_combine(meleeSet, {back="Poison taster's cape"})
  464.     end
  465.     return meleeSet
  466. end
  467.  
  468. function job_buff_change(buff,gain)
  469.         if buffactive["Poison"] then --and gain and (player.status == "Engaged" or "Idle" or "Resting") then
  470.         equip({back="Poison taster's cape"})
  471.     else
  472.         if not midaction() then
  473.             handle_equipping_gear(player.status)
  474.         end
  475.     end
  476. end
  477.  
  478.  
  479. -- Select default macro book on initial load or subjob change.
  480. function select_default_macro_book()
  481.     -- Default macro set/book
  482.     if player.sub_job == 'DNC' then
  483.         set_macro_page(5, 11)
  484.     elseif player.sub_job == 'NIN' then
  485.         set_macro_page(5, 11)
  486.     elseif player.sub_job == 'RDM' then
  487.         set_macro_page(5, 11)
  488.     else
  489.         set_macro_page(5, 11)
  490.     end
  491. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement