X-Perl UnitFrames
Patch 6.0.3 compatibility and future of X-Perl
Use latest alpha from WoWAce for using in Patch 6.0.3
http://www.wowace.com/addons/xperl/files/
May still has problems but for most cases it should be working(at least was tested on beta), if not, clearing old setting by killing(and backup) XPerlxxxxxxx.lua in the WTF directory of your WoW installlation and try again with fresh new default setting, thanks your patience.
If still someone want to help Zeksie for he earns his donates from X-Perl then that's fine for Zek and X-Perl, but seems like it's time to cut him out as no one want to help X-Perl anymore (as many of users already heard about the mess of this poor addon), I guess.
I don't know X-Perl will still be continue or not(it's highly possible it won't be, as the new maintainer Resike continued the developing and forked to Z-Perl, and he said he won't abandon his addons), I won't force everyone should must to use Resike's one at this point, as his Z-Perl isn't stable yet, and for some reasons, I don't think he want to port his fixes back to X-Perl as he knows about how Zek did about his addons and everyone who helped Zek to maintaining this poor addon...and, of course...X-Perl may broken again when next time Blizzard's patches released..... /sigh
(At this point, I won't force everyone who used X-Perl to go Z-Perl until it's more stable than now, feel free to use Z-Perl or other Unitframe addons if you want, and do NOT hold your breathe about X-Perl too much, too. I already lost my hope on X-Perl, at least I can trust Resike and Z-Perl now...)
Sincerely,
PlayerLin - Maintainer of X-Perl but not a proper skilled coder, just a locale translator and do some shitty PRs. :(
Bug Reporting
Please use the Ticketing System on WoWAce Here and avoid posting bugs using comments on Curse because they're difficult to track and they will probably get lost.
Use a good error catcher (like BugSack from files.wowace.com) and provide the full error text, and give as much information as possible to recreate the problem. Don't assume We know what you're talking about with some three word report.
Introduction
Perl, with Extra stuff. Much enchanced from Nymbia's Perl UnitFrames, and a complete replacement for Blizzard's default unit frames, including raid frames and raid tools, with little remaining of the original Nymbia code.
- Range Finder (combined with optional health check and/or debuff check) for all frames based on spell or item range test.
- HoT Monitor will highlight units clearly that have ''your own'' active Heal over Time spells. Regardless of how many other heal over time buffs are on the raid members, you can keep track of your own ones and when they expire.
- Debuff Highlighting in standard debuff colours on all friendly frames. Priority given to show debuffs that ''you'' can cure first.
- Raid Frames, buff icons, MT list units and some other portions or X-Perl are Created on demand. Saving a lot of time and memory at system startup. Defering the creation of many parts of X-Perl to when they are actually required. And of course, most often outside of raids they are never required and are never created.
- Raid Target icon support for Target, Target's Target, MT Targets.
- Raid Tooltip will show combat rezzers available (druids with Rebirth ready (or very soon available) and any normal rezzers out of combat) if you bring up tooltip of a dead person.
- In-combat indicators for all units.
- 3D Portraits for player, pet, target, focus, party. Optional. Of course this may degrade your framerate somewhat because you are displaying more 3D character models that without this option. But some like it pretty, and it does look cool.
- Red and Green combat flashes for frames when player, pet, target, party, partypets, raid take damage/heals. Useful indication of things happening.
- Added '''time left''' on party member/target buffs/debuffs when in a raid, these depend somewhat on CTRA sending appropriate information over the addon channel, although some of it can be determined at run time by X-Perl, when a player gets a buff for example, we know how long it should last, and therefor when it should expire.
- Totally new options window including all X-Perl options and access via minimap icon and the /xperl splash command.
- Configurable colours for borders and backgrounds. Including class coloured names, and configurable reaction colours.
Much care has been taken with code size, memory load, memory usage per cycle and so on. LuaProfiler/OnEvent mods used extensively and regularly to ensure that X-Perl does not do more work than is absolutely necessary.
Assists View
Will show anyone from raid assising you with your target, and can also show healers or all plus known enemies targetting you.
Tooltips for the same also available (on player and target frames) if you prefer to not use the main window.
MT Targets
Replaces CTRA MT Targets window, and doubles as a replacement for the Perl RaidFrames warrior targets.
Indicator shows which target you are on.
Frames will be coloured to show if tanks have duplicate targets.
Casting Monitor
(WORK IN PROGRESS)
Shows selected classes (defaults to healer classes) in a list (much like the MT List), but with some differences.
Shows mana bars and cast bars on left. Their targets on right. Health bar as normal, but a secondary small red bar on targets which shows the maximum single hit this unit has received since entering combat. The secondary bar will extend downwards from their current HP level down to as far as zero.
A green name on the targets indicates this is the same target that you have. You can click on casters or their targets as expected.
For druids, right clicking on a caster will cast Innervate on them.
For shamans, right clicking on a caster will cast Mana Tide Totem. Check the * indicator to see if they're in your group.
All bars can be re-sized in X-Perl main options (Monitor section).
Totals can be toggled (from the 'T' minibutton at top of frame) which gives overview of raid mana status.
Raid Admin
(WORK IN PROGRESS)
Save/Load raid roster setups Only does direct save and load for the moment, but more to come (templates and such).
Item Check
Replacement for /raitem /radur /raresist /rareg. Use the old commands before, or drop items in the left item list.
Query button will perform /raitem on all ticked items (query always includes dur and resists) and you can then view and review all the results whenever, without having to re-query each item.
Includes everyone in raid, so you don't have to work out who doesn't have items, it'll list them with 0 instead of no entry.
Active Scanner to check raid member's equipment for the item selected. So you can be sure that people actually have the item worn (Onyxia Cloak for example), without having to go round single target inspecting everyone who 'forgot' to install CTRA for the 50th raid in a row.
Grim Reaper
Removed from X-Perl, but continues as it's own standalone Ace mod.
[http://www.wowace.com/projects/grim-reaper/]
More Buffing Features
Can be found in my new universal buffing mod, ZOMGBuffs
pretty much all addons are coded way xperl is, if they are smart, like tharai says. localized versions of globals is better.
there are some useless things that still need pulling true, like libtalent and all that inspect crap. i just don't have the time really. and i can see tharai is also busy, but i'm glad when tharai is updating, it's in good hands and code changes are being made conservitively and with knowledge and not blind hacking and slashnig that results in chaos. the emphesis on xperl first and foremost needs to be performance since it's been bad for so long, with eye candy tweaks being secondary or making code prettier (cause the user doesn't see code anyways, pretty is least of users concern, speed is).
@sontix
Seems xperl target was the exception, it is no longer. Just because blizz isn't doing it, doesn't mean we should not have better coding practices our selves.
@sontix
Yea....I really think you have no idea how fast "checking" an array is. First, that's not even what xperl is doing, its directly referencing a specific unit, which basically has O(1) meaning its very fast.
Second, that is a performance gain, local variables are faster then global functions, so if a function gets called often, referencing a localized version is much faster because LUA doesn't have to find it within the global space.
Personally, I will not be accepting any "patches" you produce, as its clear to me you lack the basic understanding of how LUA works.
@mysticalos Yes, thats my current plan once I have free time, doing that way will be best after I gave it some more thought.
it'd probably be easier to support MoP through the declared locals in the files vs changing every function around mod
to
this kind of simple change is a LOT easier then what you did in your branches. you could have trunk working on BOTH live and beta with simple modifications instead of trying to support two forks.
@pumkincarver098
http://www.wowace.com/addons/xperl/repositories/mopshiz/
Current tree does not have mop support.
Message: Interface\AddOns\XPerl\localization.lua:165: table index is nil Time: 07/26/12 00:08:35 Count: 1 Stack: Interface\AddOns\XPerl\localization.lua:165: in main chunk
Locals: (*temporary) = <table> { shieldSpells = <table> { } hotSpells = <table> { } healSpells = <table> { } pomSpells = <table> { } } (*temporary) = "buffSpells" (*temporary) = <table> { } (*temporary) = "PRIEST" (*temporary) = <table> { Increase Holy Dam 49 = true } (*temporary) = nil (*temporary) = true (*temporary) = "table index is nil"
is what i get on my hunter when i log into mop beta test server
More on my updating issue:
@Aoife
While deleting the Xperl.lua file under Saved Variables seemed to work, it was only a temporary fix. After working fine initially, the problems reoccurred after I logged out and back in. r634 is where the problem begins - in the Xperl_Player file. If I copy the Xperl-Player file from 632 or 633 and paste it into r634-641, the flags/updates work fine.
I don't have enough lua knowledge to easily figure out which of my addons might be causing the glitches so for now I'm just copy/pasting the old Xperl_Player file into the newer builds.
Once I have some free time I'm going to be working on the mop version.
Great addon, but I've got one (probably stupid) question. I can't seem to find a certain option of which I'm sure it must be available. How do I set get it to show the anchors of all the possible frames so I can replace/resize them properly? When I go to options it does not give the anchor for i.e. the target, targets target frames. Thanks for making this fine addon.
Ok, it seems it was the xperl.lua saved variables file that was causing the glitch. I started off by turning off all addons and then did a clean install of r641. Logged back in and the glitches were still glitching. So I logged out and took out the xperl.lua and xperl.lua.bak files. Logged back in and the AFK flag worked and so did the 'death' flag. Turned on all my other addons and the Player frame flags still seem to be working as they should.
Mystery appears to be solved (I hope) by deleting the old Xperl.lua file in Saved Variables folder.
:)
aoife, honestly that still makes no sense at all, unless your client is broken? that should update off blizzards own UNIT_FLAGS event. if that event isn't firing or is hijacked by another mod is only way it hsould break, have you tried with JUSt xperl running?
I can't reproduce the death bug. r641 now uses UPDATE_POWER_FREQUENT, lemme know if the mana bar still has issues.
@mysticalos
I just went back to using the Player files from 632 for now. the rest of the files in 640 seem to be working ok. :)
no idea, it clearly needs more work and proper event usage. so it doesn't have to lean on doing it wrong at onevent handling.
@mysticalos
just tried r640 and the afk flag works now and the health bars too. but i was still showing as dead on my player frame after i died and rezzed. also, my rage and runic power bars are showing 100% when i first log in although my rage bar did change as it should after i did Battle Shout.
probably just needs to add events for player afk and player died since we aren't doing onupdate refreshing anymore.
err, no, PLAYER_FLAGS_CHANGED is properly registered so it should work fine on player frame.
the dead issue should be fixed in 640
Hi gang, thank you again for working on this great addon! I just installed r639 and in the Player frame it's still not changing the flags to AFK, the health bars still stick, and when I die, my status stays 'Dead' even after I've rezzed. I've been using r632 - I think that's the last version where the Player frame flags and health bars worked.
I know there is a crap-ton of things to fix and work on and you'll get to this when you can.
cheers!