Are you visually impaired, and because of that (or for some other reason) do you have trouble reading in-game gossip & quest dialogues? This mod concept is designed to help you. The idea is that when you're presented with text, it'll be read out to you from an audio file.
What's with these E and S versions?
It's a difference between mod versions and this is important to know. Basically an E implies an experimental mod, whereas an S implies a stable mod. A stable mod has been confirmed as completely functional, whereas an experimental mod is an in-development version which could fall anywhere between completely functional or not at all.
I'm not playing World of Warcraft any longer, so I supply experimental versions to have them tested in game. I do as much as I can with a local Lua parser, but I can't get everything.
The bottom-line is that if you want a mod that just works, grab an S version, and if you want to help me out, grab an E version. If the current mod is showing an E version then check the archived tab, it'll have the latest stable version there. If the current mod is showing an S version then there are no experimental versions as of this time.
How do I use it?
For those who just want to put this to use, there's only one consideration: due to the nature of the way World of Warcraft plays files that can be halted at will, you'll need to keep your music enabled. If there's interest, I'll try and design a version that detects whether your music is enabled or not, and enable it only for the amount of time the file is playing.
Once the mod is in place, you'll need some sound files. The sound files will generally be a string of numbers with an mp3 extension, and these must be put in the 'Sound Files' folder that's inside the 'I Hear NPC People' folder. A download link for a compressed file containing all the files created thus far can be found below.
[Link to be added.]
How can I contribute?
If you wish to contribute, you'll need only a decent microphone and the ability to speak clearly. Here's my recommended procedure for creating the required file.
1. Start your favourite audio recording software.
2. Task-switch into World of Warcraft.
3. Open up the dialogue you wish to record voice for.
4. Enter: /gossipid
5. This will give you a filename, keep this in mind.
6. Task-switch away to your audio recording software.
7. Start recording and switch back*.
8. As clearly as you can, read all the text within the dialogue.
9. Switch back to your audio recording software*.
10. Stop the recording.
11. Save the file with the filename /gossipid gave you.
12. Put the file in the 'Sound Files' folder.
13. Restart World of Warcraft.
14. Open the relevant dialogue again to see if it plays.
15. Once you're satisfied, upload to the repository.
* I realise that this will create a delay at the start and end of the file, but this is perfectly acceptable for two reasons: It will give the NPC the time needed to speak their greeting, and it will provide a gap between looping (the sound will continue to loop until the dialogue is closed).
[Normally, a link to the repository upload page would be here.]
How should I bug report?
As of version 1.7E, there's a new debug command in the mod which should help you with tracking down the nature of a bug. When you report a bug, supply what you feel are the relevant debug lines and the error you received (if any), if there was no error then just provide those debug lines and a description of the problem.
I'll warn you that the debug prints are very verbose and frequent, but this is just to help determine any problems you may come across.
To activate debugging mode, type: /ihnpdebug
If you feel you know what the error is/how to fix it then please feel free to post that information! I know that there are many competent players out there who understand the inner-workings of a mod, and the debug messages along with any errors would probably be as illuminating for you as they are for me.
Once you've gotten your report together, just leave it as a comment as I read those often.
What is your mission statement?
Whenever I start a new project, I have two goals in mind for the mod I want to create:
1. It gets the job done, and just the job.
2. It's a mod one could be proud to have on their PC.
I realise that the second goal is lofty, and probably impossible, but that's what I set for myself as an attempted standard. I want a mod that works well, is small, and is human readable despite not being commented. I will do my best to achieve those goals.
I get this from my artistic side; I realise that I could never achieve perfection, but I should strive for it anyway.
I realise I'm particularly young in the scene, and there's a lot about Lua I just don't know, so I'm always happy to get help in any kind. Especially if it results in a better mod for everyone, because that's what I want, I'm not doing this for myself at the moment since I've already quit World of Warcraft.
If you have any advice, all that I ask is that you try not to be heavy-handed. I don't really have great levels of self-confidence/self-esteem, and I've had projects of mine (at least publically) killed in the past when people have laid into me and been a bit of a snarky bully.
I'll continue with this project until I feel it's 'done', that there really isn't anything else I can do with it, and that the attempt to do so would ruin its core functionality. And I'll do my best to leave the community with a fully bugfixed and stable version of my mod.
Should future versions of Warcraft break the core functionality, I'll pop back to try and fix it, but I'm leaving this mod open (as I do with all my mods) for others to continue with it should I be unable to do that.
<< Stable Releases >>
[ 1.0S ]
-- Confirmed working version. Hooray!
<< Experimental Releases >>
[ 1.10E ]
-- There are days where I can be very stupid, this is one of them.
-- Basically no events were being handled, I've sorted that now.
-- I'll make a post about this too to explain further.
-- With this, we might actually be ready for another stable release.
[ 1.9E ]
-- Hmm, I think I have the bug Otto found figured out! We'll see!
[ 1.8E ]
-- A new debug system has been introduced (toggle with /ihnpdebug).
-- The mod will now try to detect your music settings (for voice playback).
-- Regardless of your music settings, the mod should be able to play the voice files.
-- It should change your music settings and reset them when it's done.
-- A lot was changed in this version so you might want to be ready for a bugfest. >_>;
-- If you'd rather not help with bug-finding, please grab 1.0S instead. Thanks!
[ 1.7E ]
-- Bug fixed in print function.
[ 1.6E ]
-- Hmmm! Debug time!
[ 1.5E ]
-- Silly error because I'm rusty. Got the variables passed to SetScript mixed up.
-- This should see the line 5 ? bug fixed.
-- So basically, everything seems fine except for that.
-- Here's hoping!
[ 1.4E ]
-- I took apart the checksummer and tinkered with it, lots of fun!
-- Local tests with a Lua parser shows that it does return valid checksums.
-- Basically, I can get it to spit out something like "14992.mp3".
-- I also screwed up the events again last time, _CLOSED, blast it!
-- If I'm right, I've covered all my bases, this should be a working version.
-- If so, that experimental notice can be removed and we can start doing something with this!
[ 1.3E ]
-- I dropped the MD5 library all together, the mod is smaller now.
-- This has been replaced with a checksum algorithm I found on the net (eek!).
-- The mod is now less ambiguous with errors, and should report failed checksums.
-- Got no errors running this through a parser, but the checksummer is an unknown quantity.
-- Let me know your results if this works, as I must ensure it's not providing impossible filenames.
[ 1.2E ]
-- Attempt to fix an interesting bug.
-- Slightly more robust code.
-- Whee, firing in the dark here, but here's hoping!
-- Thanks to OttoDeFe for helping me to squash boogs.
[ 1.1E ]
-- Rusty, been a while. I got one event wrong, it's GOSSIP_CLOSED, not GOSSIP_HIDE, damn it.
[ 1.0E ]
-- First highly experimental release, which didn't work at all.