Advertisement
Arnan

RUN Lua October 2017

Oct 4th, 2017
149
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 26.74 KB | None | 0 0
  1.        
  2.         --------------------------------------------------
  3.         -- *** Amadis Rune Fencer Gearswap Lua File *** --
  4.         --------------------------------------------------
  5.        
  6.             -- Commands --
  7.                
  8.                 -- In Game: //gs c, Macro: /console gs c, Bind: gs c --
  9.            
  10.                 -- gs c acc         Toggle accuracy tier for TP/WS
  11.                 -- gs c idle        Toggle idle sets
  12.                 -- gs c thaumas     Thaumas Coat on/off
  13.                
  14.                 -- gs c hpdt        HP DT on/off
  15.                 -- gs c resist      Resist DT on/off
  16.                 -- gs c parry       Parry DT on/off
  17.                 -- gs c kiting      Kiting on/off
  18.                 -- gs c hybrid      Hybrid on/off
  19.  
  20.         ----------
  21.         -- Sets --
  22.         ----------             
  23.                
  24. function get_sets()
  25.     AccIndex = 1
  26.     AccArray = {"LowACC","MidACC","HighACC","MaxACC"} -- 4 Levels Of Accuracy Sets For TP/WS/Hybrid. Default ACC Set Is LowACC. Add More ACC Sets If Needed Then Create Your New ACC Below --
  27.     IdleIndex = 1
  28.     IdleArray = {"Full","DT"} -- Default Idle Set Is Movement --
  29.     Armor = 'None'
  30.     target_distance = 6 -- Set Default Distance Here --
  31.     Thaumas = 'OFF' -- Set Default Thaumas Coat ON or OFF Here --
  32.     send_command('input /macro book 4;wait .1;input /macro set 1') -- Change Default Macro Book Here --
  33.     add_to_chat(158,'-[Rune Fencer Lua Loaded]-')
  34.     add_to_chat(155,'Accuracy Level: ' .. AccArray[AccIndex])
  35.     add_to_chat(155,'Idle Set: ' .. IdleArray[IdleIndex])
  36.    
  37.         -- Herculean Augments --
  38.         HerculeanGloves={}
  39.         HerculeanGloves.DT={ name="Herculean Gloves", augments={'Damage taken-3%','DEX+8','Accuracy+11','Attack+10',}}
  40.         HerculeanGloves.TH={ name="Herculean Gloves", augments={'Mag. Acc.+6','Accuracy+8','"Treasure Hunter"+1','Accuracy+13 Attack+13',}}
  41.         HerculeanGloves.RF={ name="Herculean Gloves", augments={'Magic dmg. taken -1%','Enmity-2','"Refresh"+1','Accuracy+11 Attack+11',}}
  42.         HerculeanBoots={}
  43.         HerculeanBoots.TA={ name="Herculean Boots", augments={'Accuracy+27','"Triple Atk."+4','DEX+7','Attack+13',}}
  44.         HerculeanBoots.WSD={ name="Herculean Boots", augments={'Accuracy+18 Attack+18','Weapon skill damage +5%','STR+9','Attack+10',}}
  45.         HerculeanBoots.DT={ name="Herculean Boots", augments={'Accuracy+12','Phys. dmg. taken -5%','Attack+5',}}
  46.         HerculeanBoots.RF={ name="Herculean Boots", augments={'"Fast Cast"+3','Pet: "Regen"+2','"Refresh"+1',}}
  47.  
  48.         -- Ogma's Cape Augments --
  49.         TankCape={ name="Ogma's cape", augments={'HP+60','Eva.+20 /Mag. Eva.+20','Enmity+10',}}
  50.         STRDACape={ name="Ogma's cape", augments={'STR+20','Accuracy+20 Attack+20','"Dbl.Atk."+10',}}
  51.         DEXWSDCape={ name="Ogma's cape", augments={'DEX+20','Accuracy+20 Attack+20','Weapon skill damage +10%',}}
  52.         STRSTPCape={ name="Ogma's cape", augments={'STR+20','Accuracy+20 Attack+20','"Store TP"+10',}}
  53.        
  54.         -- Key Binds --
  55.         send_command('bind F11 input /ws "Dimidiation" <t>')
  56.         send_command('bind F12 input //send ojomo /ws "Last Stand" <t>')
  57.         send_command('bind !F12 input //send ojomo "Leaden Salute" <t>')
  58.         send_command('bind !Delete input //send ojomo /ws "Savage Blade" <t>')
  59.         send_command('bind Delete input /ws "Resolution" <t>')
  60.         function file_unload()
  61.         send_command('unbind !F12')
  62.         send_command('unbind !F12')
  63.         send_command('unbind !Delete')
  64.         send_command('unbind Delete')
  65.         end
  66.        
  67.     --------------------
  68.     -- Idle/Town Sets --
  69.     --------------------
  70.     sets.Idle = {}
  71.         sets.Idle.Full = {
  72.             ammo="Staunch Tathlum",
  73.             head="Turms Cap",
  74.             neck="Bathy Choker +1",
  75.             ear1="Odnowa Earring",
  76.             ear2="Odnowa Earring +1",
  77.             body="Runeist Coat +1",
  78.             hands=HerculeanGloves.RF,
  79.             ring1="Moonbeam Ring",
  80.             ring2="Moonbeam Ring",
  81.             back="Moonbeam Cape",
  82.             waist="Flume Belt +1",
  83.             legs="Carmine Cuisses +1",
  84.             feet=HerculeanBoots.RF}
  85.         sets.Idle.DT = set_combine(sets.Idle.Full,{
  86.             neck="Loricate Torque +1"})
  87.            
  88.     -------------
  89.     -- TP Sets --
  90.     -------------
  91.     sets.TP = {
  92.             ammo="Yamarang",
  93.             head="Adhemar Bonnet +1",
  94.             neck="Anu Torque",
  95.             ear1="Cessance Earring",
  96.             ear2="Sherida Earring",
  97.             body="Adhemar Jacket +1",
  98.             hands="Adhemar Wrist. +1",
  99.             ring1="Niqmaddu Ring",
  100.             ring2="Epona's Ring",
  101.             back=STRDACape,
  102.             waist="Windbuffet Belt +1",
  103.             legs="Samnuha Tights",
  104.             feet=HerculeanBoots.TA}
  105.         sets.TP.MidACC = set_combine(sets.TP,{
  106.             head="Dampening Tam",
  107.             neck="Combatant's Torque"})
  108.         sets.TP.HighACC = set_combine(sets.TP.MidACC,{
  109.             ring1="Ramuh Ring +1",
  110.             Waist="Olseni Belt"})
  111.         sets.TP.MaxACC = set_combine(sets.TP.HighACC,{
  112.             head="Carmine Mask +1",
  113.             ring2="Ramuh Ring +1",
  114.             legs="Carmine Cuisses +1"})
  115.            
  116.     -- Epeolatry AM3 TP Sets --
  117.     sets.TP.AM3 = set_combine(sets.TP,{
  118.             ear1="Digni. Earring",
  119.             ear2="Dedition Earring",
  120.             ring2="Hetairoi Ring",
  121.             back=STRSTPCape})
  122.         sets.TP.MidACC = set_combine(sets.TP.AM3,{
  123.             head="Dampening Tam",
  124.             neck="Combatant's Torque"})
  125.         sets.TP.HighACC.AM3 = set_combine(sets.TP.MidACC.AM3,{
  126.             ring2="Ramuh Ring +1",
  127.             Waist="Olseni Belt"})
  128.         sets.TP.MaxACC.AM3 = set_combine(sets.TP.HighACC.AM3,{
  129.             head="Carmine Mask +1",
  130.             ring1="Ramuh Ring +1",
  131.             legs="Carmine Cuisses +1"})
  132.                        
  133.     -- TP Thaumas Coat --
  134.     sets.TP.Thaumas = {body="Thaumas Coat"}
  135.  
  136.     ---------------------------------------
  137.     -- HP/Resist/Parry Damage Taken Sets --
  138.     ---------------------------------------
  139.    
  140.         -- HP DT --
  141.         sets.HPDT = {
  142.             ammo="Staunch Tathlum",
  143.             head="Fu. bandeau +1",
  144.             neck="Loricate Torque +1",
  145.             ear1="Odnowa Earring",
  146.             ear2="Odnowa Earring +1",
  147.             body="Erilaz Surcoat +1",
  148.             hands=HerculeanGloves.DT,
  149.             ring1="Moonbeam Ring",
  150.             ring2="Moonbeam Ring",
  151.             back="Moonbeam Cape",
  152.             waist="Flume Belt +1",
  153.             legs="Eri. Leg Guards +1",
  154.             feet="Erilaz Greaves +1"}
  155.  
  156.         -- Resist DT --
  157.         sets.Resist = set_combine(sets.HPDT,{
  158.             body="Futhark Coat +1",
  159.             hands="Erilaz Gauntlets +1",
  160.             ring1="Defending Ring",
  161.             back=TankCape,
  162.             legs="Rune. Trousers +1"})
  163.  
  164.         -- Parry DT --
  165.         sets.Parry = set_combine(sets.HPDT,{
  166.             body="Futhark Coat +1",
  167.             hands="Turms Mittens",
  168.             ring1="Defending Ring",
  169.             back=TankCape,
  170.             legs="Eri. Leg Guards +1",
  171.             feet="Turms Leggings"})
  172.        
  173.         -- Hybrid Sets --
  174.         sets.TP.Hybrid = {
  175.             ammo="Staunch Tathlum",
  176.             head="Aya. Zucchetto +1",
  177.             neck="Loricate Torque +1",
  178.             ear1="Digni. Earring",
  179.             ear2="Zennaroi Earring",
  180.             body="Adhemar Jacket +1",
  181.             hands="Adhemar Wrist. +1",
  182.             ring1="Defending Ring",
  183.             ring2="Moonbeam Ring",
  184.             back=STRSTPCape,
  185.             waist="Windbuffet Belt +1",
  186.             legs="Aya. Cosciales +1",
  187.             feet=HerculeanBoots.TA}
  188.         sets.TP.Hybrid.MidACC = set_combine(sets.TP.Hybrid,{})
  189.         sets.TP.Hybrid.HighACC = set_combine(sets.TP.Hybrid.MidACC,{})
  190.         sets.TP.Hybrid.MaxACC = set_combine(sets.TP.Hybrid.HighACC,{})
  191.        
  192.         -- Kiting Set --
  193.         sets.Kiting =  set_combine(sets.HPDT,{
  194.             body="Futhark Coat +1",
  195.             legs="Carmine Cuisses +1",
  196.             feet="Hippo. Socks +1"})
  197.  
  198.         -----------------------
  199.         -- Weapon Skill Sets --
  200.         -----------------------
  201.            
  202.         -- WS Base Set --
  203.         sets.WS = {
  204.             ammo="Seeth. Bomblet +1",            
  205.             head="Adhemar Bonnet +1",
  206.             neck="Fotia Gorget",
  207.             ear1="Moonshade Earring",
  208.             ear2="Sherida Earring",
  209.             body="Adhemar Jacket +1",
  210.             hands="Adhemar Wrist. +1",
  211.             ring1="Niqmaddu Ring",
  212.             ring2="Epona's Ring",
  213.             back=STRDACape,
  214.             waist="Fotia Belt",
  215.             legs="Meg. Chausses +2",
  216.             feet=HerculeanBoots.TA}
  217.         sets.WS.MidACC = set_combine(sets.WS,{
  218.             head="Dampening Tam"})
  219.         sets.WS.HighACC = set_combine(sets.WS.MidACC,{
  220.             ammo="Yamarang",
  221.             ring2="Ramuh Ring +1"})
  222.         sets.WS.MaxACC = set_combine(sets.WS.HighACC,{
  223.             head="Carmine Mask +1",
  224.             ring1="Ramuh Ring +1",
  225.             Waist="Olseni Belt",
  226.             legs="Carmine Cuisses +1"})
  227.    
  228.         sets.WS.Resolution = set_combine(sets.WS,{})
  229.         sets.WS.Resolution.MidACC = set_combine(sets.WS.MidACC,{})
  230.         sets.WS.Resolution.HighACC = set_combine(sets.WS.HighACC,{})
  231.         sets.WS.Resolution.MaxACC = set_combine(sets.WS.MaxACC,{}) 
  232.        
  233.         sets.WS.Dimidiation = set_combine(sets.WS,{
  234.             ammo="Knobkierrie",
  235.             ear2="Ishvara Earring",
  236.             hands="Meg. Gloves +2",
  237.             ring1="Regal Ring",
  238.             ring2="Ilabrat Ring",
  239.             back="DEXWSDCape",
  240.             legs="Lustr. Subligar +1",
  241.             feet="Lustra. Leggings +1"})
  242.         sets.WS.Dimidiation.MidACC = set_combine(sets.WS.MidACC,{
  243.             ammo="Knobkierrie",
  244.             ear2="Ishvara Earring",
  245.             hands="Meg. Gloves +2",
  246.             ring1="Regal Ring",
  247.             ring2="Ilabrat Ring",
  248.             back="DEXWSDCape",
  249.             legs="Lustr. Subligar +1",
  250.             feet="Lustra. Leggings +1"})
  251.         sets.WS.Dimidiation.HighACC = set_combine(sets.WS.HighACC,{
  252.             ear2="Ishvara Earring",
  253.             hands="Meg. Gloves +2",
  254.             ring1="Regal Ring",
  255.             ring2="Ilabrat Ring",
  256.             back="DEXWSDCape",
  257.             legs="Lustr. Subligar +1",
  258.             feet="Lustra. Leggings +1"})
  259.         sets.WS.Dimidiation.MaxACC = set_combine(sets.WS.MaxACC,{
  260.             hands="Meg. Gloves +2",
  261.             back="DEXWSDCape",
  262.             legs="Lustr. Subligar +1",
  263.             feet="Lustra. Leggings +1"})
  264.            
  265.         ----------------------
  266.         -- Job Ability Sets --
  267.         ----------------------
  268.                
  269.     -- Enmity Set --
  270.     sets.Enmity = {
  271.                         ammo="Staunch Tathlum",
  272.                         head="Highwing Helm",
  273.                         neck="Unmoving Collar +1",
  274.                         ear1="Trux Earring",
  275.                         ear2="Cryptic Earring",
  276.                         hands="Futhark Mitons +1",
  277.                         ring1="Eihwaz Ring",
  278.                         ring2="Moonbeam Ring",
  279.                         back="Evasionist's Cape",
  280.                         waist="Goading Belt"}
  281.                        
  282.     -- JA Sets --
  283.     sets.JA = {}
  284.         sets.JA.Vallation = set_combine(sets.Enmity,{
  285.                         body="Runeist Coat +1",
  286.                         legs="Futhark Trousers +1",
  287.                         back="Ogma's Cape"})
  288.                        
  289.         sets.JA.Swordplay = set_combine(sets.Enmity,{
  290.                         hands="Futhark Mitons +1"})
  291.                        
  292.         sets.JA.Lunge = set_combine(sets.Enmity,{
  293.                         ammo="Pemphredo Tathlum",
  294.                         head="Highwing Helm",
  295.                         neck="Sanctity Necklace",
  296.                         ear1="Friomisi Earring",
  297.                         ear2="Crematio Earring",
  298.                         body="Count's Garb",
  299.                         hands="Taeon Gloves",
  300.                         ring1="Shiva Ring +1",
  301.                         ring2="Shiva Ring +1",
  302.                         back="Evasionist's Cape",
  303.                         legs="Shned. Tights +1",
  304.                         feet="Manabyss Pigaches"})
  305.                        
  306.         sets.JA.Swipe = set_combine(sets.Enmity,{
  307.                         ammo="Pemphredo Tathlum",
  308.                         head="Highwing Helm",
  309.                         neck="Sanctity Necklace",
  310.                         ear1="Friomisi Earring",
  311.                         ear2="Crematio Earring",
  312.                         body="Count's Garb",
  313.                         hands="Taeon Gloves",
  314.                         ring1="Shiva Ring +1",
  315.                         ring2="Shiva Ring +1",
  316.                         back="Evasionist's Cape",
  317.                         legs="Shned. Tights +1",
  318.                         feet="Manabyss Pigaches"})
  319.                        
  320.         sets.JA.Pflug = set_combine(sets.Enmity,{
  321.                         feet="Runeist Bottes +1"})
  322.                            
  323.         sets.JA.Valiance = set_combine(sets.Enmity,{
  324.                         body="Runeist Coat +1",
  325.                         legs="Futhark Trousers +1",
  326.                         back="Ogma's Cape"})
  327.                        
  328.         sets.JA.Embolden = set_combine(sets.Enmity,{
  329.                         back="Evasionist's Cape"})
  330.        
  331.         sets.JA.Gambit = set_combine(sets.Enmity,{
  332.                         hands="Runeist Mitons +1"})
  333.                        
  334.         sets.JA.Liement = set_combine(sets.Enmity,{
  335.                         body="Futhark Coat +1"})
  336.        
  337.         sets.JA["One For All"] = set_combine(sets.Enmity)
  338.        
  339.         sets.JA.Battuta = set_combine(sets.Enmity,{
  340.                         head="Fu. Bandeau +1"})
  341.                        
  342.         sets.JA.Rayke = set_combine(sets.Enmity,{
  343.                         feet="Futhark Boots"})
  344.  
  345.     -- Waltz Set --
  346.     sets.Waltz = {
  347.                         ammo="Staunch Tathlum",
  348.                         head="Rune. Bandeau +1",
  349.                         neck="Unmoving Collar +1",
  350.                         ear1="Trux Earring",
  351.                         ear2="Cryptic Earring",
  352.                         body="Vanir Cotehardie",
  353.                         hands="Runeist Mitons +1",
  354.                         ring1="Eihwaz Ring",
  355.                         ring2="Moonbeam Ring",
  356.                         back="Evasionist's Cape",
  357.                         waist="Goading Belt",
  358.                         legs="Rune. Trousers +1",
  359.                         feet="Runeist Bottes +1"}
  360.  
  361.         --------------------
  362.         -- Pre-Cast Sets --
  363.         --------------------
  364.                        
  365.     sets.Precast = {}
  366.     -- Fastcast Set --
  367.     sets.Precast.FastCast = {                        
  368.                         ammo="Impatiens",
  369.                         head="Carmine Mask +1",
  370.                         neck="Orunmila's Torque",
  371.                         ear1="Odnowa Earring",
  372.                         ear2="Odnowa Earring +1",
  373.                         body="Taeon Tabard",
  374.                         hands="Leyline Gloves",
  375.                         ring1="Moonbeam Ring",
  376.                         ring2="Moonbeam Ring",
  377.                         back="Moonbeam Cape",
  378.                         waist="Flume Belt +1",
  379.                         legs="Carmine Cuisses +1",
  380.                         feet="Carmine Greaves +1"}
  381.  
  382.     -- Utsusemi Precast Set --
  383.     sets.Precast.Utsusemi = set_combine(sets.Precast.FastCast,{})
  384.  
  385.     -- Precast Enhancing Magic --
  386.     sets.Precast['Enhancing Magic'] = set_combine(sets.Precast.FastCast,{
  387.                         waist="Siegel Sash",
  388.                         legs="Futhark Trousers +1"})
  389.  
  390.     -------------------
  391.     -- Mid-Cast Sets --
  392.     -------------------
  393.                        
  394.     -- Midcast Base Set --
  395.     sets.Midcast = {                        
  396.                         ammo="Staunch Tathlum",
  397.                         head="Carmine Mask +1",
  398.                         neck="Orunmila's Torque",
  399.                         ear1="Odnowa Earring",
  400.                         ear2="Odnowa Earring +1",
  401.                         body="Taeon Tabard",
  402.                         hands="Leyline Gloves",
  403.                         ring1="Moonbeam Ring",
  404.                         ring2="Moonbeam Ring",
  405.                         back="Moonbeam Cape",
  406.                         waist="Flume Belt +1",
  407.                         legs="Carmine Cuisses +1",
  408.                         feet="Carmine Greaves +1"}
  409.  
  410.  
  411.     -- Magic Haste Set --
  412.     sets.Midcast.Haste = set_combine(sets.HPDT,{                        
  413.                         ammo="Staunch Tathlum",
  414.                         head="Carmine Mask +1",
  415.                         neck="Orunmila's Torque",
  416.                         ear1="Odnowa Earring",
  417.                         ear2="Odnowa Earring +1",
  418.                         body="Taeon Tabard",
  419.                         hands="Leyline Gloves",
  420.                         ring1="Moonbeam Ring",
  421.                         ring2="Moonbeam Ring",
  422.                         back="Moonbeam Cape",
  423.                         waist="Flume Belt +1",
  424.                         legs="Carmine Cuisses +1",
  425.                         feet="Carmine Greaves +1"}
  426. )
  427.                        
  428.     -- Flash Set --
  429.     sets.Midcast.Flash = {
  430.                         ammo="Staunch Tathlum",
  431.                         head="Highwing Helm",
  432.                         neck="Unmoving Collar +1",
  433.                         ear1="Trux Earring",
  434.                         ear2="Cryptic Earring",
  435.                         hands="Futhark Mitons +1",
  436.                         ring1="Eihwaz Ring",
  437.                         ring2="Moonbeam Ring",
  438.                         belt="Goading Belt"}
  439.  
  440.     -- Enhancing Magic --
  441.     sets.Midcast['Enhancing Magic'] = {                        
  442.                         head="Carmine Mask +1",
  443.                         neck="Incanter's Torque",
  444.                         ear1="Andoaa Earring",
  445.                         hands="Runeist Mitons +1",
  446.                         ring1="Stikini Ring",
  447.                         ring2="Stikini Ring",
  448.                         back="Merciful Cape",
  449.                         waist="Olympus Sash",
  450.                         legs="Carmine Cuisses +1"}
  451.  
  452.     -- Stoneskin --
  453.     sets.Midcast.Stoneskin = set_combine(sets.Midcast['Enhancing Magic'],{waist="Siegel Sash"})
  454.  
  455.     -- Phalanx --
  456.     sets.Midcast.Phalanx = set_combine(sets.Midcast['Enhancing Magic'],{                        
  457.                         head="Fu. bandeau +1"})
  458.  
  459.     -- Regen --
  460.     sets.Midcast.Regen = {
  461.                         head="Rune. Bandeau +1",
  462.                         legs="Futhark Trousers +1"}
  463.  
  464.     -- Divine Magic --
  465.     sets.Midcast['Divine Magic'] = {}
  466. end
  467.  
  468.         ----------------
  469.         -- Pre-Target --
  470.         ----------------
  471.  
  472. function pretarget(spell,action)
  473.     if (spell.type:endswith('Magic') or spell.type == "Ninjutsu") and buffactive.silence then -- Auto Use Echo Drops If You Are Silenced --
  474.         cancel_spell()
  475.         send_command('input /item "Echo Drops" <me>')
  476.     elseif spell.english == "Berserk" and buffactive.Berserk then -- Change Berserk To Aggressor If Berserk Is On --
  477.         cancel_spell()
  478.         send_command('Aggressor')
  479.     elseif spell.type == "WeaponSkill" and spell.target.distance > target_distance and player.status == 'Engaged' then -- Cancel WS If You Are Out Of Range --
  480.         cancel_spell()
  481.         add_to_chat(123, spell.name..' Canceled: [Out of Range]')
  482.         return
  483.     end
  484. end
  485.  
  486.         --------------
  487.         -- Pre-Cast --
  488.         --------------
  489.  
  490. function precast(spell,action)
  491.     if spell.type == "WeaponSkill" then
  492.         if player.status ~= 'Engaged' then
  493.             return
  494.         else
  495.             equipSet = sets.WS
  496.             if equipSet[spell.english] then
  497.                 equipSet = equipSet[spell.english]
  498.             end
  499.             if equipSet[AccArray[AccIndex]] then
  500.                 equipSet = equipSet[AccArray[AccIndex]]
  501.             end
  502.             if player.tp > 2750 or player.equipment.main == 'Lionheart' and player.tp > 2250 then
  503.                     equipSet = set_combine(equipSet,{ear1="Brutal Earring"}) -- 3000 TP: Equip Zwazo Earring --
  504.             end
  505.             equip(equipSet)
  506.         end
  507.     elseif spell.type == "JobAbility" or spell.type == "Ward" or spell.type == "Effusion" then
  508.         if sets.JA[spell.english] then
  509.             equip(sets.JA[spell.english])
  510.         end
  511.     elseif spell.type == "Rune" then
  512.         equip(sets.Enmity)
  513.     elseif spell.type:endswith('Magic') or spell.type == "Ninjutsu" then
  514.         if buffactive.silence or spell.target.distance > 16+target_distance then -- Cancel Magic or Ninjutsu If You Are Silenced or Out of Range --
  515.             cancel_spell()
  516.             add_to_chat(123, spell.name..' Canceled: [Silenced or Out of Casting Range]')
  517.             return
  518.         else
  519.             if string.find(spell.english,'Utsusemi') then
  520.                 if buffactive['Copy Image (3)'] or buffactive['Copy Image (4)'] then
  521.                     cancel_spell()
  522.                     add_to_chat(123, spell.english .. ' Canceled: [3+ Images]')
  523.                     return
  524.                 else
  525.                     equip(sets.Precast.Utsusemi)
  526.                 end
  527.             elseif sets.Precast[spell.skill] then
  528.                 equip(sets.Precast[spell.skill])
  529.             else
  530.                 equip(sets.Precast.FastCast)
  531.             end
  532.         end
  533.     elseif spell.type == "Waltz" then
  534.         refine_waltz(spell,action)
  535.         equip(sets.Waltz)
  536.     elseif spell.english == 'Spectral Jig' and buffactive.Sneak then
  537.         cast_delay(0.2)
  538.         send_command('cancel Sneak')
  539.     end
  540. end
  541.  
  542.         --------------
  543.         -- Mid-Cast --
  544.         --------------
  545.  
  546. function midcast(spell,action)
  547.     equipSet = {}
  548.     if spell.type:endswith('Magic') or spell.type == 'Ninjutsu' then
  549.         equipSet = sets.Midcast
  550.         if equipSet[spell.english] then
  551.             equipSet = equipSet[spell.english]
  552.         elseif string.find(spell.english,'Protect') or string.find(spell.english,'Shell') then
  553.             equipSet = equipSet.Haste
  554.             if spell.target.name == player.name then
  555.                 equipSet = set_combine(equipSet,{ring2="Sheltered Ring"})
  556.             end
  557.         elseif spell.english == "Stoneskin" then
  558.             if buffactive.Stoneskin then
  559.                 send_command('@wait 2.8;cancel stoneskin')
  560.             end
  561.             equipSet = equipSet.Stoneskin
  562.         elseif spell.english == "Sneak" then
  563.             if spell.target.name == player.name and buffactive['Sneak'] then
  564.                 send_command('cancel sneak')
  565.             end
  566.             equipSet = equipSet.Haste
  567.         elseif string.find(spell.english,'Spikes') then
  568.             equipSet = equipSet.Haste
  569.         elseif string.find(spell.english,'Utsusemi') then
  570.             if spell.english == 'Utsusemi: Ichi' and (buffactive['Copy Image'] or buffactive['Copy Image (2)']) then
  571.                 send_command('@wait 1.7;cancel Copy Image*')
  572.             end
  573.             equipSet = equipSet.Haste
  574.         elseif spell.english == 'Monomi: Ichi' then
  575.             if buffactive['Sneak'] then
  576.                 send_command('@wait 1.7;cancel sneak')
  577.             end
  578.             equipSet = equipSet.Haste
  579.         elseif equipSet[spell.skill] then
  580.             equipSet = equipSet[spell.skill]
  581.         end
  582.     elseif equipSet[spell.english] then
  583.         equipSet = equipSet[spell.english]
  584.     end
  585.     equip(equipSet)
  586. end
  587.  
  588.         ----------------
  589.         -- After-Cast --
  590.         ----------------
  591.  
  592. function aftercast(spell,action)
  593.     if spell.type == "WeaponSkill" and not spell.interrupted then
  594.         send_command('wait 0.2;gs c TP')
  595.     end
  596.     status_change(player.status)
  597. end
  598.  
  599.         -------------------
  600.         -- Status Change --
  601.         -------------------
  602.  
  603. function status_change(new,old)
  604.     if Armor == 'HPDT' then
  605.         equip(sets.HPDT)
  606.     elseif Armor == 'Resist' then
  607.         equip(sets.Resist)
  608.     elseif Armor == 'Parry' then
  609.         equip(sets.Parry)
  610.     elseif Armor == 'Kiting' then
  611.         equip(sets.Kiting)
  612.     elseif new == 'Engaged' then
  613.         equipSet = sets.TP
  614.         if Armor == 'Hybrid' and equipSet["Hybrid"] then
  615.             equipSet = equipSet["Hybrid"]
  616.         end
  617.         if equipSet[AccArray[AccIndex]] then
  618.             equipSet = equipSet[AccArray[AccIndex]]
  619.         end
  620.         if buffactive["Aftermath: Lv.3"] and player.equipment.main == 'Epeolatry' and equipSet["AM3"] then -- AM3 Set Equip (Epeolatry Only) --
  621.                 equipSet = equipSet["AM3"]
  622.                 end
  623.         if Thaumas == 'ON' then -- Use Thaumas Coat Toggle --
  624.         equipSet = set_combine(equipSet,sets.TP.Thaumas)
  625.         end
  626.         equip(equipSet)
  627.     else
  628.         equip(sets.Idle[IdleArray[IdleIndex]])
  629.     end
  630. end
  631.  
  632.         -----------------
  633.         -- Buff Change --
  634.         -----------------
  635.  
  636. function buff_change(buff,gain,buff_table)
  637.         buff = string.lower(buff)
  638.         if buff_table['id'] == 272 and player.equipment.main == 'Epeolatry' then -- Epeolatry AM3 Timer/Countdown --
  639.         if gain then
  640.                 send_command('timers create "Mythic Aftermath: Lv.3" 180 down')
  641.                 add_to_chat(158,'Epeolatry AM3: [ON]')
  642.         else
  643.                 send_command('timers delete "Mythic Aftermath: Lv.3"')
  644.                 add_to_chat(123,'Epeolatry AM3: [OFF]')
  645.                 end
  646.         elseif buff_table['id'] == 271 and player.equipment.main == 'Epeolatry' then -- Epeolatry AM2 Timer/Countdown --
  647.         if gain then
  648.                 send_command('timers create "Mythic Aftermath: Lv.2" 270 down')
  649.                 add_to_chat(158,'Epeolatry AM2: [ON]')
  650.         else
  651.                 send_command('timers delete "Mythic Aftermath: Lv.2"')
  652.                 add_to_chat(123,'Epeolatry AM2: [OFF]')
  653.                 end    
  654.         elseif buff_table['id'] == 270 and player.equipment.main == 'Epeolatry' then -- Epeolatry AM1 Timer/Countdown --
  655.         if gain then
  656.                 add_to_chat(158,'Epeolatry AM1: [ON]')
  657.         else
  658.                 add_to_chat(123,'Epeolatry AM1: [OFF]')
  659.                 end
  660.         elseif buff_table['id'] == 272 and player.equipment.main == 'Lionheart' then -- Lionheart AM3 Timer/Countdown --
  661.         if gain then
  662.                 send_command('timers create "Aeonic Aftermath: Lv.3" 180 down')
  663.                 add_to_chat(158,'Lionheart AM3: [ON]')
  664.                 else
  665.                 send_command('timers delete "Aeonic Aftermath: Lv.3"')
  666.                 add_to_chat(123,'Lionheart AM3: [OFF]')
  667.                 end
  668.         elseif buff_table['id'] == 271 and player.equipment.main == 'Lionheart' then -- Lionheart AM2 Timer/Countdown --
  669.         if gain then
  670.                 send_command('timers create "Aeonic Aftermath: Lv.2" 180 down')
  671.                 add_to_chat(158,'Lionheart AM2: [ON]')
  672.         else
  673.                 send_command('timers delete "Aeonic Aftermath: Lv.2"')
  674.                 add_to_chat(123,'Lionheart AM2: [OFF]')
  675.                 end    
  676.         elseif buff_table['id'] == 270 and player.equipment.main == 'Lionheart' then -- Lionheart AM1 Timer/Countdown --
  677.         if gain then
  678.                 add_to_chat(158,'Lionheart AM1: [ON]')
  679.         else
  680.                 add_to_chat(123,'Lionheart AM1: [OFF]')
  681.                 end
  682.         elseif buff == 'weakness' then -- Weakness Timer --
  683.         if gain then
  684.             send_command('timers create "Weakness" 300 up')
  685.         else
  686.             send_command('timers delete "Weakness"')
  687.         end
  688.     end
  689.     if not midaction() then
  690.         status_change(player.status)
  691.     end
  692. end
  693.  
  694.         -------------------------------------------------------------------------------------
  695.         -- In Game: //gs c (command), Macro: /console gs c (command), Bind: gs c (command) --
  696.         -------------------------------------------------------------------------------------
  697.        
  698. function self_command(command)
  699.     if command == 'acc' then -- Accuracy Level Toggle --
  700.         AccIndex = (AccIndex % #AccArray) + 1
  701.         add_to_chat(155,'Accuracy Level: ' .. AccArray[AccIndex])
  702.         status_change(player.status)
  703.     elseif command == 'update' then -- Auto Update Gear Toggle --
  704.         status_change(player.status)
  705.         add_to_chat(155,'Auto Update Gear')
  706.     elseif command == 'hybrid' then -- Hybrid Toggle --
  707.         if Armor == 'Hybrid' then
  708.             Armor = 'None'
  709.             add_to_chat(123,'Hybrid Set: [Unlocked]')
  710.         else
  711.             Armor = 'Hybrid'
  712.             add_to_chat(158,'Hybrid Set: '..AccArray[AccIndex])
  713.         end
  714.         status_change(player.status)
  715.     elseif command == 'hpdt' then -- HPDT Toggle --
  716.         if Armor == 'HPDT' then
  717.             Armor = 'None'
  718.             add_to_chat(123,'HPDT Set: [Unlocked]')
  719.         else
  720.             Armor = 'HPDT'
  721.             add_to_chat(158,'HPDT Set: [Locked]')
  722.         end
  723.         status_change(player.status)
  724.     elseif command == 'resist' then -- Resist Toggle --
  725.         if Armor == 'Resist' then
  726.             Armor = 'None'
  727.             add_to_chat(123,'Resist Set: [Unlocked]')
  728.         else
  729.             Armor = 'Resist'
  730.             add_to_chat(158,'Resist Set: [Locked]')
  731.         end
  732.         status_change(player.status)
  733.     elseif command == 'parry' then -- Parry Toggle --
  734.         if Armor == 'Parry' then
  735.             Armor = 'None'
  736.             add_to_chat(123,'Parry Set: [Unlocked]')
  737.         else
  738.             Armor = 'Parry'
  739.             add_to_chat(158,'Parry Set: [Locked]')
  740.         end
  741.         status_change(player.status)
  742.     elseif command == 'kiting' then -- Kiting Toggle --
  743.         if Armor == 'Kiting' then
  744.             Armor = 'None'
  745.             add_to_chat(123,'Kiting Set: [Unlocked]')
  746.         else
  747.             Armor = 'Kiting'
  748.             add_to_chat(158,'Kiting Set: [Locked]')
  749.         end
  750.         status_change(player.status)
  751.     elseif command == 'thaumas' then -- Thaumas Coat Toggle --
  752.         if Thaumas == 'ON' then
  753.             Thaumas = 'OFF'
  754.             add_to_chat(123,'Thaumas Coat: [OFF]')
  755.         else
  756.             Thaumas = 'ON'
  757.             add_to_chat(158,'Thaumas Coat: [ON]')
  758.         end
  759.             status_change(player.status)
  760.     elseif command == 'distance' then -- Distance Toggle --
  761.         if player.target.distance then
  762.             target_distance = math.floor(player.target.distance*10)/10
  763.             add_to_chat(158,'Distance: '..target_distance)
  764.         else
  765.             add_to_chat(123,'No Target Selected')
  766.         end
  767.     elseif command == 'idle' then -- Idle Toggle --
  768.         IdleIndex = (IdleIndex % #IdleArray) + 1
  769.         add_to_chat(158,'Idle Set: ' .. IdleArray[IdleIndex])
  770.         status_change(player.status)
  771.     elseif command == 'TP' then
  772.         add_to_chat(155,'TP Return: ['..tostring(player.tp)..']')
  773.     elseif command:match('^SC%d$') then
  774.         send_command('//' .. sc_map[command])
  775.     end
  776. end
  777.  
  778.     -----------
  779.     -- Misc. --
  780.     -----------
  781.  
  782. function find_player_in_alliance(name)
  783.     for i,v in ipairs(alliance) do
  784.         for k,p in ipairs(v) do
  785.             if p.name == name then
  786.                 return p
  787.             end
  788.         end
  789.     end
  790. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement