Loving this mod. Excellent work from an end user perspective.
I was wondering if you could add a module to change whats being tracked? I currently use silvertrack for the odd things I wouldn't normally be tracking. However this trumps the silver track menu. Right click on the minimap and all that. I see I can reassign your button to toggle the map but left is ping. Right was track. Would be great if SMM would see Silvertrack installed and add it to the SMM menu or if SMM had a module to do the same.
Either way. Ill continue to use this. Love it so far ;)
I had a friend enquire about the possibility of creating a chat memory that existed no matter the game state.
So far I have found chat loggers. They just dump the chat history into text when you log out. Great and all but you can't retrieve it when you log back in.
I have found Forgotten chat. It looks cool and all but its ridiculously over complicated for the task.
The theory. When you log out of game the last 100 lines of chat, not combat, are saved into LUA. When you log back in. Those lines are then reinserted into the chat frame.
The questions:
This sounds simple. Is it really?
How would the game react to recreating things like links and player names?
Would they still function if simply copied back into the frame?
If this mod does nothing durring game play but only at log in and log out. Can it be done effeciently?
I've been digging around looking for something to just dump guild info into XML, TXT, LUA a leaky bucket... anything. I see lots of old mods that are broken. A couple that just don't seem to do anything and some over powered extremely bloated mods/PHP devices that frankly I wouldn't install on my enemies PC.
If it's not obtained from a place where you can interact with the author its is not a place where the addon should be, or where you should get it. Software is software and to ensure quality you still want your addons to be downloaded from where you put it.
What do we do when an addon or its author cease to host or cease to update the addons? Forget they ever existed?
If any author wants me to cease hosting thier work please let me know. I'll gladly make it so that it can't be downloaded.
However you have inspired me to provide links to the originals if they are still available. if the addons are no longer available like Rownes work for instance. Well I can't help that.
Sorry for hijacking a cool thread. Back to our normaly scheduled programing.
Good that you dont host the mods you use on your site yourself, but link to the websites to where the authors have given permissions to have the addons hosted on (or have uploaded themselves).
Been a long time since I felt snubbed like that =\
Ace AceClock AceGUI AceLoot AcePerfMeter AceStickyChat (not released anywhere. Simply remembers your last chat destination so you dont have to retype them constantly.) AceWardrobe Asbestos
Atlas
bc_TrackingMenu ChatScroll
ColorHealthBar
CritLine CTRASpy
Dag_ClassHeader-Modded (the modded part allows the stock target frame to give you info as if it were the player frame if you have the info turned on.)
Dag_TargetTarget (priceless if you run the stock unit frames)
eCastingBar (oooh perty)
GhostBarMod (so many buttons you need to hotkey or use once in a while) IDCard InspectorAce ItemCompare MapScroll
MokaPetFrame (best pet frame ever!)
MokaPvPRank
MokaVertBuff (home made plain jane EQ style buffs) MongooseMania
myReloadUI (neat little button. I hate remembering script commands)
RangeHelp
RangeRecolor Stalker Timex Visor VisorGUI XRaid
function MongooseMania:UNIT_COMBAT()
if (( arg1 == self.argDodge ) and ( arg2=="DODGE" )) then
if (( ace.char.class == "Warrior") and not ( self:Stance()=="BattleStance" )) then
end
PlaySoundFile(self.dodgeWav)
MMSplashFrame:AddMessage(self.dodgeSpam, 1, 1, 0, 1, 2)
elseif (( arg1 == self.argParry ) and ( arg2=="PARRY" )) then
PlaySoundFile(self.parryWav)
MMSplashFrame:AddMessage(self.parrySpam, 1, 1, 0, 1, 2)
end
end
---------------------------<+++>---------------------------
-- Section Alpha: Initialize the AddOn Object. --
---------------------------<+++>---------------------------
MongooseMania = AceAddon:new({
name = "MongooseMania",
description = "Display a screen splash and play an audio cue when either player or target dodge's and parry's.",
version = " Beta",
releaseDate = "12-29-2005",
aceCompatible = "100",
author = "Mokaikai",
cmd = AceChatCmd:new{"/MM", "/MongooseMania"},
dodgeWav = "interface\\addons\\mongoosemania\\waves\\dodge.wav",
parryWav = "interface\\addons\\mongoosemania\\waves\\parry.wav"
})
function MongooseMania:Initialize()
MongooseMania:ParseSpellBook()
if ( ace.char.class == "Hunter" ) then
self.argDodge = "player"
self.dodgeSpam = "Mongoose Bite!"
if ( self.Counterattack == TRUE ) then
self.argParry = "player"
self.parrySpam = "Counterattack!"
end
elseif ( ace.char.class == "Rogue" ) and ( self.Riposte == TRUE ) then
self.parrySpam = "Disarm!"
self.argParry = "target"
elseif ( ace.char.class == "Warrior") and ( self.Overpower == TRUE ) then
self.dodgeSpam = "Overpower!"
self.argDodge = "target"
else
self.disabled = TRUE
end
end
function MongooseMania:Enable()
self:RegisterEvent("UNIT_COMBAT")
end
function MongooseMania:ParseSpellBook()
local i = 1
while true do
local spellName, spellRank = GetSpellName(i, BOOKTYPE_SPELL)
if not spellName then
do break end
end
if spellName == "Overpower" then self.Overpower = TRUE end
if spellName == "Riposte" then self.Riposte = TRUE end
if spellName == "Counterattack" then self.Counterattack = TRUE end
i = i + 1
end
end
---------------------------<+++>---------------------------
-- Section Beta: The MongooseMania System Function. --
---------------------------<+++>---------------------------
function MongooseMania:Stance()
for i = 1, GetNumShapeshiftForms() do
icon, name, active, castable = GetShapeshiftFormInfo(i)
if active then
return name
end
end
end
function MongooseMania:UNIT_COMBAT()
if (( arg1 == self.argDodge ) and ( arg2=="DODGE" )) then
if (( ace.char.class == "Warrior") and not ( self:Stance()=="BattleStance" )) then
do break end
end
PlaySoundFile(self.dodgeWav)
MMSplashFrame:AddMessage(self.dodgeSpam, 1, 1, 0, 1, 2)
elseif (( arg1 == self.argParry ) and ( arg2=="PARRY" )) then
PlaySoundFile(self.parryWav)
MMSplashFrame:AddMessage(self.parrySpam, 1, 1, 0, 1, 2)
end
end
---------------------------<+++>---------------------------
-- Section Omega: Register the AddOn Object. --
---------------------------<+++>---------------------------
MongooseMania:RegisterForLoad()
Yes thats a step in the right direction only that would return nil or FALSE for hunters but work well for warriors. Would it not? If thats the case then its 90% there and needs only minor tweaking.
That worked great Thister thank you. Ive used what you gave me and what little I know of ACE and come up with what I think the fix for the Battle Stances should look like. Mind looking it over? It is still not tested by a warrior.
--<< ================================================= >>--
-- Section I: Initialize the AddOn Object. --
--<< ================================================= >>--
MongooseMania = AceAddon:new({
name = "MongooseMania",
description = "Display a screen splash and play an audio cue when either player or target dodge's and parry's.",
version = " Beta",
releaseDate = "12-29-2005",
aceCompatible = "100",
author = "Mokaikai",
cmd = AceChatCmd:new{"/MM", "/MongooseMania"},
dodgeWav = "interface\\addons\\mongoosemania\\waves\\dodge.wav",
parryWav = "interface\\addons\\mongoosemania\\waves\\parry.wav"
})
function MongooseMania:Initialize()
MongooseMania:ParseSpellBook()
if ( ace.char.class == "Hunter" ) then
self.argDodge = "player"
self.dodgeSpam = "Mongoose Bite!"
if ( self.Counterattack == TRUE ) then
self.argParry = "player"
self.parrySpam = "Counterattack!"
end
elseif ( ace.char.class == "Rogue" ) and ( self.Riposte == TRUE ) then
self.parrySpam = "Disarm!"
self.argParry = "target"
elseif ( ace.char.class == "Warrior") and ( self.Riposte == TRUE ) and ( self.BattleStance == TRUE ) then
self.dodgeSpam = "Overpower!"
self.argDodge = "target"
else
self.disabled = TRUE
end
end
function MongooseMania:Enable()
self:RegisterEvent("UNIT_COMBAT")
self:RegisterEvent("PLAYER_AURAS_CHANGED")
end
function MongooseMania:ParseSpellBook()
local i = 1
while true do
local spellName, spellRank = GetSpellName(i, BOOKTYPE_SPELL)
if not spellName then
do break end
end
if spellName == "Overpower" then self.Overpower = TRUE end
if spellName == "Riposte" then self.Riposte = TRUE end
if spellName == "Counterattack" then self.Counterattack = TRUE end
-- add an if statement for each spell/ability you are interested in.
i = i + 1
end
end
--<< ================================================= >>--
-- Section II: The MongooseMania System Function. --
--<< ================================================= >>--
function MongooseMania:PLAYER_AURAS_CHANGED()
for i = 1, GetNumShapeshiftForms() do
icon, name, active, castable = GetShapeshiftFormInfo(i)
if active then
return name
end
end
-- add an if statement for each stance you are interested in.
if name == "Battle Stance" then self.BattleStance = TRUE end
end
function MongooseMania:UNIT_COMBAT()
if (( arg1 == self.argDodge ) and ( arg2=="DODGE" )) then
PlaySoundFile(self.dodgeWav)
MMSplashFrame:AddMessage(self.dodgeSpam, 1, 1, 0, 1, 2)
elseif (( arg1 == self.argParry ) and ( arg2=="PARRY" )) then
PlaySoundFile(self.parryWav)
MMSplashFrame:AddMessage(self.parrySpam, 1, 1, 0, 1, 2)
end
end
--<< ================================================= >>--
-- Section Omega: Register the AddOn Object. --
--<< ================================================= >>--
MongooseMania:RegisterForLoad()
OK I understand what I want to do. As usual I don't think I know the language to do it.
First I need to read the spell book to make the names available to my mod. Then I need Mongoosemania to say yeah Overpower exists continue on. I can't envision the language to do that.
I have not atempted yet to deal with the stance issue but here is what I have so far.
--<< ================================================= >>--
-- Section I: Initialize the AddOn Object. --
--<< ================================================= >>--
MongooseMania = AceAddon:new({
name = "MongooseMania",
description = "Display a screen splash and play an audio cue when either player or target dodge's and parry's.",
version = " Beta",
releaseDate = "12-29-2005",
aceCompatible = "100",
author = "Mokaikai",
cmd = AceChatCmd:new{"/MM", "/MongooseMania"},
dodgeWav = "interface\\addons\\mongoosemania\\waves\\dodge.wav",
parryWav = "interface\\addons\\mongoosemania\\waves\\parry.wav"
})
function MongooseMania:Initialize()
MongooseMania:ParseSpellBook()
if ( ace.char.class == "Hunter" ) then
self.argDodge = "player"
self.dodgeSpam = "Mongoose Bite!"
if ( exists "Counterattack" ) then
self.argParry = "player"
self.parrySpam = "Counterattack!"
end
elseif ( ace.char.class == "Rogue" ) and ( exists "Parry" ) then
self.parrySpam = "Disarm!"
self.argParry = "target"
elseif ( ace.char.class == "Warrior") and ( exists "Overpower" ) then
self.dodgeSpam = "Overpower!"
self.argDodge = "target"
else
self.disabled = TRUE
end
end
function MongooseMania:Enable()
self:RegisterEvent("UNIT_COMBAT")
end
function MongooseMania:ParseSpellBook()
local i = 1
while true do
local spellName, spellRank = GetSpellName(i, BOOKTYPE_SPELL)
if not spellName then
do break end
end
i = i + 1
end
end
--<< ================================================= >>--
-- Section II: The MongooseMania System Function. --
--<< ================================================= >>--
function MongooseMania:UNIT_COMBAT()
if (( arg1 == self.argDodge ) and ( arg2=="DODGE" )) then
PlaySoundFile(self.dodgeWav)
MMSplashFrame:AddMessage(self.dodgeSpam, 1, 1, 0, 1, 2)
elseif (( arg1 == self.argParry ) and ( arg2=="PARRY" )) then
PlaySoundFile(self.parryWav)
MMSplashFrame:AddMessage(self.parrySpam, 1, 1, 0, 1, 2)
end
end
--<< ================================================= >>--
-- Section Omega: Register the AddOn Object. --
--<< ================================================= >>--
MongooseMania:RegisterForLoad()
Am I asking to much help? I hate to be a pest. :oops:
0
0
Loving this mod. Excellent work from an end user perspective.
I was wondering if you could add a module to change whats being tracked? I currently use silvertrack for the odd things I wouldn't normally be tracking. However this trumps the silver track menu. Right click on the minimap and all that. I see I can reassign your button to toggle the map but left is ping. Right was track. Would be great if SMM would see Silvertrack installed and add it to the SMM menu or if SMM had a module to do the same.
Either way. Ill continue to use this. Love it so far ;)
0
So far I have found chat loggers. They just dump the chat history into text when you log out. Great and all but you can't retrieve it when you log back in.
I have found Forgotten chat. It looks cool and all but its ridiculously over complicated for the task.
The theory. When you log out of game the last 100 lines of chat, not combat, are saved into LUA. When you log back in. Those lines are then reinserted into the chat frame.
The questions:
This sounds simple. Is it really?
How would the game react to recreating things like links and player names?
Would they still function if simply copied back into the frame?
If this mod does nothing durring game play but only at log in and log out. Can it be done effeciently?
The name! - Remembrall -
0
What if anything do you guys use?
0
BTW wheres my pop tart information go?
0
What do we do when an addon or its author cease to host or cease to update the addons? Forget they ever existed?
If any author wants me to cease hosting thier work please let me know. I'll gladly make it so that it can't be downloaded.
Here is the URL of the random collection I've made over time. http://www.the-daedalus.net/pegasus/modlist.asp
Here is what I actively use and keep up to date. http://www.the-daedalus.net/pegasus/moksmods.asp
However you have inspired me to provide links to the originals if they are still available. if the addons are no longer available like Rownes work for instance. Well I can't help that.
Sorry for hijacking a cool thread. Back to our normaly scheduled programing.
0
Been a long time since I felt snubbed like that =\
0
http://www.the-daedalus.net/pegasus/moksmods.asp
Ace
AceClock
AceGUI
AceLoot
AcePerfMeter
AceStickyChat (not released anywhere. Simply remembers your last chat destination so you dont have to retype them constantly.)
AceWardrobe
Asbestos
Atlas
bc_TrackingMenu
ChatScroll
ColorHealthBar
CritLine
CTRASpy
Dag_ClassHeader-Modded (the modded part allows the stock target frame to give you info as if it were the player frame if you have the info turned on.)
Dag_TargetTarget (priceless if you run the stock unit frames)
eCastingBar (oooh perty)
GhostBarMod (so many buttons you need to hotkey or use once in a while)
IDCard
InspectorAce
ItemCompare
MapScroll
MokaPetFrame (best pet frame ever!)
MokaPvPRank
MokaVertBuff (home made plain jane EQ style buffs)
MongooseMania
myReloadUI (neat little button. I hate remembering script commands)
RangeHelp
RangeRecolor
Stalker
Timex
Visor
VisorGUI
XRaid
Screenie
http://www.the-daedalus.net/pegasus/screenie.png
Just curious what you removed.
0
AIMHIGH
Acesorted.
Utility Belt
Sacked
Sarlacc
0
0
:oops:
0
0
0
0
First I need to read the spell book to make the names available to my mod. Then I need Mongoosemania to say yeah Overpower exists continue on. I can't envision the language to do that.
I have not atempted yet to deal with the stance issue but here is what I have so far.
Am I asking to much help? I hate to be a pest. :oops: