Gearswap Support Thread

言語: JP EN DE FR
2010-06-21
New Items
users online
フォーラム » Windower » Support » Gearswap Support Thread
Gearswap Support Thread
First Page 2 3 ... 26 27 28 ... 181 182 183
 Fenrir.Motenten
VIP
Offline
サーバ: Fenrir
Game: FFXI
user: Motenten
Posts: 764
By Fenrir.Motenten 2014-07-21 13:22:46  
= is assignment. A = B means A is set to be the value of B.

== is comparison. A == B means, Is A the same thing as B?

In an [if..then] block, you'll always use ==, never use =, since [if..then] is intrinsically a comparison. Outside an [if..then] block, you'll use = as instructions to set values.
[+]
 Leviathan.Andret
Offline
サーバ: Leviathan
Game: FFXI
user: Andret
Posts: 1000
By Leviathan.Andret 2014-07-21 19:01:22  
I am having problems with SCH gearswap. Apparently none of the elemental spell will change my gear. Cures, enhancing, engaged and other buffs will change equipments but casting elemental magic will not change my equipments.


Code
-------------------------------------------------------------------------------------------------------------------
-- Initialization function that defines sets and variables to be used.
-------------------------------------------------------------------------------------------------------------------

-- IMPORTANT: Make sure to also get the Mote-Include.lua file (and its supplementary files) to go with this.

--[[
		Custom commands:

		Shorthand versions for each strategem type that uses the version appropriate for
		the current Arts.

										Light Arts              Dark Arts

		gs c scholar cost               Penury                  Parsimony
		gs c scholar speed              Celerity                Alacrity
		gs c scholar aoe                Accession               Manifestation
		gs c scholar power              Rapture                 Ebullience
		gs c scholar duration           Perpetuance
		gs c scholar accuracy           Altruism                Focalization
		gs c scholar enmity             Tranquility             Equanimity
		gs c scholar skillchain                                 Immanence
		gs c scholar addendum           Addendum: White         Addendum: Black
--]]



-- Initialization function for this job file.
function get_sets()
	-- Load and initialize the include file.
	include('Mote-Include.lua')
end

-- Setup vars that are user-independent.
function job_setup()
	info.addendumNukes = S{"Stone IV", "Water IV", "Aero IV", "Fire IV", "Blizzard IV", "Thunder IV",
		"Stone V", "Water V", "Aero V", "Fire V", "Blizzard V", "Thunder V"}

	state.Buff['Sublimation: Activated'] = buffactive['Sublimation: Activated'] or false
	update_active_strategems()
end


-- Setup vars that are user-dependent.  Can override this function in a sidecar file.
function user_setup()
	-- Options: Override default values
	options.CastingModes = {'Normal', 'Resistant'}
	options.OffenseModes = {'None', 'Normal'}
	options.DefenseModes = {'Normal'}
	options.WeaponskillModes = {'Normal'}
	options.IdleModes = {'Normal', 'PDT', 'Stun'}
	options.RestingModes = {'Normal'}
	options.PhysicalDefenseModes = {'PDT'}
	options.MagicalDefenseModes = {'MDT'}

	state.OffenseMode = 'None'
	state.Defense.PhysicalMode = 'PDT'

	info.low_nukes = S{"Stone", "Water", "Aero", "Fire", "Blizzard", "Thunder","Stonega","Waterga","Firaga","Blizzaga","Thundaga","Stonega II",}
	info.mid_nukes = S{"Stone II", "Water II", "Aero II", "Fire II", "Blizzard II", "Thunder II",
					   "Stone III", "Water III", "Aero III", "Fire III", "Blizzard III", "Thunder III",
					   "Stone IV", "Water IV", "Aero IV", "Fire IV", "Blizzard IV", "Thunder IV",}
	info.high_nukes = S{"Stone V", "Water V", "Aero V", "Fire V", "Blizzard V", "Thunder V"}

	gear.macc_hagondes = {name="Hagondes Cuffs", augments={'Phys. dmg. taken -3%','Mag. Acc.+29'}}

	send_command('bind ^` input /ma Stun <t>')

	select_default_macro_book()
end

function job_file_unload()
	send_command('unbind ^`')
end


-- Define sets and vars used by this job file.
function init_gear_sets()
	--------------------------------------
	-- Start defining the sets
	--------------------------------------

	-- Precast Sets

	-- Precast sets to enhance JAs

	sets.precast.JA['Tabula Rasa'] = {legs="Pedagogy Pants"}


	-- Fast cast sets for spells

	sets.precast.FC = {ammo="Impatiens",
		head="Nahtirah Hat",ear2="Loquacious Earring",
		body="Artsieq jubbah",hands="Gendewitha Gages",ring1="Ephedra Ring",
		back="Swith Cape",waist="Swift Belt",legs="Artsieq hose",feet="Academic's Loafers"}

	sets.precast.FC['Enhancing Magic'] = set_combine(sets.precast.FC, {waist="Siegel Sash"})

	sets.precast.FC['Elemental Magic'] = set_combine(sets.precast.FC, {neck="Stoicheion Medal"})

	sets.precast.FC.Cure = set_combine(sets.precast.FC, {body="Artsieq jubbah",back="Pahtli Cape"})

	sets.precast.FC.Curaga = sets.precast.FC.Cure

	sets.precast.FC.Impact = set_combine(sets.precast.FC['Elemental Magic'], {head=empty,body="Twilight Cloak"})


	-- Midcast Sets

	sets.midcast.FastRecast = {ammo="Incantor Stone",
		head="Nahtirah Hat",ear2="Loquacious Earring",
		body="Artsieq jubbah",hands="Gendewitha Gages",ring1="Ephedra Ring",
		back="Swith Cape",waist="Swift Belt",legs="Artsieq hose",feet="Academic's Loafers"}

	sets.midcast.Cure = {main="Arka IV",sub="Staff strap",ammo="Incantor Stone",
		head="Nahtirah Hat",neck="Colossus's Torque",ear1="Lifestorm Earring",ear2="Loquacious Earring",
		body="Artsieq jubbah",hands="Bokwus Gloves",ring1="Ephedra Ring",ring2="Sirona's Ring",
		back="Swith Cape",waist="Swift Belt",legs="Nares Trews",feet="Academic's Loafers"}

	sets.midcast.CureWithLightWeather = {main="Chatoyant Staff",sub="Staff strap",ammo="Incantor Stone",
		head="Nahtirah Hat",neck="Colossus's Torque",ear1="Lifestorm Earring",ear2="Loquacious Earring",
		body="Artsieq jubbah",hands="Bokwus Gloves",ring1="Ephedra Ring",ring2="Sirona's Ring",
		back="Twilight Cape",waist="Korin Obi",legs="Nares Trews",feet="Academic's Loafers"}

	sets.midcast.Curaga = sets.midcast.Cure

	sets.midcast.Regen = {main="Bolelabunga",head="Savant's Bonnet +2"}

	sets.midcast.Cursna = {
		neck="Malison Medallion",
		hands="Hieros Mittens",ring1="Ephedra Ring",
		feet="Academic's Loafers"}

	sets.midcast['Enhancing Magic'] = {ammo="Savant's Treatise",
		head="Savant's Bonnet +2",neck="Colossus's Torque",
		body="Artsieq jubbah",hands="Savant's bracers +2",
		waist="Swift Belt",legs="Artsieq hose"}

	sets.midcast.Stoneskin = set_combine(sets.midcast['Enhancing Magic'], {waist="Siegel Sash"})

	sets.midcast.Storm = set_combine(sets.midcast['Enhancing Magic'], {feet="Pedagogy Loafers"})

	sets.midcast.Protect = {ring1="Sheltered Ring"}
	sets.midcast.Protectra = sets.midcast.Protect

	sets.midcast.Shell = {ring1="Sheltered Ring"}
	sets.midcast.Shellra = sets.midcast.Shell


	-- Custom spell classes
	sets.midcast.MndEnfeebles = {main="Ngqoqwanb",sub="Mephitis Grip",ammo="Sturm's Report",
		head="Nahtirah Hat",neck="Eddy Necklace",ear1="Psystorm Earring",ear2="Lifestorm Earring",
		body="Artsieq jubbah",hands="Yaoyotl Gloves",ring1="Aquasoul Ring",ring2="Sangoma Ring",
		back="Toro Cape",waist="Argute belt",legs="Artsieq hose",feet="Umbani boots"}

	sets.midcast.IntEnfeebles = {main="Ngqoqwanb",sub="Mephitis Grip",ammo="Sturm's Report",
		head="Nahtirah Hat",neck="Eddy Necklace",ear1="Psystorm Earring",ear2="Lifestorm Earring",
		body="Artsieq jubbah",hands="Yaoyotl Gloves",ring1="Locus Ring",ring2="Sangoma Ring",
		back="Toro Cape",waist="Argute belt",legs="Artsieq hose",feet="Umbani boots"}

	sets.midcast.ElementalEnfeeble = sets.midcast.IntEnfeebles

	sets.midcast['Dark Magic'] = {main="Ngqoqwanb",sub="Mephitis Grip",ammo="Incantor Stone",
		head="Nahtirah Hat",neck="Aesir Torque",ear1="Psystorm Earring",ear2="Lifestorm Earring",
		body="Artsieq jubbah",hands="Yaoyotl Gloves",ring1="Strendu Ring",ring2="Sangoma Ring",
		back="Toro Cape",waist="Swift Belt",legs="Artsieq hose",feet="Umbani boots"}

	sets.midcast.Kaustra = {main="Ngqoqwanb",sub="Wizzan Grip",ammo="Witchstone",
		head="Hagondes Hat",neck="Eddy Necklace",ear1="Hecate's Earring",ear2="Friomisi Earring",
		body="Bokwus robe",hands="Yaoyotl Gloves",ring1="Locus Ring",ring2="Strendu Ring",
		back="Toro Cape",waist="Cognition Belt",legs="Hagondes Pants",feet="Umbani boots"}

	sets.midcast.Drain = {main="Ngqoqwanb",sub="Mephitis Grip",ammo="Incantor Stone",
		head="Nahtirah Hat",neck="Aesir Torque",ear1="Psystorm Earring",ear2="Lifestorm Earring",
		body="Artsieq jubbah",hands="Gendewitha Gages",ring1="Excelsis Ring",ring2="Sangoma Ring",
		back="Toro Cape",waist="Fucho-no-obi",legs="Artsieq hose",feet="Academic's Loafers"}

	sets.midcast.Aspir = sets.midcast.Drain

	sets.midcast.Stun = {main="Apamajas II",sub="Mephitis Grip",ammo="Incantor Stone",
		head="Nahtirah Hat",neck="Aesir Torque",ear1="Psystorm Earring",ear2="Lifestorm Earring",
		body="Artsieq jubbah",hands="Gendewitha Gages",ring1="Ephedra Ring",ring2="Sangoma Ring",
		back="Toro Cape",waist="Witful Belt",legs="Artsieq hose",feet="Academic's Loafers"}

	sets.midcast.Stun.Resistant = set_combine(sets.midcast.Stun, {main="Ngqoqwanb"})


	-- Elemental Magic sets are default for handling low-tier nukes.
	sets.midcast['Elemental Magic'] = {main="Ngqoqwanb",sub="Mephitis Grip",ammo="Witch Stone",
		head="Hagondes Hat",neck="Eddy Necklace",ear1="Hecate's Earring",ear2="Friomisi Earring",
		body="Bokwus robe",hands="Yaoyotl Gloves",ring1="Locus Ring",ring2="Sangoma ring",
		back="Toro Cape",waist="Aswang Sash",legs="Hagondes Pants",feet="Umbani boots"}

	sets.midcast['Elemental Magic'].Resistant = {main="Ngqoqwanb",sub="Mephitis Grip",ammo="Witch Stone",
		head="Hagondes Hat",neck="Eddy Necklace",ear1="Hecate's Earring",ear2="Friomisi Earring",
		body="Artsieq jubbah",hands="Yaoyotl Gloves",ring1="Locus Ring",ring2="Sangoma ring",
		back="Toro Cape",waist="Aswang Sash",legs="Hagondes Pants",feet="Umbani boots"}

	-- Custom refinements for certain nuke tiers
	
	sets.midcast['Elemental Magic'].HighTierNuke = set_combine(sets.midcast['Elemental Magic'], {sub="Wizzan Grip",waist=gear.ElementalObi})
	sets.midcast['Elemental Magic'].HighTierNuke.Resistant = set_combine(sets.midcast['Elemental Magic'].Resistant, {sub="Wizzan Grip",waist=gear.ElementalObi})

	sets.midcast.Impact = {main="Ngqoqwanb",sub="Mephitis Grip",ammo="Witch Stone",
		head=empty,neck="Eddy Necklace",ear1="Psystorm Earring",ear2="Lifestorm Earring",
		body="Twilight Cloak",hands=gear.macc_hagondes,ring1="Locus Ring",ring2="Sangoma Ring",
		back="Twilight Cape",waist="Argute belt",legs="Hagondes Pants",feet="Umbani boots"}


	-- Sets to return to when not performing an action.

	-- Resting sets
	sets.resting = {main="Chatoyant Staff",sub="Mephitis Grip",
		head="Wivre hairpin",neck="Wiglen Gorget",
		body="Artsieq jubbah",hands="Serpentes Cuffs",ring1="Sheltered Ring",ring2="Paguroidea Ring",
		waist="Austerity Belt",legs="Nares Trews",feet="Serpentes Sabots"}


	-- Idle sets (default idle set not needed since the other three are defined, but leaving for testing purposes)

	sets.idle.Town = {main="Bolelabunga",sub="",ammo="Incantor Stone",
		head="Savant's Bonnet +2",neck="Wiglen Gorget",ear1="Moonshade Earring",ear2="Loquacious Earring",
		body="Savant's Gown +2",hands="Savant's Bracers +2",ring1="Sheltered Ring",ring2="Paguroidea Ring",
		back="Umbra Cape",waist="Fucho-no-obi",legs="Savant's Pants +2",feet="Savant's loafers +2"}

	sets.idle.Field = {main="Bolelabunga",sub="",ammo="Incantor Stone",
		head="Wivre hairpin",neck="Twilight Torque",ear1="Moonshade Earring",ear2="Loquacious Earring",
		body="Artsieq jubbah",hands="Serpentes Cuffs",ring1="Sheltered Ring",ring2="Paguroidea Ring",
		back="Umbra Cape",waist="Fucho-no-obi",legs="Nares Trews",feet="Umbani boots"}

	sets.idle.Field.PDT = {main=gear.Staff.PDT,sub="Staff strap",ammo="Incantor Stone",
		head="Nahtirah Hat",neck="Wiglen Gorget",ear1="Moonshade Earring",ear2="Loquacious Earring",
		body="Bokwus robe",hands="Yaoyotl Gloves",ring1="Defending Ring",ring2="Paguroidea Ring",
		back="Umbra Cape",waist="Fucho-no-obi",legs="Nares Trews",feet="Umbani boots"}

	sets.idle.Field.Stun = {main="Ngqoqwanb",sub="Mephitis Grip",ammo="Incantor Stone",
		head="Nahtirah Hat",neck="Aesir Torque",ear1="Psystorm Earring",ear2="Lifestorm Earring",
		body="Artsieq jubbah",hands="Gendewitha Gages",ring1="Ephedra Ring",ring2="Sangoma Ring",
		back="Swith Cape",waist="Swift Belt",legs="Artsieq hose",feet="Academic's Loafers"}

	sets.idle.Weak = {main="Bolelabunga",sub="Genbu's Shield",ammo="Incantor Stone",
		head="Nahtirah Hat",neck="Wiglen Gorget",ear1="Moonshade Earring",ear2="Loquacious Earring",
		body="Bokwus robe",hands="Yaoyotl Gloves",ring1="Sheltered Ring",ring2="Meridian Ring",
		back="Umbra Cape",waist="Fucho-no-obi",legs="Nares Trews",feet="Umbani boots"}

	-- Defense sets

	sets.defense.PDT = {main=gear.Staff.PDT,sub="Staff strap",ammo="Incantor Stone",
		head="Nahtirah Hat",neck="Twilight Torque",ear1="Moonshade Earring",ear2="Loquacious Earring",
		body="Bokwus robe",hands="Yaoyotl Gloves",ring1="Defending Ring",ring2=gear.DarkRing.physical,
		back="Umbra Cape",waist="Fucho-no-obi",legs="Hagondes Pants",feet="Umbani boots"}

	sets.defense.MDT = {main=gear.Staff.PDT,sub="Staff strap",ammo="Incantor Stone",
		head="Nahtirah Hat",neck="Twilight Torque",ear1="Moonshade Earring",ear2="Loquacious Earring",
		body="Artsieq jubbah",hands="Yaoyotl Gloves",ring1="Defending Ring",ring2="Shadow Ring",
		back="Tuilha Cape",waist="Fucho-no-obi",legs="Artsieq hose",feet="Umbani boots"}

	sets.Kiting = {feet="Umbani boots"}

	sets.latent_refresh = {waist="Fucho-no-obi"}

	-- 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 = {
		head="Nahtirah hat",neck="Asperity Necklace",ear1="Steelflash Earring",ear2="Bladeborn Earring",
		body="Artsieq jubbah",hands="Artsieq Cuffs",ring1="K'ayres Ring",ring2="Rajas Ring",
		waist="Swift Belt",legs="Artsieq hose",feet="Umbani boots"}



	-- Buff sets: Gear that needs to be worn to actively enhance a current player buff.
	sets.buff['Ebullience'] = {head="Savant's Bonnet +2"}
	sets.buff['Rapture'] = {head="Savant's Bonnet +2"}
	sets.buff['Perpetuance'] = {hands="Savant's Bracers +2"}
	sets.buff['Immanence'] = {hands="Savant's Bracers +2"}
	sets.buff['Penury'] = {legs="Savant's Pants +2"}
	sets.buff['Parsimony'] = {legs="Savant's Pants +2"}
	sets.buff['Celerity'] = {feet="Pedagogy Loafers"}
	sets.buff['Alacrity'] = {feet="Pedagogy Loafers"}

	sets.buff['Klimaform'] = {feet="Savant's Loafers +2"}

	sets.buff.FullSublimation = {head="Academic's Mortarboard",ear1="Savant's Earring",body="Pedagogy Gown"}
	sets.buff.PDTSublimation = {head="Academic's Mortarboard",ear1="Savant's Earring"}

	--sets.buff['Sandstorm'] = {feet="Desert Boots"}
end

-------------------------------------------------------------------------------------------------------------------
-- Job-specific hooks that are called to process player actions at specific points in time.
-------------------------------------------------------------------------------------------------------------------

-- Set eventArgs.handled to true if we don't want any automatic gear equipping to be done.
-- Set eventArgs.useMidcastGear to true if we want midcast gear equipped on precast.
function job_precast(spell, action, spellMap, eventArgs)
	if state.Buff[spell.english] ~= nil then
		state.Buff[spell.english] = true
	end
end

-- Run after the general midcast() is done.
function job_post_midcast(spell, action, spellMap, eventArgs)
	if spell.action_type == 'Magic' then
		apply_grimoire_bonuses(spell, action, spellMap, eventArgs)
	end
end

-- Set eventArgs.handled to true if we don't want any automatic gear equipping to be done.
function job_aftercast(spell, action, spellMap, eventArgs)
	if state.Buff[spell.english] ~= nil then
		state.Buff[spell.english] = not spell.interrupted or buffactive[spell.english]
	end
end


-------------------------------------------------------------------------------------------------------------------
-- Customization hooks for idle and melee sets, after they've been automatically constructed.
-------------------------------------------------------------------------------------------------------------------

-- Custom spell mapping.
function job_get_spell_map(spell, default_spell_map)
	if spell.action_type == 'Magic' then
		if default_spell_map == 'Cure' or default_spell_map == 'Curaga' then
			if world.weather_element == 'Light' then
				return 'CureWithLightWeather'
			end
		elseif spell.skill == 'Enfeebling Magic' then
			if spell.type == 'WhiteMagic' then
				return 'MndEnfeebles'
			else
				return 'IntEnfeebles'
			end
		elseif spell.skill == 'Elemental Magic' then
			if info.low_nukes:contains(spell.english) then
				return 'LowTierNuke'
			elseif info.mid_nukes:contains(spell.english) then
				return 'MidTierNuke'
			elseif info.high_nukes:contains(spell.english) then
				return 'HighTierNuke'
			end
		end
	end
end

function customize_idle_set(idleSet)
	if state.Buff['Sublimation: Activated'] then
		if state.IdleMode == 'Normal' then
			idleSet = set_combine(idleSet, sets.buff.FullSublimation)
		elseif state.IdleMode == 'PDT' then
			idleSet = set_combine(idleSet, sets.buff.PDTSublimation)
		end
	end

	if player.mpp < 51 then
		idleSet = set_combine(idleSet, sets.latent_refresh)
	end

	return idleSet
end

-------------------------------------------------------------------------------------------------------------------
-- General hooks for change 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 state.Buff[buff] ~= nil then
		state.Buff[buff] = gain
	end

	if buff == "Sublimation: Activated" then
		handle_equipping_gear(player.status)
	end
end

-- Handle notifications of general user state change.
function job_state_change(stateField, newValue, oldValue)
	if stateField == 'OffenseMode' then
		if newValue == 'Normal' then
			disable('main','sub')
		else
			enable('main','sub')
		end
	elseif stateField == 'Reset' then
		if state.OffenseMode == 'None' then
			enable('main','sub')
		end
	end
end


-------------------------------------------------------------------------------------------------------------------
-- User code that supplements self-commands.
-------------------------------------------------------------------------------------------------------------------

-- Called for direct player commands.
function job_self_command(cmdParams, eventArgs)
	if cmdParams[1]:lower() == 'scholar' then
		handle_strategems(cmdParams)
		eventArgs.handled = true
	end
end


-- Called by the 'update' self-command.
function job_update(cmdParams, eventArgs)
	if cmdParams[1] == 'user' and not (buffactive['light arts']      or buffactive['dark arts'] or
					   buffactive['addendum: white'] or buffactive['addendum: black']) then
		if state.IdleMode == 'Stun' then
			send_command('@input /ja "Dark Arts" <me>')
		else
			send_command('@input /ja "Light Arts" <me>')
		end
	end

	update_active_strategems()
	update_sublimation()
end


-- Function to display the current relevant user state when doing an update.
-- Return true if display was handled, and you don't want the default info shown.
function display_current_job_state(eventArgs)
	local defenseString = ''
	if state.Defense.Active then
		local defMode = state.Defense.PhysicalMode
		if state.Defense.Type == 'Magical' then
			defMode = state.Defense.MagicalMode
		end

		defenseString = 'Defense: '..state.Defense.Type..' '..defMode..', '
	end

	local meleeString = ''
	if state.OffenseMode == 'Normal' then
		meleeString = 'Melee: Weapons locked, '
	end

	add_to_chat(122,'Casting ['..state.CastingMode..'], '..meleeString..'Idle ['..state.IdleMode..'], '..defenseString..
		'Kiting: '..on_off_names[state.Kiting])

	eventArgs.handled = true
end

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

-- Reset the state vars tracking strategems.
function update_active_strategems()
	state.Buff['Ebullience'] = buffactive['Ebullience'] or false
	state.Buff['Rapture'] = buffactive['Rapture'] or false
	state.Buff['Perpetuance'] = buffactive['Perpetuance'] or false
	state.Buff['Immanence'] = buffactive['Immanence'] or false
	state.Buff['Penury'] = buffactive['Penury'] or false
	state.Buff['Parsimony'] = buffactive['Parsimony'] or false
	state.Buff['Celerity'] = buffactive['Celerity'] or false
	state.Buff['Alacrity'] = buffactive['Alacrity'] or false

	state.Buff['Klimaform'] = buffactive['Klimaform'] or false
end

function update_sublimation()
	state.Buff['Sublimation: Activated'] = buffactive['Sublimation: Activated'] or false
end

-- Equip sets appropriate to the active buffs, relative to the spell being cast.
function apply_grimoire_bonuses(spell, action, spellMap)
	if state.Buff.Perpetuance and spell.type =='WhiteMagic' and spell.skill == 'Enhancing Magic' then
		equip(sets.buff['Perpetuance'])
	end
	if state.Buff.Rapture and (spellMap == 'Cure' or spellMap == 'Curaga') then
		equip(sets.buff['Rapture'])
	end
	if spell.skill == 'Elemental Magic' and spellMap ~= 'ElementalEnfeeble' then
		if state.Buff.Ebullience and spell.english ~= 'Impact' then
			equip(sets.buff['Ebullience'])
		end
		if state.Buff.Immanence then
			equip(sets.buff['Immanence'])
		end
		if state.Buff.Klimaform and spell.element == world.weather_element then
			equip(sets.buff['Klimaform'])
		end
	end

	if state.Buff.Penury then equip(sets.buff['Penury']) end
	if state.Buff.Parsimony then equip(sets.buff['Parsimony']) end
	if state.Buff.Celerity then equip(sets.buff['Celerity']) end
	if state.Buff.Alacrity then equip(sets.buff['Alacrity']) end
end


-- General handling of strategems in an Arts-agnostic way.
-- Format: gs c scholar <strategem>
function handle_strategems(cmdParams)
	-- cmdParams[1] == 'scholar'
	-- cmdParams[2] == strategem to use

	if not cmdParams[2] then
		add_to_chat(123,'Error: No strategem command given.')
		return
	end
	local strategem = cmdParams[2]:lower()

	if buffactive['light arts'] or buffactive['addendum: white'] then
		if strategem == 'cost' then
			send_command('@input /ja Penury <me>')
		elseif strategem == 'speed' then
			send_command('@input /ja Celerity <me>')
		elseif strategem == 'aoe' then
			send_command('@input /ja Accession <me>')
		elseif strategem == 'power' then
			send_command('@input /ja Rapture <me>')
		elseif strategem == 'duration' then
			send_command('@input /ja Perpetuance <me>')
		elseif strategem == 'accuracy' then
			send_command('@input /ja Altruism <me>')
		elseif strategem == 'enmity' then
			send_command('@input /ja Tranquility <me>')
		elseif strategem == 'skillchain' then
			add_to_chat(122,'Error: Light Arts does not have a skillchain strategem.')
		elseif strategem == 'addendum' then
			send_command('@input /ja "Addendum: White" <me>')
		else
			add_to_chat(123,'Error: Unknown strategem ['..strategem..']')
		end
	elseif buffactive['dark arts']  or buffactive['addendum: black'] then
		if strategem == 'cost' then
			send_command('@input /ja Parsimony <me>')
		elseif strategem == 'speed' then
			send_command('@input /ja Alacrity <me>')
		elseif strategem == 'aoe' then
			send_command('@input /ja Manifestation <me>')
		elseif strategem == 'power' then
			send_command('@input /ja Ebullience <me>')
		elseif strategem == 'duration' then
			add_to_chat(122,'Error: Dark Arts does not have a duration strategem.')
		elseif strategem == 'accuracy' then
			send_command('@input /ja Focalization <me>')
		elseif strategem == 'enmity' then
			send_command('@input /ja Equanimity <me>')
		elseif strategem == 'skillchain' then
			send_command('@input /ja Immanence <me>')
		elseif strategem == 'addendum' then
			send_command('@input /ja "Addendum: Black" <me>')
		else
			add_to_chat(123,'Error: Unknown strategem ['..strategem..']')
		end
	else
		add_to_chat(123,'No arts has been activated yet.')
	end
end


-- Gets the current number of available strategems based on the recast remaining
-- and the level of the sch.
function get_current_strategem_count()
	-- returns recast in seconds.
	local allRecasts = windower.ffxi.get_ability_recasts()
	local stratsRecast = allRecasts[231]

	local maxStrategems

	if player.main_job_level >= 90 then
		maxStrategems = 5
	elseif player.main_job_level >= 70 then
		maxStrategems = 4
	elseif player.main_job_level >= 50 then
		maxStrategems = 3
	elseif player.main_job_level >= 30 then
		maxStrategems = 2
	elseif player.main_job_level >= 10 then
		maxStrategems = 1
	else
		maxStrategems = 0
	end

	local fullRechargeTime = 4*60

	local currentCharges = math.floor(maxStrategems - maxStrategems * stratsRecast / fullRechargeTime)

	return currentCharges
end


-- Select default macro book on initial load or subjob change.
function select_default_macro_book()
	set_macro_page(1, 17)
end

 Asura.Zubis
Offline
サーバ: Asura
Game: FFXI
user: Zubis
Posts: 11
By Asura.Zubis 2014-07-21 19:04:06  
A question on the SMN GearSwap.

https://github.com/Kinematics/GearSwap-Jobs/blob/master/SMN.lua

The standard process for precast > midcast is for SMNs to equip gear to reduce BP timers, then equip gear to increase either Physical or Magic Damage and this GearSwap file takes care of that well.

However under Astral Conduit there is no need to use precast gear as BP timers are set to 0. From what I've observed is that this GearSwap set doesn't take this into effect, so if you spam the Blood Pact button it's equipping precast gear, then a second or two later it switches to midcast gear.

This means that if you're spamming the Blood Pact button there's a chance you'll have precast gear on while a Blood Pact is going off, reducing your damage considerably.

Am I correct in this or am I completely off?
 Sylph.Elgorian
Offline
サーバ: Sylph
Game: FFXI
user: Elgorian
Posts: 305
By Sylph.Elgorian 2014-07-22 01:39:52  

Am I doing the dark ring augment correctly? I'm not getting any errors but it won't equip.
 Odin.Quixacotl
Offline
サーバ: Odin
Game: FFXI
user: Quixacotl
Posts: 170
By Odin.Quixacotl 2014-07-22 02:05:15  
Asura.Zubis said: »
A question on the SMN GearSwap.

https://github.com/Kinematics/GearSwap-Jobs/blob/master/SMN.lua

The standard process for precast > midcast is for SMNs to equip gear to reduce BP timers, then equip gear to increase either Physical or Magic Damage and this GearSwap file takes care of that well.

However under Astral Conduit there is no need to use precast gear as BP timers are set to 0. From what I've observed is that this GearSwap set doesn't take this into effect, so if you spam the Blood Pact button it's equipping precast gear, then a second or two later it switches to midcast gear.

This means that if you're spamming the Blood Pact button there's a chance you'll have precast gear on while a Blood Pact is going off, reducing your damage considerably.

Am I correct in this or am I completely off?
You're right about Astral Conduit dropping BP recast timers to 0. It probably shouldn't make much difference whether or not BP delay gear is equipping at precast during AC since what matters most is what's equipped at PET BP midcast and that GS is faster than you can see.

You could probably do something like this... (I dunno jus' guessing til Mr. Motes himself comes up with a better idea.)
Code
function job_setup()
	state.Buff["Avatar's Favor"] = buffactive["Avatar's Favor"] or false
	state.Buff["Astral Conduit"] = buffactive["Astral Conduit"] or false
	...
	...
end

-- Define sets and vars used by this job file.
function init_gear_sets()
	--------------------------------------
	-- Precast Sets
	--------------------------------------
...
	-- Pact delay reduction gear
	sets.precast.BloodPactWard = {ammo="Seraphicaller",head="Convoker's Horn",body="Glyphic Doublet",hands="Glyphic Bracers",back="Samanisi Cape"}
	sets.precast.BloodPactWard["Astral Conduit"] = {} -- intentionally left null

	sets.precast.BloodPactRage = sets.precast.BloodPactWard
	sets.precast.BloodPactRage["Astral Conduit"] = {} -- intentionally left null
end

function job_precast(spell, action, spellMap, eventArgs)
	if state.Buff["Astral Conduit"] then
		sets.precast.BloodPactWard = sets.precast.BloodPactWard["Astral Conduit"]
		sets.precast.BloodPactRage = sets.precast.BloodPactRage["Astral Conduit"]
	end
end
 Asura.Zubis
Offline
サーバ: Asura
Game: FFXI
user: Zubis
Posts: 11
By Asura.Zubis 2014-07-22 03:22:25  
Thanks! I'll play around with it today and see how it works :)
 Odin.Quixacotl
Offline
サーバ: Odin
Game: FFXI
user: Quixacotl
Posts: 170
By Odin.Quixacotl 2014-07-22 03:29:02  
Sylph.Elgorian said: »

Am I doing the dark ring augment correctly? I'm not getting any errors but it won't equip.

Items with augments are done similar to this way (With the below example you can have 2 Dark Rings with different augments and each will properly equip at the right times.):
 Cerberus.Fthis
Offline
サーバ: Cerberus
Game: FFXI
user: Benjix
Posts: 54
By Cerberus.Fthis 2014-07-22 22:32:56  
Having an issue where my gearswap constantly (when ninja sub) casts and spams Utsusemi all by itself. This is annoying! If anyone can help, it would be much appreciated.

http://pastebin.com/cX7Wj42P
 Asura.Vafruvant
Offline
サーバ: Asura
Game: FFXI
user: Vafruvant
Posts: 363
By Asura.Vafruvant 2014-07-23 09:20:10  
Cerberus.Fthis said: »
Having an issue where my gearswap constantly (when ninja sub) casts and spams Utsusemi all by itself. This is annoying! If anyone can help, it would be much appreciated.

http://pastebin.com/cX7Wj42P
This has been a recurring problem for a number of people attempting to utilize any sort of automated spell or JA usage. Bard, in particular, has this problem with auto-Pianissimo. It doesn't happen all the time, though, and from what I've documented, it happens mostly in Delve. I may have seen it happen in an AA fight, but I don't think it did from when I've seen it. I don't personally use these, but I would be very interested to know how to remedy it so as to pass it on to a couple LS mates. Try to get it to happen a few more times and document the conditions, unless someone with a fix replies sooner :)
 Cerberus.Fthis
Offline
サーバ: Cerberus
Game: FFXI
user: Benjix
Posts: 54
By Cerberus.Fthis 2014-07-23 10:17:04  
Asura.Vafruvant said: »
Cerberus.Fthis said: »
Having an issue where my gearswap constantly (when ninja sub) casts and spams Utsusemi all by itself. This is annoying! If anyone can help, it would be much appreciated.

http://pastebin.com/cX7Wj42P
This has been a recurring problem for a number of people attempting to utilize any sort of automated spell or JA usage. Bard, in particular, has this problem with auto-Pianissimo. It doesn't happen all the time, though, and from what I've documented, it happens mostly in Delve. I may have seen it happen in an AA fight, but I don't think it did from when I've seen it. I don't personally use these, but I would be very interested to know how to remedy it so as to pass it on to a couple LS mates. Try to get it to happen a few more times and document the conditions, unless someone with a fix replies sooner :)

No doubt!
 Sylph.Elgorian
Offline
サーバ: Sylph
Game: FFXI
user: Elgorian
Posts: 305
By Sylph.Elgorian 2014-07-24 11:51:54  
Code
function buff_change(new,old)
    if buffactive['Crusade'] then
		send_command('@ input /echo >>> Crusade UP <<<')
	else
		send_command('@ input /echo >>> Crusade DOWN <<<')
	end
		
    if buffactive['Phalanx'] then
		send_command('@ input /echo >>> Phalanx UP <<<')
	else
		send_command('@ input /echo >>> Phalanx DOWN <<<')
	end
end


Is Crusade not recognized as a buff? It says DOWN even when active, but I do get the message when I cast / remove it.

EDIT: I guess I wanted ['Enmity Boost']
 Sylph.Elgorian
Offline
サーバ: Sylph
Game: FFXI
user: Elgorian
Posts: 305
By Sylph.Elgorian 2014-07-24 23:03:17  
Odin.Quixacotl said: »
Sylph.Elgorian said: »

Am I doing the dark ring augment correctly? I'm not getting any errors but it won't equip.

Items with augments are done similar to this way (With the below example you can have 2 Dark Rings with different augments and each will properly equip at the right times.):


Still having issues with this.

It's not equipping the dark ring at all this way. Not sure what / if anything I'm doing wrong. Ring is in the sets.TP.Tank
 Asura.Vafruvant
Offline
サーバ: Asura
Game: FFXI
user: Vafruvant
Posts: 363
By Asura.Vafruvant 2014-07-25 08:39:07  
Sylph.Elgorian said: »
Odin.Quixacotl said: »
Sylph.Elgorian said: »

Am I doing the dark ring augment correctly? I'm not getting any errors but it won't equip.

Items with augments are done similar to this way (With the below example you can have 2 Dark Rings with different augments and each will properly equip at the right times.):


Still having issues with this.

It's not equipping the dark ring at all this way. Not sure what / if anything I'm doing wrong. Ring is in the sets.TP.Tank
Just a quick observation, I think you're supposed to use ' not " for the augments.

i.e.
DarkRing.mdt = {name="Dark Ring",augments={'Physical Damage Taken -3%','Magic Damage Taken -5%'}}
 Asura.Vafruvant
Offline
サーバ: Asura
Game: FFXI
user: Vafruvant
Posts: 363
By Asura.Vafruvant 2014-07-25 09:07:25  
I've been having a slight hang up with my SAM GS. Mote's SAM lua is the basic foundation for mine, but I've modified it quite a bit. I am looking to have my Wakido Kote equip only when Hasso is active. I don't use them in idle and don't want them on when Seigan is active. I haven't been able to figure out what function that should go under.

Paste: http://pastebin.com/CkJnM2U4

I'm not sure if I'm just missing something that I cut out and it's a simple fix or if it's something more complex that I really messed up. Just for my mental sanity and a slight compulsory obsession with knowing exactly what everything in the file does, I tend to cut out a lot of stuff hoping that it's not a functionality I use on a regular basis; I fear this may have been one of those.

*Minor edit*: I know, there's some bind/unbind stuff at the beginning that's pretty messy. I have a basic copy/paste format I use for a lot of that and I didn't trim it down for this file yet.
 Sylph.Elgorian
Offline
サーバ: Sylph
Game: FFXI
user: Elgorian
Posts: 305
By Sylph.Elgorian 2014-07-25 12:19:25  
Asura.Vafruvant said: »
Sylph.Elgorian said: »
Odin.Quixacotl said: »
Sylph.Elgorian said: »

Am I doing the dark ring augment correctly? I'm not getting any errors but it won't equip.

Items with augments are done similar to this way (With the below example you can have 2 Dark Rings with different augments and each will properly equip at the right times.):


Still having issues with this.

It's not equipping the dark ring at all this way. Not sure what / if anything I'm doing wrong. Ring is in the sets.TP.Tank
Just a quick observation, I think you're supposed to use ' not " for the augments.

i.e.
DarkRing.mdt = {name="Dark Ring",augments={'Physical Damage Taken -3%','Magic Damage Taken -5%'}}

I've tried it both ways but I haven't had any luck equipping them. I tried moving them from wardrobe to inventory and vice versa but still no luck.
 Odin.Quixacotl
Offline
サーバ: Odin
Game: FFXI
user: Quixacotl
Posts: 170
By Odin.Quixacotl 2014-07-25 15:08:43  
Asura.Vafruvant said: »
Just a quick observation, I think you're supposed to use ' not " for the augments.

i.e.
DarkRing.mdt = {name="Dark Ring",augments={'Physical Damage Taken -3%','Magic Damage Taken -5%'}}
When it comes to strings in Gearswap, as are the augments, (') works the same as ("). Either can be used since there is no difference between the two as long as you follow syntax. "This works" and 'this works' but "This won't work'
Sylph.Elgorian said: »
Still having issues with this.

It's not equipping the dark ring at all this way. Not sure what / if anything I'm doing wrong. Ring is in the sets.TP.Tank
Sylph.Elgorian said: »
I've tried it both ways but I haven't had any luck equipping them. I tried moving them from wardrobe to inventory and vice versa but still no luck.
Is this your full lua or an edited version? It can't be complete because you're missing a few crucial function blocks and has nothing to change the status modes within {'DD','Tank','Turtle', 'Kite'}. Hence, your 'sets.TP.Tank' will never equip as this is written.

My Augmented gear (not just Dark Rings) equip just fine on my luas.

Try this: Make sure these lines are in your 'function get_sets()' block. Make sure the augments match your actual Dark Ring exactly.
Code
    DarkRing = {}
    DarkRing.mdt = {name="Dark Ring", augments={'Physical Damage Taken -3%','Magic Damage Taken -5%'}}

Next unequip your Dark Ring then type: //gs equip sets.TP.Tank

Be aware that commands are case sensitive. Typing; //gs equip sets.tp.tank won't work.

If it still doesn't equip your Dark Ring then it's likely there's a discrepancy or mismatch between your augments and your lua.
 Fenrir.Motenten
VIP
Offline
サーバ: Fenrir
Game: FFXI
user: Motenten
Posts: 764
By Fenrir.Motenten 2014-07-25 16:21:21  
@Elgorian:

When setting things up to use an augmented item, equip the item and use the "//gs export" command. Look at the exported file (under GearSwap/data/export) to see how GearSwap expects the augments to be formatted. Note that it often leaves a trailing comma at the end of the augment list, which you can remove if you want to tidy it up a little.

The Dark Rings you've defined are:
Code
DarkRing.pdt = {name="Dark Ring",augments={"Magic Damage Taken -3%","Physical Damage Taken -6%","Breath Damage Taken -6%"}}
DarkRing.mdt = {name="Dark Ring",augments={"Physical Damage Taken -3%","Magic Damage Taken -5%"}}


The Dark Rings I have in mine are defined as:
Code
gear.DarkRing.physical = {name="Dark Ring",augments={'Magic dmg. taken -3%','Spell interruption rate down -5%','Phys. dmg. taken -6%'}}
gear.DarkRing.magical = {name="Dark Ring", augments={'Magic dmg. taken -6%','Breath dmg. taken -5%'}}


As you can see, mine use an abbreviated form, since I copied them from the //gs export result. That's most likely what your problem is.
 Fenrir.Motenten
VIP
Offline
サーバ: Fenrir
Game: FFXI
user: Motenten
Posts: 764
By Fenrir.Motenten 2014-07-25 16:26:53  
Asura.Vafruvant said: »
I am looking to have my Wakido Kote equip only when Hasso is active.

Modify your melee set in the customize_melee_set function. You can look in my Nin lua for a usage example.

If you ever want to review all the possible functions usable with my job luas, check the Template.lua file in the repository.
 Cerberus.Draupnir
Offline
サーバ: Cerberus
Game: FFXI
user: Draupnir
Posts: 2119
By Cerberus.Draupnir 2014-07-25 17:03:54  
After returning and re-installing everything last night, I'm sitting down today to set up gearswap for my blu however I keep getting this error when trying to reload:

.

This happens with a completely fresh install of the addon and with nothing added to the data file. Any ideas?
 Fenrir.Motenten
VIP
Offline
サーバ: Fenrir
Game: FFXI
user: Motenten
Posts: 764
By Fenrir.Motenten 2014-07-25 17:22:33  
Sounds like you're missing the addons/libs/files.lua library. Don't know how you managed that, but you can grab a new copy from the Windower repository.
 Cerberus.Draupnir
Offline
サーバ: Cerberus
Game: FFXI
user: Draupnir
Posts: 2119
By Cerberus.Draupnir 2014-07-25 17:27:38  
Where do I put this? In Windower4\addons I only have Gearswap, so would I just download the entire libs repository and put it in the addons?
Offline
Posts: 573
By lhova 2014-07-25 17:28:19  
So do you guys think the Aug update will be a nice compliment to gearswap or the beginning of its end? Being a console player I'm really looking forward to the update.
 Fenrir.Motenten
VIP
Offline
サーバ: Fenrir
Game: FFXI
user: Motenten
Posts: 764
By Fenrir.Motenten 2014-07-25 18:32:56  
Cerberus.Draupnir said: »
In Windower4\addons I only have Gearswap

If you're missing the entire libs folder, I'd say your install is completely broken. Start over from scratch.
 Fenrir.Motenten
VIP
Offline
サーバ: Fenrir
Game: FFXI
user: Motenten
Posts: 764
By Fenrir.Motenten 2014-07-25 18:35:19  
lhova said: »
So do you guys think the Aug update will be a nice compliment to gearswap or the beginning of its end? Being a console player I'm really looking forward to the update.

It should have almost no effect on GearSwap use, though it looks like a handy tool for non-GearSwap users. However it will take some thought to get the best use out of it for players with multiple jobs, since it seems you can only set up 20 gear sets, total. I suspect most people aren't going to put enough thought into it to really maximize its potential.
 Sylph.Elgorian
Offline
サーバ: Sylph
Game: FFXI
user: Elgorian
Posts: 305
By Sylph.Elgorian 2014-07-25 19:17:50  
Fenrir.Motenten said: »
@Elgorian:

When setting things up to use an augmented item, equip the item and use the "//gs export" command. Look at the exported file (under GearSwap/data/export) to see how GearSwap expects the augments to be formatted. Note that it often leaves a trailing comma at the end of the augment list, which you can remove if you want to tidy it up a little.

The Dark Rings you've defined are:
Code
DarkRing.pdt = {name="Dark Ring",augments={"Magic Damage Taken -3%","Physical Damage Taken -6%","Breath Damage Taken -6%"}}
DarkRing.mdt = {name="Dark Ring",augments={"Physical Damage Taken -3%","Magic Damage Taken -5%"}}


The Dark Rings I have in mine are defined as:
Code
gear.DarkRing.physical = {name="Dark Ring",augments={'Magic dmg. taken -3%','Spell interruption rate down -5%','Phys. dmg. taken -6%'}}
gear.DarkRing.magical = {name="Dark Ring", augments={'Magic dmg. taken -6%','Breath dmg. taken -5%'}}


As you can see, mine use an abbreviated form, since I copied them from the //gs export result. That's most likely what your problem is.

Thanks. The export helped! Working now.
 Asura.Vafruvant
Offline
サーバ: Asura
Game: FFXI
user: Vafruvant
Posts: 363
By Asura.Vafruvant 2014-07-26 02:50:12  
Fenrir.Motenten said: »
Asura.Vafruvant said: »
I am looking to have my Wakido Kote equip only when Hasso is active.

Modify your melee set in the customize_melee_set function. You can look in my Nin lua for a usage example.

If you ever want to review all the possible functions usable with my job luas, check the Template.lua file in the repository.
Perfect, thank you again! You always come through. I'll definitely check out that template.
 Sylph.Elgorian
Offline
サーバ: Sylph
Game: FFXI
user: Elgorian
Posts: 305
By Sylph.Elgorian 2014-07-28 09:16:39  
How would I differentiate between night/day?

Ex: Serpentes Boots
 Odin.Quixacotl
Offline
サーバ: Odin
Game: FFXI
user: Quixacotl
Posts: 170
By Odin.Quixacotl 2014-07-28 16:30:31  
Sylph.Elgorian said: »
How would I differentiate between night/day?

Ex: Serpentes Boots
If the Gearswap Global Variables list is correct and world.time is in hours.minutes format then you'd want something like this:
Code
if world.time >= 18.00 or world.time < 6.00 then -- night time
elseif world.time >= 6.00 or world.time < 18.00 then -- day time
end

I haven't tested this so I could be wrong.
 Fenrir.Motenten
VIP
Offline
サーバ: Fenrir
Game: FFXI
user: Motenten
Posts: 764
By Fenrir.Motenten 2014-07-28 17:25:30  
That's not correct. world.time is the number of minutes since midnight. So more like:
Code
if world.time >= 6*60 and world.time < 18*60 then
  -- daytime
else
  -- nighttime
end
First Page 2 3 ... 26 27 28 ... 181 182 183
Log in to post.