Hello,
I just would like to let you guys know that I am currently working on implementing a mod that will support/use mumble's link plugin to get positional audio working.
Basically this will be a work-around until (hopefully sometime) BIS will support mumble's link plugin without requiring a modification.
The project can be found over at Dev-Heaven and will be free and open-source (LGLP3):
https://dev-heaven.net/projects/mumblelink
I have got experience with this kind of thing as I already have successfully done exactly this (a mod) for Minecraft (https://sourceforge.net/projects/modmumblelink/). Using my experience and code from that project I am hoping I can adapt it to Arma2/Arma2OA.
While I am quite confident of achieving this I could still use some help from the community. I am not very experienced in making Addons/Mods for Arma2. I only had a little glance at SQFs from MSO, FPScounter and of course the BIKI.
Mumble requires information about the player to compute the positional audio. Extracting this information from the available functions is proving difficult but I think I have found some promising interfaces that might work: https://dev-heaven.net/projects/mumb...oper%27s_notes
Basically there are 3 things I need right now:
- avatar's positional data
- camera's positional data
- avatar's meta data
1. avatar's positional data
This consists of 3 vectors:
- location in the world
- which direction is forward
- which direction is upward
2. camera's positional data
This consists of 3 vectors (very similar to avatar):
- location in the world
- which direction is forward
- which direction is upward
3. avatar's meta data
This is data related to the player. For identification and grouping.
Minimum should be:
- player identity (nick name or UID)
Optimal would be:
- player identity (UID)
- server identity (IP/IP+port or UID or server name)
- player's team
- player's squad
Note: The meta data is intended for mumble's "context" (
see description at the bottom). However right now team or squad will probably not be used as this will lead to only squad or team members being able to get linked.
Also note that not linked players will be heard and hear others non-directional and with full volume ("force center").
This project consists of two parts:
- SQF-Mod
- Native Library
1. SQF-Mod
This is the part I am fairly new to. Basically it will tell the native library to hook up to mumble (
init) and then continually acquire all the necessary information and hand it over (
update) to the native library using the
callExtension method.
2. Native Library
This is a rather easy part for me. This native library (DLL) will initialize (
init) mumble's link plugin and take the information passed by the SQF-Mod's callExtension-Call and parse the arguments to then "shove" (
update) them over to Mumble (mumble's link plugin; pipe structure "linkedMem").
A basic and totally untested implementation is already in the repository.
So how can you help?
Generally any technical input especially regarding SQF and Addons is much apprechiated. That being said...
- Please have a look at my developer's notes and see if you have any suggestions.
- I still desperately need a server identifier. How can I get the IP of the server that the client is connected to?
- As I am not too fit in SQF and modding maybe you can lend me a hand and contribute by creating the actual mod (SQF stuff). I will provide the native library interface for callExtension.
Thanks for reading.