Advertisement
Quixacotl

[LUA] FFXI RDM LUA

Aug 24th, 2014
584
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 10.41 KB | None | 0 0
  1. -- updated 8/21/2014 by Quixacotl. --
  2.  
  3. function get_sets()
  4.     ------------------
  5.     -- Precast Sets --
  6.     ------------------
  7.  
  8.     sets.precast = {}
  9.     sets.precast.FC = {
  10.         head="Atrophy Chapeau", ear2="Loquac. Earring",
  11.         body="Vitivation Tabard", hands="Gendewitha Gages",
  12.         ring1="Prolix Ring",
  13.         back="Swith Cape", waist="Goading Belt",
  14.         legs="Orvail Pants +1",feet="Chelona Boots"}
  15.  
  16.     sets.precast['Enhancing Magic'] = set_combine(sets.precast.FC, {
  17.         head="Umuthi Hat", waist="Siegel Sash"})
  18.  
  19.     sets.precast.Stoneskin = set_combine(sets.precast.FC, {head="Umuthi Hat", waist="Siegel Sash"})
  20.  
  21.     sets.precast.Impact = set_combine(sets.precast.FC, {
  22.         head=empty, body="Twilight Cloak"})
  23.  
  24.     sets.precast.SneakInvis = {back="Skulker's Cape"}
  25.  
  26.  
  27.     ------------------
  28.     -- Midcast Sets --
  29.     ------------------
  30.  
  31.     sets.midcast = {}
  32.     sets.midcast.Cure = {main="Arka IV", sub="Achaq Grip",
  33.         head="Gendewitha Caubeen", neck="Estoqueur's Collar",
  34.         ear1="Lifestorm Earring",ear2="Loquacious Earring",
  35.         body="Gendewitha Bliaut", hands="Bokwus Gloves",
  36.         ring1="Prolix Ring", ring2="Sirona's Ring",
  37.         back="Swith Cape", waist="Goading Belt",
  38.         legs="Atrophy Tights",feet="Hagondes Sabots"}
  39.        
  40.     sets.midcast.Curaga = sets.midcast.Cure
  41.  
  42.     sets.midcast['Enhancing Magic'] = {
  43.         head="Umuthi Hat", neck="Estoqueur's Collar",
  44.         body="Vitivation Tabard", hands="Atrophy Gloves",
  45.         ring1="Prolix Ring",
  46.         back="Estoqueur's Cape", waist="Olympus Sash",
  47.         legs="Atrophy Tights",feet="Estq. Houseaux +2"}
  48.  
  49.     sets.midcast.Refresh = {legs="Estqr. Fuseau +2"}
  50.  
  51.     sets.midcast.Stoneskin = set_combine(sets.midcast['Enhancing Magic'], {waist="Siegel Sash"})
  52.  
  53.     sets.midcast['Enfeebling Magic'] = {
  54.         main="Ngqoqwanb", sub="Mephitis Grip",
  55.         range="Aureole",
  56.         head="Atrophy Chapeau", neck="Atzintli Necklace",
  57.         ear1="Lifestorm Earring",ear2="Psystorm Earring",
  58.         body="Atrophy Tabard", hands="Hagondes Cuffs",
  59.         ring1="Strendu Ring", ring2="Sangoma Ring",
  60.         back="Refraction Cape", waist="Goading Belt",
  61.         legs="Bokwus Slops",feet="Bokwus Boots"}
  62.  
  63.     sets.midcast['Dia III'] = set_combine(sets.midcast['Enfeebling Magic'], {head="Vitivation Chapeau"})
  64.  
  65.     sets.midcast['Slow II'] = set_combine(sets.midcast['Enfeebling Magic'], {head="Vitivation Chapeau"})
  66.    
  67.     sets.midcast['Elemental Magic'] = {
  68.         main="Ngqoqwanb", sub="Mephitis Grip",
  69.         range="Aureole",
  70.         head="Hagondes Hat", neck="Atzintli Necklace",
  71.         ear1="Friomisi Earring", ear2="Hecate's Earring",
  72.         body="Hagondes Coat", hands="Hagondes Cuffs",
  73.         ring1="Strendu Ring",ring2="Acumen Ring",
  74.         back="Refraction Cape", waist="Goading Belt",
  75.         legs="Hagondes Pants",feet="Hagondes Sabots"}
  76.        
  77.     sets.midcast.Impact = set_combine(sets.midcast['Elemental Magic'], {head=empty,body="Twilight Cloak"})
  78.  
  79.     sets.midcast['Dark Magic'] = {
  80.         main="Ngqoqwanb", sub="Mephitis Grip",
  81.         range="Aureole",
  82.         head="Atrophy Chapeau +1", neck="Weike Torque",
  83.         ear1="Lifestorm Earring", ear2="Psystorm Earring",
  84.         body="Atrophy Tabard", hands="Gendewitha Gages",
  85.         ring1="Prolix Ring",ring2="Sangoma Ring",
  86.         back="Refraction Cape", waist="Goading Belt",
  87.         legs="Bokwus Slops",feet="Bokwus Boots"}
  88.  
  89.     -- sets.midcast.Stun = set_combine(sets.midcast['Dark Magic'], {})
  90.  
  91.     sets.midcast.Drain = set_combine(sets.midcast['Dark Magic'], {})
  92.  
  93.     sets.midcast.Aspir = sets.midcast.Drain
  94.  
  95.  
  96.     ----------------------
  97.     -- Status Gear Sets --
  98.     ----------------------
  99.  
  100.     sets.Idle = {main="Bolelabunga",
  101.         sub="Genbu's Shield", range="Aureole",
  102.         head="Buremte Hat", neck="Wiglen Gorget",
  103.         ear1="Lifestorm Earring", ear2="Orison Earring",
  104.         body="Hagondes Coat", hands="Umuthi Gloves",
  105.         ring1="Paguroidea Ring", ring2="Sheltered Ring",
  106.         back="Trepidity Mantle", waist="Siegel Sash",
  107.         legs="Piety Pantaloons", feet="Manabyss Pigaches"}
  108.  
  109.     sets.Idle.Town = {main="Bolelabunga",
  110.         sub="Genbu's Shield", range="Aureole",
  111.         head="Buremte Hat", neck="Wiglen Gorget",
  112.         ear1="Lifestorm Earring", ear2="Orison Earring",
  113.         body="Orison Bliaud +2", hands="Umuthi Gloves",
  114.         ring1="Paguroidea Ring", ring2="Sheltered Ring",
  115.         back="Trepidity Mantle", waist="Siegel Sash",
  116.         legs="Piety Pantaloons", feet="Manabyss Pigaches"}
  117.  
  118.     sets.Resting = {main="Chatoyant Staff",
  119.         sub="Achaq Grip", ammo="Clarus Stone",
  120.         head="Vitivation Chapeau", neck="Wiglen Gorget",
  121.         ear2="Antivenom Earring",
  122.         body="Atrophy Tabard", hands="Serpentes Cuffs",
  123.         ring1="Sheltered Ring", ring2="Paguroidea Ring",
  124.         waist="Austerity Belt",
  125.         legs="Hagondes Pants", feet="Chelona Boots"}
  126.  
  127.     sets.Engaged = {ammo="Jukukik Feather",
  128.         head="Buremte Hat", neck="Asperity Necklace",
  129.         ear1="Bladeborn Earring", ear2="Steelflash Earring",
  130.         body="Hagondes Coat", hands="Umuthi Gloves",
  131.         ring1="Rajas Ring",ring2="K'ayres Ring",
  132.         back="Atheling Mantle", waist="Goading Belt",
  133.         legs="Hagondes Pants",feet="Manabyss Pigaches"}
  134.  
  135.  
  136.     ----------------------
  137.     -- Weaponskill sets --
  138.     ----------------------
  139.  
  140.     sets.WS = {ammo="Jukukik Feather",
  141.         head="Buremte Hat", neck="Asperity Necklace",
  142.         ear1="Brutal Earring", ear2="Moonshade Earring",
  143.         body="Hagondes Coat", hands="Umuthi Gloves",
  144.         ring1="Rajas Ring",ring2="K'ayres Ring",
  145.         back="Atheling Mantle", waist="Windbuffet Belt",
  146.         legs="Hagondes Pants",feet="Manabyss Pigaches"}
  147.  
  148.     sets.WS['Chant du Cygne'] = set_combine(sets.WS,{})
  149.     sets.WS['Requiescat'] = set_combine(sets.WS,{})
  150.     sets.WS['Sanguine Blade'] = set_combine(sets.WS, {
  151.         ammo="Witchstone",
  152.         head="Hagondes Hat", neck="Eddy Necklace",
  153.         ear1="Friomisi Earring",ear2="Hecate's Earring",
  154.         body="Hagondes Coat", hands="Yaoyotl Gloves",
  155.         ring1="Strendu Ring",ring2="Acumen Ring",
  156.         back="Toro Cape",
  157.         legs="Hagondes Pants",feet="Hagondes Sabots"})
  158.  
  159.     sets.WS['Spirit Taker'] = set_combine(sets.WS, {
  160.         neck="Aife's Medal",
  161.         back="Pahtli Cape",
  162.         waist="Kuku Stone",
  163.         })
  164.  
  165.     sets.WS['Retribution'] = sets.WS['Spirit Taker']
  166.     sets.WS['Shattersoul'] = sets.WS['Spirit Taker']
  167.     sets.WS['Myrkr'] = sets.WS['Spirit Taker']
  168.     sets.WS['Realmrazer'] = sets.WS['Spirit Taker']
  169.     sets.WS['Mystic Boon'] = sets.WS['Spirit Taker']
  170.     sets.WS['Dagan'] = sets.WS['Spirit Taker']
  171.     sets.WS['Hexa Strike'] = sets.WS['Spirit Taker']
  172.     sets.WS['Black Halo'] = sets.WS['Spirit Taker']
  173.  
  174.     ---------------------------------
  175.     -- Precast sets to enhance JAs --
  176.     ---------------------------------
  177.  
  178.     sets.JA = {}
  179.     sets.JA['Chainspell'] = {body="Vitivation Tabard"}
  180.  
  181.     -----------------------------------
  182.     -- Variables and notes to myself --
  183.     -----------------------------------
  184.     NoBlink = S{"Escape", "Retrace", "Warp", "Warp II", "Teleport-Altep", "Teleport-Dem",
  185.         "Teleport-Mea", "Teleport-Holla", "Teleport-Vahzl", "Teleport-Yhoat",
  186.         "Recall-Jugner", "Recall-Meriph", "Recall-Pashh"}
  187.  
  188.  
  189.     -- City areas for town gear and behavior.
  190.     areas = {}
  191.     areas.Cities = S{
  192.         "Eastern Adoulin", "Western Adoulin",
  193.         "Ru'Lude Gardens", "Upper Jeuno", "Lower Jeuno", "Port Jeuno",
  194.         "Port Windurst", "Windurst Waters", "Windurst Woods",
  195.         "Windurst Walls", "Heavens Tower",
  196.         "Port San d'Oria", "Northern San d'Oria", "Southern San d'Oria",
  197.         "Port Bastok", "Bastok Markets",
  198.         "Bastok Mines", "Metalworks",
  199.         "Aht Urhgan Whitegate",
  200.         "Tavanazian Safehold",
  201.         "Nashmau", "Selbina",
  202.         "Mhaura", "Norg", "Kazham"}
  203.  
  204.     main_weapons = {}
  205.     main_weapons = S{"Excalibur", "Burtgang", "Murgleis", "Almace",
  206.     "Anahera Saber", "Buramenk'ah", "Egeking", "Xiutleato", "Camatlatia",
  207.     "Halachuinic Sword", "Cama. Blade"}
  208.  
  209.     send_command('input /macro book 10;wait .1;input /macro set 1')
  210.  
  211. end
  212.  
  213.  
  214. function precast(spell)
  215.     if spell.action_type == 'Magic' then
  216.         if NoBlink:contains(spell.name) then
  217.             return
  218.         elseif spell.name == 'Sneak' or spell.name == 'Invisible' and spell.target.name == player.name then
  219.             equip(sets.precast.SneakInvis)
  220.         elseif spell.name == 'Impact' then
  221.             equip(sets.precast.Impact)
  222.         elseif sets.precast[spell.name] then
  223.             equip(sets.precast[spell.name])
  224.         elseif sets.precast[spell.skill] then
  225.                     equip(sets.precast[spell.skill])
  226.         else
  227.             equip(sets.precast.FC)
  228.         end
  229.     elseif sets.JA[spell.name] then
  230.         equip(sets.JA[spell.name])
  231.     elseif sets.WS[spell.name] then
  232.         equip(sets.WS[spell.name])
  233.     elseif spell.type == "WeaponSkill" then
  234.         equip(sets.WS)
  235.     end
  236. end
  237.  
  238. function midcast(spell)
  239.     if main_weapons:contains(player.equipment.main) or player.status == 'Engaged' then
  240.         disable('main','sub','range','ammo')
  241.     else
  242.         enable('main','sub','range','ammo')
  243.     end
  244.  
  245.     if spell.skill == "Healing Magic" then
  246.         -- add_to_chat(8,'--------- Healing Magic ---------') -- for debugging
  247.         if spell.name:startswith('Cure') then
  248.             equip(sets.midcast.Cure)
  249.         elseif spell.name:startswith('Curaga') then
  250.             equip(sets.midcast.Curaga)
  251.         end
  252.     elseif spell.skill == "Enhancing Magic" then
  253.         -- add_to_chat(8,'--------- Enhancing Magic ---------') -- for debugging
  254.         if spell.name:startswith('Refresh') then
  255.             equip(sets.midcast.Refresh)
  256.         elseif spell.english == 'Sneak' and spell.target.name == player.name then
  257.             send_command('cancel 71')
  258.         elseif spell.english == 'Blink' then
  259.             send_command('cancel 36')
  260.         elseif spell.english == "Stoneskin" then
  261.             equip(sets.midcast.Stoneskin)
  262.         elseif NoBlink:contains(spell.name) then
  263.             return
  264.         else
  265.             equip(sets.midcast['Enhancing Magic'])
  266.         end
  267.     elseif spell.skill == "Elemental Magic" then
  268.         if spell.name == 'Impact' then
  269.             equip(sets.midcast.Impact)
  270.         else
  271.             equip(sets.midcast['Elemental Magic'])
  272.         end
  273.     elseif spell.skill == "Enfeebling Magic" then
  274.         if spell.name == 'Dia III' then
  275.             equip(sets.midcast['Dia III'])
  276.         elseif spell.name == 'Slow II' then
  277.             equip(sets.midcast['Slow II'])
  278.         else
  279.             equip(sets.midcast['Enfeebling Magic'])
  280.         end
  281.     elseif sets.midcast[spell.skill] then
  282.                 equip(sets.midcast[spell.skill])
  283.         end
  284. end
  285.  
  286. function aftercast(spell)
  287.     update_gear()
  288. end
  289.  
  290. function status_change(new,old)
  291.     update_gear()
  292. end
  293.  
  294. function self_command(command)
  295.     if command:lower() == 'toggle' then
  296.         update_gear()
  297.     end
  298. end
  299.  
  300. function update_gear()
  301.     if main_weapons:contains(player.equipment.main) or player.status == 'Engaged' then
  302.         equip(sets.Engaged)
  303.         disable('main','sub','range','ammo')
  304.     elseif player.status == 'Idle' then
  305.         enable('main','sub','range','ammo')
  306.         if areas.Cities:contains(world.area) then
  307.             add_to_chat(8,'----- You are at '..world.area..'. Town gear equipped! -----')
  308.             equip(sets.Idle.Town)
  309.         else
  310.             send_command('input /lockstyle on')
  311.             equip(sets.Idle)
  312.         end
  313.     else
  314.         enable('main','sub','range','ammo')
  315.         equip(sets.Resting)
  316.     end
  317. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement