Guest User

PLD Lua

a guest
Jul 1st, 2015
277
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 21.16 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.     include('organizer-lib')
  12.     sets.weapons = {}
  13.     sets.weapons[1] = {main="Burtgang"}
  14.     sets.weapons[2] = {main="Xiutleato"}
  15.     sets.weapons[3] = {main="Buramenk'ah"}
  16. end
  17.  
  18. -- Setup vars that are user-independent.  state.Buff vars initialized here will automatically be tracked.
  19. function job_setup()
  20.     state.Buff.Sentinel = buffactive.sentinel or false
  21.     state.Buff.Cover = buffactive.cover or false
  22.     state.Buff.Doom = buffactive.Doom or false
  23. end
  24.  
  25. -------------------------------------------------------------------------------------------------------------------
  26. -- User setup functions for this job.  Recommend that these be overridden in a sidecar file.
  27. -------------------------------------------------------------------------------------------------------------------
  28.  
  29. -- Setup vars that are user-dependent.  Can override this function in a sidecar file.
  30. function user_setup()
  31.     state.OffenseMode:options('Normal', 'Acc', 'Defence')
  32.     state.HybridMode:options('Normal', 'PDT', 'Reraise')
  33.     state.WeaponskillMode:options('Normal', 'Acc')
  34.     state.CastingMode:options('Normal', 'Resistant')
  35.     state.PhysicalDefenseMode:options('PDT', 'HP', 'Reraise', 'Charm')
  36.     state.MagicalDefenseMode:options('MDT', 'HP', 'Reraise', 'Charm')
  37.      
  38.     state.ExtraDefenseMode = M{['description']='Extra Defense Mode', 'None', 'MP', 'Knockback', 'MP_Knockback'}
  39.     state.EquipShield = M(false, 'Equip Shield w/Defense')
  40.  
  41.     update_defense_mode()
  42.      
  43.     send_command('bind ^f11 gs c cycle MagicalDefenseMode')
  44.     send_command('bind !f11 gs c cycle ExtraDefenseMode')
  45.     send_command('bind @f10 gs c toggle EquipShield')
  46.     send_command('bind @f11 gs c toggle EquipShield')
  47.  
  48.     select_default_macro_book()
  49. end
  50.  
  51. function user_unload()
  52.     send_command('unbind ^f11')
  53.     send_command('unbind !f11')
  54.     send_command('unbind @f10')
  55.     send_command('unbind @f11')
  56. end
  57.  
  58.  
  59. -- Define sets and vars used by this job file.
  60. function init_gear_sets()
  61.     --------------------------------------
  62.     -- Precast sets
  63.     --------------------------------------
  64.      
  65.     -- Precast sets to enhance JAs
  66.     sets.precast.JA['Invincible'] = {legs="Caballarius Breeches +1"}
  67.     sets.precast.JA['Holy Circle'] = {feet="Reverence Leggings +1"}
  68.     sets.precast.JA['Shield Bash'] = {hands="Caballarius Gauntlets +1"}
  69.     sets.precast.JA['Sentinel'] = {feet="Caballarius Leggings +1"}
  70.     sets.precast.JA['Rampart'] = {head="Caballarius Coronet +1"}
  71.     sets.precast.JA['Fealty'] = {body="Caballarius Surcoat +1"}
  72.     sets.precast.JA['Divine Emblem'] = {feet="chevalier's sabatons"}
  73.     sets.precast.JA['Cover'] = {head="Reverence Coronet +1"}
  74.  
  75.     -- add mnd for Chivalry
  76.     sets.precast.JA['Chivalry'] = {
  77.         head="Reverence Coronet +1",
  78.         body="Reverence Surcoat +1",hands="Reverence Gauntlets +1",ring1="Aquasoul Ring",ring2="Aquasoul Ring",
  79.         back="Weard Mantle",legs="Reverence Breeches +1",feet="Whirlpool Greaves"}
  80.      
  81.  
  82.     -- Waltz set (chr and vit)
  83.     sets.precast.Waltz = {
  84.         head="Reverence Coronet +1",
  85.         hands="Reverence Gauntlets +1",
  86.         legs="Reverence Breeches +1",feet="Whirlpool Greaves"}
  87.          
  88.     -- Don't need any special gear for Healing Waltz.
  89.     sets.precast.Waltz['Healing Waltz'] = {}
  90.      
  91.     sets.precast.Step = {waist="Chaac Belt"}
  92.     sets.precast.Flourish1 = {waist="Chaac Belt"}
  93.  
  94.     -- Fast cast sets for spells
  95.      
  96.     sets.precast.FC = {ammo="Incantor Stone",
  97.         head="Chevalier's Armet",ear2="Loquacious Earring",legs="Enif Cosciales"}
  98.  
  99.     sets.precast.FC['Enhancing Magic'] = set_combine(sets.precast.FC, {waist="Siegel Sash"})
  100.  
  101.        
  102.     -- Weaponskill sets
  103.     -- Default set for any weaponskill that isn't any more specifically defined
  104.     sets.precast.WS = {ammo="Ginsen",
  105.         head="Otomi Helm",neck=gear.ElementalGorget,ear1="Brutal Earring",ear2="Moonshade Earring",
  106.         body="Xaddi Mail",hands="Cizin Mufflers +1",ring1="Rajas Ring",ring2="Karieyh Ring",
  107.         back="Bleating Mantle",waist=gear.ElementalBelt,legs="Cizin Breeches +1",feet="Whirlpool Greaves"}
  108.  
  109.     sets.precast.WS.Acc = {ammo="Ginsen",
  110.         head="Yaoyotl Helm",neck=gear.ElementalGorget,ear1="Bladeborn Earring",ear2="Steelflash Earring",
  111.         body="Xaddi Mail",hands="Buremte Gloves",ring1="Rajas Ring",ring2="Patricius Ring",
  112.         back="Bleating Mantle",waist=gear.ElementalBelt,legs="Cizin Breeches +1",feet="Whirlpool Greaves"}
  113.  
  114.     -- Specific weaponskill sets.  Uses the base set if an appropriate WSMod version isn't found.
  115.     sets.precast.WS['Requiescat'] = set_combine(sets.precast.WS, {ring1="Aquasoul Ring",ring2="Aquasoul Ring"})
  116.     sets.precast.WS['Requiescat'].Acc = set_combine(sets.precast.WS.Acc, {ring1="Aquasoul Ring"})
  117.  
  118.     sets.precast.WS['Savage Blade'] = {ammo="Cheruski Needle",
  119.         head="Otomi Helm",neck="Breeze Gorget",ear1="Moonshade Earring",ear2="Brutal Earring",
  120.         body="Phorcys Korazin",hands="Cab. Gauntlets +1",ring1="Ifrit Ring",ring2="Ifrit Ring",
  121.         back="Bleating Mantle",waist="Windbuffet Belt +1",legs="Cab. Breeches +1",feet="Whirlpool Greaves"}
  122.          
  123.     sets.precast.WS['Savage Blade'] = {ammo="Cheruski Needle",
  124.         head="Otomi Helm",neck="Breeze Gorget",ear1="Moonshade Earring",ear2="Brutal Earring",
  125.         body="Phorcys Korazin",hands="Cab. Gauntlets +1",ring1="Ifrit Ring",ring2="Ifrit Ring",
  126.         back="Bleating Mantle",waist="Windbuffet Belt +1",legs="Cab. Breeches +1",feet="Whirlpool Greaves"}
  127.          
  128.     sets.precast.WS['Savage Blade'].Acc = set_combine(sets.precast.WS['Savage Blade'], {head="Yaoyotl Helm",body="Xaddi Mail",hands="Buremte Gloves"})
  129.      
  130.     sets.precast.WS['Chant du Cygne'] = set_combine(sets.precast.WS, {ammo="Jukikuk Feather",
  131.         neck="Breeze Gorget",legs="Mikinaak Cuisses",ring1="Ramuh Ring",ring2="Ramuh Ring",waist="Chiner's Belt +1"})
  132.     sets.precast.WS['Chant du Cygne'].Acc = set_combine(sets.precast.WS['Chant du Cygne'], {head="Yaoyotl Helm",neck="Iqabi Necklace",body="Xaddi Mail",hand="Buremte Gloves",waist="Breeze Belt"})
  133.  
  134.     sets.precast.WS['Sanguine Blade'] = {ammo="Ginsen",
  135.         head="Reverence Coronet +1",ear1="Friomisi Earring",ear2="Hecate's Earring",
  136.         body="Reverence Surcoat +1",hands="Reverence Gauntlets +1",ring1="Karieyh Ring",ring2="K'ayres Ring",
  137.         legs="Reverence Breeches +1",feet="Reverence Leggings +1"}
  138.      
  139.     sets.precast.WS['Atonement'] = {
  140.         head="Reverence Coronet +1",neck=gear.ElementalGorget,ear1="Creed Earring",ear2="Steelflash Earring",
  141.         body="Phorcys Korazin",hands="Reverence Gauntlets +1",ring1="Karieyh Ring",
  142.         waist=gear.ElementalBelt,legs="Ogier's Breeches",feet="Caballarius Leggings +1"}
  143.      
  144.     --------------------------------------
  145.     -- Midcast sets
  146.     --------------------------------------
  147.  
  148.     sets.midcast.FastRecast = {ammo="Incantor Stone",
  149.         head="Chevalier's Armet",
  150.         body="Nuevo Coselete",hands="Reverence Gauntlets +1",
  151.         waist="Zoran's Belt",legs="Enif Cosciales",feet="Reverence Leggings +1"}
  152.          
  153.     sets.midcast.Enmity = {
  154.         head="Reverence Coronet +1",neck="Invidia Torque",
  155.         body="Reverence Surcoat +1",hands="Reverence Gauntlets +1",ring1="Odium Ring",ring2="Hercules' Ring",
  156.         waist="Goading Belt",legs="Reverence Breeches +1",feet="Caballarius Leggings +1"}
  157.  
  158.     sets.midcast.Flash = set_combine(sets.midcast.Enmity, {ammo="Incantor Stone",head="Chevalier's Armet",body="Nuevo Coselete",legs="Enif Cosciales"})
  159.      
  160.     sets.midcast.Stun = sets.midcast.Flash
  161.      
  162.     sets.midcast.Cure = {
  163.         head="Adaman Barbuta",neck="Invidia Torque",ear1="Hospitaler Earring",ear2="Bloodgem Earring",
  164.         body="Reverence Surcoat +1",hands="Buremte Gloves",
  165.         legs="Reverence Breeches +1",feet="Caballarius Leggings +1"}
  166.  
  167.     sets.midcast['Enhancing Magic'] = {legs="Reverence Breeches +1"}
  168.      
  169.     sets.midcast['Divine Magic'] = {body="Reverence Surcoat +1",ear2="Beatific Earring"}
  170.      
  171.     sets.midcast.Phalanx = {legs="Reverence Breeches +1",back="Weard Mantle"}
  172.      
  173.     sets.midcast.Protect = {ring1="Sheltered Ring"}
  174.     sets.midcast.Shell = {ring1="Sheltered Ring"}
  175.      
  176.     --------------------------------------
  177.     -- Idle/resting/defense/etc sets
  178.     --------------------------------------
  179.  
  180.     sets.Reraise = {head="Twilight Helm", body="Twilight Mail"}
  181.      
  182.     sets.resting = {head="Twilight Helm",neck="Creed Collar",
  183.         body="Ares' Cuirass +1"}
  184.      
  185.  
  186.     -- Idle sets
  187.     sets.idle = {ammo="Angha Gem",
  188.         head="Twilight Helm",neck="Creed Collar",ear1="Creed Earring",ear2="Bloodgem Earring",
  189.         body="Ares' Cuirass +1",hands="Reverence Gauntlets +1",ring1="K'ayres Ring",ring2="Meridian Ring",
  190.         back="Weard Mantle",waist="Flume Belt",legs="Crimson Cuisses",feet="Reverence Leggings +1"}
  191.  
  192.     sets.idle.Town = {ammo="Angha Gem",
  193.         main="Burtgang",sub="Ochain",ammo="Incantor Stone",
  194.         head="Twilight Helm",neck="Creed Collar",ear1="Creed Earring",ear2="Bloodgem Earring",
  195.         body="Ares' Cuirass +1",hands="Reverence Gauntlets +1",ring1="K'ayres Ring",ring2="Meridian Ring",
  196.         back="Weard Mantle",waist="Flume Belt",legs="Crimson Cuisses",feet="Reverence Leggings +1"}
  197.      
  198.     sets.idle.Weak = {ammo="Angha Gem",
  199.         head="Reverence Coronet +1",neck="Creed Collar",ear1="Creed Earring",ear2="Bloodgem Earring",
  200.         body="Reverence Surcoat +1",hands="Reverence Gauntlets +1",ring1="K'ayres Ring",ring2="Meridian Ring",
  201.         back="Weard Mantle",waist="Flume Belt",legs="Crimson Cuisses",feet="Reverence Leggings +1"}
  202.      
  203.     sets.idle.Weak.Reraise = set_combine(sets.idle.Weak, sets.Reraise)
  204.      
  205.     sets.Kiting = {legs="Crimson Cuisses"}
  206.  
  207.     sets.latent_refresh = {waist="Fucho-no-obi"}
  208.  
  209.  
  210.     --------------------------------------
  211.     -- Defense sets
  212.     --------------------------------------
  213.      
  214.     -- Extra defense sets.  Apply these on top of melee or defense sets.
  215.     sets.Knockback = {back="Repulse Mantle"}
  216.     sets.MP = {neck="Creed Collar",waist="Flume Belt"}
  217.     sets.MP_Knockback = {neck="Creed Collar",waist="Flume Belt",back="Repulse Mantle"}
  218.      
  219.     -- If EquipShield toggle is on (Win+F10 or Win+F11), equip the weapon/shield combos here
  220.     -- when activating or changing defense mode:
  221.     sets.PhysicalShield = {main="Burtgang",sub="Ochain"} -- Ochain
  222.     sets.MagicalShield = {main="Burtgang",sub="Aegis"} -- Aegis
  223.  
  224.     -- Basic defense sets.
  225.          
  226.     sets.defense.PDT = {ammo="Angha Gem",
  227.         head="Reverence Coronet +1",neck="Twilight Torque",ear1="Creed Earring",ear2="Ethereal Earring",
  228.         body="Reverence Surcoat +1",hands="Cizin Mufflers +1",ring1="Patricius Ring",ring2="Gelatinous Ring +1",
  229.         back="Repulse Mantle",waist="Flume Belt",legs="Reverence Breeches +1",feet="Cizin Greaves +1"}
  230.     sets.defense.HP = {ammo="Brigantia Pebble",
  231.         head="Reverence Coronet +1",neck="Twilight Torque",ear1="Creed Earring",ear2="Bloodgem Earring",
  232.         body="Reverence Surcoat +1",hands="Caballarius Gauntlets +1",ring1="Patricius Ring",ring2="Meridian Ring",
  233.         back="Weard Mantle",waist="Creed Baudrier",legs="Reverence Breeches +1",feet="Reverence Leggings +1"}
  234.     sets.defense.Reraise = {ammo="Brigantia Pebble",
  235.         head="Twilight Helm",neck="Twilight Torque",ear1="Creed Earring",ear2="Bloodgem Earring",
  236.         body="Twilight Mail",hands="Cizin Mufflers +1",ring1="Patricius Ring",ring2="Gelatinous Ring +1",
  237.         back="Repulse Mantle",waist="Flume Belt",legs="Reverence Breeches +1",feet="Cizin Greaves +1"}
  238.     sets.defense.Charm = {ammo="Brigantia Pebble",
  239.         head="Reverence Coronet +1",neck="Twilight Torque",ear1="Creed Earring",ear2="Ethereal Earring",
  240.         body="Reverence Surcoat +1",hands="Cizin Mufflers +1",ring1="Patricius Ring",ring2="Gelatinous Ring +1",
  241.         back="Repulse Mantle",waist="Flume Belt",legs="Reverence Breeches +1",feet="Cizin Greaves +1"}
  242.     -- To cap MDT with Shell IV (52/256), need 76/256 in gear.
  243.     -- Shellra V can provide 75/256, which would need another 53/256 in gear.
  244.     sets.defense.MDT = {ammo="Demonry Stone",
  245.         head="Reverence Coronet +1",neck="Twilight Torque",ear1="Creed Earring",ear2="Bloodgem Earring",
  246.         body="Reverence Surcoat +1",hands="Reverence Gauntlets +1",ring1="Patricius Ring",ring2="Shadow Ring",
  247.         back="Weard Mantle",waist="Creed Baudrier",legs="Caballarius Breeches +1",feet="Caballarius Leggings +1"}
  248.  
  249.  
  250.     --------------------------------------
  251.     -- Engaged sets
  252.     --------------------------------------
  253.      
  254.     sets.engaged = {ammo="Ginsen",
  255.         head="Otomi Helm",neck="Asperity Necklace",ear1="Bladeborn Earring",ear2="Steelflash Earring",
  256.         body="Xaddi Mail",hands="Cizin Mufflers +1",ring1="Rajas Ring",ring2="K'ayres Ring",
  257.         back="Bleating Mantle",waist="Windbuffet Belt +1",legs="Cizin Breeches +1",feet="Whirlpool Greaves"}
  258.  
  259.     sets.engaged.Acc = {ammo="Ginsen",
  260.         head="Yaoyotl Helm",neck="Iqabi Necklace",ear1="Bladeborn Earring",ear2="Steelflash Earring",
  261.         body="Xaddi Mail",hands="Buremte Gloves",ring1="Rajas Ring",ring2="Patricius Ring",
  262.         back="Weard Mantle",waist="Anguinus Belt",legs="Acro Breeches",feet="Whirlpool Greaves"}
  263.  
  264.     sets.engaged.Defence = {ammo="Angha Gem",
  265.         head="Ighwa Cap",neck="Agitator's Collar",ear1="Steelflash Earring",ear2="Bladeborn Earring",
  266.         body="Emet Harness +1",hands="Umuthi Gloves",ring1="Patricius Ring",ring2="Gelatinous Ring +1",
  267.         back="Weard Mantle",waist="Flume Belt",legs="Cizin Breeches +1",feet="Xaddi Boots"}
  268.          
  269.     sets.engaged.DW = {ammo="Ginsen",
  270.         head="Otomi Helm",neck="Asperity Necklace",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
  271.         body="Xaddi Mail",hands="Cizin Mufflers +1",ring1="Rajas Ring",ring2="K'ayres Ring",
  272.         back="Bleating Mantle",waist="Windbuffet Belt +1",legs="Cizin Breeches +1",feet="Whirlpool Greaves"}
  273.  
  274.     sets.engaged.DW.Acc = set_combine(sets.engaged.Acc, {ear1="Dudgeon Earring",ear2="Heartseeker Earring"})
  275.  
  276.     sets.engaged.PDT = set_combine(sets.engaged, {body="Reverence Surcoat +1",neck="Twilight Torque",ring1="Patricius Ring"})
  277.     sets.engaged.Acc.PDT = set_combine(sets.engaged.Acc, {body="Reverence Surcoat +1",neck="Twilight Torque",ring1="Patricius Ring"})
  278.     sets.engaged.Reraise = set_combine(sets.engaged, sets.Reraise)
  279.     sets.engaged.Acc.Reraise = set_combine(sets.engaged.Acc, sets.Reraise)
  280.  
  281.     sets.engaged.DW.PDT = set_combine(sets.engaged.DW, {body="Reverence Surcoat +1",neck="Twilight Torque",ring1="Patricius Ring"})
  282.     sets.engaged.DW.Acc.PDT = set_combine(sets.engaged.DW.Acc, {body="Reverence Surcoat +1",neck="Twilight Torque",ring1="Patricius Ring"})
  283.     sets.engaged.DW.Reraise = set_combine(sets.engaged.DW, sets.Reraise)
  284.     sets.engaged.DW.Acc.Reraise = set_combine(sets.engaged.DW.Acc, sets.Reraise)
  285.  
  286.  
  287.     --------------------------------------
  288.     -- Custom buff sets
  289.     --------------------------------------
  290.  
  291.     sets.buff.Doom = {ring2="Ephedra Ring"}
  292.     sets.buff.Cover = {head="Reverence Coronet +1", body="Caballarius Surcoat +1"}
  293. end
  294.  
  295.  
  296. -------------------------------------------------------------------------------------------------------------------
  297. -- Job-specific hooks for standard casting events.
  298. -------------------------------------------------------------------------------------------------------------------
  299.  
  300. function job_midcast(spell, action, spellMap, eventArgs)
  301.     -- If DefenseMode is active, apply that gear over midcast
  302.     -- choices.  Precast is allowed through for fast cast on
  303.     -- spells, but we want to return to def gear before there's
  304.     -- time for anything to hit us.
  305.     -- Exclude Job Abilities from this restriction, as we probably want
  306.     -- the enhanced effect of whatever item of gear applies to them,
  307.     -- and only one item should be swapped out.
  308.     if state.DefenseMode.value ~= 'None' and spell.type ~= 'JobAbility' then
  309.         handle_equipping_gear(player.status)
  310.         eventArgs.handled = true
  311.     end
  312. end
  313.  
  314. -------------------------------------------------------------------------------------------------------------------
  315. -- Job-specific hooks for non-casting events.
  316. -------------------------------------------------------------------------------------------------------------------
  317.  
  318. -- Called when the player's status changes.
  319. function job_state_change(field, new_value, old_value)
  320.     classes.CustomDefenseGroups:clear()
  321.     classes.CustomDefenseGroups:append(state.ExtraDefenseMode.current)
  322.     if state.EquipShield.value == true then
  323.         classes.CustomDefenseGroups:append(state.DefenseMode.current .. 'Shield')
  324.     end
  325.  
  326.     classes.CustomMeleeGroups:clear()
  327.     classes.CustomMeleeGroups:append(state.ExtraDefenseMode.current)
  328. end
  329.  
  330. -------------------------------------------------------------------------------------------------------------------
  331. -- User code that supplements standard library decisions.
  332. -------------------------------------------------------------------------------------------------------------------
  333.  
  334. -- Called by the 'update' self-command, for common needs.
  335. -- Set eventArgs.handled to true if we don't want automatic equipping of gear.
  336. function job_update(cmdParams, eventArgs)
  337.     update_defense_mode()
  338. end
  339.  
  340. -- Modify the default idle set after it was constructed.
  341. function customize_idle_set(idleSet)
  342.     if player.mpp < 51 then
  343.         idleSet = set_combine(idleSet, sets.latent_refresh)
  344.     end
  345.     if state.Buff.Doom then
  346.         idleSet = set_combine(idleSet, sets.buff.Doom)
  347.     end
  348.      
  349.     return idleSet
  350. end
  351.  
  352. -- Modify the default melee set after it was constructed.
  353. function customize_melee_set(meleeSet)
  354.     if state.Buff.Doom then
  355.         meleeSet = set_combine(meleeSet, sets.buff.Doom)
  356.     end
  357.      
  358.     return meleeSet
  359. end
  360.  
  361. function customize_defense_set(defenseSet)
  362.     if state.ExtraDefenseMode.value ~= 'None' then
  363.         defenseSet = set_combine(defenseSet, sets[state.ExtraDefenseMode.value])
  364.     end
  365.      
  366.     if state.EquipShield.value == true then
  367.         defenseSet = set_combine(defenseSet, sets[state.DefenseMode.current .. 'Shield'])
  368.     end
  369.      
  370.     if state.Buff.Doom then
  371.         defenseSet = set_combine(defenseSet, sets.buff.Doom)
  372.     end
  373.      
  374.     return defenseSet
  375. end
  376.  
  377.  
  378. function display_current_job_state(eventArgs)
  379.     local msg = 'Melee'
  380.      
  381.     if state.CombatForm.has_value then
  382.         msg = msg .. ' (' .. state.CombatForm.value .. ')'
  383.     end
  384.      
  385.     msg = msg .. ': '
  386.      
  387.     msg = msg .. state.OffenseMode.value
  388.     if state.HybridMode.value ~= 'Normal' then
  389.         msg = msg .. '/' .. state.HybridMode.value
  390.     end
  391.     msg = msg .. ', WS: ' .. state.WeaponskillMode.value
  392.      
  393.     if state.DefenseMode.value ~= 'None' then
  394.         msg = msg .. ', Defense: ' .. state.DefenseMode.value .. ' (' .. state[state.DefenseMode.value .. 'DefenseMode'].value .. ')'
  395.     end
  396.  
  397.     if state.ExtraDefenseMode.value ~= 'None' then
  398.         msg = msg .. ', Extra: ' .. state.ExtraDefenseMode.value
  399.     end
  400.      
  401.     if state.EquipShield.value == true then
  402.         msg = msg .. ', Force Equip Shield'
  403.     end
  404.      
  405.     if state.Kiting.value == true then
  406.         msg = msg .. ', Kiting'
  407.     end
  408.  
  409.     if state.PCTargetMode.value ~= 'default' then
  410.         msg = msg .. ', Target PC: '..state.PCTargetMode.value
  411.     end
  412.  
  413.     if state.SelectNPCTargets.value == true then
  414.         msg = msg .. ', Target NPCs'
  415.     end
  416.  
  417.     add_to_chat(122, msg)
  418.  
  419.     eventArgs.handled = true
  420. end
  421.  
  422. -------------------------------------------------------------------------------------------------------------------
  423. -- Utility functions specific to this job.
  424. -------------------------------------------------------------------------------------------------------------------
  425.  
  426. function update_defense_mode()
  427.     if player.equipment.main == 'Kheshig Blade' and not classes.CustomDefenseGroups:contains('Kheshig Blade') then
  428.         classes.CustomDefenseGroups:append('Kheshig Blade')
  429.     end
  430.      
  431.     if player.sub_job == 'NIN' or player.sub_job == 'DNC' then
  432.         if player.equipment.sub and not player.equipment.sub:contains('Shield') and
  433.            player.equipment.sub ~= 'Aegis' and player.equipment.sub ~= 'Ochain' then
  434.             state.CombatForm:set('DW')
  435.         else
  436.             state.CombatForm:reset()
  437.         end
  438.     end
  439. end
  440.  
  441.  
  442. -- Select default macro book on initial load or subjob change.
  443. function select_default_macro_book()
  444.     -- Default macro set/book
  445.     if player.sub_job == 'DNC' then
  446.         set_macro_page(1, 1)
  447.     elseif player.sub_job == 'NIN' then
  448.         set_macro_page(1, 1)
  449.     elseif player.sub_job == 'RDM' then
  450.         set_macro_page(1, 1)
  451.     else
  452.         set_macro_page(1, 1)
  453.     end
  454. end
Advertisement
Add Comment
Please, Sign In to add comment