GithubHelp home page GithubHelp logo

jhakonen / wot-teamspeak-mod Goto Github PK

View Code? Open in Web Editor NEW
36.0 36.0 8.0 29.63 MB

Mod for integrating TeamSpeak into World of Tanks

License: GNU Lesser General Public License v2.1

Python 99.79% Dockerfile 0.21%

wot-teamspeak-mod's People

Contributors

jhakonen avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

wot-teamspeak-mod's Issues

User cache

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

Error in release 0.6.7.

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.

Bug with tessumod in 1.10.0.4

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?

Recreate manual test environment

To properly test the mod works in replay battles with 2 players a test environment is required where there are:

  • TeamSpeak server
  • TeamSpeak client (for 2nd player)
  • Some test audio data
  • Pulseaudio configuration which pipes test audio data to the 2nd player's TS client

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.

Exception in log

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

Move config files outside of version folder

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.

Settings UI

Features needed:

  • Show mod settings
  • Modify mod settings
  • Save settings
  • Restore default settings
  • Export settings to a file
  • Import settings from a file
  • Show list of known TeamSpeak users (name + id?)
  • Show list of known players (name + unique id?)
  • Show a link between matched TeamSpeak users and players
  • Show link type (automatic or manually set)
  • Create manual links (manual link removes any automatic links between associated users and players)
  • Remove manual links
  • Any text content translatable to other languages (e.g. Finnish, Russian, etc...)

Ideas how to implement the UI:

  • http server integrated into mod and then displaying html content in in-game web browser
  • Flash based UI
  • Settings in TeamSpeak plugin

Further ideas for Flash based UI:

  • A view for settings
  • A view for linking names
    • Two lists, first has player names, second has TS users
    • Each list is divided to three different sections: already linked and online; not linked and online; offline
    • Each section would be in alphapedical order
    • TS user list would show speech indicator when the user is speaking in TS
    • Player list would show speech indicator when TS user is speaking and that user is linked to player
    • Users and players would be linked somehow between lists visually
    • Linking could be done by dragging e.g. player name to TS name
    • Remove link from a button

Show sound waves at player's OTM

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.

Teamspeak crashing after this plugin was installed

Teamspeak crashing after this plugin was installed.
Error: 201

AccessDeniedInvalid according to Policy: Policy expired.PF7E1EC4NMZ6PXKQ/kxx2gj+icmVSUXr7M03riZGfRnBBKpwfnzP+5U8HVytQgRDBH3KpspcZqOeQOdL5bE6HiApe+E=

Switch to CMake

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!

Tessumod Plug In funktioniert nicht mehr!!!

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.

Since Last TS3 Update Error after Tessumod is installed.

when i connect to a server ts3 crashed

Sent: 16384/95431 bytes
Sent: 95431/95431 bytes
Error: 201

AccessDeniedInvalid according to Policy: Policy expired.2E1E665ABE8A8CEDiV7LPubDj3rcSmGD/O29J5QZ6xCOJXMVu9K9mdUJIaqhnGUevXpThz99jhABI+nNToQn8w5xyTY=

Setup CI/CD pipeline

The pipeline should have following:

  • Dockerfile which defines environment required for building the mod and running the test suite
  • Github Actions workflow which builds the docker image and then uploads it to Docker Hub
  • Github Actions workflow which, using the docker image, run tests, builds the mod and saves the mod package as a build artifact, this should be run on each push to any branch and on pull requests
  • Github Actions workflow which, using the docker image, builds the mod package, creates a draft release and uploads the mod package as an asset to the release, this should run when a git tag is pushed to the repo

Cant seem to get it to work in 9.7

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 ?

Positional audio (3D audio)

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.

Many errors

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.
error

Thanks for help ! I wanna remake this mod for my clan with Your copyright of course :)

Linux support for positional audio

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.

Speak notifications in battleLoading screen

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

Add TeamSpeak test environment to Vagrant setup

Install packages using Chocolatey:

Create and install Chocolatey packages for:

  • TeamSpeak Server
  • Virtual Audio Cable

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:

  1. starts TeamSpeak client and connects it to TS server
  2. starts VLC and feeds test audio data through it to Virtual Audio Cable

are you still working on this

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

hmm not sure where to share or if its even somen wrong

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 player join/leave channel

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:

  • What should happen when a user joins/leaves who isn't mapped to any player?
  • Should these be shown in garage as well (in message center)?

Originally suggested by RaJCeL.

Positional Audio breaks on public TS server with 1000+ users

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 .

Build plugin for TeamSpeak 3.1 beta

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:

  • Install Visual Studio 2015 (instead of 2013)
  • Build Qt and OpenAl Soft with VS2015.
  • Update TeamSpeak's Plugin SDK
  • Whatever code changes needed to make the plugin compile and behave nicely

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.

ValueError in ts3.py

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

Display speaker's direction in battle

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.

Load settings from additional ini-files

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

Record and playback TS audio

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:

  • Implement a separate executable which would be included with the mod. The executable would use OpenAL to playback the audio data. The mod starts the executable at start of .wotreplay playback and then constantly passes (via shared memory perhaps?) current time offset and playback speed to it, keeping it sync with the playback.
  • Implement audio playback using game's internal sound engine; WWise.
  • Implement audio playback using Flash's audio classes.
  • Implement audio playback with the TS plugin.

Questions:

  • Can we playback audio data (= stream) using WWise from Python?
  • Flash supports audio streaming, but it requires flash player version 10 or newer, what version the game's internal flash engine supports?
  • Where we can get name of the currently recording wotreplay file?
  • In order to keep the replay and audio in-sync, we would need a timestamp from within the game which would be same both while playing and replaying. Is there such?

Suggestion for improving the fallback nick matching on missing metadata

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

Any Linux How-to?

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?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.