Tiralay

DRK.lua

Nov 26th, 2017
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 9.32 KB | None | 0 0
  1. -- Initialization function for this job file.
  2. function get_sets()
  3. mote_include_version = 2
  4. include('Mote-Include.lua')
  5. end
  6.  
  7. -- //gs debugmode
  8. -- //gs showswaps
  9.  
  10. function binds_on_load()
  11. -- F9-F12
  12. send_command('bind f9 gs c cycle OffenseMode')
  13. send_command('bind f10 gs c cycle HybridMode')
  14. send_command('bind f11 gs c cycle CastingMode')
  15. send_command('bind f12 gs c update user')
  16. -- CTRL F9-F12
  17. send_command('bind ^q gs c mainweapon')
  18. send_command('bind ^f9 gs c cycle WeaponskillMode')
  19. -- ALT F9-12
  20. send_command('bind !f9 gs c cycle IdleMode')
  21. send_command('bind !f10 gs c cycle RangedMode')
  22. send_command('bind !f12 gs c cycle Kiting')
  23. end
  24.  
  25. function job_setup()
  26. state.mainweapon = M{['description'] = 'Main Weapon'}
  27. state.mainweapon:options('Ragnarok','Apocalypse')
  28. end
  29.  
  30. function user_setup()
  31. -- Options: Override default values
  32. state.OffenseMode:options('Normal', 'LowAcc', 'MidAcc', 'HighAcc')
  33. state.WeaponskillMode:options('Normal', 'Acc')
  34. state.HybridMode:options('Normal', 'PDT')
  35. state.CastingMode:options('Normal', 'Resistant')
  36. state.IdleMode:options('Normal','PDT')
  37. state.PhysicalDefenseMode:options('PDT', 'MDT')
  38.  
  39. Apoc_weapons = S{'Apocalypse'}
  40. Rag_weapons = S{'Macbain'}
  41.  
  42. update_combat_form()
  43.  
  44. end
  45.  
  46. -- Called when this job file is unloaded (eg: job change)
  47. function file_unload()
  48. if binds_on_unload then
  49. binds_on_unload()
  50. end
  51. end
  52.  
  53. sets.mainweapon = {}
  54. sets.mainweapon.Apoc = {
  55. main="Apocalypse",
  56. sub="Gracile Grip",
  57. }
  58. sets.mainweapon.Rag = {
  59. main="Macbain",
  60. sub="Gracile Grip",
  61. }
  62.  
  63.  
  64.     -- Define sets and vars used by this job file.
  65.     function init_gear_sets()
  66.             --------------------------------------
  67.             -- Start defining the sets
  68.             --------------------------------------
  69.             -- Precast Sets
  70.             sets.WSDayBonus = {head="Gavialis Helm"}
  71.  
  72.             -- Precast sets to enhance JAs
  73.             sets.precast.JA['Diabolic Eye'] = {hands="Fallen's finger gauntlets +1"}
  74.             sets.precast.JA['Arcane Circle'] = {feet="Ignominy Sollerets +1"}
  75.             sets.precast.JA['Nether Void'] = {legs="Heathen's Flanchard +1"}
  76.             sets.precast.JA['Souleater'] = {head="Ignominy Burgeonet +1"}
  77.             sets.precast.JA['Weapon Bash'] = {hands="Ignominy Gauntlets +1"}
  78.             sets.precast.JA['Last Resort'] = {back="Ankou's Mantle",feet="Fallen's Sollerets"}
  79.             sets.precast.JA['Dark Seal'] = {head="Fallen's Burgeonet"}
  80.             sets.precast.JA['Blood Weapon'] = {head="Fallen's Cuirass"}
  81.  
  82.     sets.mainweapon = {}
  83.     sets.mainweapon.Rag = {
  84.         main="Macbain",
  85.         sub="Gracile Grip",
  86. }  
  87.  
  88.     sets.mainweapon.Apoc = {
  89.         main="Apocalypse",
  90.         sub="Gracile Grip",
  91. }    
  92.            -- Waltz set (chr and vit)
  93.     sets.precast.Waltz = {}        
  94.            
  95.             -- Fast cast sets for spells
  96.                      
  97.             -- Precast Sets
  98.     sets.precast.FC = {}
  99.                    
  100.             -- Specific spells
  101.     sets.midcast.Utsusemi = {}
  102.      
  103.     sets.midcast.DarkMagic = {}
  104.              
  105.     sets.midcast.Endark = {}
  106.              
  107.     sets.midcast['Endark II'] = sets.midcast.Endark
  108.            
  109.     sets.midcast['Dread Spikes'] = {}
  110.              
  111.     sets.midcast['Elemental Magic'] = {}
  112.              
  113.     sets.midcast['Enfeebling Magic'] = {}
  114.            
  115.     sets.midcast.Stun = {}
  116.              
  117.     sets.midcast.Absorb = {}
  118.                    
  119.     sets.midcast.Drain = {}
  120.                    
  121.     sets.midcast['Aspir'] = {}
  122.                  
  123.     sets.midcast['Aspir II'] = {}
  124.              
  125.  
  126.     sets.midcast['Drain II'] = {}
  127.              
  128.     sets.midcast['Drain III'] = {}
  129.  
  130.                                            
  131.             -- Weaponskill sets
  132.             -- Default set for any weaponskill that isn't any more specifically defined
  133.     sets.precast.WS = {}
  134.  
  135.  
  136.             -- Specific weaponskill sets.  Uses the base set if an appropriate WSMod version isn't found.
  137.     sets.precast.WS['Catastrophe'] = {}
  138.                      
  139.     sets.precast.WS['Catastrophe'].Acc = {}
  140.                      
  141.     sets.precast.WS['Sanguine Blade'] = {}
  142.      
  143.     sets.precast.WS['Torcleaver'] = {}
  144.                      
  145.     sets.precast.WS['Torcleaver'].Acc = {}
  146.  
  147.     sets.precast.WS['Scourge'] = {}
  148.  
  149.     sets.precast.WS['Scourge'].Acc = {}
  150.  
  151.     sets.precast.WS['Savage Blade'] = {}
  152.              
  153.     sets.precast.WS['Requiescat'] = {}
  154.              
  155.     sets.precast.WS['Cross Reaper'] = {}
  156.                      
  157.     sets.precast.WS['Cross Reaper'].Acc = {}
  158.                      
  159.     sets.precast.WS['Quietus'] = {}
  160.                      
  161.     sets.precast.WS['Quietus'].Acc = {}
  162.                      
  163.     sets.precast.WS['Entropy'] = {}
  164.  
  165.                      
  166.     sets.precast.WS['Entropy'].Acc = {}
  167.  
  168.     sets.precast.WS['Insurgency'] = {}
  169.  
  170.                      
  171.     sets.precast.WS['Insurgency'].Acc = {}
  172.                      
  173.     sets.precast.WS['Resolution'] = {}
  174.                      
  175.     sets.precast.WS['Resolution'].Acc = {}
  176.                                
  177.             -- Sets to return to when not performing an action.
  178.            
  179.             -- Resting sets
  180.     sets.resting = {}
  181.            
  182.      
  183.             -- Idle sets (default idle set not needed since the other three are defined, but leaving for testing purposes)
  184.     sets.idle = {
  185.     ammo="Ginsen",
  186.         head="Sulevia's Mask +2",
  187.         neck="Twilight Torque",
  188.         ear1="Cessance Earring",
  189.         ear2="Brutal Earring",
  190.         body="Sulevia's Plate. +2",
  191.         hands="Sulev. Gauntlets +2",
  192.         ring1="Defending Ring",
  193.         ring2="Moonbeam Ring",
  194.         back="Ankou's Mantle",
  195.         waist="Tempus Fugit",
  196.         legs="Carmine Cuisses +1",
  197.         feet="Sulev. Leggings +2"
  198.     }
  199.  
  200.             -- Defense sets
  201.     sets.defense.DT = {
  202.         ammo="Ginsen",
  203.         head="Sulevia's Mask +2",
  204.         neck="Twilight Torque",
  205.         ear1="Cessance Earring",
  206.         ear2="Brutal Earring",
  207.         body="Sulevia's Plate. +2",
  208.         hands="Sulev. Gauntlets +2",
  209.         ring1="Defending Ring",
  210.         ring2="Moonbeam Ring",
  211.         back="Ankou's Mantle",
  212.         waist="Tempus Fugit",
  213.         legs="Sulev. Cuisses +2",
  214.         feet="Sulev. Leggings +2"
  215.  
  216.     }
  217.      
  218.             -- Engaged sets
  219.              
  220.     sets.engaged.Rag = {}
  221.              
  222.     sets.engaged.RagAcc = {}
  223.              
  224.     sets.engaged.RagHighAcc = {}
  225.      
  226.     sets.engaged.NoStpTrait = {}    
  227.      
  228.     sets.engaged.Apoc = {
  229.         ammo="Ginsen",
  230.         head="Flam. Zucchetto +2",
  231.         neck="Lissome Necklace",
  232.         ear1="Brutal Earring",
  233.         ear2="Cessance Earring",
  234.         body="Found. Breastplate",
  235.         hands="Flam. Manopolas +2",
  236.         ring1="Niqmaddu Ring",
  237.         ring2="Flamma Ring",
  238.         back="Ankou's Mantle",
  239.         waist="Ioskeha Belt",
  240.         legs="Sulev. Cuisses +2",
  241.         feet="Flam. Gambieras +2"
  242.     }
  243.      
  244.     sets.engaged.ApocAcc = {}
  245.              
  246.     sets.engaged.ApocHighAcc = {}      
  247.              
  248.     sets.engaged.DW = {}
  249.      
  250.      
  251.     end
  252.      
  253. function precast(spell,abil)
  254.     --equips favorite weapon if disarmed
  255.     if player.equipment.main == "empty" or player.equipment.sub == "empty" then
  256.         equip({main="Apocalypse",
  257.         sub="Gracile Grip"})
  258.     end
  259. end
  260.  
  261. -- Run after the default midcast() is done.
  262. -- eventArgs is the same one used in job_midcast, in case information needs to be persisted.
  263. function job_post_midcast(spell, action, spellMap, eventArgs)
  264.     if spell.skill == 'Elemental Magic' then
  265.         if spell.element == world.day_element or spell.element == world.weather_element then
  266.             equip(sets.midcast['Elemental Magic'], {waist="Hachirin-No-Obi"})
  267.         end
  268.     end
  269. end
  270. ------------------------------------------------------------------------------
  271. function job_post_midcast(spell, action, spellMap, eventArgs)
  272.     if (skillchain_elements[spell.skillchain_a]:contains(world.day_element) or skillchain_elements[spell.skillchain_b]:contains(world.day_element) or skillchain_elements[spell.skillchain_c]:contains(world.day_element))
  273.         then equip({head="Gavialis Helm"})
  274.     end
  275. end
  276.  
  277.  
  278. function job_post_midcast(spell, action, spellMap, eventArgs)
  279.     if S{"Drain","Drain II","Drain III"}:contains(spell.english) and (spell.element==world.day_element or spell.element==world.weather_element) then
  280.         equip({waist="Hachirin-no-obi"})
  281.     end
  282. end
  283. -------------------------------------------------------------------------------------------------------------------
  284. -- Utility functions specific to this job.
  285. -------------------------------------------------------------------------------------------------------------------
  286. -- Called when a player gains or loses a buff.
  287. -- buff == buff gained or lost
  288. -- gain == true if the buff was gained, false if it was lost.
  289. function job_buff_change(buff, gain)
  290.     if state.Buff[buff] ~= nil then
  291.         state.Buff[buff] = gain
  292.     end
  293.     if buff:lower()=='sleep' then
  294.         if gain and player.hp > 120 and player.status == "Engaged" then -- Equip Berserker's Torque When You Are Asleep
  295.             equip({neck="Berserker's Torque"})
  296.         elseif not gain then -- Take Berserker's off
  297.             handle_equipping_gear(player.status)
  298.         end
  299.     end
  300. end
  301.  
  302. function update_combat_form()
  303. -- Check Weapontype
  304.     if Apoc_weapons:contains(player.equipment.main) then
  305.     state.CombatForm:set('Apocalypse')
  306. elseif
  307.     Rag_weapons:contains(player.equipment.main) then
  308.     state.CombatForm:set('Ragnarok')
  309. else
  310.     state.CombatForm:reset()
  311.     end
  312. end
Advertisement
Add Comment
Please, Sign In to add comment