jhakonen / wot-teamspeak-mod Goto Github PK
View Code? Open in Web Editor NEWMod for integrating TeamSpeak into World of Tanks
License: GNU Lesser General Public License v2.1
Mod for integrating TeamSpeak into World of Tanks
License: GNU Lesser General Public License v2.1
For the mod to remember which TS user and which WOT player are matched together (even if someone changes his WOT nickname (2.5k gold!) or his TeamSpeak nickname) the mod should match player/user by their unique ID values and store them to cache file.
The cache file should also be human readable and modifyable in order to fix mappings that might have gone wrong.
Mod settings should also have an option where you can enable caching when playing a replay. It should be disabled by default. If enabled, the cache would incorrectly match your TeamSpeak user to whoever's replay file you're currently playing.
The existing mapping and extracting rules should be modified so that they act as cache's input when someone speaks. The final conversion from speaking TeamSpeak user to WOT nickname should be queried from the cache.
The cache file should also reload automatically if user modifies the cache file by hand, even if WOT is running.
The cache should be prepopulated with user's friends and clan members from WOT. Also anyone in user's channel in TeamSpeak should be added to the cache.
This was originally suggested by nixxxie at:
http://forum.worldoftanks.eu/index.php?/topic/433614-094-tessumod-wotteamspeak-integration-mod-v034-5112014/page__st__60__pid__9219492#entry9219492
Fix error in release 0.6.7:
ERROR: [EXCEPTION] (scripts/client/gui/mods/mod_tessumod.py, 113):
Traceback (most recent call last):
File "scripts/client/gui/mods/mod_tessumod.py", line 98, in init
AttributeError: 'module' object has no attribute 'VOIPManager'
As reported at issue #22 and eu forums.
Does master and issue_21 branches have this issue as well?
When done, release a new version.
Hi,
There's a bug with the mod in 1.10.0.4:
2020-10-09 14:48:09.687: ERROR: [EXCEPTION] (scripts/common/Event.py, 46):
Traceback (most recent call last):
File "scripts/common/Event.py", line 44, in __call__
File "scripts/client/gui/Scaleform/daapi/view/battle/shared/minimap/plugins.py", line 568, in __onMinimapFeedbackReceived
ValueError: too many values to unpack
2020-10-09 14:48:09.687: ERROR: Traceback (most recent call last):
2020-10-09 14:48:09.687: ERROR: File "/res/scripts/client/gui/mods/tessumod/utils.py", line 354, in _repeat
2020-10-09 14:48:09.687: ERROR: File "/res/scripts/client/gui/mods/tessumod/utils.py", line 363, in _updateMinimap
2020-10-09 14:48:09.687: ERROR: File "scripts/common/Event.py", line 44, in __call__
2020-10-09 14:48:09.687: ERROR: File "scripts/client/gui/Scaleform/daapi/view/battle/shared/minimap/plugins.py", line 568, in __onMinimapFeedbackReceived
2020-10-09 14:48:09.687: ERROR: ValueError: too many values to unpack
My guess is the method args needs to be updated?
To properly test the mod works in replay battles with 2 players a test environment is required where there are:
This setup already exists on old-rewrite branch, but it needs to be made to work on Linux and update TS client/server to 3.3.0 version.
Reported by Assassik at http://forum.worldoftanks.eu/index.php?/topic/433614-094-tessumod-wotteamspeak-integration-mod-v034-5112014/page__st__100__pid__9421364#entry9421364
BigWorld Release Client (compiled at 19:34:04 Oct 9 2014) starting on Sun Nov 09 15:04:29 2014
Content Type: contentChecking ./res_mods/0.9.4: mods found
[XPM] preloader gui.Scaleform.locale
[XPM] 1.5.0
[XPM] Working dir: ./res_mods/0.9.4/scripts/client/gui/mods
[XPM] Loading mod: kwg_waiting_fix 0.3 (http://www.koreanran...0-/#entry151768)
[XPM] Loading mod: xvmstat 1.5.0 (http://www.modxvm.com/)
Load mods: AutoEquip
Load mods: crew_extended[INFO]: [ExtendedCrew v2.05 [0.9.4] created in (05/11/2014) initialized ...]
[INFO]: [ExtendedCrew Language set to : "OTHER". Uses custom strings from XML file in section "OtherLanguage"...]
Load mods: DamagePanel
Load mods: GunConstraints
Load mods: InfoPanel
Load mods: sights
Load mods: stat
Load mods: TeamHPPools
Load mods: tessu_mod
[NOTE] (src\mods\tessu_mod.py, 147): Settings loaded from ini file
Load mods: zClanMod
[NOTE] (scripts/common/fortified_regions.py, 189): fortified_regions.init()
[NOTE] (scripts/client/post_processing/__init__.py, 267): The quality = 3 was selected.
[NOTE] (scripts/client/post_processing/__init__.py, 267): The quality = 2 was selected.
[NOTE] (src\mods\tessu_utils\ts3.py, 309): Connected to TeamSpeak clientquery interface
[NOTE] (src\mods\tessu_utils\ts3.py, 154): TS client query protocol detected
[NOTE] (src\mods\tessu_mod.py, 129): Connected to TeamSpeak client
[NOTE] (src\mods\tessu_mod.py, 139): Connected to TeamSpeak server
[EXCEPTION] (scripts/common/Event.py, 34):
Traceback (most recent call last):
File "scripts/common/Event.py", line 32, in __call__
File "src\mods\tessu_mod.py", line 30, in on_talk_status_changed
File "src\mods\tessu_mod.py", line 73, in update_player_speak_status
File "src\mods\tessu_utils\utils.py", line 114, in get_player_info_by_name
AttributeError: 'NoneType' object has no attribute 'lower'
Traceback (most recent call last):
File "src\mods\tessu_utils\utils.py", line 36, in wrapper
File "src\mods\tessu_mod.py", line 73, in update_player_speak_status
File "src\mods\tessu_utils\utils.py", line 114, in get_player_info_by_name
AttributeError: 'NoneType' object has no attribute 'lower'
[SPACE] Loading space: spaces/05_prohorovka
[SPACE] Loading space: spaces/hangar_premium_Fury
In order to not having a need to move mod's config files from e.g. res_mods/0.9.3/scripts/client/mods to res_mods/0.9.4/scripts/client/mods when updating WOT to newer version, the config files should be in res_mods -folder instead. Or somewhere outside of the version folders.
In order to make sure that configurations are not reset for existing users, the mods should move the config files (if they exists) from the original location to res_mods automatically at start.
The file-moving could be removed at some later date/release when it is unlikely that anyone would have configs in the old location.
Originally suggested by slaapzakineentent.
Features needed:
Ideas how to implement the UI:
Further ideas for Flash based UI:
Suggested by rdcl_be at: http://forum.worldoftanks.eu/index.php?/topic/433614-094-tessumod-wotteamspeak-integration-mod-v034-5112014/page__st__80__pid__9402472#entry9402472
Having the speak_stop_delay is a good feature, but it sometimes introduces some
confusion when two people have the icon and only one of them is speaking.
I cannot remember which game it was, but I've seen a version of this implemented
where the person currently actually transmitting has a voice icon with sound waves
coming out of it and the ones that have just stopped transmitting only show the
voice icon for a short time, without the sound wave representation.
The architecture should be similar to TS plugin's architecture.
For ideas see:
Teamspeak crashing after this plugin was installed.
Error: 201
AccessDenied
Invalid according to Policy: Policy expired.PF7E1EC4NMZ6PXKQ/kxx2gj+icmVSUXr7M03riZGfRnBBKpwfnzP+5U8HVytQgRDBH3KpspcZqOeQOdL5bE6HiApe+E=
Currently building of the release archive and running tests consists of home made python scripts / hacks which aren't easy to understand.
By using CMake for build-system there would be better change that someone else than me would understand just wtf is going on!
Seit einigen Tagen stürzt der Teamspeak ab wenn das Tessumod Plug In installiert ist. Ich dachte erst es läge am WoT-Mod. Doch der TS stürzt auch ab wenn der Mod nicht installiert ist. Ich habe alle Programme schon neu installiert. Aber es funktioniert leider trotzdem nicht. Ich bitte um Antwort ob das Plug In überarbeitet wird. Oder um Informationen wie ich den Fehler vielleicht selber beheben kann.
when i connect to a server ts3 crashed
Sent: 16384/95431 bytes
Sent: 95431/95431 bytes
Error: 201
AccessDenied
Invalid according to Policy: Policy expired.2E1E665ABE8A8CEDiV7LPubDj3rcSmGD/O29J5QZ6xCOJXMVu9K9mdUJIaqhnGUevXpThz99jhABI+nNToQn8w5xyTY=
The pipeline should have following:
i have used this mod since your first release and for some reason it is not working for me on the latest patch I am not getting the notifications of even trying to connect to ts3. is there a list of mods that may conflict with this ?
In order to better get the idea where a player's tank is located on the battle field the mod should provide positional audio.
TeamSpeak supports positional audio. All the mod needs to do is to pass users' 3D positions in the battle field to TeamSpeak. The TeamSpeak client will then modify user's speech so that it appears to come from certain direction.
Unfortunately TeamSpeak's client query plugin doesn't provide any way to pass that information so this feature would require implementation of a custom TeamSpeak plugin.
Hello ! I compiled this mod as in description but mod after install into wot mods folder, not working. Your compiled file working but compiled by me, not. I tried suite test but (screenshot)...
WoT in python.log too giving some errors as in screenshoot too.
Thanks for help ! I wanna remake this mod for my clan with Your copyright of course :)
Currently the minimap reuses existing animations that the minimap provides by default.
Perhaps it would be possible to render an overlay on top of the minimap where the speak animation could be drawn at. Here's an example where something is drawn to the battle screen (text in a transparent window):
http://forum.worldoftanks.eu/index.php?/topic/441413-094-autoaim-indication/
Replace shared memory based communication protocol between mod and the plugin to use TCP/IP. This should allow communication from WoT (running on WINE) to native TeamSpeak client.
A setting in tessu_mod.ini
to enable/disable speak notifications in battleLoading screen would be nice to have since (depending on your xvm config) the animation can overlap some stats which makes them hard to read.
[battleLoadingNotifications]
; Enable or disable speak notifications in battleLoading screen
enabled: off
; Enable or disable notifications when you're speaking
self_enabled: off
TeamSpeak 3.1.3 has an updated ClientQuery plugin. The plugin now requires applications (like TessuMod) to authenticate using an API key. The API key is shown in ClientQuery plugin's settings.
For more info see the release annoucement:
http://forum.teamspeak.com/threads/130474-TeamSpeak-Client-3-1-3-released
Bug reported by Grumpelumpf and Dyme.
Install packages using Chocolatey:
Create and install Chocolatey packages for:
Configure a test user "vagrant" to TeamSpeak client and add it as an admin to TeamSpeak server.
Configure "vagrant" user to feed audio in from Virtual Audio Cable.
Open a port to Vagrant for TeamSpeak server.
Add a Powershell script which within Vagrant:
there was a patch for wot
Traceback (most recent call last):
2016-12-14 20:15:19.424: INFO: File "scripts/client/gui/mods/mod_tessumod.py", line 22, in
2016-12-14 20:15:19.424: INFO: File "scripts/client/gui/mods/tessumod/utils.py", line 21, in
2016-12-14 20:15:19.424: INFO: ImportError: cannot import name g_sessionProvider
File "scripts/client/gui/mods/mod_tessumod.py", line 98, in init
AttributeError: 'module' object has no attribute 'VOIPManager'
2016-08-13 05:17:31.163: NOTICE: [NOTE](scripts/client/post_processing/init.py, 269): The quality = 4 was selected.
2016-08-13 05:17:31.163: NOTICE: [NOTE](scripts/client/post_processing/init.py, 269): The quality = 3 was selected.
2016-08-13 05:17:34.612: NOTICE: [NOTE](scripts/client/gui/mods/tessumod/ts3.py, 503): TS client query protocol detected
2016-08-13 05:17:34.612: NOTICE: [NOTE](scripts/client/gui/mods/mod_tessumod.py, 204): Connected to TeamSpeak client
2016-08-13 05:17:34.971: NOTICE: [NOTE](scripts/client/helpers/statistics.py, 248): HANGAR LOADING STATE: LOGIN - 12.8760004044
2016-08-13 05:17:34.974: NOTICE: [NOTE](scripts/client/ConnectionManager.py, 220): User authentication method: token2
2016-08-13 05:17:37.377: NOTICE: [NOTE](scripts/client/helpers/statistics.py, 248): HANGAR LOADING STATE: CONNECTED - 15.281999588
2016-08-13 05:17:38.543: NOTICE: [NOTE](scripts/client/helpers/statistics.py, 248): HANGAR LOADING STATE: SHOW GUI - 16.4479999542
2016-08-13 05:17:43.019: NOTICE: [NOTE](scripts/client/gui/mods/mod_tessumod.py, 254): Connected to TeamSpeak server '☠__ N.A.F.I.G.Gaming__☠'
2016-08-13 05:17:50.491: NOTICE: [NOTE](scripts/client/helpers/statistics.py, 248): HANGAR LOADING STATE: QUESTS SYNC - 28.3959999084
2016-08-13 05:17:50.527: NOTICE: [NOTE](scripts/client/helpers/statistics.py, 248): HANGAR LOADING STATE: USS SYNC - 28.4319992065
2016-08-13 05:17:51.575: NOTICE: [NOTE](scripts/client/helpers/statistics.py, 248): HANGAR LOADING STATE: SPACE LOADING START - 29.4799995422
2016-08-13 05:17:51.605: NOTICE: [NOTE](scripts/client/game.py, 426): [SPACE] Loading space: spaces/hangar_premium_v2
2016-08-13 05:17:51.645: NOTICE: [NOTE](scripts/client/helpers/statistics.py, 248): HANGAR LOADING STATE: VEHICLE LOADING START - 29.5499992371
2016-08-13 05:17:53.068: NOTICE: [NOTE](scripts/client/helpers/statistics.py, 248): HANGAR LOADING STATE: VEHICLE LOADING END - 30.9729995728
2016-08-13 05:17:53.087: ERROR: Traceback (most recent call last):
2016-08-13 05:17:53.087: ERROR: File "scripts/client/messenger/proto/xmpp/gloox_wrapper.py", line 484, in onHandleIq
2016-08-13 05:17:53.087: ERROR: File "scripts/client/messenger/proto/xmpp/gloox_wrapper.py", line 506, in __handleEvent
2016-08-13 05:17:53.087: ERROR: File "scripts/client/messenger/proto/xmpp/spa_requesters.py", line 154, in __handleIQ
2016-08-13 05:17:53.087: ERROR: File "scripts/client/messenger/proto/xmpp/spa_requesters.py", line 115, in __doCallback
2016-08-13 05:17:53.087: ERROR: File "scripts/client/gui/shared/utils/requesters/RequestsController.py", line 140, in _callbackWrapper
2016-08-13 05:17:53.087: ERROR: File "scripts/client/gui/shared/view_helpers/UsersInfoHelper.py", line 176, in
2016-08-13 05:17:53.088: ERROR: File "scripts/client/gui/prb_control/invites.py", line 684, in onUserNamesReceived
2016-08-13 05:17:53.088: ERROR: File "scripts/client/gui/prb_control/invites.py", line 871, in _inviteMaker
2016-08-13 05:17:53.088: ERROR: AttributeError: 'NoneType' object has no attribute 'get'
2016-08-13 05:17:53.354: NOTICE: [NOTE](scripts/client/helpers/statistics.py, 248): HANGAR LOADING STATE: SPACE LOADING END - 31.2590007782
2016-08-13 05:17:53.354: NOTICE: [NOTE](scripts/client/helpers/statistics.py, 248): HANGAR LOADING STATE: HANGAR READY - 31.2590007782
2016-08-13 05:17:53.354: NOTICE: [NOTE](scripts/client/helpers/statistics.py, 276): HANGAR LOADING STATE: SUMMARY TOTAL = 18.3830003738
2016-08-13 05:17:53.355: ERROR: Traceback (most recent call last):
2016-08-13 05:17:53.355: ERROR: File "scripts/client/gui/shared/utils/requesters/RequestsController.py", line 75, in _doRequest
2016-08-13 05:17:53.356: ERROR: File "scripts/client/gui/shared/view_helpers/UsersInfoController.py", line 122, in _getNicknames
2016-08-13 05:17:53.356: ERROR: File "scripts/client/messenger/proto/xmpp/spa_requesters.py", line 92, in resolve
2016-08-13 05:17:53.356: ERROR: File "scripts/client/messenger/proto/xmpp/spa_requesters.py", line 115, in __doCallback
2016-08-13 05:17:53.356: ERROR: File "scripts/client/gui/shared/utils/requesters/RequestsController.py", line 140, in _callbackWrapper
2016-08-13 05:17:53.356: ERROR: File "scripts/client/gui/shared/view_helpers/UsersInfoHelper.py", line 176, in
2016-08-13 05:17:53.356: ERROR: File "scripts/client/gui/prb_control/invites.py", line 684, in onUserNamesReceived
2016-08-13 05:17:53.356: ERROR: File "scripts/client/gui/prb_control/invites.py", line 871, in _inviteMaker
2016-08-13 05:17:53.356: ERROR: AttributeError: 'NoneType' object has no attribute 'get'
Show notifications in the battle event messages (above minimap) when a TeamSpeak user enters or leaves your TeamSpeak channel. The displayed name should be the matched game nick.
Open questions:
Originally suggested by RaJCeL.
The shared memory protocol that Tessumod and Tessumod Plugin uses to communicate with each other writes TS user's client id to a signed short value (max 32767), but in reality the value can be higher than that.
This will cause an error like this:
2020-06-05 23:51:15.295: ERROR: [EXCEPTION] (scripts/common/Event.py, 46):
Traceback (most recent call last):
File "scripts/common/Event.py", line 44, in __call__
File "/res/scripts/client/gui/mods/tessumod/positional_audio.py", line 80, in enable
File "/res/scripts/client/gui/mods/tessumod/positional_audio.py", line 156, in on_update_to_ts
File "/res/scripts/client/gui/mods/tessumod/mytsplugin.py", line 95, in set_data
error: short format requires SHRT_MIN <= number <= SHRT_MAX
Should probably be fixed as part of #32 .
If you turn 3D sound (HRTF), the voice becomes low, distorted.
TeamSpeak has a new version incoming. 3.1 is currently in beta phase.
This was reported by ChrTok at http://aslain.com/index.php?/topic/6852-tessumod-incompatible/
TeamSpeak 3.1 Release notes and feedback thread:
http://forum.teamspeak.com/threads/126565-Discussion-TeamSpeak-3-Client-3-1-BETA
TeamSpeak plugin interface changes:
teamspeak/ts3client-pluginsdk@aa05106...db1fc56
The new version is build with Visual Studio 2015.
To support the new version we should have a separate feature branch which contains changes:
Might be best to release the plugin as a separate download and instruct users to install that one instead of the plugin distributed within mod's archive if they have TeamSpeak 3.1 installed.
Integrate the feature branch back to master when TeamSpeak releases the 3.1 to stable channel.
Using latest version (v0.5.0) this exceptions keeps popping up in my python.log
[EXCEPTION] (src\mods\tessu_utils\ts3.py, 479):
Traceback (most recent call last):
File "src\mods\tessu_utils\ts3.py", line 477, in found_terminator
File "src\mods\tessu_utils\ts3.py", line 520, in _handle_in_data_actions
File "src\mods\tessu_utils\ts3.py", line 376, in on_notifyclientleftview_ts3_event
ValueError: invalid literal for int() with base 10: '6|clid=37|clid=87|clid=110|clid=118'
Complete python.log
can be found here
In order to improve matching of WOT nickname to TeamSpeak user nickname, the mod should check if any player's name in battle or prebattle is included within speaking TeamSpeak user's nickname.
Originally suggested by DOC73 at:
http://forum.worldoftanks.eu/index.php?/topic/433614-094-tessumod-wotteamspeak-integration-mod-v034-5112014/page__st__80__pid__9240340#entry9240340
In order to see where speaking player is in the battle field, there should be a visual indicator which would show the direction where the player is at.
Perhaps something similar to damage indicator (thingy around crosshair) could be implemented.
The indicator should clearly have clearly different outlook to the damage indicator.
The indicator should also show name of the speaking player.
In order to have TS user / player mappings which are pre-defined for e.g. to everyone in a clan.
The ini-files could have a way to reference other ini-files. So that you could have additional ini-files which have common settings for members in your clan and then your own settings in the default tessu_mod.ini file.
Example:
[General]
ini_files: tessu_mod*.ini
The ini_files could also accept an URL, e.g:
[General]
ini_files: tessu_mod*.ini,http://example-clan.com/tessu_mod_rules.ini
When recording a .wotreplay file the TS plugin records any speech audio in TS (including your own speech). The audio would be stored to same folder as the replay-file.
When replaying a .wotreplay file in game, the python mod automatically plays back the recorded audio as well. The mod must be able to sync the audio with the replay's playback: jumping in time and increasing/decreasing playback speed.
The recorded audio file would be a compressed archive which contains every TS user's speech as PCM audio file. Each audio file name should contain player's ID (if known) so that the mod can also position the audio sources in battle.
Ways to implemented the sound playback:
Questions:
Hi,
I like your promising mod. A suggestion would be to do a more elaborate regex-matching on the TS-nick.
Often users have their clan-name before or after their nick within [ ] or (). It would be very useful if you omit those when doing the compare. Also removing the spaces. Then it would be very much more useful when not so many are using the mod.
Regards,
Christian
I'M playing WoT on Linux and I wish to install this mod on it somehow. But unfortunately I can'T make TS recognize the TessuMod as plugin? Can somebody help me with it?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.