1) TomTom, it does exactly what you said, doesn't rely on a user needing your master sending addon installed and people can trust it
2) Thats not even close to how Threat meters work, and is horribly simplifying what would be needed
3) This is the only example that really makes sense, but you're still asking for a random stranger you found in trade chat to be able to popup a GUI on your page
Configuration sharing is far simpler, I did this in about a day http://shadowed-wow.googlecode.com/svn/trunk/Bazaar/Bazaar.lua and it doesn't even need to rely on loadstring hackery.
Stop while you're ahead, get a real configuration thats not a menu monster configuration. You're better off using a GUI library like AceGUI3, or just making your own instead of using menu configurations for that.
Doesn't matter if it's private, if you put it on a public site that everyone can access people will look at it and criticize you for doing silly things.
OMG I'M GETTING A SERVICE FOR FREE AND THE COST OF BANDWIDTH FOR SOMEONE ELSE, HOW DARE THEY PUT ADS TO FUND THIS, IF ALL ADS AREN'T REMOVED WITHIN 24 HOURS, I'LL DROWN A KITTEN.
Re-read the above until you realized how foolish your post was.
There is no such thing. Each company or group decide for themselves how to use SVN (or any other VCS). So what you should have said is "How about we decide on a good way to use SVN and follow it?". Now, that's unfortunately where we have been stalled for a while...
No, we've been stalled at the part where nobody actually does it, not deciding on how to structor it.
Use SVN how you're supposed to? No fancy TOC settings, no stable commit message flag. Just use the damn SVN like it's intended and everything is solved.
If your goal is to track interrupt timers of enemies, then no there isn't. In fact, up until 2.4 we couldn't even tell we were interrupted by Counterspell.
local inspectData = {}
local inspectSent, inspectUnit, inspectGUID, inspectClass
local raidids = {}
local lib = {}
function lib:GetData(GUID)
if( not inspectData[GUID] ) then
return nil
end
local talents, class, compressedTree = string.split(":", inspectData[GUID])
return talents, class, compressedTree
end
-- Handle inspection
for i=1, 40 do
raidids[i] = "raid" .. i
end
local function checkNextInspect()
for id, unit in pairs(raidids) do
if( CheckInteractDistance(unit, 1) ) then
inspectSent = true
inspectUnit = unit
inspectGUID = UnitGUID(unit)
inspectClass = select(2, UnitClass(unit))
inspectTimeout = 3
NotifyInspect(unit)
break
end
end
end
-- Handle timeouts
local inspectTimeout = 0
local rangeTimeout = 0
local function OnUpdate(self, elapsed)
-- Inspect sent, time out after 3 times
if( inspectSent ) then
inspectTimeout = inspectTimeout + elapsed
-- Inspect timed out, meaning we have to re-add it to the list
if( inspectTimeout >= 3 ) then
inspectSent, inspectGUID, inspectClass, inspectUnit = nil
end
end
if( not inspectSent ) then
-- Timeout on checking if anyones nearby to inspect
rangeTimeout = rangeTimeout + elapsed
if( rangeTimeout >= 1 ) then
rangeTimeout = 0
checkNextInspect()
end
end
end
-- Hook NotifyInspect, if it's a unitid we didn't send then pause inspect
hooksecurefunc("NotifyInspect", function(unit)
if( unit ~= inspectUnit ) then
inspectSent, inspectGUID, inspectClass, inspectUnit = nil
end
end)
local function OnEvent(self, event)
-- Got stuff!
if( event == "INSPECT_TALENT_READY" and inspectSent ) then
local _, _, firstPoints = GetTalentTabInfo(1, true)
local _, _, secondPoints = GetTalentTabInfo(2, true)
local _, _, thirdPoints = GetTalentTabInfo(3, true)
local talents = string.format("%d/%d/%d", firstPoints or 0, secondPoints or 0, thirdPoints or 0)
-- Compress the entire tree into 63 char or so format, the same one used by Blizzards talent calculator
local compressedTree = ""
for tab=1, GetNumTalentTabs(true) do
for talent=1, GetNumTalents(tab, true) do
local name, path, tier, column, currentRank, maxRank = GetTalentInfo(tab, talent, true)
compressedTree = compressedTree .. (currentRank or 0)
end
end
inspectData[inspectGUID] = string.format("%s:%s:%s", talents, inspectclass, compressedTree)
-- Remove this unit from the queue
for id, unit in pairs(raidids) do
if( UnitGUID(unit) == inspectGUID ) then
raidids[id] = nil
break
end
end
inspectSent, inspectGUID, inspectClass, inspectUnit = nil
-- Stop scanning while outside of a raid
elseif( event == "RAID_ROSTER_UPDATE" ) then
if( GetNumRaidMembers() == 0 ) then
frame:Hide()
else
frame:Show()
end
-- Disable scans while in combat
elseif( event == "PLAYER_REGEN_ENABLED" and GetNumRaidMembers() > 0 ) then
frame:Show()
elseif( event == "PLAYER_REGEN_DISABLED" and GetNumRaidMembers() > 0 ) then
frame:Hide()
end
end
-- Setup
local frame = CreateFrame("Frame")
frame:RegisterEvent("PLAYER_REGEN_ENABLED")
frame:RegisterEvent("PLAYER_REGEN_DISABLED")
frame:RegisterEvent("INSPECT_TALENT_READY")
frame:RegisterEvent("RAID_ROSTER_UPDATE")
frame:SetScript("OnUpdate", OnUpdate)
frame:SetScript("OnEvent", OnEvent)
frame:Hide()
0
2) Thats not even close to how Threat meters work, and is horribly simplifying what would be needed
3) This is the only example that really makes sense, but you're still asking for a random stranger you found in trade chat to be able to popup a GUI on your page
Configuration sharing is far simpler, I did this in about a day http://shadowed-wow.googlecode.com/svn/trunk/Bazaar/Bazaar.lua and it doesn't even need to rely on loadstring hackery.
0
0
0
http://www.wowinterface.com/raffle.php
Should probably enter that.
0
0
0
0
0
0
Re-read the above until you realized how foolish your post was.
0
No, we've been stalled at the part where nobody actually does it, not deciding on how to structor it.
0
Use SVN how you're supposed to? No fancy TOC settings, no stable commit message flag. Just use the damn SVN like it's intended and everything is solved.
0
0
0