Can Someone Teach Me To Gearswap On Geo

Eorzea Time
 
 
 
Language: JP EN FR DE
Version 3.1
New Items
users online
Forum » FFXI » Jobs » Geomancer » Can someone teach me to gearswap on geo
Can someone teach me to gearswap on geo
 Fenrir.Acey
Offline
Server: Fenrir
Game: FFXI
user: abyssal
Posts: 475
By Fenrir.Acey 2016-04-10 15:55:40
Link | Quote | Reply
 
I'm pushing around 700 skill right now with no jps I have most artifact relic and enpy gear. I'm looking for someone to teach me how to use gearswap if on Asura I would gladly pay you. Pretty much what I want in it is a indiset, geo set, Macc/mab, set and damage taken set. I just have know knowledge of how gearswap works or how to make it ect any help would be appreciated
 Fenrir.Acey
Offline
Server: Fenrir
Game: FFXI
user: abyssal
Posts: 475
By Fenrir.Acey 2016-04-11 08:13:41
Link | Quote | Reply
 
Bump
 Odin.Lygre
Offline
Server: Odin
Game: FFXI
user: Dylaudid
Posts: 89
By Odin.Lygre 2016-04-11 08:29:34
Link | Quote | Reply
 
Here's somewhere to start.
Code
function get_sets()
    mote_include_version = 2
    include('organizer-lib')
    include('Mote-Include.lua')
end
 
function job_setup()
    indi_timer = ''
    indi_duration = 324
    state.OffenseMode:options('None', 'Normal')
    state.CastingMode:options('Normal', 'Resistant')
    state.IdleMode:options('Normal', 'PDT')
 
    state.MagicBurst = M(false, 'Magic Burst')
 
    gear.default.weaponskill_waist = "Fotia Belt"
 
    select_default_macro_book()
 
    custom_timers = {}
end
 
-------------------------------------------------------------------------------
 
function init_gear_sets()
 
--------------------------[Job Ability sets]------------------------------
 
    sets.precast.JA.Bolster = {body="Bagua Tunic +1"}
    sets.precast.JA['Life Cycle'] = {body="Geomancy Tunic +1"}
    sets.precast.JA['Full Circle'] = {head="Azimuth hood +1",hands="Bagua Mitaines +1"}
    sets.precast.JA['Radial Arcana'] = {feet="Bagua sandals +1"}
 
--------------------------[Fast Cast sets]------------------------------
 
    sets.precast.FC = {main="Solstice",sub="Genmei shield",range=empty,ammo="Sapience orb",
        head=gear.FC_head,neck="Voltsurge torque",ear1="Enchanter earring +1",ear2="Loquacious Earring",
        body="Anhur Robe",hands="Helios gloves",ring1="Prolix Ring",ring2="Weatherspoon Ring",
        back="Lifestream Cape",waist="Witful Belt",legs="Geomancy Pants +1",feet=gear.MB_feet }
 
    sets.precast.FC.Stun = {main="Solstice",sub="Genmei shield",range=empty,ammo="Sapience orb",
        head=gear.FC_head,neck="Voltsurge torque",ear1="Enchanter earring +1",ear2="Loquacious earring",
        body="Shango Robe",hands="Helios gloves",ring1="Prolix Ring",ring2="Weatherspoon Ring",
        back="Lifestream Cape",waist="Witful Belt",legs="Geomancy pants +1",feet=gear.MB_feet }
 
    sets.precast.FC.Cure = set_combine(sets.precast.FC, {main="Tamaxchi",sub="Genbu's shield",
        body="Heka's Kalasiris",
        back="Pahtli Cape",legs="Doyen pants",feet="Vanya clogs"})
 
    sets.precast.FC['Elemental Magic'] = set_combine(sets.precast.FC, {ear2="Barkarole earring",
        hands="Bagua Mitaines +1"})
 
--------------------------[Weaponskill sets]------------------------------
 
    sets.precast.WS = {
        head="Befouled crown",neck="Fotia gorget",ear1="Zennaroi Earring",ear2="Brutal Earring",
        body="Onca Suit",hands=empty,ring1="Rajas Ring",ring2="Petrov Ring",
        back="Refraction cape",waist="Fotia Belt",legs=empty,feet=empty }
 
 
    sets.precast.WS['Flash Nova'] = {range=empty,ammo="Dosis Tathlum",
        head=gear.nuke_head,neck="Fotia gorget",ear1="Friomisi Earring",ear2="Moonshade Earring",
        body="Amalric doublet",hands="Helios gloves",ring1="Shiva Ring +1",ring2="Weatherspoon Ring",
        back="Toro Cape",waist="Fotia Belt",legs=gear.MB_legs,feet=gear.nuke_feet }
 
    sets.precast.WS['Starlight'] = {ear2="Moonshade Earring"}
 
    sets.precast.WS['Moonlight'] = {ear2="Moonshade Earring"}
 
--------------------------[Midcast sets]------------------------------
 
    sets.midcast.FastRecast = {main="Solstice",sub="Genmei shield",range=empty,ammo="Sapience orb",
        head=gear.FC_head,neck="Voltsurge torque",ear1="loquacious earring",ear2="Enchanter earring +1",
        body="Shango robe",hands="Helios gloves",ring1="Prolix ring",ring2="Weatherspoon ring",
        back="Swith cape +1",waist="Ninurta's sash",legs="Geomancy Pants +1",feet=gear.nuke_feet }
 
    sets.midcast.Stun = {main="Solstice",sub="Genmei shield",range=empty,ammo="Sapience orb",
        head=gear.FC_head,neck="Voltsurge torque",ear1="Enchanter earring +1",ear2="Loquacious earring",
        body="Shango Robe",hands="Helios gloves",ring1="Prolix Ring",ring2="Weatherspoon Ring",
        back="Lifestream Cape",waist="Witful Belt",legs="Geomancy pants +1",feet=gear.MB_feet }
 
--------------------------[Geomancy sets]------------------------------
 
    sets.midcast.Geomancy = {main="Solstice",sub="Genmei shield",range="Dunna",ammo=empty,
        head="Azimuth hood +1",neck="Incanter's Torque",ear1="Gifted Earring",ear2="Calamitous earring",
        body="Azimuth Coat +1",hands="Geomancy mitaines +1",
        back="Lifestream Cape",waist="Pythia sash +1",legs="Azimuth tights +1",feet="Azimuth gaiters +1"}
 
    sets.midcast.Geomancy.Indi = {main="Solstice",sub="Genmei shield",range="Dunna",ammo=empty,
        head="Azimuth Hood +1",neck="Incanter's torque",ear1="Gifted Earring",ear2="Calamitous earring",
        body="Azimuth Coat +1",hands="Geomancy mitaines +1",
        back="Lifestream Cape",waist="Pythia sash +1",legs="Bagua pants +1",feet="Azimuth gaiters +1"}
 
--------------------------[Some White Magic sets]------------------------------
 
    sets.midcast.Cure = {main="Tamaxchi",sub="Genmei shield",
        head="Telchine cap",neck="Incanter's torque",ear1="Gifted earring",ear2="Beatific earring",
        body="Heka's kalasiris",hands="Telchine gloves",ring1="Ephedra Ring",ring2="Sirona's Ring",
        back="Swith Cape +1",waist="Pythia sash +1",legs="Geomancy Pants +1",feet="Vanya clogs"}
     
    sets.midcast.Curaga = sets.midcast.Cure
 
    sets.midcast['Enhancing Magic'] = {
        head="Telchine Cap",neck="Incanter's Torque",ear1="Andoaa earring",
        body="Telchine Chas.",hands="Telchine gloves",
        back="Fi follet cape",waist="Olympus Sash",legs="Telchine Braconi",feet="Telchine Pigaches"}
     
    sets.midcast.Regen = set_combine(sets.midcast['Enhancing Magic'], {main="Bolelabunga",sub="Genmei shield"})
     
    sets.midcast.Haste = set_combine(sets.midcast['Enhancing Magic'], 
        {ammo="Sapience orb",
        neck="Voltsurge torque",ear1="Enchanter earring +1",ear2="Loquacious earring",
        ring1="Prolix ring",
        back="Swith cape +1",waist="Ninurta's sash"})
 
    sets.midcast.Refresh = set_combine(sets.midcast['Enhancing Magic'],{head="Amalric coif"})
 
    sets.midcast.Aquaveil = set_combine(sets.midcast['Enhancing Magic'],
        {head="Amalric coif",
        waist="Emphatikos Rope"})   
 
    sets.midcast.Protectra = {ring1="Sheltered Ring"}
 
    sets.midcast.Shellra = {ring1="Sheltered Ring"}
 
--------------------------[Black Magic sets & Magic burst set]------------------------------
 
    sets.midcast['Dark Magic'] = {main="Rubicundity",sub="Genmei shield",range=empty,ammo="Pemphredo tathlum",
        head="Bagua galero +1",neck="Incanter's Torque",ear1="Barkarole Earring",ear2="Gwati Earring",
        body="Shango robe",hands="Amalric gages",ring1="Evanescence Ring",ring2="Archon Ring",
        back="Perimede Cape",waist="Fucho-no-obi",legs="Azimuth tights +1",feet=gear.DA_feet }
 
    sets.midcast['Drain'] = set_combine(sets.midcast['Dark Magic'], {head="Pixie Hairpin +1", legs=gear.DA_legs })
 
    sets.midcast['Aspir'] = sets.midcast['Drain']
 
    sets.midcast['Enfeebling Magic'] = {main="Solstice",sub="Genmei shield", ammo="Pemphredo tathlum",
        head=gear.nuke_head, neck="Incanter's torque", ear1="Gwati earring", ear2="Enchanter earring +1",
        body="Shango Robe", hands="Helios gloves", ring1="Weatherspoon Ring", ring2="Sangoma Ring",
        back="Lifestream cape", waist="Rumination sash", legs="Psycloth lappas", feet="Bagua sandals +1" }
 
    sets.midcast['Elemental Magic'] = {main="Solstice",sub="Genmei shield",range=empty,ammo="Pemphredo tathlum",
        head=gear.nuke_head,neck="Saevus pendant +1",ear1="Barkarole Earring",ear2="Friomisi Earring",
        body=gear.nuke_body,hands="Amalric gages",ring1="Shiva Ring +1",ring2="Shiva Ring +1",
        back="Toro Cape",waist="Refoccilation Stone",legs=gear.nuke_legs,feet=gear.nuke_feet }
 
    sets.midcast['Elemental Magic'].Resistant = {main="Solstice",sub="Genmei shield",range=empty,ammo="Pemphredo tathlum",
        head=gear.nuke_head,neck="Sanctity Necklace",ear1="Barkarole Earring",ear2="Friomisi Earring",
        body=gear.nuke_body,hands="Amalric gages",ring1="Weatherspoon Ring",ring2="Shiva Ring +1",
        back="Toro Cape",waist="Eschan Stone",legs=gear.nuke_legs,feet=gear.nuke_feet }
 
    sets.midcast.Impact = {main="Solstice",sub="Genmei shield",range=empty,ammo="Pemphredo Tathlum",
        head=empty,neck="Sanctity necklace",ear1="Barkarole Earring",ear2="Gwati Earring",
        body="Twilight Cloak",hands="Amalric gages",ring1="Shiva Ring +1",ring2="Archon Ring",
        back="Toro cape",waist="Eschan Stone",legs=gear.nuke_legs,feet=gear.nuke_feet }
 
    sets.magic_burst = {main="Solstice", sub="Genmei shield",
        head=gear.MB_head,neck="Mizukage-no-Kubikazari",
        hands="Amalric gages", ring1="Mujin Band",
        back="Seshaw cape",legs=gear.MB_legs,feet=gear.MB_feet }
 
--------------------------[Idle sets]------------------------------
 
    sets.resting = {main="Bolelabunga",sub="Genmei shield",range="Dunna",ammo=empty,
        head="Befouled Crown",neck="Loricate Torque",ear1="Sanare Earring",ear2="Infused Earring",
        body="Geomancy tunic +1",hands="Bagua Mitaines +1",ring1="Shneddick Ring",ring2="Defending Ring",
        back="Solemnity Cape",waist="Witful Belt",legs="Assiduity Pants +1",feet="Azimuth gaiters +1"}
 
    sets.idle = {main="Bolelabunga",sub="Genmei shield",range="Dunna",ammo=empty,
        head="Befouled Crown",neck="Sanctity Necklace",ear1="Sanare Earring",ear2="Genmei Earring",
        body="Geomancy tunic +1",hands="Bagua Mitaines +1",ring1="Defending Ring",ring2=gear.DarkRing.PDT,
        back="Solemnity Cape",waist="Slipor sash",legs="Assiduity Pants +1",feet="Azimuth gaiters +1"}
 
    sets.idle.PDT = {main="Solstice",sub="Genmei shield",range="Dunna",ammo=empty,
        head="Befouled crown",neck="Loricate Torque",ear1="Sanare Earring",ear2="Genmei Earring",
        body="Vrikodara jupon",hands="Geomancy Mitaines +1",ring1="Defending Ring",ring2=gear.DarkRing.PDT,
        back="Solemnity Cape",waist="Slipor sash",legs="Assiduity pants +1",feet="Azimuth gaiters +1"}
 
    sets.idle.Town = {main="Solstice",sub="Genmei shield",range="Dunna",ammo=empty,
        head="Azimuth Hood +1",neck="Loricate Torque",ear1="Sanare Earring",ear2="Infused Earring",
        body="Azimuth coat +1",hands="Bagua Mitaines +1",ring1=gear.DarkRing.PDT,ring2="Defending Ring",
        back="Solemnity Cape",waist="Slipor Sash",legs="Assiduity Pants +1",feet="Herald's gaiters"}
 
    sets.idle.Weak = {main="Bolelabunga",sub="Genmei shield",range="Dunna",ammo=empty,
        head="Befouled crown",neck="Loricate Torque",ear1="Sanare Earring",ear2="Genmei Earring",
        body="Vrikodara jupon",hands="Geomancy Mitaines +1",ring1="Defending Ring",ring2=gear.DarkRing.PDT,
        back="Solemnity cape",waist="Slipor sash",legs="Doyen Pants",feet="Azimuth gaiters +1"}
 
-------------------------[When Luopan is present]-----------------------------------    
 
    sets.idle.Pet = {main="Solstice",sub="Genmei shield",range="Dunna",ammo=empty,
        head="Azimuth Hood +1",neck="Loricate Torque",ear1="Handler's Earring",ear2="Handler's Earring +1",
        body="Amalric doublet",hands="Geomancy Mitaines +1",ring1="Defending Ring",ring2=gear.DarkRing.PDT,
        back="Lifestream cape",waist="Isa Belt",legs="Assiduity Pants +1",feet="Bagua Sandals +1"}
 
    sets.idle.PDT.Pet = set_combine(sets.idle.Pet, 
        {body="Vrikodara jupon",
        legs="Psycloth lappas"})
 
--------------------------[When Indicolure spell is active]------------------------------    
 
    sets.idle.Indi = set_combine(sets.idle, {neck="Loricate torque"})
    sets.idle.Pet.Indi = set_combine(sets.idle.Pet, {})
    sets.idle.PDT.Indi = set_combine(sets.idle.PDT, {})
    sets.idle.PDT.Pet.Indi = set_combine(sets.idle.PDT.Pet, {feet="Azimuth gaiters +1"})
 
--------------------------[Defense Sets]------------------------------    
 
    sets.defense.PDT = {main="Mafic Cudgel",sub="Genmei shield",range="Dunna",ammo=empty,
        head="Befouled crown",neck="Loricate Torque",ear1="Sanare Earring",ear2="Genmei Earring",
        body="Onca Suit",hands=empty,ring1="Defending Ring",ring2=gear.DarkRing.PDT,
        back="Solemnity cape",waist="Slipor Sash",legs=empty,feet=empty }
 
    sets.defense.MDT = {main="Bolelabunga",sub="Genmei shield",range="Dunna",ammo=empty,
        head="Befouled crown",neck="Loricate Torque",ear1="Sanare Earring",ear2="Zennaroi Earring",
        body="Onca Suit",hands=empty,ring1="Defending Ring",ring2="Archon Ring",
        back="Solemnity cape",waist="Slipor Sash",legs=empty,feet=empty }
 
--------------------------[Misc. sets]------------------------------    
 
    sets.Kiting = {feet="Herald's gaiters"}
 
    sets.latent_refresh = {waist="Fucho-no-obi"}
 
--------------------------[Engaged set(s)]------------------------------    
 
    sets.engaged = {main="Solstice",sub="Genmei shield",range="Dunna",ammo=empty,
        head="Befouled crown",neck="Lissome necklace",ear1="Zennaroi Earring",ear2="Brutal Earring",
        body="Onca Suit",hands=empty,ring1="Defending Ring",ring2="Rajas Ring",
        back="Solemnity Cape",waist="Eschan Stone",legs=empty,feet=empty }
 
end
 
--------------------------[Job functions]------------------------------    
 
--------------------------[Standard events]------------------------------    
 
function job_precast(spell, action, spellMap, eventArgs)
if spell.english == "Impact" then
                                equip(set_combine(sets.precast.FC,{head=empty,body="Twilight Cloak"}))
                    end
end
function job_post_midcast(spell, action, spellMap, eventArts)
    if spell.skill == 'Elemental Magic' and state.MagicBurst.value then
        equip(sets.magic_burst)
    end
end
function job_aftercast(spell, action, spellMap, eventArgs)
    if not spell.interrupted then
        if spell.english:startswith('Indi') then
            if not classes.CustomIdleGroups:contains('Indi') then
                classes.CustomIdleGroups:append('Indi')
            end
            send_command('@timers d "'..indi_timer..'"')
            indi_timer = spell.english
            send_command('@timers c "'..indi_timer..'" '..indi_duration..' down spells/00136.png')
    elseif spell.skill == 'Enhancing Magic' then
            --adjust_timers(spell, spellMap)
        elseif spell.english == 'Sleep' or spell.english == 'Sleepga' then
            send_command('@timers c "'..spell.english..' ['..spell.target.name..']" 60 down spells/00220.png')
        elseif spell.english == 'Sleep II' or spell.english == 'Sleepga II' then
            send_command('@timers c "'..spell.english..' ['..spell.target.name..']" 90 down spells/00220.png')
        end
    if spell.skill == 'Elemental Magic' then
            ---state.MagicBurst:reset()
        end
    elseif not player.indi then
        classes.CustomIdleGroups:clear()
    end
end
 
function job_buff_change(buff, gain)
    if player.indi and not classes.CustomIdleGroups:contains('Indi')then
        classes.CustomIdleGroups:append('Indi')
        handle_equipping_gear(player.status)
    elseif classes.CustomIdleGroups:contains('Indi') and not player.indi then
        classes.CustomIdleGroups:clear()
        handle_equipping_gear(player.status)
    end
end
 
function job_state_change(stateField, newValue, oldValue)
    if stateField == 'Offense Mode' then
        if newValue == 'Normal' then
            disable('main','sub','range','ammo')
        else
            enable('main','sub','range','ammo')
        end
    end
end
 
--------------------------[Maps Indi- spells and enfeebles]------------------------------    
 
function job_get_spell_map(spell, default_spell_map)
    if spell.action_type == 'Magic' then
        if spell.skill == 'Enfeebling Magic' then
            if spell.type == 'WhiteMagic' then
                return 'MndEnfeebles'
            else
                return 'IntEnfeebles'
            end
        elseif spell.skill == 'Geomancy' then
            if spell.english:startswith('Indi') then
                return 'Indi'
            end
        end
    end
end
 
-----------------------------------------------------------------------------------   
 
function customize_idle_set(idleSet)
    if player.mpp < 51 then
        idleSet = set_combine(idleSet, sets.latent_refresh)
    end
    return idleSet
end
 
function job_update(cmdParams, eventArgs)
    classes.CustomIdleGroups:clear()
    if player.indi then
        classes.CustomIdleGroups:append('Indi')
    end
end
 
function display_current_job_state(eventArgs)
    display_current_caster_state()
    eventArgs.handled = true
end
 
-------------------------------------------------------------------------------    
 
function select_default_macro_book()
    set_macro_page(1, 6)
end
 
--------------------------[Custom Buff timers]**deprecated as timers accounts for this now**------------------------------    
 
--[[function adjust_timers(spell, spellMap)
 
    local current_time = os.time()
    local temp_timer_list = {}
    local dur = calculate_duration(spell, spellName, spellMap)
 
         custom_timers[spell.name] = nil
         send_command('timers delete "'..spell.name..' ['..spell.target.name..']"')
         custom_timers[spell.name] = current_time + dur
         send_command('timers create "'..spell.name..' ['..spell.target.name..']" '..dur..' down')
end
 
function calculate_duration(spell, spellName, spellMap)
    local mult = 1.00
 
    if player.equipment.Head == 'Telchine Cap' then mult = mult + 0.09 end
    if player.equipment.Body == 'Telchine Chas.' then mult = mult + 0.09 end
    if player.equipment.Hands == 'Telchine Gloves' then mult = mult + 0.09 end
    if player.equipment.Legs == 'Telchine Braconi' then mult = mult + 0.09 end
    if player.equipment.Feet == 'Telchine Pigaches' then mult = mult + 0.08 end
     
    if player.equipment.Feet == 'Estq. Houseaux +2' then mult = mult + 0.20 end
    if player.equipment.Legs == 'Futhark Trousers' then mult = mult + 0.10 end
    if player.equipment.Legs == 'Futhark Trousers +1' then mult = mult + 0.20 end
    if player.equipment.Hands == 'Atrophy Gloves' then mult = mult + 0.15 end
    if player.equipment.Hands == 'Atrophy Gloves +1' then mult = mult + 0.16 end
    if player.equipment.Back == 'Estoqueur\'s Cape' then mult = mult + 0.10 end
    if player.equipment.Hands == 'Dynasty Mitts' then mult = mult + 0.05 end
    if player.equipment.Body == 'Shabti Cuirass' then mult = mult + 0.09 end
    if player.equipment.Body == 'Shabti Cuirass +1' then mult = mult + 0.10 end
    if player.equipment.Feet == 'Leth. Houseaux' then mult = mult + 0.25 end
    if player.equipment.Feet == 'Leth. Houseaux +1' then mult = mult + 0.30 end
    if player.equipment.Head == 'Erilaz Galea' then mult = mult + 0.10 end
    if player.equipment.Head == 'Erilaz Galea +1' then mult = mult + 0.15 end
 
    local base = 0
 
    if spell.name == 'Haste' then base = base + 180 end
    if spell.name == 'Stoneskin' then base = base + 300 end
    if spell.name:startswith("Bar") then base = base + 480 end
    if spell.name == 'Blink' then base = base + 300 end
    if spell.name == 'Aquaveil' then base = base + 600 end
    if string.find(spell.english,'storm') then base = base + 180 end
    if spell.name == 'Auspice' then base = base + 180 end
    if spell.name:startswith("Boost") then base = base + 300 end
    if spell.name == 'Phalanx' then base = base + 180 end
    if spell.name:startswith("Protect") then base = base + 1800 end
    if spell.name:startswith("Shell") then base = base + 1800 end
    if spell.name:startswith("Refresh") then base = base + 150 end
    if spell.name:startswith("Regen") then 
        base = base + 60
        if buffactive['Light arts'] and player.main_job == 'SCH' then
            base = base*2+60
        -----the *2 here is the additional 60sec from Light Arts job points maxed
        -----+48 is from light arts, +12 more from telchine chas.
        elseif player.main_job == 'WHM' then
            base = base + 60
            if player.equipment.Hands == 'Ebers Mitts' then 
                base = base +  20
            elseif player.equipment.Hands == 'Ebers Mitts +1' then 
                base = base + 22
            end
            if player.equipment.Legs == 'Theo. Pantaloons' or player.equipment.Legs == 'Theo. Pant. +1' then
                base = base + 18
            end
        end
    end
    if spell.name == 'Adloquium' then base = base + 180 end
    if spell.name:startswith("Animus") then base = base + 180 end
    if spell.name == 'Crusade' then base = base + 300 end
    if spell.name == 'Embrava' then base = base + 90 end
    if spell.name:startswith("En") then base = base + 180 end
    if spell.name:startswith("Flurry") then base = base + 180 end
    if spell.name == 'Foil' then base = base + 30 end
    if spell.name:startswith("Gain") then base = base + 180 end
    if spell.name == 'Reprisal' then base = base + 60 end
    if spell.name:startswith("Temper") then base = base + 180 end
    if string.find(spell.english,'Spikes') then base = base + 180 end
 
    if buffactive['Perpetuance'] then
        if player.equipment.Hands == 'Arbatel Bracers' then
            mult = mult*2.5
        elseif player.equipment.Hands == 'Arbatel Bracers +1' then
            mult = mult*2.55
        else
            mult = mult*2
        end
    end
 
    if buffactive['Composure'] then
        if spell.target.type == 'SELF' then
            mult = mult*3
        else
            mult = mult
        end
    end         
             
 
    local totalDuration = math.floor(mult*base)
 
    --print(totalDuration)
 
 
    return totalDuration
 
end
 
function reset_timers()
 
    for i,v in pairs(custom_timers) do
 
        send_command('timers delete "'..i..'"')
 
    end
 
    custom_timers = {}
 
end]]

I'll go out on a limb and assume you're somewhat intelligent, so you should be able to figure out a lot from the formatting. This uses Mote's includes, which you can find here. They go in Windower4\addons\GearSwap\libs.
Copy pasta the code above into Notepad or whatever, and save it as GEO.lua (or YourCharacterName_GEO.lua) into Windower4\addons\GearSwap\data.
Any questions post here or PM me. I'm sure there are others more qualified to help but I'll do what I can. Good luck.
[+]