Download
(2Kb)
Download
Updated: 03-12-10 10:19 PM
Pictures
File Info
Updated:03-12-10 10:19 PM
Created:03-08-10 06:14 PM
Downloads:2,067
Favorites:4
MD5:

I Hear NPC People

Version: 1.10E (& 1.0S archived)
by: VagrantEsha [More]

What is this?

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.

Thanks!

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.
Optional Files (0)


Post A Reply Comment Options
Unread 03-08-10, 11:12 PM  
OttoDeFe
A Chromatic Dragonspawn
 
OttoDeFe's Avatar
AddOn Author - Click to view AddOns

Forum posts: 178
File comments: 195
Uploads: 12
Hi Esha! Welcome back (or as close as you're coming...)

Getting this upon the slash command:

Code:
I Hear NPC People-3.3-1.0\\I hear NPC People.lua:20: attempt to concatenate field 'gossipID' (a nil value)
I'm using enUS, but looking I wouldn't think that'd be the issue. I like the idea and wanted to play around with it.
__________________
"They say
the pen is mightier than any saber -
any sword -
but if there's a war
I just don't know if a Bic will save ya..."

-- Last Offence
Report comment to moderator  
Reply With Quote
Unread 03-09-10, 03:11 AM  
VagrantEsha
Token Werewolf Fan
 
VagrantEsha's Avatar
Premium Member
AddOn Author - Click to view AddOns

Forum posts: 27
File comments: 238
Uploads: 38
I've uploaded a new version, it's more robust and should at least tell you something rather than giving an ambiguous error. Let me know how it goes and thanks for testing!
Report comment to moderator  
Reply With Quote
Unread 03-09-10, 03:18 AM  
myrroddin
A Pyroguard Emberseer
 
myrroddin's Avatar
AddOn Author - Click to view AddOns

Forum posts: 1240
File comments: 226
Uploads: 21
This is an awesome idea, and hopefully it takes off, and not just for visually impaired players, but many players might find this helpful.
Report comment to moderator  
Reply With Quote
Unread 03-09-10, 06:49 AM  
Xruptor
A Flamescale Wyrmkin
 
Xruptor's Avatar
AddOn Author - Click to view AddOns

Forum posts: 137
File comments: 640
Uploads: 22
I agree this is a great idea. You should ponder on making a website that people can upload their recorded gossip mp3's. You can release updates in batches that have some new or updated mp3's. Eventually you should have a large portion of mp3's available for this mod.
__________________
Click HERE for the ultimate idiot test.

if (sizeof(sadness) > sizeof(happiness)) { initDepression(); }
Report comment to moderator  
Reply With Quote
Unread 03-09-10, 08:29 AM  
VagrantEsha
Token Werewolf Fan
 
VagrantEsha's Avatar
Premium Member
AddOn Author - Click to view AddOns

Forum posts: 27
File comments: 238
Uploads: 38
@Xruptor

That'd be step 2, yup. First I just need to make sure it's working, and once I've got a confirmation on that then the next step is putting a repository together.

At the moment, this is all still highly experimental.
Report comment to moderator  
Reply With Quote
Unread 03-09-10, 09:26 AM  
nightcracker
A Molten Giant
 
nightcracker's Avatar
AddOn Author - Click to view AddOns

Forum posts: 716
File comments: 428
Uploads: 22
MD5 ID's won't work on text because it's localized. Unless you want to make this addon for every localization.... o.0
__________________
Three things are certain,
Death, taxes and site not found,
You, victim of one.
Report comment to moderator  
Reply With Quote
Unread 03-09-10, 09:39 AM  
VagrantEsha
Token Werewolf Fan
 
VagrantEsha's Avatar
Premium Member
AddOn Author - Click to view AddOns

Forum posts: 27
File comments: 238
Uploads: 38
Originally posted by nightcracker
MD5 ID's won't work on text because it's localized. Unless you want to make this addon for every localization.... o.0
What people do is up to them, but what you don't realise is that you've answered your own question.

Say someone wants to setup a Swedish (for example) repository? The Swedish MD5s are going to be different to the English ones, so they won't clash. If there's an English repository alone or repositories for multiple languages is outside the scope of myself and this mod. What people choose to do is up to them.

Having an Swedish client though that reads English voice files isn't going to help anyone, so having different MD5s that use different voice files is actually the best scenario. In other words, everything 'just works' and to its best advantage. If someone wants a repository in their native tongue then they can start up a repository for it or use the English client.

(Footnote: It's misleading to tell people that MD5's won't work. MD5's will work. What you meant to say is that MD5's won't make English voice files work in a foreign client, but I don't think that's helpful, anyway.)
Last edited by VagrantEsha : 03-09-10 at 09:55 AM.
Report comment to moderator  
Reply With Quote
Unread 03-09-10, 11:37 AM  
Saliron
A Kobold Labourer

Forum posts: 0
File comments: 3
Uploads: 0
How about...

Isn't there a way to make the computer telly you with a robot voice?

Seeing how it's possible to program the most random pictures and sounds into the game, it should be doable. You already have the Windows-speech machine with his Sam-voice.

If something like that could be implemented, it would be awesome. The windows-guy even has several voices to choose from, should someone have prefences.



PS: I don't actually know coding/programming myself, so I don't know how easy it to merge stuff together. Still, I think it would be epic =D
Report comment to moderator  
Reply With Quote
Unread 03-09-10, 01:02 PM  
VagrantEsha
Token Werewolf Fan
 
VagrantEsha's Avatar
Premium Member
AddOn Author - Click to view AddOns

Forum posts: 27
File comments: 238
Uploads: 38
Re: How about...

Originally posted by Saliron
Isn't there a way to make the computer telly you with a robot voice?
The technology isn't there, the only thing that could read it with any semblance of clarity would be third party stuff from Dragon Voice, which every single user would have to pay a pricey amount for.

Try feeding a quest text into Microsoft Sam and see how much sense you can actually audibly make of it, I expect you'll be able to make out 40%, maybe even 60% if you have really good hearing. But since this is a project for the visually impaired, such a low success rate in general really isn't pragmatic or viable. We're looking at a 90-100% clarity rate with the files, and that can only be achieved at this time with human readers or pricey software.

Originally posted by Saliron
PS: I don't actually know coding/programming myself, so I don't know how easy it to merge stuff together. Still, I think it would be epic =D
It's easy to do, it's just not realistic. Without human readers, a project like this would be a total failure due to the lack of clarity.
Report comment to moderator  
Reply With Quote
Unread 03-09-10, 02:57 PM  
nightcracker
A Molten Giant
 
nightcracker's Avatar
AddOn Author - Click to view AddOns

Forum posts: 716
File comments: 428
Uploads: 22
Re: Re: How about...

But what about a mod that changes the font size to 20?
__________________
Three things are certain,
Death, taxes and site not found,
You, victim of one.
Report comment to moderator  
Reply With Quote
Unread 03-09-10, 07:09 PM  
Wimpface
A Molten Giant
 
Wimpface's Avatar
AddOn Author - Click to view AddOns

Forum posts: 648
File comments: 204
Uploads: 4
Re: Re: Re: How about...

Originally posted by nightcracker
But what about a mod that changes the font size to 20?
My dyslectic friend would rather use this, I told him about it just now and he's very thrilled. Being a 14 year old dyslectic kid wanting to fit in with his friends in a computer game with only text-based quest texts is a bit hard for him, and he loves this addon to the ground.

I'll see if I can help, but my gametime runs out in a few days, and I won't renew it.

I hope this turns out well!
__________________
All I see is strobe lights blinding me in my hindsight.
Report comment to moderator  
Reply With Quote
Unread 03-09-10, 08:18 PM  
OttoDeFe
A Chromatic Dragonspawn
 
OttoDeFe's Avatar
AddOn Author - Click to view AddOns

Forum posts: 178
File comments: 195
Uploads: 12
Thererror is gone, but now I just get the "You must have a dialogue open..." message.

For some reason, the function call isn't generating the MD5, or isn't retrieving the gossip text.
__________________
"They say
the pen is mightier than any saber -
any sword -
but if there's a war
I just don't know if a Bic will save ya..."

-- Last Offence
Report comment to moderator  
Reply With Quote
Unread 03-09-10, 10:36 PM  
dwang
A Kobold Labourer

Forum posts: 0
File comments: 2
Uploads: 0
Originally posted by OttoDeFe
Thererror is gone, but now I just get the "You must have a dialogue open..." message.
For some reason, the function call isn't generating the MD5, or isn't retrieving the gossip text.
I'm having the same the problem.
Report comment to moderator  
Reply With Quote
Unread 03-10-10, 02:11 AM  
VagrantEsha
Token Werewolf Fan
 
VagrantEsha's Avatar
Premium Member
AddOn Author - Click to view AddOns

Forum posts: 27
File comments: 238
Uploads: 38
This error is obviously on my end, and I'm sorry I had people jump through hoops but I needed to figure out what was going on. But OttoDeFe is right on the money; either GetGossipText() isn't actually returning the gossip text, or it is and for some reason the md5 calculation isn't happening or isn't being returned.

I'm pleased that people have gotten behind this, because this I wanted to put together not just to have another mod out there but because... well, long story short, a friend and I were discussing Guild Wars and mods. He posed the question of what mods I'd have for Guild Wars if I could, and I gave this some thought and after all the time using Windows Magnifier, I told him that I'd love for there to be something that would allow sound files to be linked into dialogues so they'd be read aloud.

I figured that since I'm actually knowledgeable about World of Wacraft, even though I no longer play it, I realised that there are probably a lot of people out there thinking something like that. I further realised that I had the knowhow to put this together, and thanks to a driving sense of ethics I ended up putting thise together.

At the end of the day, it's going to help Wimpface's friend, and that's really all I want from this.
Report comment to moderator  
Reply With Quote
Unread 03-10-10, 08:11 AM  
OttoDeFe
A Chromatic Dragonspawn
 
OttoDeFe's Avatar
AddOn Author - Click to view AddOns

Forum posts: 178
File comments: 195
Uploads: 12
Getting this:

Code:
1x I Hear NPC People-3.3-1.0\I Hear NPC People.lua:5: attempt to call field '?' (a nil value)
when I first open the dialogue.

Also, "GOSSIP_HIDE" is the registered event at the top of the file instead of "GOSSIP_CLOSED". I fixed that, but no difference. I'm wondering if the object[event] () might be the issue? If I remove it the error goes away, but the

Code:
1x I Hear NPC People-3.3-1.0\I Hear NPC People.lua:56: attempt to concatenate field 'gossipID' (a nil value)
Interface\FrameXML\ChatFrame.lua:3573: in function `ChatEdit_ParseText':
Interface\FrameXML\ChatFrame.lua:3221: in function `ChatEdit_SendText':
Interface\FrameXML\ChatFrame.lua:3245: in function `ChatEdit_OnEnterPressed':
<string>:"*:OnEnterPressed":1: in function <[string "*:OnEnterPressed"]:1>
comes back.
Grasping at straws...

I'm off to work in a bit, but will watch and keep trying to help. I think this is a great idea!
__________________
"They say
the pen is mightier than any saber -
any sword -
but if there's a war
I just don't know if a Bic will save ya..."

-- Last Offence
Report comment to moderator  
Reply With Quote
Post A Reply



Category Jump: