Gear Set Math as defined above seems to have the following properties:
- Gear Set Math is not commutative.
IE:
Set1 + Set2 = Set3
Set2 + Set1 = Set4
Set3 may or may not equal Set4.
Does this seem correct?
Gear Set Math as defined above seems to have the following properties:
- Gear Set Math is not commutative.
IE:
Set1 + Set2 = Set3
Set2 + Set1 = Set4
Set3 may or may not equal Set4.
Does this seem correct?
Yes, that is correct. The order in which sets are applied matters.
Ashita v1.0.2.8 Released
Hello again everyone, another update to Ashita has been released.
This release includes the following:
See previous change information in our release log here:Code:---------------------------------------------------------------------------------------------------- Ashita Version: 1.0.2.8 ---------------------------------------------------------------------------------------------------- Fixed : [Core] Packet parsing methods not correctly handling some packets. Fixed : [Core] Crash that could occur from a colored string from a Windower based application. Added : [Extn] LuaCast: /luacast reload - Now able to fully reload LuaCast via command. Added : [Extn] LuaCast: /luacast dostring "<lua text here>" - Able to parse chat log text as a Lua string. Added : [Extn] LuaCast: recast, vanatime, weather helper files. Added : [Extn] LuaCast: timer module for allowing timed events. Fixed : [Core] Typos inside of the keymap file. Fixed : [Core] Issue that prevented plugins from ever seeing a certain packet. Added : [Core] IData::CommandType::ForceHandle - Causes commands passed to HandleCommand to be resent to extensions.
http://svn.ffevo.net/ashita/release/ChangeLog.txt
This update brought some bug fixes to the internal core of Ashita as well as some more LuaCast love.
LuaCast
The base folder structure of the LuaCast scripts has been adjusted, so with this update I recommend you delete your old folder and start fresh. The new layout is now as follows:
- \LuaCast\
- events.lua
- main.lua
- \LuaCast\extensions\
- math.lua
- string.lua
- table.lua
- timer.lua
- \LuaCast\ffxi\
- inventory.lua
- recast.lua
- vanatime.lua
- weather.lua
Commands
Two new commands have been added to LuaCast to allow for more things.
/luacast reload
Allows users to fully reload the Lua state of LuaCast. (This will re-execute main.lua as if you just loaded the extension.) This is useful for developers working on scripts.
/luacast dostring "<script data here>"
Allows users to execute a chunk of Lua code from the command line. This can be EXTREMELY powerful when used with macros as well as any fancy scripts you create. For example, you print hello world:
/luacast dostring "print( 'hello world' );"
Keep in mind with this function, you have to surround the function in quotes. You cannot use double quotes inside the script chunk you are executing either.
You can use this function to execute other Lua files as well using:
/luacast dostring "dofile( filename )"
This can process any valid Lua so use your imagination.
More Informational Helpers!
I have also coded a handful more helper Lua files.
timer.lua
Timers are based on how Garry's Mod implements Lua into his game. This allows for functions to be fired at a set interval for any amount of times you wish. You can also have a fire-once timer that is basically like a sleep allowing you to call a function in the future.
For example, we can setup a function to be called every 5 seconds, until we tell it to stop like this:
If you want to just have an event fire once, you can use the following instead:PHP Code:timer.Create( 'myTimer', 5, 0, function()
print( 'Hello world!' );
end );
The above would call the function once after 5 seconds has passed since we called the timer.Once command.PHP Code:timer.Once( 5, function()
print( 'Hello world!' );
end );
Please note:
Timers are fired during the rendering of the game. It is in your best interest to not do massively intensive operations in timers
recast.lua
As you can guess, recast.lua is a helper file that contains various functions to obtain recast data.
This is basically the entire Recast extension written in Lua.
Here is rundown of each of the functions this file has:
Recast.GetAbilityRecastIds() - Returns a table of all current recast ability ids.
Recast.GetAbilityRecastIdFromIndex( index ) - Returns the recast ability id of the given index.
Recast.GetAbilityRecastByIndex( index ) - Returns the recast timer of the given ability index.
Recast.GetAbilityRecastById( id ) - Returns the ability recast timer for the given ability id.
Recast.GetSpellRecastByIndex( index ) - Returns the spell recast by the given spell index.
Recast.FormatTimestamp( timer ) - Formats a recast timer into a hh:mm:ss format.
These should be fairly straight forward to understand. Here's an example of a few of the functions:
PHP Code:-- Print Two-Hour Recast Info
local Recast = require( "recast" );
local index = 0;
local timer = Recast.GetAbilityRecastByIndex( index );
local str = Recast.FormatTimestamp( timer );
print( string.format( 'Index: %d -- Recast: %d -- Timer String: %s', index, timer, str ) );
vanatime.lua
vanatime.lua is a helper file that contains functions for reading the Vanadiel time. This can be useful for getting the current time to check for day/night time, as well as checking moon phase etc.
Here is rundown of each of the functions this file has:
VanaTime.GetRawTimestamp() - Returns the absolute raw timestamp from the game.
VanaTime.GetCurrentTimestamp() - Returns a formatted timestamp in the following format: hh:mm:ss
VanaTime.GetCurrentTime() - Returns a Time table object.
VanaTime.GetCurrentHour() - Returns the current in-game hour.
VanaTime.GetCurrentMinute() - Returns the current in-game minute.
VanaTime.GetCurrentSecond() - Returns the current in-game second.
VanaTime.GetCurrentDate() - Returns a Date table object.
GetCurrentTime() returns a Time table object. This table has the following properties:
Hour - Current in-game hour.
Minutes - Current in-game minutes.
Seconds - Current in-game seconds.
GetCurrentDate() returns a Date table object. This table has the following properties:
WeekDay - The current elemental day.
Day - Current Vanadiel day.
Month - Current Vanadiel month.
Year - Current Vanadiel year.
MoonPercent - Current moon percent.
MoonPhase - Current moon phase.
weather.lua
weather.lua is a simple helper that only exposes 1 function. To simply read the current in-game weather.
Weather.GetCurrentWeather() - Returns the current weather type.
Information
Please note, inside each of these listed Lua files I mentioned you will find global data. Such as:
These sets of data can be used anywhere as long as you have included the said Lua file. This should make your life a lot easier when comparing value and such.. For example:PHP Code:WEATHER_CLEAR = 0;
WEATHER_SUNNY = 1;
WEATHER_CLOUDY = 2;
WEATHER_FOG = 3;
WEATHER_FIRE = 4;
Performance Warning!PHP Code:if (Weather.GetCurrentWeather() == WEATHER_ICE2) then
-- Send an equip command here..
end
Please also note the following:
Each file found inside the 'ffxi' sub folder will more than likely do some sort of memory processing. Currently all the files listed here scan for patterns to locate their data. It is important that you only include these files once! Including them every time you need it will decrease your FPS and cause lag as the amount of unneeded rescanning for the data will occur.
Simply add the files to the top of your main.lua once and leave them there. Do everything else after them.
http://guildwork.com/static/img/header.png
Guildwork, Now on Ashita!
Hello part 2 for today, this time I am announcing the release of the Guildwork extension for Ashita!
I have been working along side with Stanislav, Guildworks founder and owner, to bring this extension to Ashita for the past week.
You can find all the details about this extension here:
http://www.ffevo.net/topic/2963-guildwork/
This extension works exactly like the Windower version does to ensure people have no issues using it.
At this time the only feature that is not present is auto-updating the extension itself.
It will download the required files it needs to run properly though, but, it will still require manually updating it when we push updates for it.
Enjoy!![]()
I'd also like to note that any bugs with Guildwork itself should be reported to Stan or myself via Guildwork, or you can PM me here.
Made a post on ffevo (since that seemed a more appropriate location) covering some simple brainstorming on what's needed for the basic framework of the abstraction layer. It should show up on this forum: http://www.ffevo.net/forum/81-luacast-support/
Alright, I have a really simple question that will sway me to Ashita over Windower, and perhaps others too.
Can it see JA/Magic cooldowns, for Lua or whatever?
If there's one thing that pisses me off about Windower/Spellcast, it's that it can't see a JA is on cooldown and ignore using it and/or use a different one. Spells too, when you try to cast something a few seconds before it's ready again (Stun in particular) and all your swaps go derp in the middle of meleeing.
According to someone else looking at this stuff, yes.
Edit: http://www.ffevo.net/topic/2952-luac...recast-module/
I would just like to say, to anyone who has any sort of programming experience, writing extensions is really simple. Already wrote one (not fully complete, but functional, gonna add more usability stuff before releasing it) and am in the process of brainstorming my next one.
Ashita 1.0.2.9 Released
Hey everyone, we have pushed another update tonight:
Code:---------------------------------------------------------------------------------------------------- Ashita Version: 1.0.2.9 ---------------------------------------------------------------------------------------------------- Change: INTERFACEVERSION 1.42 Added : [Core] Extensions can now be loaded with a priority order. Added : [Core] Plugin list will display the plugins priority now at the end of the line. Fixed : [Core] Added error checks for various Resource data queries. Added : [Extn] LuaCast: ParseAutoTrans global call now added. Added : [Extn] LuaCast: ParseArgs string extension. Change: [Extn] LuaCast: Removed some default outputs in main.lua Change: [Extn] LuaCast: Removed output from events.lua when adding an event. Added : [Extn] LuaCast: common.lua which holds various common enums for FFXI info. Fixed : [Extn] Screenshot: Now automatically creates Screenshots folder if missing. Added : [Extn] Screenshot: Now announces when a file saves (with name in message.) Fixed : [Extn] TParty: Party TP should no longer show for members in different zones. Added : [Both] New Setting GameSettings.DisableGamepad Added : [Core] New boot config setting disable_gamepad. Disables the game pad for a given instance.
Hey guys, bit delayed on the update(s) for things:
v1.0.2.10
Code:---------------------------------------------------------------------------------------------------- Ashita Version: 1.0.2.10 ---------------------------------------------------------------------------------------------------- Fixed : [Core] Bug that could cause extensions to hang when auto loaded. Change: [Core] Resources: Reverted the GetXByName functions to match the whole string. Fixed : [Extn] Paste: Added uincode support. Fixed : [Core] Resources:Slip items were not being correctly parsed. Fixed : [Core] Resources: GetXByName crash when item was not found.
Some more fun things with LuaCast:
I wrote a mini-plugin system so that people can write plugins that are loadable / unloadable from Lua. See how to use/do that here:
http://www.ffevo.net/topic/3007-luacast-plugin-system/
Some third-party developers that have been testing LuaCast have released some fun scripts too:
PLogger - Packet logger for helping developers: http://www.ffevo.net/topic/3014-plog...ng-in-luacast/
gotSushi - Onscreen accuracy monitor: http://www.ffevo.net/topic/3015-gots...ate-on-screen/
ExportInventory - Inventory exporter: http://www.ffevo.net/topic/3011-expo...rt-system-v10/
ChatLogger - Chat logging: http://www.ffevo.net/topic/3012-chat...-your-chatlog/
I wrote some more example usage stuff here as well:
Writing to FFXI's chatlog with colors: http://www.ffevo.net/topic/2998-lua-...coloring-chat/
Spectral Jig Helper: http://www.ffevo.net/topic/2994-jigh...jig-recasting/
Short Name Matching: http://www.ffevo.net/topic/2976-shor...usage-example/
v2 of LuaCast is in the works to clean some things up and optimize it a bit more. So I'll be sure to post about that when its released too.
Some new plugins that have been written for Ashita as well are:
GBind - Allows binding to G15 and similar keyboards. http://www.ffevo.net/topic/3003-gbind-alpha/
Find - Allows for searching for items in your various storage areas. http://www.ffevo.net/topic/2999-find/
ChatMon - Monitors chat for certain events and plays sounds. http://www.ffevo.net/topic/2972-chatmon/
Rewrite - Short command usage for various things like abilities and magic. http://www.ffevo.net/topic/3001-rewrite-open-source/
ImmortalLion - Blue magic spell set helper. http://www.ffevo.net/topic/3000-immortallion/
petBar - Onscreen display of various pet information: http://www.ffevo.net/topic/2988-petbar-open-source/
Peekaboo - Allows users to see all unspawned/hidden mobs and npcs. http://www.ffevo.net/topic/2983-peekaboo/
I still haven't been able to play with this. (I don't even have Internet at my new home, yet!) I've only come in to once again voice my thanks and interest.
This is starting to sound pretty awesome. Onscreen accuracy monitor is pretty sweet.
Looks pretty nice, especially for 2boxing only turnoff for my right now is not having GearCollector and Spellcast.
I have released a LuaCast plugin similar to spellcast that lets you write gearset/configuration files in Lua. There are still a few kinks within, but there is a large amount of functions readily available, and many very flexible ones can be created and added to ones gearset file at any time.
Below is an example of what a lua configuration file would look like for the plugin. Should anyone be interested, I recommend starting with that as your template and modify it as needed. I tried to keep it simple and show an example for almost each section. I do not recommend using this script(even for THF) without properly editing it first.
Spoiler: show
There is a large list of currenty available functions you can check against, you can view them in the spoiler tags below
Spoiler: show
If anyone has suggestions on more built-in functions please let me know.
Understand that while this is being used to equip your gear under certain conditions, it has capability to do more than that. For instance you are allowed to pass conditions/rules based on your characters 'status', which include things like cutscenes/synthing/fishing, with a little bit of cleverness it could be configured to auto-spam-enter during certain cutscenes.
Some other interesting facets could be creating sets that adapt to your situation with ease, level 1/2/3 aftermath's could be split up and have different tp sets for each should a player want to utilize their mythic aftermath somehow, along with much more.
So, if this looks like something you think you would be interested in using when using the Ashita windower, please give it a try! I am eager to get some feedback, much of the focus is to give the user lots of freedom in the design of their gearset file, at any time you may add additional functions right into your lua file. A well learned Lua user could configure their script to do much more than just automate equipping gear.
You can learn about future adds, known issues, installing and loading the plugin here:http://www.ffevo.net/topic/3028-suit...lugin/?p=29110
If anyone needs help configuring their gearset file be sure to post on the thread.
Please be gentle D:! I'm very nervous to finally release this, it is still in its preliminary stages until I can get some user feedback!