Jump to content


Photo

mp loss between changing sets


    3 replies to this topic

    #1 Gukai

    Gukai

      Advanced Member

    • Members
    • PipPipPip
    • 95 posts

      Posted 23 May 2016 - 03:08 PM

      Hi

      I spent a long time meticulously setting up my sets so before i bury myself in trying to figure out what happened I thought I'd check here first to see if anyone would know right away.

       

      For BLM, the Death set requires a lot of MP, so when I change into precast (fastcast) sets for anything (Death, stoneskin, cures, etc) I made sure those gears changes included MP-laden gear to keep my MP high.  However when I did the actual spell casting I saw my MP drop 300+ which should not have happened.

       

      My thought is that even though my sets keep my MP high, there is that split-second where the idle gear comes off and the precast (and then midcast) gear comes on, and it's in that split second of changing that i'm in-between gears and thats what causes my total MP to dip.  

       

      Can anyone confirm this?  Is I'm right is there any way around this?

       

      Thanks!

       

      Edited: added file



      #2 sdahlka

      sdahlka

        Advanced Member

      • Members
      • PipPipPip
      • 324 posts

        Posted 24 May 2016 - 04:17 AM

        with out the code your using we can tell you whats going on



        #3 Gukai

        Gukai

          Advanced Member

        • Members
        • PipPipPip
        • 95 posts

          Posted 24 May 2016 - 06:46 AM

          Added file below (wouldnt let me do an attachment, sorry).  Thank you.

           

          function get_sets()
          -------------------------------------------
          	-- aftercast for returning to TP and Idle sets
          	-- the 'self command' area will change the set defined as aftercast.TP
          -------------------------------------------		
          	sets.aftercast = {}
          	sets.engaged = {}
          	sets.precast = {}
          	sets.midcast = {}
          	
          	m_typeIndex = 1
          	m_typeArray = {'normal','MB','Death'}
          --	Not doing an ACC build yet, most nuking gear is already high acc
          --	m_accIndex = 1
          --	m_accArray = {'normal','highAcc'}
          	messageColor = 140
          	
          	--The index keeps track of where you are in the array. We will use these to "index" our table. 
          	--For example, m_typeArray[1] would return "normal" while m_typeArray[2] would return "MB". 
          	--As it is now, m_typeArray[m_typeIndex] would return "normal".
          	--Controlling this is done in the self_command
          		
          --	Spellmaps create a table by which you can take multiple spells (such as Cure, Cure II, etc) and define them
          --	with a single name such as 'cure'.  This allows you the flexibility to define a single gearset that is activated
          --	for the list of spells you map, rather than defining a single gearset for each spell.  
          
          	spell_map = {}
          	
          	spell_map.cure = S{"Cure","Cure II","Cure III","Cure IV","Cure V","Cure VI"}
          	spell_map.curaga = S{"Curaga","Curaga II","Curaga III","Curaga IV","Curaga V"}
          	spell_map.drain = S{"Drain","Aspir","Aspir II","Aspir III"}
          	spell_map.protect = S{"Protect","Protect II","Protect III","Protect IV","Protect V",
          	"Protectra","Protectra II","Protectra III","Protectra IV","Protectra V",
          	"Shell","Shell II","Shell III","Shell IV","Shell V",
          	"Shellra","Shellra II","Shellra III","Shellra IV","Shellra V",}
          	spell_map.sleep = S{"Sleep","Sleep II","Sleepga","Sleepga II"}
          
          
          -------------------------------------------
          -- The outermost table has to be named "sets", but
          -- otherwise there are no restrictions.
          -------------------------------------------	
          
          	sets.aftercast.Idle = {
          		main="Lathi",
          		sub="Niobid Strap",
          		ammo="Psilomene",
          		neck="Sanctity Necklace",
          		lear="Etiolation Earring",
          		rear="Evans Earring",
          		body="Respite Cloak",
          		hands="Otomi Gloves",
          		lring="Defending Ring",	
          		rring="Shneddick Ring",
          		back="Bane Cape",
          		waist="Belisama's Rope +1",
          		legs="Nares Trews",
          		feet="Merlinic Crackows"}
          		--mp=706
          		
          -------------------------------------------
          	-- WS sets
          	-- So it's easy to determine if new obtained gear can replace anything, listed str/mnd/int stats per piece	
          -------------------------------------------
          	sets.precast.Myrkr = set_combine(sets.aftercast.Idle, {
          		rear="Moonshade Earring",
          		lring="Mephitas's Ring",
          		rring="Mephitas's Ring +1",})
          		
          -------------------------------------------
          	-- Fastcast & Precast sets:  
          -------------------------------------------	
          	sets.precast.Fastcast = {
          		ammo="Impatiens",
          		head="Nahtirah Hat",
          		neck="Voltsurge Torque",
          		rear="Loquac. Earring",
          		body="Merlinic Jubbah",
          		lring="Lebeche Ring",
          		rring="Mephitas's Ring +1",
          		waist="Witful Belt"}
          		
          	sets.precast.Death = {
          		ammo="Impatiens",
          		neck="Voltsurge Torque",
          		rear="Loquac. Earring",
          		lring="Lebeche Ring",
          		rring="Mephitas's Ring +1",
          		waist="Witful Belt"}
          	
          	sets.precast.Impact = set_combine(sets.precast['Fastcast'], {
          		body="Twilight Cloak"})
          	
          	sets.precast['Enhancing Magic'] = {
          		ammo="Impatiens",
          		neck="Voltsurge Torque",
          		rear="Loquac. Earring",
          		lring="Lebeche Ring",
          		rring="Mephitas's Ring +1",
          		waist="Siegel Sash"}
          	
          	sets.precast.Stoneskin = {
          		head="Umuthi Hat",
          		hands="Carapacho Cuffs",
          		lring="Lebeche Ring",
          		rring="Mephitas's Ring +1",
          		waist="Siegel Sash",
          		legs="Doyen Pants"}
          	
          	sets.precast['Healing Magic'] = {
          		head="Pixie Hairpin +1",
          		neck="Voltsurge Torque",
          		rear="Mendi. Earring",
          		body="Heka's Kalasiris",
          		lring="Lebeche Ring",
          		rring="Mephitas's Ring +1",
          		back="Pahtli Cape",
          		legs="Doyen Pants"}
          	
          	sets.precast['Elemental Magic'] = set_combine(sets.precast.Fastcast, {
          		head="Wicce Petasos +1",
          		neck="Stoicheion Medal",
          		rear="Loquac. Earring",
          		body="Merlinic Jubbah",
          		lring="Lebeche Ring",
          		rring="Mephitas's Ring +1",
          		waist="Witful Belt",
          		feet="Spae. Sabots +1"})
          	
          --dont have:  divine, enfeebling, dark, use fastcast
          
          -------------------------------------------
          	-- Spell (midcast) sets:  
          -------------------------------------------	
          	sets.midcast['Elemental Magic'] = {
          		main="Lathi",
          		sub="Niobid Strap",
          		ammo="Pemphredo Tathlum",
          		head="Merlinic Hood",
          		neck="Sanctity Necklace",
          		lear="Friomisi Earring",
          		rear="Barkaro. Earring",
          		body="Merlinic Jubbah",
          		hands="Wicce Gloves +1",  --Needs HQ Merlinic Gages
          		lring="Strendu Ring",  --Needs Shiva+1 for both rings
          		rring="Acumen Ring",
          		back="Taranus's Cape",
          		waist="Refoccilation Stone",
          		legs="Merlinic Shalwar",
          		feet="Merlinic Crackows"}
          		--mp=327
          		
          	sets.midcast['Elemental Magic'].MB = set_combine(sets.midcast['Elemental Magic'], {
          		neck="Mizu. Kubikazari",
          		back="Taranus's Cape"})
          		
          	sets.midcast.Death = {
          		main="Lathi",
          		sub="Niobid Strap",
          		ammo="Psilomene",
          		head="Pixie Hairpin +1",
          		neck="Sanctity Necklace",
          		lear="Friomisi Earring",
          		rear="Barkaro. Earring",
          		body="Merlinic Jubbah",
          		hands="Wicce Gloves +1",  --Needs HQ Amalric Gages
          		lring="Mephitas's Ring +1",
          		rring="Archon Ring",
          		back="Bane Cape",
          		waist="Refoccilation Stone",
          		legs="Merlinic Shalwar",
          		feet="Merlinic Crackows"}
          	
          	sets.midcast.Death.MB = set_combine(sets.midcast.Death, {
          		neck="Mizu. Kubikazari",
          		waist="Hachirin-No-Obi"})
          
          	sets.midcast.Impact = set_combine(sets.midcast['Elemental Magic'], {
          		body="Twilight Cloak"})
          	
          	sets.midcast['Dark Magic'] = set_combine(sets.midcast['Elemental Magic'], {
          		ammo="Pemphredo Tathlum",
          		head="Pixie Hairpin +1",
          		hands="Arch. Gloves +1",
          		rring="Archon Ring",
          		legs="Spae. Tonban +1",
          		feet="Wicce Sabots +1"})
          		--mp=440
          	
          	sets.midcast['Dark Magic'].MB = set_combine(sets.midcast['Elemental Magic'], {
          		ammo="Pemphredo Tathlum",
          		head="Pixie Hairpin +1",
          		lear="Etiolation Earring",
          		hands="Arch. Gloves +1",
          		lring="Mephitas's Ring +1",
          		rring="Archon Ring",
          		legs="Spae. Tonban +1",
          		feet="Wicce Sabots +1"})
          		--mp=440+110+50=600
          		
          	sets.midcast.drain = set_combine(sets.midcast['Dark Magic'], {
          		feet="Merlinic Crackows"})
          	
          	sets.midcast.drain.MB = set_combine(sets.midcast['Dark Magic'].MB, {
          		feet="Merlinic Crackows"})
          		
          	sets.midcast.weather = {waist="Hachirin-No-Obi"}
          	
          	sets.midcast['Enfeebling Magic'] = {
          		main="Lathi",
          		sub="Niobid Strap",
          		ammo="Pemphredo Tathlum",
          		head="Befouled Crown",
          		neck="Sanctity Necklace",
          		lear="Enchntr. Earring +1",
          		rear="Barkaro. Earring",
          		body="Spae. Coat +1",
          		hands="Lurid Mitts",
          		lring="Mephitas's Ring +1",
          		rring="Mephitas's Ring",
          		back="Bane Cape",
          		waist="Rumination Sash",
          		legs="Portent Pants",
          		feet="Spae. Sabots +1"}
          		--mp=542
          	
          	sets.midcast['Enhancing Magic'] = {
          		main="Lathi",
          		sub="Niobid Strap",
          		ammo="Psilomene",
          		head="Befouled Crown",
          		neck="Sanctity Necklace",
          		lear="Etiolation Earring",
          		rear="Evans Earring",
          		body="Merlinic Jubbah",
          		hands="Otomi Gloves",
          		lring="Mephitas's Ring +1",
          		rring="Mephitas's Ring",
          		back="Bane Cape",
          		waist="Belisama's Rope +1",
          		legs="Portent Pants",
          		feet="Merlinic Crackows"}
          		--mp=846
          		
          	sets.midcast.Stoneskin = set_combine(sets.midcast['Enhancing Magic'], {
          		neck="Stone Gorget",
          		waist="Siegel Sash",
          		legs="Haven Hose"})
          		--mp=846-120=726
          		
          	sets.midcast['Healing Magic'] = { 
          		--33% potency, this is taking into consideration that blm's mostly cast single tier cure spells
          		-- commented stats are potency/skill/mnd (ignoring vitality)
          		main="Lathi",
          		sub="Niobid Strap",
          		ammo="Mana Ampulla", --0/0/3
          		head="Spae. Petasos +1", --0/0/24
          		neck="Phalaina Locket", --4/0/3
          		lear="Gifted Earring",
          		rear="Mendi. Earring", --5/0/0
          		body="Heka's Kalasiris", --15/0/17
          		hands="Wicce Gloves +1", --0/0/32
          		lring="Lebeche Ring", --3/0/0
          		rring="Sirona's Ring", --0/10/3
          		back="Tempered Cape +1", --6/8/0
          		waist="Korin Obi", --0/0/5
          		legs="Spae. Tonban +1", --0/0/24
          		feet="Rubeus Boots"} --0/10/0
          	
          	sets.midcast.protect = set_combine(sets.midcast['Healing Magic'], {
          		rring="Sheltered Ring"})
          		
          	sets.midcast.Cursna = set_combine(sets.precast.Fastcast, {
          		rear="Enchntr. Earring +1",
          		lring="Ephedra Ring", --0/7/0
          		rring="Sirona's Ring", --0/10/3
          		feet="Rubeus Boots"}) --0/10/0
          		
              sets.midcast['Divine Magic'] = set_combine(sets.midcast['Healing Magic'], {
          		ammo="Pemphredo Tathlum",})
          
          	
          -------------------------------------------
          	-- Job Ability sets
          -------------------------------------------
          		
          	sets.precast["Manafont"] = {body="Arch. Coat"}
          	--sets.precast["Elemental Seal"] = {main="Laevateinn"}
          	sets.precast["Mana Wall"] = {feet="Wicce Sabots +1"}
          	
          	send_command('input /macro book 4')
          end
          
          function precast(spell,action)
          	if spell.action_type == 'Magic' or spell.type == 'Ninjutsu' then
          		equipSet = sets.precast
          		if equipSet[spell.english] then
          			equipSet = equipSet[spell.english]
          		elseif equipSet[spell.skill] then
          			equipSet = equipSet[spell.skill]
                  else equip(sets.precast.Fastcast)
                  end
          		if spell.element == world.weather_element or spell.element == world.day_element then
          			equip(sets.midcast.weather)
                  end
          	elseif spell.type == 'WeaponSkill' then
          		equip(sets.precast.Myrkr)
          	end
          	equip(equipSet)
          end
          
          function midcast(spell,action)
          	if spell.action_type == 'Magic' then
          		equipSet = sets.midcast
          		if equipSet[spell.english] then
          			equipSet = equipSet[spell.english]
          		elseif equipSet[get_spell_map(spell)] then  
          			equipSet = equipSet[get_spell_map(spell)]
          		elseif equipSet[spell.skill] then
          			equipSet = equipSet[spell.skill]
          		end
          		if m_typeArray and equipSet[m_typeArray[m_typeIndex]] then
          			equipSet = equipSet[m_typeArray[m_typeIndex]]
          		end
          --		if m_accArray and equipSet[m_accArray[m_accIndex]] then
          --			equipSet = equipSet[m_accArray[m_accIndex]]
          --		end 
          		if spell.element == world.weather_element or spell.element == world.day_element then
          			equipSet = set_combine(equipSet,sets.midcast.weather)
          		end
          		equip(equipSet)
          	end
          end
          
          --I think this needs modified, not sure though.  being 'engaged' really isnt relevant, but i do need to go back to idle after casting and ws'ing
          function aftercast(spell)
          	if player.status == 'Engaged' then
          		equip(sets.aftercast.TP)
          	else
          		equip(sets.aftercast.Idle)
          	end
          end
          
          --because i removed my resting set (too much mp loss) and my engaged set (too much mp loss), i think i can delete my status change.
          --please confirm
          function status_change(new,old)
          	if new == 'Idle' then
          		equip(sets.aftercast.Idle)
          	elseif new == 'Resting' then
          		equip(sets.aftercast.Resting)
          	elseif new == 'Engaged' then
          		equip(sets.aftercast.TP)
          	end
          end
          
          function message(message)
          	add_to_chat(messageColor,message)
          end
          
          function self_command(command)  
          --This controls the m_type in the get_sets area.  We need a way to change the number in it
          --Typing "//gs c macc" would change the acc type between 'normal' and 'highacc', and typing "//gs c mtype" does the same for 'normal' and 'MB'
          	if command == 'mtype' then
          		m_typeIndex=(m_typeIndex % #m_typeArray) + 1
          		message('M Set changed to '..m_typeArray[m_typeIndex])
          	elseif command == 'macc' then
          		m_accIndex=(m_accIndex% #m_accArray) + 1
          		message('M Acc changed to '..m_accArray[m_accIndex])
          	end
          end
          
          


          #4 sdahlka

          sdahlka

            Advanced Member

          • Members
          • PipPipPip
          • 324 posts

            Posted 24 May 2016 - 08:45 AM

            --how to do dynamic gear equips
            1. build your sets
                --the basic gear you always want when engaged no mater the spell
                sets.Engaged = {
                    head="Tema. Headband",
                    body="Temachtiani Shirt",
                    hands="Temachtiani Gloves",
                    legs="Temachtiani Pants",
                    feet="Temachtiani Boots",
                    neck={ name="Wivre Gorget", augments={'"Subtle Blow"+4','MP+3',}},
                    waist="Mrc.Cpt. Belt",
                    left_ear="Ardent Earring",
                    right_ear="Liminus Earring",
                    left_ring="Rajas Ring",
                    right_ring="Prouesse Ring",
                    back="Jester's Cape",}
                --the gear you want to add/change when spell is Death
                sets.precast = {}
                sets.precast.Death = {
                    ammo="Impatiens",
                    neck="Voltsurge Torque",
                    right_ear="Loquac. Earring",
                    left_ring="Lebeche Ring",
                    right_ring="Mephitas's Ring +1",
                    waist="Witful Belt",}
                --the gear you want to add/change when spell.element == world.weather_element or spell.element == world.day_element
                sets.weather = {waist="Hachirin-No-Obi",}
            
            2. start with your basic gear you want to always have
                local gear_set = sets.Engaged --base set for precast
            3. besed on rules you change gear in the above set
                if sets.precast[spell.name] then
                    gear_set = set_combine(gear_set, sets.precast[spell.name])--replaces existing gear in sets.precast(based on slot) that exists in set sets.precast[spell.name]
                end
                if spell.element == world.weather_element or spell.element == world.day_element then
                    gear_set = set_combine(gear_set, sets.midcast.weather)--replaces existing gear in sets.precast(based on slot) that exists in set sets.midcast.weather
                end
            4. equip the built gearset
                equip(gear_set)
                
            5. because of the rules aboveyou will equip this
                when casting Death and spell.element == world.weather_element or spell.element == world.day_element
                    (slot)=(item)
                    head="Tema. Headband"
                    body="Temachtiani Shirt"
                    hands="Temachtiani Gloves"
                    legs="Temachtiani Pants"
                    feet="Temachtiani Boots"
                    neck="Voltsurge Torque"
                    waist="Hachirin-No-Obi"
                    left_ear="Ardent Earring"
                    right_ear="Loquac. Earring"
                    left_ring="Lebeche Ring"
                    right_ring="Mephitas's Ring +1"
                    back="Jester's Cape"
                    ammo="Impatiens"
                when casting Death and not spell.element == world.weather_element or spell.element == world.day_element
                    (slot)=(item)
                    head="Tema. Headband"
                    body="Temachtiani Shirt"
                    hands="Temachtiani Gloves"
                    legs="Temachtiani Pants"
                    feet="Temachtiani Boots"
                    neck="Voltsurge Torque"
                    waist="Witful Belt"
                    left_ear="Ardent Earring"
                    right_ear="Loquac. Earring"
                    left_ring="Lebeche Ring"
                    right_ring="Mephitas's Ring +1"
                    back="Jester's Cape"
                    ammo="Impatiens"
                when not casting Death and spell.element == world.weather_element or spell.element == world.day_element
                    (slot)=(item)
                    head="Tema. Headband"
                    body="Temachtiani Shirt"
                    hands="Temachtiani Gloves"
                    legs="Temachtiani Pants"
                    feet="Temachtiani Boots"
                    neck="Wivre Gorget"
                    waist="Hachirin-No-Obi"
                    left_ear="Ardent Earring"
                    right_ear="Liminus Earring"
                    left_ring="Rajas Ring"
                    right_ring="Prouesse Ring"
                    back="Jester's Cape"
                when not casting Death and not spell.element == world.weather_element or spell.element == world.day_element
                    (slot)=(item)
                    head="Tema. Headband"
                    body="Temachtiani Shirt"
                    hands="Temachtiani Gloves"
                    legs="Temachtiani Pants"
                    feet="Temachtiani Boots"
                    neck="Wivre Gorget"
                    waist="Mrc.Cpt. Belt"
                    left_ear="Ardent Earring"
                    right_ear="Liminus Earring"
                    left_ring="Rajas Ring"
                    right_ring="Prouesse Ring"
                    back="Jester's Cape"

                    
            this i beleve is where you problem lies but i cant test that theory




            1 user(s) are reading this topic

            0 members, 1 guests, 0 anonymous users