MQ2CustomSound - MMOBugs Wiki

Plugin Info
Name MQ2CustomSound
Author Kuv
Link MQ2 Forums
Commands /csound, /togglesounds, /npctellsounds
Source Available Yes
Uses INI File Yes

Description

MQ2CustomSound allows MQ2 users to define custom sound events that play based on unique chat events. These events and the sound effects that are played for them are dictated entirely by settings found in the MQ2CustomSound INI file. With MQ2CustomSound, you can have a sound play...

  • Whenever anybody (or certain people) send you /tell's WHILE FILTERING OUT NPC TELLS!
  • When a spell drops or is resisted
  • When you enable a discipline or a discipline drops
  • Whenever somebody says any particular word, or mentions any particular item
  • When you get hit/stunned/zone/die/camp/etc.

There's literally tons of stuff you can create events for!

Commands

  • /togglesounds Turns all custom sound events on/off DEFAULT: OFF
  • /npctellsounds Turns NPC tell filter on/off, when ON - tells that come from NPCs will not fire sound events DEFAULT: ON
  • /csound "sound name" plays the sound identified with a particular sound name
  • /csound stop immediately stops the play-back of whatever sound is currently playing (if any)

Sample Ini File

MQ2CustomSound.ini

[Events]
keys=tell|zone|camp|

[MatchStrings]
tell=tells you
zone=LOADING, PLEASE WAIT
camp=It will take you about 30 seconds to prepare your camp

[Sounds]
tell=C:\\MQ2\\sounds\\AIMding.wav
zone=C:\\MQ2\\sounds\\jeopardy.wav
camp=C:\\MQ2\\sounds\\astalavista.wav
waycool=C:\\MQ2\\sounds\\billandted.wav 

Configuration

The INI file creates our custom events (the Events section), defines the text the plug-in must match in order to fire the event (the MatchStrings section) and then provides the sound file that should be played when the event fires (the Sounds section.)

Defining Events: All event names should be listed together in the 'keys' entry, separated by the | character. The sample INI above defines three events: tell, zone, and camp. These event names are then used in the other two sections of the INI file, so make sure you use the same case and names throughout.

For every event name you must have a corresponding key in both the Match String and the Sounds sections! For every event name you must have a corresponding key in both the Match String and the Sounds sections! For every event name you must have a corresponding key in both the Match String and the Sounds sections!

NOTE: The last event name in the keys entry should ALWAYS end with a | as well.

Defining Match Strings: Match Strings define the text that the plug-in matches in order to play the right sound. This text should appear in the INI file exactly as it does in-game and uses the event names defined in the [Events] section as keys.

In the example, since we defined events for tell, zone and camp, we have tell, zone and camp keys defined in the [MatchString] section. From this we can see that the tell event is fired whenever text containing "tells you" appears in any text window within EQ, while the zone event fires whenever the text "LOADING, PLEASE WAIT" appears, and the camp event fires whenever the text "It will take you about 30 seconds to prepare your camp" appears.

Defining Sounds: The sounds section defines the actual sound files that should be played when an event is fired. This should be a full path location and the backslach character ( \ ) must be padded ( \\ ) in order to function properly (see example.)

In the example, since we defined events and match strings for tell, zone and camp, we also have tell, zone and camp keys defined in the [Sounds] section. All of the files in the example are located in the C:\MQ2\sounds\ directory and AIMding.wav would play when you received a /tell, jeopardy.wav would play when you zone, and astalavista.wav would play when you start your camp!

You can also define sound keys that are not automatically fired by any text event. This is what you see in the 'waycool' key in the [Sounds] section in the example. This enables us to play a sound using the '/csound waycool' command. Possible reasons for using such an event would be the inclusion of sound effects in MQ2 macros, or included in your own EQ hotkey macro's, etc.

Supported Sound Formats: Technically play-back of sounds is handled by Windows, so any file format that Windows has a supported driver/codec for should be supported. However, I've only had luck getting it to play .WAV files, so you're best just to use them! Many MP3 applications (WinAmp) can convert from MP3 to WAV if you need to. There's also tons of .wav files to be had out on the net.

Version History

    • 1.0 Kuv @ 2004.08.28
    • Performance: All INI data is loaded when the plug-in is loaded, eliminating the need to read the INI file every time the plug-in plays a sound
    • Performance: Added a color check on the NPC tell filtering code. Now if NPC tell filtering is enabled (default - see /npctellsounds) the plug-in checks to make sure the line's color is USERCOLOR_TELL before doing any other checks on the spawn's type. This keeps the customizability (some people may want NPC tell sound events) while also ensuring any tells that come across in USERCOLOR_TELL (such as pet suspend/unsuspend) are still caught.
    • 1.1 Kuv @ 2004.08.25
    • Added NPC filtering for tell events. If a user adds a sound event for tells (using the 'tells you' match string, etc.) MQ2CustomSound will verify that the tell's source is NOT an NPC before firing the sound event, preventing the sound event for playing when banking, selling or commanding a pet, etc. This NPC tell sound filter is enabled by default and can be toggled using the new /npctellsounds command.
    • 1.0 Kuv @ 2004.08.24
    • Initial release

Availability

This plugin is included with the MMOBugs Compile.