Custom Weapon Class -> WeaponSkill Command

Language: JP EN DE FR
New Items
2023-11-19
users online
Forum » FFXI » Jobs » Warrior » Custom Weapon Class -> WeaponSkill Command
Custom Weapon Class -> WeaponSkill Command
Offline
Posts: 182
By Sammeh 2017-12-22 17:16:04
Link | Quote | Reply
 
I've seen this in a handful of pet LUA's and then otherwise hard-coded based on specific weapon names in people's personal LUA's but I haven't seen this based more generically on weapon type.

I've been playing around with various weapons recently (sword, axe) vs the normal Great Sword / Great Axe that I'm used to.

So what this allows is a single Macro to issue a weapon skill regardless of Weapon Class or weapon name. So I make 3 macros "/console gs c ws 1" "/console gs c ws 2" "/console gs c ws 3" and then depending on Weapon class it matches correctly and then sends the weaponskill. Can run '/console gs c wslist' to print to screen what your options 1/2/3 are. Can make the list as long or short as you want.

In user_setup function do the following:
Code
	res = require 'resources'
	
	WeaponSkill = {
		["Great Sword"] = {
			["1"] = "Resolution",
			["2"] = "Scourge",
			["3"] = "Shockwave"
		},
		["Great Axe"] = {
			["1"] = "Upheaval",
			["2"] = "King's Justice",
			["3"] = "Full Break"
		},
		["Axe"] = {
			["1"] = "Mistral Axe",
			["2"] = "Decimation",
			["3"] = "Cloudsplitter"
		},
		["Sword"] = {
			["1"] = "Savage Blade",
			["2"] = "Requiescat",
			["3"] = "Vorpal Blade"
		},
	}


then my job_self_command function:
Code
 function job_self_command(command)
	if command[1]:lower() == "ws" and command[2] ~= nil then
		local EquipedGear = windower.ffxi.get_items()
		local CurrentSkill
		if EquipedGear.equipment.main == nil or EquipedGear.equipment.main == 0 then 
		  CurrentSkill = "Hand-to-Hand"
		else 
		  CurrentSkill = res.skills[res.items[windower.ffxi.get_items(EquipedGear.equipment.main_bag, EquipedGear.equipment.main).id].skill].en
		end
		send_command('input /ws '..WeaponSkill[CurrentSkill][command[2]])
	end
	if command[1]:lower() == "wslist" then
		local EquipedGear = windower.ffxi.get_items()
		local CurrentSkill
		if EquipedGear.equipment.main == nil or EquipedGear.equipment.main == 0 then 
		  CurrentSkill = "Hand-to-Hand"
		else 
		  CurrentSkill = res.skills[res.items[windower.ffxi.get_items(EquipedGear.equipment.main_bag, EquipedGear.equipment.main).id].skill].en
		end
		windower.add_to_chat(2,"WS List:")
		for i,v in pairs(WeaponSkill[CurrentSkill]) do
			windower.add_to_chat(2,i..") "..v)
		end
	end
end


Example:
YouTube Video Placeholder
[+]
Log in to post.