Arislan Admin replied

509 weeks ago

So for SCH (and BLM), it made sense to me to organize my macros by spell elements… each element has it's own palette:



Some of the macros that I always want on hand (sleep, drain/aspir, adloquium, cure 4, dispel, gravity, sublimation) I included in every palette. Most macros are really simple, single-liners, like /ma "Spell" <t>, since gearswap handles everything once the spell is triggered.

The exception to this is Immanence:



These are the chains I'm using for each element:

  • Fire: Fusion,
  • Ice: Distortion,
  • Wind: Fragmentation,
  • Stone: Scission,
  • Thunder: Fragmentation,
  • Water: Distortion,
  • Dark: Gravitation,
  • Light: Fusion.
,
List of SCH self-chains (oh hi there Til): SCH solo skillchain help


So scrolling through a bunch of palettes on the fly kind of sucks… so I key binded each palette to [windows key]-[palette #] through the windower init.txt file (I also key binded my most-used enhancing spells this way too so I don't have to make macros for them for each job):

	//Personal Key Binds
	bind !m input /map
	bind !e input /ma Haste <stpc>
	bind !r input /ma Refresh <stpc>
	bind !t input /ma Blink <me>
	bind !y input /ma Phalanx <me>
	bind !u input /ma Stoneskin <me>
	bind !i input /ma Aquaveil <me>

	bind @1 input /macro set 1
	bind @2 input /macro set 2
	bind @3 input /macro set 3
	bind @4 input /macro set 4
	bind @5 input /macro set 5
	bind @6 input /macro set 6
	bind @7 input /macro set 7
	bind @8 input /macro set 8
	bind @9 input /macro set 9
	bind @0 input /macro set 10

You might want to change the letters, since our keyboard layouts are different – I used the row of letters right under the numbers.


I also key-binded my favorite SCH strategems in my lua:

	send_command('bind ^- gs c scholar light')
	send_command('bind ^= gs c scholar dark')
	send_command('bind !- gs c scholar addendum')
	send_command('bind != gs c scholar addendum')
	send_command('bind ^[ gs c scholar power')
	send_command('bind ^] gs c scholar accuracy')
	send_command('bind ![ gs c scholar aoe')
	send_command('bind !] gs c scholar duration')

Link to my full lua file: Arislan-SCH Lua


last edited 509 weeks ago by Arislan

Verohawke Admin replied

509 weeks ago

WOAW

BIG BIG THANK YOU!

/copy

Arislan Admin replied

509 weeks ago

Changes to console text (replace existing values in init.txt):

	console_color 128 255 255 255
	console_font arial 9

Tilanna Default replied

508 weeks ago

Not using my shortcuts any more huh? Sadness ;_;

Arislan Admin replied

508 weeks ago

I was too lazy to figure out why it was interfering with my other job luas. ;)

Ever coming back? Lot of fun stuff we could duo/low-man.

Tilanna Default replied

508 weeks ago

Oh hm it was interfering huh? I do kinda wonder why.

Eh, I mean I will come back, but probably need to stay away a while longer. The super Skillchains look like they'd be awesome, but there's no way I'm really going to get an Aeonic any time soon. I'm having fun being nearly a total hermit and playing single player games :p

Debo replied

507 weeks ago

THESE DONT WORK

Arislan Admin replied

506 weeks ago

So this part sets up the Death Mode toggle. Works the same as MB toggle, but hot-key is WindowsKey-~. The mode will lock all your equipment until you cast Death… you can cast whatever spells you want and it will keep your MP constant… only way to reset it is if you toggle Death Mode again or cast Death:

function user_setup()
	state.OffenseMode:options('None', 'Normal')
	state.CastingMode:options('Normal', 'Spaekona', 'Resistant')
	state.IdleMode:options('Normal', 'PDT')
	
	state.MagicBurst = M(false, 'Magic Burst')
	state.DeathMode = M(false, "Death Mode")

	lowTierNukes = S{'Stone', 'Water', 'Aero', 'Fire', 'Blizzard', 'Thunder',
		'Stone II', 'Water II', 'Aero II', 'Fire II', 'Blizzard II', 'Thunder II',
		'Stone III', 'Water III', 'Aero III', 'Fire III', 'Blizzard III', 'Thunder III',
		'Stonega', 'Waterga', 'Aeroga', 'Firaga', 'Blizzaga', 'Thundaga',
		'Stonega II', 'Waterga II', 'Aeroga II', 'Firaga II', 'Blizzaga II', 'Thundaga II'}
	
	-- Additional local binds
	send_command('bind ^` input /ma Stun <t>')
	send_command('bind !` gs c toggle MagicBurst')
	send_command('bind @` gs c toggle DeathMode')
	send_command('bind !o input /ma "Shock Spikes" <me>')
	send_command('bind ^, input /ma Sneak <stpc>')
	send_command('bind ^. input /ma Invisible <stpc>')

	select_default_macro_book()
end

-- Called when this job file is unloaded (eg: job change)
function user_unload()
	send_command('unbind ^`')
	send_command('unbind !`')
	send_command('unbind @`')
	send_command('unbind !o')
	send_command('unbind ^,')
	send_command('unbind !.')
end

This is where you define the set that Death Mode will equip:

	sets.precast.Death = {
		main="Grioavolr",
		sub="Niobid Strap",
		ammo="Strobilus",
		head="Pixie Hairpin +1",
		body="Wicce Coat +1",
		hands="Amalric Gages",
		legs="Merlinic Shalwar",
		feet="Merlinic Crackows",
		neck="Mizu. Kubikazari",
		ear1="Barkaro. Earring",
		ear2="Static Earring",
		ring1="Mephitas's Ring +1",
		ring2="Mephitas's Ring",
		back="Seshaw Cape",
		waist="Yamabuki-no-Obi",
		}

	sets.midcast.Death = set_combine(sets.precast.Death, {
		waist=gear.ElementalObi,
		})

This is where the lua is told to reset Death Mode on Death cast:

function job_aftercast(spell, action, spellMap, eventArgs)
	if not spell.interrupted then
		if spell.english == 'Death' then
			state.DeathMode:reset()
			enable('ammo', 'head', 'neck', 'ear1', 'ear2', 'body', 'hands', 'ring1', 'ring2', 'back', 'waist', 'legs', 'feet')
		end
		-- Lock feet after using Mana Wall.
		if spell.english == 'Mana Wall' then
			enable('feet')
			equip(sets.buff['Mana Wall'])
			disable('feet')
		end 
	end
end

This is where lua locks your equip for Death Mode:

function customize_idle_set(idleSet)
	if state.DeathMode.current == 'on' then
		equip(sets.precast.Death)
		disable('ammo', 'head', 'neck', 'ear1', 'ear2', 'body', 'hands', 'ring1', 'ring2', 'back', 'waist', 'legs', 'feet')
	else
		enable('ammo', 'head', 'neck', 'ear1', 'ear2', 'body', 'hands', 'ring1', 'ring2', 'back', 'waist', 'legs', 'feet')
	end
	if player.mpp < 51 then
		idleSet = set_combine(idleSet, sets.latent_refresh)
	end
	
	return idleSet
end

Verohawke Admin replied

506 weeks ago

/Toggle Death!

Thank you!!! (*^_^*)

Verohawke Admin replied

505 weeks ago

Sparks to Gil Conversion LUA

Create a LUA in addons/sparks/sparks.lua with this code:

require 'pack'
require 'lists'

windower.register_event('outgoing chunk',function(id,org)
    if id == 0x5B then
        local name = (windower.ffxi.get_mob_by_id(org:unpack('I',5)) or {}).name
        if L{'Eternal Flame','Rolandienne','Isakoth','Fhelm Jobeizat'}:contains(name) then
            local outstr = org:sub(1,8)
            local choice = org:unpack('I',9)
            if choice == 0 or choice == 0x40000000 then
                return outstr..string.char(9,0,0x29,0)..org:sub(13) -- Acheron Shield
            end
        end
    end
end)

Load it (in game type //lua load sparks);
enter and exit the menu (can use escape or the leave menu option at the bottom). It'll automatically buy Acheron Shields.
Please log in to post a reply.