Advertisement
Amadis

PLD lua

May 26th, 2014
153
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 48.36 KB | None | 0 0
  1. -- *** Credit goes to Flippant for helping me with Gearswap *** --
  2. -- ** I use Motenten's refine_waltz function for Waltz. ** --
  3. -- Last Updated: 03/08/14 2:30 PM *Changed JA Names* --
  4.  
  5. function get_sets()
  6.         AccIndex = 1
  7.         AccArray = {"LowACC","MidACC","HighACC"} -- 3 Levels Of Accuracy Sets For TP/WS/Hybrid. Default ACC Set Is LowACC. The First TP Set Of Your Main Weapon Is LowACC. Add More ACC Sets If Needed Then Create Your New ACC Below --
  8.         ShieldIndex = 1
  9.         ShieldArray = {"Ochain","Aegis"} -- 2 Types Of Shields --
  10.         IdleIndex = 1
  11.         IdleArray = {"Refresh","Regen"} -- Default Idle Set Is Movement --
  12.         Armor = 'None'
  13.         Twilight = 0
  14.         Repulse = 'OFF' -- Set Default Repulse ON or OFF Here --
  15.         target_distance = 6 -- Set Default Distance Here --
  16.         send_command('input /macro book 19;wait .1;input /macro set 1') -- Change Default Macro Book Here --
  17.  
  18.         Cure_Spells = {"Cure","Cure II","Cure III","Cure IV"} -- Cure Degradation --
  19.         sc_map = {SC1="Flash", SC2="UtsusemiNi", SC3="UtsusemiIchi"} -- 3 Additional Binds. Can Change Whatever JA/WS/Spells You Like Here. Remember Not To Use Spaces. --
  20.         EnmityBlueMagic = S{"Jettatura","Sheep Song","Soporific","Blank Gaze","Geist Wall"} -- BlueMagic --
  21.  
  22.         -- Idle/Town Sets --
  23.         sets.Idle = {}
  24.         sets.Idle.Refresh = {
  25.                         ammo="Angha Gem",
  26.                         head="Twilight Helm",
  27.                         head="Wivre Hairpin",
  28.                         neck="Creed Collar",
  29.                         ear1="Ethereal Earring",
  30.                         ear2="Darkness Earring",
  31.                         body="Ares' Cuirass +1",
  32.                         hands="Shab. Gauntlets +1",
  33.                         ring1="Defending Ring",
  34.                         ring2="Paguroidea Ring",
  35.                         back="Shadow Mantle",
  36.                         waist="Flume Belt",
  37.                         legs="Blood Cuisses",
  38.                         feet="Cizin Greaves +1"}
  39.         sets.Idle.Regen = set_combine(sets.Idle.Refresh,{                        
  40.                         head="Twilight Helm",
  41.                         neck="Wiglen Gorget"})
  42.         sets.Resting = set_combine(sets.Idle.Refresh)
  43.  
  44.         sets.Twilight = {head="Twilight Helm",body="Twilight Mail"}
  45.  
  46.         -- TP Base Set --
  47.         sets.TP = {
  48.                         ammo="Paeapua",
  49.                         head="Otomi Helm",
  50.                         neck="Portus Collar",
  51.                         ear1="Steelflash Earring",
  52.                         ear2="Bladeborn Earring",
  53.                         body="Xaddi Mail",
  54.                         hands="Xaddi Gauntlets",
  55.                         ring1="Rajas Ring",
  56.                         ring2="K'ayres Ring",
  57.                         back="Atheling Mantle",
  58.                         waist="Windbuffet Belt",
  59.                         legs="Ares' Flanchard +1",
  60.                         feet="Ejekamal Boots"}
  61.  
  62.         -- Ochain TP Sets --
  63.         sets.TP.Ochain = {
  64.                         sub="Ochain",
  65.                         ammo="Paeapua",
  66.                         head="Otomi Helm",
  67.                         neck="Portus Collar",
  68.                         ear1="Steelflash Earring",
  69.                         ear2="Bladeborn Earring",
  70.                         body="Xaddi Mail",
  71.                         hands="Xaddi Gauntlets",
  72.                         ring1="Rajas Ring",
  73.                         ring2="K'ayres Ring",
  74.                         back="Atheling Mantle",
  75.                         waist="Windbuffet Belt",
  76.                         legs="Ares' Flanchard +1",
  77.                         feet="Ejekamal Boots"}
  78.         sets.TP.Ochain.MidACC = set_combine(sets.TP.Ochain,{
  79.                         head="Yaoyotl Helm",
  80.                         body="Mes. Haubergeon",
  81.                         back="Letalis Mantle",
  82.                         feet="Whirlpool Greaves"})
  83.         sets.TP.Ochain.HighACC = set_combine(sets.TP.Ochain.MidACC,{
  84.                         ammo="Ginsen",
  85.                         neck="Iqabi Necklace",
  86.                         ring1="Mars's Ring",
  87.                         ring2="Patricius Ring",
  88.                         waist="Anguinus Belt"})
  89.  
  90.         -- Aegis TP Sets --
  91.         sets.TP.Aegis = {
  92.                         sub="Aegis",
  93.                         ammo="Paeapua",
  94.                         head="Otomi Helm",
  95.                         neck="Portus Collar",
  96.                         ear1="Steelflash Earring",
  97.                         ear2="Bladeborn Earring",
  98.                         body="Xaddi Mail",
  99.                         hands="Xaddi Gauntlets",
  100.                         ring1="Rajas Ring",
  101.                         ring2="K'ayres Ring",
  102.                         back="Atheling Mantle",
  103.                         waist="Windbuffet Belt",
  104.                         legs="Ares' Flanchard +1",
  105.                         feet="Ejekamal Boots"}
  106.         sets.TP.Aegis.MidACC = set_combine(sets.TP.Aegis,{
  107.                         head="Yaoyotl Helm",
  108.                         body="Mes. Haubergeon",
  109.                         back="Letalis Mantle",
  110.                         feet="Whirlpool Greaves"})
  111.         sets.TP.Aegis.HighACC = set_combine(sets.TP.Aegis.MidACC,{
  112.                         ammo="Ginsen",
  113.                         neck="Iqabi Necklace",
  114.                         ring1="Mars's Ring",
  115.                         ring2="Patricius Ring",
  116.                         waist="Anguinus Belt"})
  117.  
  118.         -- Ragnarok TP Sets --
  119.         sets.TP.Ragnarok = {
  120.                         main="Ragnarok",
  121.                         sub="Duplus Grip",
  122.                         ammo="Paeapua",
  123.                         head="Otomi Helm",
  124.                         neck="Portus Collar",
  125.                         ear1="Steelflash Earring",
  126.                         ear2="Bladeborn Earring",
  127.                         body="Xaddi Mail",
  128.                         hands="Xaddi Gauntlets",
  129.                         ring1="Rajas Ring",
  130.                         ring2="K'ayres Ring",
  131.                         back="Atheling Mantle",
  132.                         waist="Windbuffet Belt",
  133.                         legs="Ares' Flanchard +1",
  134.                         feet="Ejekamal Boots"}
  135.         sets.TP.Ragnarok.MidACC = set_combine(sets.TP.Ragnarok,{
  136.                         head="Yaoyotl Helm",
  137.                         body="Mes. Haubergeon",
  138.                         back="Letalis Mantle",
  139.                         feet="Whirlpool Greaves"})
  140.         sets.TP.Ragnarok.HighACC = set_combine(sets.TP.Ragnarok.MidACC,{
  141.                         ammo="Ginsen",
  142.                         neck="Iqabi Necklace",
  143.                         ring2="Patricius Ring"})
  144.  
  145.         -- Ragnarok(Ionis) TP Sets --
  146.         sets.TP.Ragnarok.Ionis = set_combine(sets.TP.Ragnarok,{})
  147.         sets.TP.Ragnarok.MidACC.Ionis = set_combine(sets.TP.Ragnarok.Ionis,{})
  148.         sets.TP.Ragnarok.HighACC.Ionis = set_combine(sets.TP.Ragnarok.MidACC.Ionis,{})
  149.  
  150.         -- PDT/MDT/DT Sets --
  151.         sets.PDT = {}
  152.         sets.PDT.Ochain = {
  153.                         sub="Ochain",
  154.                         ammo="Angha Gem",
  155.                         head="Rev. Coronet +1",
  156.                         neck="Twilight Torque",
  157.                         ear1="Ethereal Earring",
  158.                         ear2="Creed Earring",
  159.                         body="Cab. Surcoat +1",
  160.                         hands="Shab. Gauntlets +1",
  161.                         ring1="Defending Ring",
  162.                         ring2="Patricius Ring",
  163.                         back="Shadow Mantle",
  164.                         waist="Flume Belt",
  165.                         legs="Cab. Breeches +1",
  166.                         feet="Rev. Leggings +1"}
  167.         sets.PDT.Aegis = {
  168.                         sub="Aegis",
  169.                         ammo="Angha Gem",
  170.                         head="Rev. Coronet +1",
  171.                         neck="Twilight Torque",
  172.                         ear1="Ethereal Earring",
  173.                         ear2="Creed Earring",
  174.                         body="Cab. Surcoat +1",
  175.                         hands="Shab. Gauntlets +1",
  176.                         ring1="Defending Ring",
  177.                         ring2="Patricius Ring",
  178.                         back="Shadow Mantle",
  179.                         waist="Flume Belt",
  180.                         legs="Cab. Breeches +1",
  181.                         feet="Rev. Leggings +1"}
  182.  
  183.         sets.MDT = {}
  184.         sets.MDT.Ochain = set_combine(sets.PDT.Ochain,{
  185.                         ammo="Vanir Battery",
  186.                         head="Rev. Coronet +1",
  187.                         neck="Twilight Torque",
  188.                         ear1="Ethereal Earring",
  189.                         ear2="Sanare Earring",
  190.                         body="Nocturnus Mail",
  191.                         hands="Rev. Gauntlets +1",
  192.                         ring1="Defending Ring",
  193.                         ring2="Shadow Ring",
  194.                         back="Engulfer Cape",
  195.                         waist="Creed Baudrier",
  196.                         legs="Cab. Breeches +1",
  197.                         feet="Cab. Leggings +1"})
  198.         sets.MDT.Aegis = set_combine(sets.PDT.Aegis,{
  199.                         ammo="Vanir Battery",
  200.                         head="Rev. Coronet +1",
  201.                         neck="Twilight Torque",
  202.                         ear1="Ethereal Earring",
  203.                         ear2="Sanare Earring",
  204.                         body="Nocturnus Mail",
  205.                         hands="Rev. Gauntlets +1",
  206.                         ring1="Defending Ring",
  207.                         ring2="Shadow Ring",
  208.                         back="Engulfer Cape",
  209.                         waist="Creed Baudrier",
  210.                         legs="Cab. Breeches +1",
  211.                         feet="Cab. Leggings +1"})
  212.  
  213.         sets.DT = {}
  214.         sets.DT.Ochain = set_combine(sets.PDT.Ochain,{
  215.                         sub="Ochain",
  216.                         ammo="Angha Gem",
  217.                         head="Laeradr Helm",
  218.                         neck="Twilight Torque",
  219.                         ear1="Ethereal Earring",
  220.                         ear2="Darkness Earring",
  221.                         body="Cab. Surcoat +1",
  222.                         hands="Shab. Gauntlets +1",
  223.                         ring1="Defending Ring",
  224.                         ring2="Dark Ring",
  225.                         back="Weard Mantle",
  226.                         waist="Nierenschutz",
  227.                         legs="Scuff. Cosciales",
  228.                         feet="Rev. Leggings +1"})
  229.         sets.DT.Aegis = set_combine(sets.PDT.Aegis,{
  230.                         sub="Aegis",
  231.                         ammo="Angha Gem",
  232.                         head="Laeradr Helm",
  233.                         neck="Twilight Torque",
  234.                         ear1="Ethereal Earring",
  235.                         ear2="Darkness Earring",
  236.                         body="Cab. Surcoat +1",
  237.                         hands="Shab. Gauntlets +1",
  238.                         ring1="Defending Ring",
  239.                         ring2="Dark Ring",
  240.                         back="Weard Mantle",
  241.                         waist="Nierenschutz",
  242.                         legs="Scuff. Cosciales",
  243.                         feet="Rev. Leggings +1"})
  244.  
  245.         -- Weakness/Kiting/Repulse Sets --
  246.         sets.Weakness = {}
  247.         sets.Weakness.Ochain = set_combine(sets.PDT.Ochain,{head="Twilight Helm",body="Twilight Mail"})
  248.         sets.Weakness.Aegis = set_combine(sets.PDT.Aegis,{head="Twilight Helm",body="Twilight Mail"})
  249.  
  250.         sets.Kiting = {}
  251.         sets.Kiting.Ochain = set_combine(sets.PDT.Ochain,{
  252.         ear2="Darkness Earring",
  253.         legs="Blood Cuisses",
  254.         feet="Cizin Greaves +1"})
  255.         sets.Kiting.Aegis = set_combine(sets.PDT.Aegis,{
  256.         ear2="Darkness Earring",
  257.         legs="Blood Cuisses",
  258.         feet="Cizin Greaves +1"})
  259.  
  260.         sets.Repulse = {}
  261.         sets.Repulse.Ochain = {sub="Ochain",back="Repulse Mantle"}
  262.         sets.Repulse.Aegis = {sub="Aegis",back="Repulse Mantle"}
  263.  
  264.         -- Hybrid/Shield Skill Sets --
  265.         sets.TP.Hybrid = {}
  266.         sets.TP.Hybrid.MidACC = set_combine(sets.TP.Hybrid,{})
  267.         sets.TP.Hybrid.HighACC = set_combine(sets.TP.Hybrid.MidACC,{})
  268.  
  269.         sets.TP.ShieldSkill = {}
  270.  
  271.         -- WS Base Set --
  272.         sets.WS = {
  273.                         ammo="Cheruski Needle",
  274.                         head="Otomi Helm",
  275.                         neck="Portus Collar",
  276.                         lear="Moonshade Earring",
  277.                         rear="Brutal Earring",
  278.                         body="Mes. Haubergeon",
  279.                         hands="Miki. Gauntlets",
  280.                         ring1="Pyrosoul Ring",
  281.                         ring2="Pyrosoul Ring",
  282.                         back="Atheling Mantle",
  283.                         waist="Soil Belt",
  284.                         legs="Miki. Cuisses",
  285.                         feet="Ejekamal Boots"}
  286.  
  287.         -- WS Sets --
  288.         sets.WS["Chant du Cygne"] = {
  289.                         ammo="Jukukik Feather",
  290.                         head="Otomi Helm",
  291.                         neck="Rancor Collar",
  292.                         ear1="Moonshade Earring",
  293.                         ear2="Brutal Earring",
  294.                         body="Mes. Haubergeon",
  295.                         hands="Cab. Gauntlets +1",
  296.                         ring1="Rajas Ring",
  297.                         ring2="Thundersoul Ring",
  298.                         back="Atheling Mantle",
  299.                         waist="Wanion Belt",
  300.                         legs="Hct. Subligar +1",
  301.                         feet="Ejekamal Boots"}
  302.         sets.WS["Chant du Cygne"].MidACC = set_combine(sets.WS["Chant du Cygne"],{
  303.                         head="Yaoyotl Helm",
  304.                         hands="Miki. Gauntlets",
  305.                         Back="Letalis Mantle",
  306.                         feet="Whirlpool Greaves"})
  307.         sets.WS["Chant du Cygne"].HighACC = set_combine(sets.WS["Chant du Cygne"].MidACC,{
  308.                         ear2="Heartseeker Earring"})
  309.  
  310.         sets.WS.Requiescat = {
  311.                         ammo="Aqua Sachet",
  312.                         head="Otomi Helm",
  313.                         neck="Soil Gorget",
  314.                         lear="Moonshade Earring",
  315.                         rear="Brutal Earring",
  316.                         body="Miki. Breastplate",
  317.                         hands="Cab. Gauntlets +1",
  318.                         ring1="Aquasoul Ring",
  319.                         ring2="Aquasoul Ring",
  320.                         back="Atheling Mantle",
  321.                         waist="Soil Belt",
  322.                         legs="Miki. Cuisses",
  323.                         feet="Whirlpool Greaves"}
  324.         sets.WS.Requiescat.MidACC = set_combine(sets.WS.Requiescat,{
  325.                         head="Yaoyotl Helm",
  326.                         body="Mes. Haubergeon",
  327.                         hands="Miki. Gauntlets",
  328.                         Back="Letalis Mantle"})
  329.         sets.WS.Requiescat.HighACC = set_combine(sets.WS.Requiescat.MidACC,{
  330.                         lear="Steelflash Earring",
  331.                         rear="Heartseeker Earring",})
  332.  
  333.         sets.WS.Resolution = {
  334.                         ammo="Cheruski Needle",
  335.                         head="Otomi Helm",
  336.                         neck="Soil Gorget",
  337.                         lear="Moonshade Earring",
  338.                         rear="Brutal Earring",
  339.                         body="Mes. Haubergeon",
  340.                         hands="Miki. Gauntlets",
  341.                         ring1="Pyrosoul Ring",
  342.                         ring2="Pyrosoul Ring",
  343.                         back="Atheling Mantle",
  344.                         waist="Soil Belt",
  345.                         legs="Miki. Cuisses",
  346.                         feet="Ejekamal Boots"}
  347.         sets.WS.Resolution.MidACC = set_combine(sets.WS.Resolution,{
  348.                         head="Yaoyotl Helm",
  349.                         feet="Whirlpool Greaves"})
  350.         sets.WS.Resolution.HighACC = set_combine(sets.WS.Resolution.MidACC,{
  351.                         ring1="Candent Ring",
  352.                         back="Letalis Mantle"})
  353.                        
  354.                 -- Torcleaver Set --
  355.     sets.WS.Torcleaver = {         
  356.             ammo="Iron Gobbet",
  357.             head="Yaoyotl Helm",
  358.             neck="Light Gorget",
  359.             ear1="Moonshade Earring",
  360.             ear2="Brutal Earring",
  361.             body="Phorcys Korazin",
  362.             hands="Xaddi Gauntlets",
  363.             ring1="Rajas Ring",
  364.             ring2="Spiral Ring",
  365.             back="Atheling Mantle",
  366.             waist="Caudata Belt",
  367.             legs="Cab. Breeches +1",
  368.             feet="Kar. Sollerets +1"}
  369.     sets.WS.Torcleaver.MidACC = set_combine(sets.WS.Torcleaver,{
  370.             ammo="Ginsen",
  371.             body="Mes. Haubergeon",
  372.             back="Letalis Mantle"})
  373.     sets.WS.Torcleaver.HighACC = set_combine(sets.WS.Torcleaver.MidACC,{
  374.             legs="Miki. Cuisses",
  375.             feet="Scamp's Sollerets"})
  376.  
  377.         sets.WS.Atonement = {
  378.                         ammo="Paeapua",
  379.                         head="Cab. Coronet +1",
  380.                         neck="Invidia Torque",
  381.                         ear1="Trux Earring",
  382.                         ear2="Friomisi Earring",
  383.                         body="Phorcys Korazin",
  384.                         hands="Cab. Gauntlets +1",
  385.                         ring1="Eihwaz Ring",
  386.                         ring2="Vexer Ring +1",
  387.                         back="Fierabras's Mantle",
  388.                         waist="Creed Baudrier",
  389.                         legs="Induro Cuisses",
  390.                         feet="Creed Sabatons +2"}
  391.  
  392.         sets.WS["Knights of Round"] = {}
  393.  
  394.         sets.WS["Sanguine Blade"] = {}
  395.  
  396.         sets.WS["Aeolian Edge"] = {}
  397.  
  398.         sets.Enmity = {
  399.                         ammo="Paeapua",
  400.                         head="Cab. Coronet +1",
  401.                         neck="Invidia Torque",
  402.                         ear1="Trux Earring",
  403.                         ear2="Friomisi Earring",
  404.                         body="Cab. Surcoat +1",
  405.                         hands="Cab. Gauntlets +1",
  406.                         ring1="Eihwaz Ring",
  407.                         ring2="Vexer Ring +1",
  408.                         back="Fierabras's Mantle",
  409.                         waist="Creed Baudrier",
  410.                         legs="Induro Cuisses",
  411.                         feet="Creed Sabatons +2"}
  412.  
  413.         -- JA Sets --
  414.         sets.JA = {}
  415.         sets.JA["Shield Bash"] = set_combine(sets.Enmity,{hands="Cab. Gauntlets +1"})
  416.         sets.JA.Sentinel = set_combine(sets.Enmity,{feet="Cab. Leggings +1"})
  417.         sets.JA["Holy Circle"] = set_combine(sets.Enmity,{feet="Rev. Leggings +1"})
  418.         sets.JA["Divine Emblem"] = set_combine(sets.Enmity,{feet="Creed Sabatons +2"})
  419.         sets.JA.Fealty = set_combine(sets.Enmity,{body="Cab. Surcoat +1"})
  420.         sets.JA.Invincible = set_combine(sets.Enmity,{legs="Cab. Breeches +1"})
  421.         sets.JA.Cover = {head="Rev. Coronet +1",body="Cab. Surcoat +1"}
  422.         sets.JA.Palisade = set_combine(sets.Enmity)
  423.         sets.JA.Provoke = set_combine(sets.Enmity)
  424.         sets.JA.Warcry = set_combine(sets.Enmity)
  425.         sets.JA.Souleater = set_combine(sets.Enmity)
  426.         sets.JA["Last Resort"] = set_combine(sets.Enmity)
  427.         sets.JA.Chivalry = {
  428.                         head="Rev. Coronet +1",
  429.                         body="Rev. Surcoat +1",
  430.                         hands="Cab. Gauntlets +1",
  431.                         ring1="Aquasoul Ring",
  432.                         ring2="Aquasoul Ring",
  433.                         back="Engulfer Cape",
  434.                         legs="Cab. Breeches +1",
  435.                         feet="Cab. Leggings +1"}
  436.         sets.JA.Rampart = {
  437.                         head="Cab. Coronet +1",
  438.                         neck="Twilight Torque",
  439.                         ear1="Trux Earring",
  440.                         ear2="Friomisi Earring",
  441.                         body="Rev. Surcoat +1",
  442.                         hands="Cab. Gauntlets +1",
  443.                         ring1="Eihwaz Ring",
  444.                         ring2="Vexer Ring +1",
  445.                         back="Shadow Mantle",
  446.                         waist="Flume Belt",
  447.                         legs="Cab. Breeches +1",
  448.                         feet="Cab. Leggings +1"}
  449.  
  450.         -- Sublimation --
  451.         sets.Sublimation = {}
  452.  
  453.         -- Flourish --
  454.         sets.Flourish = set_combine(sets.Enmity)
  455.  
  456.         -- Step --
  457.         sets.Step = set_combine(sets.Enmity)
  458.  
  459.         -- Waltz --
  460.         sets.Waltz = {
  461.                         ammo="Paeapua",
  462.                         head="Rev. Coronet +1",
  463.                         neck="Invidia Torque",
  464.                         ear1="Trux Earring",
  465.                         ear2="Friomisi Earring",
  466.                         body="Cab. Surcoat +1",
  467.                         hands="Cab. Gauntlets +1",
  468.                         ring1="Eihwaz Ring",
  469.                         ring2="Vexer Ring +1",
  470.                         back="Fierabras's Mantle",
  471.                         waist="Creed Baudrier",
  472.                         legs="Cab. Breeches +1",
  473.                         feet="Rev. Leggings +1"}
  474.  
  475.         sets.Precast = {}
  476.         --Fastcast Set --
  477.         sets.Precast.FastCast = {
  478.                         ammo="Impatiens",
  479.                         head="Cizin Helm +1",
  480.                         neck="Orunmila's Torque",
  481.                         ear1="Loquac. Earring",
  482.                         ear2="Darkness Earring",
  483.                         body="Nuevo Coselete",
  484.                         hands="Shab. Gauntlets +1",
  485.                         ring1="Veneficium Ring",
  486.                         ring2="Prolix Ring",
  487.                         back="Repulse Mantle",
  488.                         waist="Goading Belt",
  489.                         legs="Enif Cosciales",
  490.                         feet="Cizin Greaves +1"}
  491.  
  492.         -- Precast Enhancing Magic --
  493.         sets.Precast['Enhancing Magic'] = set_combine(sets.Precast.FastCast,{waist="Siegel Sash"})
  494.  
  495.         -- Cure Precast Set --
  496.         sets.Precast.Cure = set_combine(sets.Precast.FastCast,{})
  497.  
  498.         -- Midcast Base Set --
  499.         sets.Midcast = {
  500.                         ammo="Impatiens",
  501.                         head="Cizin Helm +1",
  502.                         neck="Twilight Torque",
  503.                         ear1="Loquac. Earring",
  504.                         ear2="Darkness Earring",
  505.                         body="Nuevo Coselete",
  506.                         hands="Shab. Gauntlets +1",
  507.                         ring1="Defending Ring",
  508.                         ring2="Patricius Ring",
  509.                         back="Repulse Mantle",
  510.                         waist="Goading Belt",
  511.                         legs="Enif Cosciales",
  512.                         feet="Cizin Greaves +1"}
  513.  
  514.         -- Spells Recast --
  515.         sets.Midcast.Recast = {
  516.                         ammo="Impatiens",
  517.                         head="Cizin Helm +1",
  518.                         neck="Twilight Torque",
  519.                         ear1="Loquac. Earring",
  520.                         ear2="Darkness Earring",
  521.                         body="Nuevo Coselete",
  522.                         hands="Shab. Gauntlets +1",
  523.                         ring1="Defending Ring",
  524.                         ring2="Patricius Ring",
  525.                         back="Repulse Mantle",
  526.                         waist="Goading Belt",
  527.                         legs="Enif Cosciales",
  528.                         feet="Cizin Greaves +1"}
  529.  
  530.         -- Divine Magic --
  531.         sets.Midcast['Divine Magic'] = set_combine(sets.Midcast.Recast,{
  532.                         neck="Colossus's Torque",
  533.                         body="Rev. Surcoat +1"})
  534.  
  535.         -- Cure Set --
  536.         sets.Midcast.Cure = {
  537.                         ammo="Paeapua",
  538.                         neck="Phalaina Locket",
  539.                         ear1="Trux Earring",
  540.                         ear2="Hospitaler Earring",
  541.                         ring1="Eihwaz Ring",
  542.                         ring2="Vexer Ring +1",
  543.                         back="Fierabras's Mantle",
  544.                         waist="Goading Belt"}
  545.  
  546.         -- Self Cure Set --
  547.         sets.Midcast.SelfCure = set_combine(sets.Midcast.Cure,{
  548.                         head="Shabti Armet +1",
  549.                         ear1="Oneiros Earring",
  550.                         body="Rev. Surcoat +1",
  551.                         hands="Cab. Gauntlets +1",
  552.                         waist="Creed Baudrier",
  553.                         legs="Rev. Breeches +1",
  554.                         feet="Cab. Leggings +1"})
  555.  
  556.         -- Flash Set --
  557.         sets.Midcast.Flash = {
  558.                         ammo="Paeapua",
  559.                         head="Cizin Helm +1",
  560.                         neck="Invidia Torque",
  561.                         ear1="Trux Earring",
  562.                         ear2="Friomisi Earring",
  563.                         body="Rev. Surcoat +1",
  564.                         hands="Cab. Gauntlets +1",
  565.                         ring1="Eihwaz Ring",
  566.                         ring2="Vexer Ring +1",
  567.                         back="Fierabras's Mantle",
  568.                         waist="Goading Belt",
  569.                         legs="Enif cosciales",
  570.                         feet="Creed Sabatons +2"}
  571.  
  572.         -- Enhancing Magic --
  573.         sets.Midcast['Enhancing Magic'] = {
  574.                         neck="Colossus's Torque",
  575.                         back="Merciful Cape",
  576.                         waist="Olympus Sash",
  577.                         legs="Rev. Breeches +1"}
  578.  
  579.         -- Stoneskin --
  580.         sets.Midcast.Stoneskin =  set_combine(sets.Midcast.Recast,{waist="Siegel Sash"})
  581.  
  582.         -- Reprisal --
  583.         sets.Midcast.Reprisal = {}
  584. end
  585.  
  586. function pretarget(spell,action)
  587.         if (spell.type:endswith('Magic') or spell.type == "Ninjutsu") and buffactive.silence then -- Auto Use Echo Drops If You Are Silenced --
  588.                 cancel_spell()
  589.                 send_command('input /item "Echo Drops" <me>')
  590.         elseif spell.english:ifind("Cure") and player.mp<actualCost(spell.mp_cost) then
  591.                 degrade_spell(spell,Cure_Spells)
  592.         elseif spell.english == "Berserk" and buffactive.Berserk then -- Cancel Berserk If Berserk Is On --
  593.                 send_command('cancel Berserk')
  594.         elseif spell.english == "Defender" and buffactive.Defender then -- Cancel Defender If Defender Is On --
  595.                 send_command('cancel Defender')
  596.         elseif spell.english == "Souleater" and buffactive.Souleater then -- Cancel Souleater If Souleater Is On --
  597.                 send_command('cancel Souleater')
  598.         elseif spell.english == "Last Resort" and buffactive["Last Resort"] then -- Cancel Last Resort If Last Resort Is On --
  599.                 send_command('cancel Last Resort')
  600.         elseif spell.type == "WeaponSkill" and spell.target.distance > target_distance and player.status == 'Engaged' then -- Cancel WS If You Are Out Of Range --
  601.                 cancel_spell()
  602.                 add_to_chat(123, spell.name..' Canceled: [Out of Range]')
  603.                 return
  604.         elseif buffactive['Light Arts'] or buffactive['Addendum: White'] then
  605.                 if spell.english == "Light Arts" and not buffactive['Addendum: White'] then
  606.                         cancel_spell()
  607.                         send_command('input /ja Addendum: White <me>')
  608.                 elseif spell.english == "Manifestation" then
  609.                         cancel_spell()
  610.                         send_command('input /ja Accession <me>')
  611.                 elseif spell.english == "Alacrity" then
  612.                         cancel_spell()
  613.                         send_command('input /ja Celerity <me>')
  614.                 elseif spell.english == "Parsimony" then
  615.                         cancel_spell()
  616.                         send_command('input /ja Penury <me>')
  617.                 end
  618.         elseif buffactive['Dark Arts'] or buffactive['Addendum: Black'] then
  619.                 if spell.english == "Dark Arts" and not buffactive['Addendum: Black'] then
  620.                         cancel_spell()
  621.                         send_command('input /ja Addendum: Black <me>')
  622.                 elseif spell.english == "Accession" then
  623.                         cancel_spell()
  624.                         send_command('input /ja Manifestation <me>')
  625.                 elseif spell.english == "Celerity" then
  626.                         cancel_spell()
  627.                         send_command('input /ja Alacrity <me>')
  628.                 elseif spell.english == "Penury" then
  629.                         cancel_spell()
  630.                         send_command('input /ja Parsimony <me>')
  631.                 end
  632.         end
  633. end
  634.  
  635. function precast(spell,action)
  636.         if spell.type == "WeaponSkill" then
  637.                 if player.status ~= 'Engaged' then -- Cancel WS If You Are Not Engaged. Can Delete It If You Don't Need It --
  638.                         cancel_spell()
  639.                         add_to_chat(123,'Unable To Use WeaponSkill: [Disengaged]')
  640.                         return
  641.                 else
  642.                         equipSet = sets.WS
  643.                         if equipSet[spell.english] then
  644.                                 equipSet = equipSet[spell.english]
  645.                         end
  646.                         if equipSet[AccArray[AccIndex]] then
  647.                                 equipSet = equipSet[AccArray[AccIndex]]
  648.                         end
  649.                         if spell.english == "Requiescat" and (world.day_element == 'Dark' or world.day_element == 'Earth') then -- Equip Mekira-oto +1 On Darksday Or Earthsday --
  650.                                 equipSet = set_combine(equipSet,{})
  651.                         end
  652.                         if player.tp > 2999 then
  653.                                 if spell.english == "Resolution" then
  654.                                         equipSet = set_combine(equipSet,{ear1="Steelflash Earring",ear2="Bladeborn Earring"})
  655.                                 elseif spell.english == "Chant du Cygne" then
  656.                                         equipSet = set_combine(equipSet,{ear1="Steelflash Earring",ear2="Bladeborn Earring"})
  657.                                 elseif spell.english == "Requiescat" then
  658.                                         equipSet = set_combine(equipSet,{ear1="Steelflash Earring",ear2="Bladeborn Earring"})                                
  659.                         end
  660.                         end
  661.                         equip(equipSet)
  662.                 end
  663.         elseif spell.type == "JobAbility" then
  664.                 if sets.JA[spell.english] then
  665.                         equip(sets.JA[spell.english])
  666.                 end
  667.         elseif spell.type == "Rune" then
  668.                 equip(sets.Enmity)
  669.         elseif spell.type:endswith('Magic') or spell.type == "Ninjutsu" then
  670.                 if buffactive.silence or spell.target.distance > 16+target_distance then -- Cancel Magic or Ninjutsu If You Are Silenced or Out of Range --
  671.                         cancel_spell()
  672.                         add_to_chat(123, spell.name..' Canceled: [Silenced or Out of Casting Range]')
  673.                         return
  674.                 else
  675.                         if string.find(spell.english,'Cur') and spell.english ~= "Cursna" then
  676.                                 equip(sets.Precast.Cure)
  677.                         elseif spell.english == "Reprisal" then
  678.                                 if buffactive['Blaze Spikes'] or buffactive['Ice Spikes'] or buffactive['Shock Spikes'] then -- Cancel Blaze Spikes, Ice Spikes or Shock Spikes When You Cast Reprisal --
  679.                                         cast_delay(0.2)
  680.                                         send_command('cancel Blaze Spikes,Ice Spikes,Shock Spikes')
  681.                                 end
  682.                                 equip(sets.Precast.FastCast)
  683.                         elseif string.find(spell.english,'Utsusemi') then
  684.                                 if buffactive['Copy Image (3)'] or buffactive['Copy Image (4)'] then
  685.                                         cancel_spell()
  686.                                         add_to_chat(123, spell.name .. ' Canceled: [3+ Images]')
  687.                                         return
  688.                                 else
  689.                                         equip(sets.Precast.FastCast)
  690.                                 end
  691.                         elseif sets.Precast[spell.skill] then
  692.                                 equip(sets.Precast[spell.skill])
  693.                         else
  694.                                 equip(sets.Precast.FastCast)
  695.                         end
  696.                 end
  697.         elseif string.find(spell.type,'Flourish') then
  698.                 if spell.english == "Animated Flourish" then
  699.                         equip(sets.Enmity)
  700.                 else
  701.                         equip(sets.Flourish)
  702.                 end
  703.         elseif spell.type == "Step" then
  704.                 equip(sets.Step)
  705.         elseif spell.type == "Waltz" then
  706.                 refine_waltz(spell,action)
  707.                 equip(sets.Waltz)
  708.         elseif spell.english == 'Spectral Jig' and buffactive.Sneak then
  709.                 cast_delay(0.2)
  710.                 send_command('cancel Sneak')
  711.         end
  712.         if Twilight == 1 then
  713.                 equip(sets.Twilight)
  714.         end
  715. end
  716.  
  717. function midcast(spell,action)
  718.         equipSet = {}
  719.         if spell.type:endswith('Magic') or spell.type == 'Ninjutsu' then
  720.                 equipSet = sets.Midcast
  721.                 if equipSet[spell.english] then
  722.                         equipSet = equipSet[spell.english]
  723.                 elseif (string.find(spell.english,'Cur') or spell.english == "Wild Carrot" or spell.english == "Healing Breeze") and spell.english ~= "Cursna" then
  724.                         if spell.target.name == player.name then
  725.                                 equipSet = equipSet.SelfCure
  726.                         else
  727.                                 equipSet = equipSet.Cure
  728.                         end
  729.                 elseif string.find(spell.english,'Protect') or string.find(spell.english,'Shell') then
  730.                         if spell.target.name == player.name then
  731.                                 equipSet = set_combine(equipSet,{ring2="Sheltered Ring"})
  732.                         end
  733.                 elseif spell.english == "Stoneskin" then
  734.                         if buffactive.Stoneskin then
  735.                                 send_command('@wait 1.7;cancel stoneskin')
  736.                         end
  737.                         equipSet = equipSet.Stoneskin
  738.                 elseif spell.english == "Sneak" then
  739.                         if spell.target.name == player.name and buffactive['Sneak'] then
  740.                                 send_command('cancel sneak')
  741.                         end
  742.                         equipSet = equipSet.Recast
  743.                 elseif string.find(spell.english,'Banish') then
  744.                         equipSet = set_combine(equipSet,{ring1="Fenian Ring"})
  745.                 elseif EnmityBlueMagic:contains(spell.english) or spell.english == "Stun" or string.find(spell.english,'Absorb') or spell.english == 'Aspir' or spell.english == 'Drain' then
  746.                         if buffactive.Sentinel then
  747.                                 equipSet = equipSet.Recast
  748.                         else
  749.                                 equipSet = equipSet.Flash
  750.                         end
  751.                 elseif string.find(spell.english,'Spikes') then
  752.                         equipSet = equipSet.Recast
  753.                 elseif string.find(spell.english,'Utsusemi') then
  754.                         if spell.english == 'Utsusemi: Ichi' and (buffactive['Copy Image'] or buffactive['Copy Image (2)']) then
  755.                                 send_command('@wait 1.7;cancel Copy Image*')
  756.                         end
  757.                         equipSet = equipSet.Recast
  758.                 elseif spell.english == 'Monomi: Ichi' then
  759.                         if buffactive['Sneak'] then
  760.                                 send_command('@wait 1.7;cancel sneak')
  761.                         end
  762.                         equipSet = equipSet.Recast
  763.                 elseif equipSet[spell.skill] then
  764.                         equipSet = equipSet[spell.skill]
  765.                 end
  766.         elseif equipSet[spell.english] then
  767.                 equipSet = equipSet[spell.english]
  768.         end
  769.         equip(equipSet)
  770. end
  771.  
  772. function aftercast(spell,action)
  773.         if spell.type == "WeaponSkill" and not spell.interrupted then
  774.                 send_command('wait 0.2;gs c TP')
  775.         elseif spell.english == "Banish II" and not spell.interrupted then -- Banish II Countdown --
  776.                 send_command('@wait 20;input /echo Banish Effect: [WEARING OFF IN 10 SEC.]')
  777.         elseif spell.english == "Holy Circle" and not spell.interrupted then -- Holy Circle Countdown --
  778.                 send_command('wait 260;input /echo '..spell.name..' Effect: [WEARING OFF IN 10 SEC.];wait 10;input /echo '..spell.name..' Effect: [OFF]')
  779.         end
  780.         status_change(player.status)
  781. end
  782.  
  783. function status_change(new,old)
  784.         if Armor == 'PDT' then
  785.                 equip(sets.PDT[ShieldArray[ShieldIndex]])
  786.         elseif Armor == 'MDT' then
  787.                 equip(sets.MDT[ShieldArray[ShieldIndex]])
  788.         elseif Armor == 'Kiting' then
  789.                 equip(sets.Kiting[ShieldArray[ShieldIndex]])
  790.         elseif Armor == 'Weakness' then
  791.                 equip(sets.Weakness[ShieldArray[ShieldIndex]])
  792.         elseif Armor == 'DT' then
  793.                 equip(sets.DT[ShieldArray[ShieldIndex]])
  794.         elseif buffactive["Sublimation: Activated"] then
  795.                 equip(sets.Sublimation)
  796.         elseif new == 'Engaged' then
  797.                 equipSet = sets.TP
  798.                 if Armor == 'Hybrid' and equipSet["Hybrid"] then
  799.                         equipSet = equipSet["Hybrid"]
  800.                 end
  801.                 if equipSet[player.equipment.main] then
  802.                         equipSet = equipSet[player.equipment.main]
  803.                 end
  804.                 if equipSet[player.equipment.sub] then
  805.                         equipSet = equipSet[ShieldArray[ShieldIndex]]
  806.                 end
  807.                 if equipSet[AccArray[AccIndex]] then
  808.                         equipSet = equipSet[AccArray[AccIndex]]
  809.                 end
  810.                 if buffactive.Ionis and equipSet["Ionis"] then
  811.                         equipSet = equipSet["Ionis"]
  812.                 end
  813.                 if Armor == 'ShieldSkill' then
  814.                         equipSet = set_combine(equipSet,sets.TP.ShieldSkill)
  815.                 end
  816.                 equip(equipSet)
  817.         elseif new == 'Idle' then
  818.                 equip(sets.Idle[IdleArray[IdleIndex]])
  819.         elseif new == 'Resting' then
  820.                 equip(sets.Resting)
  821.         end
  822.         if buffactive.doom then -- Lock Twilight When You Are Doomed --
  823.                 equip(sets.Twilight)
  824.                 disable('head','body')
  825.         end
  826.         if Repulse == 'ON' then -- Use Repulse Toggle To Lock Repulse Mantle --
  827.                 equip(sets.Repulse[ShieldArray[ShieldIndex]])
  828.         end
  829.         if Twilight == 1 then
  830.                 equip(sets.Twilight)
  831.         end
  832. end
  833.  
  834. function buff_change(buff,gain)
  835.         buff = string.lower(buff)
  836.         if buff == "doom" and not gain then
  837.                 enable('head','body')
  838.         elseif buff == "aftermath: lv.3" then -- AM3 Timer/Countdown --
  839.                 if gain then
  840.                         send_command('timers create "Aftermath: Lv.3" 180 down;wait 120;input /echo Aftermath: Lv.3 [WEARING OFF IN 60 SEC.];wait 30;input /echo Aftermath: Lv.3 [WEARING OFF IN 30 SEC.];wait 20;input /echo Aftermath: Lv.3 [WEARING OFF IN 10 SEC.]')
  841.                 else
  842.                         send_command('timers delete "Aftermath: Lv.3"')
  843.                         add_to_chat(123,'AM3: [OFF]')
  844.                 end
  845.         elseif buff == 'weakness' then -- Weakness Timer --
  846.                 if gain then
  847.                         send_command('timers create "Weakness" 300 up')
  848.                 else
  849.                         send_command('timers delete "Weakness"')
  850.                 end
  851.         end
  852.         if buff == "sleep" and gain and player.hp > 200 and player.status == "Engaged" then -- Equip Berserker's Torque When You Are Asleep & Have 200+ HP --
  853.                 equip({neck="Berserker's Torque"})
  854.         else
  855.                 if not midaction() then
  856.                         status_change(player.status)
  857.                 end
  858.         end
  859. end
  860.  
  861. -- In Game: //gs c (command), Macro: /console gs c (command), Bind: gs c (command) --
  862. function self_command(command)
  863.         if command == 'C1' then -- Accuracy Level Toggle --
  864.                 AccIndex = (AccIndex % #AccArray) + 1
  865.                 status_change(player.status)
  866.                 add_to_chat(158,'Accuracy Level: ' .. AccArray[AccIndex])
  867.         elseif command == 'C5' then -- Auto Update Gear Toggle --
  868.                 status_change(player.status)
  869.                 add_to_chat(158,'Auto Update Gear')
  870.         elseif command == 'C2' then -- Shield Type Toggle --
  871.                 ShieldIndex = (ShieldIndex % #ShieldArray) + 1
  872.                 status_change(player.status)
  873.                 add_to_chat(158,'Shield Type: ' .. ShieldArray[ShieldIndex])
  874.         elseif command == 'C9' then -- Hybrid Toggle --
  875.                 if Armor == 'Hybrid' then
  876.                         Armor = 'None'
  877.                         add_to_chat(123,'Hybrid Set: [Unlocked]')
  878.                 else
  879.                         Armor = 'Hybrid'
  880.                         add_to_chat(158,'Hybrid Set: '..AccArray[AccIndex])
  881.                 end
  882.                 status_change(player.status)
  883.         elseif command == 'C7' then -- PDT Toggle --
  884.                 if Armor == 'PDT' then
  885.                         Armor = 'None'
  886.                         add_to_chat(123,'PDT Set: [Unlocked]')
  887.                 else
  888.                         Armor = 'PDT'
  889.                         add_to_chat(158,'PDT Set: [Locked]')
  890.                 end
  891.                 status_change(player.status)
  892.         elseif command == 'C15' then -- MDT Toggle --
  893.                 if Armor == 'MDT' then
  894.                         Armor = 'None'
  895.                         add_to_chat(123,'MDT Set: [Unlocked]')
  896.                 else
  897.                         Armor = 'MDT'
  898.                         add_to_chat(158,'MDT Set: [Locked]')
  899.                 end
  900.                 status_change(player.status)
  901.         elseif command == 'C12' then -- Kiting Toggle --
  902.                 if Armor == 'Kiting' then
  903.                         Armor = 'None'
  904.                         add_to_chat(123,'Kiting Set: [Unlocked]')
  905.                 else
  906.                         Armor = 'Kiting'
  907.                         add_to_chat(158,'Kiting Set: [Locked]')
  908.                 end
  909.                 status_change(player.status)
  910.         elseif command == 'C10' then -- Weakness Set Toggle --
  911.                 if Armor == 'Weakness' then
  912.                         Armor = 'None'
  913.                         add_to_chat(123,'Weakness Set: [Unlocked]')
  914.                 else
  915.                         Armor = 'Weakness'
  916.                         add_to_chat(158,'Weakness Set: [Locked]')
  917.                 end
  918.                 status_change(player.status)
  919.         elseif command == 'C17' then -- DT Toggle --
  920.                 if Armor == 'DT' then
  921.                         Armor = 'None'
  922.                         add_to_chat(123,'DT Set: [Unlocked]')
  923.                 else
  924.                         Armor = 'DT'
  925.                         add_to_chat(158,'DT Set: [Locked]')
  926.                 end
  927.                 status_change(player.status)
  928.         elseif command == 'C16' then -- Repulse Mantle Toggle --
  929.                 if Repulse == 'ON' then
  930.                         Repulse = 'OFF'
  931.                         add_to_chat(123,'Repulse Mantle: [Unlocked]')
  932.                 else
  933.                         Repulse = 'ON'
  934.                         add_to_chat(158,'Repulse Mantle: [Locked]')
  935.                 end
  936.                 status_change(player.status)
  937.         elseif command == 'C11' then -- Shield Skill Toggle --
  938.                 if Armor == 'ShieldSkill' then
  939.                         Armor = 'None'
  940.                         add_to_chat(123,'Shield Skill Set: [Unlocked]')
  941.                 else
  942.                         Armor = 'ShieldSkill'
  943.                         add_to_chat(158,'Shield Skill Set: [Locked]')
  944.                 end
  945.                 status_change(player.status)
  946.         elseif command == 'C3' then -- Twilight Toggle --
  947.                 if Twilight == 1 then
  948.                         Twilight = 0
  949.                         add_to_chat(123,'Twilight Set: [Unlocked]')
  950.                 else
  951.                         Twilight = 1
  952.                         add_to_chat(158,'Twilight Set: [locked]')
  953.                 end
  954.                 status_change(player.status)
  955.         elseif command == 'C8' then -- Distance Toggle --
  956.                 if player.target.distance then
  957.                         target_distance = math.floor(player.target.distance*10)/10
  958.                         add_to_chat(158,'Distance: '..target_distance)
  959.                 else
  960.                         add_to_chat(123,'No Target Selected')
  961.                 end
  962.         elseif command == 'C6' then -- Idle Toggle --
  963.                 IdleIndex = (IdleIndex % #IdleArray) + 1
  964.                 status_change(player.status)
  965.                 add_to_chat(158,'Idle Set: ' .. IdleArray[IdleIndex])
  966.         elseif command == 'TP' then
  967.                 add_to_chat(158,'TP Return: ['..tostring(player.tp)..']')
  968.         elseif command:match('^SC%d$') then
  969.                 send_command('//' .. sc_map[command])
  970.         end
  971. end
  972.  
  973. function actualCost(originalCost)
  974.         if buffactive["Penury"] then
  975.                 return originalCost*.5
  976.         elseif buffactive["Light Arts"] then
  977.                 return originalCost*.9
  978.         else
  979.                 return originalCost
  980.         end
  981. end
  982.  
  983. function degrade_spell(spell,degrade_array)
  984.         spell_index = table.find(degrade_array,spell.name)
  985.         if spell_index>1 then
  986.                 new_spell = degrade_array[spell_index - 1]
  987.                 change_spell(new_spell,spell.target.raw)
  988.                 add_to_chat(8,spell.name..' Canceled: ['..player.mp..'/'..player.max_mp..'MP::'..player.mpp..'%] Casting '..new_spell..' instead.')
  989.         end
  990. end
  991.  
  992. function change_spell(spell_name,target)
  993.         cancel_spell()
  994.         send_command('//'..spell_name..' '..target)
  995. end
  996.  
  997. function refine_waltz(spell,action)
  998.         if spell.type ~= 'Waltz' then
  999.                 return
  1000.         end
  1001.  
  1002.         if spell.name == "Healing Waltz" or spell.name == "Divine Waltz" or spell.name == "Divine Waltz II" then
  1003.                 return
  1004.         end
  1005.  
  1006.         local newWaltz = spell.english
  1007.         local waltzID
  1008.  
  1009.         local missingHP
  1010.  
  1011.         if spell.target.type == "SELF" then
  1012.                 missingHP = player.max_hp - player.hp
  1013.         elseif spell.target.isallymember then
  1014.                 local target = find_player_in_alliance(spell.target.name)
  1015.                 local est_max_hp = target.hp / (target.hpp/100)
  1016.                 missingHP = math.floor(est_max_hp - target.hp)
  1017.         end
  1018.  
  1019.         if missingHP ~= nil then
  1020.                 if player.sub_job == 'DNC' then
  1021.                         if missingHP < 40 and spell.target.name == player.name then
  1022.                                 add_to_chat(123,'Full HP!')
  1023.                                 cancel_spell()
  1024.                                 return
  1025.                         elseif missingHP < 150 then
  1026.                                 newWaltz = 'Curing Waltz'
  1027.                                 waltzID = 190
  1028.                         elseif missingHP < 300 then
  1029.                                 newWaltz = 'Curing Waltz II'
  1030.                                 waltzID = 191
  1031.                         else
  1032.                                 newWaltz = 'Curing Waltz III'
  1033.                                 waltzID = 192
  1034.                         end
  1035.                 else
  1036.                         return
  1037.                 end
  1038.         end
  1039.  
  1040.         local waltzTPCost = {['Curing Waltz'] = 20, ['Curing Waltz II'] = 35, ['Curing Waltz III'] = 50, ['Curing Waltz IV'] = 65, ['Curing Waltz V'] = 80}
  1041.         local tpCost = waltzTPCost[newWaltz]
  1042.  
  1043.         local downgrade
  1044.  
  1045.         if player.tp < tpCost and not buffactive.trance then
  1046.  
  1047.                 if player.tp < 20 then
  1048.                         add_to_chat(123, 'Insufficient TP ['..tostring(player.tp)..']. Cancelling.')
  1049.                         cancel_spell()
  1050.                         return
  1051.                 elseif player.tp < 35 then
  1052.                         newWaltz = 'Curing Waltz'
  1053.                 elseif player.tp < 50 then
  1054.                         newWaltz = 'Curing Waltz II'
  1055.                 elseif player.tp < 65 then
  1056.                         newWaltz = 'Curing Waltz III'
  1057.                 elseif player.tp < 80 then
  1058.                         newWaltz = 'Curing Waltz IV'
  1059.                 end
  1060.  
  1061.                 downgrade = 'Insufficient TP ['..tostring(player.tp)..']. Downgrading to '..newWaltz..'.'
  1062.         end
  1063.  
  1064.         if newWaltz ~= spell.english then
  1065.                 send_command('@input /ja "'..newWaltz..'" '..tostring(spell.target.raw))
  1066.                 if downgrade then
  1067.                         add_to_chat(158, downgrade)
  1068.                 end
  1069.                 cancel_spell()
  1070.                 return
  1071.         end
  1072.  
  1073.         if missingHP > 0 then
  1074.                 add_to_chat(158,'Trying to cure '..tostring(missingHP)..' HP using '..newWaltz..'.')
  1075.         end
  1076. end
  1077.  
  1078. function find_player_in_alliance(name)
  1079.         for i,v in ipairs(alliance) do
  1080.                 for k,p in ipairs(v) do
  1081.                         if p.name == name then
  1082.                                 return p
  1083.                         end
  1084.                 end
  1085.         end
  1086. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement