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,068
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-11-10, 12:44 PM  
OttoDeFe
A Chromatic Dragonspawn
 
OttoDeFe's Avatar
AddOn Author - Click to view AddOns

Forum posts: 178
File comments: 195
Uploads: 12
I'll give it a go when I get home.

Thanx!
__________________
"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-11-10, 12:32 PM  
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 cleaned up the mod in preparation for a final release, and I've thrown a debug command in there.

Otto, if the latest version doesn't play anything, try this with the appropriate dialogue open:

/gossippath

If there's anything funky going on there, that might give us a clue.
Report comment to moderator  
Reply With Quote
Unread 03-10-10, 11:23 PM  
OttoDeFe
A Chromatic Dragonspawn
 
OttoDeFe's Avatar
AddOn Author - Click to view AddOns

Forum posts: 178
File comments: 195
Uploads: 12
Not getting the file to play... Hrm.
__________________
"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-10-10, 08:54 PM  
VagrantEsha
Token Werewolf Fan
 
VagrantEsha's Avatar
Premium Member
AddOn Author - Click to view AddOns

Forum posts: 27
File comments: 238
Uploads: 38
Oh, oops.

You're right. It's modf. It actually used to be just math.mod, but then they changed it, which is unfortunate for me because I'm using an old parser (4.something, I believe). >.>

Good call changing it to modf, as really that seems to be all that was needed. If it's giving you filenames now, it should also play files. If you like, run a test by dropping some music file or other in there with the same name, then see if it plays when the appropriate gossip frame is opened.

If it does, I think we can call this done.
Report comment to moderator  
Reply With Quote
Unread 03-10-10, 08:30 PM  
OttoDeFe
A Chromatic Dragonspawn
 
OttoDeFe's Avatar
AddOn Author - Click to view AddOns

Forum posts: 178
File comments: 195
Uploads: 12
I got an error with the current version, but I corrected it (I think) by changing the operator line 24 to math.modf - that returns the fractional bit. The Mod operator is % in lua according to the 5.1 reference manual. It's giving me numbers for filenames now!

I hope this helps!
__________________
"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-10-10, 07:44 PM  
VagrantEsha
Token Werewolf Fan
 
VagrantEsha's Avatar
Premium Member
AddOn Author - Click to view AddOns

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

After seeing that, I knew there was only one thing it could be. I made a silly mistake because I'm all rusty at this, again. I mixed up the args passed to SetScript (OnEvent).

Basically, it should be (_, event) rather than (event), so says WoW Wiki. Oops! For those who wish to make this change themselves (since it's such a simple edit) I've left the previous version archived and will leave it there until the new one is verified.

I'd recommend getting the new one when it is though, as I've thrown an extra StopMusic() in there, which might stop the mod from clashing with other mods that use PlayMusic().
Report comment to moderator  
Reply With Quote
Unread 03-10-10, 07:12 PM  
elfchief
A Defias Bandit

Forum posts: 2
File comments: 13
Uploads: 0
Re: Re: How about...

Originally posted by VagrantEsha
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.
There's a number of pretty good (commercial) voices out there that might be able to do a decent job -- they're pretty clear on most things, you'd just need to add the WoW-specific names to their dictionaries. And anyone that had the quest text and the software could generate the datafiles and upload them for everyone, with the right scripting...
Report comment to moderator  
Reply With Quote
Unread 03-10-10, 06:28 PM  
OttoDeFe
A Chromatic Dragonspawn
 
OttoDeFe's Avatar
AddOn Author - Click to view AddOns

Forum posts: 178
File comments: 195
Uploads: 12
Still getting:
Code:
I Hear NPC People-3.3-1.0\I hear NPC People.lua:5: attempt to call field '?' (a nil value)
when I open and close the dialogue.
__________________
"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-10-10, 03:23 PM  
VagrantEsha
Token Werewolf Fan
 
VagrantEsha's Avatar
Premium Member
AddOn Author - Click to view AddOns

Forum posts: 27
File comments: 238
Uploads: 38
I screwed up the event name again, durrr... I'll never get those right. x.x Well, that's not true, I did this time.

Anyway, I did some fiddling with the checksummer in a local parser and figured out why it wasn't spitting out sums. The end result was that I was feeding in something like "This is a testing string." and getting "14992.mp3" out in return, which would be a valid sum via the method it uses.

I used almost exactly the same function in the mod, only changed so that it does what the mod needs, so the sum should always work. The only possible issue is that GetGossipText() might sometimes not return anything. In that case, it'll spit out [Checksum Error].

So, realistically, we should be getting actual filenames from this now that can be used. If it functions, the next step will be setting up a repository and getting the ball rolling on a bloody huge project.

---

I've appended E to the version number to show its experimental status. After we have a working version, I'll change this to 1.0F (I doubt I'll have to do anything with it past that point, and a repository can be concentrated on).

---

One last thing!

OttoDeFe, I'd like to add you as an AddOn manager, if that's okay, so that you're credited as a co-author and able to make any changes you wish to. You've been instrumental in helping me test this, so I figure it's only fair to make it official, if you want!

---

That new version is up! Sorry if I confused anyone with the version renaming. >_>;
Last edited by VagrantEsha : 03-10-10 at 05:45 PM.
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
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-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-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, 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, 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
Post A Reply



Category Jump: