Download
(3MB)
Download
Updated: 06-21-19 09:09 AM
Compatibility:
Classic (1.13.2)
Updated:06-21-19 09:09 AM
Created:05-29-19 07:49 PM
Downloads:2,097
Favorites:9
MD5:
Categories:Character Advancement, Classic - General

CoolLevelUp Classic

Version: 1.13.0.3
by: mushroomyo, humfras

This is a WoW Classic version of the now dead CoolLevelUp addon from back in the day. It makes leveling fun!

Optional Files (0)


Post A Reply Comment Options
Unread 05-26-21, 06:28 AM  
humfras
A Flamescale Wyrmkin
AddOn Author - Click to view AddOns

Forum posts: 131
File comments: 126
Uploads: 8
Since so many people asked me to update CoolLevelUp, I started working on it again.

New files for Classic and TBCC are available at

WoWInterface
CurseForge
__________________
Author of VuhDo CursorCastBar OptiTaunt Poisoner RaidMobMarker
Report comment to moderator  
Reply With Quote
Unread 05-18-21, 01:42 PM  
CrazyDude
A Kobold Labourer

Forum posts: 0
File comments: 2
Uploads: 0
How to update this for TBC Classic

How to make this addon work in TBC Classic:
1) Download humfras's latest version. It works a lot better than the changes I previously recommended in this post .
Last edited by CrazyDude : 05-28-21 at 09:11 PM.
Report comment to moderator  
Reply With Quote
Unread 01-08-20, 01:46 PM  
emanueol
A Kobold Labourer

Forum posts: 0
File comments: 3
Uploads: 0
no music playing when leveling up

Hi, i been using this nice addon couple weeks ago, and intially when i dinged i saw both window with new stats and also hear a music, now i dont hear the music anymore

Is there any / command i can use to see its config or such ?

Thanks,
Budha
Report comment to moderator  
Reply With Quote
Unread 12-03-19, 12:06 PM  
Dathias
A Kobold Labourer

Forum posts: 1
File comments: 2
Uploads: 0
Fixed another bug that kept giving me a working addon but no level up skills.
In the trainer.lua file, you need to change the following:
Replace the Trainer.OnTrainerVisit function with the following block. It will fix the issue when skills don't have a rank. Tested by Menaiya on Azuresong. If you enjoy this fix please communicate to the author.

Code:
Trainer.OnTrainerVisit = function(self)
	if IsTradeskillTrainer() then return; end

	-- Reveal all available services by nullifying the filter

	local availableStatus   = GetTrainerServiceTypeFilter("available");
	local unavailableStatus = GetTrainerServiceTypeFilter("unavailable");
	local alreadyStatus	    = GetTrainerServiceTypeFilter("used");

	SetTrainerServiceTypeFilter("available", 1);
	SetTrainerServiceTypeFilter("unavailable", 1);
	SetTrainerServiceTypeFilter("used", 1);

	-- Expand all (done by default).

		--changed from ExpandTrainerSkillLine(0);

	-- Prepare database update

	local myClass = select(2, UnitClass("player"));
	local classDB = Root.Database.Get("trainer", myClass) or { };

	local wowVersion = select(1, GetBuildInfo());
	if ( not classDB.version ) or ( classDB.version ~= wowVersion ) then
		wipe(classDB);
		classDB.version = wowVersion;
		classDB.lookup = { };
	end

	-- Now grab infos

	local i, name, rank, category, expanded, classTree;

	for i=1, GetNumTrainerServices() do
		name, rank, category,expanded  = GetTrainerServiceInfo(i);
		classTree = GetTrainerServiceSkillLine(i);
                if not rank == nil then
                     --      _, rank = string.sub(rank,string.find(rank, "Rank %d+"));
                    rank = string.sub(rank,string.find(rank, "%d+",-2));
                end
                rank = string.sub(rank,6);
                rank = tonumber(rank) or 0;
		if ( category ~= "header" and classTree ) then
			local reqLevel = GetTrainerServiceLevelReq(i) or 0;
			if ( reqLevel > 0 ) then
				-- Potential skill.
				local lookupString = name.."|"..rank;
				if ( not classDB.lookup[lookupString] ) then
					local num = #classDB+1;
					classDB[num] = {name = name, rank = rank, tree = classTree, level = reqLevel};
					classDB.lookup[lookupString] = num;
				end
			end
		end
	end

	-- Terminate database update

	Root.Database.Set("trainer", myClass, classDB);

	-- Restore old filters

	SetTrainerServiceTypeFilter("available", availableStatus and 1 or 0);
	SetTrainerServiceTypeFilter("unavailable", unavailableStatus and 1 or 0);
	SetTrainerServiceTypeFilter("used", alreadyStatus and 1 or 0);
end
Unfortunately for some reason I can't figure out why only one skill is being saved.
Last edited by Dathias : 12-03-19 at 12:25 PM.
Report comment to moderator  
Reply With Quote
Unread 10-19-19, 06:28 PM  
Dathias
A Kobold Labourer

Forum posts: 1
File comments: 2
Uploads: 0
Originally Posted by ObscureScience
Getting this error when visiting trainer:

Code:
2x CoolLevelUp\data\trainer.lua:85: bad argument #1 to 'find' (string expected, got nil)
[C]: in function `find'
CoolLevelUp\data\trainer.lua:85: in function `?'
CoolLevelUp\CoolLevelUp-1.13.0.2.lua:55: in function `InvokeHandler'
CoolLevelUp\CoolLevelUp-1.13.0.2.lua:123: in function `OnEvent'
[string "*:OnEvent"]:1: in function <[string "*:OnEvent"]:1>

Locals:
(*temporary) = nil
(*temporary) = "(%d+)"
(*temporary) = "string expected, got nil"

I think I might have a solution for the programmer, I am by NO MEANS a lua expert, but I love this addon and humbly suggest the lines 82 - 101 in the data\trainer.lua file look like this:

Code:
	for i=1, GetNumTrainerServices() do
		name, rank, category,expanded  = GetTrainerServiceInfo(i);
		classTree = GetTrainerServiceSkillLine(i);
		if not rank == nil then
			rank = string.sub(rank,string.find(rank, "Rank %d+"));
			rank = tonumber(rank) or 0;
			if ( category ~= "header" and classTree ) then
				local reqLevel = GetTrainerServiceLevelReq(i) or 0;
				if ( reqLevel > 0 ) then
					-- Potential skill.
					local lookupString = name.."|"..rank;
					if ( not classDB.lookup[lookupString] ) then
						local num = #classDB+1;
						classDB[num] = {name = name, rank = rank, tree = classTree, level = reqLevel};
						classDB.lookup[lookupString] = num;
					end
				end
			end
		end
	end
The reasoning is the error occurs when it tries to read a line without a "rank" info. Which causes more problems. Next I added sub to retrieve the value found in the rank., not sure if this is right to do as I haven't studied the rest of the table but it should return the number's value rather than its position.

just my thoughts. Hope this helps the developer. (for the record this is my first time staring at lua and using the /run command in wow... a lot...)
Report comment to moderator  
Reply With Quote
Unread 09-01-19, 12:14 PM  
ObscureScience
A Deviate Faerie Dragon

Forum posts: 10
File comments: 81
Uploads: 0
Getting this error when visiting trainer:

Code:
2x CoolLevelUp\data\trainer.lua:85: bad argument #1 to 'find' (string expected, got nil)
[C]: in function `find'
CoolLevelUp\data\trainer.lua:85: in function `?'
CoolLevelUp\CoolLevelUp-1.13.0.2.lua:55: in function `InvokeHandler'
CoolLevelUp\CoolLevelUp-1.13.0.2.lua:123: in function `OnEvent'
[string "*:OnEvent"]:1: in function <[string "*:OnEvent"]:1>

Locals:
(*temporary) = nil
(*temporary) = "(%d+)"
(*temporary) = "string expected, got nil"
Report comment to moderator  
Reply With Quote
Unread 09-01-19, 12:40 AM  
jessie2cv
A Kobold Labourer

Forum posts: 0
File comments: 1
Uploads: 0
thank you!

Hey, wanted to say thank you very much, both to @humfras for coming up with this addon, and to @mustroomyo for bringing it to Classic. I absolutely love the extra pizzaz it brings to even the small level-ups, I have shared it with my guildies and everyone that has tried it frequently says how much they love it (pretty much each time we level-up we say it again lol).

I saw that you were both discussing maybe adding some extra functionality to it. One thing I would like to see is maybe being able to move the frames to a position of my choice, or maybe make it so it fades a bit (not completely) if you are in combat, as sometimes it can come at the most inopportune moments.

Either way I will continue using and recommending this addon, because it's great. Thank you both again!
Report comment to moderator  
Reply With Quote
Unread 08-28-19, 04:17 PM  
Shakuzen
A Kobold Labourer

Forum posts: 0
File comments: 1
Uploads: 0
Custom Sounds/BGMS for leveling up?

Hey o/
Love the add on.
just wondering if you were considering implimenting the option to drop custom sound files in so we can tailor how everything sounds =D
Report comment to moderator  
Reply With Quote
Unread 06-22-19, 08:08 AM  
crusaderesper
A Kobold Labourer
Premium Member

Forum posts: 0
File comments: 23
Uploads: 0
Code:
Message: Interface\AddOns\CoolLevelUp\data\trainer.lua:85: bad argument #1 to 'find' (string expected, got nil)
Time: Sat Jun 22 07:06:23 2019
Count: 2
Stack: Interface\AddOns\CoolLevelUp\data\trainer.lua:85: bad argument #1 to 'find' (string expected, got nil)
[C]: in function `find'
Interface\AddOns\CoolLevelUp\data\trainer.lua:85: in function `?'
Interface\AddOns\CoolLevelUp\CoolLevelUp.lua:55: in function `InvokeHandler'
Interface\AddOns\CoolLevelUp\CoolLevelUp.lua:123: in function `OnEvent'
[string "*:OnEvent"]:1: in function <[string "*:OnEvent"]:1>

Locals: (*temporary) = nil
(*temporary) = "(%d+)"
(*temporary) = "string expected, got nil"
I am assuming this error I got when I visited a trainer is due to that previously noted issue?
Report comment to moderator  
Reply With Quote
Unread 05-30-19, 11:54 AM  
mushroomyo
A Kobold Labourer
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 2
Uploads: 2
Re: Not working

Sorry dude, I put this out in a bit of a rush. It was working for me from level 1-4 on a Tauren Druid. I wasn't able to do a whole lot of testing since I only have access to the stress test server, but I've allowed patch submissions on this addon if you want to take a swing at it.

Originally Posted by Gettys
Hey,

I tried downloading and using the addon. I got a bunch of LUA errors. Don't think it's working? I really love this addon. I know a bit of LUA but new to addons so maybe I can take a crack at it.
Report comment to moderator  
Reply With Quote
Unread 05-30-19, 11:51 AM  
mushroomyo
A Kobold Labourer
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 2
Uploads: 2
Oh damn! Hey, thanks for checking this out. A friend of mine wanted a working version of this for classic, but I'm no Lua dev, so I was struggling to cobble it together during the stress test last night. Unfortunately, I forgot to remove some stuff where I was tinkering with it (the print when talking to trainers and comment).

If you're planning to resurrect this addon, maybe we can get this one taken down. Not really sure what the proper etiquette is on this site. If you're curious, I ended up using version 4.0.7 of your addon to get started. I had to revert a couple of things related to talents where the API has changed over the years, I guess.

Originally Posted by humfras
Nice to see somebody still remembers and likes this old boy

Since I haven't received an invite for the classic beta, I can't update any of my AddOns except during the few hours the stress test is live (in case I find time).


Now for the technical part:

You need to uncomment line 84 in the data/trainer.lua file from
Lua Code:
  1. --_, _, rank = string.find(rank, "(%d+)");
to
Lua Code:
  1. _, _, rank = string.find(rank, "(%d+)");
because GetTrainerServiceInfo's rank return is a localized string (e.g. "Rank 1")

And you'll need to silence the debug print in line 91.

.

If I receive an invite and find some time, I'd like to overhaul CoolLevelUp to simplify the code and support custom textures, fonts and sounds via an ingame config.

.

Greetings
humfras/Chris
Report comment to moderator  
Reply With Quote
Unread 05-30-19, 07:44 AM  
humfras
A Flamescale Wyrmkin
AddOn Author - Click to view AddOns

Forum posts: 131
File comments: 126
Uploads: 8
Nice to see somebody still remembers and likes this old boy

Since I haven't received an invite for the classic beta, I can't update any of my AddOns except during the few hours the stress test is live (in case I find time).


Now for the technical part:

You need to uncomment line 84 in the data/trainer.lua file from
Lua Code:
  1. --_, _, rank = string.find(rank, "(%d+)");
to
Lua Code:
  1. _, _, rank = string.find(rank, "(%d+)");
because GetTrainerServiceInfo's rank return is a localized string (e.g. "Rank 1")

And you'll need to silence the debug print in line 91.

.

If I receive an invite and find some time, I'd like to overhaul CoolLevelUp to simplify the code and support custom textures, fonts and sounds via an ingame config.

.

Greetings
humfras/Chris
__________________
Author of VuhDo CursorCastBar OptiTaunt Poisoner RaidMobMarker
Last edited by humfras : 05-30-19 at 07:47 AM.
Report comment to moderator  
Reply With Quote
Unread 05-30-19, 01:03 AM  
Gettys
A Kobold Labourer

Forum posts: 0
File comments: 1
Uploads: 0
Not working

Hey,

I tried downloading and using the addon. I got a bunch of LUA errors. Don't think it's working? I really love this addon. I know a bit of LUA but new to addons so maybe I can take a crack at it.
Report comment to moderator  
Reply With Quote
Post A Reply



Category Jump: