World of Warcraft UI Mod - Mount Fiend - MFiend
Rollie of Bloodscalp
VERSION 1800 - 10/20/2005
This mod is obsolete! Is now easy to create a simple macro to do what this mod was intended for. See below!
Create the following macro:
/cancelaura [mounted] black war raptor
/cast stealth
Replace 'black war raptor' with the name of your mount.
When you trigger this macro if you are mounted, it will unmount you. If you trigger this macro when you are unstealthed and unmounted, it will stealth you. If you are stealhed, then it will unstealth you.
DOWNLOAD
http://www.warcraftrealms.com/mods/Mfiend-1800.zip
INTRODUCTION
This is a simple little mod made primarily for rogues that will make dismounting and stealthing as easy as clicking
a button.
If you are mounted and you trigger the mod, you will dismount, upon a second trigger, you will stealth. If you
are not mounted, you will simply stealth. If you are already stealthed, you will unstealth.
That's about it! It's very simple and you are welcome to modify the mod to suit your needs as necessary. I imagine
there are changes that other classes would find useful for this sort of thing.
I have included the pertinent code below in case you don't wish to get the entire mod. You could perhaps just drop
these code snippets into your own mod or files if you like.
I took some of these functions from various places but had no way of knowing who the authors are. I'm sorry if you
created some of these basic methods and I haven't given proper credit. Unfortunately where I saw the code snippets
had no author with them.
The only code needed in the XML file is as follows and is only used to locate the id of the Stealth ability instead
of requiring the user to set this themselves (from file MFiend.XML):
Some of the code below is outdated. View the code
in MFiend.lua for the most up to date version.
MFiend_OnLoad();
Code for the key binding (from file Bindings.XML):
MF_DismountAndStealth();
The LUA code (from file MFiend.LUA):
local g_stealthID = -1;
function MFiend_Msg(msg)
if( DEFAULT_CHAT_FRAME ) then
DEFAULT_CHAT_FRAME:AddMessage(msg);
end
end
function MFiend_OnLoad()
local i = 1
while true do
local spellName, spellRank
= GetSpellName(i, BOOKTYPE_SPELL)
if not spellName then
do break end
end
if (string.find(spellName, "Stealth")) then
g_stealthID = i;
do break end;
end
i = i + 1
end
end
--Loops through active buffs looking for a string match
--Origin Zorlen's hunter functions
function MF_isUnitBuffUp(sUnitname, sBuffname)
local iIterator = 1
while (UnitBuff(sUnitname, iIterator)) do
if(string.find(
UnitBuff(sUnitname, iIterator), sBuffname)) then
return iIterator
end
iIterator = iIterator + 1
end
return -1
end
function MF_isPlayerBuffUp(sBuffname)
return MF_isUnitBuffUp("player", sBuffname )
end
function MF_isMounted()
return MF_isPlayerBuffUp("Ability_Mount")
end;
function MF_DismountAndStealth()
local iMountIndex = MF_isMounted();
if( iMountIndex ~= -1 ) then
CancelPlayerBuff(iMountIndex-1);
else
CastSpell( g_stealthID, 1 );
end
end
The only file missing is the TOC file and it wouldn't matter for that part!
Be sure to post suggestions/comments to the forums!
|