vanilla-wow-addons – Rev 1
?pathlinks?
--AsmoMOD made by Asmodius, Arthas Server
--All rights reserved.
-- Declare Needed Variables
local AsmoMOD_Color = "|c000566FF";
local AsmoMOD_ColorR = "|c00FF0000";
local ResetGroup = 0;
local Reseter;
local didWotf = 0;
local RipID = 0;
local RipAction = 0;
local opID = 0;
local opAction = 0;
local WotfID = 0;
local healID = 0;
local LightID = 0;
local touchID = 0;
local feignID = 0;
local trapID = 0;
local nsID = 1;
local inCombat = false;
local herbID = 0;
local mineID = 0;
local nshealme = 0;
local SaveMe = 0;
local herbmineme = 0;
local nslightning = 0;
local feigntrap = 0;
local justenabled = 0;
-- Show the Option Menu
function AsmoMOD_showMenu()
PlaySound("igMainMenuOpen");
AsmoMODOptions:Show();
end
-- Load Event
function AsmoMOD_OnLoad()
this:RegisterEvent("PLAYER_ENTERING_WORLD")
this:RegisterEvent("PLAYER_DEAD");
this:RegisterEvent("UPDATE_BATTLEFIELD_STATUS");
this:RegisterEvent("MERCHANT_SHOW");
this:RegisterEvent("RESURRECT_REQUEST");
this:RegisterEvent("CONFIRM_SUMMON");
this:RegisterEvent("PARTY_INVITE_REQUEST");
this:RegisterEvent("PARTY_MEMBERS_CHANGED");
this:RegisterEvent("PLAYER_CONTROL_LOST");
this:RegisterEvent("PLAYER_CONTROL_GAINED");
this:RegisterEvent("CHAT_MSG_SPELL_PERIODIC_SELF_BUFFS");
this:RegisterEvent("CHAT_MSG_SPELL_PERIODIC_SELF_DAMAGE");
this:RegisterEvent("CHAT_MSG_SPELL_AURA_GONE_SELF");
this:RegisterEvent("UNIT_HEALTH");
this:RegisterEvent("PLAYER_UNGHOST");
this:RegisterEvent("PLAYER_REGEN_ENABLED");
this:RegisterEvent("PLAYER_REGEN_DISABLED");
AsmoMOD_Chat("AsmoMOD v1.82 loaded.");
if ( AsmoMOD_Save == nil ) then
AsmoMOD_Save = {};
AsmoMOD_Save.bgrelenabled = true;
AsmoMOD_Save.bgjoinenabled = true;
AsmoMOD_Save.repairenabled = true;
AsmoMOD_Save.rezenabled = true;
AsmoMOD_Save.summonenabled = true;
AsmoMOD_Save.groupenabled = true;
AsmoMOD_Save.trinketenabled = true;
AsmoMOD_Save.riposteenabled = false;
AsmoMOD_Save.nsenabled = false;
AsmoMOD_Save.lightenabled = false;
AsmoMOD_Save.executeenabled = false;
AsmoMOD_Save.overpowerenabled = false;
AsmoMOD_Save.conserveenabled = false;
AsmoMOD_Save.herbmineenabled = false;
AsmoMOD_Save.nspercent = 20;
AsmoMOD_Save.conservepercent = 80;
end
SLASH_Asmo1 = "/Asmo";
SlashCmdList["Asmo"] = AsmoMOD_showMenu;
SLASH_Asinvite1 = "/Asinvite";
SlashCmdList["Asinvite"] = function(msg)
Asmo_HandleInvite(msg);
end
SLASH_nsheal1 = "/nsheal";
SlashCmdList["nsheal"] = AsmoMOD_nsheal;
SLASH_nslight1 = "/nslight";
SlashCmdList["nslight"] = AsmoMOD_nslight;
SLASH_feigntrap1 = "/feigntrap";
SlashCmdList["feigntrap"] = AsmoMOD_feigntrap;
SLASH_timer1 = "/timer";
SlashCmdList["timer"] = ExecuteCheck;
-- Add my options frame to the global UI panel list
UIPanelWindows["AsmoMODOptions"] = {area = "center", pushable = 0};
end
-- Event Handler
function AsmoMOD_OnEvent(event)
-- Load Base Variables and Auto-Cast find herbs/minerals
if(event == "PLAYER_ENTERING_WORLD") then
AsmoMOD_Load();
if(AsmoMOD_Save.herbmineenabled) then
herbmineme = 1;
end
end
-- Determine if player is in combat
if (event == "PLAYER_REGEN_ENABLED") then
inCombat = false;
end
if (event == "PLAYER_REGEN_DISABLED") then
inCombat = true;
end
-- Auto-release to the GY
if ( event == "PLAYER_DEAD" ) then
AsmoMOD_Release();
end
-- Auto-join the BG when its your turn
if ( event == "UPDATE_BATTLEFIELD_STATUS" ) then
AsmoMOD_bgJoin();
end
-- Auto-Repair when you see a merchant
if ( event == "MERCHANT_SHOW") then
AsmoMOD_RepairInventory();
AsmoMOD_RepairEquipment();
end
-- Auto-Ressurect
if ( event == "RESURRECT_REQUEST" ) then
AsmoMOD_Resurrect();
end
-- Auto-Summon
if ( event == "CONFIRM_SUMMON" ) then
AsmoMOD_Summon();
end
-- Auto-Group
if (event == "PARTY_INVITE_REQUEST") then
AsmoMOD_Group();
end
-- Reset-Group
if (event == "PARTY_MEMBERS_CHANGED") then
if(ResetGroup == 1) then
ResetGroup = 2;
return;
end
if(ResetGroup == 2) then
PromoteByName(Reseter);
LeaveParty();
ResetGroup = 0;
end
end
-- Restore Control Fear
if (event == "PLAYER_CONTROL_GAINED") then
SaveMe = 0;
end
-- Auto-Trinket Fear Detect
if (event == "PLAYER_CONTROL_LOST") then
if(not GetBattlefieldWinner()) then
SaveMe = 1;
end
end
-- Wotf Succeed
if(event == "CHAT_MSG_SPELL_PERIODIC_SELF_BUFFS") then
if(arg1 == "You gain Will of the Forsaken.") then
didWotf = 0;
end
end
-- Auto-Trinket Charm Detect
if(event == "CHAT_MSG_SPELL_PERIODIC_SELF_DAMAGE") then
if(arg1 == "You are afflicted by Seduction.") then
SaveMe = 1;
elseif(arg1 == "You are afflicted by Repentence.") then
SaveMe = 1;
elseif(arg1 == "You are afflicted by Reckless Charge.") then
SaveMe = 1;
elseif(arg1 == "You are afflicted by Intimidating Shout.") then
SaveMe = 1;
end
end
-- Restore Control Charm
if(event == "CHAT_MSG_SPELL_AURA_GONE_SELF") then
if(arg1 == "Seduction fades from you.") then
SaveMe = 0;
elseif(arg1 == "Repentence fades from you.") then
SaveMe = 0;
elseif(arg1 == "Reckless Charge fades from you.") then
SaveMe = 0;
elseif(arg1 == "Intimidating Shout fades from you.") then
SaveMe = 0;
end
end
-- Auto-NSheal
if((event == "UNIT_HEALTH") and AsmoMOD_Save.nsenabled) then
--Check to see if the player is below nspercent
local ppercent;
ppercent = (UnitHealth("player") / UnitHealthMax("player")) * 100;
if(ppercent <= AsmoMOD_Save.nspercent) then
nshealme = 1;
else
nshealme = 0;
end
end
-- Auto-Herb/Mine
if((event == "PLAYER_UNGHOST") and AsmoMOD_Save.herbmineenabled) then
herbmineme = 1;
end
end
-- Load Needed Variables
function AsmoMOD_Load()
--If users switching between accounts, protect nill errors
if ( AsmoMOD_Save == nil ) then
AsmoMOD_Save = {};
AsmoMOD_Save.bgrelenabled = true;
AsmoMOD_Save.bgjoinenabled = true;
AsmoMOD_Save.repairenabled = true;
AsmoMOD_Save.rezenabled = true;
AsmoMOD_Save.summonenabled = true;
AsmoMOD_Save.groupenabled = true;
AsmoMOD_Save.trinketenabled = true;
AsmoMOD_Save.riposteenabled = false;
AsmoMOD_Save.overpowerenabled = false;
AsmoMOD_Save.nsenabled = false;
AsmoMOD_Save.lightenabled = false;
AsmoMOD_Save.executeenabled = false;
AsmoMOD_Save.conserveenabled = false;
AsmoMOD_Save.herbmineenabled = false;
AsmoMOD_Save.nspercent = 20;
AsmoMOD_Save.conservepercent = 80;
end
-- Find all spell IDs
local a = 1
while true do
local spellName, spellRank = GetSpellName(a, BOOKTYPE_SPELL)
if not spellName then
do break end
end
-- Find Riposte ID
if (spellName == "Riposte") then
texture = GetSpellTexture(a, BOOKTYPE_SPELL)
RipID = a
-- Find Action Bar Number for Riposte
local j;
for j=1,72, 1 do
if ( HasAction(j) ) then
local actiontexture = GetActionTexture(j);
if ( actiontexture == texture ) then
RipAction = j
do break end
end
end
end
end
-- Find Overpower ID
if (spellName == "Overpower") then
texture = GetSpellTexture(a, BOOKTYPE_SPELL)
opID = a
-- Find Action Bar Number for Overpower
local j;
for j=1,108, 1 do
if ( HasAction(j) ) then
local actiontexture = GetActionTexture(j);
if ( actiontexture == texture ) then
opAction = j
do break end
end
end
end
end
-- Find Will of the Forsaken
if (spellName == "Will of the Forsaken") then
WotfID = a
end
-- Find Healing Wave ID
if (spellName == "Healing Wave") then
healID = a
end
-- Find Chain Lightning ID
if (spellNamed == "Chain Lightning") then
LightID = a
end
--Find Healing Touch
if (spellName == "Healing Touch") then
touchID = a
end
-- Find NS for Shaman and Druid
if (spellName == "Nature's Swiftness") then
nsID = a
end
-- Find Feign ID
if (spellName == "Feign Death") then
feignID = a
end
-- Find Trap ID
if (spellName == "Freezing Trap") then
trapID = a
end
-- Find Herb ID
if (spellName == "Find Herbs") then
herbID = a
end
-- Find Minerals ID
if (spellName == "Find Minerals") then
mineID = a
end
a = a + 1;
end
-- Correct options frame to saved values
if(AsmoMOD_Save.bgrelenabled) then
bgrelenabled:SetChecked(1);
end
if(AsmoMOD_Save.bgjoinenabled) then
bgjoinenabled:SetChecked(1);
end
if(AsmoMOD_Save.rezenabled) then
RessEnabled:SetChecked(1);
end
if(AsmoMOD_Save.summonenabled) then
SummonEnabled:SetChecked(1);
end
if(AsmoMOD_Save.repairenabled) then
repairenabled:SetChecked(1);
end
if(AsmoMOD_Save.groupenabled) then
groupenabled:SetChecked(1);
end
if(AsmoMOD_Save.trinketenabled) then
trinketenabled:SetChecked(1);
end
if(AsmoMOD_Save.riposteenabled) then
riposteenabled:SetChecked(1);
end
if(AsmoMOD_Save.nsenabled) then
nshealenabled:SetChecked(1);
end
if(AsmoMOD_Save.executeenabled) then
executeenabled:SetChecked(1);
end
if(AsmoMOD_Save.conserveenabled) then
conserveenabled:SetChecked(1);
end
if(AsmoMOD_Save.herbmineenabled) then
herbmineenabled:SetChecked(1);
end
if(AsmoMOD_Save.overpowerenabled) then
openabled:SetChecked(1);
end
nshealpercentage:SetValue(AsmoMOD_Save.nspercent);
conservepercentage:SetValue(AsmoMOD_Save.conservepercent);
end
-- Cast spells
function ExecuteCheck()
-- Auto-PvP Trinket and WoTF
if ((AsmoMOD_Save.trinketenabled) and (UnitOnTaxi("player") ~= 1)) then
-- Use WoTF if it is active
if (UnitRace("player") == "Undead") then
local duration;
if((SaveMe == 1) and (didWotf == 0)) then
duration = GetSpellCooldown(WotfID, 1);
if(duration == 0) then
CastSpell(WotfID, BOOKTYPE_SPELL);
didWotf = 1;
return;
end
end
end
didWotf = 0;
-- Use PvP Trinket if it is equipped and active
if(SaveMe == 1) then
myTrinket0 = GetInventoryItemLink("player", GetInventorySlotInfo("Trinket0Slot"))
myTrinket1 = GetInventoryItemLink("player", GetInventorySlotInfo("Trinket1Slot"))
if (myTrinket0 == nil) then myTrinket0 = "empty" end
if (myTrinket1 == nil) then myTrinket1 = "empty" end
if ((string.find(myTrinket0, "Insignia of the Horde") ~= nil) or (string.find(myTrinket0, "Insignia of the Alliance") ~= nil)) then
myTrinketUse = GetInventorySlotInfo("Trinket0Slot")
elseif ((string.find(myTrinket1, "Insignia of the Horde") ~= nil) or (string.find(myTrinket1, "Insignia of the Alliance") ~= nil)) then
myTrinketUse = GetInventorySlotInfo("Trinket1Slot")
else
myTrinketUse = nil
end
if(myTrinketUse ~= nil) then
UseInventoryItem(myTrinketUse);
end
end
end
-- Auto-Riposte
if(AsmoMOD_Save.riposteenabled and (UnitClass("player") == "Rogue")) then
duration = GetSpellCooldown(RipID, 1);
if(IsUsableAction(RipAction)) then
if(duration == 0) then
CastSpellByName("Riposte");
end
end
end
-- Auto-Overpower
if(AsmoMOD_Save.overpowerenabled and (UnitClass("player") == "Warrior")) then
duration = GetSpellCooldown(opID, 1);
if(IsUsableAction(opAction)) then
if(duration == 0) then
CastSpellByName("Overpower(Rank 4)");
end
end
end
-- Auto-Execute
if((AsmoMOD_Save.executeenabled) and (UnitClass("player") == "Warrior")) then
--Check to see if the target is at 20% or less
local tpercent;
tpercent = (UnitHealth("target") / UnitHealthMax("target")) * 100;
if(tpercent <= 20) then
if(UnitMana("player") >= 15) then
CastSpellByName("Execute(Rank 5)");
end
end
end
-- Auto-NSheal
if((nshealme >= 1) and (AsmoMOD_Save.nsenabled)) then
duration = GetSpellCooldown(nsID, 1);
if(duration == 0) then
CastSpellByName("Nature's Swiftness");
end
SpellStopCasting();
local i = 1;
local nsup = false;
while true do
buff = UnitBuff("player", i);
if not buff then
do break end;
end
if(string.find(buff, "Spell_Nature_RavenForm") ~= nil) then
nsup = true;
end
i = i + 1;
end
if(nsup == false) then
return;
end
if((UnitClass("player") == "Druid")) then
duration = GetSpellCooldown(touchID, 1);
if(duration == 0) then
nshealme = 2;
if(UnitIsEnemy("target", "player")) then
TargetUnit("player");
CastSpellByName("Healing Touch(Rank 10)");
TargetLastEnemy();
if (UnitIsDead("target") == 1) or ( UnitExists("target") ~= 1) then
TargetNearestEnemy()
end
else
TargetUnit("player");
CastSpellByName("Healing Touch(Rank 10)");
end
end
elseif((UnitClass("player") == "Shaman")) then
duration = GetSpellCooldown(healID, 1);
if(duration == 0) then
nshealme = 2;
if(UnitIsEnemy("target", "player")) then
TargetUnit("player");
CastSpellByName("Healing Wave(Rank 9)");
TargetLastEnemy();
if (UnitIsDead("target") == 1) or ( UnitExists("target") ~= 1) then
TargetNearestEnemy()
end
else
TargetUnit("player");
CastSpellByName("Healing Wave(Rank 9)");
end
end
end
end
-- Mana Conserve
if(AsmoMOD_Save.conserveenabled and UnitIsFriend("target", "player")) then
local cpercent;
cpercent = (UnitHealth("target") / UnitHealthMax("target")) * 100;
if(cpercent >= AsmoMOD_Save.conservepercent) then
SpellStopCasting();
end
end
-- Auto-Find herbs/minerals
if(AsmoMOD_Save.herbmineenabled and herbmineme == 1) then
local _, _, instanceID = GetBattlefieldStatus(1);
if ( instanceID == 0 ) and (not UnitOnTaxi("player")) and (not UnitIsDeadOrGhost("player")) and (not inCombat) then
if(herbID ~= 0) then
CastSpellByName("Find Herbs");
end
if(mineID ~= 0) then
CastSpellByName("Find Minerals");
end
herbmineme = 0;
end
end
end
--Invite Handler
function Asmo_HandleInvite(msg)
local disabled = 0;
if ( msg ) then
msg = string.lower(msg);
end
Reseter = msg;
InviteByName(msg);
ResetGroup = 1;
end
-- Various Toggle Functions
function AsmoMOD_RezToggle()
if ( AsmoMOD_Save.rezenabled ) then
AsmoMOD_Save.rezenabled = false;
AsmoMOD_ChatR("Auto Ressurect has been disabled.");
else
AsmoMOD_Save.rezenabled = true;
AsmoMOD_Chat("Auto Ressurect has been enabled.");
end
end
function AsmoMOD_SummonToggle()
if ( AsmoMOD_Save.summonenabled ) then
AsmoMOD_Save.summonenabled = false;
AsmoMOD_ChatR("Auto Summon has been disabled.");
else
AsmoMOD_Save.summonenabled = true;
AsmoMOD_Chat("Auto Summon has been enabled.");
end
end
function AsmoMOD_bgreltoggle()
if ( AsmoMOD_Save.bgrelenabled ) then
AsmoMOD_Save.bgrelenabled = false;
AsmoMOD_ChatR("Auto BG Release has been disabled.");
else
AsmoMOD_Save.bgrelenabled = true;
AsmoMOD_Chat("Auto BG Release has been enabled.");
end
end
function AsmoMOD_bgjointoggle()
if ( AsmoMOD_Save.bgjoinenabled ) then
AsmoMOD_Save.bgjoinenabled = false;
AsmoMOD_ChatR("Auto BG Join has been disabled.");
else
AsmoMOD_Save.bgjoinenabled = true;
AsmoMOD_Chat("Auto BG Join has been enabled.");
end
end
function AsmoMOD_repairtoggle()
if ( AsmoMOD_Save.repairenabled ) then
AsmoMOD_Save.repairenabled = false;
AsmoMOD_ChatR("Auto Repair has been disabled.");
else
AsmoMOD_Save.repairenabled = true;
AsmoMOD_Chat("Auto Repair has been enabled.");
end
end
function AsmoMOD_grouptoggle()
if ( AsmoMOD_Save.groupenabled ) then
AsmoMOD_Save.groupenabled = false;
AsmoMOD_ChatR("Auto-accept invites has been disabled.");
else
AsmoMOD_Save.groupenabled = true;
AsmoMOD_Chat("Auto-accept invites has been enabled.");
end
end
function AsmoMOD_trinkettoggle()
if ( AsmoMOD_Save.trinketenabled ) then
AsmoMOD_Save.trinketenabled = false;
AsmoMOD_ChatR("Auto-use of the PvP trinket has been disabled.");
else
AsmoMOD_Save.trinketenabled = true;
AsmoMOD_Chat("Auto-use of the PvP trinket has been enabled.");
end
end
function AsmoMOD_ripostetoggle()
if ( AsmoMOD_Save.riposteenabled ) then
AsmoMOD_Save.riposteenabled = false;
AsmoMOD_ChatR("Auto-use of riposte has been disabled.");
else
AsmoMOD_Save.riposteenabled = true;
AsmoMOD_Chat("Auto-use of riposte has been enabled.");
AsmoMOD_Load();
end
end
function AsmoMOD_executetoggle()
if ( AsmoMOD_Save.executeenabled ) then
AsmoMOD_Save.executeenabled = false;
AsmoMOD_ChatR("Auto-use of execute has been disabled.");
else
AsmoMOD_Save.executeenabled = true;
AsmoMOD_Chat("Auto-use of execute has been enabled.");
AsmoMOD_Load();
end
end
function AsmoMOD_nshealtoggle()
if ( AsmoMOD_Save.nsenabled ) then
AsmoMOD_Save.nsenabled = false;
AsmoMOD_ChatR("Auto-use of nsheal has been disabled.");
else
AsmoMOD_Save.nsenabled = true;
AsmoMOD_Chat("Auto-use of nsheal has been enabled.");
AsmoMOD_Load();
end
end
function AsmoMOD_conservetoggle()
if ( AsmoMOD_Save.conserveenabled ) then
AsmoMOD_Save.conserveenabled = false;
AsmoMOD_ChatR("Auto-cancelling of heals has been disabled.");
else
AsmoMOD_Save.conserveenabled = true;
AsmoMOD_Chat("Auto-cancelling of heals has been enabled.");
AsmoMOD_Load();
end
end
function AsmoMOD_herbminetoggle()
if ( AsmoMOD_Save.herbmineenabled ) then
AsmoMOD_Save.herbmineenabled = false;
AsmoMOD_ChatR("Auto-casting of find herbs/minerals has been disabled.");
else
AsmoMOD_Save.herbmineenabled = true;
AsmoMOD_Chat("Auto-casting of find herbs/minerals has been enabled.");
AsmoMOD_Load();
end
end
function AsmoMOD_overpowertoggle()
if ( AsmoMOD_Save.overpowerenabled ) then
AsmoMOD_Save.overpowerenabled = false;
AsmoMOD_ChatR("Auto-casting of overpower has been disabled.");
else
AsmoMOD_Save.overpowerenabled = true;
AsmoMOD_Chat("Auto-casting of overpower has been enabled.");
AsmoMOD_Load();
end
end
-- Auto-Release Implimentation
function AsmoMOD_Release()
if( AsmoMOD_Save.bgrelenabled ) then
local _, _, instanceID = GetBattlefieldStatus(1);
if ( instanceID ~= 0 ) then
RepopMe();
end
return;
end
end
-- Auto-Join BG Implimentation
function AsmoMOD_bgJoin()
if( AsmoMOD_Save.bgjoinenabled ) then
for i=1, MAX_BATTLEFIELD_QUEUES do
local status, _, _ = GetBattlefieldStatus(i);
if (status == "confirm") then
PlaySoundFile("Sound\\Doodad\\BellTollAlliance.wav");
AcceptBattlefieldPort(i, 1);
getglobal("StaticPopup1"):Hide();
end
end
end
end
-- Auto-Ressurect Implimentation
function AsmoMOD_Resurrect()
if ( AsmoMOD_Save.rezenabled ) then
AcceptResurrect();
getglobal("StaticPopup1"):Hide();
else
AsmoMOD_ChatR("Auto Resurrect is set to off. Use the options menu to change this.");
end
end
-- Auto-Repair Equipment Implimentation
function AsmoMOD_RepairEquipment()
if( (AsmoMOD_Save.repairenabled) and (CanMerchantRepair()) ) then
RepairAllItems();
end
end
-- Auto-Repair Inventory Implimentation
function AsmoMOD_RepairInventory()
if( (AsmoMOD_Save.repairenabled) and (CanMerchantRepair()) ) then
local total = GetRepairAllCost();
total = total + AsmoMOD_GetInventoryCost();
total = total / 10000;
AsmoMOD_Chat("All items repaired. Total Cost: " .. total .. " gold.");
ShowRepairCursor();
for bag = 0,4,1 do
for slot = 1, GetContainerNumSlots(bag) , 1 do
local hasCooldown, repairCost = GameTooltip:SetBagItem(bag,slot);
if (repairCost and repairCost > 0) then
UseContainerItem(bag,slot);
end
end
end
HideRepairCursor();
end
end
-- Get Cost of Repairing Inventory
function AsmoMOD_GetInventoryCost()
local AsmoMOD_InventoryCost = 0;
for bag = 0,4,1 do
for slot = 1, GetContainerNumSlots(bag) , 1 do
local hasCooldown, repairCost = GameTooltip:SetBagItem(bag,slot);
if (repairCost) then
AsmoMOD_InventoryCost = AsmoMOD_InventoryCost + repairCost;
end
end
end
return AsmoMOD_InventoryCost;
end
-- Auto-Join Group Implimentation
function AsmoMOD_Group()
if( AsmoMOD_Save.groupenabled ) then
AcceptGroup();
AsmoMOD_HideWindow("PARTY_INVITE");
end
end
-- Automatic Accept Summon Implimentation
function AsmoMOD_Summon()
if ( AsmoMOD_Save.summonenabled ) then
ConfirmSummon();
getglobal("StaticPopup1"):Hide();
else
AsmoMOD_ChatR("Auto Summon is set to off. Use the options menu to change this.");
end
end
-- NS-Heal Start
function AsmoMOD_nsheal()
duration = GetSpellCooldown(nsID, 1);
if(duration == 0) then
CastSpellByName("Nature's Swiftness")
end
SpellStopCasting();
if((UnitClass("player") == "Druid")) then
duration = GetSpellCooldown(touchID, 1);
if(duration == 0) then
if(UnitIsEnemy("target", "player")) then
TargetUnit("player");
CastSpellByName("Healing Touch(Rank 10)");
TargetLastEnemy();
if (UnitIsDead("target") == 1) or ( UnitExists("target") ~= 1) then
TargetNearestEnemy()
end
elseif(UnitIsFriend("target", "player")) then
CastSpellByName("Healing Touch(Rank 10)");
else
TargetUnit("player");
CastSpellByName("Healing Touch(Rank 10)");
end
end
elseif((UnitClass("player") == "Shaman")) then
duration = GetSpellCooldown(healID, 1);
if(duration == 0) then
if(UnitIsEnemy("target", "player")) then
TargetUnit("player");
CastSpellByName("Healing Wave(Rank 9)");
TargetLastEnemy();
if (UnitIsDead("target") == 1) or ( UnitExists("target") ~= 1) then
TargetNearestEnemy()
end
elseif(UnitIsFriend("target", "player")) then
CastSpellByName("Healing Wave(Rank 9)");
else
TargetUnit("player");
CastSpellByName("Healing Wave(Rank 9)");
end
end
end
end
-- NS Lightning Start
function AsmoMOD_nslight()
duration = GetSpellCooldown(nsID, 1);
if(duration == 0) then
CastSpellByName("Nature's Swiftness")
nslightning = 1;
end
SpellStopCasting();
duration = GetSpellCooldown(LightID, 1);
if(duration == 0) then
if(nslightning == 2) then
nslightning = 0;
return;
end
nslightning = 2;
if(UnitIsEnemy("target", "player")) then
CastSpellByName("Chain Lightning(Rank 4)");
else
TargetNearestEnemy();
CastSpellByName("Chain Lightning(Rank 4)");
end
end
end
-- Feign-Trap Start
function AsmoMOD_feigntrap()
PetFollow();
duration = GetSpellCooldown(feignID, 1);
if(duration == 0) then
CastSpellByName("Feign Death")
feigntrap = 1;
end
SpellStopCasting();
duration = GetSpellCooldown(trapID, 1);
if(duration == 0) then
if(feigntrap == 2) then
feigntrap = 0;
return;
end
feigntrap = 2;
CastSpellByName("Freezing Trap(Rank 3)");
end
end
-- Hide Popupbox Implimentation
function AsmoMOD_HideWindow(windowToHide)
local windowIndex
for windowIndex = 1, STATICPOPUP_NUMDIALOGS do
local currentFrame = getglobal("StaticPopup" .. windowIndex)
if currentFrame:IsVisible() and (currentFrame.which == windowToHide) then
currentFrame:Hide();
end
end
end
-- Basic Text send function
function AsmoMOD_Chat(text)
DEFAULT_CHAT_FRAME:AddMessage(AsmoMOD_Color..text);
end
function AsmoMOD_ChatR(text)
DEFAULT_CHAT_FRAME:AddMessage(AsmoMOD_ColorR..text);
end
--Options Functions
function AsmoMOD_PercentageChanged()
AsmoMOD_Save.nspercent = this:GetValue();
nstext:SetText("NSHeal Percent: ".. AsmoMOD_Save.nspercent .. "%");
end
function AsmoMOD_ConserveChanged()
AsmoMOD_Save.conservepercent = this:GetValue();
conservetext:SetText("Conserve Percent: ".. AsmoMOD_Save.conservepercent .. "%");
end
Generated by GNU Enscript 1.6.5.90.