WHM Spellcast : Same Body For Idle And Midcast ?

Language: JP EN DE FR
2010-09-08
New Items
users online
Forum » FFXI » Jobs » White Mage » WHM Spellcast : Same body for idle and midcast ?
WHM Spellcast : Same body for idle and midcast ?
 Bismarck.Gael
Offline
Server: Bismarck
Game: FFXI
user: Gael
Posts: 172
By Bismarck.Gael 2011-10-28 06:44:07
Link | Quote | Reply
 
Hi guys,

I'm a spellcast noob so dont blame me if the question seems stupid but how do you use the same body in idle/aftercast and midcast ?

I have something like this :
(It's not the file i use dont worry lol. I created this one to show you my bug. You can copy it, you will have the bug too)
Code
<?xml version="1.0"?>
<spellcast>
	<config
		RequireVersion="2.16"
		Debug="true" 
		HideErrors="false"
		ShowGearSwaps="false"
	/>
	<sets>
		<group default="yes"  name="WhiteMage">
			<set name="Idle">
				<body>Orison Bliaud +2</body>
			</set>
			<set name="precast">
				<body>Nefer Kalasiris +1</body>
			</set>
			<set name="Cure">
				<body>Orison Bliaud +2</body>
			</set>
		</group>
	</sets>
	<rules>
		<action type="equip" when="idle|aftercast" set="Idle"/>

		<if Spell="Cur*">
			<action type="precastdelay" delay=".1" />
			<action type="equip" when="precast" set="Precast"/>
			<action type="midcastdelay" delay=".3"/>
			<action type="equip" when="midcast" set="Cure"/>
		</if>
	</rules>
</spellcast>


When i cast a cure, if i had the Orison body, spellcast will stay on the Nefer body during all the cast. It's only when the aftercast comes that spellcast will equip my Orison body (it's not only because i "see" the Nefer body, i checked what body i had at the end of a cast).

The only way i found to make him use my Orison body during the midcast, is to have an other body for my idle/aftercast macro. But i need the orison body here... What can i do to fix it ?


Thanks.
 Ragnarok.Sekundes
Offline
Server: Ragnarok
Game: FFXI
user: Sekundes
Posts: 4189
By Ragnarok.Sekundes 2011-10-28 07:54:30
Link | Quote | Reply
 
I'm going to guess that the issue isn't so much the coding logic as it is a limitation on how often you can change gear. You need about .6-.8 seconds between each swap. But it would help to have your entire xml. I usually troubleshoot these kind of things via loading them up and just how much fastcast you have will make a difference.

If you set showgearswaps to true then you can see if it is trying to do what you want and can confirm the issue is with timing.

I'll look at it again in a little bit, just woke up so there might be something I missed.
 Bismarck.Gael
Offline
Server: Bismarck
Game: FFXI
user: Gael
Posts: 172
By Bismarck.Gael 2011-10-28 08:10:50
Link | Quote | Reply
 
Thanks for the answer ^^

I dont think it's a speed problem because i just have the problem on the body slot (where i use the same body on idle and midcast).

The macro works w/o the body with Genbu's Shield (7%), Incantor Stone (2%), Loquac. Earring (2%), Orsn. Pantaln. +2 (12%), Cure clogs (15%), Aceso's Choker (10 %) and a club that i dont remember the name for 2%.

So the macro works with ~50% of speed casting gear (with a precast delay at 0.1 and a midcast delay at 0.3), but it doesnt work with the body only (12% of speed casting gear).

I can give you my full gear if you want, but you only need the short one i posted to have the bug (i mean you can test the short file, it wont equip the body in midcast).
 Ragnarok.Sekundes
Offline
Server: Ragnarok
Game: FFXI
user: Sekundes
Posts: 4189
By Ragnarok.Sekundes 2011-10-28 08:15:43
Link | Quote | Reply
 
I can't log on atm but if you'll load up show gear swaps and let me know what it displays when you attempt a cast, I might be able to figure something out. Posting your debug log would be even better.

As a side note, <if Spell="Cur*"> will grab cursna as well so be sure your accounting for that in some way. I prefer: <if Spell="Cure*Cura*"> which will do all cures curagas and curas without doing cursna.
 Cerberus.Keeo
Offline
Server: Cerberus
Game: FFXI
Posts: 118
By Cerberus.Keeo 2011-10-28 08:36:12
Link | Quote | Reply
 
Have you tried putting and aftercast delay in?
 Bismarck.Gael
Offline
Server: Bismarck
Game: FFXI
user: Gael
Posts: 172
By Bismarck.Gael 2011-10-28 08:42:15
Link | Quote | Reply
 
Oh sorry i just did it quickly, i usually use "cure*|cura*" in my real file instead of "cur*"

About the "show gear swaps" option, if i put it on "true" i see a [spellcast] Precast
and 1 sec after i see a
[spellcast] Midcast
Few seconds later i see a
[spellcast] Aftercast

Ninja edit : no change with an aftercast delay.

The thing i dont understand is that spellcast works w/o any problem with 7 gear changes, but it fail with only 1 gear change...
Offline
Posts: 412
By Cathaldus 2011-10-28 09:22:49
Link | Quote | Reply
 
Could try a midcast delay of 0.2 I think that's how I fixed this problem.
 Cerberus.Caylene
Offline
Server: Cerberus
Game: FFXI
Posts: 101
By Cerberus.Caylene 2011-10-28 09:32:40
Link | Quote | Reply
 
For my white mage, I put an "aftercast" set in (whm body only for refresh), and it's my very last rule and runs as an autoset. No delay necessary.

Works every time.
 Cerberus.Caylene
Offline
Server: Cerberus
Game: FFXI
Posts: 101
By Cerberus.Caylene 2011-10-28 09:36:14
Link | Quote | Reply
 
Also you need to put in a <if casttimegt="X"> rule- that way you don't end up casting a cure in your precast gear.
Offline
Posts: 991
By Drjones 2011-10-28 09:37:56
Link | Quote | Reply
 
I have this problem with Red Mage. Idle in AF3+2 body, precast in Duelist's Tabard, midcast in AF3+2 body. It's not an issue of logic but of timing. I think it's the game client itself that's the issue. It switches to your fast cast body but when you hit midcast it thinks you're still wearing your idle/midcast body so it stalls out or something and you remain in your fast cast body.

I've been fiddling with midcast delays and once you hit 0.7 or greater the problem seems to crop us less frequently, but I've not found a way to get full fast cast and full potency on spells with a natively short casting time, so I just stick the midcast body in during precast for certain spells. It's messy and ugly but I haven't found a better solution yet.

If there's a good fix out there I'd be very interested in learning about it.
 Cerberus.Caylene
Offline
Server: Cerberus
Game: FFXI
Posts: 101
By Cerberus.Caylene 2011-10-28 10:07:54
Link | Quote | Reply
 
Drjones said: »
I have this problem with Red Mage. Idle in AF3+2 body, precast in Duelist's Tabard, midcast in AF3+2 body. It's not an issue of logic but of timing. I think it's the game client itself that's the issue. It switches to your fast cast body but when you hit midcast it thinks you're still wearing your idle/midcast body so it stalls out or something and you remain in your fast cast body.

I've been fiddling with midcast delays and once you hit 0.7 or greater the problem seems to crop us less frequently, but I've not found a way to get full fast cast and full potency on spells with a natively short casting time, so I just stick the midcast body in during precast for certain spells. It's messy and ugly but I haven't found a better solution yet.

If there's a good fix out there I'd be very interested in learning about it.

1. You won't switch if you fast cast on a spell that is less than 5 seconds. Recommended use of precast gear is apparently only for spells that are 5-7 seconds or longer. I think it's probably why SC has the <if casttimegt=""> rule.

2. if you wanted some sort of workaround, then put the single piece of equip as an additional <main=""> under the spell rule as well.

3. Another workaround for your specific case- you could try to put when="midcast|aftercast" in your rule, and make a set that is the body piece only.
 Bismarck.Phaded
Offline
Server: Bismarck
Game: FFXI
user: Phaded
By Bismarck.Phaded 2011-10-28 10:46:41
Link | Quote | Reply
 
Fix to Gael's problem.
Code
<?xml version="1.0"?>
<spellcast>
	<config RequireVersion="2.3" Debug="true" HideErrors="false" ShowGearSwaps="false"/>
	<sets>
		<group name="WhiteMage" default="yes">
			<set name="Idle">
				<body>Orison Bliaud +2</body>
			</set>
			<set name="precast">
				<body>Nefer Kalasiris +1</body>
			</set>
			<set name="Cure">
				<body>Orison Bliaud +2</body>
			</set>
		</group>
	</sets>
	<rules>
		<action type="equip" when="idle|aftercast" set="Idle"/>
		<if Skill="HealingMagic">
			<if Spell="Cure*|Cura*">
				<action type="precastdelay" delay=".1" />
				<action type="castdelay" delay=".3"/>
				<action type="equip" when="precast" set="Precast"/>
				<action type="equip" when="midcast" set="Cure"/>
			</if>
		</if>
	</rules>
</spellcast>


You owe me a cookie as promised Taru!
 Bismarck.Gael
Offline
Server: Bismarck
Game: FFXI
user: Gael
Posts: 172
By Bismarck.Gael 2011-10-28 10:59:39
Link | Quote | Reply
 
thanks

It works for me ^^

A big thanks to all ppl who answered me :)
Offline
Posts: 991
By Drjones 2011-10-28 11:04:01
Link | Quote | Reply
 
Wouldn't that just add 0.4 seconds to time between punching the macro and the spell firing? Sure it gets the right gear on, but it looks like it's adding to overall time spent executing the spell unless the spell has a sufficiently long cast time.
 Bismarck.Phaded
Offline
Server: Bismarck
Game: FFXI
user: Phaded
By Bismarck.Phaded 2011-10-28 11:07:48
Link | Quote | Reply
 
It does but I just gave him the correct command for the gear to come on, its up to the user to get the delays right. For my PC while dual/triple boxing I can get away with just using a cast delay of .1 and no precast delay. For others timing may vary tho.
Code
		<if Skill="HealingMagic">
			<if Spell="Cure*|Cura*">
				<action type="castdelay" delay=".1"/>
				<action type="equip" when="precast" set="Precast"/>
				<action type="equip" when="midcast" set="Cure"/>
			</if>
		</if>
 Cerberus.Caylene
Offline
Server: Cerberus
Game: FFXI
Posts: 101
By Cerberus.Caylene 2011-11-04 06:26:21
Link | Quote | Reply
 
Why are you going to cast delay a cure?? That doesn't make sense. I'd use the casttimegt rule, because the only spells that will end up needing a precast set are the big curagas....

ETA: I have a spreadsheet that can help you see the numbers if you want to see it.
 Asura.Pergatory
Online
Server: Asura
Game: FFXI
user: Pergatory
Posts: 1333
By Asura.Pergatory 2011-11-04 10:10:18
Link | Quote | Reply
 
I think the main problem is likely due to the fact that you aren't swapping any other pieces between your two body swaps.

FFXI has a little quirk to allow you to make a macro that toggles between two pieces by having two swaps in a row to the same slot. For example, say you had a macro like this:

/equip body "Orison Bliaud +2"
/equip body "Nefer Kalasiris +1"

If you were naked, the first time you pressed it I believe you'd end up in Orison Bliaud +2. If you pressed it again, you would swap to Kalasiris. Again, and you'd be back in Orison.

It could be that since all you're swapping is body, and you're doing them in fairly quick succession, it's getting confused and thinking you're trying to toggle.

Try adding a different gear swap in there between the two bodies. Swap your hands or something.
 Ragnarok.Sekundes
Offline
Server: Ragnarok
Game: FFXI
user: Sekundes
Posts: 4189
By Ragnarok.Sekundes 2011-11-04 13:44:05
Link | Quote | Reply
 
Cerberus.Caylene said: »
Why are you going to cast delay a cure?? That doesn't make sense. I'd use the casttimegt rule, because the only spells that will end up needing a precast set are the big curagas....

ETA: I have a spreadsheet that can help you see the numbers if you want to see it.

So you don't use fastcast at all on relativity short cast time spells? What is your dividing line for using it or not? 2 seconds? 5? Cures going off as fast as possible is pretty important to many whms. The faster your spell goes off the faster you can get to the next spell you need to cast and cures going off quickly saves lives. As long as you aren't casting in less than .7 seconds, you should be able to get your midcast gear on without delays. It is very easy to see if your cures are working properly. Cure someone and if it cures for full potency then it works, if it doesn't then keep adjusting. If you have to use a delay then just make sure the net benefit is higher.
 Cerberus.Caylene
Offline
Server: Cerberus
Game: FFXI
Posts: 101
By Cerberus.Caylene 2011-11-04 16:16:07
Link | Quote | Reply
 
Ragnarok.Sekundes said: »
So you don't use fastcast at all on relativity short cast time spells? What is your dividing line for using it or not? 2 seconds? 5? Cures going off as fast as possible is pretty important to many whms. The faster your spell goes off the faster you can get to the next spell you need to cast and cures going off quickly saves lives. As long as you aren't casting in less than .7 seconds, you should be able to get your midcast gear on without delays. It is very easy to see if your cures are working properly. Cure someone and if it cures for full potency then it works, if it doesn't then keep adjusting. If you have to use a delay then just make sure the net benefit is higher.

Do you really test out each one of your spells then adjust your delay individually? If so bravo(!)- but a spreadsheet will do the work for you, and you can take care of all your casting with ONE rule. Seems a bit more efficient- to me, anyway.

The actual casttimegt="value" will be different for each player, depending on their merits, subjob, gear, etc. My current casttimegt threshold for WHM/RDM is around 3 seconds for original cast time value (outside Abyssea). Like I said, I would be happy to share the spreadsheet-the formulas are even already there- so you can even punch in your own values for merits, gear, etc.

Here's the thing- I think you'd end up spending MORE time with a cast delay, than if you just figure out your casttimegt threshold. If you're trying to precast FC gear and it makes the cast time <1, you won't switch back in time. 50% cure potency (not to mention the other benefits of the gear available to the White Mage) is way more worth it (and how is this not already the general consensus??).
 Ragnarok.Sekundes
Offline
Server: Ragnarok
Game: FFXI
user: Sekundes
Posts: 4189
By Ragnarok.Sekundes 2011-11-04 16:36:49
Link | Quote | Reply
 
I agree that cure potency is better but I'd prefer both. My alt doesn't have capped fastcast yet and thus far I have no problems macroing fastcast first and then getting in potency gear.

I wouldn't mind looking at what you have set up just so I understand where you're coming from. But correct me if I'm wrong but with your current set up, any spell over 3 seconds doesn't macro fastcast or just puts in a different amount?
 Cerberus.Vaness
Offline
Server: Cerberus
Game: FFXI
Posts: 1515
By Cerberus.Vaness 2011-11-04 16:41:35
Link | Quote | Reply
 
NVM I'm a tard and I readed all wrong. *edit*

For most ppl a .4 or .5 delay works great, my 2005 PC doesn't ALWAYS handle it (depends on lag in abyssea outside is fine) but most of the time it's one out of 5 cures that end up in my CCT (precast set).Always put the gears with cure pot in my precast set where I got nothing with fastcast or CCT on :x(So I suck a bit less when it happens xD).
 Phoenix.Esvedium
Offline
Server: Phoenix
Game: FFXI
user: Esvedium
Posts: 73
By Phoenix.Esvedium 2011-11-07 15:09:18
Link | Quote | Reply
 
<equip when="precast" set="whatever" />
<equip when="midcast" set="whateverelse" />
<command when="midcast">input /equip body "whatever body"</command>


Use that. Spellcast has issues sometimes with telling what gear is on if you go A>B>A, it sometimes things that A is still on when checking midcast, so it doesn't try to re-equip it. Spellcast only sends /equip info for pieces that are "not on". You can see what it's sending to the game if you put ShowGearSwaps="yes" in your config section of your xml.

In what I posted above, you're not telling spellcast to "look at what I have on my body and equip A if it isn't on, you're saying "midcast, send this command no matter what", so it'll send the equip body command along with whatever other midcast rules you send.
[+]
Log in to post.