vanilla-wow-addons – Rev 1
?pathlinks?
--[[ RightClick SelfCast Addon by kritzi ]]--
-- Version 2.10
-- Maintenance by Ozymandius
-- I find this mod invaluable, and can't live without it, which is
-- why I was most upset when it started failing after patch 1.10
-- Never touched the internals of a mod before, but it neded fixing ;)
-- Don't expect any further updates unless it totally breaks again
-- Version History
-- 31/03/06 - 2.10 - Updated to work in patch 1.10
-- TBH, this just involved changing te tooltip defn. in the XML
-- & incrementing the version in the TOC
-- Just right klick a spell and instead of the TargetingCursor
-- you will target yourselfe.
function rSelfCast_OnLoad()
rSelfCast_Original_UseAction = UseAction;
UseAction = rSelfCast_UseAction;
this:RegisterEvent("ADDON_LOADED");
SLASH_rSelfCast1="/rsc";
SlashCmdList["rSelfCast"] = rSelfCast_Command;
SLASH_rel1="/rel";
SlashCmdList["rel"] = rel;
end
function rel()
ReloadUI();
end
function rSelfCast_Set(type,var,value)
if(rSelfCast_Array == nil) then rSelfCast_Array={}; end
if(rSelfCast_Array[GetLocale()] == nil) then rSelfCast_Array[GetLocale()]={}; end
if(rSelfCast_Array[GetLocale()][UnitClass("player")] == nil) then rSelfCast_Array[GetLocale()][UnitClass("player")]={}; end
if(rSelfCast_Array[GetLocale()][UnitClass("player")][type] == nil) then rSelfCast_Array[GetLocale()][UnitClass("player")][type]={}; end
if(rSelfCast_Array[GetLocale()][UnitClass("player")][type][var] == nil) then rSelfCast_Array[GetLocale()][UnitClass("player")][type][var]=value; end
end
function rSelfCast_Get(type,var)
if (rSelfCast_Array == nil) then return nil;
elseif(rSelfCast_Array[GetLocale()] == nil) then return nil;
elseif(rSelfCast_Array[GetLocale()][UnitClass("player")] == nil) then return nil;
elseif(rSelfCast_Array[GetLocale()][UnitClass("player")][type] == nil) then return nil;
else return rSelfCast_Array[GetLocale()][UnitClass("player")][type][var]; end
end
function rSelfCast_OnEvent()
if(event ~= nil and event == "ADDON_LOADED" and rSelfCast_Disabled == nil) then
this:RegisterEvent("CHAT_MSG_SPELL_FAILED_LOCALPLAYER");
if(rSelfCast_Version == nil) then rSelfCast_Version = 200; end
elseif(event ~= nil and event == "CHAT_MSG_SPELL_FAILED_LOCALPLAYER" and arg1 ~= nil and rSelfCast_MouseButton == "RightButton") then
rSelfCast_Debug(arg1);
local check_array={
"Ihr scheitert beim Wirken von (.+): Ung\195\188ltiges Ziel.",
"Ihr scheitert beim Wirken von (.+): Eure Waffenhand ist leer..",
"You fail to cast (.+): No target.",
"You fail to cast (.+): Your weapon hand is empty.",
"Vous n'avez pas r\195\169ussi \195\160 lancer (.+) : Cible incorrecte.",
"Vous n'avez pas r\195\169ussi \195\160 lancer (.+) : Vous n'avez pas d'arme en main.."
}
for i,check in check_array do
for action in string.gfind(arg1, check) do
rSelfCast_Debug("Adding '"..action.."' as a not SelfCast able.");
rSelfCast_Set("no_selfcast",action,true);
end
end
end
end
function rSelfCast_UseAction(id, type, self)
rSelfCast_MouseButton = arg1;
if(rSelfCast_MouseButton == "RightButton" and rSelfCast_Disabled == nil) then
rSelfCast_Debug("Performing right-click");
rSelfCast_Tooltip:SetAction(id);
if(rSelfCast_TooltipTextLeft1 ~= nil) then
local action=rSelfCast_TooltipTextLeft1:GetText();
rSelfCast_Debug("ToolTipTextLeft1 = '"..action.."'.");
if(rSelfCast_Get("no_selfcast",action) == nil) then
self = 1;
if(rSelfCast_Get("selfcast_bug",action) == true) then
rSelfCast_Debug("Change Target to Player because '"..action.."' is buggy.");
TargetUnit("player");
end
end
rSelfCast_Original_UseAction(id, type, self);
if(SpellIsTargeting() and self == 1) then
rSelfCast_Debug("Adding '"..action.."' as buggy.");
rSelfCast_Set("selfcast_bug",action,true);
SpellTargetUnit("player");
elseif(rSelfCast_Get("selfcast_bug",action) == true) then
rSelfCast_Debug("Switch back to the last Target.");
TargetLastTarget();
end
end
else
rSelfCast_Original_UseAction(id, type, self);
end
end
function rSelfCast_Command(cmd)
if(cmd ~= nil and cmd == "enable") then
rSelfCast_Disabled=nil;
if(rSelfCast_Original_UseAction == nil) then
rSelfCast_Original_UseAction = UseAction;
UseAction = rSelfCast_UseAction;
end
this:RegisterEvent("CHAT_MSG_SPELL_FAILED_LOCALPLAYER");
DEFAULT_CHAT_FRAME:AddMessage("rSelfCast is now enabled.");
elseif(cmd ~= nil and cmd == "disable") then
rSelfCast_Disabled=true;
this:UnregisterEvent("CHAT_MSG_SPELL_FAILED_LOCALPLAYER");
DEFAULT_CHAT_FRAME:AddMessage("rSelfCast is now disabled.");
elseif(cmd ~= nil and cmd == "debug enable" and rSelfCast_Disabled == nil) then
rSelfCast_DebugMode=true;
DEFAULT_CHAT_FRAME:AddMessage("rSelfCast debug mode is now enabled.");
elseif(cmd ~= nil and cmd == "debug disable" and rSelfCast_Disabled == nil) then
rSelfCast_DebugMode=nil;
DEFAULT_CHAT_FRAME:AddMessage("rSelfCast debug mode is now disabled.");
elseif(cmd ~= nil and cmd == "reset" and rSelfCast_Disabled == nil and rSelfCast_DebugMode == true) then
rSelfCast_Array=nil;
DEFAULT_CHAT_FRAME:AddMessage("All collected rSelfCast data were reseted.");
rSelfCast_Debug("TEST 1");
else
DEFAULT_CHAT_FRAME:AddMessage("|cffffff78rSelfCast Help:|r");
if(rSelfCast_Disabled == true) then
DEFAULT_CHAT_FRAME:AddMessage("The AddOn is disabled for this profile.");
DEFAULT_CHAT_FRAME:AddMessage(" |cffffff78/rsc enable|r - activates the AddOn");
else
if(rSelfCast_DebugMode == true) then
DEFAULT_CHAT_FRAME:AddMessage("The debug mode is enabled.");
DEFAULT_CHAT_FRAME:AddMessage(" |cffffff78/rsc debug disable|r - deactivates the debug mode.");
DEFAULT_CHAT_FRAME:AddMessage(" |cffffff78/rsc reset|r - deletes all collected data.");
else
DEFAULT_CHAT_FRAME:AddMessage(" |cffffff78/rsc debug enable|r - activates the debug mode.");
end
DEFAULT_CHAT_FRAME:AddMessage(" |cffffff78/rsc disable|r - deactivates the AddOn for this profile.");
end
end
end
function rSelfCast_Debug(string)
if(rSelfCast_DebugMode == true and string ~= nil) then
DEFAULT_CHAT_FRAME:AddMessage("|cffff6666rSC debug|r - "..string);
end
end
Generated by GNU Enscript 1.6.5.90.