Advertisement
Vamperica

Sch Code

Aug 15th, 2019
248
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 19.22 KB | None | 0 0
  1. --[[
  2.         Custom commands:
  3.         Shorthand versions for each strategem type that uses the version appropriate for
  4.         the current Arts.
  5.                                         Light Arts              Dark Arts
  6.         gs c scholar light              Light Arts/Addendum
  7.         gs c scholar dark                                       Dark Arts/Addendum
  8.         gs c scholar cost               Penury                  Parsimony
  9.         gs c scholar speed              Celerity                Alacrity
  10.         gs c scholar aoe                Accession               Manifestation
  11.         gs c scholar power              Rapture                 Ebullience
  12.         gs c scholar duration           Perpetuance
  13.         gs c scholar accuracy           Altruism                Focalization
  14.         gs c scholar enmity             Tranquility             Equanimity
  15.         gs c scholar skillchain                                 Immanence
  16.         gs c scholar addendum           Addendum: White         Addendum: Black
  17.    
  18.         Toggle Function:
  19.         gs c toggle melee               Toggle Melee mode on / off and locking of weapons
  20.         gs c toggle mb                  Toggles Magic Burst Mode on / off.
  21.         gs c toggle runspeed            Toggles locking on / off Herald's Gaiters
  22.         gs c toggle idlemode            Toggles between Refresh and DT idle mode. Activating Sublimation JA will auto replace refresh set for sublimation set. DT set will superceed both.        
  23.         gs c toggle regenmode           Toggles between Hybrid, Duration and Potency mode for regen set  
  24.         gs c toggle nukemode            Toggles between Normal and Accuracy mode for midcast Nuking sets (MB included)  
  25.         gs c toggle matchsc             Toggles auto swapping element to match the last SC that just happenned.
  26.                
  27.         Casting functions:
  28.         these are to set fewer macros (1 cycle, 5 cast) to save macro space when playing lazily with controler
  29.        
  30.         gs c nuke cycle                 Cycles element type for nuking & SC
  31.         gs c nuke cycledown             Cycles element type for nuking & SC in reverse order    
  32.         gs c nuke t1                    Cast tier 1 nuke of saved element
  33.         gs c nuke t2                    Cast tier 2 nuke of saved element
  34.         gs c nuke t3                    Cast tier 3 nuke of saved element
  35.         gs c nuke t4                    Cast tier 4 nuke of saved element
  36.         gs c nuke t5                    Cast tier 5 nuke of saved element
  37.         gs c nuke helix                 Cast helix2 nuke of saved element
  38.         gs c nuke storm                 Cast Storm II buff of saved element  
  39.                    
  40.         gs c sc tier                    Cycles SC Tier (1 & 2)
  41.         gs c sc castsc                  Cast All the stuff to create a SC burstable by the nuke element set with '/console gs c nuke element'.
  42.         HUD Functions:
  43.         gs c hud hide                   Toggles the Hud entirely on or off
  44.         gs c hud hidemode               Toggles the Modes section of the HUD on or off
  45.         gs c hud hidejob                Toggles the job section of the HUD on or off
  46.         gs c hud hidebattle             Toggles the Battle section of the HUD on or off
  47.         gs c hud lite                   Toggles the HUD in lightweight style for less screen estate usage. Also on ALT-END
  48.         gs c hud keybinds               Toggles Display of the HUD keybindings (my defaults) You can change just under the binds in the Gearsets file.
  49.         // OPTIONAL IF YOU WANT / NEED to skip the cycles...  
  50.         gs c nuke Ice                   Set Element Type to Ice DO NOTE the Element needs a Capital letter.
  51.         gs c nuke Air                   Set Element Type to Air DO NOTE the Element needs a Capital letter.
  52.         gs c nuke Dark                  Set Element Type to Dark DO NOTE the Element needs a Capital letter.
  53.         gs c nuke Light                 Set Element Type to Light DO NOTE the Element needs a Capital letter.
  54.         gs c nuke Earth                 Set Element Type to Earth DO NOTE the Element needs a Capital letter.
  55.         gs c nuke Lightning             Set Element Type to Lightning DO NOTE the Element needs a Capital letter.
  56.         gs c nuke Water                 Set Element Type to Water DO NOTE the Element needs a Capital letter.
  57.         gs c nuke Fire                  Set Element Type to Fire DO NOTE the Element needs a Capital letter.
  58. --]]
  59.  
  60. -------------------------------------------------------------                                        
  61. --                              
  62. --      ,---.     |    o              
  63. --      |   |,---.|--- .,---.,---.,---.
  64. --      |   ||   ||    ||   ||   |`---.
  65. --      `---'|---'`---'``---'`   '`---'
  66. --           |                        
  67. -------------------------------------------------------------  
  68.  
  69. include('organizer-lib') -- Can remove this if you dont use organizer
  70. res = require('resources')
  71. texts = require('texts')
  72. include('Modes.lua')
  73.  
  74. -- Define your modes:
  75. -- You can add or remove modes in the table below, they will get picked up in the cycle automatically.
  76. -- to define sets for idle if you add more modes, name them: sets.me.idle.mymode and add 'mymode' in the group.
  77. -- to define sets for regen if you add more modes, name them: sets.midcast.regen.mymode and add 'mymode' in the group.
  78. -- Same idea for nuke modes.
  79. idleModes = M('refresh', 'dt', 'mdt')
  80. regenModes = M('hybrid', 'duration', 'potency')
  81. -- To add a new mode to nuking, you need to define both sets: sets.midcast.nuking.mynewmode as well as sets.midcast.MB.mynewmode
  82. nukeModes = M('normal', 'acc')
  83.  
  84. -- Setting this to true will stop the text spam, and instead display modes in a UI.
  85. -- Currently in construction.
  86. use_UI = true
  87. hud_x_pos = 1400    --important to update these if you have a smaller screen
  88. hud_y_pos = 200     --important to update these if you have a smaller screen
  89. hud_draggable = true
  90. hud_font_size = 10
  91. hud_transparency = 200 -- a value of 0 (invisible) to 255 (no transparency at all)
  92. hud_font = 'Impact'
  93.  
  94.  
  95. -- Setup your Key Bindings here:
  96.     windower.send_command('bind insert gs c nuke cycle')        -- insert to Cycles Nuke element
  97.     windower.send_command('bind delete gs c nuke cycledown')    -- delete to Cycles Nuke element in reverse order  
  98.     windower.send_command('bind f9 gs c toggle idlemode')       -- F9 to change Idle Mode    
  99.     windower.send_command('bind !f9 gs c toggle runspeed')      -- Alt-F9 toggles locking on / off Herald's Gaiters
  100.     windower.send_command('bind f12 gs c toggle melee')         -- F12 Toggle Melee mode on / off and locking of weapons
  101.     windower.send_command('bind !` input /ma Stun <t>')         -- Alt-` Quick Stun Shortcut.
  102.     windower.send_command('bind home gs c sc tier')             -- home to change SC tier between Level 1 or Level 2 SC
  103.     windower.send_command('bind end gs c toggle regenmode')     -- end to change Regen Mode
  104.     windower.send_command('bind f10 gs c toggle mb')            -- F10 toggles Magic Burst Mode on / off.
  105.     windower.send_command('bind !f10 gs c toggle nukemode')     -- Alt-F10 to change Nuking Mode
  106.     windower.send_command('bind ^F10 gs c toggle matchsc')      -- CTRL-F10 to change Match SC Mode        
  107.     windower.send_command('bind !end gs c hud lite')            -- Alt-End to toggle light hud version  
  108.  
  109. --[[
  110.     This gets passed in when the Keybinds is turned on.
  111.     Each one matches to a given variable within the text object
  112.     IF you changed the Default Keybind above, Edit the ones below so it can be reflected in the hud using "//gs c hud keybinds" command
  113. ]]
  114. keybinds_on = {}
  115. keybinds_on['key_bind_idle'] = '(F9)'
  116. keybinds_on['key_bind_regen'] = '(END)'
  117. keybinds_on['key_bind_casting'] = '(ALT-F10)'
  118. keybinds_on['key_bind_mburst'] = '(F10)'
  119.  
  120. keybinds_on['key_bind_element_cycle'] = '(INSERT)'
  121. keybinds_on['key_bind_sc_level'] = '(HOME)'
  122. keybinds_on['key_bind_lock_weapon'] = '(F12)'
  123. keybinds_on['key_bind_movespeed_lock'] = '(ALT-F9)'
  124. keybinds_on['key_bind_matchsc'] = '(CTRL-F10)'
  125.  
  126. -- Remember to unbind your keybinds on job change.
  127. function user_unload()
  128.     send_command('unbind insert')
  129.     send_command('unbind delete')  
  130.     send_command('unbind f9')
  131.     send_command('unbind f10')
  132.     send_command('unbind f12')
  133.     send_command('unbind !`')
  134.     send_command('unbind home')
  135.     send_command('unbind end')
  136.     send_command('unbind !f10')
  137.     send_command('unbind `f10')
  138.     send_command('unbind !f9') 
  139.     send_command('unbind !end')        
  140. end
  141.  
  142.  
  143. --------------------------------------------------------------------------------------------------------------
  144. include('SCH_Lib.lua')          -- leave this as is    
  145. refreshType = idleModes[1]      -- leave this as is    
  146. --------------------------------------------------------------------------------------------------------------
  147.  
  148.  
  149. -- Optional. Swap to your sch macro sheet / book
  150. set_macros(10,5) -- Sheet, Book
  151.  
  152.  
  153. -------------------------------------------------------------                                        
  154. --      ,---.                         |        
  155. --      |  _.,---.,---.,---.,---.,---.|--- ,---.
  156. --      |   ||---',---||    `---.|---'|    `---.
  157. --      `---'`---'`---^`    `---'`---'`---'`---'
  158. -------------------------------------------------------------                                              
  159.  
  160. -- Setup your Gear Sets below:
  161. function get_sets()
  162.  
  163.     -- My formatting is very easy to follow. All sets that pertain to my character doing things are under 'me'.
  164.     -- All sets that are equipped to faciliate my avatar's behaviour or abilities are under 'avatar', eg, Perpetuation, Blood Pacts, etc
  165.      
  166.     sets.me = {}                -- leave this empty
  167.     sets.buff = {}              -- leave this empty
  168.     sets.me.idle = {}           -- leave this empty
  169.  
  170.     -- Your idle set
  171.     sets.me.idle.refresh = {
  172.         main="Akademos",
  173.         sub="Enki Strap",
  174.         ammo="Staunch Tathlum +1",
  175.         head="Befouled Crown",
  176.         body="Jhakri Robe +2",
  177.         hands={ name="Otomi Gloves", augments={'HP+30','MP+30','STR+8',}},
  178.         legs="Assid. Pants +1",
  179.         feet="Herald's Gaiters",
  180.         neck="Loricate Torque +1",
  181.         waist="Fucho-no-Obi",
  182.         left_ear="Infused Earring",
  183.         right_ear="Dawn Earring",
  184.         left_ring="Defending Ring",
  185.         right_ring="Stikini Ring +1",
  186.         back="Solemnity Cape",
  187.         }
  188.  
  189.     -- Your idle Sublimation set combine from refresh or DT depening on mode.
  190.     sets.me.idle.sublimation = set_combine(sets.me.idle.refresh,{
  191.  
  192.     })  
  193.     -- Your idle DT set
  194.     sets.me.idle.dt = set_combine(sets.me.idle[refreshType],{
  195.  
  196.     })  
  197.     sets.me.idle.mdt = set_combine(sets.me.idle[refreshType],{
  198.  
  199.     })  
  200.     -- Your MP Recovered Whilst Resting Set
  201.     sets.me.resting = set_combine(sets.me.idle[refreshType],{
  202.  
  203.     })
  204.    
  205.     sets.me.latent_refresh = {waist="Fucho-no-obi"}    
  206.    
  207.     -- Combat Related Sets
  208.     sets.me.melee = set_combine(sets.me.idle[idleModes.current],{
  209.  
  210.     })
  211.      
  212.     -- Weapon Skills sets just add them by name.
  213.     sets.me["Shattersoul"] = {
  214.  
  215.     }
  216.     sets.me["Myrkr"] = {
  217.         main="Akademos",
  218.         sub="Enki Strap",
  219.         ammo="Staunch Tathlum +1",
  220.         head="Befouled Crown",
  221.         body="Jhakri Robe +2",
  222.         hands={ name="Otomi Gloves", augments={'HP+30','MP+30','STR+8',}},
  223.         legs="Assid. Pants +1",
  224.         feet="Herald's Gaiters",
  225.         neck="Loricate Torque +1",
  226.         waist="Fucho-no-Obi",
  227.         left_ear="Infused Earring",
  228.         right_ear="Dawn Earring",
  229.         left_ring="Defending Ring",
  230.         right_ring="Stikini Ring +1",
  231.         back="Solemnity Cape",
  232.     }
  233.      
  234.     -- Feel free to add new weapon skills, make sure you spell it the same as in game. These are the only two I ever use though
  235.  
  236.     ------------
  237.     -- Buff Sets
  238.     ------------   
  239.     -- Gear that needs to be worn to **actively** enhance a current player buff.
  240.     -- Fill up following with your avaible pieces.
  241.     sets.buff['Rapture'] = {head="Arbatel bonnet +1"}
  242.     sets.buff['Perpetuance'] = {hands="Arbatel Bracers +1"}
  243.     sets.buff['Immanence'] = {hands="Arbatel Bracers +1"}
  244.     sets.buff['Penury'] = {legs="Arbatel Pants +1"}
  245.     sets.buff['Parsimony'] = {legs="Arbatel Pants +1"}
  246.     sets.buff['Celerity'] = {feet="Peda. Loafers +3"}
  247.     sets.buff['Alacrity'] = {feet="Peda. Loafers +3"}
  248.     sets.buff['Klimaform'] = {feet="Arbatel Loafers +1"}   
  249.     -- Ebulience set empy now as we get better damage out of a good Merlinic head
  250.     sets.buff['Ebullience'] = {} -- I left it there still if it becomes needed so the SCH.lua file won't need modification should you want to use this set
  251.    
  252.    
  253.    
  254.     ---------------
  255.     -- Casting Sets
  256.     ---------------
  257.     sets.precast = {}           -- Leave this empty  
  258.     sets.midcast = {}           -- Leave this empty  
  259.     sets.aftercast = {}         -- Leave this empty  
  260.     sets.midcast.nuking = {}    -- leave this empty
  261.     sets.midcast.MB = {}        -- leave this empty      
  262.     ----------
  263.     -- Precast
  264.     ----------
  265.      
  266.     -- Generic Casting Set that all others take off of. Here you should add all your fast cast
  267.     -- Grimoire: 10(cap:25) / rdm: 15
  268.     sets.precast.casting = {
  269.         main="Akademos",
  270.         sub="Enki Strap",
  271.         ammo="Staunch Tathlum +1",
  272.         head={ name="Vanya Hood", augments={'MP+50','"Fast Cast"+10','Haste+2%',}},
  273.         body="Shango Robe",
  274.         hands={ name="Otomi Gloves", augments={'HP+30','MP+30','STR+8',}},
  275.         legs={ name="Lengo Pants", augments={'INT+7','Mag. Acc.+7','"Mag.Atk.Bns."+3','"Refresh"+1',}},
  276.         feet="Amalric Nails",
  277.         neck="Baetyl Pendant",
  278.         waist="Witful Belt",
  279.         left_ear="Loquac. Earring",
  280.         right_ear="Barkaro. Earring",
  281.         left_ring="Prolix Ring",
  282.         right_ring="Kishar Ring",
  283.         back="Swith Cape",
  284.         }
  285.  
  286.     sets.precast["Stun"] = set_combine(sets.precast.casting,{})
  287.  
  288.     -- When spell school is aligned with grimoire, swap relevent pieces -- Can also use Arbatel +1 set here if you value 1% quickcast procs per piece. (2+ pieces)  
  289.     -- Dont set_combine here, as this is the last step of the precast, it will have sorted all the needed pieces already based on type of spell.
  290.     -- Then only swap in what under this set after everything else.
  291.     sets.precast.grimoire = set_combine(sets.precast.casting,{})
  292.  
  293.    
  294.     -- Enhancing Magic, eg. Siegal Sash, etc
  295.     sets.precast.enhancing = set_combine(sets.precast.casting,{})
  296.  
  297.     -- Stoneskin casting time -, works off of enhancing -
  298.     sets.precast.stoneskin = set_combine(sets.precast.enhancing,{})
  299.      
  300.     -- Curing Precast, Cure Spell Casting time -
  301.     sets.precast.cure = set_combine(sets.precast.casting,{})
  302.      
  303.     ---------------------
  304.     -- Ability Precasting
  305.     ---------------------
  306.  
  307.     sets.precast["Tabula Rasa"] = {legs="Pedagogy Pants +1"}
  308.     sets.precast["Enlightenment"] = {body="Peda. Gown +3"}   
  309.     sets.precast["Sublimation"] = {head="Acad. Mortar. +1", body="Peda. Gown +3"}    
  310.  
  311.    
  312.     ----------
  313.     -- Midcast
  314.     ----------
  315.    
  316.     -- Just go make it, inventory will thank you and making rules for each is meh.
  317.     sets.midcast.Obi = {
  318.         waist="Hachirin-no-Obi",
  319.     }
  320.    
  321.     -----------------------------------------------------------------------------------------------
  322.     -- Helix sets automatically derives from casting sets. SO DONT PUT ANYTHING IN THEM other than:
  323.     -- Pixie in DarkHelix
  324.     -- Boots that aren't arbatel +1 (15% of small numbers meh, amalric+1 does more)
  325.     -- Belt that isn't Obi.
  326.     -----------------------------------------------------------------------------------------------
  327.     -- Make sure you have a non weather obi in this set. Helix get bonus naturally no need Obi.
  328.     sets.midcast.DarkHelix = {
  329.  
  330.     }
  331.     -- Make sure you have a non weather obi in this set. Helix get bonus naturally no need Obi.
  332.     sets.midcast.Helix = {
  333.  
  334.     }  
  335.  
  336.     -- Whatever you want to equip mid-cast as a catch all for all spells, and we'll overwrite later for individual spells
  337.    
  338.     sets.midcast.casting = set_combine(sets.precast.casting,{})
  339.  
  340.     sets.midcast["Sublimation"] = set_combine(sets.midcast.casting,{head="Acad. Mortar. +1", body="Peda. Gown +3"})
  341.    
  342.     sets.midcast.nuking.normal = set_combine(sets.midcast.casting,{
  343.         main="Akademos",
  344.         sub="Enki Strap",
  345.         ammo="Pemphredo Tathlum",
  346.         head="Merlinic Hood",
  347.         neck="Sanctity Necklace",
  348.         ear1="Regal Earring",
  349.         ear2="Barkaro. Earring",
  350.         body="Amalric Doublet +1",
  351.         hands="Amalric Gages +1",
  352.         ring1={name="Shiva Ring +1", bag="Wardobe3"},
  353.         ring2={name="Shiva Ring +1", bag="Wardobe"},
  354.         back="Taranus's Cape",
  355.         waist="Refoccilation Stone",
  356.         legs="Amalric Slops",
  357.         feet={ name="Merlinic Crackows", augments={'Mag. Acc.+23 "Mag.Atk.Bns."+23','Magic burst dmg.+5%','Mag. Acc.+14',}}
  358.     })
  359.  
  360.     -- used with toggle, default: F10
  361.     -- Pieces to swap from freen nuke to Magic Burst
  362.     sets.midcast.MB.normal = set_combine(sets.midcast.nuking.normal, {
  363.         neck="Mizu. Kubikazari",
  364.         right_ring="Mujin Band",
  365.         })
  366.    
  367.     sets.midcast.nuking.acc = set_combine(sets.midcast.nuking.normal, {
  368.  
  369.     })
  370.  
  371.     -- used with toggle, default: F10
  372.     -- Pieces to swap from freen nuke to Magic Burst
  373.     sets.midcast.MB.acc = set_combine(sets.midcast.nuking.normal, {
  374.  
  375.     }) 
  376.    
  377.     -- Enfeebling
  378.     sets.midcast["Stun"] = set_combine(sets.midcast.casting,{})
  379.    
  380.     sets.midcast.IntEnfeebling = {
  381.  
  382.     }
  383.     sets.midcast.MndEnfeebling = {
  384.  
  385.     }
  386.    
  387.     -- Enhancing
  388.     sets.midcast.enhancing = set_combine(sets.midcast.casting,{
  389.  
  390.     })
  391.     sets.midcast.storm = set_combine(sets.midcast.enhancing,{
  392.  
  393.     })      
  394.     -- Stoneskin
  395.     sets.midcast.stoneskin = set_combine(sets.midcast.enhancing,{})
  396.  
  397.     sets.midcast.refresh = set_combine(sets.midcast.enhancing,{})
  398.  
  399.     sets.midcast.aquaveil = sets.midcast.refresh
  400.    
  401.     sets.midcast["Drain"] = set_combine(sets.midcast.nuking, {
  402.         head="Pixie Hairpin +1",
  403.     })
  404.     sets.midcast["Aspir"] = sets.midcast["Drain"]
  405.    
  406.     sets.midcast.cure = {} -- Leave This Empty
  407.     -- Cure Potency
  408.     sets.midcast.cure.normal = set_combine(sets.midcast.casting,{
  409.         main="Akademos",
  410.         sub="Enki Strap",
  411.         ammo="Staunch Tathlum +1",
  412.         head="Befouled Crown",
  413.         body="Jhakri Robe +2",
  414.         hands={ name="Otomi Gloves", augments={'HP+30','MP+30','STR+8',}},
  415.         legs="Assid. Pants +1",
  416.         feet="Herald's Gaiters",
  417.         neck="Loricate Torque +1",
  418.         waist="Fucho-no-Obi",
  419.         left_ear="Infused Earring",
  420.         right_ear="Dawn Earring",
  421.         left_ring="Defending Ring",
  422.         right_ring="Stikini Ring +1",
  423.         back="Solemnity Cape",
  424.         })
  425.     sets.midcast.cure.weather = set_combine(sets.midcast.cure.normal,{
  426.         main="Chatoyant Staff",
  427.  
  428.     })    
  429.  
  430.     ------------
  431.     -- Regen
  432.     ------------   
  433.     sets.midcast.regen = {}     -- leave this empty
  434.     -- Normal hybrid well rounded Regen
  435.     sets.midcast.regen.hybrid = {
  436.  
  437.     }
  438.     -- Focus on Regen Duration  
  439.     sets.midcast.regen.duration = set_combine(sets.midcast.regen.hybrid,{
  440.  
  441.     })
  442.     -- Focus on Regen Potency  
  443.     sets.midcast.regen.potency = set_combine(sets.midcast.regen.hybrid,{
  444.  
  445.     })
  446.    
  447.     ------------
  448.     -- Aftercast
  449.     ------------
  450.      
  451.     -- I don't use aftercast sets, as we handle what to equip later depending on conditions using a function.
  452.    
  453. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement