0% found this document useful (0 votes)
23 views10 pages

BST Lua

lua script for beastmaster

Uploaded by

Kyle Ricks
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
23 views10 pages

BST Lua

lua script for beastmaster

Uploaded by

Kyle Ricks
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd

-- NOTE: I do not play bst, so this will not be maintained for 'active' use.

-- It is added to the repository to allow people to have a baseline to build from,


-- and make sure it is up-to-date with the library API.

-- Credit to [Link] for most of the original work.

--[[
Custom commands:

Ctrl-F8 : Cycle through available pet food options.


Alt-F8 : Cycle through correlation modes for pet attacks.
]]

-----------------------------------------------------------------------------------
--------------------------------
-- 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('[Link]')
-- Load and use Organizer
include('organizer-lib')
end

function job_setup()
-- Set up Reward Modes and keybind Ctrl-F8
[Link] = M{['description']='Reward Mode', 'Theta', 'Zeta', 'Eta'}
RewardFood = {name="Pet Food Theta"}
send_command('bind ^f8 gs c cycle RewardMode')

-- Set up Monster Correlation Modes and keybind Alt-F8


[Link] = M{['description']='Correlation Mode',
'Neutral','Favorable'}
send_command('bind !f8 gs c cycle CorrelationMode')

-- Custom pet modes for engaged gear


[Link] = M{['description']='Pet Mode', 'Normal', 'PetStance', 'PetTank'}

ready_moves_to_check = S{'Sic','Whirl Claws','Dust Cloud','Foot Kick','Sheep


Song','Sheep Charge','Lamb Chop',
'Rage','Head Butt','Scream','Dream Flower','Wild Oats','Leaf Dagger','Claw
Cyclone','Razor Fang',
'Roar','Gloeosuccus','Palsy Pollen','Soporific','Cursed
Sphere','Venom','Geist Wall','Toxic Spit',
'Numbing Noise','Nimble Snap','Cyclotail','Spoil','Rhino Guard','Rhino
Attack','Power Attack',
'Hi-Freq Field','Sandpit','Sandblast','Venom Spray','Mandibular
Bite','Metallic Body','Bubble Shower',
'Bubble Curtain','Scissor Guard','Big Scissors','Grapple','Spinning
Top','Double Claw','Filamented Hold',
'Frog Kick','Queasyshroom','Silence Gas','Numbshroom','Spore','Dark
Spore','Shakeshroom','Blockhead',
'Secretion','Fireball','Tail Blow','Plague Breath','Brain
Crush','Infrasonics','1000 Needles',
'Needleshot','Chaotic Eye','Blaster','Scythe Tail','Ripper Fang','Chomp
Rush','Intimidate','Recoil Dive',
'Water Wall','Snow Cloud','Wild Carrot','Sudden Lunge','Spiral
Spin','Noisome Powder','Wing Slap',
'Beak Lunge','Suction','Drainkiss','Acid Mist','TP Drainkiss','Back
Heel','Jettatura','Choke Breath',
'Fantod','Charged Whisker','Purulent Ooze','Corrosive Ooze','Tortoise
Stomp','Harden Shell','Aqua Breath',
'Sensilla Blades','Tegmina Buffet','Molting Plumage','Swooping
Frenzy','Pentapeck','Sweeping Gouge',
'Zealous Snort'}
end

-----------------------------------------------------------------------------------
--------------------------------
-- User setup functions for this job. Recommend that these be overridden in a
sidecar file.
-----------------------------------------------------------------------------------
--------------------------------

function user_setup()
[Link]:options('Normal', 'Acc')
[Link]:options('Normal', 'Acc')
[Link]:options('Normal', 'Refresh', 'Reraise')
[Link]:options('PDT', 'Hybrid', 'Killer')

update_combat_form()
end

-- Called when this job file is unloaded (eg: job change)


function user_unload()
-- Unbinds the Reward and Correlation hotkeys.
send_command('unbind ^f8')
send_command('unbind !f8')
end

-- Define sets and vars used by this job file.


function init_gear_sets()
--------------------------------------
-- Precast sets
--------------------------------------

-- [Link]['Killer Instinct'] = {head="Ankusa Helm +1"}


-- [Link]['Feral Howl'] = {body="Ankusa Jackcoat +1"}
-- [Link]['Call Beast'] = {hands="Ankusa Gloves +1"}
-- [Link]['Familiar'] = {legs="Ankusa Trousers +1"}
[Link]['Tame'] = {head="Beast Helm"}
[Link]['Spur'] = {feet="Ferine Ocreae +2"}

[Link]['Reward'] = {ammo=RewardFood,
head="Aetosaur Helm",
body="Mst. Jackcoat +2",
hands="Ogre Gloves",
back="Ferine Mantle",
waist="Crudelis Belt",
legs="Aeto. Trousers +1",
feet="Mst. Gaiters +2"
}

[Link]['Charm'] = {
head="Monster Helm",
body="Mst. Jackcoat +2",
hands="Beast Gloves",
waist="Monster Belt",
legs="Beast Trousers",
feet="Mst. Gaiters +2"
}

-- CURING WALTZ
[Link] = {
head="Aetosaur Helm",
body="Aetosaur Jerkin",
back="Ferine Mantle",
waist="Monster Belt",
legs="Aeto. Trousers +1",
feet="Aeto. Ledelsens"
}

-- HEALING WALTZ
[Link]['Healing Waltz'] = {}

-- STEPS
[Link] = {
head="Aetosaur Helm",
neck="Peacock Charm",
body="Aetosaur Jerkin",
hands="Brego Gloves",
ring1="Rajas Ring",
ring2="Ulthalam's Ring",
back="Ferine Mantle",
waist="Monster Belt",
legs="Aeto. Trousers +1",
feet="Aeto. Ledelsens"
}

-- VIOLENT FLOURISH
-- [Link].Flourish1 = {}
-- [Link].Flourish1['Violent Flourish'] = {body="Ankusa Jackcoat
+1",legs="Iuitl Tights +1",feet="Iuitl Gaiters +1"}

[Link] = {ear1="Loquacious Earring"}


[Link] = set_combine([Link], {neck="Magoraga
Beads"})

-- WEAPONSKILLS
-- Default weaponskill set.
[Link] = {
head="Aetosaur Helm",
neck="Peacock Charm",
ear1="Bushinomimi",
ear2="Brutal Earring",
body="Aetosaur Jerkin",
hands="Heafoc Mitts",
ring1="Rajas Ring",
ring2="Pyrosoul Ring",
back="Atheling Mantle",
waist="Beir Belt +1",
legs="Aeto. Trousers +1",
feet="Aeto. Ledelsens"
}

-- [Link] = {ammo="Jukukik Feather",


-- head="Yaoyotl Helm",neck="Ziel Charm",ear1="Mache Earring",ear2="Mache
Earring",
-- body="Mes'yohi Haubergeon",hands="Mikinaak Gauntlets",ring1="Pyrosoul
Ring",ring2="Epona's Ring",
-- back="Letalis Mantle",waist="Hurch'lan Sash",legs="Mikinaak
Cuisses",feet="Gorney sollerets +1"}

-- Specific weaponskill sets.


[Link]['Ruinator'] = set_combine([Link], {
neck="Breeze Gorget",
waist="Breeze Belt"
}
)

-- [Link]['Ruinator'].WSAcc = set_combine([Link],
{neck="Breeze Gorget",waist="Breeze Belt"})

-- [Link]['Onslaught'].WSAcc = set_combine([Link],
{hands="Buremte Gloves",ring1="Rajas Ring"})

[Link]['Primal Rend'] = set_combine([Link], {


back="Ferine Mantle",
waist="Soil Belt"
})

[Link]['Cloudsplitter'] = set_combine([Link]['Primal Rend'],


{
waist="Thunder Belt"
}
)

--------------------------------------
-- Midcast sets
--------------------------------------

-- [Link] = {ammo="Demonry Core",


-- head="Iuitl Headgear +1",neck="Orunmila's Torque",ear1="Loquacious
Earring",
-- body="Totemic Jackcoat +1",hands="Iuitl Wristbands +1",ring1="Prolix
Ring",ring2="Dark Ring",
-- back="Mollusca Mantle",waist="Hurch'lan Sash",legs="Iuitl Tights
+1",feet="Iuitl Gaiters +1"}

-- [Link] = [Link]

-- PET SIC & READY MOVES


[Link] = {
-- head="Totemic Helm +1",neck="Ferine Necklace",ear1="Domesticator's
Earring",ear2="Sabong Earring",
-- body="Mirke Wardecors",hands="Ferine Manoplas +2",ring1="Angel's
Ring",ring2="Angel's Ring",
-- waist="Hurch'lan Sash",legs="Desultor Tassets",feet="Totemic Gaiters +1",
back="Ferine Mantle"
}

-- [Link] = set_combine([Link],
{hands="Scorpion Mittens"})

-- [Link] = {legs="Desultor Tassets"}


-- [Link] = {head="Ferine Cabasset +2",legs="Desultor
Tassets"}

--------------------------------------
-- Idle/resting/defense/etc sets
--------------------------------------

-- RESTING
-- [Link] = {ammo="Demonry Core",
-- head="Twilight Helm",neck="Wiglen Gorget",ear1="Domesticator's
Earring",ear2="Sabong Earring",
-- body="Twilight Mail",hands="Totemic Gloves +1",ring1="Paguroidea
Ring",ring2="Sheltered Ring",
-- back="Pastoralist's Mantle",waist="Muscle Belt +1",legs="Ferine Quijotes
+2",feet="Skadi's Jambeaux +1"}

-- IDLE SETS
[Link] = {
head="Aetosaur Helm",
neck="Peacock Charm",
ear1="Ethereal Earring",
ear2="Brutal Earring",
body="Aetosaur Jerkin",
hands="Brego Gloves",
ring1="Ulthalam's Ring",
ring2="Rajas Ring",
back="Atheling Mantle",
waist="Twilight Belt",
legs="Aeto. Trousers +1",
feet="Aeto. Ledelsens"
}

-- [Link] = {head="Wivre Hairpin",body="Twilight Mail",hands="Ogier's


Gauntlets",legs="Ogier's Breeches"}

-- [Link] = set_combine([Link], {head="Twilight


Helm",body="Twilight Mail"})

-- [Link] = [Link]

-- [Link] = {
-- head="Anwig Salade",neck="Ferine Necklace",ear1="Domesticator's
Earring",ear2="Sabong Earring",
-- body="Ankusa Jackcoat +1",hands="Totemic Gloves +1",ring1="Angel's
Ring",ring2="Angel's Ring",
-- waist="Hurch'lan Sash",legs="Ankusa Trousers +1",feet="Armada Sollerets",
-- back="Ferine Mantle"
-- }
-- DEFENSE SETS
[Link] = set_combine([Link], {
neck="Twilight Torque",
ear1="Dodge Earring",
hands="Seiryu's Kote",
ring2="Patronus Ring",
ring1="Jelly Ring",
back="Metallon Mantle"
}
)

-- [Link] = set_combine([Link], {head="Iuitl Headgear


+1",
-- back="Mollusca Mantle",waist="Hurch'lan Sash",legs="Iuitl Tights
+1",feet="Iuitl Gaiters +1"})

-- [Link] = set_combine([Link], {body="Ferine Gausape


+2"})

[Link] = set_combine([Link], {
ring1="Rajas Ring",
})

-- [Link] = {ammo="Demonry Core",


-- head="Iuitl Headgear +1",neck="Twilight Torque",
-- body="Mekira Meikogai",hands="Iuitl Wristbands +1",ring1="Dark
Ring",ring2="Defending Ring",
-- back="Repulse Mantle",waist="Hurch'lan Sash",legs="Iuitl Tights
+1",feet="Skadi's Jambeaux +1"}

--------------------------------------
-- Engaged sets
--------------------------------------

[Link] = {
head="Aetosaur Helm",
neck="Peacock Charm",
ear1="Ethereal Earring",
ear2="Brutal Earring",
body="Aetosaur Jerkin",
hands="Brego Gloves",
ring1="Ulthalam's Ring",
ring2="Rajas Ring",
back="Atheling Mantle",
waist="Twilight Belt",
legs="Aeto. Trousers +1",
feet="Aeto. Ledelsens"
}

-- [Link] = {ammo="Jukukik Feather",


-- head="Yaoyotl Helm",neck="Ziel Charm",ear1="Heartseeker
Earring",ear2="Dudgeon Earring",
-- body="Mes'yohi Haubergeon",hands="Buremte Gloves",ring1="Mars's
Ring",ring2="Oneiros Annulet",
-- back="Letalis Mantle",waist="Hurch'lan Sash",legs="Skadi's Chausses
+1",feet="Whirlpool Greaves"}

-- [Link] = set_combine([Link], {body="Ferine Gausape


+2",waist="Cetl Belt"})
-- [Link] = set_combine([Link], {body="Ferine Gausape
+2",waist="Cetl Belt"})

-- EXAMPLE SETS WITH PET MODES


--[[
[Link] = {}
[Link] = {}
[Link] = {}
[Link] = {}
[Link] = {}
[Link] = {}
[Link] = {}
[Link] = {}
]]
-- MORE EXAMPLE SETS WITH EXPANDED COMBAT FORMS
--[[
[Link] = {}
[Link] = {}
[Link] = {}
[Link] = {}
[Link] = {}
[Link] = {}
[Link]= {}
[Link] = {}
]]

--------------------------------------
-- Custom buff sets
--------------------------------------

-- [Link]['Killer Instinct'] = {body="Ferine Gausape +2"}

--------------------------------------
-- Sets included for Organizer
--------------------------------------
[Link] = {
main="Eminent Axe", sub="Astolfo",ammo="lucky broth",ring1="Warp Ring"
}

[Link] = {
ammo="Cl. Wheat Broth"
}

[Link] = {
ammo="Pet food theta"
}
end

-----------------------------------------------------------------------------------
--------------------------------
-- Job-specific hooks for standard casting events.
-----------------------------------------------------------------------------------
--------------------------------

function job_precast(spell, action, spellMap, eventArgs)


-- Define class for Sic and Ready moves.
if ready_moves_to_check:contains([Link]) and [Link] == 'Engaged'
then
[Link] = "WS"
end
end

function job_post_precast(spell, action, spellMap, eventArgs)


-- If Killer Instinct is active during WS, equip Ferine Gausape +2.
if [Link]:lower() == 'weaponskill' and buffactive['Killer Instinct'] then
equip([Link]['Killer Instinct'])
end
end

function job_pet_post_midcast(spell, action, spellMap, eventArgs)


-- Equip monster correlation gear, as appropriate
equip([Link][[Link]])
end

-----------------------------------------------------------------------------------
--------------------------------
-- Job-specific hooks for non-casting events.
-----------------------------------------------------------------------------------
--------------------------------

function job_buff_change(buff, gain)


if buff == 'Killer Instinct' then
update_combat_form()
handle_equipping_gear([Link])
end
end

-- Called when the pet's status changes.


function job_pet_status_change(newStatus, oldStatus)

end

-- Handle notifications of general user state change.


function job_state_change(stateField, newValue, oldValue)
if stateField == 'Reward Mode' then
-- Thena, Zeta or Eta
[Link] = "Pet Food " .. newValue
elseif stateField == 'Pet Mode' then
[Link]:set(newValue)
end
end

-----------------------------------------------------------------------------------
--------------------------------
-- User code that supplements standard library decisions.
-----------------------------------------------------------------------------------
--------------------------------

function get_custom_wsmode(spell, spellMap, defaut_wsmode)


if defaut_wsmode == 'Normal' then
if [Link] == "Ruinator" and (world.day_element == 'Water' or
world.day_element == 'Wind' or world.day_element == 'Ice') then
return 'Mekira'
end
end
end

-- Called by the 'update' self-command, for common needs.


-- Set [Link] to true if we don't want automatic equipping of gear.
function job_update(cmdParams, eventArgs)
update_combat_form()
end

-- Set [Link] to true if we don't want the automatic display to be run.


function display_current_job_state(eventArgs)
local msg = 'Melee'

if [Link].has_value then
msg = msg .. ' (' .. [Link] .. ')'
end

msg = msg .. ': '

msg = msg .. [Link]


if [Link] ~= 'Normal' then
msg = msg .. '/' .. [Link]
end
msg = msg .. ', WS: ' .. [Link]

if [Link] ~= 'None' then


msg = msg .. ', ' .. 'Defense: ' .. [Link] .. ' (' ..
state[[Link] .. 'DefenseMode'].value .. ')'
end

if [Link] then
msg = msg .. ', Kiting'
end

msg = msg .. ', Reward: '..[Link]..', Correlation:


'..[Link]

add_to_chat(122, msg)

[Link] = true
end

-----------------------------------------------------------------------------------
--------------------------------
-- Utility functions specific to this job.
-----------------------------------------------------------------------------------
--------------------------------

function update_combat_form()
if buffactive['Killer Instinct'] then
if (player.sub_job == 'NIN' or player.sub_job == 'DNC') and
[Link]:endswith('Axe') then
[Link]:set('KillerDW')
else
[Link]:set('Killer')
end
elseif (player.sub_job == 'NIN' or player.sub_job == 'DNC') and
[Link]:endswith('Axe') then
[Link]:set('DW')
else
[Link]:reset()
end
end

You might also like