Gproxy DLL - Reconnection tool

User avatar
h3rmit
Resource Storage
Posts: 18
Joined: Sat Aug 27, 2016 12:15 am
Been thanked: 16 times

Re: Gproxy DLL - Reconnection tool

Postby h3rmit » Sun Aug 28, 2016 3:12 am

Hello, I have just registered on this forum. I am the head administrator and main developer in the MyMGN community, and I have created GProxy DLL.

Seeing that some more information about GProxy could be useful, I have just written some more detailed information in the official GProxy DLL page, and I will explain some things here as well.

GProxy DLL has been around for 1.5 year and it has been tested by hundreds of players in our bots.

Public announcement of the first version, released on 31-03-2015:
http://www.mymgn.com/board/showthread.php?t=219561

Public announcement of the first version compatible with WC3 1.27a, released on 28-05-2016:
http://www.mymgn.com/board/showthread.php?t=223780


Features

  • Works over Battle.net, does not require cd-keys.
  • Works as a Warcraft III auto-loading plugin, no need to run a separate program.
  • Single file, very small size, no external dependencies, easy to install.
  • Supports both Warcraft III patches 1.26.0.6401 and 1.27.0.52240, and probably future versions.
  • Supports both Varlock's GProxy protocol and h3rmit's GProxy Extended protocol for bots that support it.
  • Provides auto-spoofcheck and easy-to-use ignore commands.


Squelching features

GProxy DLL offers the following commands in Battle.net:

  • /i or /ignore

    Ignores the last player who has whispered to you.

  • /i partial_name

    Ignores a player who has whispered you and has a name containing the text you entered.

    E.g.: If a player with a long or hard to read name like I1lL1lll1I1I1II has whispered you, you can ignore them by just typing:

    /i L1

  • /ui or /unignore

    Unignores the last player you have ignored.

    You can repeat the command to unignore the previous player you have ignored, and then the one before that, etc.

  • /ui partial_name

    Unignores a player you had previously ignored and his name contains the text you entered.

    E.g.: If you had previously ignored a player I1lL1lll1I1I1II, you can unignore them by typing:

    /ui L1


Configuration

The following optional configuration directives are supported in gproxy.cfg:

  • log

    Enables GProxy logging. The value specifies the filename of the logfile. If it is empty, the logging is disabled.
    Default value: (empty)

  • bnet_hostname

    Specifies the Battle.net server that GProxy connects to. Can be europe.battle.net, useast.battle.net, uswest.battle.net, asia.battle.net or any other unofficial PvPGN server.
    Default value: europe.battle.net

  • bnet_game_indicator

    Prefix added to the game names that support reconnect via GProxy. The prefix is both shown in the custom game list and the Lobby.
    Default value: (empty)

  • bot_port

    The port at which GProxy listens for Warcraft III game connections. The port is used only for internal purposes (proxying) and does not need port forwarding.
    Default value: 6125


A few things about GProxy Extended Protocol

Varlock's original GProxy worked by sending empty actions between each real in-game action (for more information, read his original post). This has the following drawbacks:

  • Increased bandwidth usage and lag for non-GProxy players.
  • The reconnection time is limited.
  • When a player disconnects, the game stops and everyone has to wait for him.

I've studied Warcraft III extensively, and I found out I can just dump the empty actions and still keep Warcraft III alive. GProxy DLL patches the timeout interval of Warcraft from 60 seconds to any desirable value requested by the GHost++ bot.

Using the new GProxy Extended protocol:

  • The reconnection feature no longer causes extra delays for any player.
  • The reconnection time is unlimited, and can be configured in GHost++.
  • When a player disconnects, all the other players can continue playing while waiting for him to reconnect, just like LoL or Dota2. Of course, they can always pause the game manually, if it is deemed necessary.
  • GProxy DLL disables the "Disconnect" button in the "Waiting for Host" window, so that players no longer leave the game accidentally while trying to reconnect. Of course, if the bot rejects the reconnection, the time limit is reached or the reconnection is impossible, the button is re-enabled.

The GProxy Extended protocol requires server-side implementation in GHost++, and is currently supported only in games hosted by MyMGN.


GProxy DLL Changelog

Version 0.06, released on 31/05/2016

  • Fixed some very rare bugs in the patching process
  • Added a better detection and patching method for the "Disconnect" button in the "Waiting for host" window

Version 0.05, released on 28/05/2016

  • Updated to work with WC3 Patch 1.27.0.52240 and possibly future patches
  • Kept backward compatibility with WC3 1.26.0.6401
  • Rewritten the patching process.
  • Removed all the ported W3L code, as it is no longer needed
  • Fixed a bug in SetupGateways that was would not read the existing gateways correctly
  • Completed the RECEIVE_SID_AUTH_INFO message in CBNETProtocol

Version 0.04, released on 18/01/2016

  • Added the ability to squelch a user using a partial match on the list of users that have previously whispered to us
  • Added shorthand aliases for the commands /squelch, /ignore, /unsquelch, /unignore (/s, /i, /us, /ui)
  • Now squelch/ignore without parameters squelch the last user that has whispered to us
  • Now unsquelch/unignore without parameters unsquelch the last user we have squelched

Version 0.03, released on 14/04/2015
  • Fixed a bug that would randomly bring up the "Waiting for host" window.
  • Patches made to Warcraft III are now reverted when a reconnection request is rejected.

Version 0.02, released on 08/04/2015

  • Included and re-written the whole W3L code in C++. No more external dependencies to w3lh.dll.
  • Introduced GProxy Extended protocol.
  • GProxy can now keep Warcraft III alive without sending empty actions. It patches the "Waiting for host" algorithm instead.
  • GProxy now patches the Disconnect button of the "Waiting for host" window, so that the player cannot disconnect voluntarily.
  • Reduced the sockets blocking time from 40ms to 10ms.
  • Added logging for updates that take more than 50ms to complete.
  • GProxy now tries to set its thread priority and Warcraft III's priority to above normal.
  • Implemented automatic spoof-check when the player joins a game.

Version 0.01, released on 31/03/2015

  • Initial commit of GProxy++ DLL edition, version 0.01
  • Based on GProxy GUI by LadyGaga, works over Battle.net
  • Re-written the program as an auto-loading plug-in DLL for Warcraft III
  • Removed all dependencies to MS Visual Studio, the project can now be compiled with GCC for Windows
  • Re-written the gateway setup procedure
  • Fixed a bug disconnecting the player from Battle.net when trying to join a non-existent game
  • Fixed a bug causing the player to stuck when trying to join a full lobby
  • Written a much better injection method for w3lh.dll
  • Added support for the W3GS_REJECTJOIN message


P.S.:

HazarDous wrote:Afaik developer is russian, and that might be why we had not heard of him before.


I'm Greek, not Russian.
These users thanked the author h3rmit for the post (total 2):
AngryAlb (Thu Oct 13, 2016 10:39 am) • Diablo_ (Sun Sep 04, 2016 10:22 pm)

Ella
Armored Tree
Posts: 50
Joined: Fri Jul 01, 2016 11:28 pm
Been thanked: 3 times

Re: Gproxy DLL - Reconnection tool

Postby Ella » Thu Sep 01, 2016 1:32 am

wraios. Good work pal. :D ante geia sou.

@H3rmit is a good programmer.

Sir Meon
Aura Tree
Posts: 29
Joined: Fri Apr 01, 2016 10:37 am
Location: Eurobattle.net
Has thanked: 42 times
Been thanked: 2 times

Re: Gproxy DLL - Reconnection tool

Postby Sir Meon » Sun Sep 04, 2016 10:43 am

"It does not require any CD keys" - what exactly does this mean here?
To me this sounds like I could connect to battle.net with GProxy selected and not need a CD Key for it?

Diablo_
Protector of Nature
Posts: 3180
Joined: Sat Apr 06, 2013 10:26 pm
Has thanked: 55 times
Been thanked: 145 times

Re: Gproxy DLL - Reconnection tool

Postby Diablo_ » Sun Sep 04, 2016 10:25 pm

Thanks for your work and your detailed explanation @h3rmit :)

Is the source code of your gproxy somewhere available (just curious to look into it)?

@Sir Meon
I guess it just means that Gproxy DLL doesn't need to know your CD key, as in you don't have to enter it in a config file etc.
WC3 itself will still require (legit) cd keys to play on the official servers.
These users thanked the author Diablo_ for the post:
Sir Meon (Mon Sep 05, 2016 10:26 am)
-----
LIHL player parser, a tool to automatically parse LIHL players' Elo and create reports for it: CLICK

User avatar
Dong
Donator
Posts: 598
Joined: Sat Jul 26, 2014 8:16 pm
Has thanked: 55 times
Been thanked: 36 times

Re: Gproxy DLL - Reconnection tool

Postby Dong » Mon Sep 05, 2016 4:44 pm

@Sir%20Meon

@Diablo_ i tagged him for you my love <3
These users thanked the author Dong for the post:
Sir Meon (Tue Sep 06, 2016 7:18 pm)
Thou shall self tk.

MrCross
Resource Storage
Posts: 15
Joined: Sun May 18, 2014 5:57 pm
Has thanked: 3 times

Re: Gproxy DLL - Reconnection tool

Postby MrCross » Fri Oct 07, 2016 3:05 pm

Cant get it to work on Mac :/ any ideas why?

User avatar
HazarDous
Staff Department
Posts: 9051
Joined: Mon Jan 12, 2015 9:36 pm
Has thanked: 70 times
Been thanked: 227 times

Re: Gproxy DLL - Reconnection tool

Postby HazarDous » Sat Oct 08, 2016 2:24 am

@h3rmit might be able to help you better.
These users thanked the author HazarDous for the post:
MrCross (Sat Oct 08, 2016 7:22 am)

User avatar
h3rmit
Resource Storage
Posts: 18
Joined: Sat Aug 27, 2016 12:15 am
Been thanked: 16 times

Re: Gproxy DLL - Reconnection tool

Postby h3rmit » Sat Oct 15, 2016 10:44 pm

MrCross wrote:Cant get it to work on Mac :/ any ideas why?


GProxy DLL is a standard Windows DLL and makes extensive usage of the Windows API.

It is not possible to make it work on a Mac.
These users thanked the author h3rmit for the post:
Sir Meon (Mon Oct 17, 2016 11:47 am)

User avatar
HazarDous
Staff Department
Posts: 9051
Joined: Mon Jan 12, 2015 9:36 pm
Has thanked: 70 times
Been thanked: 227 times

Re: Gproxy DLL - Reconnection tool

Postby HazarDous » Thu Dec 22, 2016 5:35 pm

h3rmit wrote:GProxy DLL version 0.07 has just been released:

http://www.mymgn.com/gproxy

  • Fixed some rare race conditions in the patching process
  • Improved the AuthInfo patching method
  • Added support for PvPGN servers
  • Added game start notification


Updated wiki file.

User avatar
Zheromer
Resource Storage
Posts: 19
Joined: Wed May 15, 2013 8:38 am

Re: Gproxy DLL - Reconnection tool

Postby Zheromer » Sat Dec 31, 2016 1:45 am

My gateway when logging into b.net is stuck at "aspire" of wich is my laptop. I can go back and switch from Gproxy to EU or any other and it works. But when Gproxy is selected i cant logginto b.net. Also cant reconnect to games. Any idea why this is and how to fix it?

User avatar
HazarDous
Staff Department
Posts: 9051
Joined: Mon Jan 12, 2015 9:36 pm
Has thanked: 70 times
Been thanked: 227 times

Re: Gproxy DLL - Reconnection tool

Postby HazarDous » Sat Dec 31, 2016 2:04 am

@Zheromer

Post a technical support topic, thanks.


Return to “Archive”

Who is online

Users browsing this forum: No registered users and 1 guest