|
Lua Addon Ideas
Lakshmi.Byrth
VIP
Server: Lakshmi
Game: FFXI
Posts: 6184
By Lakshmi.Byrth 2013-04-04 09:40:17
Hello everyone!
With the exposed action packet come a much larger range of potential Lua addons that windower users can create. Because FFXIAH has a up-voting system and this handy subforum, I think making a thread here for people to post their plugin ideas in (and get voted on) would be useful.
For more information on what is possible with Lua, see the wiki:
https://github.com/Windower/Lua/wiki
Lua can use all the information obtained from Input Interface Functions to react at times defined by Events in ways limited to the Output Interface Functions.
For instance, I am currently writing an addition to battlemod that will allow it to display skillchain damage even when the skillchain is blocked by blinking. I do this using "event_action" for the closing weapon skill, which contains the skillchain information that is sometimes blocked. I then output this to the chat log using the output interface function "add_to_chat" and block the original message (if it would have displayed) using the "event_incoming_text".
When making posts in this thread, don't worry too much about going through the wiki and making sure something is possible before you suggest it. Just throw the idea out there and see how many votes it gets. However, be aware that some things are impossible because your client does not receive the required information.
Please limit yourself to one idea per post so that it is possible to vote on your ideas.
Lakshmi.Byrth
VIP
Server: Lakshmi
Game: FFXI
Posts: 6184
By Lakshmi.Byrth 2013-04-04 09:44:24
Idea: A parser that uses the action packet
Benefits: This will allow unambiguous parsing. Kparser is limited to the information that appears in the chat log, so it cannot see things that don't show up in the chat log, like:
* Critical Hit Counters vs. Counters. These have different animations, so the action packet parser could tell them apart (same with Guard and a number of other things)
* Hitting two different monsters with the same name, while the action packet parser could just use mob ID
* Double Attack/Triple Attacks have to be inferred, while this action packet parser could just count them.
* Skillchains and additional effects that don't show up in the logs would still show up in the parser
* The actual text in your log would no longer matter, so there would be no conflict with addons that modify your battle log (like battlemod)
* The actual text in your log doesn't matter, so this will pick damage/etc. up even if you filter it.
I believe that Motenten started working on this.
Lakshmi.Byrth
VIP
Server: Lakshmi
Game: FFXI
Posts: 6184
By Lakshmi.Byrth 2013-04-04 09:52:22
Idea: An addon that speeds up the battle log
Benefits: A faster battle log. Currently your client receives the action packet and then waits 1-2 seconds to display it with the animation. Reading the packet with Lua and writing the message to the chat log will make everything show up faster.
Additionally, you can desynchronize things from their animation when the animation is really slow. Like, Protectra spells animate on each person sequentially and then show up in the chatlog as they animate. Using this, they would all show up at the same time. This is also true for some monster TP moves, so they would show up faster and sometimes faster means stunnable.
I will probably incorporate some of these features into Battlemod, but we need a library of messages before this is really feasible wholesale.
Ragnarok.Martel
Server: Ragnarok
Game: FFXI
Posts: 2954
By Ragnarok.Martel 2013-04-04 10:37:50
Idea: A parser that uses the action packet
Benefits: This will allow unambiguous parsing. Kparser is limited to the information that appears in the chat log, so it cannot see things that don't show up in the chat log, like:
* Critical Hit Counters vs. Counters. These have different animations, so the action packet parser could tell them apart (same with Guard and a number of other things)
* Hitting two different monsters with the same name, while the action packet parser could just use mob ID
* Double Attack/Triple Attacks have to be inferred, while this action packet parser could just count them.
* Skillchains and additional effects that don't show up in the logs would still show up in the parser
* The actual text in your log would no longer matter, so there would be no conflict with addons that modify your battle log (like battlemod)
* The actual text in your log doesn't matter, so this will pick damage/etc. up even if you filter it.
I believe that Motenten started working on this. Could this possibly tell Shield blocked melee/ws from non shield blocked? omgomgomgomgomgomgomgomgomg! Please tell me it could? *bounces off walls*
Lakshmi.Byrth
VIP
Server: Lakshmi
Game: FFXI
Posts: 6184
By Lakshmi.Byrth 2013-04-04 10:44:55
Idea: A parser that uses the action packet
Benefits: This will allow unambiguous parsing. Kparser is limited to the information that appears in the chat log, so it cannot see things that don't show up in the chat log, like:
* Critical Hit Counters vs. Counters. These have different animations, so the action packet parser could tell them apart (same with Guard and a number of other things)
* Hitting two different monsters with the same name, while the action packet parser could just use mob ID
* Double Attack/Triple Attacks have to be inferred, while this action packet parser could just count them.
* Skillchains and additional effects that don't show up in the logs would still show up in the parser
* The actual text in your log would no longer matter, so there would be no conflict with addons that modify your battle log (like battlemod)
* The actual text in your log doesn't matter, so this will pick damage/etc. up even if you filter it.
I believe that Motenten started working on this. Could this possibly tell Shield blocked melee/ws from non shield blocked? omgomgomgomgomgomgomgomgomg! Please tell me it could? *bounces off walls*
Yes, it can distinguish shield blocks and guards and such. Anything that has a unique animation would be distinguishable.
Ragnarok.Martel
Server: Ragnarok
Game: FFXI
Posts: 2954
By Ragnarok.Martel 2013-04-04 11:05:39
YEEEEEEEEEEEEEEEEEEEEEEEEEESSSSSSSSSSSSSSSSSSSSSSSSSSSSSS!!! Shield testing would be soooooo much easier. Get that working and I will test ALL the things. XD
Also, a Shield block/parry/guard msg for WS would be quite nice for battle mod.
[+]
Lakshmi.Byrth
VIP
Server: Lakshmi
Game: FFXI
Posts: 6184
By Lakshmi.Byrth 2013-04-04 12:33:01
Idea: An addon that serves the same purpose as Spellcast, but actually reacts to when the spell/ability/whatever is cast/used and finishes casting/being used.
Benefits: At the moment, Spellcast uses precastdelay, midcastdelay, and aftercastdelay to determine timing. The downside is that we use things like Fast Cast which speed up what these delays should be in game. Also, there are times when you try to use a JA, WS, magic spell, whatever and don't actually use it. Accessing action packet can circumvent these problems.
Example:
* You try to use Provoke, but you can't because Provoke's recast isn't back up yet.
-- In Spellcast, you swap to your Enmity gear, wait your precast delay, attempt to use Provoke, wait your aftercast delay, and swap back to whatever your aftercast set is.
-- In an Action Packet version, you could swap to your Enmity gear, attempt to use the ability, see that nothing is generated, and swap back to your "aftercast" set. No need for precast/midcast/aftercast really, because they're defined by when packets arrive.
Example 2:
* You cast Fire IV on Red Mage.
-- In Spellcast, you swap to your fast cast gear, wait the pre-cast delay, attempt to cast Fire V, wait the midcast delay, swap to your midcast gear, finish waiting the full casting time of the spell, wait your aftercast delay, and swap to your aftercast gear. Because you have a ton of Fast Cast (or Elemental Celerity if it was with BLM), you swap back much slower than necessary.
-- In an Action Packet version, you could swap to your precast set, wait a predefined time, send the command to cast the spell, read the "started casting" packet and swap to your midcast set, wait for the "you cast the spell" or "your were interrupted" packet and swap to your aftercast set.
These represent massive gains over current Spellcast, but it's going to require the effort of a team of people to get this running and ensure the transition for most players between Spellcast and a Lua version is smooth. Iryoku has already volunteered to make an expression parser for current Spellcast xmls if anyone wants to undertake the project.
Ragnarok.Sekundes
Server: Ragnarok
Game: FFXI
Posts: 4195
By Ragnarok.Sekundes 2013-04-04 12:42:09
These represent massive gains over current Spellcast, but it's going to require the effort of a team of people to get this running and ensure the transition for most players between Spellcast and a Lua version is smooth. Iryoku has already volunteered to make an expression parser for current Spellcast xmls if anyone wants to undertake the project. I really like all these ideas.
What kinda thing would this involve? I've not delved in to Lua code yet but if a system is being developed that can do this... I'd like to help in any way I can.
Lakshmi.Byrth
VIP
Server: Lakshmi
Game: FFXI
Posts: 6184
By Lakshmi.Byrth 2013-04-04 12:47:57
Lua is not very hard to pick up if you have experience with any other programming language, which is why Aureus chose to expose the Windower API through it instead of a less intuitive language like C or Python. It is commonly used to script game addons, and Arcon has written a guide here.
There's basically not much involved. You pick a project and hack away at it until it falls over, then pick the next project. Aureus has made it somewhat difficult to crash yourself (though it's still possible) and there are many resources available online. Also, if you hop on FFOCHAT and join #lua, there will probably be someone on there that can answer your questions.
I made battlemod within a month of starting to program in Lua having never taken a programming class before. Everything I know about programming was learned in the lab and most of it is MATLAB, but I still get by here.
[+]
Ragnarok.Martel
Server: Ragnarok
Game: FFXI
Posts: 2954
By Ragnarok.Martel 2013-04-04 12:56:02
Perhaps as a halfway point, you could set the lua addon to send triggers to spellcast upon receiving packets?
Ragnarok.Sekundes
Server: Ragnarok
Game: FFXI
Posts: 4195
By Ragnarok.Sekundes 2013-04-04 12:58:20
Thanks, I did have Arcon's guide saved as well as a ton of other resources. I'd like to start tinkering with it and see what can be done. My programming experience is mostly XML for FFXI but I have done some programs in VB but I wouldn't claim to be even somewhat good at it...
Bismarck.Snprphnx
Server: Bismarck
Game: FFXI
Posts: 2707
By Bismarck.Snprphnx 2013-04-04 13:07:40
Adjustments to battlemod and scoreboard.
Battlemod - allow the ability to use it as the filter for the battle log, with more intuitive filters. Like filtering all damage except weapon skills and job abilities.
Scoreboard - show not only the current dps and total %s for each person, but also their melee and ranged accuracy.
On the subject of battlemod. Last night I was parsing an Odin v2 using kparser 1.6.5, and at about 50%, I turned on battlemod and kparser stopped reading data. The numbers would blink every few seconds, like they were refreshing, but no new data was being pulled. I will retry tonight on something with battlemod already active when I start the parse, and get back with you tonight.
[+]
Quetzalcoatl.Deeezy
Server: Quetzalcoatl
Game: FFXI
Posts: 32
By Quetzalcoatl.Deeezy 2013-04-04 13:08:35
How about we just fix windower 4 for now so i dont crash every 10minutes or when i look at the auction house and so when i scroll up on my chat it isn't blank theres an idea!
Bismarck.Tragedie
Server: Bismarck
Game: FFXI
Posts: 322
By Bismarck.Tragedie 2013-04-04 13:09:10
Idea (not sure if this can be done with lua or a plugin rewrite): An alternate TParty that displays distance to your target and other party members instead of TP amount (possibly moving the TP amount elsewhere, if desired).
In the past, I had moved the distance plugin to be closer to where the Target is in the lower right hand side. I've always thought it'd be awesome to have that number where the HP % is on the current target... I've realized recently that knowing the PT member distance would help as well.
Numbers could be color coded to represent common distances.* For example, gray if beyond 20.5 for party members, green if less than 10.0, etc.
Benefits:
- Know how far you are from your party members without changing your target.
- As a bard, cor, or whm, instantly know if your desired party targets are in range.
- Know if you are out of casting range from your healer (handy for dual boxing but overall just good to know).
Compatibility with TParty would require customization of TParty to move (or remove) the HP% number and TP numbers for party and alliance members.
* Colors extension: change colors based on main job or certain equipment requirement. For example, if a wind instrument is equipped, display a certain color (or icon?) to represent who is in range. Same with COR if using (that ring that extends roll distance).
Ragnarok.Martel
Server: Ragnarok
Game: FFXI
Posts: 2954
By Ragnarok.Martel 2013-04-04 13:16:07
Perhaps just display the distance value to the right of the player name?(as in to the right of the PT display entirely. Not on top of the hp/mp bar or anything)
But in any case, excellent idea.
Ragnarok.Sekundes
Server: Ragnarok
Game: FFXI
Posts: 4195
By Ragnarok.Sekundes 2013-04-04 13:28:33
Quetzalcoatl.Deeezy said: »How about we just fix windower 4 for now so i dont crash every 10minutes or when i look at the auction house and so when i scroll up on my chat it isn't blank theres an idea! Post your crash logs for the devs to review.
By duos 2013-04-04 16:33:49
Not sure if possible but chat filter sets, where you can choose different sets for your chat filters. This is highly useful especially when you switch between melee and mage jobs.
[+]
Bismarck.Tragedie
Server: Bismarck
Game: FFXI
Posts: 322
By Bismarck.Tragedie 2013-04-04 16:54:12
Not sure if possible but chat filter sets, where you can choose different sets for your chat filters. This is highly useful especially when you switch between melee and mage jobs.
I'd be happy with a VW and a non-VW set... too lazy to change settings in between lol. I like this idea though
Siren.Ihm
VIP
Server: Siren
Game: FFXI
Posts: 688
By Siren.Ihm 2013-04-08 07:34:15
Quetzalcoatl.Deeezy said: »How about we just fix windower 4 for now so i dont crash every 10minutes or when i look at the auction house and so when i scroll up on my chat it isn't blank theres an idea!
Firstly, Byrth isn't a Windower developer.
Secondly, until you participate in helping us fix these issues by submitting useful feedback and issue reports, then nope, we'll just leave it broken to spite you.
Phoenix.Thorbean
Server: Phoenix
Game: FFXI
Posts: 397
By Phoenix.Thorbean 2013-04-08 08:28:31
I'd kill for a blue magic profiles addon. If someone can confirm if it's possible or not, I'd give it a shot myself. Last time I checked the available functions, there wasn't anything that could retrieve/update a spell list (at least not that I noticed).
Lakshmi.Byrth
VIP
Server: Lakshmi
Game: FFXI
Posts: 6184
By Lakshmi.Byrth 2013-04-08 09:24:29
Nitrous and Iryoku spent a good portion of last night trying to map out the Blue Magic changing packet, so I'd bet that it's both possible and on the horizon.
Also yeah, I'm not a Windower Dev and don't know enough C to escape a for loop.
Battlemod v2.0 should come out in a week or so with some new features. Here is a beta version for anyone that is feeling adventurous:
https://www.dropbox.com/s/l7t0cw9zjcot3v3/bm2.zip
Keep it named "bm2" and just extract it in the addons folder. Don't load it at the same time as the current battlemod. Let me know if you see say-colored text or don't see text that you should see.
Siren.Ihm
VIP
Server: Siren
Game: FFXI
Posts: 688
By Siren.Ihm 2013-04-09 07:39:24
Nitrous and Iryoku spent a good portion of last night trying to map out the Blue Magic changing packet, so I'd bet that it's both possible and on the horizon.
Also yeah, I'm not a Windower Dev and don't know enough C to escape a for loop.
Battlemod v2.0 should come out in a week or so with some new features. Here is a beta version for anyone that is feeling adventurous:
https://www.dropbox.com/s/l7t0cw9zjcot3v3/bm2.zip
Keep it named "bm2" and just extract it in the addons folder. Don't load it at the same time as the current battlemod. Let me know if you see say-colored text or don't see text that you should see.
It's Or to skip to the next one. Hehehe... TOTALLY IRRELEVANT BUT I WANTED TO BUMP THE THREAD :D.
[+]
Phoenix.Suji
Server: Phoenix
Game: FFXI
Posts: 962
By Phoenix.Suji 2013-04-09 11:31:20
goto feels neglected.
Siren.Ihm
VIP
Server: Siren
Game: FFXI
Posts: 688
By Siren.Ihm 2013-04-09 11:56:22
So it should. Probably should just burn in hell.
Phoenix.Urteil
Server: Phoenix
Game: FFXI
By Phoenix.Urteil 2013-04-11 09:05:53
Would an add-on that displays the current buffs/debuffs on a target be possible.
Siren.Ihm
VIP
Server: Siren
Game: FFXI
Posts: 688
By Siren.Ihm 2013-04-11 09:18:53
Would an add-on that displays the current buffs/debuffs on a target be possible.
Buffs on target would be hard (Assuming target is an enemy), I'm thinking that after the yarnball part of timers I may do a debuff tracker though. Can't really give an eta on that though...
Phoenix.Urteil
Server: Phoenix
Game: FFXI
By Phoenix.Urteil 2013-04-11 09:21:26
Yes, for an enemy target.
Ah, that's too bad. Thank you for replying.
Quetzalcoatl.Xueye
Server: Quetzalcoatl
Game: FFXI
Posts: 6386
By Quetzalcoatl.Xueye 2013-04-11 09:21:53
Nitrous and Iryoku spent a good portion of last night trying to map out the Blue Magic changing packet, so I'd bet that it's both possible and on the horizon.
Also yeah, I'm not a Windower Dev and don't know enough C to escape a for loop.
Battlemod v2.0 should come out in a week or so with some new features. Here is a beta version for anyone that is feeling adventurous:
https://www.dropbox.com/s/l7t0cw9zjcot3v3/bm2.zip
Keep it named "bm2" and just extract it in the addons folder. Don't load it at the same time as the current battlemod. Let me know if you see say-colored text or don't see text that you should see.
It's Or to skip to the next one. Hehehe... TOTALLY IRRELEVANT BUT I WANTED TO BUMP THE THREAD :D.
Oh god no. Nonononoo
NEVER. BREAK. THE FLOW. OF EXECUTION!
Oh sorry, I was channeling years of arbitrary rules set by professors with their own personal agendas. Carry on.
Server: Lakshmi
Game: FFXI
Posts: 184
By Lakshmi.Harkonnen 2013-04-11 09:30:05
Love the work you all are doing. The one plugin that I would like to see is the old COR Helper that there use to be. Green was Lucky/Perfect roll, Orange was normal rolls, and Red was bust. It showed the name of the roll, % of buff you are getting from the buff and number of what you rolled. I think it had a timer also for how long the roll lasted.
Quetzalcoatl.Xueye
Server: Quetzalcoatl
Game: FFXI
Posts: 6386
By Quetzalcoatl.Xueye 2013-04-11 10:38:42
Do we have a "hello world" of windower lua plugins?
Hello everyone!
With the exposed action packet come a much larger range of potential Lua addons that windower users can create. Because FFXIAH has a up-voting system and this handy subforum, I think making a thread here for people to post their plugin ideas in (and get voted on) would be useful.
For more information on what is possible with Lua, see the wiki:
https://github.com/Windower/Lua/wiki
Lua can use all the information obtained from Input Interface Functions to react at times defined by Events in ways limited to the Output Interface Functions.
For instance, I am currently writing an addition to battlemod that will allow it to display skillchain damage even when the skillchain is blocked by blinking. I do this using "event_action" for the closing weapon skill, which contains the skillchain information that is sometimes blocked. I then output this to the chat log using the output interface function "add_to_chat" and block the original message (if it would have displayed) using the "event_incoming_text".
When making posts in this thread, don't worry too much about going through the wiki and making sure something is possible before you suggest it. Just throw the idea out there and see how many votes it gets. However, be aware that some things are impossible because your client does not receive the required information.
Please limit yourself to one idea per post so that it is possible to vote on your ideas.
|
|