Advertisement
FalownPSA

Gargurty_geo

Apr 22nd, 2015
681
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 23.36 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. -- Setup vars that are user-independent.  state.Buff vars initialized here will automatically be tracked.
  14. function job_setup()
  15.     indi_timer = ''
  16.     indi_duration = 255
  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','Accuracy','Dual')
  26.     state.CastingMode:options('Normal','Accuracy')
  27.     state.IdleMode:options('Normal', 'PDT', 'MDT')
  28.      
  29.     gear.default.obi_waist = "yamabuki-no-obi"
  30.     gear.default.obi_back = "Toro Cape"
  31.     gear.default.obi_ring = "Shiva Ring"
  32.      
  33.     select_default_macro_book()
  34.      
  35. end
  36.  
  37. lowtier = S{"Fire", "Fire II", "Stone", "Stone II", "Blizzard", "Blizzard II", "Aero", "Aero II", "Water", "Water II", "Thunder", "Thunder II"}
  38. hightier = S{"Fire III", "Fire IV", "Stone IV", "Stone III", "Blizzard IV", "Blizzard III", "Aero IV", "Aero III", "Water IV", "Water III", "Thunder IV", "Thunder III"}
  39.  
  40.  
  41. -- Define sets and vars used by this job file.
  42. function init_gear_sets()
  43.  
  44.     --------------------------------------
  45.     -- Precast sets
  46.     --------------------------------------
  47.  
  48.     -- Precast sets to enhance JAs
  49.     sets.precast.JA.Bolster = {body="Bagua Tunic +1"}
  50.     sets.precast.JA['Life cycle'] = {body="Geomancy Tunic +1",
  51.     head="Azimuth hood +1"
  52.     }
  53.     sets.precast.JA['Curative Recantation'] = {hands="Bagua Mitaines +1"}
  54.     sets.precast.JA['Mending Halation'] = {legs="Bagua Pants +1"}
  55.     sets.precast.JA['Radial Arcana'] = {feet="Bagua Sandals +1"}
  56.     sets.precast.JA['Primal Zeal'] = {head="Bagua galero +1"}  
  57.     sets.precast.JA['Cardinal Chant'] = {head="geomancy galero +1"}
  58.  
  59.  
  60.     -- Fast cast sets for spells
  61.  
  62.     sets.precast.FC = {
  63.     main="Marin staff +1",
  64.     sub="vivid strap",
  65.     head="Nahtirah Hat",
  66.     body="Vanir Cotehardie",
  67.     hands="Helios Gloves",
  68.     legs="Geo. Pants +1",
  69.     feet="Regal Pumps +1",
  70.     neck="Jeweled Collar",
  71.     waist="Witful Belt",
  72.     left_ear="Enchntr. Earring +1",
  73.     right_ear="Loquac. Earring",
  74.     left_ring="Prolix Ring",
  75.     right_ring="lebeche Ring",
  76.     back="Lifestream Cape",
  77. }
  78.  
  79.     sets.precast.FC.Cure = set_combine(sets.precast.FC, {
  80.     main="Vejovis Wand +1",
  81.     sub="Genbu's Shield",
  82.     body="Heka's Kalasiris",
  83.     waist="Acerbic Sash +1",
  84.     back="Pahtli Cape",
  85. })
  86.  
  87.     sets.precast.FC['Enhancing Magic'] = set_combine(sets.precast.FC, {
  88.     head="Umuthi Hat",
  89.     hands="Carapacho Cuffs",
  90.     waist="Siegel Sash",
  91. })  
  92.  
  93.      
  94.     sets.precast.FC['Elemental Magic'] = set_combine(sets.precast.FC, {
  95.     main="Ngqoqwanb",
  96.     hands="Bagua Mitaines +1",
  97.     neck="Stoicheion Medal",
  98. })
  99.  
  100.     sets.precast.FC.Impact = set_combine(sets.precast.FC['Elemental Magic'], {head=empty,body="Twilight Cloak"})
  101.      
  102.      
  103.     -- Weaponskill sets
  104.     -- Default set for any weaponskill that isn't any more specifically defined
  105.     sets.precast.WS = {
  106.     ammo="Hasty Pinion +1",
  107.     head="telchine cap",
  108.     body="helios jacket",
  109.     hands="telchine Gloves",
  110.     legs="telchine braconi",
  111.     feet="telchine pigaches",
  112.     neck="fotia Gorget",
  113.     waist="fotia Belt",
  114.     left_ear="Moonshade Earring",
  115.     right_ear="Brutal Earring",
  116.     left_ring="levia. Ring",
  117.     right_ring="levia. Ring",
  118.     back="Refraction Cape",
  119. }
  120.  
  121.     -- Specific weaponskill sets.  Uses the base set if an appropriate WSMod version isn't found.
  122.          
  123.         sets.precast.WS['Flash Nova'] = set_combine(sets.precast.WS,{  
  124.     ammo="Memoria sachet",
  125.     head="Helios Bandt",
  126.     body="Azimuth Coat +1",
  127.     hands="Hagondes Cuffs +1",
  128.     legs="Hagondes Pants +1",
  129.     feet="helios Boots",
  130.     neck="Eddy Necklace",
  131.     waist="yamabuki-no-obi",
  132.     left_ear="Friomisi Earring",
  133.     right_ear="crematio Earring",
  134.     left_ring="Shiva Ring",
  135.     right_ring=gear.ElementalRing,
  136.     back=gear.ElementalCape,})
  137.          
  138.         sets.precast.WS['Black Halo'] = sets.precast.WS['Flash Nova']
  139.      
  140.              
  141.     sets.precast.WS['Aeolian Edge'] = set_combine(sets.precast.WS['Flash Nova'],{back="Kaikias' cape",})    
  142.  
  143. sets.precast.WS['Gust Slash'] =sets.precast.WS['Flash Nova']
  144.              
  145.     sets.precast.WS['Starlight'] = sets.precast.WS['Flash Nova']
  146.  
  147.     sets.precast.WS['Moonlight'] = sets.precast.WS['Flash Nova']
  148.          
  149.  
  150.     --------------------------------------
  151.     -- Midcast sets
  152.     --------------------------------------
  153.  
  154.     -- Base fast recast for spells
  155.     sets.midcast.FastRecast =set_combine(sets.midcast.fastcast)
  156.  
  157. sets.midcast.Regen = set_combine(sets.midcast.fastcast, {
  158.     main="bolelabunga",
  159.     body="Telchine Chas."})
  160.      
  161.     sets.midcast['Enhancing Magic']={
  162.     main="Kirin's Pole",
  163.     sub="Fulcio Grip",
  164.     head="Umuthi Hat",
  165.     hands="bagua mitaines +1",
  166.     body={ name="Telchine Chas.", augments={'Mag. Acc.+12 "Mag.Atk.Bns."+12','"Conserve MP"+4','Enh. Mag. eff. dur. +4',}},
  167.     legs="bagua Pants +1",
  168.     feet="helios Boots",
  169.     neck="Colossus's Torque",
  170.     waist="Cascade Belt",
  171.     left_ear="Andoaa Earring",
  172.     right_ear="Magnetic Earring",
  173.     back="Merciful Cape",
  174. }
  175.      
  176.     sets.midcast.Refresh = set_combine(sets.midcast['Enhancing Magic'], {
  177.     back="grapevine cape"})
  178.  
  179.     sets.midcast.Aquaveil = set_combine(sets.midcast['Enhancing Magic'], {
  180.     waist="Emphatikos rope"})
  181.  
  182.     sets.midcast.Geomancy ={
  183.     main="Venabulum",
  184.     sub="Wizzan Grip",
  185.     range="Dunna",
  186.     head="Azimuth hood +1",
  187.     body="Bagua Tunic +1",
  188.     hands="Geo. Mitaines +1",
  189.     legs="azimuth tights  +1",
  190.     feet="azimuth gaiters +1",
  191.     waist="Austerity Belt +1",
  192.     left_ear="magnetic Earring",
  193.     right_ear="Gifted Earring",
  194.     right_ring="Renaye Ring",
  195.     back="Lifestream Cape",
  196. }
  197.      
  198.     sets.midcast.Geomancy.Indi =set_combine(sets.midcast.Geomancy, {legs="bagua pants +1"})
  199.  
  200.  
  201.     sets.midcast.Cure = {
  202.     main="Tamaxchi",
  203.     sub="Genbu's Shield",
  204.     head="Geomancy galero +1",
  205.     body="Heka's Kalasiris",
  206.     hands="telchine Gloves",
  207.     legs="Mes'yohi slacks",
  208.     feet="Regal Pumps +1",
  209.     neck="Colossus's Torque",
  210.     waist="Hachirin-No-Obi",
  211.     left_ear="Gifted Earring",
  212.     right_ear="Magnetic Earring",
  213.     left_ring="Sirona's Ring",
  214.     right_ring=gear.ElementalRing,
  215.     back=gear.ElementalCape,
  216. }
  217.          
  218.         sets.midcast.Stoneskin = set_combine(sets.midcast['Enhancing Magic'], {
  219.     neck="Stone Gorget",
  220.     waist="siegel sash",
  221.     right_ear="Earthcry Earring",
  222. })  
  223.              
  224.     sets.midcast.Curaga = sets.midcast.Cure
  225.  
  226.     sets.midcast.Protectra = {ring1="Sheltered Ring"}
  227.  
  228.     sets.midcast.Shellra = {ring1="Sheltered Ring"}
  229.  
  230.         -- Custom Spell Classes
  231.     sets.midcast['Enfeebling Magic'] = {
  232.     main="Marin staff +1",
  233.     sub="Mephitis Grip",
  234.     ammo="Memoria sachet",
  235.     head="Artsieq Hat",
  236.     body="Ischemia Chasu.",
  237.     hands="azimuth gloves +1",
  238.     legs="Mes'yohi slacks",
  239.     feet="bagua sandals +1",
  240.     neck="imbodla necklace",
  241.     waist="yamabuki-no-obi",
  242.     left_ear="Gwati Earring",
  243.     right_ear="Enchntr. Earring +1",
  244.     left_ring="Shiva Ring",
  245.     right_ring="Shiva Ring",
  246.     back="lifestream Cape",
  247. }
  248.  
  249.     sets.midcast.IntEnfeebles = set_combine(sets.midcast['Enfeebling Magic'], {
  250.      
  251. })  
  252.  
  253.     sets.midcast.ElementalEnfeeble = sets.midcast['Enfeebling Magic']
  254.  
  255.     sets.midcast['Dark Magic'] = {
  256.     main="Marin staff +1",
  257.     sub="Caecus Grip",
  258.     ammo="Memoria sachet",
  259.     head="Pixie hairpin +1",
  260.     body="Geo. Tunic +1",
  261.     hands="azimuth gloves +1",
  262.     legs="Azimuth Tights +1",
  263.     feet="helios Boots",
  264.     neck="Aesir Torque",
  265.     waist="Yamabuki-no-Obi",
  266.     left_ear="Abyssal Earring",
  267.     right_ear="Gwati Earring",
  268.     left_ring="shiva Ring",
  269.     right_ring="sangoma Ring",
  270.     back="Merciful Cape",
  271. }
  272.          
  273.         sets.midcast.Drain = set_combine(sets.midcast['Dark Magic'], {
  274.     waist="Austerity Belt +1",
  275.     left_ear="Abyssal Earring",
  276.     right_ear="Hirudinea Earring",
  277.     right_ring="Excelsis Ring",
  278. })
  279.      
  280.     sets.midcast.Aspir = sets.midcast.Drain
  281.      
  282.  
  283.  
  284.     sets.midcast.Stun = sets.precast.FC
  285.              
  286.  
  287.             sets.midcast.Bolster = {body="Bagua Tunic +1"}
  288.         sets.midcast['Life Cycle'] = {body="Geo. Tunic +1",
  289.     head="Azimuth hood +1"}
  290.         sets.midcast['Mending Halation'] = {legs="Bagua Pants +1"}
  291.         sets.midcast['Radial Arcana'] = {feet="Bagua Sandals +1"}
  292.         sets.midcast.Bolster.Pet = {body="Bagua Tunic +1"}
  293.         sets.midcast['Life Cycle'].Pet = {body="Geo. Tunic +1",
  294.     head="Azimuth hood +1"}
  295.         sets.midcast['Mending Halation'].Pet = {legs="Bagua Pants +1"}        sets.midcast.Bolster.Pet.Indi = {body="Bagua Tunic +1"}
  296.         sets.midcast['Life Cycle'].Pet.Indi = {body="Geo. Tunic +1",
  297.     head="Azimuth hood +1"}
  298.         sets.midcast['Mending Halation'].Pet.Indi = {legs="Bagua Pants +1"}
  299.  
  300.           -- Elemental Magic sets
  301.      
  302.     sets.midcast['Elemental Magic']= {
  303.     main="Marin Staff +1",
  304.     sub="elder's Grip +1",
  305.     ammo="ghastly tathlum",
  306.     head="Helios Band",
  307.     body="Azimuth Coat +1",
  308.     hands="Hagondes Cuffs +1",
  309.     legs="Hagondes Pants +1",
  310.     feet="Helios Boots",
  311.     neck="Eddy Necklace",
  312.     waist=gear.ElementalObi,
  313.     left_ear="Friomisi Earring",
  314.     right_ear="crematio Earring",
  315.     left_ring="shiva Ring",
  316.     right_ring=gear.ElementalRing,
  317.     back=gear.ElementalCape,
  318. }
  319.  
  320.     sets.midcast['Elemental Magic']['Accuracy']=set_combine(sets.midcast['Elemental Magic'], {
  321. })
  322.        sets.midcast.Impact = {
  323.     main="Marin staff +1",
  324.     sub="Elder's Grip +1",
  325.     ammo="Memoria sachet",
  326.     head=empty,
  327.     body="Twilight Cloak",
  328.     hands="azimuth gloves +1",
  329.     legs="Azimuth Tights +1",
  330.     feet="Helios Boots",
  331.     neck="Eddy Necklace",
  332.     waist=gear.ElementalObi,
  333.     left_ear="Gwati Earring",
  334.     right_ear="Crematio Earring",
  335.     left_ring="Shiva Ring",
  336.     right_ring="Shiva Ring",
  337.     back="Toro Cape",
  338. }  
  339.      
  340.     --------------------------------------
  341.     -- Idle/resting/defense/etc sets
  342.     --------------------------------------
  343.  
  344.     -- Resting sets
  345.     sets.resting = {
  346.     main="Bolelabunga",
  347.     sub="Genbu's Shield",
  348.     range="Dunna",
  349.     body="Respite Cloak",
  350.     hands="Bagua Mitaines +1",
  351.     legs="Assid. Pants +1",
  352.     feet="Geo. Sandals +1",
  353.     neck="Twilight Torque",
  354.     waist="Fucho-no-Obi",
  355.     left_ear="Merman's Earring",
  356.     right_ear="Merman's Earring",
  357.     left_ring="Sheltered Ring",
  358.     right_ring="Renaye Ring",
  359.     back="Kumbira Cape",
  360. }
  361.  
  362.  
  363.     -- Idle sets
  364.  
  365.     sets.idle = sets.resting
  366.  
  367.     sets.idle.PDT = {
  368.     main="Mafic cudgel",
  369.     sub="Genbu's Shield",
  370.         head="Hagondes Hat +1",
  371.         neck="Twilight Torque",
  372.         ear1="Merman's Earring",
  373.         ear2="Merman's Earring",
  374.         body="Hagondes Coat +1",
  375.         hands="hagondes cuffs +1",
  376.         ring1="shadow Ring",
  377.         ring2="dark Ring",
  378.         back="shadow mantle",
  379.         waist="Flax Sash",
  380.         legs="hagondes Pants +1",
  381.         feet="hagondes sabots +1"}
  382.          
  383.         sets.idle.MDT = set_combine(sets.idle.PDT, {
  384.     main="marine staff +1",
  385.     sub="vallus grip",})    
  386.  
  387.     -- .Pet sets are for when Luopan is present.
  388.     sets.idle.Pet = set_combine(sets.resting, {main={ name="Nehushtan", augments={'Pet: DEF+13','Pet: "Regen"+3','STR+15 CHR+15',}},
  389.     sub="Genbu's Shield",
  390.     head="Azimuth hood +1",
  391.     body={ name="Telchine Chas.", augments={'Pet: Accuracy+18 Pet: Rng. Acc.+18','Pet: "Regen"+2',}},
  392.     legs="helios spats",
  393.     hands={ name="Helios Gloves", augments={'Pet: Accuracy+19 Pet: Rng. Acc.+19','Pet: "Regen"+3',}},
  394.     feet="Bagua Sandals +1",
  395.     waist="Isa Belt",
  396.     back="Lifestream Cape",
  397.     ear1="Handler's Earring +1",
  398. })
  399.  
  400.     sets.idle.PDT.Pet = set_combine(sets.idle.PDT, {main={ name="Nehushtan", augments={'Pet: DEF+13','Pet: "Regen"+3','STR+15 CHR+15',}},
  401.     sub="Genbu's Shield",
  402.     head="Azimuth hood +1",
  403.     body={ name="Telchine Chas.", augments={'Pet: Accuracy+18 Pet: Rng. Acc.+18','Pet: "Regen"+2',}},
  404.       hands={ name="Helios Gloves", augments={'Pet: Accuracy+19 Pet: Rng. Acc.+19','Pet: "Regen"+3',}},
  405.     legs="helios spats",
  406.     feet="Bagua Sandals +1",
  407.     waist="Isa Belt",
  408.     back="Lifestream Cape",
  409.     ear1="Handler's Earring +1",
  410. })
  411.  
  412.     sets.idle.MDT.Pet = set_combine(sets.idle.MDT, {main={ name="Nehushtan", augments={'Pet: DEF+13','Pet: "Regen"+3','STR+15 CHR+15',}},
  413.     sub="Genbu's Shield",
  414.     head="Azimuth hood +1",
  415.     body={ name="Telchine Chas.", augments={'Pet: Accuracy+18 Pet: Rng. Acc.+18','Pet: "Regen"+2',}},
  416.       hands={ name="Helios Gloves", augments={'Pet: Accuracy+19 Pet: Rng. Acc.+19','Pet: "Regen"+3',}},
  417.     legs="helios spats",
  418.     feet="Bagua Sandals +1",
  419.     waist="Isa Belt",
  420.     back="Lifestream Cape",
  421.     ear1="Handler's Earring +1",
  422. })
  423.  
  424.     -- .Indi sets are for when an Indi-spell is active.
  425.     sets.idle.Indi = sets.resting
  426.      
  427.     sets.idle.PDT.Indi = sets.idle.PDT
  428.      
  429.     sets.idle.MDT.Indi = sets.idle.MDT
  430.      
  431.     sets.idle.PDT.Pet.Indi = sets.idle.PDT.Pet
  432.      
  433.     sets.idle.MDT.Pet.Indi = sets.idle.MDT.Pet
  434.  
  435.     sets.idle.Town = {
  436.     main="Nodal Wand",
  437.     sub="Genbu's Shield",
  438.     range="Dunna",
  439.     head="Azimuth Hood +1",
  440.     body="Azimuth Coat +1",
  441.     hands="Azimuth Gloves +1",
  442.     legs="Azimuth Tights +1",
  443.     feet="Azimuth Gaiters +1",
  444.     neck="Twilight Torque",
  445.     waist="Fucho-no-Obi",
  446.     left_ear="Merman's Earring",
  447.     right_ear="Merman's Earring",
  448.     left_ring="Sheltered Ring",
  449.     right_ring="Renaye Ring",
  450.     back="Lifestream Cape",
  451. }
  452.  
  453.     sets.idle.Weak = sets.resting
  454.  
  455.     -- Defense sets
  456.  
  457.     sets.defense.PDT = sets.idle.PDT
  458.  
  459.     sets.defense.MDT = sets.idle.MDT
  460.  
  461.     sets.Kiting = {feet="Geo. Sandals +1"}
  462.  
  463.     sets.latent_refresh = {waist="Fucho-no-obi"}
  464.      
  465.      
  466.  
  467.  
  468.     --------------------------------------
  469.     -- Engaged sets
  470.     --------------------------------------
  471.  
  472.     -- Variations for TP weapon and (optional) offense/defense modes.  Code will fall back on previous
  473.     -- sets if more refined versions aren't defined.
  474.     -- If you create a set with both offense and defense modes, the offense mode should be first.
  475.     -- EG: sets.engaged.Dagger.Accuracy.Evasion
  476.  
  477.     -- Normal melee group
  478.     sets.engaged = {
  479.     main={ name="Nehushtan", augments={'Accuracy+7 Attack+7','"Dbl.Atk."+3','DMG:+20',}},
  480.     sub="Genbu's Shield",
  481.     ammo="Hasty Pinion +1",
  482.     head="telchine cap",
  483.     body="helios jacket",
  484.     hands="telchine gloves",
  485.     legs="telchine braconi",
  486.     feet="telchine pigaches",
  487.     neck="Asperity Necklace",
  488.     waist="cetl Belt",
  489.     left_ear="Steelflash Earring",
  490.     right_ear="Bladeborn Earring",
  491.     left_ring="rajas Ring",
  492.     right_ring="k'ayres ring",
  493.     back="Kayapa Cape",
  494. }
  495.  
  496.     sets.engaged.Accuracy = set_combine(sets.engaged,{
  497.     neck="Iqabi Necklace",
  498.     right_ear="Zennaroi Earring",
  499.     waist="Olseni Belt",
  500.     left_ring="supershear EarRing",
  501.     right_ring="beeline ring",
  502. }   )  
  503.  
  504.     sets.engaged.Dual = set_combine(sets.engaged,{
  505.     sub="Tamaxchi",
  506.     left_ear="Heartseeker Earring",
  507.     right_ear="Dudgeon Earring",
  508.     waist="shetal stone",
  509. }   )
  510.     --------------------------------------
  511.     -- Custom buff sets
  512.     --------------------------------------
  513.  
  514. end
  515.  poison = 0
  516. -------------------------------------------------------------------------------------------------------------------
  517. -- Job-specific hooks for standard casting events.
  518. -------------------------------------------------------------------------------------------------------------------
  519. function job_aftercast(spell, action, spellMap, eventArgs)
  520.     if not spell.interrupted then
  521.         if spell.english:startswith('Indi') then
  522.             if not classes.CustomIdleGroups:contains('Indi') then
  523.                 classes.CustomIdleGroups:append('Indi')
  524.             end
  525.             send_command('@timers d "'..indi_timer..'"')
  526.             indi_timer = spell.english
  527.             send_command('@timers c "'..indi_timer..'" '..indi_duration..' down spells/00136.png')
  528.         elseif spell.english == 'Sleep' or spell.english == 'Sleepga' then
  529.             send_command('@timers c "'..spell.english..' ['..spell.target.name..']" 60 down spells/00220.png')
  530.         elseif spell.english == 'Sleep II' or spell.english == 'Sleepga II' then
  531.             send_command('@timers c "'..spell.english..' ['..spell.target.name..']" 90 down spells/00220.png')
  532.         end
  533.     elseif not player.indi then
  534.         classes.CustomIdleGroups:clear()
  535.     end
  536. end
  537. -------------------------------------------------------------------------------------------------------------------
  538. -- Job-specific hooks for non-casting events.
  539. -------------------------------------------------------------------------------------------------------------------
  540.  
  541. -- Called when a player gains or loses a buff.
  542. -- buff == buff gained or lost
  543. -- gain == true if the buff was gained, false if it was lost.
  544. function job_buff_change(buff, gain)
  545.     if player.indi and not classes.CustomIdleGroups:contains('Indi')then
  546.         classes.CustomIdleGroups:append('Indi')
  547.         handle_equipping_gear(player.status)
  548.     elseif classes.CustomIdleGroups:contains('Indi') and not player.indi then
  549.         classes.CustomIdleGroups:clear()
  550.         handle_equipping_gear(player.status)
  551.     end
  552.     if buff == "poison" then
  553.         if gain then
  554.             poison = 1
  555.             add_to_chat(255, '*-*-*-*-*-*-*-*-* [ Poisoned ] *-*-*-*-*-*-*-*-*')
  556.         else
  557.             poison = 0
  558.             add_to_chat(255, '*-*-*-*-*-*-*-*-* [ Poison OFF ] *-*-*-*-*-*-*-*-*')
  559.         end
  560.     end
  561. end
  562.  
  563. function job_state_change(stateField, newValue, oldValue)
  564.     if stateField == 'Offense Mode' then
  565.         if newValue == 'Dual' then
  566.             disable('main','sub','range')
  567.         else
  568.             enable('main','sub','range')
  569.         end
  570.     end
  571. end
  572.  
  573. -- Run after the general midcast() is done.
  574. function job_post_midcast(spell, action, spellMap, eventArgs)
  575.     if spell.skill == 'Elemental Magic' then
  576.    
  577.         -- this if for low tier
  578.       if lowtier:contains(spell.name) then
  579.         add_to_chat(204, '*-*-*-*-*-*-*-*-* [ Low TIER ] *-*-*-*-*-*-*-*-*')
  580.         if poison then
  581.             equip(sets.midcast['Elemental Magic'], {main="Mindmelter"})
  582.         elseif spell.element == 'Earth' then
  583.             equip(sets.midcast['Elemental Magic'], {neck="Quanpur Necklace"})
  584.         elseif spell.element == 'Ice' then
  585.             equip(sets.midcast['Elemental Magic'], {main="Ngqoqwanb"})  
  586.         elseif spell.element == 'Wind' then
  587.             equip(sets.midcast['Elemental Magic'], {Main="Marin Staff +1", Back="Kaikias' Cape"})
  588.         end
  589.          
  590.  
  591.         if spell.element == world.day_element or spell.element == world.weather_element then
  592.             equip(sets.midcast['Elemental Magic'], {waist="Hachirin-No-Obi"})
  593.         end
  594.       else
  595.         -- high tier
  596.         add_to_chat(204, '*-*-*-*-*-*-*-*-* [ High TIER ] *-*-*-*-*-*-*-*-*')
  597.         if poison then
  598.             equip(sets.midcast['Elemental Magic'], {main="Mindmelter"})
  599.         elseif spell.element == 'Earth' then
  600.             equip(sets.midcast['Elemental Magic'], {neck="Quanpur Necklace"})
  601.         elseif spell.element == 'Ice' then
  602.             equip(sets.midcast['Elemental Magic'], {main="Ngqoqwanb"})  
  603.         elseif spell.element == 'Wind' then
  604.             equip(sets.midcast['Elemental Magic'], {Main="Marin Staff +1", Back="Kaikias' Cape"})
  605.         end
  606.          
  607.  
  608.         if spell.element == world.day_element or spell.element == world.weather_element then
  609.             equip(sets.midcast['Elemental Magic'], {waist="Hachirin-No-Obi"})
  610.         end
  611.    
  612.       end
  613.  
  614.     end
  615. end
  616.  
  617. -------------------------------------------------------------------------------------------------------------------
  618. -- User code that supplements standard library decisions.
  619. -------------------------------------------------------------------------------------------------------------------
  620.  
  621. function job_get_spell_map(spell, default_spell_map)
  622.     if spell.action_type == 'Magic' then
  623.         if spell.skill == 'Enfeebling Magic' then
  624.             if spell.type == 'WhiteMagic' then
  625.                 return 'MndEnfeebles'
  626.             else
  627.                 return 'IntEnfeebles'
  628.             end
  629.         elseif spell.skill == 'Geomancy' then
  630.             if spell.english:startswith('Indi') then
  631.                 return 'Indi'
  632.             end
  633.             elseif spell.skill == 'Elemental Magic' then
  634.         end
  635.     end
  636. end
  637.  
  638. function customize_idle_set(idleSet)
  639.     if player.mpp < 51 then
  640.         idleSet = set_combine(idleSet, sets.latent_refresh)
  641.     end
  642.     return idleSet
  643. end
  644.  
  645. -- Called by the 'update' self-command.
  646. function job_update(cmdParams, eventArgs)
  647.     classes.CustomIdleGroups:clear()
  648.     if player.indi then
  649.         classes.CustomIdleGroups:append('Indi')
  650.     end
  651. end
  652.  
  653. -- Function to display the current relevant user state when doing an update.
  654. function display_current_job_state(eventArgs)
  655.     display_current_caster_state()
  656.     eventArgs.handled = true
  657. end
  658.  
  659. -- MAKE A MACRO : /tell <me> check
  660. function open_coffer()
  661.     CofferType = "Velkk Coffer"
  662.     if player.inventory[CofferType] then
  663.     NCoffer = player.inventory[CofferType].count
  664.     bag = windower.ffxi.get_bag_info(0).count
  665.     max = windower.ffxi.get_bag_info(0).max
  666.     spots = max-bag
  667.     if spots > 0 then
  668.     add_to_chat(204, '*-*-*-*-*-*-*-*-* [ '..NCoffer..'x '..CofferType..' to open - Inventory('..bag..'/'..max..') ] *-*-*-*-*-*-*-*-*')
  669.     local nextcommand = ""
  670.     for i=1, spots do
  671.         nextcommand = nextcommand .. 'input /item "'..CofferType..'" <me>; wait 2;'
  672.     end
  673.     nextcommand = nextcommand .. 'input /tell '..player.name..' check'
  674.     send_command(nextcommand)
  675.     else
  676.         add_to_chat(204, '*-*-*-*-*-*-*-*-* [ Inventory('..bag..'/'..max..') ] *-*-*-*-*-*-*-*-*')
  677.     end
  678.     else
  679.         add_to_chat(204, '*-*-*-*-*-*-*-*-* [ No '..CofferType..' in inventory ] *-*-*-*-*-*-*-*-*')
  680.     end
  681. end
  682.  
  683.  
  684. windower.register_event('chat message', function(original, sender, mode, gm)
  685.     local match
  686.  
  687.                 if sender == player.name then
  688.                     if original == "check" then
  689.                         open_coffer()
  690.                     end
  691.                 end
  692.  
  693.     return sender, mode, gm
  694. end)
  695.  
  696. -------------------------------------------------------------------------------------------------------------------
  697. -- Utility functions specific to this job.
  698. -------------------------------------------------------------------------------------------------------------------
  699.  
  700. -- Select default macro book on initial load or subjob change.
  701. function select_default_macro_book()
  702.     set_macro_page(1, 1)
  703.  end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement