Advertisement
Boposhopo

PLD Lua

Mar 7th, 2025
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 31.04 KB | Gaming | 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. -- Setup vars that are user-independent.  state.Buff vars initialized here will automatically be tracked.
  14. function job_setup()
  15.     state.Buff.Sentinel = buffactive.sentinel or false
  16.     state.Buff.Cover = buffactive.cover or false
  17.     state.Buff.Doom = buffactive.Doom or false
  18.    
  19.     send_command('wait 6;input /lockstyleset 8')
  20.    
  21.     rune_enchantments = S{'Ignis', 'Gelus', 'Flabra', 'Tellus', 'Sulpor', 'Unda', 'Lux','Tenebrae'}
  22.     -- /BLU Spell Maps
  23.     blue_magic_maps = {}
  24.  
  25.     blue_magic_maps.Enmity = S{'Blank Gaze', 'Geist Wall', 'Jettatura', 'Soporific',
  26.         'Poison Breath', 'Blitzstrahl', 'Sheep Song', 'Chaotic Eye'}
  27.     blue_magic_maps.Cure = S{'Wild Carrot'}
  28.     blue_magic_maps.Buffs = S{'Cocoon', 'Refueling'}
  29. end
  30.  
  31. -------------------------------------------------------------------------------------------------------------------
  32. -- User setup functions for this job.  Recommend that these be overridden in a sidecar file.
  33. -------------------------------------------------------------------------------------------------------------------
  34.  
  35. -- Setup vars that are user-dependent.  Can override this function in a sidecar file.
  36. function user_setup()
  37.     state.OffenseMode:options('Normal', 'BURTAM3', 'GS')
  38.     state.HybridMode:options('Normal', 'PDT', 'Reraise')
  39.     state.WeaponskillMode:options('Normal', 'Acc')
  40.     state.CastingMode:options('Normal', 'SIRD')
  41.     state.IdleMode:options('Normal','TANK','MDB')
  42.  
  43.     state.Runes = M{['description']='Runes', 'Ignis', 'Unda', 'Sulpor', 'Tellus', 'Flabra', 'Gelus', 'Lux', 'Tenebrae'}
  44.  
  45.     select_default_macro_book()
  46. end
  47.  
  48. function user_unload()
  49.     send_command('unbind ')
  50. end
  51.  
  52. -- Define sets and vars used by this job file.
  53. function init_gear_sets()
  54.     --------------------------------------
  55.     -- Precast sets
  56.     --------------------------------------
  57.    
  58.      sets.midcast.Enmity = {ammo="Sapience Orb",
  59.         head={ name="Loess Barbuta +1", augments={'Path: A',}},
  60.         body={ name="Souv. Cuirass +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
  61.         hands={ name="Souv. Handsch. +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
  62.         legs={ name="Souv. Diechlings +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
  63.         feet="Chev. Sabatons +3",
  64.         neck="Moonlight Necklace",
  65.         waist="Creed Baudrier",
  66.         left_ear="Cryptic Earring",
  67.         right_ear="Tuisto Earring",
  68.         left_ring="Apeile Ring +1",
  69.         right_ring="Petrov Ring",
  70.         back={ name="Rudianos's Mantle", augments={'HP+60','Eva.+20 /Mag. Eva.+20','Mag. Evasion+10','Enmity+10','Phys. dmg. taken-10%',}},}
  71.    
  72.     -- Precast sets to enhance JAs
  73.     sets.precast.JA['Invincible'] = set_combine(sets.midcast.Enmity, {legs="Caballarius Breeches +1"})
  74.     sets.precast.JA['Holy Circle'] = {feet="Gallant Leggings"}
  75.     sets.precast.JA['Shield Bash'] = set_combine(sets.midcast.Enmity, {hands="Caballarius Gauntlets +2", left_ear="Knightly Earring"})
  76.     sets.precast.JA['Sentinel'] = set_combine(sets.midcast.Enmity, {feet="Caballarius Leggings +1"})
  77.     sets.precast.JA['Rampart'] = set_combine(sets.midcast.Enmity, {head="Caballarius Coronet +1"})
  78.     sets.precast.JA['Fealty'] = {body="Caballarius Surcoat +3"}
  79.     sets.precast.JA['Divine Emblem'] = {feet="Chev. Sabatons +3",}
  80.     sets.precast.JA['Cover'] = {head="Reverence Coronet +1", body="Caballarius Surcoat +3"}
  81.  
  82.     -- add mnd for Chivalry
  83.     sets.precast.JA['Chivalry'] = {hands="Caballarius Gauntlets +2"}
  84.    
  85.  
  86.     -- Waltz set (chr and vit)
  87.     sets.precast.Waltz = {}
  88.        
  89.     -- Don't need any special gear for Healing Waltz.
  90.     sets.precast.Waltz['Healing Waltz'] = {}
  91.    
  92.     sets.precast.Step = {}
  93.     sets.precast.Flourish1 = {}
  94.  
  95.     -- Fast cast sets for spells
  96.    
  97.     sets.precast.FC = {ammo="Sapience Orb",
  98.         head={ name="Carmine Mask +1", augments={'Accuracy+20','Mag. Acc.+12','"Fast Cast"+4',}},
  99.         body={ name="Rev. Surcoat +3", priority=200},
  100.         hands={ name="Leyline Gloves", augments={'Accuracy+12','Mag. Acc.+14','"Mag.Atk.Bns."+15','"Fast Cast"+2',}},
  101.         legs={ name="Souv. Diechlings +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
  102.         feet={ name="Chev. Sabatons +3", priority=100},
  103.         neck={ name="Unmoving Collar +1", augments={'Path: A',}},
  104.         waist={ name="Creed Baudrier", priority=50},
  105.         left_ear="Etiolation Earring",
  106.         right_ear="Loquac. Earring",
  107.         left_ring="Kishar Ring",
  108.         right_ring={ name="Gelatinous Ring +1", augments={'Path: A',}},
  109.         back={ name="Rudianos's Mantle", augments={'HP+60','Eva.+20 /Mag. Eva.+20','Mag. Evasion+10','"Fast Cast"+10','Damage taken-5%',}},}
  110.  
  111.     sets.precast.FC['Enhancing Magic'] = set_combine(sets.precast.FC, {})
  112.  
  113.        
  114.     -- Weaponskill sets
  115.     -- Default set for any weaponskill that isn't any more specifically defined
  116.     sets.precast.WS = {ammo="Oshasha's Treatise",
  117.         head="Nyame Helm",
  118.         body="Nyame Mail",
  119.         hands="Nyame Gauntlets",
  120.         legs="Nyame Flanchard",
  121.         feet="Nyame Sollerets",
  122.         neck="Fotia Gorget",
  123.         waist={ name="Sailfi Belt +1", augments={'Path: A',}},
  124.         left_ear="Ishvara Earring",
  125.         right_ear={ name="Moonshade Earring", augments={'Attack+4','TP Bonus +250',}},
  126.         left_ring="Regal Ring",
  127.         right_ring="Rufescent Ring",
  128.         back={ name="Rudianos's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+10','Weapon skill damage +10%','Phys. dmg. taken-10%',}},}
  129.  
  130.     sets.precast.WS.Acc = {}
  131.  
  132.     -- Specific weaponskill sets.  Uses the base set if an appropriate WSMod version isn't found.
  133.     sets.precast.WS['Requiescat'] = {ammo="Coiste Bodhar",
  134.         head="Nyame Helm",
  135.         body="Nyame Mail",
  136.         hands="Nyame Gauntlets",
  137.         legs="Nyame Flanchard",
  138.         feet="Nyame Sollerets",
  139.         neck="Fotia Gorget",
  140.         waist="Fotia Belt",
  141.         left_ear="Ishvara Earring",
  142.         right_ear={ name="Moonshade Earring", augments={'Attack+4','TP Bonus +250',}},
  143.         left_ring="Shukuyu Ring",
  144.         right_ring="Regal Ring",
  145.         back={ name="Rudianos's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+10','Weapon skill damage +10%','Phys. dmg. taken-10%',}},}
  146.  
  147.     sets.precast.WS['Sanguine Blade'] = {ammo={ name="Ghastly Tathlum +1", augments={'Path: A',}},
  148.         head="Pixie Hairpin +1",
  149.         body="Nyame Mail",
  150.         hands="Nyame Gauntlets",
  151.         legs="Nyame Flanchard",
  152.         feet="Nyame Sollerets",
  153.         neck="Sibyl Scarf",
  154.         waist="Eschan Stone",
  155.         left_ear="Friomisi Earring",
  156.         right_ear="Thrud Earring",
  157.         left_ring={ name="Metamor. Ring +1", augments={'Path: A',}},
  158.         right_ring="Archon Ring",
  159.         back={ name="Rudianos's Mantle", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','INT+10','Weapon skill damage +10%','Phys. dmg. taken-10%',}},}
  160.    
  161.     sets.precast.WS['Atonement'] = {ammo="Sapience Orb",
  162.         head={ name="Loess Barbuta +1", augments={'Path: A',}},
  163.         body={ name="Souv. Cuirass +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
  164.         hands={ name="Souv. Handsch. +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
  165.         legs={ name="Souv. Diechlings +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
  166.         feet="Chev. Sabatons +3",
  167.         neck="Moonlight Necklace",
  168.         waist="Fotia Belt",
  169.         left_ear="Tuisto Earring",
  170.         right_ear={ name="Moonshade Earring", augments={'Attack+4','TP Bonus +250',}},
  171.         left_ring="Apeile Ring +1",
  172.         right_ring="Moonlight Ring",
  173.         back={ name="Rudianos's Mantle", augments={'HP+60','Eva.+20 /Mag. Eva.+20','Mag. Evasion+10','Enmity+10','Phys. dmg. taken-10%',}},}
  174.    
  175.     sets.precast.WS['Savage Blade'] = {ammo="Oshasha's Treatise",
  176.         head="Nyame Helm",
  177.         body="Nyame Mail",
  178.         hands="Nyame Gauntlets",
  179.         legs="Nyame Flanchard",
  180.         feet="Nyame Sollerets",
  181.         neck="Rep. Plat. Medal",
  182.         waist={ name="Sailfi Belt +1", augments={'Path: A',}},
  183.         left_ear="Thrud Earring",
  184.         right_ear={ name="Moonshade Earring", augments={'Attack+4','TP Bonus +250',}},
  185.         left_ring="Regal Ring",
  186.         right_ring="Rufescent Ring",
  187.         back={ name="Rudianos's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+10','Weapon skill damage +10%','Phys. dmg. taken-10%',}},
  188.         }
  189.        
  190.     sets.precast.WS['Black Halo'] = set_combine(sets.precast.WS['Savage Blade'], {})
  191.    
  192.     sets.precast.WS['Chant Du Cygne'] = {ammo={ name="Coiste Bodhar", augments={'Path: A',}},
  193.         head={ name="Blistering Sallet +1", augments={'Path: A',}},
  194.         body="Hjarrandi Breast.",
  195.         hands="Nyame Gauntlets",
  196.         legs="Sakpata's Cuisses",
  197.         feet="Sakpata's Leggings",
  198.         neck="Fotia Gorget",
  199.         waist="Fotia Belt",
  200.         left_ear={ name="Moonshade Earring", augments={'Attack+4','TP Bonus +250',}},
  201.         right_ear="Odnowa Earring +1",
  202.         left_ring="Hetairoi Ring",
  203.         right_ring="Moonlight Ring",
  204.         back={ name="Rudianos's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+10','Weapon skill damage +10%','Phys. dmg. taken-10%',}},}
  205.        
  206.     sets.precast.WS['Knights of Round'] = {ammo="Oshasha's Treatise",
  207.         head={ name="Nyame Helm", augments={'Path: B',}},
  208.         body={ name="Nyame Mail", augments={'Path: B',}},
  209.         hands="Nyame Gauntlets",
  210.         legs={ name="Nyame Flanchard", augments={'Path: B',}},
  211.         feet={ name="Nyame Sollerets", augments={'Path: B',}},
  212.         neck="Rep. Plat. Medal",
  213.         waist={ name="Sailfi Belt +1", augments={'Path: A',}},
  214.         left_ear="Ishvara Earring",
  215.         right_ear="Thrud Earring",
  216.         left_ring={ name="Metamor. Ring +1", augments={'Path: A',}},
  217.         right_ring="Regal Ring",
  218.         back={ name="Rudianos's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+10','Weapon skill damage +10%','Phys. dmg. taken-10%',}},}
  219.        
  220.     sets.precast.WS['Imperator'] = {ammo="Oshasha's Treatise",
  221.         head={ name="Nyame Helm", augments={'Path: B',}},
  222.         body={ name="Nyame Mail", augments={'Path: B',}},
  223.         hands="Nyame Gauntlets",
  224.         legs={ name="Nyame Flanchard", augments={'Path: B',}},
  225.         feet={ name="Nyame Sollerets", augments={'Path: B',}},
  226.         neck="Fotia Gorget",
  227.         waist="Fotia Belt",
  228.         left_ear="Thrud Earring",
  229.         right_ear={ name="Moonshade Earring", augments={'Attack+4','TP Bonus +250',}},
  230.         left_ring="Epaminondas's Ring",
  231.         right_ring="Regal Ring",
  232.         back={ name="Rudianos's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+10','Weapon skill damage +10%','Phys. dmg. taken-10%',}},}
  233.        
  234.     sets.precast.WS['Impulse Drive'] = {ammo="Coiste Bodhar",
  235.         head={ name="Souv. Schaller +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
  236.         body="Hjarrandi Breast.",
  237.         hands="Nyame Gauntlets",
  238.         legs="Nyame Flanchard",
  239.         feet="Nyame Sollerets",
  240.         neck="Fotia Gorget",
  241.         waist={ name="Sailfi Belt +1", augments={'Path: A',}},
  242.         left_ear="Thrud Earring",
  243.         right_ear={ name="Moonshade Earring", augments={'Attack+4','TP Bonus +250',}},
  244.         left_ring="Rufescent Ring",
  245.         right_ring="Regal Ring",
  246.         back={ name="Rudianos's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+10','Weapon skill damage +10%','Phys. dmg. taken-10%',}},}
  247.    
  248.     sets.precast.WS['Torcleaver'] = {ammo="Coiste Bodhar",
  249.         head="Nyame Helm",
  250.         body="Nyame Mail",
  251.         hands="Nyame Gauntlets",
  252.         legs="Nyame Flanchard",
  253.         feet="Nyame Sollerets",
  254.         neck="Fotia Gorget",
  255.         waist="Fotia Belt",
  256.         left_ear={ name="Moonshade Earring", augments={'Attack+4','TP Bonus +250',}},
  257.         right_ear="Thrud Earring",
  258.         left_ring="Regal Ring",
  259.         right_ring="Gelatinous Ring +1",
  260.         back={ name="Rudianos's Mantle", augments={'VIT+20','Accuracy+20 Attack+20','VIT+10','Weapon skill damage +10%','Phys. dmg. taken-10%',}},
  261. }
  262.    
  263.     sets.precast.WS['Resolution'] = {ammo="Coiste Bodhar",
  264.         head="Sakpata's Helm",
  265.         body="Sakpata's Plate",
  266.         hands="Sakpata's Gauntlets",
  267.         legs="Sakpata's Cuisses",
  268.         feet="Sakpata's Leggings",
  269.         neck="Fotia Gorget",
  270.         waist="Fotia Belt",
  271.         left_ear="Thrud Earring",
  272.         right_ear={ name="Moonshade Earring", augments={'Attack+4','TP Bonus +250',}},
  273.         left_ring="Regal Ring",
  274.         right_ring="Shukuyu Ring",
  275.         back={ name="Rudianos's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+10','Weapon skill damage +10%','Phys. dmg. taken-10%',}},}
  276.        
  277.     sets.precast.WS['Cataclysm'] = {ammo={ name="Ghastly Tathlum +1", augments={'Path: A',}},
  278.         head="Pixie Hairpin +1",
  279.         body="Nyame Mail",
  280.         hands="Nyame Gauntlets",
  281.         legs="Nyame Flanchard",
  282.         feet="Nyame Sollerets",
  283.         neck="Sibyl Scarf",
  284.         waist="Eschan Stone",
  285.         left_ear="Friomisi Earring",
  286.         right_ear="Thrud Earring",
  287.         left_ring={ name="Metamor. Ring +1", augments={'Path: A',}},
  288.         right_ring="Archon Ring",
  289.         back={ name="Rudianos's Mantle", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','INT+10','Weapon skill damage +10%','Phys. dmg. taken-10%',}},}
  290.        
  291.     sets.precast.WS['Aeolian Edge'] = {ammo={ name="Ghastly Tathlum +1", augments={'Path: A',}},
  292.         head="Nyame Helm",
  293.         body="Nyame Mail",
  294.         hands="Nyame Gauntlets",
  295.         legs="Nyame Flanchard",
  296.         feet="Nyame Sollerets",
  297.         neck="Sibyl Scarf",
  298.         waist="Eschan Stone",
  299.         left_ear="Friomisi Earring",
  300.         right_ear="Thrud Earring",
  301.         left_ring={ name="Metamor. Ring +1", augments={'Path: A',}},
  302.         right_ring="Shiva Ring +1",
  303.         back={ name="Rudianos's Mantle", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','INT+10','Weapon skill damage +10%','Phys. dmg. taken-10%',}},}
  304.    
  305.     --------------------------------------
  306.     -- Midcast sets
  307.     --------------------------------------
  308.  
  309.     sets.midcast.FastRecast = {}
  310.        
  311.     sets.midcast.FastRecast.SIRD = set_combine(sets.midcast.FastRecast, {ammo="Staunch Tathlum",
  312.         head={ name="Souv. Schaller +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
  313.         legs={ name="Founder's Hose", augments={'MND+10','Mag. Acc.+15','Attack+15','Breath dmg. taken -5%',}},
  314.         neck="Moonlight Necklace",
  315.         waist="Audumbla Sash",
  316.         right_ring="Gelatinous Ring +1",
  317.         right_ear="Knightly Earring",
  318.         back={ name="Rudianos's Mantle", augments={'HP+60','Eva.+20 /Mag. Eva.+20','Mag. Evasion+10','Enmity+10','Phys. dmg. taken-10%',}},})
  319.        
  320.    
  321.  
  322.     sets.midcast.Enmity.SIRD = set_combine(sets.midcast.Enmity, {ammo="Staunch Tathlum",
  323.         head={ name="Souv. Schaller +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
  324.         legs={ name="Founder's Hose", augments={'MND+10','Mag. Acc.+15','Attack+15','Breath dmg. taken -5%',}},
  325.         neck="Moonlight Necklace",
  326.         waist="Audumbla Sash",
  327.         right_ring="Gelatinous Ring +1",
  328.         right_ear="Knightly Earring",
  329.         back={ name="Rudianos's Mantle", augments={'HP+60','Eva.+20 /Mag. Eva.+20','Mag. Evasion+10','Enmity+10','Phys. dmg. taken-10%',}},})
  330.  
  331.     sets.midcast['Blue Magic'] = {ammo="Staunch Tathlum",
  332.         head={ name="Souv. Schaller +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
  333.         legs={ name="Founder's Hose", augments={'MND+10','Mag. Acc.+15','Attack+15','Breath dmg. taken -5%',}},
  334.         neck="Moonlight Necklace",
  335.         waist="Audumbla Sash",
  336.         right_ring="Gelatinous Ring +1",
  337.         right_ear="Knightly Earring",}
  338.        
  339.     sets.midcast['Crusade'] = set_combine(sets.midcast.Enmity.SIRD, {})
  340.    
  341.     sets.midcast['Blue Magic'].Enmity = set_combine(sets.midcast.Enmity, {})
  342.    
  343.     sets.midcast['Blue Magic'].Enmity.SIRD = set_combine(sets.midcast.Enmity.SIRD, {})
  344.  
  345.     sets.midcast['Flash'] = {ammo="Sapience Orb",
  346.         head={ name="Loess Barbuta +1", augments={'Path: A',}},
  347.         body={ name="Souv. Cuirass +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
  348.         hands={ name="Souv. Handsch. +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
  349.         legs={ name="Souv. Diechlings +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
  350.         feet="Chev. Sabatons +3",
  351.         neck="Moonlight Necklace",
  352.         waist="Sailfi Belt +1",
  353.         right_ear="Cryptic Earring",
  354.         left_ear="Tuisto Earring",
  355.         left_ring="Apeile Ring +1",
  356.         right_ring="Petrov Ring",
  357.         back={ name="Rudianos's Mantle", augments={'HP+60','Eva.+20 /Mag. Eva.+20','Mag. Evasion+10','Enmity+10','Phys. dmg. taken-10%',}},}
  358.        
  359.     sets.midcast['Reprisal'] = set_combine(sets.midcast.Flash, {body="Shabti Cuirass +1", hands="Regal Gauntlets"})
  360.    
  361.     sets.midcast.Stun = set_combine(sets.midcast['Flash'], {})
  362.    
  363.     sets.midcast['Foil'] = set_combine(sets.midcast['Flash'], {})
  364.    
  365.     sets.midcast.Cure = {head={ name="Souv. Schaller +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}, priority=300},
  366.         body={ name="Sakpata's Plate", priority=200},
  367.         hands="Macabre Gauntlets +1", --11
  368.         legs={ name="Souv. Diechlings +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
  369.         feet={ name="Souveran Schuhs +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
  370.         neck="Sacro Gorget", --10
  371.         waist={ name="Platinum Moogle Belt", priority=1},
  372.         left_ear="Nourishing Earring +1", --7
  373.         right_ear="Mendicant's Earring",
  374.         left_ring={ name="Moonlight Ring", priority=100},
  375.         right_ring="Defending Ring",
  376.         back={ name="Rudianos's Mantle", augments={'HP+60','Eva.+20 /Mag. Eva.+20','HP+10','"Cure" potency +10%','Phys. dmg. taken-10%',}},} --10
  377.        
  378.     sets.midcast.Cure.SIRD = set_combine(sets.midcast.Cure, {ammo="Staunch Tathlum",
  379.         head={ name="Souv. Schaller +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
  380.         legs={ name="Founder's Hose", augments={'MND+10','Mag. Acc.+15','Attack+15','Breath dmg. taken -5%',}},
  381.         feet="Odyssean Greaves",
  382.         left_ring="Moonlight Ring",
  383.         right_ring="Defending Ring",
  384.         back={ name="Rudianos's Mantle", augments={'HP+60','Eva.+20 /Mag. Eva.+20','HP+10','"Cure" potency +10%','Phys. dmg. taken-10%',}},})
  385.  
  386.     sets.midcast['Enhancing Magic'] = {head={ name="Carmine Mask +1", augments={'Accuracy+20','Mag. Acc.+12','"Fast Cast"+4',}},
  387.         body="Shab. Cuirass +1",
  388.         hands="Regal Gauntlets",
  389.         legs={ name="Carmine Cuisses +1", augments={'Accuracy+20','Attack+12','"Dual Wield"+6',}},
  390.         left_ring="Stikini Ring",
  391.         right_ring="Stikini Ring",}
  392.        
  393.     sets.midcast['Stoneskin'] = set_combine(sets.midcast['Enhancing Magic'], {neck="Stone Gorget", hands="Stone Mufflers", legs="Haven Hose", waist="Siegel Sash", ear1="Earthcry Earring"})
  394.    
  395.     sets.midcast['Divine Magic'] = {body="Reverence Surcoat +3",
  396.         hands="Eschite Gauntlets",
  397.         waist="Asklepian Belt",
  398.         right_ring="Stikini Ring",
  399.         left_ring="Stikini Ring",
  400.         left_ear="Beatific Earring"}
  401.    
  402.     sets.midcast['Holy II'] = {ammo={ name="Ghastly Tathlum +1", augments={'Path: A',}},
  403.         head="Nyame Helm",
  404.         body="Nyame Mail",
  405.         hands="Nyame Gauntlets",
  406.         legs="Nyame Flanchard",
  407.         feet="Nyame Sollerets",
  408.         neck="Moonlight Necklace",
  409.         waist="Asklepian Belt",
  410.         left_ear="Friomisi Earring",
  411.         right_ear="Beatific Earring",
  412.         left_ring="Stikini Ring",
  413.         right_ring={ name="Metamor. Ring +1", augments={'Path: A',}},}
  414.    
  415.     sets.midcast['Phalanx'] = {head="Yorium Barbuta",
  416.         body="Yorium Cuirass",
  417.         hands={ name="Souv. Handsch. +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
  418.         legs="Sakpata's Cuisses",
  419.         feet={ name="Souveran Schuhs +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
  420.         left_ring="Defending Ring",
  421.         right_ring="Stikini Ring",
  422.         neck="Unmoving Collar +1",
  423.         back="Weard Mantle",}
  424.        
  425.     sets.midcast['Enlight II'] = {body="Reverence Surcoat +3",
  426.         hands="Eschite Gauntlets",
  427.         waist="Asklepian Belt",
  428.         right_ring="Stikini Ring",
  429.         left_ring="Stikini Ring",
  430.         left_ear="Beatific Earring"}
  431.        
  432.    
  433.     sets.midcast.Protect = {sub="Srivatsa", body="Shabti Cuirass +1", hands="Regal Gauntlets", left_ring="Sheltered Ring",}
  434.     sets.midcast.Shell = {body="Shabti Cuirass +1", hands="Regal Gauntlets", left_ring="Sheltered Ring",}
  435.    
  436.     --------------------------------------
  437.     -- Idle/resting/defense/etc sets
  438.     --------------------------------------
  439.  
  440.     sets.Reraise = {head="Twilight Helm", body="Crepuscular Mail"}
  441.    
  442.     sets.resting = {}
  443.    
  444.  
  445.     -- Idle sets
  446.     sets.idle = {ammo="Homiliary",
  447.         head="Sakpata's Helm",
  448.         body="Sacro Breastplate",
  449.         hands="Regal Gauntlets",
  450.         legs="Sakpata's Cuisses",
  451.         feet="Sakpata's Leggings",
  452.         neck="Warder's Charm +1",
  453.         waist="Plat. Mog. Belt",
  454.         left_ear="Etiolation Earring",
  455.         right_ear="Infused Earring",
  456.         left_ring="Shneddick Ring",
  457.         right_ring={ name="Gelatinous Ring +1", augments={'Path: A',}},
  458.         back={ name="Rudianos's Mantle", augments={'HP+60','Eva.+20 /Mag. Eva.+20','Mag. Evasion+10','Enmity+10','Phys. dmg. taken-10%',}},}
  459.  
  460.     sets.idle.TANK = {ammo="Eluder's Sachet",
  461.         head="Chev. Armet +3",
  462.         body={ name="Sakpata's Plate", augments={'Path: A',}},
  463.         hands={ name="Sakpata's Gauntlets", augments={'Path: A',}},
  464.         legs="Chev. Cuisses +3",
  465.         feet={ name="Sakpata's Leggings", augments={'Path: A',}},
  466.         neck="Warder's Charm +1",
  467.         waist="Plat. Mog. Belt",
  468.         left_ear="Etiolation Earring",
  469.         right_ear="Odnowa Earring +1",
  470.         left_ring="Shneddick Ring",
  471.         right_ring="Fortified Ring",
  472.         back={ name="Rudianos's Mantle", augments={'HP+60','Eva.+20 /Mag. Eva.+20','Mag. Evasion+10','Enmity+10','Phys. dmg. taken-10%',}},}
  473.        
  474.     sets.idle.MDB = {ammo="Vanir Battery",
  475.         head={ name="Sakpata's Helm", augments={'Path: A',}},
  476.         body="Adamantite Armor",
  477.         hands={ name="Sakpata's Gauntlets", augments={'Path: A',}},
  478.         legs={ name="Sakpata's Cuisses", augments={'Path: A',}},
  479.         feet={ name="Sakpata's Leggings", augments={'Path: A',}},
  480.         neck="Elite Royal Collar",
  481.         waist="Asklepian Belt",
  482.         left_ear="Etiolation Earring",
  483.         right_ear="Odnowa Earring +1",
  484.         left_ring="Shadow Ring",
  485.         right_ring="Vexer Ring +1",
  486.         back={ name="Rudianos's Mantle", augments={'HP+60','Eva.+20 /Mag. Eva.+20','Mag. Evasion+10','Enmity+10','Phys. dmg. taken-10%',}},}
  487.  
  488.     sets.idle.Town = {ammo="Homiliary",
  489.         head="Sakpata's Helm",
  490.         body="Sacro Breastplate",
  491.         hands="Regal Gauntlets",
  492.         legs="Sakpata's Cuisses",
  493.         feet="Sakpata's Leggings",
  494.         neck="Warder's Charm +1",
  495.         waist="Plat. Mog. Belt",
  496.         left_ear="Etiolation Earring",
  497.         right_ear="Infused Earring",
  498.         left_ring="Shneddick Ring",
  499.         right_ring={ name="Gelatinous Ring +1", augments={'Path: A',}},
  500.         back={ name="Rudianos's Mantle", augments={'HP+60','Eva.+20 /Mag. Eva.+20','Mag. Evasion+10','Enmity+10','Phys. dmg. taken-10%',}},}
  501.        
  502.     sets.Kiting = {legs="Carmine Cuisses +1"}
  503.  
  504.     --------------------------------------
  505.     -- Engaged sets
  506.     --------------------------------------
  507.    
  508.     sets.engaged = {ammo="Eluder's Sachet",
  509.         head="Chev. Armet +3",
  510.         body={ name="Sakpata's Plate", augments={'Path: A',}},
  511.         hands={ name="Sakpata's Gauntlets", augments={'Path: A',}},
  512.         legs="Chev. Cuisses +3",
  513.         feet={ name="Sakpata's Leggings", augments={'Path: A',}},
  514.         neck="Warder's Charm +1",
  515.         waist={ name="Sailfi Belt +1", augments={'Path: A',}},
  516.         left_ear="Tuisto Earring",
  517.         right_ear="Odnowa Earring +1",
  518.         left_ring="Fortified Ring",
  519.         right_ring="Moonlight Ring",
  520.         back={ name="Rudianos's Mantle", augments={'HP+60','Accuracy+20 Attack+20','"Store TP"+10','Phys. dmg. taken-10%',}},}
  521.        
  522.     sets.engaged.BURTAM3 = {ammo="Staunch Tathlum",
  523.         head="Hjarrandi Helm",
  524.         body="Hjarrandi Breast.",
  525.         hands="Sakpata's Gauntlets",
  526.         legs="Volte Tights",
  527.         feet="Volte Spats",
  528.         neck={ name="Vim Torque +1", augments={'Path: A',}},
  529.         waist={ name="Sailfi Belt +1", augments={'Path: A',}},
  530.         left_ear="Tuisto Earring",
  531.         right_ear="Odnowa Earring +1",
  532.         left_ring="Moonlight Ring",
  533.         right_ring="Moonlight Ring",
  534.         back={ name="Rudianos's Mantle", augments={'HP+60','Accuracy+20 Attack+20','"Store TP"+10','Phys. dmg. taken-10%',}},}
  535.  
  536.     sets.engaged.GS = {ammo={ name="Coiste Bodhar", augments={'Path: A',}},
  537.         head="Flam. Zucchetto +2",
  538.         body={ name="Sakpata's Plate", augments={'Path: A',}},
  539.         hands="Sakpata's Gauntlets",
  540.         legs="Sakpata's Cuisses",
  541.         feet="Flam. Gambieras +2",
  542.         neck={ name="Vim Torque +1", augments={'Path: A',}},
  543.         waist={ name="Sailfi Belt +1", augments={'Path: A',}},
  544.         left_ear="Cessance Earring",
  545.         right_ear="Telos Earring",
  546.         left_ring="Chirich Ring +1",
  547.         right_ring="Chirich Ring +1",
  548.         back={ name="Rudianos's Mantle", augments={'HP+60','Accuracy+20 Attack+20','"Store TP"+10','Phys. dmg. taken-10%',}},}
  549.  
  550.  
  551.  
  552.  
  553.     --------------------------------------
  554.     -- Custom buff sets
  555.     --------------------------------------
  556.  
  557.     sets.buff.Doom = {}
  558.     sets.buff.Cover = {}
  559. end
  560.  
  561.  
  562. -------------------------------------------------------------------------------------------------------------------
  563. -- Job-specific hooks for standard casting events.
  564. -------------------------------------------------------------------------------------------------------------------
  565.  
  566. function job_midcast(spell, action, spellMap, eventArgs)
  567.     -- If DefenseMode is active, apply that gear over midcast
  568.     -- choices.  Precast is allowed through for fast cast on
  569.     -- spells, but we want to return to def gear before there's
  570.     -- time for anything to hit us.
  571.     -- Exclude Job Abilities from this restriction, as we probably want
  572.     -- the enhanced effect of whatever item of gear applies to them,
  573.     -- and only one item should be swapped out.
  574.     if state.DefenseMode.value ~= 'None' and spell.type ~= 'JobAbility' then
  575.         handle_equipping_gear(player.status)
  576.         eventArgs.handled = true
  577.     end
  578. end
  579.  
  580.  
  581. -------------------------------------------------------------------------------------------------------------------
  582. -- User code that supplements standard library decisions.
  583. -------------------------------------------------------------------------------------------------------------------
  584.  
  585.  
  586. -- Modify the default idle set after it was constructed.
  587. function customize_idle_set(idleSet)
  588.     if state.Buff.Doom then
  589.         idleSet = set_combine(idleSet, sets.buff.Doom)
  590.     end
  591.    
  592.     return idleSet
  593. end
  594.  
  595. -- Modify the default melee set after it was constructed.
  596. function customize_melee_set(meleeSet)
  597.     if state.Buff.Doom then
  598.         meleeSet = set_combine(meleeSet, sets.buff.Doom)
  599.     end
  600.    
  601.     return meleeSet
  602. end
  603.  
  604. function customize_defense_set(defenseSet)
  605.     if state.ExtraDefenseMode.value ~= 'None' then
  606.         defenseSet = set_combine(defenseSet, sets[state.ExtraDefenseMode.value])
  607.     end
  608.    
  609.     if state.EquipShield.value == true then
  610.         defenseSet = set_combine(defenseSet, sets[state.DefenseMode.current .. 'Shield'])
  611.     end
  612.    
  613.     if state.Buff.Doom then
  614.         defenseSet = set_combine(defenseSet, sets.buff.Doom)
  615.     end
  616.    
  617.     return defenseSet
  618. end
  619.  
  620. -------------------------------------------------------------------------------------------------------------------
  621. -- General hooks for other events.
  622. -------------------------------------------------------------------------------------------------------------------
  623. function job_get_spell_map(spell, default_spell_map)
  624.     if spell.skill == 'Blue Magic' then
  625.         for category,spell_list in pairs(blue_magic_maps) do
  626.             if spell_list:contains(spell.english) then
  627.                 return category
  628.             end
  629.         end
  630.     end
  631. end
  632.  
  633. function job_midcast(spell, action, spellMap, eventArgs)
  634.     if state.DefenseMode.value == 'Physical' and state.PhysicalDefenseMode.current == 'HP' and spell.english ~= "Phalanx" then
  635.         eventArgs.handled = true
  636.         if spell.action_type == 'Magic' then
  637.             if spell.english == 'Flash' or spell.english == 'Foil' or spell.english == 'Stun'
  638.                 or blue_magic_maps.Enmity:contains(spell.english) then
  639.                 equip(sets.midcast.Enmity)
  640.             elseif spell.skill == 'Enhancing Magic' then
  641.                 equip(sets.midcast.EnhancingDuration)
  642.             end
  643.         end
  644.     end
  645. end
  646.  
  647. function display_current_job_state(eventArgs)
  648.         -- Display Current Rune Element Selected
  649.     local r_msg = 'None'
  650.     local r_color = 1
  651.     if player.sub_job == 'RUN' then
  652.         r_msg = state.Runes.current
  653.         if state.Runes.current == 'Ignis' then r_color = 167
  654.         elseif state.Runes.current == 'Gelus' then r_color = 210
  655.         elseif state.Runes.current == 'Flabra' then r_color = 204
  656.         elseif state.Runes.current == 'Tellus' then r_color = 050
  657.         elseif state.Runes.current == 'Sulpor' then r_color = 215
  658.         elseif state.Runes.current == 'Unda' then r_color = 207
  659.         elseif state.Runes.current == 'Lux' then r_color = 001
  660.         elseif state.Runes.current == 'Tenebrae' then r_color = 160 end
  661.     end
  662.  
  663.     local msg = 'Melee'
  664.    
  665.     if state.CombatForm.has_value then
  666.         msg = msg .. ' (' .. state.CombatForm.value .. ')'
  667.     end
  668.    
  669.     msg = msg .. ': '
  670.    
  671.     msg = msg .. state.OffenseMode.value
  672.     if state.HybridMode.value ~= 'Normal' then
  673.         msg = msg .. '/' .. state.HybridMode.value
  674.     end
  675.     msg = msg .. ', WS: ' .. state.WeaponskillMode.value
  676.    
  677.     if state.DefenseMode.value ~= 'None' then
  678.         msg = msg .. ', Defense: ' .. state.DefenseMode.value .. ' (' .. state[state.DefenseMode.value .. 'DefenseMode'].value .. ')'
  679.     end
  680.  
  681.     if state.ExtraDefenseMode.value ~= 'None' then
  682.         msg = msg .. ', Extra: ' .. state.ExtraDefenseMode.value
  683.     end
  684.    
  685.     if state.EquipShield.value == true then
  686.         msg = msg .. ', Force Equip Shield'
  687.     end
  688.    
  689.     if state.Kiting.value == true then
  690.         msg = msg .. ', Kiting'
  691.     end
  692.  
  693.     if state.PCTargetMode.value ~= 'default' then
  694.         msg = msg .. ', Target PC: '..state.PCTargetMode.value
  695.     end
  696.  
  697.     if state.SelectNPCTargets.value == true then
  698.         msg = msg .. ', Target NPCs'
  699.     end
  700.  
  701.     add_to_chat(122, msg)
  702.  
  703.     eventArgs.handled = true
  704. end
  705.  
  706. -------------------------------------------------------------------------------------------------------------------
  707. -- Utility functions specific to this job.
  708. -------------------------------------------------------------------------------------------------------------------
  709.  
  710. function job_self_command(cmdParams, eventArgs)
  711.     gearinfo(cmdParams, eventArgs)
  712.     if cmdParams[1]:lower() == 'rune' then
  713.         send_command('@input /ja '..state.Runes.value..' <me>')
  714.     end
  715. end
  716.  
  717. function update_defense_mode()
  718.     if player.equipment.main == 'Kheshig Blade' and not classes.CustomDefenseGroups:contains('Kheshig Blade') then
  719.         classes.CustomDefenseGroups:append('Kheshig Blade')
  720.     end
  721.    
  722.     if player.sub_job == 'NIN' or player.sub_job == 'DNC' then
  723.         if player.equipment.sub and not player.equipment.sub:contains('Shield') and
  724.            player.equipment.sub ~= 'Aegis' and player.equipment.sub ~= 'Ochain' then
  725.             state.CombatForm:set('DW')
  726.         else
  727.             state.CombatForm:reset()
  728.         end
  729.     end
  730. end
  731.  
  732. function job_self_command(cmdParams, eventArgs)
  733.     if cmdParams[1]:lower() == 'rune' then
  734.         send_command('@input /ja '..state.Runes.value..' <me>')
  735.     end
  736. end
  737.  
  738. -- Select default macro book on initial load or subjob change.
  739. function select_default_macro_book()
  740.     -- Default macro set/book
  741.     if player.sub_job == 'WAR' then
  742.         set_macro_page(1, 8)
  743.     elseif player.sub_job == 'BLU' then
  744.         set_macro_page(2, 8)
  745.     elseif player.sub_job == 'SAM' then
  746.         set_macro_page(3, 8)
  747.     else
  748.         set_macro_page(1, 8)
  749.     end
  750. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement