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 ... 22 23 24 ... 182 183 184
 Bismarck.Inference
Offline
サーバ: Bismarck
Game: FFXI
user: Inference
Posts: 417
By Bismarck.Inference 2014-07-11 22:34:08  
Line 9 is called HPofReraise not HPtoReraise!
 Phoenix.Yocuz
Offline
サーバ: Phoenix
Game: FFXI
user: Irwlz
Posts: 40
By Phoenix.Yocuz 2014-07-11 22:34:58  
again ty inf u have helped a ton!!
 Asura.Vafruvant
Offline
サーバ: Asura
Game: FFXI
user: Vafruvant
Posts: 363
By Asura.Vafruvant 2014-07-11 22:35:12  
Lakshmi.Zerowone said: »
With regard to the point of using a fast cast set read the part in bold italics.

But it sounds like your function midcast has an issue. Wouldn't know how to help ya without seeing the code.
I posted my code already, but here's another link if you want to take a look. I use all of Mote's includes to pre-define anything so I don't have to make 4000 line luas for each job.

http://pastebin.com/K1yBCFpH
 Lakshmi.Zerowone
Offline
サーバ: Lakshmi
Game: FFXI
user: Zerowone
Posts: 6949
By Lakshmi.Zerowone 2014-07-11 23:51:39  
Its got Motes rules so I would say Mote is best to reply.

In the function job_post_midcast ,which I assume is midcast with respect to Motes rules it appears to be just addressing divine caress. Usually you want to define all the actions that you want to have addressed etc. However, if it is not midcast then it looks like you don't have a midcast function.
 Asura.Vafruvant
Offline
サーバ: Asura
Game: FFXI
user: Vafruvant
Posts: 363
By Asura.Vafruvant 2014-07-12 03:24:49  
Lakshmi.Zerowone said: »
Its got Motes rules so I would say Mote is best to reply.

In the function job_post_midcast ,which I assume is midcast with respect to Motes rules it appears to be just addressing divine caress. Usually you want to define all the actions that you want to have addressed etc. However, if it is not midcast then it looks like you don't have a midcast function.
In a situation like that, would I essentially just add something like...
Code
elseif spell.english:startswith['Cure'] then
	equip(sets.midcast.Cure)
...that into function job_post_midcast?

That just seems redundant since it is putting on my midcast gear, just not my aftercast properly. I guess my big question is more of a "even though all three swaps are taking place, why is the aftercast activating before the spell completes" question. It's definitely putting my midcast gear on, so the midcast function is defined, somewhere. I don't really understand job_post_midcast and how it differs from normal midcast, (outside of obviously coming after midcast, before aftercast).

As I said, I just copied Mote's whm lua and gear tweaked it for my sets. I may have added/removed a set or two here or there, but I made sure they were removed from any further rules in the file and were unrelated to curing anyway.
Offline
Posts: 103
By Santi 2014-07-12 05:34:47  
Not sure if this is a Gearswap issue... Using Motenten NIN.lua etc, gear is changing to aftercast right before Utsusemi:Ichi finishes casting.

Just started doing this few mins ago :\

edit: seems like all ichi spells are leaving midcast gearsets an instant before spell finishes casting.
 Lakshmi.Byrth
VIP
Offline
サーバ: Lakshmi
Game: FFXI
user: Byrthnoth
Posts: 6184
By Lakshmi.Byrth 2014-07-12 05:52:17  
Do you spam them? Trying to cast multiple times will generate error messages that call the aftercast function and pass in the spell name with an "interrupted" flag flipped.
Offline
Posts: 41
By Silverfox6868 2014-07-12 06:18:12  
I have tried everything and my obis DO not swap plz help
http://pastebin.com/cCQWUf3f
Rules start at line 343
 Lakshmi.Zerowone
Offline
サーバ: Lakshmi
Game: FFXI
user: Zerowone
Posts: 6949
By Lakshmi.Zerowone 2014-07-12 10:26:42  
Silverfox6868 said: »
I have tried everything and my obis DO not swap plz help
http://pastebin.com/cCQWUf3f
Rules start at line 343

I'm on a phone so forgive me for not pulling up your code but:

your are using motes rules and you have two separate precast functions.

try copying the stuff you have under "function precast(spell)"
and put it under function job_precast(spell). Then you would want
to delete the function precast (spell) section.
 Lakshmi.Zerowone
Offline
サーバ: Lakshmi
Game: FFXI
user: Zerowone
Posts: 6949
By Lakshmi.Zerowone 2014-07-12 10:40:36  
Utsusemi Ichi is an interesting spell since generally speaking the server considers the spell cast at 51% on the clients side spell bar (barring fastcast conditions) I.e: Ichi won't get applied if Ni shadows do no get cancelled by 51% on the client side spell bar though the whole animation appears to complete at 80%.

I could be talking about something different than the issue at hand.
Offline
Posts: 41
By Silverfox6868 2014-07-12 10:43:32  
Did what you said zero and still nothing new lua
http://pastebin.com/yLvVet28
 Lakshmi.Zerowone
Offline
サーバ: Lakshmi
Game: FFXI
user: Zerowone
Posts: 6949
By Lakshmi.Zerowone 2014-07-12 11:20:24  
Really wish I was in front of a machine so I can test before making a suggestion.

try this example format it may not work though:
Code
if spell.english == "Wildfire" and (spell.element == world.weather_element or spell.element== world.day_element) then
   equip(sets.precast.WS['Wildfire'],sets.Obi[spell.element])
else
   equip(sets.precast.WS['Wildfire'])
end




Can also try ['spell.element']


also you have a new midcast section after the after cast rules. I recommend not simply copying and pasting the actual functions from my example file into your file since yours is obeying Motes rules defined in the includes. Just take the contents and place them into the correlating function areas in your swap file.
 Asura.Vafruvant
Offline
サーバ: Asura
Game: FFXI
user: Vafruvant
Posts: 363
By Asura.Vafruvant 2014-07-12 12:06:40  
Santi said: »
Not sure if this is a Gearswap issue... Using Motenten NIN.lua etc, gear is changing to aftercast right before Utsusemi:Ichi finishes casting.

Just started doing this few mins ago :\

edit: seems like all ichi spells are leaving midcast gearsets an instant before spell finishes casting.
That's the EXACT problem I am having with my Cures.
Offline
Posts: 103
By Santi 2014-07-12 13:05:59  
Utsusemi Ni is firing correctly, I'm getting 4+ icon.

But ever since yesterday, I cast Ichi and the midcast gear switches to aftercast right before the spell finishes.

So Ni gets cancelled, aftercast gear equips, then ichi finishes casting and I only have 3 shadows.
 Fenrir.Motenten
VIP
Offline
サーバ: Fenrir
Game: FFXI
user: Motenten
Posts: 764
By Fenrir.Motenten 2014-07-12 13:51:31  
Silverfox6868 said: »
Did what you said zero and still nothing new lua
http://pastebin.com/yLvVet28

Same problem, except you re-defined midcast as well. By redefining precast and midcast rather than using the job_* versions of those functions (or proper custom functions that you call from job_precast/job_midcast), you basically destroy the include's ability to function.

Of course all of that code is completely unnecessary anyway. The only thing needed to have the obi equipped for Leaden Salute is to use the gear.ElementalObi variable in the waist slot of your Leaden Salute gear set. Also, define gear.default.obi_waist to be the item you want equipped if the day/weather check fails.

The only minor bit of extra work you need to do is redefine the default based on the weaponskill, since you use different base items for Leaden Salute and Wildfire.
Code
    sets.precast.WS['Leaden Salute'] = {ammo=gear.WSbullet,
        head="Lanun Tricorne +1",neck="Stoicheion Medal",ear1="Friomisi Earring",ear2="Crematio Earring",
        body="Lanun Frac +1",hands="Thurandaut Gloves +1",ring1="Stormsoul Ring",ring2="Stormsoul Ring",
        back="Gunslinger's Cape",waist=gear.ElementalObi,legs="Laksamana's Trews +1",feet="Lanun Bottes +1"}
        
    sets.precast.WS['Wildfire'] = {ammo=gear.WSbullet,
        head="Thaumas Hat",neck="Stoicheion Medal",ear1="Friomisi Earring",ear2="Crematio Earring",
        body="Lanun Frac +1",hands="Thurandaut +1",ring1="Acumen Ring",ring2="Stormsoul Ring",
        back="Gunslinger's Cape",waist=gear.ElementalObi,legs="Shneddick +1",feet="Lanun Bottes +1"}



-- 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)
    -- Check that proper ammo is available if we're using ranged attacks or similar.
    if spell.action_type == 'Ranged Attack' or spell.type == 'WeaponSkill' or spell.type == 'CorsairShot' then
        do_bullet_checks(spell, spellMap, eventArgs)
    end
    
    -- Define proper defaults for weaponskills that use obis
    if spell.english == 'Leaden Salute' then
        gear.default.obi_waist = "Elanid Belt"
    elseif spell.english == 'Wildfire' then
        gear.default.obi_waist = "Aquiline Belt"
    end
end
[+]
 Fenrir.Motenten
VIP
Offline
サーバ: Fenrir
Game: FFXI
user: Motenten
Posts: 764
By Fenrir.Motenten 2014-07-12 14:16:54  
@Vafruvant:

First problem:
Code
-- Initialization function for this job file.
function get_sets()
        -- Load and initialize the include files.
    include('Mote-Include.lua')
        include('Mote-Globals.lua')
        include('Mote-Mappings.lua')
        include('Mote-SelfCommands.lua')
        include('Mote-Utility.lua')
        -- include('CureMod.lua')
end


The *only* function call in the get_sets() function should be to include Mote-Include. All of the rest is handled by Mote-Include itself. Adding extra includes here -probably- won't harm anything, but it's possible it might have screwed something up.

Should simply be:
Code
-- Initialization function for this job file.
function get_sets()
    -- Load and initialize the include files.
    include('Mote-Include.lua')
end



Zerowone said:
In the function job_post_midcast ,which I assume is midcast with respect to Motes rules it appears to be just addressing divine caress. Usually you want to define all the actions that you want to have addressed etc. However, if it is not midcast then it looks like you don't have a midcast function.

The vast majority of all gear handling is done by default in the includes. Use of job_midcast and job_post_midcast is only to override the defaults in special cases. job_midcast is run before the defaults are constructed, and job_post_midcast is run after the defaults are constructed. Same for precast/aftercast/etc.

Divine Caress is simply a special case that modifies the default set if the buff is active. Since it's only modifying the default set, it needs to be run after the default set has already been selected, and so goes in the job_post_midcast function.

No modification is necessary to equip the standard Cure sets and such.


Vafruvant said:
That just seems redundant since it is putting on my midcast gear, just not my aftercast properly. I guess my big question is more of a "even though all three swaps are taking place, why is the aftercast activating before the spell completes" question.

That's indeed the more complicated issue. I don't see any deviations from the default in your file that should lead to this issue, and the include can only ever call the aftercast functions when GearSwap notifies it that the aftercast event has occurred.

The only send_commands in the file are the ones for Solace/Light Arts, and those are only if you manually update, so it "shouldn't" be some random async call returning. However it might possibly be some duplicate function running due to you including all those includes twice. Can't really imagine how, but maybe possible.

For testing, I'd ask that you try putting the following debug messages in either new or existing functions:

Code
-- Return true if we handled the aftercast work.  Otherwise it will fall back
-- to the general aftercast() code in Mote-Include.
function job_aftercast(spell, action, spellMap, eventArgs)
    add_to_chat(123,'Aftercast called')
    if state.Buff[spell.english] ~= nil then
        state.Buff[spell.english] = not spell.interrupted or buffactive[spell.english]
    end
end

function job_handle_equipping_gear(playerStatus, eventArgs)
    add_to_chat(123,'Handle Equipping Gear called')
end


Then see if Handle Equipping Gear is being called before Aftercast is called, and particularly if it's being called twice (once before, once after).
[+]
Offline
Posts: 103
By Santi 2014-07-12 14:43:07  
Fixed my issue. Was related to my time specific regen gear and how I had it coded in MoteUtility.

This is what I had in my Santi_nin.lua
Code
function job_update(cmdParams, eventArgs)
    update_time_based_gear()
end

function update_time_based_gear()
    if classes.Daytime then
		gear.AccAmmo.name = gear.DayAmmo
    else
		gear.AccAmmo.name = gear.NightAmmo
    end
	
	if classes.RegenTime then
		gear.RegenEar.name = gear.DayEar
	else
		gear.RegenEar.name = gear.NightEar
	end
    
    if classes.DuskToDawn then
        gear.MovementFeet.name = gear.NightFeet        
    else
        gear.MovementFeet.name = gear.DayFeet        
    end
en


This is what was in moteutility, when I was editing it after update I didn't add local was_regentime = classes.RegenTime.
Code
function time_change(new_time, old_time)
	local was_daytime = classes.Daytime
	local was_regentime = classes.RegenTime
	local was_dusktime = classes.DuskToDawn
	
	if new_time >= 6*60 and new_time < 18*60 then
		classes.Daytime = true
	else
		classes.Daytime = false
	end
	
	if new_time >= 8*60 and new_time < 18*60 then
		classes.RegenTime = true
	else
		classes.RegenTime = false
	end

	if new_time >= 17*60 or new_time < 7*60 then
		classes.DuskToDawn = true
	else
		classes.DuskToDawn = false
	end
	
	if was_daytime ~= classes.Daytime or was_regentime ~= classes.RegenTime or was_dusktime ~= classes.DuskToDawn then
		if job_time_change then
			job_time_change(new_time, old_time)
		end

		handle_update({'auto'})
	end
end
Offline
Posts: 1440
By fractalvoid 2014-07-12 15:18:27  
Having issues with this GS not equipping Geomancy + gear in midcast. I tried making a geomancy midcast set which didn't work and have now just made the base midcast set all the geomancy gear I'd like equipped but it's still not working correctly.

If anyone could help that'd be great. I've tried both showswaps and debugmode to no avail. Thanks in advance.

GS: http://pastebin.com/r1dRTU6r
 Bismarck.Inference
Offline
サーバ: Bismarck
Game: FFXI
user: Inference
Posts: 417
By Bismarck.Inference 2014-07-12 15:30:26  
Looks something like this :

Determines if it's Magic of any kind.

Checks if it's an Indi-Spell.

Only if it's not any Indi-Spell, eventually checks if its a Geomancy spell in general.

These checks should perform properly but you need sets.midcast.Indi and sets.midcast['Geomancy'], I see neither of these.
Offline
Posts: 16
By Gunshin 2014-07-12 15:43:25  
In the same boat as fractal, would you mind posting an example of the sets.midcast.Indi and sets.midcast['Geomancy'] so that I might edit it to work with my gear and make it easy on me? xD
Offline
Posts: 1440
By fractalvoid 2014-07-12 15:45:39  
I see. I tried making a geomancy midcast set and it didn't work so I just tried putting it in the default mid cast set but didn't really think that would work. I'll try editing it now with your suggestions and see how it works. Thanks!

Also I took out the differentiation between indi and geo spells as there is really no need to. The only indi-specific gear needed is relic pants and those can be used in geo-specific spells without impacting anything
 Bismarck.Inference
Offline
サーバ: Bismarck
Game: FFXI
user: Inference
Posts: 417
By Bismarck.Inference 2014-07-12 16:07:21  
Unless you just took it out, it's still there and causing that main problem.
Code
elseif string.find(spell.english,'Indi')then
    equipSet = equipSet.Indi


On lines 455/456. Even if you don't have that set defined, any Indi spell will still trigger the rule, since all other rules are defined as "elseif" or "else", once your Indi-spell hits this rule the code won't even bother checking for anything else. This could be your problem particularly if you've only been testing this with Indi spells.

You can just do sets.midcast['Geomancy'] and be fine, but you do need to remove the snippet I posted if you want it to work for everything.
 Bismarck.Inference
Offline
サーバ: Bismarck
Game: FFXI
user: Inference
Posts: 417
By Bismarck.Inference 2014-07-12 16:11:55  
Gunshin said: »
In the same boat as fractal, would you mind posting an example of the sets.midcast.Indi and sets.midcast['Geomancy'] so that I might edit it to work with my gear and make it easy on me? xD

Its just whatever gear you want, under function get_sets() just type sets.midcast.Indi={gear for your Indi spells here} and sets.midcast['Geomancy']={gear for non-Indi, Geo spells here} in the same syntax as everything else is written.

It's a bit early for me but I'm assuming the actual midcast checks are stable and the Indi rule without Indi set is causing the problem(assuming you guys are running into your issues by testing with Indi spells)
 Fenrir.Motenten
VIP
Offline
サーバ: Fenrir
Game: FFXI
user: Motenten
Posts: 764
By Fenrir.Motenten 2014-07-12 16:14:45  
Gunshin said: »
In the same boat as fractal, would you mind posting an example of the sets.midcast.Indi and sets.midcast['Geomancy'] so that I might edit it to work with my gear and make it easy on me? xD

If you want to know what gear to put in a set, go to the job forums. There's stickies in most of them, in gear threads in all of them.
Offline
Posts: 1440
By fractalvoid 2014-07-12 16:19:40  
I took out that snippet you posted Inference, and it seems to work. It was working after I removed the differentiation between indi/geo spells and defined a midcast geomancy set (although I left it the same as the precast geomancy set - which I suppose I could alter... cause the gear simply needs to be on in midcast, not precast)

Took me a bit but I realized there's no need to differentiate indi and geo spells. Although relic pants effect indi spell duration, there's nothing really that would need to be on for geo spells in that leg slot so I removed that.

I really should have looked at this a bit longer (as Gunshin pointed out to me last night; I had a freakin necklace in my grip slot in that GS lololol) but figured I'd post here to get it smoothed out
 Asura.Vafruvant
Offline
サーバ: Asura
Game: FFXI
user: Vafruvant
Posts: 363
By Asura.Vafruvant 2014-07-12 16:50:04  
Fenrir.Motenten said: »
@Vafruvant:

First problem:
Code
-- Initialization function for this job file.
function get_sets()
        -- Load and initialize the include files.
    include('Mote-Include.lua')
        include('Mote-Globals.lua')
        include('Mote-Mappings.lua')
        include('Mote-SelfCommands.lua')
        include('Mote-Utility.lua')
        -- include('CureMod.lua')
end


The *only* function call in the get_sets() function should be to include Mote-Include. All of the rest is handled by Mote-Include itself. Adding extra includes here -probably- won't harm anything, but it's possible it might have screwed something up.

Should simply be:
Code
-- Initialization function for this job file.
function get_sets()
    -- Load and initialize the include files.
    include('Mote-Include.lua')
end


Vafruvant said:
That just seems redundant since it is putting on my midcast gear, just not my aftercast properly. I guess my big question is more of a "even though all three swaps are taking place, why is the aftercast activating before the spell completes" question.

That's indeed the more complicated issue. I don't see any deviations from the default in your file that should lead to this issue, and the include can only ever call the aftercast functions when GearSwap notifies it that the aftercast event has occurred.

The only send_commands in the file are the ones for Solace/Light Arts, and those are only if you manually update, so it "shouldn't" be some random async call returning. However it might possibly be some duplicate function running due to you including all those includes twice. Can't really imagine how, but maybe possible.

For testing, I'd ask that you try putting the following debug messages in either new or existing functions:

Code
-- Return true if we handled the aftercast work.  Otherwise it will fall back
-- to the general aftercast() code in Mote-Include.
function job_aftercast(spell, action, spellMap, eventArgs)
    add_to_chat(123,'Aftercast called')
    if state.Buff[spell.english] ~= nil then
        state.Buff[spell.english] = not spell.interrupted or buffactive[spell.english]
    end
end

function job_handle_equipping_gear(playerStatus, eventArgs)
    add_to_chat(123,'Handle Equipping Gear called')
end


Then see if Handle Equipping Gear is being called before Aftercast is called, and particularly if it's being called twice (once before, once after).
Removing the double included files seems to have worked, however...

This is a picture of my chat log with the fixes you mentioned in place, showswaps on and Battlemod.



It appears to be equipping the proper gear based on the amount cured, but the location of the spell in relation to the sets makes me wonder if something is still off.
 Phoenix.Yocuz
Offline
サーバ: Phoenix
Game: FFXI
user: Irwlz
Posts: 40
By Phoenix.Yocuz 2014-07-12 17:23:44  
so thanks to u guys last night i got my gearswap for pld working and i had my friend that made it make a rule to allow me to turn off my cure set when needed and it works great but i didnt anticipate needing to turn off the fast cast set >.<

i have tried to go about this my own but to no avail any advice?
 Phoenix.Yocuz
Offline
サーバ: Phoenix
Game: FFXI
user: Irwlz
Posts: 40
By Phoenix.Yocuz 2014-07-12 17:36:56  
i assumed i needed to make a trigger for spell.english but im not an expert at gearswap ; ;

at least that would have been my guess
 Phoenix.Yocuz
Offline
サーバ: Phoenix
Game: FFXI
user: Irwlz
Posts: 40
By Phoenix.Yocuz 2014-07-12 17:48:55  
http://pastebin.com/KBRzF8yB


the rule is on line 8 for my cure set

its defined at 514

like i stated i would love to be able to turn off fast cast in the same manner
 Fenrir.Motenten
VIP
Offline
サーバ: Fenrir
Game: FFXI
user: Motenten
Posts: 764
By Fenrir.Motenten 2014-07-12 19:21:17  
Quote:
This is a picture of my chat log with the fixes you mentioned in place, showswaps on and Battlemod.

<snip>

It appears to be equipping the proper gear based on the amount cured, but the location of the spell in relation to the sets makes me wonder if something is still off.

Everything in that picture looks fine. Order of operations:

Enter command
GearSwap Precast -> construct precast set (displayed)
GearSwap Midcast -> construct midcast set (displayed)
GearSwap sends command and gear sets to server
Server acknowledges command, sends "starts casting" message
Server sends notice of completed command (cure has already taken place at this point)
GearSwap Aftercast -> construct aftercast set (displayed)
GearSwap sends aftercast set to server
First Page 2 3 ... 22 23 24 ... 182 183 184
Log in to post.