and if that doesn't work, my only explanation is a problem with Metrognome (which is an embedded library), which for some reason doesn't schedule all the functions that will show/update the frame. I'll always embed the latest metrognome, it's a rather new library, but as I havent found a way to reproduce this problem I guess we'll need more observations.
uploaded a new version to SVN. Only change: "/squishy wtf". Use this if the frame doesn't show while in a raid. Please post the exact output in the chat here - it will be something like: "debug: 15:12:y:40:Priest:60". Might help finding the problem.
Kyhax, the frame will only show once you're in a raid. If you are in a raid and the frame doesnt show, I can only guess that for some reason it was moved off screen. Set the scaling to something small (e.g. 0.4, which is the minimum), and the frame will hopefully be back. Now drag it to the top left corner of the screen and choose the scale you want. Once you found the scale of your choice, move the frame to wherever you want it to be.
Devla: any suggestions on how to deal with that problem?I know it's updating fast (0.2sec), but not faster or slower than e.g. the CTRA emergency frame. Would reducing the update ratio to 0.5sec help? Is that what we'd really want?
Any way to keep more persistant locations for people? Like say for 5 people damaged you start like this:
Now suppose playera gets healed to 70. Instead of changing the order of the people in the frame, simply leave him where he is. Likewise, if PlayerC gets healed to full (and only 4 people need attention), then simply remove him from the list and it would be:
So basically when somebody's priority changes do something like this:
if on list:
.. if still on list than do nothing
.. otherwise remove from list and find next worse off and replace the slot he was in with the next-attention needing person.
if not on list:
.. if no worse than worst person on list, than do nothing
.. otherwise replace worst person with the new person.
I realize that it's not simply percentages, but I'm pretty sure you have some sort of "score" to determine if one player needs attention more than another. You might say that it makes choosing the "worst off" player difficult. Maybe the top slot would always be the worst off, then have 10 more slots use the above algorithm (and include the worst off in it too). To address the fact that it won't really be in the same order, you might adjust the transparency of the background so that the worst off are more red or something. I'm not sure, just throwing out ideas on that part.
I think FryGuy's suggestion is decent. One of my biggest beefs with the CTRA Emergency Moniter was how much it jumped around. I found myself just healing whoever was top or second without looking, becuase it was too hard to process the information the EM provided.
The point of the EM in my mind is to show the top 10 people who need attention, sorting that much is almost overkill. If someone can't scan a tiny list of 10 people and make an intelligent decision on what to do, they need to learn2heal IMO. Perhaps just slowing down how fast the list jumps around or something would alleviate the problem?
Eh, I like both ideas, but I'm not sure how effective either would be in reality.
I havent played alliance for a long, long time. Which is why I'm able to test Squishy for Alliance. But I think I just found the reason for the frame not showing up for some, while working for others: Squishy didn't know about the existance of paladins, so if you were grouped with one, it assumed the roster is broken and therefor decided to hide the frame.
Can someone playing alliance please test the latest SVN?
As for the suggestion by FryGuy: I like it. Won't be able to add it very soon though, as I have limited time these weeks and this would require some major code revamp...
As for targetting units: now it's possible: /script Squishy:TargetSquishyUnit(1) will target the first unit on the list (and obviously you can do similar for the fifth unit).
A short summary of the thread so far, plus my own notes:
CHANGES SINCE RELEASE:
- support for WatchDog and AceHeal
- option to target units in frame via function
- now also works for Alliance
- party+partypet support
- raidpet support
- modifying class priorities via ingame slash command
- persistant unit locations as suggested by FryGuy
- color/mark unit being healed by you
- color/mark party members
- option to remove border+background
- WatchDog clickcasting unresponsive. Solution might be to convert the XML frames to lua and copy the watchdog-support from PerfectRaid
- fix roster problems
- add oRa support (or does it already work? ever seen a "XY (Squishy-user) is healing you")?
- don't hook CTRA code for finding spells being cast
- optimize code
- move more stuff to locals.lua
- use CompostLib
- make adding modules easier/possible
If anyone has some spare time and wants to contribute to the project, please do so - my time is rather limited these days, and I'm not a professional programmer either :)