diff options
author | chai <chaifix@163.com> | 2021-11-15 13:53:59 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2021-11-15 13:53:59 +0800 |
commit | 942a030afd348ab2e02eac8054b43e3c3a72ea48 (patch) | |
tree | a13459f39a3d2f1b533fbd1b5ab523d7a621f673 /Data/BuiltIn/Libraries/lua-addons/addons/SATACast/SATACast.lua | |
parent | e307051a56a54c27f10438fd2025edf61d0dfeed (diff) |
*rename
Diffstat (limited to 'Data/BuiltIn/Libraries/lua-addons/addons/SATACast/SATACast.lua')
-rw-r--r-- | Data/BuiltIn/Libraries/lua-addons/addons/SATACast/SATACast.lua | 169 |
1 files changed, 169 insertions, 0 deletions
diff --git a/Data/BuiltIn/Libraries/lua-addons/addons/SATACast/SATACast.lua b/Data/BuiltIn/Libraries/lua-addons/addons/SATACast/SATACast.lua new file mode 100644 index 0000000..f1ea5f6 --- /dev/null +++ b/Data/BuiltIn/Libraries/lua-addons/addons/SATACast/SATACast.lua @@ -0,0 +1,169 @@ +--Copyright (c) 2013, Banggugyangu +--All rights reserved. + +--Redistribution and use in source and binary forms, with or without +--modification, are permitted provided that the following conditions are met: + +-- * Redistributions of source code must retain the above copyright +-- notice, this list of conditions and the following disclaimer. +-- * Redistributions in binary form must reproduce the above copyright +-- notice, this list of conditions and the following disclaimer in the +-- documentation and/or other materials provided with the distribution. +-- * Neither the name of <addon name> nor the +-- names of its contributors may be used to endorse or promote products +-- derived from this software without specific prior written permission. + +--THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +--ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +--WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +--DISCLAIMED. IN NO EVENT SHALL <your name> BE LIABLE FOR ANY +--DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +--(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +--LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +--ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +--(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +--SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +_addon.version = '1.1.0' +_addon.command = 'scast' +_addon.name = 'SATACast' +_addon.author = 'Banggugyangu' + +res = require('resources') + +windower.register_event('load',function () + + version = '1.1.0' + SA_Set = ' ' + TA_Set = ' ' + SATA_Set = ' ' + TP_Set = ' ' + TH_Set = ' ' + Idle_Set = ' ' + TH_ON = 0 + TP_ON = 0 + windower.add_to_chat(17, 'SATACast v' .. version .. ' loaded. Author: Banggugyangu') + windower.add_to_chat(17, 'Attempting to load settings from file.') + options_load() + +end) + +--Function Designer: Byrth +function options_load() + local f = io.open(windower.addon_path..'data/settings.txt', "r") + if f == nil then + local g = io.open(windower.addon_path..'data/settings.txt', "w") + g:write('Release Date: 11:50 PM, 4-06-13\46\n') + g:write('Author Comment: This document is whitespace sensitive, which means that you need the same number of spaces between things as exist in this initial settings file\46\n') + g:write('Author Comment: It looks at the first two words separated by spaces and then takes anything as the value in question if the first two words are relevant\46\n') + g:write('Author Comment: If you ever mess it up so that it does not work, you can just delete it and SATACast will regenerate it upon reload\46\n') + g:write('Author Comment: For the output customization lines, simply place the name of the spellcast set for each setting exactly how it is spelled in spellcast.\n') + g:write('Author Comment: The design of the settings file is credited to Byrthnoth as well as the creation of the settings file.\n\n\n\n') + g:write('Fill In Settings Below:\n') + g:write('SA Set: SneakAttack\nTA Set: TrickAttack\nSATA Set: SATA\nTP Set: TP\nTH Set: TreasureHunter\nIdle Set: Movement\n') + g:close() + + print('Default settings file created') + windower.add_to_chat(17,'SATACast created a settings file and loaded!') + else + f:close() + for curline in io.lines(windower.addon_path..'data/settings.txt') do + local splat = split(curline,' ') + local cmd = '' + if splat[2] ~=nil then + cmd = (splat[1]..' '..splat[2]):gsub(':',''):lower() + end + if cmd == 'sa set' then + SA_Set = splat[3] + elseif cmd == 'ta set' then + TA_Set = splat[3] + elseif cmd == 'sata set' then + SATA_Set = splat[3] + elseif cmd == 'tp set' then + TP_Set = splat[3] + elseif cmd == 'th set' then + TH_Set = splat[3] + elseif cmd == 'idle set' then + Idle_Set = splat[3] + end + end + windower.add_to_chat(17,'SATACast read from a settings file and loaded!') + end +end + +--Function Author: Byrth +function split(msg, match) + local length = msg:len() + local splitarr = {} + local u = 1 + while u <= length do + local nextanch = msg:find(match,u) + if nextanch ~= nil then + splitarr[#splitarr+1] = msg:sub(u,nextanch-match:len()) + if nextanch~=length then + u = nextanch+match:len() + else + u = lengthlua + end + else + splitarr[#splitarr+1] = msg:sub(u,length) + u = length+1 + end + end + return splitarr +end + +windower.register_event('lose buff', function(id) + local status = windower.ffxi.get_player().status + local name = res.buffs[id].english + if name == ('Sneak Attack' or 'Trick Attack') then + if status == 1 then + windower.send_command('sc set ' .. TP_Set) + elseif status == 0 then + windower.send_command('sc set ' .. Idle_Set) + end + end +end) + +windower.register_event('action', function(act) + local actor = act.actor_id + local category = act.category + local actor = act.actor_id + local category = act.category + local param = act.param + local player = windower.ffxi.get_player() + + if player.status == 1 then + if actor == (player.id or player.index) then + if category == 1 then + if TH_ON == 0 then + windower.send_command('sc set ' .. TH_Set) + TH_ON = 1 + elseif TH_ON == 1 then + if TP_ON == 0 then + windower.send_command('sc set ' .. TP_Set) + TP_ON = 1 + elseif TP_ON == 1 then + end + end + end + end + elseif player.status == 0 then + TH_ON = 0 + end +end) + +--Function Designer: Byrth +windower.register_event('addon command',function (...) + local term = table.concat({...}, ' ') + local splitarr = split(term,' ') + if splitarr[1]:lower() == 'reload' then + options_load() + elseif splitarr[1]:lower() == 'help' then + windower.add_to_chat(17, 'SATACast v'..version..'commands:') + windower.add_to_chat(17, '//scast [options]') + windower.add_to_chat(17, ' reload - Reloads settings') + windower.add_to_chat(17, ' help - Displays this help text') + end +end)
\ No newline at end of file |