|
PUP GearSwap Question
Server: Bismarck
Game: FFXI
Posts: 1346
By Bismarck.Kuroganashi 2016-09-16 08:27:14
I have done all I could to make it work however I yet to make sure it has a pet.engaged.Tank (Which would be PDT) set working
Not sure what I am doing wrong here ><
http://pastebin.com/57TJa5tR
I would like to add a keybind so when i press for example ALT + F8 it would switch between "Current SET" for sets.idle.Pet.Engaged and a (PDT) set for sets.idle.Pet.Engaged
Also is there an easy way to add a set for when I am engaged and my pet is engaged as well ? (Just wondering)
and also if there are any changes on armor that could help on pet.Weaponskill SET please give me a hand here guys.
Code -------------------------------------------------------------------------------------------------------------------
-- Setup functions for this job. Generally should not be modified.
-------------------------------------------------------------------------------------------------------------------
-- Initialization function for this job file.
function get_sets()
mote_include_version = 2
-- Load and initialize the include file.
include('Mote-Include.lua')
end
-- Setup vars that are user-independent. state.Buff vars initialized here will automatically be tracked.
function job_setup()
-- List of pet weaponskills to check for
petWeaponskills = S{"Slapstick", "Knockout", "Magic Mortar",
"Chimera Ripper", "String Clipper", "Cannibal Blade", "Bone Crusher", "String Shredder",
"Arcuballista", "Daze", "Armor Piercer", "Armor Shatterer"}
-- Map automaton heads to combat roles
petModes = {
['Harlequin Head'] = 'Melee',
['Sharpshot Head'] = 'Ranged',
['Valoredge Head'] = 'Tank',
['Stormwaker Head'] = 'Magic',
['Soulsoother Head'] = 'Heal',
['Spiritreaver Head'] = 'Nuke'
}
-- Subset of modes that use magic
magicPetModes = S{'Nuke','Heal','Magic'}
-- Var to track the current pet mode.
state.PetMode = M{['description']='Pet Mode', 'None', 'Melee', 'Ranged', 'Tank', 'Magic', 'Heal', 'Nuke'}
end
-------------------------------------------------------------------------------------------------------------------
-- User setup functions for this job. Recommend that these be overridden in a sidecar file.
-------------------------------------------------------------------------------------------------------------------
-- Setup vars that are user-dependent. Can override this function in a sidecar file.
function user_setup()
state.OffenseMode:options('Normal', 'Acc', 'Martial_Arts', 'Hizamaru')
state.HybridMode:options('Normal', 'DT')
state.WeaponskillMode:options('Normal', 'Acc', 'Fodder')
state.PhysicalDefenseMode:options('PDT', 'Evasion')
-- Default maneuvers 1, 2, 3 and 4 for each pet mode.
defaultManeuvers = {
['Melee'] = {'Fire Maneuver', 'Thunder Maneuver', 'Wind Maneuver', 'Light Maneuver'},
['Ranged'] = {'Wind Maneuver', 'Fire Maneuver', 'Thunder Maneuver', 'Light Maneuver'},
['Tank'] = {'Earth Maneuver', 'Dark Maneuver', 'Light Maneuver', 'Wind Maneuver'},
['Magic'] = {'Ice Maneuver', 'Light Maneuver', 'Dark Maneuver', 'Earth Maneuver'},
['Heal'] = {'Light Maneuver', 'Dark Maneuver', 'Water Maneuver', 'Earth Maneuver'},
['Nuke'] = {'Ice Maneuver', 'Dark Maneuver', 'Light Maneuver', 'Earth Maneuver'}
}
update_pet_mode()
select_default_macro_book()
end
-- Define sets used by this job file.
function init_gear_sets()
-- Precast Sets
-- Fast cast sets for spells
sets.precast.FC = {head="Herculean Helm",body="Taeon Tabard",neck="Voltsurge Torque",ring1="Weatherspoon Ring",ring2="Prolix Ring",ear1="Enchntr. Earring +1",ear2="Loquacious Earring",hands="Thaumas Gloves",back="Ogapepo Cape",waist="Witful Belt",
legs="Rawhide Trousers",
feet="Regal Pumps +1"}
sets.precast.FC.Utsusemi = set_combine(sets.precast.FC, {back="Mujin Mantle",neck="Magoraga Beads"})
-- Precast sets to enhance JAs
sets.precast.JA['Tactical Switch'] = {feet="Karagoz Scarpe"}
sets.precast.JA['Repair'] = {feet="Foire Babouches +1",ear1="Guignol Earring",ear2="Pratik Earring",legs="Desultor Tassets"}
sets.precast.JA.Maneuver = {neck="Buffoon's Collar +1",body="Karagoz Farsetto",hands="Foire Dastanas +1",back="Visucius's Mantle",ear2="Burana Earring"}
-- Waltz set (chr and vit)
sets.precast.Waltz = {
head="Herculean Helm",neck="Tjukurrpa Medal",ear2="Roundel Earring",ear1="Soil Pearl",
body={ name="Rawhide Vest", augments={'DEX+10','STR+7','INT+7',}},hands="Slither Gloves +1",ring1="Titan Ring",ring2="Titan Ring",
back="Iximulew Cape",waist="Warwolf Belt",legs="Samnuha Tights",feet="Rawhide Boots"}
-- Don't need any special gear for Healing Waltz.
sets.precast.Waltz['Healing Waltz'] = {}
-- Weaponskill sets
-- Default set for any weaponskill that isn't any more specifically defined
sets.precast.WS = {
head="Hizamaru Somen +1",neck="Fotia Gorget",ear1="Brutal Earring",ear2="Moonshade Earring",
body="Hiza. Haramaki +1",hands="Hizamaru Kote +1",ring1="Petrov Ring",ring2="Epona's Ring",
back="Visucius's Mantle",waist="Fotia Belt",legs="Hiza. Hizayoroi +1",feet="Hiza. Sune-ate +1"}--Dispersal Mantle
-- Specific weaponskill sets. Uses the base set if an appropriate WSMod version isn't found.
sets.precast.WS['Stringing Pummel'] = set_combine(sets.precast.WS, {
neck="Fotia Gorget",belt="Fotia Belt",back="Rancorous Mantle",legs="Hiza. Hizayoroi +1",feet="Hiza. Sune-ate +1"})
sets.precast.WS['Stringing Pummel'].Mod = set_combine(sets.precast.WS['Stringing Pummel'], {legs="Hiza. Hizayoroi +1"})
sets.precast.WS['Victory Smite'] = set_combine(sets.precast.WS, {neck="Fotia Gorget",body="Hiza. Haramaki +1",waist="Fotia Belt",
legs="Hiza. Hizayoroi +1",feet="Hiza. Sune-ate +1",back="Rancorous Mantle",head="Hizamaru Somen +1"})
sets.precast.WS['Shijin Spiral'] = set_combine(sets.precast.WS, {head="Lilitu Headpiece",body="Naga Samue",hands="Rawhide Gloves",neck="Fotia Gorget",waist="Fotia Belt"})
-- Midcast Sets
sets.midcast.FastRecast = {head="Herculean Helm",body="Taeon Tabard",neck="Voltsurge Torque",ring1="Weatherspoon Ring",ring2="Prolix Ring",
ear1="Enchntr. Earring +1",ear2="Loquacious Earring",hands="Thaumas Gloves",back="Ogapepo Cape",waist="Witful Belt",
legs="Rawhide Trousers",
feet="Regal Pumps +1"}
-- Midcast sets for pet actions
sets.midcast.Pet.Cure = {back="Visucius's Mantle",legs="Foire Churidars +1",waist="Ukko Sash"}
sets.midcast.Pet['Elemental Magic'] = {back="Visucius's Mantle",hands="Naga Tekko",legs="Kara. Pantaloni +1",feet="Naga Kyahan",waist="Ukko Sash"}
sets.midcast.Pet['Enfeebling Magic'] = {back="Visucius's Mantle",hands="Naga Tekko",legs="Kara. Pantaloni +1",feet="Naga Kyahan",waist="Ukko Sash"}
sets.midcast.Pet['Dark Magic'] = {back="Visucius's Mantle",hands="Naga Tekko",legs="Kara. Pantaloni +1",feet="Naga Kyahan",waist="Ukko Sash"}
sets.midcast.Pet['Divine Magic'] = {back="Visucius's Mantle",hands="Naga Tekko",legs="Kara. Pantaloni +1",feet="Naga Kyahan",waist="Ukko Sash"}
sets.midcast.Pet['Enhancing Magic'] = {back="Visucius's Mantle",hands="Naga Tekko",legs="Kara. Pantaloni +1",feet="Naga Kyahan",waist="Ukko Sash"}
--Set for Pet Weapon Skill DMG MAX
sets.midcast.Pet.Weaponskill = {neck="Empath Necklace",head="Karagoz Capello",body="Karagoz Farsetto",hands="Karagoz Guanti",legs="Kara. Pantaloni +1",feet="Naga Kyahan",back="Dispersal Mantle",ear2="Burana Earring",ear1="Cirque Earring",waist="Klouskap Sash",ring1="Overbearing Ring"}
-- Sets to return to when not performing an action.
--Burana Earring (PUP) Maneuver effects +1 Automaton: Attack+15 Ranged Attack+15 "Magic Atk. Bonus"+10 "Regen"+2
--Cirque Earring (PUP) Automaton: Attack+2 Ranged Attack+2 "Magic Atk. Bonus"+2
--Hizamaru Somen +1
--Hiza. Haramaki +1
--Hizamaru Kote +1
--Hiza. Hizayoroi +1
--Hiza. Sune-ate +1
-- Resting sets
sets.resting = {head="Pitre Taj +1",neck="Sanctity Necklace",
ring1="Dark Ring",ring2="Defending Ring",back="Contriver's Cape",ear2="Burana Earring"}
-- Idle sets
sets.idle = {ammo="Automat. Oil +3",
head="Pitre Taj +1",neck="Empath Necklace",ear1="Handler's Earring +1",ear2="Burana Earring",
body="Foire Tobe +1",hands="Regimen Mittens",ring1="Matrimony Ring",ring2="Defending Ring",
back="Contriver's Cape",waist="Klouskap Sash",legs="Kara. Pantaloni +1",feet="Hermes' Sandals"}--Sanctity Necklace/Burana Earring/Shepherd's Chain
sets.idle.Town = set_combine(sets.idle, {range="Divinator",main="Denouements"})
-- Set for idle while pet is out (eg: pet regen gear)
sets.idle.Pet = sets.idle
-- Idle sets to wear while pet is engaged
sets.idle.Pet.Engaged = {range="Divinator",ammo="Automat. Oil +3",
head="Pitre Taj +1",neck="Empath Necklace",ear1="Handler's Earring +1",ear2="Burana Earring",
body="Foire Tobe +1",hands="Regimen Mittens",ring1="Varar Ring",ring2="Varar Ring",
back="Visucius's Mantle",waist="Klouskap Sash",legs="Kara. Pantaloni +1",feet="Naga Kyahan"}--Handler's Earring/Burana Earring
sets.idle.Pet.Engaged.Tank = set_combine(sets.idle.Pet.Engaged, {range="Divinator",ammo="Automat. Oil +3",
head="Pitre Taj +1",neck="Empath Necklace",ear1="Handler's Earring +1",ear2="Handler Earring",
body="Foire Tobe +1",hands="Regimen Mittens",ring1="Varar Ring",ring2="Varar Ring",
back="Visucius's Mantle",waist="Isa Belt",legs="Kara. Pantaloni +1",feet="Naga Kyahan"})--Pet: Damage Taken set
sets.idle.Pet.Engaged.Ranged = set_combine(sets.idle.Pet.Engaged, {range="Divinator II",neck="Empath Necklace",
hands="Regimen Mittens",legs="Kara. Pantaloni +1",ear2="Burana Earring",ear1="Cirque Earring",back="Visucius's Mantle",
waist="Klouskap Sash"})
sets.idle.Pet.Engaged.Nuke = set_combine(sets.idle.Pet.Engaged, {range="Divinator II",
legs="Kara. Pantaloni +1",feet="Naga Kyahan",hands="Naga Tekko",
ear2="Burana Earring",ear1="Cirque Earring",back="Visucius's Mantle",
waist="Klouskap Sash"})
sets.idle.Pet.Engaged.Heal = set_combine(sets.idle.Pet.Engaged, {range="Divinator II",
legs="Kara. Pantaloni +1",feet="Naga Kyahan",ear2="Burana Earring",ear1="Cirque Earring",back="Visucius's Mantle",
waist="Klouskap Sash"})
sets.idle.Pet.Engaged.Magic = set_combine(sets.idle.Pet.Engaged, {range="Divinator II",
legs="Kara. Pantaloni +1",feet="Naga Kyahan",hands="Naga Tekko",
ear2="Burana Earring",ear1="Cirque Earring",back="Visucius's Mantle",
waist="Klouskap Sash"})
-- Defense sets
sets.defense.Evasion = {
head="Herculean Helm",neck="Ej Necklace",ear1="Infused Earring",
body="Hiza. Haramaki +1",hands="Herculean Gloves",ring1="Varar Ring",ring2="Defending Ring",
back="Dispersal Mantle",waist="Klouskap Sash",legs="Herculean Trousers",feet="Herculean Boots"}
sets.defense.PDT = {
head="Herculean Helm",neck="Twilight Torque",
body="Hiza. Haramaki +1",hands="Herculean Gloves",ring1="Dark Ring",ring2="Defending Ring",
back="Umbra Cape",waist="Klouskap Sash",legs="Herculean Trousers",feet="Herculean Boots"}
sets.defense.MDT = {
head="Herculean Helm",neck="Twilight Torque",
body="Hiza. Haramaki +1",hands="Herculean Gloves",ring1="Dark Ring",ring2="Defending Ring",
back="Mollusca Mantle",waist="Klouskap Sash",legs="Ta'lab Trousers",feet="Herculean Boots"}
sets.Kiting = {feet="Hermes' Sandals"}
-- Engaged sets
-- Variations for TP weapon and (optional) offense/defense modes. Code will fall back on previous
-- sets if more refined versions aren't defined.
-- If you create a set with both offense and defense modes, the offense mode should be first.
-- EG: sets.engaged.Dagger.Accuracy.Evasion
-- Normal melee group
sets.engaged = {ammo="Automat. Oil +3",
head="Herculean Helm",neck="Asperity Necklace",ear1="Brutal Earring",ear2="Cessance Earring",
body={ name="Rawhide Vest", augments={'HP+50','"Subtle Blow"+7','"Triple Atk."+2',}},hands="Herculean Gloves",ring1="Petrov Ring",ring2="Epona's Ring",
back="Dispersal Mantle",waist="Windbuffet Belt +1",legs="Herculean Trousers",feet="Herculean Boots"}--Karagoz Guanti/Karagoz Capello/Hurch'lan Sash/Clotharius Torque/Dispersal Mantle
sets.engaged.Acc = {ammo="Automat. Oil +3",
head="Hizamaru Somen +1",neck="Ej Necklace",ear1="Steelflash Earring",ear2="Zennaroi Earring",
body="Hiza. Haramaki +1",hands="Hizamaru Kote +1",ring1="Varar Ring",ring2="Varar Ring",
back="Visucius's Mantle",waist="Klouskap Sash",legs="Hiza. Hizayoroi +1",feet="Hiza. Sune-ate +1"}
sets.engaged.Martial_Arts = {ammo="Automat. Oil +3",
head="Hizamaru Somen +1",neck="Asperity Necklace",ear1="Brutal Earring",ear2="Cessance Earring",
body={ name="Rawhide Vest", augments={'HP+50','"Subtle Blow"+7','"Triple Atk."+2',}},hands="Herculean Gloves",ring1="Petrov Ring",ring2="Epona's Ring",
back="Dispersal Mantle",waist="Klouskap Sash",legs="Kara. Pantaloni +1",feet="Herculean Boots"}
sets.engaged.Hizamaru = {ammo="Automat. Oil +3",
head="Hizamaru Somen +1",neck="Asperity Necklace",ear1="Brutal Earring",ear2="Cessance Earring",
body="Hiza. Haramaki +1",hands="Hizamaru Kote +1",ring1="Petrov Ring",ring2="Epona's Ring",
back="Dispersal Mantle",waist="Klouskap Sash",legs="Hiza. Hizayoroi +1",feet="Hiza. Sune-ate +1"}
sets.engaged.DT = {ammo="Automat. Oil +3",
head="Herculean Helm",neck="Twilight Torque",ear1="Brutal Earring",ear2="Cessance Earring",
body={ name="Rawhide Vest", augments={'HP+50','"Subtle Blow"+7','"Triple Atk."+2',}},hands="Herculean Gloves",ring1="Dark Ring",ring2="Defending Ring",
back="Umbra Cape",waist="Klouskap Sash",legs="Herculean Trousers",feet="Herculean Boots"}
sets.engaged.Acc.DT = {ammo="Automat. Oil +3",
head="Dampening Tam",neck="Twilight Torque",ear1="Steelflash Earring",ear2="Cessance Earring",
body={ name="Rawhide Vest", augments={'HP+50','"Subtle Blow"+7','"Triple Atk."+2',}},hands="Herculean Gloves",ring1="Dark Ring",ring2="Defending Ring",
back="Umbra Cape",waist="Klouskap Sash",legs={ name="Taeon Tights", augments={'Accuracy+17','"Triple Atk."+2','Crit. hit damage +3%',}},feet="Herculean Boots"}
end
-------------------------------------------------------------------------------------------------------------------
-- Job-specific hooks for standard casting events.
-------------------------------------------------------------------------------------------------------------------
-- Called when pet is about to perform an action
function job_pet_midcast(spell, action, spellMap, eventArgs)
if petWeaponskills:contains(spell.english) then
classes.CustomClass = "Weaponskill"
end
end
-------------------------------------------------------------------------------------------------------------------
-- Job-specific hooks for non-casting events.
-------------------------------------------------------------------------------------------------------------------
-- Called when a player gains or loses a buff.
-- buff == buff gained or lost
-- gain == true if the buff was gained, false if it was lost.
function job_buff_change(buff, gain)
if buff == 'Wind Maneuver' then
handle_equipping_gear(player.status)
end
end
-- Called when a player gains or loses a pet.
-- pet == pet gained or lost
-- gain == true if the pet was gained, false if it was lost.
function job_pet_change(pet, gain)
update_pet_mode()
end
-- Called when the pet's status changes.
function job_pet_status_change(newStatus, oldStatus)
if newStatus == 'Engaged' then
display_pet_status()
end
end
-------------------------------------------------------------------------------------------------------------------
-- User code that supplements standard library decisions.
-------------------------------------------------------------------------------------------------------------------
-- Called by the 'update' self-command, for common needs.
-- Set eventArgs.handled to true if we don't want automatic equipping of gear.
function job_update(cmdParams, eventArgs)
update_pet_mode()
end
-- Set eventArgs.handled to true if we don't want the automatic display to be run.
function display_current_job_state(eventArgs)
display_pet_status()
end
-------------------------------------------------------------------------------------------------------------------
-- User self-commands.
-------------------------------------------------------------------------------------------------------------------
-- Called for custom player commands.
function job_self_command(cmdParams, eventArgs)
if cmdParams[1] == 'maneuver' then
if pet.isvalid then
local man = defaultManeuvers[state.PetMode.value]
if man and tonumber(cmdParams[2]) then
man = man[tonumber(cmdParams[2])]
end
if man then
send_command('input /pet "'..man..'" <me>')
end
else
add_to_chat(123,'No valid pet.')
end
end
end
-------------------------------------------------------------------------------------------------------------------
-- Utility functions specific to this job.
-------------------------------------------------------------------------------------------------------------------
-- Get the pet mode value based on the equipped head of the automaton.
-- Returns nil if pet is not valid.
function get_pet_mode()
if pet.isvalid then
return petModes[pet.head] or 'None'
else
return 'None'
end
end
-- Update state.PetMode, as well as functions that use it for set determination.
function update_pet_mode()
state.PetMode:set(get_pet_mode())
update_custom_groups()
end
-- Update custom groups based on the current pet.
function update_custom_groups()
classes.CustomIdleGroups:clear()
if pet.isvalid then
classes.CustomIdleGroups:append(state.PetMode.value)
end
end
-- Display current pet status.
function display_pet_status()
if pet.isvalid then
local petInfoString = pet.name..' ['..pet.head..']: '..tostring(pet.status)..' TP='..tostring(pet.tp)..' HP%='..tostring(pet.hpp)
if magicPetModes:contains(state.PetMode.value) then
petInfoString = petInfoString..' MP%='..tostring(pet.mpp)
end
add_to_chat(122,petInfoString)
end
end
-- Select default macro book on initial load or subjob change.
function select_default_macro_book()
-- Default macro set/book
if player.sub_job == 'DNC' then
set_macro_page(1, 7)
elseif player.sub_job == 'NIN' then
set_macro_page(3, 7)
elseif player.sub_job == 'THF' then
set_macro_page(4, 7)
else
set_macro_page(1, 7)
end
end
Thank You :D
Phoenix.Tiburon
Server: Phoenix
Game: FFXI
Posts: 43
By Phoenix.Tiburon 2016-09-16 10:11:22
I am interested in the answer to your first question as well. I am just beginning to set up my gearswap for pup.
As for the gear for pet ws, the ambuscade cape can help alot.
For my first one I went with pet stats for a general use cape: Code back={name="Visucius's Mantle", augments={'Pet: Acc.+20 Pet: R.Acc.+20 Pet: Atk.+20 Pet: R.Atk.+20','Accuracy+20 Attack+20','Pet: Haste+10',}} The Animator P's also give more pet stat bonuses than divinators.
Another question to add to the thread, is it possible to have a sets. precast.Pet set equipped on the puppetmaster?? Like the midcast pet actions that will swap the master's gear. I'm thinking FC for pet cures/enfeebles/nukes, though from what I understand it won't affect recast timers. (Naga path C)
Server: Bismarck
Game: FFXI
Posts: 1346
By Bismarck.Kuroganashi 2016-09-16 10:42:52
I am interested in the answer to your first question as well. I am just beginning to set up my gearswap for pup.
As for the gear for pet ws, the ambuscade cape can help alot.
For my first one I went with pet stats for a general use cape: Code back={name="Visucius's Mantle", augments={'Pet: Acc.+20 Pet: R.Acc.+20 Pet: Atk.+20 Pet: R.Atk.+20','Accuracy+20 Attack+20','Pet: Haste+10',}} The Animator P's also give more pet stat bonuses than divinators.
Another question to add to the thread, is it possible to have a sets. precast.Pet set equipped on the puppetmaster?? Like the midcast pet actions that will swap the master's gear. I'm thinking FC for pet cures/enfeebles/nukes, though from what I understand it won't affect recast timers. (Naga path C)
That is what my mantle has for Ambuscade PUP
also got :
Dispersal Mantle
(STR+4 DEX+4 Martial Arts +16 Pet: TP Bonus+440)
Which I use for PET WS settup
I would have to test but its not impossible, just time consuming to re-write it all from scratch (Which I might have to do anyways) If I do Re-Write it, I shall send you a copy my PUP Fellow Friend :D
Hopefully somebody can reply to both of us :D
I did noticed when I engage, it equips armor for ME (Not for my Pet: Engaged) which is fine, but would be cool to be able to switch around armor (Might have to make a set.engaged.pet then put armor I want but for now, works, Just interested into making sure it can be switched with idle.pet.engaged.PDT or something like that
a Toggle even !
Ragnarok.Flippant
Server: Ragnarok
Game: FFXI
Posts: 658
By Ragnarok.Flippant 2016-09-16 10:54:11
Bismarck.Kuroganashi said: »I would like to add a keybind so when i press for example ALT + F8 it would switch between "Current SET" for sets.idle.Pet.Engaged and a (PDT) set for sets.idle.Pet.Engaged
Is there any reason you would not like to use Idle modes for this? You could add it with the rest of your modes: Code state.IdleMode:options('Normal', 'PetDT')
and then your sets would be constructed as: sets.idle.<IdleMode>.Pet.<PetMode>. (If sets.idle.<IdleMode> doesn't exist, it will skip the <IdleMode>. i.e., you do not need to make "Normal" sets, just the PetDT version(s).) For example, sets.idle.Pet.Engaged.Tank and sets.idle.PetDT.Pet.Engaged.Tank. Or if all your PetDT sets will be the same, you can just use sets.idle.PetDT. If not, then keep in mind you will need to create tables for everything (sets.idle.PetDT, sets.idle.PetDT.Pet, and sets.idle.PetDT.Pet.Engaged must exist before sets.idle.PetDT.Pet.Engaged.Tank can be created).
By default, Mote sets cycle IdleMode to ctrl+F12.
Bismarck.Kuroganashi said: »Also is there an easy way to add a set for when I am engaged and my pet is engaged as well ? (Just wondering) You could add this function to your file: Code function job_handle_equipping_gear(playerStatus, eventArgs)
classes.CustomMeleeGroups:clear()
if pet.status=="Engaged" then
classes.CustomMeleeGroups:append('PetEngaged')
end
end
And your melee sets would be something like sets.engaged.Acc.PetEngaged, etc.
Edit: Actually, I'm not satisfied with my answer to your second question. Give me a few minutes.
Edit 2: Okay, I think that's better.
[+]
Server: Bismarck
Game: FFXI
Posts: 1346
By Bismarck.Kuroganashi 2016-09-16 11:08:29
Ragnarok.Flippant said: »Bismarck.Kuroganashi said: »I would like to add a keybind so when i press for example ALT + F8 it would switch between "Current SET" for sets.idle.Pet.Engaged and a (PDT) set for sets.idle.Pet.Engaged
Is there any reason you would not like to use Idle modes for this? You could add it with the rest of your modes: Code state.IdleMode:options('Normal', 'PetDT')
and then your sets would be constructed as: sets.idle.<IdleMode>.Pet.<PetMode>. (If sets.idle.<IdleMode> doesn't exist, it will skip the <IdleMode>. i.e., you do not need to make "Normal" sets, just the PetDT version(s).) For example, sets.idle.Pet.Engaged.Tank and sets.idle.PetDT.Pet.Engaged.Tank. Or if all your PetDT sets will be the same, you can just use sets.idle.PetDT. If not, then keep in mind you will need to create tables for everything (sets.idle.PetDT, sets.idle.PetDT.Pet, and sets.idle.PetDT.Pet.Engaged must exist before sets.idle.PetDT.Pet.Engaged.Tank can be created).
By default, Mote sets cycle IdleMode to ctrl+F12.
Bismarck.Kuroganashi said: »Also is there an easy way to add a set for when I am engaged and my pet is engaged as well ? (Just wondering) You could add this function to your file: Code function job_handle_equipping_gear(playerStatus, eventArgs)
classes.CustomMeleeGroups:clear()
if pet.status=="Engaged" then
classes.CustomMeleeGroups:append('PetEngaged')
end
end
And your melee sets would be something like sets.engaged.Acc.PetEngaged, etc.
Edit: Actually, I'm not satisfied with my answer to your second question. Give me a few minutes.
Edit 2: Okay, I think that's better.
Cool Thanks
so with this added it should work, I gonna start coding it now :D
Ty so much.
Edit:
btw idle set is different than idle.pet.engaged set
so would this really work ?
Considering it also has a VAR of heads and all.
Wondering cuz my Idle.pet.engaged is only activated when pet attacks mob , otherwise it is my sets.Idle that is active
Ragnarok.Flippant
Server: Ragnarok
Game: FFXI
Posts: 658
By Ragnarok.Flippant 2016-09-16 11:40:28
Well if you have a pet out and it's not engaged, then it will use sets.idle.PetDT or sets.idle.PetDT.Pet (if they exist). If it is engaged, it will look for sets.idle.PetDT.Pet.Engaged.<PetMode>. If the <PetMode> child isn't found, then it will just use sets.idle.PetDT.Pet.Engaged. (and if the Engaged child doesn't exist, it will use sets.idle.PetDT.Pet, so on and so forth).
Basically, if it doesn't find the next step, then it will skip it until it finds another step it can take. Once it looks for all the steps, it will equip whatever set it stopped at.
Server: Bismarck
Game: FFXI
Posts: 1346
By Bismarck.Kuroganashi 2016-09-16 13:53:54
Tested out the
Code function job_handle_equipping_gear(playerStatus, eventArgs)
classes.CustomMeleeGroups:clear()
if pet.status=="Engaged" then
classes.CustomMeleeGroups:append('PetEngaged')
end
end
Works but not entirely how I expected to work
for example
After Creating this
Code
------------------------------------------------------------------------------
-- When Pet is Engaged this what will be Equiped for armor while your weapons are Drawn.
------------------------------------------------------------------------------
sets.engaged.PetEngaged = {range="Divinator",ammo="Automat. Oil +3",
head="Pitre Taj +1",neck="Empath Necklace",ear1="Handler's Earring +1",ear2="Burana Earring",
body="Foire Tobe +1",hands="Regimen Mittens",ring1="Varar Ring",ring2="Varar Ring",
back="Visucius's Mantle",waist="Klouskap Sash",legs="Kara. Pantaloni +1",feet="Naga Kyahan"}
sets.engaged.PetEngaged.PetDT = set_combine(sets.idle.Pet.Engaged, {range="Divinator",ammo="Automat. Oil +3",
head="Pitre Taj +1",neck="Empath Necklace",ear1="Handler's Earring +1",ear2="Handler's Earring",
body="Foire Tobe +1",hands="Regimen Mittens",ring1="Varar Ring",ring2="Varar Ring",
back="Visucius's Mantle",waist="Isa Belt",legs="Kara. Pantaloni +1",feet="Naga Kyahan"})--Pet: Damage Taken set
sets.engaged.PetEngaged.Ranged = set_combine(sets.idle.Pet.Engaged, {range="Divinator II",neck="Empath Necklace",
hands="Regimen Mittens",legs="Kara. Pantaloni +1",ear2="Burana Earring",ear1="Cirque Earring",back="Visucius's Mantle",
waist="Klouskap Sash"})
sets.engaged.PetEngaged.Nuke = set_combine(sets.idle.Pet.Engaged, {range="Divinator II",
legs="Kara. Pantaloni +1",feet="Naga Kyahan",hands="Naga Tekko",
ear2="Burana Earring",ear1="Cirque Earring",back="Visucius's Mantle",
waist="Klouskap Sash"})
sets.engaged.PetEngaged.Heal = set_combine(sets.idle.Pet.Engaged, {range="Divinator II",
legs="Kara. Pantaloni +1",feet="Naga Kyahan",ear2="Burana Earring",ear1="Cirque Earring",back="Visucius's Mantle",
waist="Klouskap Sash"})
sets.engaged.PetEngaged.Magic = set_combine(sets.idle.Pet.Engaged, {range="Divinator II",
legs="Kara. Pantaloni +1",feet="Naga Kyahan",hands="Naga Tekko",
ear2="Burana Earring",ear1="Cirque Earring",back="Visucius's Mantle",
waist="Klouskap Sash"})
It will Equip 1st set only (sets.engaged.PetEngaged) all other sets are render useless ><
I am trying to acomodate so it works based on the pet.head
Any new ideas ?
Ragnarok.Flippant
Server: Ragnarok
Game: FFXI
Posts: 658
By Ragnarok.Flippant 2016-09-16 14:10:34
Try changing the function to: Code function job_handle_equipping_gear(playerStatus, eventArgs)
classes.CustomMeleeGroups:clear()
if pet.status=="Engaged" then
classes.CustomMeleeGroups:append('PetEngaged')
classes.CustomMeleeGroups:append(state.PetMode.value)
end
end
Server: Bismarck
Game: FFXI
Posts: 1346
By Bismarck.Kuroganashi 2016-09-16 14:16:27
Ragnarok.Flippant said: »function job_handle_equipping_gear(playerStatus, eventArgs)
    classes.CustomMeleeGroups:clear()
    if pet.status=="Engaged" then
        classes.CustomMeleeGroups:append('PetEngaged')
        classes.CustomMeleeGroups:append(state.PetMode.value)
    end
end
Works except for the DT one
Still not 100% sure how to do that one (any ideas on that <I know I am asking for alot but I wanna be 100% Sure I can use PUP on any situation including Reisenjeima NM> also I am gonna swap armor for better ones like "Rao Set" once I get it crafted)
Do you recomend making a Different Set for it ? (Or just making it as the PLD Head set ?) If so how should i shortcut it ?
Ragnarok.Flippant
Server: Ragnarok
Game: FFXI
Posts: 658
By Ragnarok.Flippant 2016-09-16 14:23:46
I don't really know anything about PUP, so it's hard for me to make any suggestions on how to design a solution, I can only make what is requested, and the IdleMode thing should work as long as you are idle.
If the pet isn't engaged, then it will use sets.idle.PetDT.Pet.
If it is engaged, it will use sets.idle.PetDT.Pet.Engaged OR sets.idle.PetDT.Pet.Engaged.<PetMode>, if that set exists.
If you don't have a pet at all, it would use sets.idle.PetDT.
Server: Bismarck
Game: FFXI
Posts: 1346
By Bismarck.Kuroganashi 2016-09-16 14:28:54
oh, you just gave me the solution ^^; might be a little GETTO but for now should work
Gonna make my PDT set into (PetDT) :D
ty Flipp (sometimes just talking about ignites a lightbulb) :D
I shall research sopme other ways but for now it should do trick while I can test / work on it along with few other members :D
Ty man ! (or Woman) >< sorry not quite sure and don't wanna lack respect by calling you man if you are a girl
But also gonna try other sets you told me, (Been avoiding re-doing all Gearswap from Scratch but seems like be better choice to do that one day)
^^/
Server: Bismarck
Game: FFXI
Posts: 1346
By Bismarck.Kuroganashi 2016-09-17 08:51:57
Here is the new GearSwap for PUP (As Far as I got with it (STILL MOD-ing and Switching stuff around but this is good for the time being) Hopefully it helps)
Code
-------------------------------------------------------------------------------------------------------------------
-- Setup functions for this job. Generally should not be modified.
-------------------------------------------------------------------------------------------------------------------
-- Initialization function for this job file.
function get_sets()
mote_include_version = 2
-- Load and initialize the include file.
include('Mote-Include.lua')
end
-- Setup vars that are user-independent. state.Buff vars initialized here will automatically be tracked.
function job_setup()
-- List of pet weaponskills to check for
petWeaponskills = S{"Slapstick", "Knockout", "Magic Mortar",
"Chimera Ripper", "String Clipper", "Cannibal Blade", "Bone Crusher", "String Shredder",
"Arcuballista", "Daze", "Armor Piercer", "Armor Shatterer"}
-- Map automaton heads to combat roles
petModes = {
['Harlequin Head'] = 'Melee',
['Sharpshot Head'] = 'Ranged',
['Valoredge Head'] = 'Tank',
['Stormwaker Head'] = 'Magic',
['Soulsoother Head'] = 'Heal',
['Spiritreaver Head'] = 'Nuke'
}
-- Subset of modes that use magic
magicPetModes = S{'Nuke','Heal','Magic'}
-- Var to track the current pet mode.
state.PetMode = M{['description']='Pet Mode', 'None', 'Melee', 'Ranged', 'Tank', 'Magic', 'Heal', 'Nuke'}
end
-------------------------------------------------------------------------------------------------------------------
-- User setup functions for this job. Recommend that these be overridden in a sidecar file.
-------------------------------------------------------------------------------------------------------------------
-- Setup vars that are user-dependent. Can override this function in a sidecar file.
function user_setup()
state.OffenseMode:options('Normal', 'Acc', 'Martial_Arts', 'Hizamaru')
state.HybridMode:options('Normal', 'DT')
state.WeaponskillMode:options('Normal', 'Acc', 'Fodder')
state.PhysicalDefenseMode:options('PDT', 'Evasion', 'PetDT')
state.IdleMode:options('Normal', 'PetDT')
-- Default maneuvers 1, 2, 3 and 4 for each pet mode.
defaultManeuvers = {
['Melee'] = {'Fire Maneuver', 'Thunder Maneuver', 'Wind Maneuver', 'Light Maneuver'},
['Ranged'] = {'Wind Maneuver', 'Fire Maneuver', 'Thunder Maneuver', 'Light Maneuver'},
['Tank'] = {'Earth Maneuver', 'Dark Maneuver', 'Light Maneuver', 'Wind Maneuver'},
['Magic'] = {'Ice Maneuver', 'Light Maneuver', 'Dark Maneuver', 'Earth Maneuver'},
['Heal'] = {'Light Maneuver', 'Dark Maneuver', 'Water Maneuver', 'Earth Maneuver'},
['Nuke'] = {'Ice Maneuver', 'Dark Maneuver', 'Light Maneuver', 'Earth Maneuver'}
}
update_pet_mode()
select_default_macro_book()
end
-- Define sets used by this job file.
function init_gear_sets()
-- Precast Sets
sets.precast.Step = {head="Hizamaru Somen +1",ear2="Zennaroi Earring",waist="Klouskap Sash",back="Visucius's Mantle",ring1="Varar Ring",ring2="Varar Ring",
hands="Hizamaru Kote +1",legs="Hiza. Hizayoroi +1",feet="Hiza. Sune-Ate +1",body="Hiza. Haramaki +1",neck="Ej Necklace",ear1="Steelflash Earring"}
sets.precast.Flourish1 = {head="Hizamaru Somen +1",ear2="Zennaroi Earring",waist="Klouskap Sash",back="Visucius's Mantle",ring1="Varar Ring",ring2="Varar Ring",
hands="Hizamaru Kote +1",feet="Herculean Boots",body="Hiza. Haramaki +1",neck="Ej Necklace",ear1="Steelflash Earring"}
-- Fast cast sets for spells
sets.precast.FC = {head="Herculean Helm",body="Taeon Tabard",neck="Voltsurge Torque",ring1="Weatherspoon Ring",ring2="Prolix Ring",ear1="Enchntr. Earring +1",ear2="Loquacious Earring",hands="Thaumas Gloves",back="Ogapepo Cape",waist="Witful Belt",
legs="Rawhide Trousers",
feet="Regal Pumps +1"}
sets.precast.FC.Utsusemi = set_combine(sets.precast.FC, {back="Mujin Mantle",neck="Magoraga Beads"})
-- Precast sets to enhance JAs
sets.precast.JA['Tactical Switch'] = {feet="Karagoz Scarpe"}
sets.precast.JA['Repair'] = {feet="Foire Babouches +1",ear1="Guignol Earring",ear2="Pratik Earring",legs="Desultor Tassets"}
sets.precast.JA.Maneuver = {neck="Buffoon's Collar +1",body="Karagoz Farsetto",hands="Foire Dastanas +1",back="Visucius's Mantle",ear2="Burana Earring"}
-- Waltz set (chr and vit)
sets.precast.Waltz = {
head="Herculean Helm",neck="Tjukurrpa Medal",ear2="Roundel Earring",ear1="Soil Pearl",
body={ name="Rawhide Vest", augments={'DEX+10','STR+7','INT+7',}},hands="Slither Gloves +1",ring1="Titan Ring",ring2="Titan Ring",
back="Iximulew Cape",waist="Warwolf Belt",legs="Samnuha Tights",feet="Rawhide Boots"}
-- Don't need any special gear for Healing Waltz.
sets.precast.Waltz['Healing Waltz'] = {}
-- Weaponskill sets
-- Default set for any weaponskill that isn't any more specifically defined
sets.precast.WS = {
head="Hizamaru Somen +1",neck="Fotia Gorget",ear1="Brutal Earring",ear2="Moonshade Earring",
body="Hiza. Haramaki +1",hands="Hizamaru Kote +1",ring1="Petrov Ring",ring2="Epona's Ring",
back="Visucius's Mantle",waist="Fotia Belt",legs="Hiza. Hizayoroi +1",feet="Hiza. Sune-ate +1"}--Dispersal Mantle
-- Specific weaponskill sets. Uses the base set if an appropriate WSMod version isn't found.
sets.precast.WS['Stringing Pummel'] = set_combine(sets.precast.WS, {
neck="Fotia Gorget",belt="Fotia Belt",back="Rancorous Mantle",legs="Hiza. Hizayoroi +1",feet="Hiza. Sune-ate +1"})
sets.precast.WS['Stringing Pummel'].Mod = set_combine(sets.precast.WS['Stringing Pummel'], {legs="Hiza. Hizayoroi +1"})
sets.precast.WS['Victory Smite'] = set_combine(sets.precast.WS, {neck="Fotia Gorget",body="Hiza. Haramaki +1",waist="Fotia Belt",
legs="Hiza. Hizayoroi +1",feet="Hiza. Sune-ate +1",back="Rancorous Mantle",head="Hizamaru Somen +1"})
sets.precast.WS['Shijin Spiral'] = set_combine(sets.precast.WS, {head="Lilitu Headpiece",body="Naga Samue",hands="Rawhide Gloves",neck="Fotia Gorget",waist="Fotia Belt"})
-- Midcast Sets
sets.midcast.FastRecast = {head="Herculean Helm",body="Taeon Tabard",neck="Voltsurge Torque",ring1="Weatherspoon Ring",ring2="Prolix Ring",
ear1="Enchntr. Earring +1",ear2="Loquacious Earring",hands="Thaumas Gloves",back="Ogapepo Cape",waist="Witful Belt",
legs="Rawhide Trousers",
feet="Regal Pumps +1"}
-- Midcast sets for pet actions
sets.midcast.Pet.Cure = {range="Divinator II",ear1="Cirque Earring",back="Visucius's Mantle",legs="Foire Churidars +1",waist="Ukko Sash"}
sets.midcast.Pet['Elemental Magic'] = {range="Divinator II",ear1="Cirque Earring",back="Visucius's Mantle",hands="Naga Tekko",legs="Kara. Pantaloni +1",feet="Naga Kyahan",waist="Ukko Sash"}
sets.midcast.Pet['Enfeebling Magic'] = {range="Divinator II",ear1="Cirque Earring",back="Visucius's Mantle",hands="Naga Tekko",legs="Kara. Pantaloni +1",feet="Naga Kyahan",waist="Ukko Sash"}
sets.midcast.Pet['Dark Magic'] = {range="Divinator II",ear1="Cirque Earring",back="Visucius's Mantle",hands="Naga Tekko",legs="Kara. Pantaloni +1",feet="Naga Kyahan",waist="Ukko Sash"}
sets.midcast.Pet['Divine Magic'] = {range="Divinator II",ear1="Cirque Earring",back="Visucius's Mantle",hands="Naga Tekko",legs="Kara. Pantaloni +1",feet="Naga Kyahan",waist="Ukko Sash"}
sets.midcast.Pet['Enhancing Magic'] = {range="Divinator II",ear1="Cirque Earring",back="Visucius's Mantle",hands="Naga Tekko",legs="Kara. Pantaloni +1",feet="Naga Kyahan",waist="Ukko Sash"}
--Set for Pet Weapon Skill DMG MAX
sets.midcast.Pet.Weaponskill = {range="Divinator",neck="Empath Necklace",head="Karagoz Capello",body="Karagoz Farsetto",hands="Karagoz Guanti",legs="Kara. Pantaloni +1",feet="Naga Kyahan",back="Dispersal Mantle",ear2="Burana Earring",ear1="Cirque Earring",waist="Klouskap Sash",ring1="Overbearing Ring"}
-- Sets to return to when not performing an action.
--Burana Earring (PUP) Maneuver effects +1 Automaton: Attack+15 Ranged Attack+15 "Magic Atk. Bonus"+10 "Regen"+2
--Cirque Earring (PUP) Automaton: Attack+2 Ranged Attack+2 "Magic Atk. Bonus"+2
--Hizamaru Somen +1
--Hiza. Haramaki +1
--Hizamaru Kote +1
--Hiza. Hizayoroi +1
--Hiza. Sune-ate +1
-- Resting sets
sets.resting = {head="Pitre Taj +1",neck="Sanctity Necklace",
ring1="Dark Ring",ring2="Defending Ring",back="Contriver's Cape",ear2="Burana Earring",waist="Isa Belt"}
-- Idle sets
sets.idle = {ammo="Automat. Oil +3",
head="Pitre Taj +1",neck="Empath Necklace",ear1="Handler's Earring +1",ear2="Burana Earring",
body="Foire Tobe +1",hands="Regimen Mittens",ring1="Matrimony Ring",ring2="Defending Ring",
back="Contriver's Cape",waist="Isa Belt",legs="Kara. Pantaloni +1",feet="Hermes' Sandals"}--Sanctity Necklace/Burana Earring/Shepherd's Chain
sets.idle.Town = set_combine(sets.idle, {range="Divinator",main="Denouements"})
-- Set for idle while pet is out (eg: pet regen gear)
sets.idle.Pet = sets.idle
-- Idle sets to wear while pet is engaged
sets.idle.Pet.Engaged = {range="Divinator",ammo="Automat. Oil +3",
head="Pitre Taj +1",neck="Empath Necklace",ear1="Handler's Earring +1",ear2="Burana Earring",
body="Foire Tobe +1",hands="Regimen Mittens",ring1="Varar Ring",ring2="Varar Ring",
back="Visucius's Mantle",waist="Klouskap Sash",legs="Kara. Pantaloni +1",feet="Naga Kyahan"}--Handler's Earring/Burana Earring
sets.idle.Pet.PetDT = set_combine(sets.idle.Pet.Engaged, {range="Divinator",ammo="Automat. Oil +3",
head="Pitre Taj +1",neck="Empath Necklace",ear1="Handler's Earring +1",ear2="Handler's Earring",
body="Foire Tobe +1",hands="Regimen Mittens",ring1="Varar Ring",ring2="Varar Ring",
back="Visucius's Mantle",waist="Isa Belt",legs="Kara. Pantaloni +1",feet="Naga Kyahan"})--Pet: Damage Taken set
sets.idle.Pet.Engaged.Ranged = set_combine(sets.idle.Pet.Engaged, {range="Divinator II",neck="Empath Necklace",
hands="Regimen Mittens",legs="Kara. Pantaloni +1",ear2="Burana Earring",ear1="Cirque Earring",back="Visucius's Mantle",
waist="Klouskap Sash"})
sets.idle.Pet.Engaged.Nuke = set_combine(sets.idle.Pet.Engaged, {range="Divinator II",
legs="Kara. Pantaloni +1",feet="Naga Kyahan",hands="Naga Tekko",
ear2="Burana Earring",ear1="Cirque Earring",back="Visucius's Mantle",
waist="Klouskap Sash"})
sets.idle.Pet.Engaged.Heal = set_combine(sets.idle.Pet.Engaged, {range="Divinator II",
legs="Kara. Pantaloni +1",feet="Naga Kyahan",ear2="Burana Earring",ear1="Cirque Earring",back="Visucius's Mantle",
waist="Klouskap Sash"})
sets.idle.Pet.Engaged.Magic = set_combine(sets.idle.Pet.Engaged, {range="Divinator II",
legs="Kara. Pantaloni +1",feet="Naga Kyahan",hands="Naga Tekko",
ear2="Burana Earring",ear1="Cirque Earring",back="Visucius's Mantle",
waist="Klouskap Sash"})
-- Defense sets
sets.defense.Evasion = {
head="Herculean Helm",neck="Ej Necklace",ear1="Infused Earring",
body="Hiza. Haramaki +1",hands="Herculean Gloves",ring1="Varar Ring",ring2="Defending Ring",
back="Dispersal Mantle",waist="Klouskap Sash",legs="Herculean Trousers",feet="Herculean Boots"}
sets.defense.PDT = {
head="Herculean Helm",neck="Twilight Torque",
body="Hiza. Haramaki +1",hands="Herculean Gloves",ring1="Dark Ring",ring2="Defending Ring",
back="Umbra Cape",waist="Klouskap Sash",legs="Herculean Trousers",feet="Herculean Boots"}
sets.defense.PetDT = {range="Divinator",ammo="Automat. Oil +3",
head="Pitre Taj +1",neck="Empath Necklace",ear1="Handler's Earring +1",ear2="Handler's Earring",
body="Foire Tobe +1",hands="Regimen Mittens",ring1="Varar Ring",ring2="Varar Ring",
back="Visucius's Mantle",waist="Isa Belt",legs="Kara. Pantaloni +1",feet="Naga Kyahan"}
sets.defense.MDT = {
head="Herculean Helm",neck="Twilight Torque",
body="Hiza. Haramaki +1",hands="Herculean Gloves",ring1="Dark Ring",ring2="Defending Ring",
back="Mollusca Mantle",waist="Klouskap Sash",legs="Ta'lab Trousers",feet="Herculean Boots"}
sets.Kiting = {feet="Hermes' Sandals"}
-- Engaged sets
-- Variations for TP weapon and (optional) offense/defense modes. Code will fall back on previous
-- sets if more refined versions aren't defined.
-- If you create a set with both offense and defense modes, the offense mode should be first.
-- EG: sets.engaged.Dagger.Accuracy.Evasion
-- Normal melee group
sets.engaged = {ammo="Automat. Oil +3",
head="Herculean Helm",neck="Asperity Necklace",ear1="Brutal Earring",ear2="Cessance Earring",
body={ name="Rawhide Vest", augments={'HP+50','"Subtle Blow"+7','"Triple Atk."+2',}},hands="Herculean Gloves",ring1="Petrov Ring",ring2="Epona's Ring",
back="Dispersal Mantle",waist="Windbuffet Belt +1",legs="Herculean Trousers",feet="Herculean Boots"}--Karagoz Guanti/Karagoz Capello/Hurch'lan Sash/Clotharius Torque/Dispersal Mantle
sets.engaged.Acc = {ammo="Automat. Oil +3",
head="Hizamaru Somen +1",neck="Ej Necklace",ear1="Steelflash Earring",ear2="Zennaroi Earring",
body="Hiza. Haramaki +1",hands="Hizamaru Kote +1",ring1="Varar Ring",ring2="Varar Ring",
back="Visucius's Mantle",waist="Klouskap Sash",legs="Hiza. Hizayoroi +1",feet="Hiza. Sune-ate +1"}
sets.engaged.Martial_Arts = {ammo="Automat. Oil +3",
head="Hizamaru Somen +1",neck="Asperity Necklace",ear1="Brutal Earring",ear2="Cessance Earring",
body={ name="Rawhide Vest", augments={'HP+50','"Subtle Blow"+7','"Triple Atk."+2',}},hands="Herculean Gloves",ring1="Petrov Ring",ring2="Epona's Ring",
back="Dispersal Mantle",waist="Klouskap Sash",legs="Kara. Pantaloni +1",feet="Herculean Boots"}
sets.engaged.Hizamaru = {ammo="Automat. Oil +3",
head="Hizamaru Somen +1",neck="Asperity Necklace",ear1="Brutal Earring",ear2="Cessance Earring",
body="Hiza. Haramaki +1",hands="Hizamaru Kote +1",ring1="Petrov Ring",ring2="Epona's Ring",
back="Dispersal Mantle",waist="Klouskap Sash",legs="Hiza. Hizayoroi +1",feet="Hiza. Sune-ate +1"}
sets.engaged.DT = {ammo="Automat. Oil +3",
head="Herculean Helm",neck="Twilight Torque",ear1="Brutal Earring",ear2="Cessance Earring",
body={ name="Rawhide Vest", augments={'HP+50','"Subtle Blow"+7','"Triple Atk."+2',}},hands="Herculean Gloves",ring1="Dark Ring",ring2="Defending Ring",
back="Umbra Cape",waist="Klouskap Sash",legs="Herculean Trousers",feet="Herculean Boots"}
sets.engaged.Acc.DT = {ammo="Automat. Oil +3",
head="Dampening Tam",neck="Twilight Torque",ear1="Steelflash Earring",ear2="Cessance Earring",
body={ name="Rawhide Vest", augments={'HP+50','"Subtle Blow"+7','"Triple Atk."+2',}},hands="Herculean Gloves",ring1="Dark Ring",ring2="Defending Ring",
back="Umbra Cape",waist="Klouskap Sash",legs={ name="Taeon Tights", augments={'Accuracy+17','"Triple Atk."+2','Crit. hit damage +3%',}},feet="Herculean Boots"}
------------------------------------------------------------------------------
-- When Pet is Engaged this what will be Equiped for armor while your weapons are Drawn.
------------------------------------------------------------------------------
sets.engaged.PetEngaged = {range="Divinator",ammo="Automat. Oil +3",
head="Pitre Taj +1",neck="Empath Necklace",ear1="Handler's Earring +1",ear2="Burana Earring",
body="Foire Tobe +1",hands="Regimen Mittens",ring1="Varar Ring",ring2="Varar Ring",
back="Visucius's Mantle",waist="Klouskap Sash",legs="Kara. Pantaloni +1",feet="Naga Kyahan"}
sets.engaged.PetEngaged.PetDT = set_combine(sets.idle.Pet.Engaged, {range="Divinator",ammo="Automat. Oil +3",
head="Pitre Taj +1",neck="Empath Necklace",ear1="Handler's Earring +1",ear2="Handler's Earring",
body="Foire Tobe +1",hands="Regimen Mittens",ring1="Varar Ring",ring2="Varar Ring",
back="Visucius's Mantle",waist="Isa Belt",legs="Kara. Pantaloni +1",feet="Naga Kyahan"})--Pet: Damage Taken set
sets.engaged.PetEngaged.Ranged = set_combine(sets.idle.Pet.Engaged, {range="Divinator II",neck="Empath Necklace",
hands="Regimen Mittens",legs="Kara. Pantaloni +1",ear2="Burana Earring",ear1="Cirque Earring",back="Visucius's Mantle",
waist="Klouskap Sash"})
sets.engaged.PetEngaged.Nuke = set_combine(sets.idle.Pet.Engaged, {range="Divinator II",ammo="Automat. Oil +3",
head="Herculean Helm",neck="Asperity Necklace",ear1="Brutal Earring",ear2="Cessance Earring",
body={ name="Rawhide Vest", augments={'HP+50','"Subtle Blow"+7','"Triple Atk."+2',}},hands="Herculean Gloves",ring1="Petrov Ring",ring2="Epona's Ring",
back="Dispersal Mantle",waist="Windbuffet Belt +1",legs="Herculean Trousers",feet="Herculean Boots"})
sets.engaged.PetEngaged.Heal = set_combine(sets.idle.Pet.Engaged, {range="Divinator II",ammo="Automat. Oil +3",
head="Herculean Helm",neck="Asperity Necklace",ear1="Brutal Earring",ear2="Cessance Earring",
body={ name="Rawhide Vest", augments={'HP+50','"Subtle Blow"+7','"Triple Atk."+2',}},hands="Herculean Gloves",ring1="Petrov Ring",ring2="Epona's Ring",
back="Dispersal Mantle",waist="Windbuffet Belt +1",legs="Herculean Trousers",feet="Herculean Boots"})
sets.engaged.PetEngaged.Magic = set_combine(sets.idle.Pet.Engaged, {range="Divinator II",ammo="Automat. Oil +3",
head="Herculean Helm",neck="Asperity Necklace",ear1="Brutal Earring",ear2="Cessance Earring",
body={ name="Rawhide Vest", augments={'HP+50','"Subtle Blow"+7','"Triple Atk."+2',}},hands="Herculean Gloves",ring1="Petrov Ring",ring2="Epona's Ring",
back="Dispersal Mantle",waist="Windbuffet Belt +1",legs="Herculean Trousers",feet="Herculean Boots"})
end
-------------------------------------------------------------------------------------------------------------------
-- Job-specific hooks for standard casting events.
-------------------------------------------------------------------------------------------------------------------
-- Called when pet is about to perform an action
function job_pet_midcast(spell, action, spellMap, eventArgs)
if petWeaponskills:contains(spell.english) then
classes.CustomClass = "Weaponskill"
end
end
-------------------------------------------------------------------------------------------------------------------
-- Job-specific hooks for non-casting events.
-------------------------------------------------------------------------------------------------------------------
-- Called when a player gains or loses a buff.
-- buff == buff gained or lost
-- gain == true if the buff was gained, false if it was lost.
function job_buff_change(buff, gain)
if buff == 'Wind Maneuver' then
handle_equipping_gear(player.status)
end
end
-- Called when a player gains or loses a pet.
-- pet == pet gained or lost
-- gain == true if the pet was gained, false if it was lost.
function job_pet_change(pet, gain)
update_pet_mode()
end
-- Called when the pet's status changes.
function job_pet_status_change(newStatus, oldStatus)
if newStatus == 'Engaged' then
display_pet_status()
end
end
-------------------------------------------------------------------------------------------------------------------
-- User code that supplements standard library decisions.
-------------------------------------------------------------------------------------------------------------------
-- Called by the 'update' self-command, for common needs.
-- Set eventArgs.handled to true if we don't want automatic equipping of gear.
function job_update(cmdParams, eventArgs)
update_pet_mode()
end
-- Set eventArgs.handled to true if we don't want the automatic display to be run.
function display_current_job_state(eventArgs)
display_pet_status()
end
-------------------------------------------------------------------------------------------------------------------
-- User self-commands.
-------------------------------------------------------------------------------------------------------------------
-- Called for custom player commands.
function job_self_command(cmdParams, eventArgs)
if cmdParams[1] == 'maneuver' then
if pet.isvalid then
local man = defaultManeuvers[state.PetMode.value]
if man and tonumber(cmdParams[2]) then
man = man[tonumber(cmdParams[2])]
end
if man then
send_command('input /pet "'..man..'" <me>')
end
else
add_to_chat(123,'No valid pet.')
end
end
end
-------------------------------------------------------------------------------------------------------------------
-- Utility functions specific to this job.
-------------------------------------------------------------------------------------------------------------------
-- Get the pet mode value based on the equipped head of the automaton.
-- Returns nil if pet is not valid.
function get_pet_mode()
if pet.isvalid then
return petModes[pet.head] or 'None'
else
return 'None'
end
end
-- Update state.PetMode, as well as functions that use it for set determination.
function update_pet_mode()
state.PetMode:set(get_pet_mode())
update_custom_groups()
end
-- Update custom groups based on the current pet.
function update_custom_groups()
classes.CustomIdleGroups:clear()
if pet.isvalid then
classes.CustomIdleGroups:append(state.PetMode.value)
end
end
-- Engage updates
function job_handle_equipping_gear(playerStatus, eventArgs)
classes.CustomMeleeGroups:clear()
if pet.status=="Engaged" then
classes.CustomMeleeGroups:append('PetEngaged')
classes.CustomMeleeGroups:append(state.PetMode.value)
end
end
-- Display current pet status.
function display_pet_status()
if pet.isvalid then
local petInfoString = pet.name..' ['..pet.head..']: '..tostring(pet.status)..' TP='..tostring(pet.tp)..' HP%='..tostring(pet.hpp)
if magicPetModes:contains(state.PetMode.value) then
petInfoString = petInfoString..' MP%='..tostring(pet.mpp)
end
add_to_chat(122,petInfoString)
end
end
-- Select default macro book on initial load or subjob change.
function select_default_macro_book()
-- Default macro set/book
if player.sub_job == 'DNC' then
set_macro_page(1, 7)
elseif player.sub_job == 'NIN' then
set_macro_page(3, 7)
elseif player.sub_job == 'THF' then
set_macro_page(4, 7)
else
set_macro_page(1, 7)
end
end
Necro Bump Detected!
[427 days between previous and next post]
By Teuphist 2017-11-18 12:25:30
Ragnarok.Flippant said: »Try changing the function to: Code function job_handle_equipping_gear(playerStatus, eventArgs)
classes.CustomMeleeGroups:clear()
if pet.status=="Engaged" then
classes.CustomMeleeGroups:append('PetEngaged')
classes.CustomMeleeGroups:append(state.PetMode.value)
end
end
So this used to work for me until recently. For some reason lately, no matter how I edit these functions, it will not equip the following set...
Code sets.engaged.PetEngaged = {
head={ name="Herculean Helm", augments={'Accuracy+20 Attack+20','"Triple Atk."+2','DEX+7','Accuracy+1',}},
body="Tali'ah Manteel +1",
hands={ name="Herculean Gloves", augments={'Accuracy+21 Attack+21','"Triple Atk."+4','Accuracy+9',}},
legs={ name="Herculean Trousers", augments={'Accuracy+13 Attack+13','"Triple Atk."+3','Accuracy+7',}},
feet={ name="Herculean Boots", augments={'Accuracy+30','"Triple Atk."+3','DEX+6',}},
neck="Shulmanu Collar",
waist="Klouskap Sash",
left_ear="Telos Earring",
right_ear="Domes. Earring",
left_ring="Thurandaut Ring",
right_ring="Niqmaddu Ring",
back={ name="Visucius's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','DEX+10','Crit.hit rate+10',}},}
The same thing is happening with my idle sets based on the puppet build. i.e. Nuke (BLM). It used to keep me idle in... Code sets.idle.Pet.Engaged.Nuke = {
head={ name="Pitre Taj +1", augments={'Enhances "Optimization" effect',}},
body={ name="Naga Samue", augments={'Pet: MP+80','Automaton: "Cure" potency +4%','Automaton: "Fast Cast"+3',}},
hands={ name="Naga Tekko", augments={'Pet: MP+80','Automaton: "Cure" potency +4%','Automaton: "Fast Cast"+3',}},
legs="Kara. Pantaloni +1",
feet={ name="Naga Kyahan", augments={'Pet: MP+80','Automaton: "Cure" potency +4%','Automaton: "Fast Cast"+3',}},
neck="Adad Amulet",
waist="Ukko Sash",
left_ear="Burana Earring",
right_ear="Eabani Earring",
left_ring="Varar Ring",
right_ring="Varar Ring",
back={ name="Visucius's Mantle", augments={'Pet: M.Acc.+20 Pet: M.Dmg.+20','Pet: Magic Damage+10','Pet: Haste+10',}},}
but now will only idle in... Code sets.idle.Pet.Engaged = {
head={ name="Herculean Helm", augments={'Pet: Accuracy+15 Pet: Rng. Acc.+15','Pet: "Store TP"+11','Pet: CHR+4','Pet: Attack+13 Pet: Rng.Atk.+13',}},
body={ name="Pitre Tobe +1", augments={'Enhances "Overdrive" effect',}},
hands={ name="Herculean Gloves", augments={'Pet: Accuracy+24 Pet: Rng. Acc.+24','Pet: "Store TP"+11',}},
legs={ name="Herculean Trousers", augments={'Pet: Accuracy+17 Pet: Rng. Acc.+17','Pet: "Store TP"+11','Pet: INT+8','Pet: "Mag.Atk.Bns."+13',}},
feet={ name="Herculean Boots", augments={'Pet: Accuracy+27 Pet: Rng. Acc.+27','Pet: "Store TP"+11','Pet: INT+2','Pet: Attack+14 Pet: Rng.Atk.+14',}},
neck="Shulmanu Collar",
waist="Klouskap Sash",
left_ear="Rimeice Earring",
right_ear="Domes. Earring",
left_ring="Varar Ring",
right_ring="Varar Ring",
back="Penetrating Cape",}
It still swaps to the proper sets whenever the puppet casts, I'm just having trouble with the master/puppet engaged and idle while mage puppet is engaged sets.
Would anyone have any suggestions?
Necro Bump Detected!
[46 days between previous and next post]
Server: Asura
Game: FFXI
Posts: 19
By Asura.Ragnarky 2018-01-03 01:42:19
using the about .lua for some GS doesn't correctly recongize the correct automaton head so it sets to the wrong petMode.
Also, is there a command i'm either not seeing to get the maneuvers to automatically trigger once the automaton is activated?
I have done all I could to make it work however I yet to make sure it has a pet.engaged.Tank (Which would be PDT) set working
Not sure what I am doing wrong here ><
http://pastebin.com/57TJa5tR
I would like to add a keybind so when i press for example ALT + F8 it would switch between "Current SET" for sets.idle.Pet.Engaged and a (PDT) set for sets.idle.Pet.Engaged
Also is there an easy way to add a set for when I am engaged and my pet is engaged as well ? (Just wondering)
and also if there are any changes on armor that could help on pet.Weaponskill SET please give me a hand here guys.
Code -------------------------------------------------------------------------------------------------------------------
-- Setup functions for this job. Generally should not be modified.
-------------------------------------------------------------------------------------------------------------------
-- Initialization function for this job file.
function get_sets()
mote_include_version = 2
-- Load and initialize the include file.
include('Mote-Include.lua')
end
-- Setup vars that are user-independent. state.Buff vars initialized here will automatically be tracked.
function job_setup()
-- List of pet weaponskills to check for
petWeaponskills = S{"Slapstick", "Knockout", "Magic Mortar",
"Chimera Ripper", "String Clipper", "Cannibal Blade", "Bone Crusher", "String Shredder",
"Arcuballista", "Daze", "Armor Piercer", "Armor Shatterer"}
-- Map automaton heads to combat roles
petModes = {
['Harlequin Head'] = 'Melee',
['Sharpshot Head'] = 'Ranged',
['Valoredge Head'] = 'Tank',
['Stormwaker Head'] = 'Magic',
['Soulsoother Head'] = 'Heal',
['Spiritreaver Head'] = 'Nuke'
}
-- Subset of modes that use magic
magicPetModes = S{'Nuke','Heal','Magic'}
-- Var to track the current pet mode.
state.PetMode = M{['description']='Pet Mode', 'None', 'Melee', 'Ranged', 'Tank', 'Magic', 'Heal', 'Nuke'}
end
-------------------------------------------------------------------------------------------------------------------
-- User setup functions for this job. Recommend that these be overridden in a sidecar file.
-------------------------------------------------------------------------------------------------------------------
-- Setup vars that are user-dependent. Can override this function in a sidecar file.
function user_setup()
state.OffenseMode:options('Normal', 'Acc', 'Martial_Arts', 'Hizamaru')
state.HybridMode:options('Normal', 'DT')
state.WeaponskillMode:options('Normal', 'Acc', 'Fodder')
state.PhysicalDefenseMode:options('PDT', 'Evasion')
-- Default maneuvers 1, 2, 3 and 4 for each pet mode.
defaultManeuvers = {
['Melee'] = {'Fire Maneuver', 'Thunder Maneuver', 'Wind Maneuver', 'Light Maneuver'},
['Ranged'] = {'Wind Maneuver', 'Fire Maneuver', 'Thunder Maneuver', 'Light Maneuver'},
['Tank'] = {'Earth Maneuver', 'Dark Maneuver', 'Light Maneuver', 'Wind Maneuver'},
['Magic'] = {'Ice Maneuver', 'Light Maneuver', 'Dark Maneuver', 'Earth Maneuver'},
['Heal'] = {'Light Maneuver', 'Dark Maneuver', 'Water Maneuver', 'Earth Maneuver'},
['Nuke'] = {'Ice Maneuver', 'Dark Maneuver', 'Light Maneuver', 'Earth Maneuver'}
}
update_pet_mode()
select_default_macro_book()
end
-- Define sets used by this job file.
function init_gear_sets()
-- Precast Sets
-- Fast cast sets for spells
sets.precast.FC = {head="Herculean Helm",body="Taeon Tabard",neck="Voltsurge Torque",ring1="Weatherspoon Ring",ring2="Prolix Ring",ear1="Enchntr. Earring +1",ear2="Loquacious Earring",hands="Thaumas Gloves",back="Ogapepo Cape",waist="Witful Belt",
legs="Rawhide Trousers",
feet="Regal Pumps +1"}
sets.precast.FC.Utsusemi = set_combine(sets.precast.FC, {back="Mujin Mantle",neck="Magoraga Beads"})
-- Precast sets to enhance JAs
sets.precast.JA['Tactical Switch'] = {feet="Karagoz Scarpe"}
sets.precast.JA['Repair'] = {feet="Foire Babouches +1",ear1="Guignol Earring",ear2="Pratik Earring",legs="Desultor Tassets"}
sets.precast.JA.Maneuver = {neck="Buffoon's Collar +1",body="Karagoz Farsetto",hands="Foire Dastanas +1",back="Visucius's Mantle",ear2="Burana Earring"}
-- Waltz set (chr and vit)
sets.precast.Waltz = {
head="Herculean Helm",neck="Tjukurrpa Medal",ear2="Roundel Earring",ear1="Soil Pearl",
body={ name="Rawhide Vest", augments={'DEX+10','STR+7','INT+7',}},hands="Slither Gloves +1",ring1="Titan Ring",ring2="Titan Ring",
back="Iximulew Cape",waist="Warwolf Belt",legs="Samnuha Tights",feet="Rawhide Boots"}
-- Don't need any special gear for Healing Waltz.
sets.precast.Waltz['Healing Waltz'] = {}
-- Weaponskill sets
-- Default set for any weaponskill that isn't any more specifically defined
sets.precast.WS = {
head="Hizamaru Somen +1",neck="Fotia Gorget",ear1="Brutal Earring",ear2="Moonshade Earring",
body="Hiza. Haramaki +1",hands="Hizamaru Kote +1",ring1="Petrov Ring",ring2="Epona's Ring",
back="Visucius's Mantle",waist="Fotia Belt",legs="Hiza. Hizayoroi +1",feet="Hiza. Sune-ate +1"}--Dispersal Mantle
-- Specific weaponskill sets. Uses the base set if an appropriate WSMod version isn't found.
sets.precast.WS['Stringing Pummel'] = set_combine(sets.precast.WS, {
neck="Fotia Gorget",belt="Fotia Belt",back="Rancorous Mantle",legs="Hiza. Hizayoroi +1",feet="Hiza. Sune-ate +1"})
sets.precast.WS['Stringing Pummel'].Mod = set_combine(sets.precast.WS['Stringing Pummel'], {legs="Hiza. Hizayoroi +1"})
sets.precast.WS['Victory Smite'] = set_combine(sets.precast.WS, {neck="Fotia Gorget",body="Hiza. Haramaki +1",waist="Fotia Belt",
legs="Hiza. Hizayoroi +1",feet="Hiza. Sune-ate +1",back="Rancorous Mantle",head="Hizamaru Somen +1"})
sets.precast.WS['Shijin Spiral'] = set_combine(sets.precast.WS, {head="Lilitu Headpiece",body="Naga Samue",hands="Rawhide Gloves",neck="Fotia Gorget",waist="Fotia Belt"})
-- Midcast Sets
sets.midcast.FastRecast = {head="Herculean Helm",body="Taeon Tabard",neck="Voltsurge Torque",ring1="Weatherspoon Ring",ring2="Prolix Ring",
ear1="Enchntr. Earring +1",ear2="Loquacious Earring",hands="Thaumas Gloves",back="Ogapepo Cape",waist="Witful Belt",
legs="Rawhide Trousers",
feet="Regal Pumps +1"}
-- Midcast sets for pet actions
sets.midcast.Pet.Cure = {back="Visucius's Mantle",legs="Foire Churidars +1",waist="Ukko Sash"}
sets.midcast.Pet['Elemental Magic'] = {back="Visucius's Mantle",hands="Naga Tekko",legs="Kara. Pantaloni +1",feet="Naga Kyahan",waist="Ukko Sash"}
sets.midcast.Pet['Enfeebling Magic'] = {back="Visucius's Mantle",hands="Naga Tekko",legs="Kara. Pantaloni +1",feet="Naga Kyahan",waist="Ukko Sash"}
sets.midcast.Pet['Dark Magic'] = {back="Visucius's Mantle",hands="Naga Tekko",legs="Kara. Pantaloni +1",feet="Naga Kyahan",waist="Ukko Sash"}
sets.midcast.Pet['Divine Magic'] = {back="Visucius's Mantle",hands="Naga Tekko",legs="Kara. Pantaloni +1",feet="Naga Kyahan",waist="Ukko Sash"}
sets.midcast.Pet['Enhancing Magic'] = {back="Visucius's Mantle",hands="Naga Tekko",legs="Kara. Pantaloni +1",feet="Naga Kyahan",waist="Ukko Sash"}
--Set for Pet Weapon Skill DMG MAX
sets.midcast.Pet.Weaponskill = {neck="Empath Necklace",head="Karagoz Capello",body="Karagoz Farsetto",hands="Karagoz Guanti",legs="Kara. Pantaloni +1",feet="Naga Kyahan",back="Dispersal Mantle",ear2="Burana Earring",ear1="Cirque Earring",waist="Klouskap Sash",ring1="Overbearing Ring"}
-- Sets to return to when not performing an action.
--Burana Earring (PUP) Maneuver effects +1 Automaton: Attack+15 Ranged Attack+15 "Magic Atk. Bonus"+10 "Regen"+2
--Cirque Earring (PUP) Automaton: Attack+2 Ranged Attack+2 "Magic Atk. Bonus"+2
--Hizamaru Somen +1
--Hiza. Haramaki +1
--Hizamaru Kote +1
--Hiza. Hizayoroi +1
--Hiza. Sune-ate +1
-- Resting sets
sets.resting = {head="Pitre Taj +1",neck="Sanctity Necklace",
ring1="Dark Ring",ring2="Defending Ring",back="Contriver's Cape",ear2="Burana Earring"}
-- Idle sets
sets.idle = {ammo="Automat. Oil +3",
head="Pitre Taj +1",neck="Empath Necklace",ear1="Handler's Earring +1",ear2="Burana Earring",
body="Foire Tobe +1",hands="Regimen Mittens",ring1="Matrimony Ring",ring2="Defending Ring",
back="Contriver's Cape",waist="Klouskap Sash",legs="Kara. Pantaloni +1",feet="Hermes' Sandals"}--Sanctity Necklace/Burana Earring/Shepherd's Chain
sets.idle.Town = set_combine(sets.idle, {range="Divinator",main="Denouements"})
-- Set for idle while pet is out (eg: pet regen gear)
sets.idle.Pet = sets.idle
-- Idle sets to wear while pet is engaged
sets.idle.Pet.Engaged = {range="Divinator",ammo="Automat. Oil +3",
head="Pitre Taj +1",neck="Empath Necklace",ear1="Handler's Earring +1",ear2="Burana Earring",
body="Foire Tobe +1",hands="Regimen Mittens",ring1="Varar Ring",ring2="Varar Ring",
back="Visucius's Mantle",waist="Klouskap Sash",legs="Kara. Pantaloni +1",feet="Naga Kyahan"}--Handler's Earring/Burana Earring
sets.idle.Pet.Engaged.Tank = set_combine(sets.idle.Pet.Engaged, {range="Divinator",ammo="Automat. Oil +3",
head="Pitre Taj +1",neck="Empath Necklace",ear1="Handler's Earring +1",ear2="Handler Earring",
body="Foire Tobe +1",hands="Regimen Mittens",ring1="Varar Ring",ring2="Varar Ring",
back="Visucius's Mantle",waist="Isa Belt",legs="Kara. Pantaloni +1",feet="Naga Kyahan"})--Pet: Damage Taken set
sets.idle.Pet.Engaged.Ranged = set_combine(sets.idle.Pet.Engaged, {range="Divinator II",neck="Empath Necklace",
hands="Regimen Mittens",legs="Kara. Pantaloni +1",ear2="Burana Earring",ear1="Cirque Earring",back="Visucius's Mantle",
waist="Klouskap Sash"})
sets.idle.Pet.Engaged.Nuke = set_combine(sets.idle.Pet.Engaged, {range="Divinator II",
legs="Kara. Pantaloni +1",feet="Naga Kyahan",hands="Naga Tekko",
ear2="Burana Earring",ear1="Cirque Earring",back="Visucius's Mantle",
waist="Klouskap Sash"})
sets.idle.Pet.Engaged.Heal = set_combine(sets.idle.Pet.Engaged, {range="Divinator II",
legs="Kara. Pantaloni +1",feet="Naga Kyahan",ear2="Burana Earring",ear1="Cirque Earring",back="Visucius's Mantle",
waist="Klouskap Sash"})
sets.idle.Pet.Engaged.Magic = set_combine(sets.idle.Pet.Engaged, {range="Divinator II",
legs="Kara. Pantaloni +1",feet="Naga Kyahan",hands="Naga Tekko",
ear2="Burana Earring",ear1="Cirque Earring",back="Visucius's Mantle",
waist="Klouskap Sash"})
-- Defense sets
sets.defense.Evasion = {
head="Herculean Helm",neck="Ej Necklace",ear1="Infused Earring",
body="Hiza. Haramaki +1",hands="Herculean Gloves",ring1="Varar Ring",ring2="Defending Ring",
back="Dispersal Mantle",waist="Klouskap Sash",legs="Herculean Trousers",feet="Herculean Boots"}
sets.defense.PDT = {
head="Herculean Helm",neck="Twilight Torque",
body="Hiza. Haramaki +1",hands="Herculean Gloves",ring1="Dark Ring",ring2="Defending Ring",
back="Umbra Cape",waist="Klouskap Sash",legs="Herculean Trousers",feet="Herculean Boots"}
sets.defense.MDT = {
head="Herculean Helm",neck="Twilight Torque",
body="Hiza. Haramaki +1",hands="Herculean Gloves",ring1="Dark Ring",ring2="Defending Ring",
back="Mollusca Mantle",waist="Klouskap Sash",legs="Ta'lab Trousers",feet="Herculean Boots"}
sets.Kiting = {feet="Hermes' Sandals"}
-- Engaged sets
-- Variations for TP weapon and (optional) offense/defense modes. Code will fall back on previous
-- sets if more refined versions aren't defined.
-- If you create a set with both offense and defense modes, the offense mode should be first.
-- EG: sets.engaged.Dagger.Accuracy.Evasion
-- Normal melee group
sets.engaged = {ammo="Automat. Oil +3",
head="Herculean Helm",neck="Asperity Necklace",ear1="Brutal Earring",ear2="Cessance Earring",
body={ name="Rawhide Vest", augments={'HP+50','"Subtle Blow"+7','"Triple Atk."+2',}},hands="Herculean Gloves",ring1="Petrov Ring",ring2="Epona's Ring",
back="Dispersal Mantle",waist="Windbuffet Belt +1",legs="Herculean Trousers",feet="Herculean Boots"}--Karagoz Guanti/Karagoz Capello/Hurch'lan Sash/Clotharius Torque/Dispersal Mantle
sets.engaged.Acc = {ammo="Automat. Oil +3",
head="Hizamaru Somen +1",neck="Ej Necklace",ear1="Steelflash Earring",ear2="Zennaroi Earring",
body="Hiza. Haramaki +1",hands="Hizamaru Kote +1",ring1="Varar Ring",ring2="Varar Ring",
back="Visucius's Mantle",waist="Klouskap Sash",legs="Hiza. Hizayoroi +1",feet="Hiza. Sune-ate +1"}
sets.engaged.Martial_Arts = {ammo="Automat. Oil +3",
head="Hizamaru Somen +1",neck="Asperity Necklace",ear1="Brutal Earring",ear2="Cessance Earring",
body={ name="Rawhide Vest", augments={'HP+50','"Subtle Blow"+7','"Triple Atk."+2',}},hands="Herculean Gloves",ring1="Petrov Ring",ring2="Epona's Ring",
back="Dispersal Mantle",waist="Klouskap Sash",legs="Kara. Pantaloni +1",feet="Herculean Boots"}
sets.engaged.Hizamaru = {ammo="Automat. Oil +3",
head="Hizamaru Somen +1",neck="Asperity Necklace",ear1="Brutal Earring",ear2="Cessance Earring",
body="Hiza. Haramaki +1",hands="Hizamaru Kote +1",ring1="Petrov Ring",ring2="Epona's Ring",
back="Dispersal Mantle",waist="Klouskap Sash",legs="Hiza. Hizayoroi +1",feet="Hiza. Sune-ate +1"}
sets.engaged.DT = {ammo="Automat. Oil +3",
head="Herculean Helm",neck="Twilight Torque",ear1="Brutal Earring",ear2="Cessance Earring",
body={ name="Rawhide Vest", augments={'HP+50','"Subtle Blow"+7','"Triple Atk."+2',}},hands="Herculean Gloves",ring1="Dark Ring",ring2="Defending Ring",
back="Umbra Cape",waist="Klouskap Sash",legs="Herculean Trousers",feet="Herculean Boots"}
sets.engaged.Acc.DT = {ammo="Automat. Oil +3",
head="Dampening Tam",neck="Twilight Torque",ear1="Steelflash Earring",ear2="Cessance Earring",
body={ name="Rawhide Vest", augments={'HP+50','"Subtle Blow"+7','"Triple Atk."+2',}},hands="Herculean Gloves",ring1="Dark Ring",ring2="Defending Ring",
back="Umbra Cape",waist="Klouskap Sash",legs={ name="Taeon Tights", augments={'Accuracy+17','"Triple Atk."+2','Crit. hit damage +3%',}},feet="Herculean Boots"}
end
-------------------------------------------------------------------------------------------------------------------
-- Job-specific hooks for standard casting events.
-------------------------------------------------------------------------------------------------------------------
-- Called when pet is about to perform an action
function job_pet_midcast(spell, action, spellMap, eventArgs)
if petWeaponskills:contains(spell.english) then
classes.CustomClass = "Weaponskill"
end
end
-------------------------------------------------------------------------------------------------------------------
-- Job-specific hooks for non-casting events.
-------------------------------------------------------------------------------------------------------------------
-- Called when a player gains or loses a buff.
-- buff == buff gained or lost
-- gain == true if the buff was gained, false if it was lost.
function job_buff_change(buff, gain)
if buff == 'Wind Maneuver' then
handle_equipping_gear(player.status)
end
end
-- Called when a player gains or loses a pet.
-- pet == pet gained or lost
-- gain == true if the pet was gained, false if it was lost.
function job_pet_change(pet, gain)
update_pet_mode()
end
-- Called when the pet's status changes.
function job_pet_status_change(newStatus, oldStatus)
if newStatus == 'Engaged' then
display_pet_status()
end
end
-------------------------------------------------------------------------------------------------------------------
-- User code that supplements standard library decisions.
-------------------------------------------------------------------------------------------------------------------
-- Called by the 'update' self-command, for common needs.
-- Set eventArgs.handled to true if we don't want automatic equipping of gear.
function job_update(cmdParams, eventArgs)
update_pet_mode()
end
-- Set eventArgs.handled to true if we don't want the automatic display to be run.
function display_current_job_state(eventArgs)
display_pet_status()
end
-------------------------------------------------------------------------------------------------------------------
-- User self-commands.
-------------------------------------------------------------------------------------------------------------------
-- Called for custom player commands.
function job_self_command(cmdParams, eventArgs)
if cmdParams[1] == 'maneuver' then
if pet.isvalid then
local man = defaultManeuvers[state.PetMode.value]
if man and tonumber(cmdParams[2]) then
man = man[tonumber(cmdParams[2])]
end
if man then
send_command('input /pet "'..man..'" <me>')
end
else
add_to_chat(123,'No valid pet.')
end
end
end
-------------------------------------------------------------------------------------------------------------------
-- Utility functions specific to this job.
-------------------------------------------------------------------------------------------------------------------
-- Get the pet mode value based on the equipped head of the automaton.
-- Returns nil if pet is not valid.
function get_pet_mode()
if pet.isvalid then
return petModes[pet.head] or 'None'
else
return 'None'
end
end
-- Update state.PetMode, as well as functions that use it for set determination.
function update_pet_mode()
state.PetMode:set(get_pet_mode())
update_custom_groups()
end
-- Update custom groups based on the current pet.
function update_custom_groups()
classes.CustomIdleGroups:clear()
if pet.isvalid then
classes.CustomIdleGroups:append(state.PetMode.value)
end
end
-- Display current pet status.
function display_pet_status()
if pet.isvalid then
local petInfoString = pet.name..' ['..pet.head..']: '..tostring(pet.status)..' TP='..tostring(pet.tp)..' HP%='..tostring(pet.hpp)
if magicPetModes:contains(state.PetMode.value) then
petInfoString = petInfoString..' MP%='..tostring(pet.mpp)
end
add_to_chat(122,petInfoString)
end
end
-- Select default macro book on initial load or subjob change.
function select_default_macro_book()
-- Default macro set/book
if player.sub_job == 'DNC' then
set_macro_page(1, 7)
elseif player.sub_job == 'NIN' then
set_macro_page(3, 7)
elseif player.sub_job == 'THF' then
set_macro_page(4, 7)
else
set_macro_page(1, 7)
end
end
Thank You :D
|
|