midash

Orangebear_GEO

Jan 4th, 2014
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
XML 17.13 KB | None | 0 0
  1.     include('organizer-lib')
  2. -------------------------------------------------------------------------------------------------------------------
  3. -- Setup functions for this job.  Generally should not be modified.
  4. -------------------------------------------------------------------------------------------------------------------
  5.  
  6. -- Initialization function for this job file.
  7. function get_sets()
  8.     mote_include_version = 2
  9.  
  10.     -- Load and initialize the include file.
  11.     include('Mote-Include.lua')
  12. end
  13.  
  14. -- Setup vars that are user-independent.  state.Buff vars initialized here will automatically be tracked.
  15. function job_setup()
  16.     indi_timer = ''
  17.     indi_duration = 180
  18. end
  19.  
  20. -------------------------------------------------------------------------------------------------------------------
  21. -- User setup functions for this job.  Recommend that these be overridden in a sidecar file.
  22. -------------------------------------------------------------------------------------------------------------------
  23.  
  24. -- Setup vars that are user-dependent.  Can override this function in a sidecar file.
  25. function user_setup()
  26.     state.OffenseMode:options('None', 'Normal')
  27.     state.CastingMode:options('Normal', 'Resistant')
  28.     state.IdleMode:options('Normal', 'PDT')
  29.  
  30.     state.MagicBurst = M(false, 'Magic Burst')
  31.  
  32.    
  33.     gear.default.weaponskill_waist = "Fotia Belt"
  34.  
  35.     -- Additional local binds
  36.     send_command('bind !` gs c toggle MagicBurst') -- Alt ` turns magic burst set on and off
  37.     send_command('bind f9 input /equip main "Lehbrailg +2"; input /equip sub "Niobid Strap"; gs disable main; gs disable sub;') -- F9 Locks your staff and grip slots so you wont lose TP
  38.     send_command('bind !f9 gs enable main; gs enable sub;') -- Alt F9 enables staff and grip , so other weapons/grip can swap
  39.     send_command('bind f10 gs c set DefenseMode Physical') -- F10 turns PDT gear on, after spells/JAs you will return to PDT set automatically
  40.     send_command('bind f11 gs c set DefenseMode Magical') -- F11 turns MDT gear on, same as above for PDT
  41.     send_command('bind ^f11 gs c cycle CastingMode') -- Control F11 changes your casting mode between normal and resistant (magic accuracy)
  42.     send_command('bind f12 gs c update user') -- F12 forces an update (gear changes and other file options), also displays some current info
  43.     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
  44.     send_command('bind !f12 gs c reset DefenseMode') -- Alt F12 clears your PDT or MDT and turns you to normal idle sets
  45.  
  46.     send_command('bind ^- gs c toggle selectnpctargets')
  47.     send_command('bind ^= gs c cycle pctargetmode')
  48.    
  49.    
  50.     select_default_macro_book()
  51.  
  52. end
  53.  
  54.  
  55. -- Define sets and vars used by this job file.
  56. function init_gear_sets()
  57.  
  58.     --------------------------------------
  59.     -- Precast sets
  60.     --------------------------------------
  61.  
  62.     organizer_items = {
  63.   echos="Echo Drops",
  64.   remedy="Remedy",
  65.   orb="Macrocosmic Orb",
  66.   Crepe="Pear Crepe",
  67. }
  68.    
  69.     -- Precast sets to enhance JAs
  70.     sets.precast.JA.Bolster = {body="Bagua Tunic"}
  71.     sets.precast.JA['Life cycle'] = {body="Geomancy Tunic +1"}
  72.     sets.precast.JA['Life cycle'] = {body="Geomancy Tunic +1"}
  73.  
  74.     -- Fast cast sets for spells
  75.  
  76.     sets.precast.FC = {ammo="Impatiens",
  77.         head="Nahtirah Hat",ear1="Etiolation Earring",ear2="Loquacious Earring",neck="Orunmila's Torque",
  78.         body={ name="Merlinic Jubbah", augments={'"Mag.Atk.Bns."+4','"Fast Cast"+7',}},
  79.         ring1="Prolix Ring",ring2="Weatherspoon Ring",
  80.         back="Swith Cape +1",waist="Witful Belt",legs="Psycloth Lappas",feet="Regal Pumps +1"}
  81.  
  82.     sets.precast.FC.Cure = set_combine(sets.precast.FC, {main="Tamaxchi",sub="Genbu's Shield",back="Pahtli Cape"})
  83.  
  84.     sets.precast.FC['Elemental Magic'] = set_combine(sets.precast.FC,{ear1="Barkarole Earring",neck="Stoicheion Medal"})
  85.  
  86.    
  87.     -- Weaponskill sets
  88.     -- Default set for any weaponskill that isn't any more specifically defined
  89.     sets.precast.WS = {
  90.         head="Nahtirah Hat",ear1="Bladeborn Earring",ear2="Steelflash Earring",
  91.             body={ name="Merlinic Jubbah", augments={'"Mag.Atk.Bns."+4','"Fast Cast"+7',}},hands="Yaoyotl Gloves",ring1="Rajas Ring",ring2="K'ayres Ring",
  92.         back="Refraction Cape",waist=gear.ElementalBelt,legs="Merlinic Shalwar",feet="Hagondes Sabots"}
  93.  
  94.     -- Specific weaponskill sets.  Uses the base set if an appropriate WSMod version isn't found.
  95.     sets.precast.WS['Flash Nova'] = {ammo="Ghastly Tathlum +1",
  96.         head="Helios Band",neck="Eddy Necklace",ear1="Friomisi Earring",ear2="Crematio Earring",
  97.         body="Hagondes Coat +1",hands="Yaoyotl Gloves",ring1="Acumen Ring",ring2="Strendu Ring",
  98.         back="Toro Cape",legs="Merlinic Shalwar",feet="Hagondes Sabots"}
  99.  
  100.     sets.precast.WS['Starlight'] = {ear2="Moonshade Earring"}
  101.  
  102.     sets.precast.WS['Moonlight'] = {ear2="Moonshade Earring"}
  103.  
  104.  
  105.     --------------------------------------
  106.     -- Midcast sets
  107.     --------------------------------------
  108.  
  109.     -- Base fast recast for spells
  110.     sets.midcast.FastRecast = {ammo="Impatiens",
  111.         head="Amalric Coif",neck="Orunmila's Torque",ear2="Loquacious Earring",
  112.             body={ name="Merlinic Jubbah", augments={'"Mag.Atk.Bns."+4','"Fast Cast"+7',}},hands="Telchine Gloves",ring1="Prolix Ring",ring2="Weatherspoon Ring",
  113.         back="Swith Cape +1",waist="Witful Belt",legs="Psycloth Lappas",feet="Regal Pumps +1"}
  114.  
  115.     sets.midcast.Geomancy = {main="Solstice",sub="Genbu's Shield",Head="Azimuth Hood +1",range="Dunna", body="Bagua Tunic",hands="Geo. Mitaines +1",back="Lifestream Cape",feet="Medium's Sabots"}
  116.     sets.midcast.Geomancy.Indi = {main="Solstice",sub="Genbu's Shield",head="Azimuth Hood +1",range="Dunna",body="Bagua Tunic",legs="Bagua Pants",back="Lifestream Cape",hands="Geo. Mitaines +1",feet="Medium's Sabots"}
  117.  
  118.     sets.midcast['Elemental Magic'] = {main="Solstice",sub="Genbu's Shield",ammo="Ghastly Tathlum +1",
  119.         head="Merlinic Hood",neck="Eddy Necklace",ear1="Friomisi Earring",ear2="Barkarole Earring",
  120.         body={ name="Merlinic Jubbah", augments={'Mag. Acc.+18 "Mag.Atk.Bns."+18','Magic burst mdg.+11%','INT+3','"Mag.Atk.Bns."+4',}},
  121.         hands="Amalric Gages",ring1="Shiva Ring",ring2="Shiva Ring +1",
  122.         back="Bane Cape",waist="Refoccilation Stone",legs="Merlinic Shalwar",feet="Merlinic Crackows"}
  123.        
  124.     sets.midcast['Elemental Magic'].Resistant = {main="Lehbrailg +2",sub="Mephitis Grip",ammo="Ghastly Tathlum +1",
  125.         head="Helios Band",neck="Eddy Necklace",ear1="Friomisi Earring",ear2="Barkarole Earring",
  126.         body={ name="Merlinic Jubbah", augments={'Mag. Acc.+18 "Mag.Atk.Bns."+18','Magic burst mdg.+11%','INT+3','"Mag.Atk.Bns."+4',}},
  127.         hands="Hagondes Cuffs +1",ring1="Shiva Ring",ring2="Shiva Ring +1",
  128.         back="Toro Cape",waist="Eschan Stone",legs="Merlinic Shalwar",feet="Helios Boots"}
  129.  
  130.     sets.midcast['Enfeebling Magic'] = {main="Lehbrailg +2",sub="Mephitis Grip",ammo="Ghastly Tathlum +1",
  131.         head="Befouled Crown",neck="Imbodla Necklace",ear1="Psystorm Earring",ear2="Lifestorm Earring",
  132.         body="Vanya Robe",hands="Hagondes Cuffs +1",ring1="Sangoma Ring",ring2="Weather. Ring",
  133.         back="Refraction Cape",waist="Eschan Stone",legs="Psycloth Lappas",feet="Uk'uxkaj Boots"}
  134.        
  135.     sets.midcast.Stun = {main="Apamajas II",sub="Mephitis Grip",ammo="Oreiad's Tathlum",
  136.         head="Nahtirah Hat",neck="Weike Torque",ear1="Psystorm Earring",ear2="Lifestorm Earring",
  137.         body={ name="Merlinic Jubbah", augments={'"Mag.Atk.Bns."+4','"Fast Cast"+7',}},hands="Hagondes Cuffs +1",ring1="Strendu Ring",ring2="Sangoma Ring",
  138.         back="Swith Cape +1",waist="Goading Belt",legs="Psycloth Lappas",feet="Artsieq Boots"}
  139.  
  140.     sets.midcast.Stun.Resistant = set_combine(sets.midcast.Stun, {main="Lehbrailg +2"})
  141.        
  142.    
  143.     sets.midcast.Cure = {main="Tamaxchi",sub="Genbu's Shield",
  144.         body="Heka's Kalasiris",hands="Bokwus Gloves",ring1="Ephedra Ring",ring2="Sirona's Ring",
  145.         back="Swith Cape +1",legs="Assiduity Pants +1",feet="Medium's Sabots"}
  146.    
  147.     sets.midcast.Curaga = sets.midcast.Cure
  148.  
  149.     sets.midcast.Protectra = {ring1="Sheltered Ring"}
  150.  
  151.     sets.midcast.Shellra = {ring1="Sheltered Ring"}
  152.  
  153.  
  154.     --------------------------------------
  155.     -- Idle/resting/defense/etc sets
  156.     --------------------------------------
  157.  
  158.     -- Resting sets
  159.     sets.resting = {main="Bolelabunga",sub="Genbu's Shield",head=empty,neck="Bathy Choker",
  160.         body="Respite Cloak",hands="Serpentes Cuffs",ring1="Sheltered Ring",ring2="Paguroidea Ring",
  161.         waist="Fucho-no-obi",legs="Assiduity Pants +1",feet="Serpentes Sabots"}
  162.  
  163.  
  164.     -- Idle sets
  165.  
  166.     sets.idle = {main="Bolelabunga",sub="Genbu's Shield",range="Dunna",
  167.         neck="Bathy Choker",ear1="Bloodgem Earring",ear2="Loquacious Earring",
  168.         head='Befouled Crown',body="Witching Robe",hands="Serpentes Cuffs",ring1="Sheltered Ring",ring2="Paguroidea Ring",
  169.         back="Lifestream Cape",waist="Fucho-no-obi",legs="Assiduity Pants +1",feet="Serpentes Sabots"}
  170.  
  171.     sets.idle.PDT = {main="Bolelabunga",sub="Genbu's Shield",range="Dunna",
  172.         neck="Loricate Torque +1",ear1="Bloodgem Earring",ear2="Loquacious Earring",
  173.         head='Befouled Crown',body="Witching Robe",hands="Helios Gloves",ring1="Dark Ring",ring2="Dark Ring",
  174.         back="Repulse Mantle",waist="Goading Belt",legs="Helios Spats",feet="Helios Boots"}
  175.  
  176.     -- .Pet sets are for when Luopan is present.
  177.     sets.idle.Pet = {main="Bolelabunga",sub="Genbu's Shield",range="Dunna",
  178.         neck="Loricate Torque +1",ear1="Bloodgem Earring",ear2="Loquacious Earring",
  179.         head='Befouled Crown',body="Witching Robe",hands="Geo. Mitaines +1",ring1="Sheltered Ring",ring2="Paguroidea Ring",
  180.         back="Lifestream Cape",waist="Isa Belt",legs="Assiduity Pants +1",feet="Serpentes Sabots"}
  181.  
  182.     sets.idle.PDT.Pet = {main="Bolelabunga",sub="Genbu's Shield",range="Dunna",
  183.         neck="Loricate Torque +1",ear1="Bloodgem Earring",ear2="Loquacious Earring",
  184.         head='Befouled Crown',body="Witching Robe",hands="Geo. Mitaines +1",ring1="Dark Ring",ring2="Paguroidea Ring",
  185.         back="Repulse Mantle",waist="Isa Belt",legs="Assiduity Pants +1",feet="Serpentes Sabots"}
  186.  
  187.     -- .Indi sets are for when an Indi-spell is active.
  188.     sets.idle.Indi = set_combine(sets.idle, {legs="Bagua Pants"})
  189.     sets.idle.Pet.Indi = set_combine(sets.idle.Pet, {legs="Bagua Pants"})
  190.     sets.idle.PDT.Indi = set_combine(sets.idle.PDT, {legs="Bagua Pants"})
  191.     sets.idle.PDT.Pet.Indi = set_combine(sets.idle.PDT.Pet, {legs="Bagua Pants"})
  192.  
  193.     sets.idle.Town = {main="Bolelabunga",sub="Genbu's Shield",range="Dunna",
  194.         neck="Orunmila's Torque",ear1="Friomisi Earring",ear2="Crematio Earring",
  195.         head='Befouled Crown',body="Witching Robe",hands="Helios Gloves",ring1="Fenrir Ring +1",ring2="Shiva Ring +1",
  196.         back="Lifestream Cape",waist="Goading Belt",legs="Assiduity Pants +1",feet="Herald's Gaiters"}
  197.  
  198.     sets.idle.Weak = {main="Bolelabunga",sub="Genbu's Shield",range="Dunna",
  199.         neck="Bathy Choker",ear1="Bloodgem Earring",ear2="Loquacious Earring",
  200.         head='Befouled Crown',body="Witching Robe",hands="Serpentes Cuffs",ring1="Sheltered Ring",ring2="Paguroidea Ring",
  201.         back="Repulse Mantle",waist="Goading Belt",legs="Assiduity Pants +1",feet="Serpentes Sabots"}
  202.  
  203.     -- Defense sets
  204.  
  205.     sets.defense.PDT = {range="Dunna",
  206.         head="Helios Band",neck="Bathy Choker",ear1="Bloodgem Earring",ear2="Loquacious Earring",
  207.         body="Hagondes Coat +1",hands="Yaoyotl Gloves",ring1="Dark Ring",ring2="Dark Ring",
  208.         back="Repulse Mantle",waist="Goading Belt",legs="Merlinic Shalwar",feet="Hagondes Sabots"}
  209.  
  210.     sets.defense.MDT = {range="Dunna",
  211.         head="Helios Band",neck="Loricate Torque +1",ear1="Bloodgem Earring",ear2="Loquacious Earring",
  212.         body="Helios Jacket",hands="Yaoyotl Gloves",ring1="Dark Ring",ring2="Dark Ring",
  213.         back="Repulse Mantle",waist="Goading Belt",legs="Helios Spats",feet="Helios Boots"}
  214.  
  215.     sets.Kiting = {feet="Herald's Gaiters"}
  216.  
  217.     sets.latent_refresh = {waist="Fucho-no-obi"}
  218.  
  219.         sets.magic_burst = {
  220.         head="Merlinic Hood",neck="Mizukage-no-Kubikazari",
  221.         body="Merlinic Jubbah",hands="Amalric Gages",
  222.         ring2="Shiva Ring +1",ring1="Mujin Band",
  223.         legs="Merlinic Shalwar",
  224.         feet="Merlinic Crackows",back="Toro Cape"}
  225.  
  226.    
  227.  
  228.     --------------------------------------
  229.     -- Engaged sets
  230.     --------------------------------------
  231.  
  232.     -- Variations for TP weapon and (optional) offense/defense modes.  Code will fall back on previous
  233.     -- sets if more refined versions aren't defined.
  234.     -- If you create a set with both offense and defense modes, the offense mode should be first.
  235.     -- EG: sets.engaged.Dagger.Accuracy.Evasion
  236.  
  237.     -- Normal melee group
  238.     sets.engaged = {ammo="Hasty Pinon +1",
  239.         head="Nahtirah Hat",neck="Iqabi Necklace",ear1="Zennaroi Earring",ear2="Steelflash Earring",
  240.         body="Onca Suit",hands=empty,ring1="Mars's Ring",ring2="Patricius Ring",
  241.         back="Repulse Mantle",waist="Eschan Stone",legs=empty,feet=empty}
  242.  
  243.     --------------------------------------
  244.     -- Custom buff sets
  245.     --------------------------------------
  246.  
  247. end
  248.  
  249. -------------------------------------------------------------------------------------------------------------------
  250. -- Job-specific hooks for standard casting events.
  251. -------------------------------------------------------------------------------------------------------------------
  252.  
  253. function job_aftercast(spell, action, spellMap, eventArgs)
  254.     if not spell.interrupted then
  255.         if spell.english:startswith('Indi') then
  256.             if not classes.CustomIdleGroups:contains('Indi') then
  257.                 classes.CustomIdleGroups:append('Indi')
  258.             end
  259.             send_command('@timers d "'..indi_timer..'"')
  260.             indi_timer = spell.english
  261.             send_command('@timers c "'..indi_timer..'" '..indi_duration..' down spells/00136.png')
  262.         elseif spell.english == 'Sleep' or spell.english == 'Sleepga' then
  263.             send_command('@timers c "'..spell.english..' ['..spell.target.name..']" 60 down spells/00220.png')
  264.         elseif spell.english == 'Sleep II' or spell.english == 'Sleepga II' then
  265.             send_command('@timers c "'..spell.english..' ['..spell.target.name..']" 90 down spells/00220.png')
  266.         end
  267.     elseif not player.indi then
  268.         classes.CustomIdleGroups:clear()
  269.     end
  270. end
  271.  
  272.  
  273. -------------------------------------------------------------------------------------------------------------------
  274. -- Job-specific hooks for non-casting events.
  275. -------------------------------------------------------------------------------------------------------------------
  276.  
  277. -- Called when a player gains or loses a buff.
  278. -- buff == buff gained or lost
  279. -- gain == true if the buff was gained, false if it was lost.
  280. function job_buff_change(buff, gain)
  281.     if player.indi and not classes.CustomIdleGroups:contains('Indi')then
  282.         classes.CustomIdleGroups:append('Indi')
  283.         handle_equipping_gear(player.status)
  284.     elseif classes.CustomIdleGroups:contains('Indi') and not player.indi then
  285.         classes.CustomIdleGroups:clear()
  286.         handle_equipping_gear(player.status)
  287.     end
  288. end
  289.  
  290. function job_state_change(stateField, newValue, oldValue)
  291.     if stateField == 'Offense Mode' then
  292.         if newValue == 'Normal' then
  293.             disable('main','sub','range')
  294.         else
  295.             enable('main','sub','range')
  296.         end
  297.     end
  298. end
  299.  
  300. -------------------------------------------------------------------------------------------------------------------
  301. -- User code that supplements standard library decisions.
  302. -------------------------------------------------------------------------------------------------------------------
  303.  
  304. function job_get_spell_map(spell, default_spell_map)
  305.     if spell.action_type == 'Magic' then
  306.         if spell.skill == 'Enfeebling Magic' then
  307.             if spell.type == 'WhiteMagic' then
  308.                 return 'MndEnfeebles'
  309.             else
  310.                 return 'IntEnfeebles'
  311.             end
  312.         elseif spell.skill == 'Geomancy' then
  313.             if spell.english:startswith('Indi') then
  314.                 return 'Indi'
  315.             end
  316.         end
  317.     end
  318. end
  319.  
  320. function customize_idle_set(idleSet)
  321.     if player.mpp < 51 then
  322.        idleSet = set_combine(idleSet, sets.latent_refresh)
  323.    end
  324.    return idleSet
  325. end
  326.  
  327. -- Called by the 'update' self-command.
  328. function job_update(cmdParams, eventArgs)
  329.    classes.CustomIdleGroups:clear()
  330.    if player.indi then
  331.        classes.CustomIdleGroups:append('Indi')
  332.    end
  333. end
  334.  
  335. -- Function to display the current relevant user state when doing an update.
  336. function display_current_job_state(eventArgs)
  337.    display_current_caster_state()
  338.    eventArgs.handled = true
  339. end
  340.  
  341. -------------------------------------------------------------------------------------------------------------------
  342. -- Utility functions specific to this job.
  343. -------------------------------------------------------------------------------------------------------------------
  344.  
  345. -- Select default macro book on initial load or subjob change.
  346. function select_default_macro_book()
  347.    set_macro_page(1, 18)
  348. end
Advertisement
Add Comment
Please, Sign In to add comment