CurseForge and Overwolf are joining forces!
Awesome More Information
  • 0

    posted a message on TheRightStuff
    This is an idea for an aspect selection mod that does not need to run constantly.

    On a bound keypress the mod should look at several different criteria including but not limited to target, party member count, autorun and active spells. Unlike other mods that already do this there will be no need for an override because the player has to press a key to decide an aspect.

    My general thought process of the events is:

    Press key,
    Check for a target and if target can not attack player or there is no target and autorun is active cast AoC, optionally if party member count > 0 cast AoP.

    If target can attack player or player can attack target check range via generic spell like Wingclip or Auto Shot, if wingclip is usable then cast AoM, if autoshot is usable then cast AoH.

    This would also be a great mod to pick up an aced version of anti daze.

    If player is "dazed" cast AoM.

    Thoughts?
    Posted in: Addon Ideas
  • 0

    posted a message on Edited: Creating an ACE author~
    Excellent. Starting to make sense.
    Posted in: General Chat
  • 0

    posted a message on Edited: Creating an ACE author~
    Yeah im completely confused ;)

    The first part about the args I understand and youre right it works just as well without.

    The second changing the LUA script I dont understand. I dont see how that would distinguilsh one form of combat from another or target or player.

    I also don't understand that actually at all. I don't see how it would even work. Not to say it doesn't just that I don't currently understand it.

    Would you be willing to rewrite it in a non aced version so that I can see the form you use in action? Having the two to compare would help me a lot. I'd like to see it done with ACE as well but first things first.
    Posted in: General Chat
  • 0

    posted a message on Edited: Creating an ACE author~
    Afternoon All,

    I modified dodgeding a long time ago to create a screen splash and play another sound when my hunter dodges or parries. However it annoyed me when I played my other toons since they really don't care. I've just recently rewritten it to be friendlier for other classes and to include dodge monitoring for warriors and parry monitoring for rogues. This is all with the intent to release it publically.

    The current problem is as long as you are in combat (while the script is running) it continues to allocate more and more memory until you leave combat. .01-.02 meg per tick to be precise. Ugly to say the least. Deadly if you hit the garbage collector at a bad time.

    LUA included :

    local playerClass, englishClass = UnitClass("player")
    
    function MM_OnLoad()
    	if ( playerClass == "Hunter" or "Rogue" or "Warrior") then
    		this:RegisterEvent("UNIT_COMBAT")
    	end
    end
    
    function MM_OnEvent(event)
    	if ( playerClass == "Hunter" ) then
    		if (( event=="UNIT_COMBAT" ) and ( arg1=="player" ) and ( arg2=="DODGE" )) then
    			PlaySoundFile("interface\\addons\\mongoosemania\\waves\\dodge.wav")
    			MMSplashFrame:AddMessage(("Mongoose Bite!"), 1, 1, 0, 1, 2)
    		elseif (( event=="UNIT_COMBAT" ) and ( arg1=="player" ) and ( arg2=="PARRY" )) then
    			PlaySoundFile("interface\\addons\\mongoosemania\\waves\\parry.wav")
    			MMSplashFrame:AddMessage(("Counter Attack!"), 1, 1, 0, 1, 2)
    		end
    	elseif ( playerClass == "Warrior" ) then
    		if (( event=="UNIT_COMBAT" ) and ( arg1=="target" ) and ( arg2=="DODGE" )) then
    			PlaySoundFile("interface\\addons\\mongoosemania\\waves\\dodge.wav")
    			MMSplashFrame:AddMessage(("Overpower!"), 1, 1, 0, 1, 2)
    		end
    	elseif ( playerClass == "Rogue" ) then
    		if (( event=="UNIT_COMBAT" ) and ( arg1=="target" ) and ( arg2=="PARRY" )) then
    			PlaySoundFile("interface\\addons\\mongoosemania\\waves\\parry.wav")
    			MMSplashFrame:AddMessage(("Disarm!"), 1, 1, 0, 1, 2)
    		end
    	end
    end


    XML included:

    <Ui xmlns="http&#58;//www.blizzard.com/wow/ui/" xmlns&#58;xsi="http&#58;//www.w3.org/2001/XMLSchema-instance" xsi&#58;schemaLocation="http&#58;//www.blizzard.com/wow/ui/">
    	<Script file="MongooseMania.lua"/>
    	<Frame name="MMAudioFrame">
    		<Scripts>
    			<OnLoad>
    				MM_OnLoad&#40;&#41;
    			</OnLoad>
    			<OnEvent>
    				MM_OnEvent&#40;event, arg1, arg2&#41;
    			</OnEvent>
    		</Scripts>
    	</Frame>
    	<MessageFrame frameStrata="LOW" insertMode="TOP" name="MMSplashFrame" parent="UIParent" toplevel="true">
    		<Size>
    			<AbsDimension x="512" y="100"></AbsDimension>
    		</Size>
    		<Anchors>
    			<Anchor point="CENTER">
    				<Offset>
    					<AbsDimension x="0" y="0"></AbsDimension>
    				</Offset>
    			</Anchor>
    		</Anchors>
    		<FontString inherits="NumberFontNormalHuge" justifyH="CENTER"></FontString>
    	</MessageFrame>
    </Ui>
    Posted in: General Chat
  • 0

    posted a message on Party member pet frames?
    As far as i know that is the players pet frame. Not the party members.
    Posted in: General Chat
  • 0

    posted a message on Party member pet frames?
    I've been scrounding through the default XML and LUA for anything that defines the pet frames attached to the party frames. I got nothing. Insight anyone?
    Posted in: General Chat
  • 0

    posted a message on Looking for someone to "clean" my personal mod.
    sweet.. nice tip.
    Posted in: Addon Ideas
  • 0

    posted a message on Looking for someone to "clean" my personal mod.
    Here is the most stable version ive come up with. Keep in mind all ive done is "steal" from the original interface.

    MAX_MOKAPET_DEBUFFS = 5;
    MAX_MOKAPET_BUFFS = 5;
    
    
    function MokaPetFrame_OnLoad()
    	this.statusCounter = 0;
    	this.statusSign = -1;
    	CombatFeedback_Initialize(MokaPetHitIndicator, 30);
    	PetFrame:Hide();
    	PartyMemberFrame1:SetPoint("TOPLEFT", "UIParent", "TOPLEFT", 10, -172);
    	MokaPetFrame_Update();
    	this:RegisterEvent("UNIT_PET");
    	this:RegisterEvent("UNIT_AURA");
    	this:RegisterEvent("UNIT_LEVEL");
    	this:RegisterEvent("UNIT_COMBAT");
    	this:RegisterEvent("UNIT_HAPPINESS");
    	this:RegisterEvent("UNIT_PET_EXPERIENCE");
    	this:RegisterEvent("UNIT_MAXMANA");
    	this:RegisterEvent("PET_ATTACK_STOP");
    	this:RegisterEvent("PLAYER_ENTERING_WORLD");
    	this:RegisterEvent("PET_ATTACK_START");
    	this:RegisterEvent("PLAYER_DEAD");	
    	MokaPetAttackBackground:SetVertexColor(0.8, 0.1, 0.1);
    	MokaPetAttackBackground:SetAlpha(0.4);
    	PlayerName:SetTextHeight("12");
    	TargetName:SetTextHeight("12");
    	MokaPetName:SetTextHeight("12");
    end
    
    function MokaPetFrame_Update()
    	MokaPetLevelText:SetText(UnitLevel("pet"));
    	MokaPetFrame_UpdateStatus();
    	MokaPetDebuffButton_Update();
    	MokaPetFrame_SetHappiness()
    	MokaPetExpBar_Update()
    end
    
    function MokaPetDebuffButton_Update()
    	local debuff, debuffApplications, debuffButton, buff, buffButton;
    	local button;
    	for i=1, MAX_MOKAPET_BUFFS do
    		buff = UnitBuff("pet", i);
    		button = getglobal("MokaPetFrameBuff"..i);
    		if ( buff ) then
    			getglobal("MokaPetFrameBuff"..i.."Icon"):SetTexture(buff);
    			button:Show();
    			button.id = i;
    		else
    			button:Hide();
    		end
    	end
    	local debuffCount;
    	local numDebuffs = 0;
    	for i=1, MAX_MOKAPET_DEBUFFS do
    		debuff, debuffApplications = UnitDebuff("pet", i);
    		button = getglobal("MokaPetFrameDebuff"..i);
    		if ( debuff ) then
    			getglobal("MokaPetFrameDebuff"..i.."Icon"):SetTexture(debuff);
    			debuffCount = getglobal("MokaPetFrameDebuff"..i.."Count");
    			if ( debuffApplications > 1 ) then
    				debuffCount:SetText(debuffApplications);
    				debuffCount:Show();
    			else
    				debuffCount:Hide();
    			end
    			button:Show();
    			numDebuffs = numDebuffs + 1;
    		else
    			button:Hide();
    		end
    		button.id = i;
    	end
    
    	MokaPetFrameBuff1:SetPoint("TOPLEFT", "MokaPetFrame", "BOTTOMLEFT", 105, 32);
    	MokaPetFrameDebuff1:SetPoint("TOPLEFT", "MokaPetFrameBuff1", "BOTTOMLEFT", 0, -2);
    	
    	-- If more than 5 debuffs then make the first 5 small
    	local debuffFrame;
    	local debuffSize, debuffFrameSize;
    	if ( numDebuffs > 5 ) then
    		debuffSize = 17;
    		debuffFrameSize = 19;
    	else
    		debuffSize = 21;
    		debuffFrameSize = 23;
    	end
    	for i=1, 5 do
    		button = getglobal("MokaPetFrameDebuff"..i);
    		debuffFrame = getglobal("MokaPetFrameDebuff"..i.."Border");
    		button:SetWidth(debuffSize);
    		button:SetHeight(debuffSize);
    		debuffFrame:SetWidth(debuffFrameSize);
    		debuffFrame:SetHeight(debuffFrameSize);
    	end
    end
    
    function MokaPetFrame_UpdateStatus()
    	if ( MokaPetFrame.inCombat ) then
    		MokaPetStatusTexture:SetVertexColor(1.0, 0.0, 0.0, 1.0);
    		MokaPetStatusTexture:Show();
    		MokaPetAttackIcon:Show();
    		MokaPetAttackGlow:Show();
    		MokaPetStatusGlow:Show();
    		MokaPetAttackBackground:Show();
    	elseif ( MokaPetFrame.onHateList ) then
    		MokaPetAttackIcon:Show();
    		MokaPetStatusGlow:Hide();
    		MokaPetAttackBackground:Hide();
    	else
    		MokaPetStatusTexture:Hide();
    		MokaPetAttackIcon:Hide();
    		MokaPetStatusGlow:Hide();
    		MokaPetAttackBackground:Hide();
    	end
    end
    
    function MokaPetFrame_SetHappiness()
    	local happiness, damagePercentage, loyaltyRate = GetPetHappiness();
    	local hasPetUI, isHunterPet = HasPetUI();
    	if ( not happiness or not isHunterPet ) then
    		MokaPetMoodFrame:Hide();
    		return;	
    	end
    	MokaPetMoodFrame:Show();
    
    	if ( happiness == 1 ) then
    		MokaPetMoodBackground:SetVertexColor(1,0,0,.75);
    	elseif ( happiness == 2 ) then
    		MokaPetMoodBackground:SetVertexColor(.875,.875,0,.75);
    	elseif ( happiness == 3 ) then
    		MokaPetMoodBackground:SetVertexColor(0,1,0,.75);
    	end
    end
    
    function MokaPetExpBar_Update()
    	local currXP, nextXP = GetPetExperience();
    	if (UnitLevel("pet") == 60) then
    		MokaPetFrameExpBar:Hide();
    	else	
    		MokaPetFrameExpBar:Show();
    	end
    	MokaPetFrameExpBar:SetStatusBarColor(.1,.5,1,1.0);
    	MokaPetFrameExpBar:SetMinMaxValues(min(0, currXP), nextXP);
    	MokaPetFrameExpBar:SetValue(currXP);
    end
    
    function MokaPetFrame_OnEvent(event)
    	UnitFrame_OnEvent(event);
    	PetFrame:Hide();
    	if ( event == "UNIT_PET" or event == "PLAYER_ENTERING_WORLD" ) then
    		if ( UnitExists("pet") ) then
    			MokaPetFrame:Show();
    		else
    			MokaPetFrame:Hide();
    		end
    	elseif ( event == "UNIT_LEVEL" ) then
    		if ( arg1 == "pet" ) then
    			MokaPetLevelText:SetText(UnitLevel("pet"));
    		end
    	elseif ( event == "UNIT_COMBAT" ) then
    		if ( arg1 == "pet" ) then
    			CombatFeedback_OnCombatEvent(arg2, arg3, arg4, arg5);
    		end
    	elseif ( event == "UNIT_AURA" ) then
    		if ( arg1 == "pet" ) then
    			MokaPetDebuffButton_Update();
    		end
    	elseif ( event == "PET_ATTACK_START" ) then
    		this.inCombat = 1;
    		MokaPetFrame_UpdateStatus();
    	elseif ( event == "PET_ATTACK_STOP" or event == "PLAYER_DEAD" or event == "UNIT_PET" or event == "PLAYER_ENTERING_WORLD" ) then
    		this.inCombat = nil;
    		MokaPetFrame_UpdateStatus();
    	end
    end
    
    function MokaPetFrame_OnUpdate(elapsed)
    	if ( MokaPetStatusTexture:IsVisible() ) then
    		local alpha = 255;
    		local counter = this.statusCounter + elapsed;
    		local sign    = this.statusSign;
    
    		if ( counter > 0.5 ) then
    			sign = -sign;
    			this.statusSign = sign;
    		end
    		counter = mod(counter, 0.5);
    		this.statusCounter = counter;
    
    		if ( sign == 1 ) then
    			alpha = (55  + (counter * 400)) / 255;
    		else
    			alpha = (255 - (counter * 400)) / 255;
    		end
    		MokaPetStatusTexture:SetAlpha(alpha);
    		MokaPetStatusGlow:SetAlpha(alpha);
    	end
    	CombatFeedback_OnUpdate(elapsed);
    end
    
    function MokaPetFrame_OnClick(button)
    	if ( SpellIsTargeting() and button == "RightButton" ) then
    		SpellStopTargeting();
    		return;
    	end
    	if ( button == "LeftButton" ) then
    		if ( SpellIsTargeting() ) then
    			SpellTargetUnit("pet");
    		elseif ( CursorHasItem() ) then
    			AutoEquipCursorItem();
    		else
    			TargetUnit("pet");
    		end
    	else
    		ToggleDropDownMenu(1, nil, PetFrameDropDown, "PetFrame", 106, 27);
    		return;
    	end
    end
    
    function MokaPetFrame_OnReceiveDrag()
    	if ( CursorHasItem() ) then
    		AutoEquipCursorItem();
    	end
    end
    
    function MokaPetFrameDropDown_OnLoad()
    	UIDropDownMenu_Initialize(this, MokaPetFrameDropDown_Initialize, "MENU");
    end
    
    function MokaPetFrameDropDown_Initialize()
    	UnitPopup_ShowMenu(MokaPetFrameDropDown, "SELF", "pet");
    end


    Can't wait to see what you come up with.
    Posted in: Addon Ideas
  • 0

    posted a message on Looking for someone to "clean" my personal mod.
    Hi there,


    I've created a new pet window. However I am very new at LUA developing. I want someone who could either guide me in debugging it or just straight up go through it and point out the flaws and give me good corrections. I'd love it if it were ace calibre some day.

    I continue to use "aced" mods however I don't know what it is to be "Aced". I do know however my interface memory usage stays much lower than some of the insane people I see around.

    Let me know if anyone might be interested. We can get further into it on instant messenger or email or something.

    I'm a hunter and my pet is half of me. He deserves equal screen realestate ;)

    The list of things my pet window already does that default does not is:

    [list]Replace the pet window with the same window used by the player.[/list:u]
    [list]Places an expereince bar behind the pets name that disappears at level 60 just like the players leaving only a translucent black background.[/list:u]
    [list]Show pet level just as the player window does.[/list:u]
    [list]Removes the pet happiness button and replaces it with a simple floating circle where PVP status would be on a player.[/list:u]
    [list]Adds the "In combat" icon to the pet window, which reacts to the pets combat status not the players.[/list:u]

    The list of features that have not been added:

    [list]When I mouse over the pet name I want the total amount of experience and experience to level to replace the pet name.[/list:u]
    [list]When I right click the pet portrait I want the full list of pet functions to appear. Including feed, ,dismiss, call etc.[/list:u]


    Mokaikai
    List tags are malformed.
    Posted in: Addon Ideas
  • To post a comment, please or register a new account.