Loire

DickyBlackMageHoshi

Sep 13th, 2015
179
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 17.95 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.    
  17. end
  18.  
  19. -------------------------------------------------------------------------------------------------------------------
  20. -- User setup functions for this job.  Recommend that these be overridden in a sidecar file.
  21. -------------------------------------------------------------------------------------------------------------------
  22.  
  23. -- Setup vars that are user-dependent.  Can override this function in a sidecar file.
  24. function user_setup()
  25.     state.OffenseMode:options('None', 'Normal')
  26.     state.CastingMode:options('Normal', 'Resistant')
  27.     state.IdleMode:options('Normal', 'PDT')
  28.  
  29.     state.dicks = M(true, 'All the dicks')    
  30.     state.MagicBurst = M(false, 'Magic Burst')
  31.     state.ArtifactBody = M(false, 'Use AF Body')
  32.     lowTierNukes = S{'Stone', 'Water', 'Aero', 'Fire', 'Blizzard', 'Thunder',
  33.         'Stone II', 'Water II', 'Aero II', 'Fire II', 'Blizzard II', 'Thunder II',
  34.         'Stone III', 'Water III', 'Aero III', 'Fire III', 'Blizzard III', 'Thunder III',
  35.         'Stonega', 'Waterga', 'Aeroga', 'Firaga', 'Blizzaga', 'Thundaga',
  36.         'Stonega II', 'Waterga II', 'Aeroga II', 'Firaga II', 'Blizzaga II', 'Thundaga II'}
  37.  
  38.     gear.DarkRing = {}
  39.     gear.DarkRing_1 = {name="Dark Ring", augments={'Phys. dmg. taken -6%','Magic dmg. taken -5%','Breath dmg. taken -5%',}}
  40.     gear.DarkRing_2 = {name="Dark Ring", augments={'Breath dmg. taken -6%','Magic dmg. taken -4%','Phys. dmg. taken -4%',}}
  41.     gear.default.obi_waist = "Yamabuki-no-Obi"
  42.     gear.default.obi_back = "Toro Cape"
  43.     gear.default.obi_ring = "Shiva Ring +1"
  44.     elements.obi_of = {['Light']='Hachirin-no-obi', ['Dark']='Hachirin-no-obi', ['Fire']='Hachirin-no-obi',
  45.                     ['Ice']='Hachirin-no-obi', ['Wind']='Hachirin-no-obi',['Earth']='Hachirin-no-obi',
  46.                     ['Lightning']='Hachirin-no-obi', ['Water']='Hachirin-no-obi'}
  47.      
  48.     -- Additional local binds
  49.     send_command('bind ^` gs c toggle ArtifactBody') -- Control ` turns AF body on and off
  50.     send_command('bind !` gs c toggle MagicBurst') -- Alt ` turns magic burst set on and off
  51.     send_command('bind f9 input /equip main "Keraunos"; input /equip sub "Zuuxowu Grip"; gs disable main; gs disable sub;') -- F9 Locks your staff and grip slots so you wont lose TP
  52.     send_command('bind !f9 gs enable main; gs enable sub;') -- Alt F9 enables staff and grip slot, so other weapons/grip can swap
  53.     send_command('bind f10 gs c set DefenseMode Physical') -- F10 turns PDT gear on, after spells/JAs you will return to PDT set automatically
  54.     send_command('bind f11 gs c set DefenseMode Magical') -- F11 turns MDT gear on, same as above for PDT
  55.     send_command('bind ^f11 gs c cycle CastingMode') -- Control F11 changes your casting mode between normal and resistant (magic accuracy)
  56.     send_command('bind f12 gs c update user') -- F12 forces an update (gear changes and other file options), also displays some current info
  57.     send_command('bind ^f12 gs c cycle IdleMode') -- Control F12 changes idle mode between idle and idle PDT, you shouldn't need to use this
  58.     send_command('bind !f12 gs c reset DefenseMode') -- Alt F12 clears your PDT or MDT and turns you to normal idle sets
  59.  
  60.     send_command('bind ^= gs c cycle pctargetmode')
  61.  
  62.     send_command('bind !- gs c toggle dicks')  
  63.    
  64.     select_default_macro_book()
  65. end
  66.  
  67. -- Called when this job file is unloaded (eg: job change)
  68. function user_unload()
  69.     send_command('unbind ^`')
  70.     send_command('unbind @`')
  71. end
  72.  
  73.  
  74. -- Define sets and vars used by this job file.
  75. function init_gear_sets()
  76.     --------------------------------------
  77.     -- Start defining the sets
  78.     --------------------------------------
  79.    
  80.     ---- Precast Sets ----
  81.    
  82.     -- Precast sets to enhance JAs
  83.     sets.precast.JA['Mana Wall'] = {feet="Goetia Sabots +2"}
  84.  
  85.     sets.precast.JA.Manafont = {body="Sorcerer's Coat +2"}
  86.    
  87.     -- equip to maximize HP (for Tarus) and minimize MP loss before using convert
  88.     sets.precast.JA.Convert = {}
  89.  
  90.  
  91.     -- Fast cast sets for spells
  92.  
  93.     sets.precast.FC = {ammo="Impatiens",
  94.         head="Nahtirah Hat",neck="Voltsurge Torque",ear1="Etiolation Earring",ear2="Loquacious Earring",
  95.         hands="Telchine Gloves",ring1="Prolix Ring",
  96.         back="Swith Cape +1",waist="Witful Belt",legs="Artsieq Hose",feet="Regal Pumps +1"}
  97.  
  98.     sets.precast.FC['Enhancing Magic'] = set_combine(sets.precast.FC, {waist="Siegel Sash"})
  99.     sets.precast.FC.Stoneskin = set_combine(sets.precast.FC, {head="Umuthi Hat",waist="Siegel Sash"})
  100.     sets.precast.FC['Elemental Magic'] = sets.precast.FC
  101.  
  102.     sets.precast.FC.Cure = set_combine(sets.precast.FC, {body="Heka's Kalasiris", back="Pahtli Cape"})
  103.  
  104.     sets.precast.FC.Curaga = sets.precast.FC.Cure
  105.  
  106.     -- Weaponskill sets
  107.     -- Default set for any weaponskill that isn't any more specifically defined
  108.    
  109.     -- You can add gear to this set if you plan on doing any weaponskills not defined below
  110.     sets.precast.WS = {}
  111.  
  112.     -- Specific weaponskill sets.  Uses the base set if an appropriate WSMod version isn't found.
  113.     sets.precast.WS['Vidohunir'] = {{main="Keraunos",sub="Zuuxowu Grip",ammo="Ghastly Tathlum +1",
  114.         head="Helios Band",neck="Eddy Necklace",ear1="Friomisi Earring",ear2="Crematio Earring",
  115.         body="Witching Robe",hands="Helios Gloves",ring1="Shiva Ring +1",ring2="Shiva Ring +1",
  116.         back="Bane Cape",waist="Escha Stone",legs="Hagondes Pants +1",feet="Helios Boots"}}
  117.    
  118.     sets.precast.WS['Myrkr'] = {ammo="Ghastly Tathlum +1",
  119.         head="Pixie Hairpin +1",neck="Fotia Gorget",ear1="Influx Earring",ear2="Moonshade Earring",
  120.         body="Weatherspoon Robe +1",hands="Otomi Gloves",ring1="Sangoma Ring",ring2="Fenrir Ring +1",
  121.         back="Pahtli Cape",waist="Fotia Belt",legs="Spaekona's Tonban +1",feet="Weatherspoon Souliers +1"}
  122.    
  123.     ---- Midcast Sets ----
  124.  
  125.     sets.midcast.FastRecast = {ammo="Impatiens",
  126.         head="Nahtirah Hat",neck="Voltsurge Torque",ear2="Loquacious Earring",
  127.         body="Artsieq Jubbah",hands="Telchine Gloves",ring1="Prolix Ring",
  128.         back="Swith Cape +1",waist="Witful Belt",legs="Artsieq Hose",feet="Regal Pumps +1"}
  129.  
  130.     sets.midcast.Cure = {main="Arka IV",sub="Mephitis Grip",
  131.         head="Nahtirah Hat",neck="Phalaina Locket",ear2="Loquacious Earring",
  132.         body="Heka's Kalasiris",hands="Bokwus Gloves",ring1="Prolix Ring",
  133.         back="Pahtli Cape",waist=gear.ElementalObi,legs="Mes'yohi Slacks",feet="Regal Pumps +1"}
  134.  
  135.     sets.midcast.Curaga = sets.midcast.Cure
  136.  
  137.     sets.midcast['Enhancing Magic'] = {main="Kirin's Pole",
  138.         head="Umuthi Hat",ear1="Andoaa Earring",
  139.         feet="Regal Pumps +1"}
  140.    
  141.     sets.midcast.Stoneskin = set_combine(sets.midcast['Enhancing Magic'], {waist="Siegel Sash"})
  142.  
  143.     sets.midcast['Enfeebling Magic'] = {main="Keraunos",sub="Mephitis Grip",ammo="Ghastly Tathlum +1",
  144.         head="Nahtirah Hat",neck="Imbodla Necklace",ear1="Psystorm Earring",ear2="Lifestorm Earring",
  145.         body="Vanya Robe",hands="Lurid Mitts",ring1="Sangoma Ring",ring2="Fenrir Ring +1",
  146.         back="Refraction Cape",waist="Rumination Sash",legs="Psycloth Lappas",feet="Medium's Sabots"}
  147.        
  148.     sets.midcast.ElementalEnfeeble = sets.midcast['Enfeebling Magic']
  149.  
  150.     sets.midcast['Dark Magic'] = {main="Keraunos",sub="Mephitis Grip",ammo="Ghastly Tathlum +1",
  151.         head="Nahtirah Hat",neck="Eddy Necklace",ear1="Psystorm Earring",ear2="Lifestorm Earring",
  152.         body="Wretched Coat",hands="Lurid Mitts",ring1="Sangoma Ring",ring2="Fenrir Ring +1",
  153.         back="Bane Cape",waist="Witful Belt",legs="Artsieq Hose",feet="Regal Pumps +1"}
  154.  
  155.     sets.midcast.Drain = {main="Keraunos",sub="Mephitis Grip",ammo="Ghastly Tathlum +1",
  156.         head="Nahtirah Hat",neck="Eddy Necklace",ear1="Psystorm Earring",ear2="Lifestorm Earring",
  157.         body="Wretched Coat",hands="Lurid Mitts",ring1="Sangoma Ring",ring2="Fenrir Ring +1",
  158.         back="Bane Cape",waist="Fucho-no-Obi",legs="Artsieq Hose",feet="Regal Pumps +1"}
  159.    
  160.     sets.midcast.Aspir = sets.midcast.Drain
  161.  
  162.     sets.midcast.Stun = {main="Keraunos",sub="Mephitis Grip",ammo="Ghastly Tathlum +1",
  163.         head="Nahtirah Hat",neck="Eddy Necklace",ear1="Psystorm Earring",ear2="Lifestorm Earring",
  164.         body="Wretched Coat",hands="Lurid Mitts",ring1="Sangoma Ring",ring2="Fenrir Ring +1",
  165.         back="Bane Cape",waist="Witful Belt",legs="Artsieq Hose",feet="Regal Pumps +1"}
  166.  
  167.  
  168.     -- Elemental Magic sets
  169.    
  170.     sets.midcast['Elemental Magic'] = {main="Keraunos",sub="Zuuxowu Grip",ammo="Ghastly Tathlum +1",
  171.         head="Helios Band",neck="Eddy Necklace",ear1="Friomisi Earring",ear2="Crematio Earring",
  172.         body="Witching Robe",hands="Helios Gloves",ring1="Shiva Ring +1",ring2="Shiva Ring +1",
  173.         back="Bane Cape",waist=gear.ElementalObi,legs="Hagondes Pants +1",feet="Helios Boots"}
  174.  
  175.         -- More magic accuracy & skill in this set
  176.     sets.midcast['Elemental Magic'].Resistant = {main="Keraunos",sub="Willpower Grip",ammo="Ghastly Tathlum +1",
  177.         head="Helios Band",neck="Eddy Necklace",ear1="Friomisi Earring",ear2="Crematio Earring",
  178.         body="Wretched Coat",hands="Helios Gloves",ring1="Shiva Ring +1",ring2="Shiva Ring +1",
  179.         back="Bane Cape",waist=gear.ElementalObi,legs="Hagondes Pants +1",feet="Helios Boots"}
  180.        
  181.         -- Not much changes here, this is for higher tier spells, you can use more INT/MAB then magic damage.
  182.     sets.midcast['Elemental Magic'].HighTierNuke = set_combine(sets.midcast['Elemental Magic'], {sub="Willpower Grip"},{back="Toro Cape"})
  183.     sets.midcast['Elemental Magic'].HighTierNuke.Resistant = set_combine(sets.midcast['Elemental Magic'], {back="Toro Cape"})
  184.  
  185.     sets.af_body = {body="Spae. Coat +1"}
  186.    
  187.     -- Sets to return to when not performing an action.
  188.    
  189.     -- Resting sets
  190.     sets.resting = {ammo="Clarus Stone",
  191.         head=empty,ear1="Magnetic Earring",
  192.         body="Respite Cloak",hands="Serpentes Cuffs",ring1="Sheltered Ring",
  193.         waist="Austerity Belt",legs="Assid. Pants +1",feet="Serpentes Sabots"}
  194.    
  195.  
  196.     -- Idle sets
  197.    
  198.     -- Normal refresh idle set
  199.     sets.idle = {ammo="Ghastly Tathlum +1",
  200.         head=empty,neck="Twilight Torque",ear1="Loquacious Earring",ear2="Sanare Earring",
  201.         body="Respite Cloak",hands="Serpentes Cuffs",ring1=gear.DarkRing_1,ring2="Defending Ring",
  202.         back="Kumbira Cape",waist="Fucho-no-Obi",legs="Assid. Pants +1",feet="Serpentes Sabots"}
  203.  
  204.     -- Idle mode that keeps PDT gear on, but doesn't prevent normal gear swaps for precast/etc.
  205.     sets.idle.PDT = {ammo="Ghastly Tathlum +1",
  206.         head=empty,neck="Twilight Torque",ear1="Etiolation Earring",ear2="Sanare Earring",
  207.         body="Respite Cloak",hands="Serpentes Cuffs",ring1=gear.DarkRing_1,ring2="Defending Ring",
  208.         back="Kumbira Cape",waist="Fucho-no-Obi",legs="Assid. Pants +1",feet="Serpentes Sabots"}
  209.  
  210.     -- Idle mode scopes:
  211.     -- Idle mode when weak.
  212.     sets.idle.Weak = {ammo="Ghastly Tathlum +1",
  213.         head=empty,neck="Twilight Torque",ear1="Etiolation Earring",ear2="Sanare Earring",
  214.         body="Respite Cloak",hands="Serpentes Cuffs",ring1=gear.DarkRing_1,ring2="Defending Ring",
  215.         back="Kumbira Cape",waist="Fucho-no-Obi",legs="Assid. Pants +1",feet="Serpentes Sabots"}
  216.    
  217.     -- Town gear.
  218.     sets.idle.Town = {ammo="Ghastly Tathlum +1",
  219.         head=empty,neck="Twilight Torque",ear1="Etiolation Earring",ear2="Sanare Earring",
  220.         body="Respite Cloak",hands="Serpentes Cuffs",ring1=gear.DarkRing_1,ring2="Defending Ring",
  221.         back="Kumbira Cape",waist="Fucho-no-Obi",legs="Assid. Pants +1",feet="Serpentes Sabots"}
  222.        
  223.     -- Defense sets
  224.  
  225.     sets.defense.PDT = {
  226.         head="Hagondes Hat +1",neck="Twilight Torque",ear1="Etiolation Earring",ear2="Sanare Earring",
  227.         body="Hagondes Coat +1",hands="Helios Gloves",ring1=gear.DarkRing_1,ring2="Defending Ring",
  228.         back="Kumbira Cape",waist="Lieutenant's Sash",legs="Hagondes Pants +1",feet="Hagondes Sabots"}
  229.  
  230.     sets.defense.MDT = {ammo="Demonry Stone",
  231.         head="Hagondes Hat +1",neck="Twilight Torque",ear1="Etiolation Earring",ear2="Sanare Earring",
  232.         body="Hagondes Coat +1",hands="Helios Gloves",ring1=gear.DarkRing_1,ring2="Defending Ring",
  233.         back="Kumbira Cape",waist="Lieutenant's Sash",legs="Hagondes Pants +1",feet="Hagondes Sabots"}
  234.  
  235.     sets.Kiting = {feet="Herald's Gaiters"}
  236.  
  237.     sets.latent_refresh = {waist="Fucho-no-obi"}
  238.  
  239.     -- Buff sets: Gear that needs to be worn to actively enhance a current player buff.
  240.    
  241.     sets.buff['Mana Wall'] = {feet="Goetia Sabots +2"}
  242.  
  243.     sets.magic_burst = {main="Keraunos",
  244.         head="Helios Band",neck="Mizukage-no-Kubikazari",
  245.         body="Wretched Coat",hands="Helios Gloves",ring1="Locus Ring",ring2="Mujin Band",
  246.         back="Seshaw Cape"}
  247.  
  248.     -- Engaged sets
  249.  
  250.     -- Variations for TP weapon and (optional) offense/defense modes.  Code will fall back on previous
  251.     -- sets if more refined versions aren't defined.
  252.     -- If you create a set with both offense and defense modes, the offense mode should be first.
  253.     -- EG: sets.engaged.Dagger.Accuracy.Evasion
  254.    
  255.     -- Normal melee group
  256.     sets.engaged = {ammo="Ghastly Tathlum +1",
  257.         head=empty,neck="Twilight Torque",ear1="Etiolation Earring",ear2="Sanare Earring",
  258.         body="Respite Cloak",hands="Serpentes Cuffs",ring1=gear.DarkRing_1,ring2="Defending Ring",
  259.         back="Kumbira Cape",waist="Fucho-no-Obi",legs="Assid. Pants +1",feet="Serpentes Sabots"}
  260. end
  261.  
  262. -------------------------------------------------------------------------------------------------------------------
  263. -- Job-specific hooks for standard casting events.
  264. -------------------------------------------------------------------------------------------------------------------
  265.  
  266. -- Set eventArgs.handled to true if we don't want any automatic gear equipping to be done.
  267. -- Set eventArgs.useMidcastGear to true if we want midcast gear equipped on precast.
  268. function job_precast(spell, action, spellMap, eventArgs)
  269.    
  270. end
  271.  
  272.  
  273. -- Set eventArgs.handled to true if we don't want any automatic gear equipping to be done.
  274. function job_midcast(spell, action, spellMap, eventArgs)
  275.  
  276. end
  277.  
  278. function job_post_midcast(spell, action, spellMap, eventArgs)
  279.     if spell.skill == 'Elemental Magic' and state.MagicBurst.value then
  280.         equip(sets.magic_burst)
  281.     elseif spell.skill == 'Elemental Magic' and state.ArtifactBody.value then
  282.         equip(sets.af_body)
  283.     end
  284. end
  285.  
  286. function job_aftercast(spell, action, spellMap, eventArgs)
  287.     -- Lock feet after using Mana Wall.
  288.     if not spell.interrupted then
  289.         if spell.english == 'Mana Wall' then
  290.             enable('feet')
  291.             equip(sets.buff['Mana Wall'])
  292.             disable('feet')
  293.         --elseif spell.skill == 'Elemental Magic' then
  294.             --state.MagicBurst:reset()
  295.         end
  296.     end
  297. end
  298.  
  299. -------------------------------------------------------------------------------------------------------------------
  300. -- Job-specific hooks for non-casting events.
  301. -------------------------------------------------------------------------------------------------------------------
  302.  
  303. -- Called when a player gains or loses a buff.
  304. -- buff == buff gained or lost
  305. -- gain == true if the buff was gained, false if it was lost.
  306. function job_buff_change(buff, gain)
  307.     -- Unlock feet when Mana Wall buff is lost.
  308.     if buff == "Mana Wall" and not gain then
  309.         enable('feet')
  310.         handle_equipping_gear(player.status)
  311.     end
  312. end
  313.  
  314. -- Handle notifications of general user state change.
  315. function job_state_change(stateField, newValue, oldValue)
  316.     --[[if stateField == 'Offense Mode' then
  317.         if newValue == 'Normal' then
  318.             disable('main','sub','range')
  319.         else
  320.             enable('main','sub','range')
  321.         end
  322.     end]]--
  323. end
  324.  
  325.  
  326. -------------------------------------------------------------------------------------------------------------------
  327. -- User code that supplements standard library decisions.
  328. -------------------------------------------------------------------------------------------------------------------
  329.  
  330. -- Custom spell mapping.
  331. function job_get_spell_map(spell, default_spell_map)
  332.     if spell.skill == 'Elemental Magic' and default_spell_map ~= 'ElementalEnfeeble' then
  333.         if lowTierNukes:contains(spell.english) then
  334.             return 'LowTierNuke'
  335.         else
  336.             return 'HighTierNuke'
  337.         end
  338.     end
  339. end
  340.  
  341. -- Modify the default idle set after it was constructed.
  342. function customize_idle_set(idleSet)
  343.     if player.mpp < 51 then
  344.         idleSet = set_combine(idleSet, sets.latent_refresh)
  345.     end
  346.    
  347.     return idleSet
  348. end
  349.  
  350.  
  351. -- Function to display the current relevant user state when doing an update.
  352. function display_current_job_state(eventArgs)
  353.     display_current_caster_state()
  354.     eventArgs.handled = true
  355. end
  356.  
  357. -------------------------------------------------------------------------------------------------------------------
  358. -- Utility functions specific to this job.
  359. -------------------------------------------------------------------------------------------------------------------
  360.  
  361. -- Select default macro book on initial load or subjob change.
  362. function select_default_macro_book()
  363.     --set_macro_page(1, 15)
  364. end
  365.  
  366. function job_precast(spell, action, spellMap, eventArgs)
  367.         if state.dicks.value then
  368.             if spell.skill == 'Elemental Magic':contains(spell.english) then
  369.                 send_command('send Arivale /ma "'..spell.name..' '..spell.target.id..'"')
  370.             elseif spell.english == "Aquaveil" or spell.english == "Stoneskin" or spell.english == "Blink" then
  371.                 send_command('send Arivale /ma "'..spell.name..' Arivale"')            
  372.             end
  373.         end
  374. end
Advertisement
Add Comment
Please, Sign In to add comment