|
Kaboom! A Guide for Black Mage
Lakshmi.Byrth
VIP
Server: Lakshmi
Game: FFXI
Posts: 6184
By Lakshmi.Byrth 2016-01-04 09:19:37
Did you do this test on Lightsday or something?
SCH gets no MDMG from Gifts, but they do get 36 MAB.
50*1.36 (36 MAB from SCH Gifts) = 68 Naked
94/1.68 (36 MAB from Gifts + 32 from Feet) = 56 base damage
104/1.68 (36 MAB from Gifts + 32 from Feet and Lightsday Penalty) = 62 base damage (no match)
94/61 = 1.55 MAB (19 MAB implied from feet if there's 11 MDMG)
94/70 = 1.34 or 1.35 MAB (-1 or -2 MAB from feet if there's 20 MDMG)
Neither set of feet stats seem correct.
Lakshmi.Byrth
VIP
Server: Lakshmi
Game: FFXI
Posts: 6184
By Lakshmi.Byrth 2016-01-04 09:29:31
Just tested using Ghastly Tathlum +1 (11 MDMG) and it didn't affect Bio II damage at all. This implies that Amalric feet +1 are giving 52 MAB (32 + 20 from set bonus) even without any other pieces of the set.
[+]
Server: Asura
Game: FFXI
Posts: 1397
By Asura.Toralin 2016-01-04 09:29:48
Hmm just tested again(lightningday)
Same results
Naked 68
Boots +1 94 (80mp/20macc+20mab path)
Server: Odin
Game: FFXI
Posts: 2255
By Odin.Llewelyn 2016-01-04 09:30:12
Forgetting about the probable 20 additional mab from feet augment?
Server: Asura
Game: FFXI
Posts: 1397
By Asura.Toralin 2016-01-04 09:30:34
Are you maybe not adding in the augments?
Lakshmi.Byrth
VIP
Server: Lakshmi
Game: FFXI
Posts: 6184
By Lakshmi.Byrth 2016-01-04 09:30:40
Ah, 20 MAB from the Augment. Well, nevermind then.
Also, apparently Bio doesn't work for testing m.dmg.
I bet Dia is the same, which means that I don't know of any spells affected by magic damage that aren't affected by base stats.
You could try using Stone with an INT build (~180 should be enough for level 0 mobs), but you'd need to verify that sources of Magic Damage still affect base damage in that case (Zuu grip or something).
Server: Asura
Game: FFXI
Posts: 334
By Asura.Krystela 2016-01-05 09:51:41
Thank you Ramsus for the updated sets.
I have to be honest I am a bit at lost with the merlinic augments, which augments does your sets are based onto?
click on the item set you're interested in, it usually has the assumptions listed there.
Clicking the item didn't worked but clicking the set did, thanks!
I should of thought about that lol
Thanks again for the contribution.
Server: Ragnarok
Game: FFXI
Posts: 115
By Ragnarok.Forsakengriever 2016-01-05 20:37:23
personally I think hmp is a useless set because if you run out of MP on blm with all the tools available for MP recovery, you're probably doing something wrong . . . although if you want me to be useful, it might be something like this?
ItemSet 340819
Do you know off the top of your head how many refresh would end up equaling heal while resting? Like which is better than the other? I know I saw it in one of the mage guides...I'll have to hunt it down. Might have been whm or smn.
[+]
Fenrir.Ramzus
Server: Fenrir
Game: FFXI
Posts: 1387
By Fenrir.Ramzus 2016-01-05 21:22:06
Refresh x3.3 = amount gained in 1 tic
Bismarck.Speedyjim
Server: Bismarck
Game: FFXI
Posts: 516
By Bismarck.Speedyjim 2016-01-06 00:19:33
How does GS differentiate between normal and death aspir?
Fenrir.Snaps
Server: Fenrir
Game: FFXI
Posts: 1139
By Fenrir.Snaps 2016-01-06 00:44:46
You can use a different casting mode.
Bismarck.Speedyjim
Server: Bismarck
Game: FFXI
Posts: 516
By Bismarck.Speedyjim 2016-01-06 00:48:39
Hmmm, how would you code that?
Would this work? Code state.CastingMode:options('Normal', 'Resistant', 'AF', 'Proc', 'Death')
[+]
Fenrir.Snaps
Server: Fenrir
Game: FFXI
Posts: 1139
By Fenrir.Snaps 2016-01-06 00:59:17
I haven't actually tried this yet, but I believe you could also make a job_post_precast callback to check on your MP after changing all of your precast gear. You could use this to determine whether or not to use a low MP or high MP Aspir set. I'm not sure how useful this might be though given that you can often burst 2k+ MP using a non-optimal Aspir set. In those cases, you'd want to be in your high MP sets. The multipliers for Aspir/Aspir II/Aspir III are different (I don't even know what Aspir III is), so that's another factor to consider. I guess what I'm getting at is that finding the optimal solution for Aspir is probably somewhat difficult if you need to worry about high MP issues.
Fenrir.Snaps
Server: Fenrir
Game: FFXI
Posts: 1139
By Fenrir.Snaps 2016-01-06 01:01:02
That will probably work although I recommend using something like 'HighMP' as your casting mode instead of 'Death' given that Death is also the name of a spell GS will search for sometimes.
Bismarck.Speedyjim
Server: Bismarck
Game: FFXI
Posts: 516
By Bismarck.Speedyjim 2016-01-06 01:12:30
I will try that, thank you!
Server: Sylph
Game: FFXI
Posts: 465
By Sylph.Dravidian 2016-01-06 01:47:06
This is how I have mine set up if it helps. I have a toggle to change idle sets from a normal idle set to a death idle set. I then have a check for aspir in precast and midcast to see if my idle set is death. Currently my index for my idle death is 2, so this is what my midcast looks like for example for aspir.
Code elseif spell.english:startswith('Aspir') then
if Idle_Index == 2 then
equip(sets.midcast.deathaspir)
else
equip(sets.midcast.aspir)
end
You could of course also just do a toggle like you do a toggle with everything else, I just found this the most simple route for me personally, just have everything switch based off my idle set.
[+]
Bismarck.Speedyjim
Server: Bismarck
Game: FFXI
Posts: 516
By Bismarck.Speedyjim 2016-01-06 01:50:31
This is how I have mine set up if it helps. I have a toggle to change idle sets from a normal idle set to a death idle set. I then have a check for aspir in precast and midcast to see if my idle set is death. Currently my index for my idle death is 2, so this is what my midcast looks like for example for aspir.
Code elseif spell.english:startswith('Aspir') then
if Idle_Index == 2 then
equip(sets.midcast.deathaspir)
else
equip(sets.midcast.aspir)
end
You could of course also just do a toggle like you do a toggle with everything else, I just found this the most simple route for me personally, just have everything switch based off my idle set. May I have your lua to compare stuffs?
Server: Sylph
Game: FFXI
Posts: 465
By Sylph.Dravidian 2016-01-06 01:54:35
Heh, I may not be the best choice for a lua atm. Just started BLM recently and my lua is only like half down, if even that and as odd as it sounds, I would feel terrible sharing a lua missing stuff.
Bismarck.Speedyjim
Server: Bismarck
Game: FFXI
Posts: 516
By Bismarck.Speedyjim 2016-01-06 01:56:17
Would that code go into function job_midcast?
How does idle_index work?
Server: Sylph
Game: FFXI
Posts: 465
By Sylph.Dravidian 2016-01-06 02:01:13
Yes it would. If you look in the GS folder, bryth has a lot of great examples. That is where I learned a lot of the stuff I did. All credit goes to him, but mine looks like something like this.
Under function self_command I have something that looks like this.
Code elseif command == 'idle' then
Idle_Index = Idle_Index +1
if Idle_Index > #Idle_Set_Names then
Idle_Index = 1 end
send_command('@input /echo ----- Idle Set changed to '..Idle_Set_Names[Idle_Index]..' -----')
equip(sets.idle[Idle_Set_Names[Idle_Index]])
In the top of my lua I have something that looks like this
Code Idle_Set_Names = {'default','death'}
now you can change your commands to actually be a keyboard command or w/e you want. I prefer to type it out and like it that way. You can also remove the equips at the end, I prefer it as to make sure I know my set switched.
Fenrir.Snaps
Server: Fenrir
Game: FFXI
Posts: 1139
By Fenrir.Snaps 2016-01-06 05:00:13
You can do it that way too although almost everything you did is already built into motes. Why rebuild the wheel? I currently have the following sets defined.
sets.idle
sets.idle.HighMP
sets.precast.FC
sets.precast.FC.HighMP
sets.midcast.Death
sets.midcast.Death.HighMP
sets.midcast.Aspir
sets.midcast.Aspir.HighMP
sets.midcast['Aspir III']
sets.midcast['Aspir III'].HighMP
I have also defined 'HighMP' as both casting and idle modes. Ctrl + F11 and Ctrl + F12 will cycle through them. Aspir III is defined because mote-mappings is out of date and doesn't have some newer spells in there. Maybe I'll try and get windower github access and push some updates. I consider adding a function that controls both your idle and casting sets as one to be too restrictive. There may be times where you'd want to mix and match (perhaps not these sets, but others.) Pushing F11 and then F12 once in a while to change both modes isn't really costing me anything.
Bismarck.Speedyjim
Server: Bismarck
Game: FFXI
Posts: 516
By Bismarck.Speedyjim 2016-01-06 05:37:54
Aye, I already use Mote's LUA's for all my jobs. Thanks for all the info guys!
I've already updated mote-mappings myself with missing spells like Aspir III and storm-II etc.
sets.midcast.Death
sets.midcast.Death.HighMP
Are these two the same exact sets, just defined due to different casting/idle modes?
Server: Sylph
Game: FFXI
Posts: 465
By Sylph.Dravidian 2016-01-06 09:13:23
Who is rebuilding the wheel? I don't like using motes lua (you even gave an example why in your own post) and gave the user an example that would fit his needs.
Server: Asura
Game: FFXI
Posts: 1397
By Asura.Toralin 2016-01-06 11:30:13
I have a Precast.FastCast.HighMP set defined and when I toggle to IdleArray = HighMP I would like to universally use my HighMP precast for death most importantly but for all spells so if im buffing/debuffing, i don't cannibalize all my MP
Code IdleArray = {"Movement","Refresh","HighMP"} -- Default Idle Set Is Movement --
Code
sets.Precast.FastCast.HighMP = {
ammo="Ghastly Tathlum +1",
head={ name="Merlinic Hood", augments={'"Fast Cast"+7','Mag. Acc.+12',}},
neck="Orunmila's Torque",
ear1="Loquac. Earring",
ear2={name="Etiolation Earring", priority=2},
body="Shango robe",
hands="Amalric Gages +1",
ring1="Prolix Ring",
ring2={name="Mephitas's Ring +1", priority=3},
back={ name="Bane Cape", augments={'Elem. magic skill +1','Dark magic skill +5','"Mag.Atk.Bns."+3','"Fast Cast"+2', priority=3}},
waist="Witful belt",
legs={name="Psycloth Lappas", priority=1},
feet="Amalric Nails +1"}
Code
function precast(spell,action)
if spell.type:endswith('Magic') or spell.type == "Ninjutsu" then
if buffactive.silence or spell.target.distance > 16+target_distance then -- Cancel Magic or Ninjutsu If You Are Silenced or Out of Range --
cancel_spell()
add_to_chat(123, spell.name..' Canceled: [Silenced or Out of Casting Range]')
return
else
if Idle_Index == 3 then
equip(set_combine(sets.Precast.FastCast.HighMP))
elseif string.find(spell.english,'Cur') and spell.english ~= "Cursna" then
equip(sets.Precast.Cure)
elseif spell.english == "Impact" then
equip(set_combine(sets.Precast.FastCast,{body="Twilight Cloak"}))
elseif string.find(spell.english,'Utsusemi') then
if buffactive['Copy Image (3)'] or buffactive['Copy Image (4)'] then
cancel_spell()
add_to_chat(123, spell.english .. ' Canceled: [3+ Images]')
return
else
equip(sets.Precast.FastCast)
end
elseif sets.Precast[spell.english] then
equip(sets.Precast[spell.english])
elseif sets.Precast[spell.skill] then
equip(sets.Precast[spell.skill])
else
equip(sets.Precast.FastCast)
end
Doesnt seem to work, is there a way to confirm what the variable of my idleindex is? I would assume 3 is correct?
Fenrir.Snaps
Server: Fenrir
Game: FFXI
Posts: 1139
By Fenrir.Snaps 2016-01-06 12:15:26
Bismarck.Speedyjim said: »Aye, I already use Mote's LUA's for all my jobs. Thanks for all the info guys!
I've already updated mote-mappings myself with missing spells like Aspir III and storm-II etc.
sets.midcast.Death
sets.midcast.Death.HighMP
Are these two the same exact sets, just defined due to different casting/idle modes?
They are different. I use Death even when solo and various other situations where I value having capped PDT/MDT in my idle. For those situations, pieces like Mephitas's Ring +1 don't add any value.
Sylph.Dravidian said: Who is rebuilding the wheel? I don't like using motes lua (you even gave an example why in your own post) and gave the user an example that would fit his needs.
I think you have misunderstood my post. The example I gave works with motes. Additional code is required if you wish to get it to work standalone.
Bismarck.Speedyjim
Server: Bismarck
Game: FFXI
Posts: 516
By Bismarck.Speedyjim 2016-01-06 16:55:11
I have a Precast.FastCast.HighMP set defined and when I toggle to IdleArray = HighMP I would like to universally use my HighMP precast for death most importantly but for all spells so if im buffing/debuffing, i don't cannibalize all my MP
Code IdleArray = {"Movement","Refresh","HighMP"} -- Default Idle Set Is Movement --
Code
sets.Precast.FastCast.HighMP = {
ammo="Ghastly Tathlum +1",
head={ name="Merlinic Hood", augments={'"Fast Cast"+7','Mag. Acc.+12',}},
neck="Orunmila's Torque",
ear1="Loquac. Earring",
ear2={name="Etiolation Earring", priority=2},
body="Shango robe",
hands="Amalric Gages +1",
ring1="Prolix Ring",
ring2={name="Mephitas's Ring +1", priority=3},
back={ name="Bane Cape", augments={'Elem. magic skill +1','Dark magic skill +5','"Mag.Atk.Bns."+3','"Fast Cast"+2', priority=3}},
waist="Witful belt",
legs={name="Psycloth Lappas", priority=1},
feet="Amalric Nails +1"}
Code
function precast(spell,action)
if spell.type:endswith('Magic') or spell.type == "Ninjutsu" then
if buffactive.silence or spell.target.distance > 16+target_distance then -- Cancel Magic or Ninjutsu If You Are Silenced or Out of Range --
cancel_spell()
add_to_chat(123, spell.name..' Canceled: [Silenced or Out of Casting Range]')
return
else
if Idle_Index == 3 then
equip(set_combine(sets.Precast.FastCast.HighMP))
elseif string.find(spell.english,'Cur') and spell.english ~= "Cursna" then
equip(sets.Precast.Cure)
elseif spell.english == "Impact" then
equip(set_combine(sets.Precast.FastCast,{body="Twilight Cloak"}))
elseif string.find(spell.english,'Utsusemi') then
if buffactive['Copy Image (3)'] or buffactive['Copy Image (4)'] then
cancel_spell()
add_to_chat(123, spell.english .. ' Canceled: [3+ Images]')
return
else
equip(sets.Precast.FastCast)
end
elseif sets.Precast[spell.english] then
equip(sets.Precast[spell.english])
elseif sets.Precast[spell.skill] then
equip(sets.Precast[spell.skill])
else
equip(sets.Precast.FastCast)
end
Doesnt seem to work, is there a way to confirm what the variable of my idleindex is? I would assume 3 is correct? Wouldn't you need a HighMP casting mode array for this?
Server: Asura
Game: FFXI
Posts: 1397
By Asura.Toralin 2016-01-06 19:21:03
Bismarck.Speedyjim said: »I have a Precast.FastCast.HighMP set defined and when I toggle to IdleArray = HighMP I would like to universally use my HighMP precast for death most importantly but for all spells so if im buffing/debuffing, i don't cannibalize all my MP
Code IdleArray = {"Movement","Refresh","HighMP"} -- Default Idle Set Is Movement --
Code
sets.Precast.FastCast.HighMP = {
ammo="Ghastly Tathlum +1",
head={ name="Merlinic Hood", augments={'"Fast Cast"+7','Mag. Acc.+12',}},
neck="Orunmila's Torque",
ear1="Loquac. Earring",
ear2={name="Etiolation Earring", priority=2},
body="Shango robe",
hands="Amalric Gages +1",
ring1="Prolix Ring",
ring2={name="Mephitas's Ring +1", priority=3},
back={ name="Bane Cape", augments={'Elem. magic skill +1','Dark magic skill +5','"Mag.Atk.Bns."+3','"Fast Cast"+2', priority=3}},
waist="Witful belt",
legs={name="Psycloth Lappas", priority=1},
feet="Amalric Nails +1"}
Code
function precast(spell,action)
if spell.type:endswith('Magic') or spell.type == "Ninjutsu" then
if buffactive.silence or spell.target.distance > 16+target_distance then -- Cancel Magic or Ninjutsu If You Are Silenced or Out of Range --
cancel_spell()
add_to_chat(123, spell.name..' Canceled: [Silenced or Out of Casting Range]')
return
else
if Idle_Index == 3 then
equip(set_combine(sets.Precast.FastCast.HighMP))
elseif string.find(spell.english,'Cur') and spell.english ~= "Cursna" then
equip(sets.Precast.Cure)
elseif spell.english == "Impact" then
equip(set_combine(sets.Precast.FastCast,{body="Twilight Cloak"}))
elseif string.find(spell.english,'Utsusemi') then
if buffactive['Copy Image (3)'] or buffactive['Copy Image (4)'] then
cancel_spell()
add_to_chat(123, spell.english .. ' Canceled: [3+ Images]')
return
else
equip(sets.Precast.FastCast)
end
elseif sets.Precast[spell.english] then
equip(sets.Precast[spell.english])
elseif sets.Precast[spell.skill] then
equip(sets.Precast[spell.skill])
else
equip(sets.Precast.FastCast)
end
Doesnt seem to work, is there a way to confirm what the variable of my idleindex is? I would assume 3 is correct? Wouldn't you need a HighMP casting mode array for this? hmm yeah i guess thats a good point
Necro Bump Detected!
[35 days between previous and next post]
Server: Ragnarok
Game: FFXI
Posts: 115
By Ragnarok.Forsakengriever 2016-02-10 11:46:08
Anyone get/test any REM for BLM with the update? Or is that still not a thing? Lol Empy had once been so good too! lol
Fenrir.Ramzus
Server: Fenrir
Game: FFXI
Posts: 1387
By Fenrir.Ramzus 2016-02-10 11:58:33
Laeva is pretty much the same still. I haven't upgraded mine yet but like the 119, it's bis with 2999tp AM2. Outside of that, it's a pretty good macc staff
Artwork done by Chiyoy
Kaboom! A Guide for Black Mage
So I’ve never written a guide and I don’t claim to be an expert, but I wanted to try and write out a guide for Black Mage. I’ve always really enjoyed the job and it is one of the jobs that (sadly) didn’t have a guide for it until now.
I will try and keep this updated as much as I can. Gear wise, I will try to keep a low/mid/high tier sets up.
As I am only human, there may be mistakes within this guide or changes that may need to be made. Feel free to send me a PM, reply, discuss, debate, make suggestions, etc. I will add and change things as needed.
|
|