Jump to content
Korean Random

XMQP in XVM 6.4.8+ is ready for testing! You can enable it in your personal area.


Recommended Posts

XVM 6.4.8

 

XMQP is a service which gives you an ability to use some special features and macros, which are intended to exchange of some additional info with your allies.

For example, with XMQP you can:

  • draw the on the minimap (arrows, accurate clicks)
  • see if your ally have a "sixth sence" (on the minimap or somewhere else)
  • see if your ally is overturned and needs help
  • see if your ally is spotted
  • see if your ally is drowns/lit e.t.c.

It's a basic functionality which will be extended in future. You can enable it in your personal area on www.ModXVM.com/en/

 

Please note:

  • You can see (and your allies can see) all those things only if your ally also enabled XMQP.
  • Upvote 1
Link to comment
Short link
Share on other sites

  • 1 month later...

XMQP ist not working anymore?

XVM version is 6.5.0.1.

 

There are no more icons on ally panel, in last version it works as expected.

XQMP is activated on modxvm.com.

 

EDIT: hmm, now the icons are back ... need more testing.

Edited by huepper
Link to comment
Short link
Share on other sites

Yeah, there is a race condition in xmqp_events.py: if onBattleInit() is called before the XMQP connection has been made, the capabilities of players that are already connected to the XMQP server are not sent to the flash modules, so you don't see icons for them. It happens with fast computers on slow connections I guess (my case at least). Calling _sendCapabilities() at the end of onXmqpConnected() fixes that issue for me:

diff --git "a/C:\\Games\\World_of_Tanks\\res_mods\\mods\\packages\\xvm_battle\\python\\xmqp_events.py.bak" "b/C:\\Games\\World_of_Tanks\\res_mods\\mods\\packages\\xvm_battle\\python\\xmqp_events.py"
index 032c9c4..d401c94 100644
--- "a/C:\\Games\\World_of_Tanks\\res_mods\\mods\\packages\\xvm_battle\\python\\xmqp_events.py.bak"
+++ "b/C:\\Games\\World_of_Tanks\\res_mods\\mods\\packages\\xvm_battle\\python\\xmqp_events.py"
@@ -40,6 +40,8 @@ def onXmqpConnected(e):
     if xmqp.is_active():
         xmqp.call(data)
 
+    _sendCapabilities()
+
 def onBattleInit():
     _sendCapabilities()
 

There's a similar (somehow) issue when WoT exits/crashes in the middle of a game, and the player starts it again. WoT will resume the game, but the XMQP client will not be started: _start() from xmqp.py will be called, but since no XVM token would have been downloaded yet, config.networkServicesSettings.xmqp will be false, so no _XMQP instance is ever created. EDIT: check this patch for a way to fix that second issue (but I'm almost sure you won't like it because of the FIXME).

Edited by Tey
  • Upvote 1
Link to comment
Short link
Share on other sites

ok, applied

According your second patch - I made it different way, please test it in the 6968 build.

 

Thanks, your fix for the second issue is definitely better, but it doesn't work as event handlers must accept arguments:

2016-12-23 19:55:09.463: ERROR: [EXCEPTION] (scripts/client/gui/shared/event_bus.py, 44):
Traceback (most recent call last):
  File "scripts/client/gui/shared/event_bus.py", line 42, in handleEvent
TypeError: _start() takes no arguments (1 given)

The fix is obvious though (and it works correctly after that):

--- xmqp.py.bak2        2016-12-23 20:05:19.485185000 +0100
+++ xmqp.py     2016-12-23 20:05:41.421070300 +0100
@@ -41,7 +41,7 @@
     BigWorld.player().arena.onNewVehicleListReceived -= start
     BigWorld.callback(0, _start)

-def _start():
+def _start(*args):
     g_eventBus.removeListener(XVM_EVENT.XVM_SERVICES_INITIALIZED, _start)
     if not g_xvm.xvmServicesInitialized:
         g_eventBus.addListener(XVM_EVENT.XVM_SERVICES_INITIALIZED, _start)


Link to comment
Short link
Share on other sites

Guest
This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...