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 ... 95 96 97 ... 182 183 184
 Carbuncle.Doryll
Offline
サーバ: Carbuncle
Game: FFXI
user: Smacks
By Carbuncle.Doryll 2016-03-26 04:19:34  
Thank you Flippant !

It would be cool if Gearswap updates could includes thes changements !
Offline
サーバ: Shiva
Game: FFXI
user: cdospawn
Posts: 15
By Shiva.Deathblossoms 2016-03-28 05:51:59  
Hello all, so i have been having some trouble with my Lua file i have been working on for my thief that i have modded from bokura's lua files. my problem is that for some reason my gear will not change to reflect that i have scaled up my acc level from Low to High it will just stay in LowAcc gear or if i change the AccArray at the very beginning it will stay at the tier of ACC gear i want but if i change it at all while the lua file is loaded it will stay at my lowacc gear the rest of the time. so any and all help would be greatly welcomed at this time.
 Ragnarok.Flippant
Offline
サーバ: Ragnarok
Game: FFXI
user: Enceladus
Posts: 660
By Ragnarok.Flippant 2016-03-28 06:52:53  
My first question would be if you have any haste buffs, since all of your mid- and high-haste sets are basically pointing to sets.TP (your lowacc set).
Offline
サーバ: Shiva
Game: FFXI
user: cdospawn
Posts: 15
By Shiva.Deathblossoms 2016-03-28 12:06:12  
OMG thanks i did not even notice that was the problem thanks. I was able to fix it with this info.
 Leviathan.Stamos
Offline
サーバ: Leviathan
Game: FFXI
user: Stamos
Posts: 1239
By Leviathan.Stamos 2016-03-30 13:14:54  
Since we're getting Wardrobe 2, and will have the room to do so. Was thinking about how I could add a DW set to a few jobs based on subjob. I know Mote's has a combatform for it on his. But, not a fan of his. Was thinking about WHM, RDM, GEO, and RUN. But here is my WHM. Essentially want it to fuction like Mote's, but don't know the correct way to do it for it be in DW or SW while engaged based on SJ

Pastebin
 Ragnarok.Flippant
Offline
サーバ: Ragnarok
Game: FFXI
user: Enceladus
Posts: 660
By Ragnarok.Flippant 2016-03-30 19:32:50  
First solution is to base TP set on subjob. The code would be rather simple, going after line 864:
Code
if equipSet[player.sub_job] then
	equipSet = equipSet[player.sub_job]
end

Your sets would look like sets.TP.NIN, sets.TP.MidACC.NIN, sets.TP.MidACC.HighHaste.NIN, etc.

The downside is that you'd have to make a set for both NIN and DNC subs.

Alternatively, (again after line 864)
Code
if S{"DNC","NIN"}:contains(player.sub_job) then
	equipSet = equipSet.DW
end

and then your sets would look like sets.TP.DW, sets.TP.MidAcc.DW, sets.TP.MidACC.HighHaste.DW, etc.

The former is more flexible, but the latter is more pragmatic.
 Ragnarok.Jukiro
Offline
サーバ: Ragnarok
Game: FFXI
user: ikariiiii
Posts: 198
By Ragnarok.Jukiro 2016-03-30 19:58:49  
Ragnarok.Flippant said: »
The former is more flexible, but the latter is more pragmatic.


don't you mean THE FOMOR?!


oh wait, wrong thread.
[+]
 Leviathan.Stamos
Offline
サーバ: Leviathan
Game: FFXI
user: Stamos
Posts: 1239
By Leviathan.Stamos 2016-03-30 20:09:53  
Thanks. But neither worked. Both equipped my regular tp set
 Ragnarok.Flippant
Offline
サーバ: Ragnarok
Game: FFXI
user: Enceladus
Posts: 660
By Ragnarok.Flippant 2016-03-30 20:21:56  
My bad, should've checked the variable list. It's player.sub_job, not player.sub. Correcting original post :x
 Leviathan.Stamos
Offline
サーバ: Leviathan
Game: FFXI
user: Stamos
Posts: 1239
By Leviathan.Stamos 2016-03-30 20:26:02  
Still just equipping regular TP set

I am sure I am derping somewhere /posts it after edit

Pastebin

Nvm. It was equipping the correct set. But then, it wasn't equipping my idle or anything
 Ragnarok.Flippant
Offline
サーバ: Ragnarok
Game: FFXI
user: Enceladus
Posts: 660
By Ragnarok.Flippant 2016-03-30 20:44:23  
Er umm. Well, you pasted it after line 864, after you made changes (added sets, I assume). So it's the wrong line 864 lol.

It should go after the lines that say:
Code
        if buffactive.March == 2 or buffactive.March == 1 or buffactive[580] or buffactive['Mighty Guard'] and (buffactive.Embrava or buffactive.Haste) and equipSet["HighHaste"] then
            equipSet = equipSet["HighHaste"]
        end


It shouldn't affect idle at all, but maybe you pasted it in the right function earlier, but maybe the wrong line.
 Leviathan.Stamos
Offline
サーバ: Leviathan
Game: FFXI
user: Stamos
Posts: 1239
By Leviathan.Stamos 2016-03-30 20:52:58  
Yep, that worked. Yeah, I had it right originally with the sub.job. Then edited it, and placed it back in the wrong place.

Thanks a lot!
 Lakshmi.Diaboli
Offline
サーバ: Lakshmi
Game: FFXI
Posts: 17
By Lakshmi.Diaboli 2016-04-03 21:26:34  
Hello,

Got a quick question, I am using a semi modified kinematic file and for some reason I cannot get Hachirin-no-obi to work with it.

Any one have any idea on how I could fix this error?

Here's a pastebin of my BLM script.

http://pastebin.com/sF4Y1BiE
 Bismarck.Speedyjim
Offline
サーバ: Bismarck
Game: FFXI
user: speedyjim
Posts: 516
By Bismarck.Speedyjim 2016-04-03 21:30:41  
Lakshmi.Diaboli said: »
Hello,

Got a quick question, I am using a semi modified kinematic file and for some reason I cannot get Hachirin-no-obi to work with it.

Any one have any idea on how I could fix this error?

Here's a pastebin of my BLM script.

http://pastebin.com/sF4Y1BiE
You have two job post_midcast functions on lines 385 & 398. Combine then into one and test again.
 Lakshmi.Diaboli
Offline
サーバ: Lakshmi
Game: FFXI
Posts: 17
By Lakshmi.Diaboli 2016-04-03 21:47:37  
Hmmm it's swapping on free nukes, but when flagged for magicburst its still defaulting to the refoccilation stone.
Code
function job_post_midcast(spell, action, spellMap, eventArgs)
    if spell.skill == 'Elemental Magic' then
        if spell.element == world.day_element or spell.element == world.weather_element then
            equip(sets.midcast['Elemental Magic'], {waist="Hachirin-No-Obi"})
			    if spell.skill == 'Elemental Magic' and state.MagicBurst.value then
					equip(sets.magic_burst)
			end
        end
    end


I tried reversing it and still the same problem
 Ragnarok.Flippant
Offline
サーバ: Ragnarok
Game: FFXI
user: Enceladus
Posts: 660
By Ragnarok.Flippant 2016-04-04 00:51:16  
Well, you're equipping your magic burst set after you equip obi. Also, you don't want to nest the MB rules, because then you're only equipping your MB set if day/weather match.
Code
function job_post_midcast(spell, action, spellMap, eventArgs)
	if spell.skill == 'Elemental Magic' then
		if state.MagicBurst.value then
			equip(sets.magic_burst)
		end
		if spell.element == world.day_element or spell.element == world.weather_element then
			equip({waist="Hachirin-No-Obi"})	
		end
	end
end

Keep in mind that Mote's rules should already be handling most of your equip rules, so you don't need to equip your regular nuking set again; you just need to equip the sash. (Ideally, they should be handling your MB set too, but I'm not acquainted enough to tell you how to set that up correctly.)
 Asura.Fragiledream
Offline
サーバ: Asura
Game: FFXI
user: Faapdiope
Posts: 5
By Asura.Fragiledream 2016-04-05 22:37:13  
Found this lua in the SCH sticky. Keep getting the Two-Handed weapon error when switching from club/shield to staff/grip.
Offline
Posts: 42
By inkydo 2016-04-11 08:54:52  
I am haven trouble understanding this part of the PUP lua i found someplace sorry i forget where...
Code
-- Setup vars that are user-independent.  state.Buff vars initialized here will automatically be tracked.
function job_setup()
    -- List of pet weaponskills to check for
    petWeaponskills = S{"Slapstick", "Knockout", "Magic Mortar",
        "Chimera Ripper", "String Clipper",  "Cannibal Blade", "Bone Crusher", "String Shredder",
        "Arcuballista", "Daze", "Armor Piercer", "Armor Shatterer"}
    
    -- Map automaton heads to combat roles
    petModes = {
        ['Harlequin Head'] = 'Melee',
        ['Sharpshot Head'] = 'Ranged',
        ['Valoredge Head'] = 'Tank',
        ['Stormwaker Head'] = 'Magic',
        ['Soulsoother Head'] = 'Heal',
        ['Spiritreaver Head'] = 'Nuke'
        }

    -- Subset of modes that use magic
    magicPetModes = S{'Nuke','Heal','Magic'}
    
    -- Var to track the current pet mode.
    state.PetMode = M{['description']='Pet Mode', 'None', 'Melee', 'Ranged', 'Tank', 'Magic', 'Heal', 'Nuke'}
	

end


I say this as It seems to work well,however i do not understand how i can improve on versatility of a a pup.

Petmodes are limited with this current config.... SS head is used Only for healing.... However My High hp and TANK only PDT setup like most pups use SS/VE. Is there a way to add a hybrid like this to the Petmodes?
 Odin.Lygre
Offline
サーバ: Odin
Game: FFXI
user: Dylaudid
Posts: 89
By Odin.Lygre 2016-04-11 21:22:41  
Code
function get_pet_mode()
    if pet.isvalid then
		if pet.head == 'Soulsoother Head' then
			if pet.frame == 'Stormwaker Frame' then
				return 'Heal'
			elseif pet.frame == 'Harlequin Frame' then
				return 'Tank'
			elseif pet.frame == 'Valoredge Frame' then
				return 'Tank'
			else 
				return 'None'
			end
		elseif pet.head == 'Valoredge Head' then
			if pet.frame == 'Valoredge Frame' then
				return 'Melee'
			elseif pet.frame == 'Sharpshot Frame' then
				return 'Melee'
			else
				return 'None'
			end
		elseif pet.head == 'Stormwaker Head' then	
			if pet.frame == 'Stormwaker Frame' then	
				return 'Magic'
			else
				return 'None'
			end
		elseif pet.head == 'Spiritreaver Head' then
			if pet.frame == 'Stormwaker Frame' then
				return 'Nuke'
			else
				return 'None'
			end
		elseif pet.head == 'Sharpshot Head' then	
			if pet.frame == 'Sharpshot Frame' then
				return 'Ranged'
			elseif pet.frame == 'Valoredge Frame' then
				return 'Melee'
			else
				return 'None'
			end
		else
			return 'None'
		end
        --return petModes[pet.head] or 'None'
    else
        return 'None'
    end
end

I had the same qualm with it, so I changed the function to this. Just edit how you want your combinations of head+frame to be defined in terms of Melee, Ranged, Tank, Magic, Heal, Nuke.
Offline
Posts: 42
By inkydo 2016-04-12 08:05:08  
Odin.Lygre said: »
Code
function get_pet_mode()
    if pet.isvalid then
		if pet.head == 'Soulsoother Head' then
			if pet.frame == 'Stormwaker Frame' then
				return 'Heal'
			elseif pet.frame == 'Harlequin Frame' then
				return 'Tank'
			elseif pet.frame == 'Valoredge Frame' then
				return 'Tank'
			else 
				return 'None'
			end
		elseif pet.head == 'Valoredge Head' then
			if pet.frame == 'Valoredge Frame' then
				return 'Melee'
			elseif pet.frame == 'Sharpshot Frame' then
				return 'Melee'
			else
				return 'None'
			end
		elseif pet.head == 'Stormwaker Head' then	
			if pet.frame == 'Stormwaker Frame' then	
				return 'Magic'
			else
				return 'None'
			end
		elseif pet.head == 'Spiritreaver Head' then
			if pet.frame == 'Stormwaker Frame' then
				return 'Nuke'
			else
				return 'None'
			end
		elseif pet.head == 'Sharpshot Head' then	
			if pet.frame == 'Sharpshot Frame' then
				return 'Ranged'
			elseif pet.frame == 'Valoredge Frame' then
				return 'Melee'
			else
				return 'None'
			end
		else
			return 'None'
		end
        --return petModes[pet.head] or 'None'
    else
        return 'None'
    end
end

I had the same qualm with it, so I changed the function to this. Just edit how you want your combinations of head+frame to be defined in terms of Melee, Ranged, Tank, Magic, Heal, Nuke.

thanks for the help!! I am still new to GS and learning everyday, that said I think this code should replace this...
Code
-- Get the pet mode value based on the equipped head of the automaton.
-- Returns nil if pet is not valid.
function get_pet_mode()
    if pet.isvalid then
        return petModes[pet.head] or 'None'
    else
        return 'None'
    end
end


Also Would I remove this...
Code
    -- Map automaton heads to combat roles
    petModes = {
        ['Harlequin Head'] = 'Melee',
        ['Sharpshot Head'] = 'Ranged',
        ['Valoredge Head'] = 'Tank',
        ['Stormwaker Head'] = 'Magic',
        ['Soulsoother Head'] = 'Heal',
        ['Spiritreaver Head'] = 'Nuke'
        }

and this would work properly then...
Code
   -- Var to track the current pet mode.
    state.PetMode = M{['description']='Pet Mode', 'None', 'Melee', 'Ranged', 'Tank', 'Magic', 'Heal', 'Nuke'}


Sorry if they are dumb questions.
Offline
Posts: 42
By inkydo 2016-04-12 08:19:08  
Quote:
Sorry if they are dumb questions.
Should have taken more time with the code...

Never mind
Quote:
Also Would I remove this...
Code
-- Map automaton heads to combat roles
petModes = {
['Harlequin Head'] = 'Melee',
['Sharpshot Head'] = 'Ranged',
['Valoredge Head'] = 'Tank',
['Stormwaker Head'] = 'Magic',
['Soulsoother Head'] = 'Heal',
['Spiritreaver Head'] = 'Nuke'
}


As this needs to be in it...took me a sec or 2 to figure out what you were doing, your additional logic compensates for it by returning it said state 'Melee' or 'tank'


thanks!
 Cerberus.Shadowmeld
Offline
サーバ: Cerberus
Game: FFXI
Posts: 1786
By Cerberus.Shadowmeld 2016-04-12 08:58:23  
Maybe try it this way?
Code
petmodes = {
	['Harlequin Head'] = {},
	['Soulsoother Head'] = {['Stormwaker Frame'] = 'Heal', ['Harlequin Frame'] = 'Tank', ['Valoredge Frame'] = 'Tank'},
	['Valoredge Head'] = {['Valoredge Frame'] = 'Melee', ['Sharpshot Frame'] = 'Melee'},
	['Stormwaker Head'] = {['Stormwaker Frame'] = 'Magic'},
	['Spiritreaver Head'] = {['Stormwaker Frame'] = 'Nuke'},
	['Sharpshot Head'] = {['Sharpshot Frame'] = 'Ranged', ['Valoredge Frame'] = 'Melee'}
}

function get_pet_mode()

	if pet.isvalid then
		return petmodes[pet.head][pet.frame] or 'None'
	end

end


This way you don't significantly change or short circuit the functionality. It would just require expanding the petmodes table with the frame options. how I've done it above. Because the get_pet_mode function doesn't check if modes[pet.head] is not nil, you have to have the ['Harlequin Head'] = {} in petmodes or you'll get an error.

Edit: forgot petmodes
Offline
Posts: 42
By inkydo 2016-04-12 09:36:21  
Cerberus.Shadowmeld said: »
Maybe try it this way?
Code
petmodes = {
	['Harlequin Head'] = {},
	['Soulsoother Head'] = {['Stormwaker Frame'] = 'Heal', ['Harlequin Frame'] = 'Tank', ['Valoredge Frame'] = 'Tank'},
	['Valoredge Head'] = {['Valoredge Frame'] = 'Melee', ['Sharpshot Frame'] = 'Melee'},
	['Stormwaker Head'] = {['Stormwaker Frame'] = 'Magic'},
	['Spiritreaver Head'] = {['Stormwaker Frame'] = 'Nuke'},
	['Sharpshot Head'] = {['Sharpshot Frame'] = 'Ranged', ['Valoredge Frame'] = 'Melee'}
}

function get_pet_mode()

	if pet.isvalid then
		return petmodes[pet.head][pet.frame] or 'None'
	end

end


This way you don't significantly change or short circuit the functionality. It would just require expanding the petmodes table with the frame options. how I've done it above. Because the get_pet_mode function doesn't check if modes[pet.head] is not nil, you have to have the ['Harlequin Head'] = {} in petmodes or you'll get an error.

Edit: forgot petmodes

This is what i was trying to do in the first place, but could not figure out the proper way to add the body to the logic and create a alternate Head and body combo!

I will see what works best thanks all for input!
Offline
Posts: 5188
By Faelar 2016-04-14 10:24:24  
Having trouble wrapping my head around Gearswap in general. 5 years ago I was an avid SpellCast user, but now that I've returned to the game it seems it's no longer used. For the past few days I have been going over Gearswap/lua tutorials but I'm still having trouble with it. I'm not trying to make anything fancy, just 2 types of lua: 1 for mages with idle, precast, cure, and regen sets....and one for DD with TP, WS, and idle sets. All the "basic" example luas I've looked at on the job guides posted here look more advanced than they say and are just confusing me even more.
 Lakshmi.Byrth
VIP
Offline
サーバ: Lakshmi
Game: FFXI
user: Byrthnoth
Posts: 6184
By Lakshmi.Byrth 2016-04-14 10:30:44  
I tried this as a generic Lua file:
http://pastebin.com/dp5EPCre

The rules are pretty simple.
[+]
Offline
Posts: 5188
By Faelar 2016-04-14 10:38:34  
Lakshmi.Byrth said: »
I tried this as a generic Lua file:
http://pastebin.com/dp5EPCre

The rules are pretty simple.

The sets I think I get, but when it gets down to the bottom and the functions, it goes over my head. ._.;
 Lakshmi.Byrth
VIP
Offline
サーバ: Lakshmi
Game: FFXI
user: Byrthnoth
Posts: 6184
By Lakshmi.Byrth 2016-04-14 10:56:37  
The precast function is called during a time period analogous to Spellcast's "precast" phase. The function executes from top to bottom, and equip commands are applied sequentially (and left to right within an equip command) in order to generate one set that will be equipped after the function ends.

So if you attempt to use a job ability, the precast function is called and it passes in the resources line for the job ability that's about to be used as a table (the "spell" variable). Tables are are collections of keys and their associated values. There are two ways to index them:
1) spell.prefix
2) spell["prefix"] or spell['prefix']
So spell.prefix (the first reference in the precast function) gives the value of the prefix key of the spell table. In this case, we're checking to see whether that value is "/jobability" in the first "if" statement, which it is.

Because it satisfies the conditional, it executes the following equip command:
Code
equip(sets.JA["Base"],sets.JA[spell.english] or {})

This adds the sets.JA["Base"] set (the set associated with the Base key of the table associated with the JA key of the sets table) and then the sets.JA[spell.english] set to the collection of gear we're trying to equip. "spell.english" is the spell's name, in this case. If it does not find sets.JA[spell.english], the function is passed an empty table "{}".

The first conditional was satisfied, so the "elseif" statements are skipped and the precast function ends. At this point, an equipment set has been generated and gearswap sends out a packet that puts the gear on.
Offline
Posts: 5188
By Faelar 2016-04-14 11:28:58  
How do this look? Just trying to gauge if I understand it properly.

Please ignore the gear, it's very old.
Code
function get_sets()
   
   -- This set will be equipped when idle
    sets.Idle = {
		main="Owleyes",
		sub="Genbu's Shield",
        ammo="Incantor Stone",
        head="Orison Cap +2",
        body="Orison Bliaud +2",
        hands="Serpentes Cuffs",
        legs="Orsn. Pantaln. +2",
        feet="Serpentes Sabots",
		waist="Cleric's Belt",
        neck="Twilight Torque",
        left_ear="Loquac. Earring",
        right_ear="Orison Earring",
        left_ring="Omega Ring",
        right_ring="Sirona's Ring",
   
   
   
    -- This set will be equipped before magic is cast
    sets.FastCast = {
        ammo="Incantor Stone",
        head="Walahra Turban",
        body="Goliard Saio",
        hands="Blessed Mitts",
        legs="Blessed Trousers",
        feet="Orsn. Duckbills +2",
		waist="Austerity Belt",
        neck="Orison Locket",
        left_ear="Loquac. Earring",
        right_ear="Orison Earring",
        left_ring="Omega Ring",
        right_ring="Sirona's Ring",
    }
	
	-- This set will be equipped before healing magic is cast
    sets.Cure = {
		main="Tefnut Wand",
		sub="Genbu's Shield",
        ammo="Incantor Stone",
        head="Orison Cap +2",
        body="Facio Bliaut",
        hands="Augur's Gloves",
        legs="Orsn. Pantaln. +2",
        feet="Orsn. Duckbills +2",
		waist="Austerity Belt",
        neck="Orison Locket",
        left_ear="Loquac. Earring",
        right_ear="Orison Earring",
        left_ring="Omega Ring",
        right_ring="Sirona's Ring",
    }
end

 
function precast(spell)
    if spell.prefix == '/ma' then
        -- Magic precast
        equip(sets.FastCast)
    end
end
 
function midcast(spell)
    if spell.prefix == '/Cur' or spell.prefix == '/Cure' then
        -- Magic Usage
        equip(sets.Cure)
    end
end
 
function aftercast(spell)
    if player.status=='Idle' then
        equip(sets.Idle)
    end
end
 Ragnarok.Flippant
Offline
サーバ: Ragnarok
Game: FFXI
user: Enceladus
Posts: 660
By Ragnarok.Flippant 2016-04-14 11:48:58  
spell.prefix will return the full prefix to the action, like 'magic' instead of 'ma'.

It will also never be 'Cur' or 'Cure' because those are in the name of the spell, not the prefix (the prefix for these is still 'magic'). Instead, you want to know if the name of the spell contains those letters. One option is to use the find method.
Code
function midcast(spell)
    if string.find(spell.english,"Cur") and spell.english ~= "Cursna" then
        -- Magic Usage
        equip(sets.Cure)
    end
end

Note that you don't also have to look for "Cure" because "Cur" is a part of "Cure" already. The second part, "spell.english ~= "Cursna"" means if the name of the spell is NOT Cursna, since you don't want to equip your cure sets for that. Alternatively, you can search for "Cure" or "Cura", which would include cures, curas, and curagas, and exclude Cursna.

Also, you have no closing brace for your sets.Idle set.
First Page 2 3 ... 95 96 97 ... 182 183 184
Log in to post.