Coder Social home page Coder Social logo

hermesproxy's Introduction

HermesProxy Build

This project enables play on existing legacy WoW emulation cores using the modern clients. It serves as a translation layer, converting all network traffic to the appropriate format each side can understand.

There are 4 major components to the application:

  • The modern BNetServer to which the client initially logs into.
  • The legacy AuthClient which will in turn login to the remote authentication server (realmd).
  • The modern WorldServer to which the game client will connect once a realm has been selected.
  • The legacy WorldClient which communicates with the remote world server (mangosd).

Supported Versions

Modern Versions Legacy Versions
1.14.0 1.12.1
2.5.2 2.4.3

Ingame Settings

Note: Keep Optimize Network for Speed enabled (it's under System -> Network), otherwise you will get kicked every now and then.

Usage Instructions

  • Edit the app's config to specify the exact versions of your game client and the remote server, along with the address.
  • Go into your game folder, in the Classic or Classic Era subdirectory, and edit WTF/Config.wtf to set the portal to 127.0.0.1.
  • Download Arctium Launcher into the main game folder, and then run it
    with --staticseed --version=ClassicEra for vanilla
    or --staticseed --version=Classic for TBC.
  • Start the proxy app and login through the game with your usual credentials.

Chat commands

HermesProxy provides some internal chat commands:

Command Description
!qcomplete <questId> Manually marks a quest as already completed (useful for quest helper addons)
!quncomplete <questId> Unmarks a quest as completed

Start Arguments

  • --config <filename> to specify a config (default HermesProxy.config)
  • --set <key>=<value> to overwrite a specific config value (example --set ServerAddress=logon.example.com)
  • --no-version-check to disable the check for newer versions

Acknowledgements

Parts of this poject's code are based on CypherCore and BotFarm. I would like to extend my sincere thanks to these projects, as the creation of this app might have never happened without them. And I would also like to expressly thank Modox for all his work on reverse engineering the classic clients and all the help he has personally given me.

Download HermesProxy

Stable Downloads: Releases

hermesproxy's People

Contributors

0blu avatar 7upcat avatar celguar avatar fearyii avatar hondacrx avatar insunaa avatar kittnz avatar lihvar avatar maxtorcoder avatar ratkosrb 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  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  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

hermesproxy's Issues

Some spells do not display red error text when failing

Trying to fish without a water source in line of sight will fail the fishing spell.
In vanilla this will display a red message at the top.
In the modern client it will not.
image

SMSG_SPELL_GO will sets CurrentClientNormalCast to null and thus

else if (GetSession().GameState.CurrentClientNormalCast != null &&
GetSession().GameState.CurrentClientNormalCast.SpellId == spellId)

will fail.

No connection could be made because the target machine actively refused it

Hello!
Used WoW 1.14.0 (40618)
Downloaded release from here, changed the client.WTF portal to 127.0.0.1
The server refuses to login me
image

Tried to pull sources and change some strings, etc. for 1.14.3 and used the most updated official client, the same problem.. :(
Checked firewall, network configurations, port is open, applications (both client and server) are trusted

Authentication failed for account

图像_2022-07-16_184321098

I followed the instructions step by step, and finally the authentication failed when logging in to the server. Can you help me solve this problem?

ClassicTBC WOW51900319 error

After use Tawny Windrider i get (WOW51900319) error. Possible to fix, please?
Server: Sunstrider "logon.sunstrider.gg"
Realm: Shadowmoon

Domain name in Realmlist

Trying to connect to a server which have different IP's for Login server and realm. Could that be why I get this error?
23:53:23 | Network | AuthClient | Connecting to auth server...
23:53:23 | Network | AuthClient | Authentication succeeded!
23:53:23 | Network | AuthClient | Received 2 realms.
23:53:23 | Error | AuthClient | Packet Read Error: An invalid IP address was specified.

Unable to Buff NPC's Using 1.14 Client

Describe the bug
I tested this with just Arcane Intellect but it might be all buffs. I can buff NPC's using the 1.12 client but in 1.14 it just casts it on myself even though I have the friendly NPC selected. In this case I'm in the human starting area trying to cast it on Marshall McBride as a test. I tried it on a few others in the area as well with the same problem.

Game Server
1.12 vmangos

Hermes Proxy Version
Version 2022-06-05 3.0.1+38(6bd29ee)

Modern Client Functionality / Opcode Support

Is there a possibility that HermesProxy will eventually support custom opcodes?

I personally am in favor of custom opcodes, to make better use of the functionality of the newer clients. The new clients support many things, such as the Threat API, the Quest Completion API, more detailed information about some types of data, etc.

IMO such an addition should not interfere at all with servers that do not support the custom opcodes.
We've partially talked about this in my Threat API pull request draft. (#44)

It should be very possible to build a system that can query a server which supports custom (but well defined) opcodes about which custom opcodes it implements and which ones HermesProxy implements, so that a consensus between Hermes and the Server is reached which opcodes Hermes or the Server can process, so that only these opcodes are actually sent.

This would of course require a small protocol to be developed and standards to be set such that those custom opcodes don't get out of hand.

Custom Items don't show info, stats or name

Describe the bug
Custom items don't show their name, icon, stats, anything except the ID basically, it only says "Retrieving item information" forever.

Game Server
CMaNGOS-TBC

Hermes Proxy Version
6d61a9b

Edit: I believe this should be handled by SMSG_ITEM_QUERY_SINGLE_RESPONSE, which you do implement, but for some reason this isn't working

New packet debug log format?

Can I implement a new debug log format?

The current debug format is a bit hard to read and requires a little bit of thinking

16:35:57 | Debug   | WorldClient | Received opcode SMSG_UPDATE_OBJECT (169).
16:35:57 | Debug   | WorldSocket | Sending opcode SMSG_UPDATE_OBJECT (10178).
17:35:58 | Debug   | WorldSocket | Received opcode CMSG_TALK_TO_GOSSIP (13458).
17:35:58 | Debug   | WorldClient | Sending opcode CMSG_TALK_TO_GOSSIP (379) with size 12.
17:35:58 | Debug   | WorldClient | Received opcode SMSG_GOSSIP_MESSAGE (381).
17:35:58 | Debug   | WorldSocket | Sending opcode SMSG_GOSSIP_MESSAGE (10904).

the new format would look like this:

16:35:57 | Debug   | C P<S | Received opcode SMSG_UPDATE_OBJECT (169).
16:35:57 | Debug   | C<P S | Sending opcode SMSG_UPDATE_OBJECT (10178).
17:35:58 | Debug   | C>P S | Received opcode CMSG_TALK_TO_GOSSIP (13458).
17:35:58 | Debug   | C P>S | Sending opcode CMSG_TALK_TO_GOSSIP (379) with size 12.
17:35:58 | Debug   | C P<S | Received opcode SMSG_GOSSIP_MESSAGE (381).
17:35:58 | Debug   | C<P S | Sending opcode SMSG_GOSSIP_MESSAGE (10904).

C = Client, P = HermesProxy, S = Server

The old class can stay in the log if you want.

16:35:57 | Debug   | WorldClient | C P<S | Received opcode SMSG_UPDATE_OBJECT (169).

when the character gets new quest items, he will be forced to log off

You did very well. Thank you so much for your dedication here. I changed the output port of the proxy to 8080
In the process of playing, when the character gets new quest items, he will be forced to log off. This is the process log, please take a look
15:08:58 | Warning | WorldSocket | No handler for opcode CMSG_GET_UNDELETE_CHARACTER_COOLDOWN_STATUS (14052)
15:08:58 | Warning | WorldSocket | No handler for opcode CMSG_BATTLE_PAY_GET_PURCHASE_LIST (14018)
15:08:58 | Warning | WorldSocket | No handler for opcode CMSG_BATTLE_PAY_GET_PRODUCT_LIST (14017)
15:08:58 | Warning | WorldSocket | No handler for opcode CMSG_UPDATE_VAS_PURCHASE_STATES (14072)
15:08:58 | Error | AuthClient | Socket Closed By Server
15:09:05 | Warning | WorldSocket | No handler for opcode CMSG_BATTLENET_REQUEST (14074)
15:09:05 | Warning | WorldSocket | No handler for opcode CMSG_GET_ACCOUNT_CHARACTER_LIST (14012)
15:09:05 | Warning | WorldSocket | No handler for opcode CMSG_BATTLE_PAY_GET_PURCHASE_LIST (14018)
15:09:16 | Network | WorldSocketManager | Instance socket open.
15:09:16 | Server | WorldSocket | Client has connected to the instance server.
15:09:16 | Warning | WorldSocket | No handler for opcode CMSG_VIOLENCE_LEVEL (12680)
15:09:16 | Warning | WorldSocket | No handler for opcode CMSG_QUEUED_MESSAGES_END (14188)
15:09:18 | Warning | WorldClient | No handler for opcode SMSG_SET_REST_START (542)
15:09:18 | Warning | WorldSocket | No handler for opcode CMSG_REQUEST_CATEGORY_COOLDOWNS (12673)
15:09:18 | Warning | WorldSocket | No handler for opcode CMSG_MOVE_INIT_ACTIVE_MOVER_COMPLETE (14914)
15:09:18 | Warning | WorldSocket | No handler for opcode CMSG_QUERY_QUEST_COMPLETION_NPCS (12664)
15:09:18 | Warning | WorldSocket | No handler for opcode CMSG_LFG_LIST_GET_STATUS (13836)
15:09:19 | Warning | WorldSocket | No handler for opcode CMSG_REQUEST_FORCED_REACTIONS (12807)
15:09:19 | Warning | WorldSocket | No handler for opcode CMSG_CALENDAR_GET_NUM_PENDING (13948)
15:09:19 | Warning | WorldSocket | No handler for opcode CMSG_BATTLE_PET_REQUEST_JOURNAL (13861)
15:09:19 | Warning | WorldSocket | No handler for opcode CMSG_QUERY_COUNTDOWN_TIMER (12715)
15:09:19 | Warning | WorldClient | No handler for opcode SMSG_SPELL_EXECUTE_LOG (588)
15:09:20 | Warning | WorldSocket | No handler for opcode CMSG_GUILD_SET_ACHIEVEMENT_TRACKING (12399)
15:09:21 | Warning | WorldSocket | No handler for opcode CMSG_GM_TICKET_GET_CASE_STATUS (13967)
15:09:26 | Warning | WorldSocket | No handler for opcode CMSG_REQUEST_CEMETERY_LIST (12665)
15:10:34 | Warning | WorldSocket | No handler for opcode CMSG_REPORT_CLIENT_VARIABLES (14086)
15:10:34 | Warning | WorldSocket | No handler for opcode CMSG_REPORT_ENABLED_ADDONS (14085)
15:10:34 | Warning | WorldSocket | No handler for opcode CMSG_REPORT_KEYBINDING_EXECUTION_COUNTS (14087)
15:10:35 | Warning | WorldSocket | No handler for opcode CMSG_VIOLENCE_LEVEL (12680)
15:10:35 | Warning | WorldSocket | No handler for opcode CMSG_BATTLE_PAY_GET_PURCHASE_LIST (14018)
15:10:36 | Warning | WorldSocket | No handler for opcode CMSG_REQUEST_FORCED_REACTIONS (12807)
15:10:36 | Warning | WorldSocket | No handler for opcode CMSG_QUERY_QUEST_COMPLETION_NPCS (12664)
15:10:36 | Warning | WorldSocket | No handler for opcode CMSG_REQUEST_FORCED_REACTIONS (12807)
15:10:36 | Warning | WorldSocket | No handler for opcode CMSG_LFG_LIST_GET_STATUS (13836)
15:10:36 | Warning | WorldSocket | No handler for opcode CMSG_BATTLE_PET_REQUEST_JOURNAL (13861)
15:10:37 | Warning | WorldSocket | No handler for opcode CMSG_QUERY_COUNTDOWN_TIMER (12715)
15:10:37 | Warning | WorldSocket | No handler for opcode CMSG_GM_TICKET_GET_CASE_STATUS (13967)
15:10:44 | Warning | WorldSocket | No handler for opcode CMSG_REPORT_CLIENT_VARIABLES (14086)
15:10:44 | Warning | WorldSocket | No handler for opcode CMSG_REPORT_ENABLED_ADDONS (14085)
15:10:44 | Warning | WorldSocket | No handler for opcode CMSG_REPORT_KEYBINDING_EXECUTION_COUNTS (14087)
15:10:44 | Warning | WorldSocket | No handler for opcode CMSG_VIOLENCE_LEVEL (12680)
15:10:44 | Warning | WorldSocket | No handler for opcode CMSG_BATTLE_PAY_GET_PURCHASE_LIST (14018)
15:10:46 | Warning | WorldSocket | No handler for opcode CMSG_REQUEST_FORCED_REACTIONS (12807)
15:10:46 | Warning | WorldSocket | No handler for opcode CMSG_QUERY_QUEST_COMPLETION_NPCS (12664)
15:10:46 | Warning | WorldSocket | No handler for opcode CMSG_LFG_LIST_GET_STATUS (13836)
15:10:46 | Warning | WorldSocket | No handler for opcode CMSG_REQUEST_FORCED_REACTIONS (12807)
15:10:46 | Warning | WorldSocket | No handler for opcode CMSG_BATTLE_PET_REQUEST_JOURNAL (13861)
15:10:46 | Warning | WorldSocket | No handler for opcode CMSG_QUERY_COUNTDOWN_TIMER (12715)
15:10:47 | Warning | WorldSocket | No handler for opcode CMSG_GM_TICKET_GET_CASE_STATUS (13967)
15:11:36 | Warning | WorldClient | No handler for opcode SMSG_SPELL_EXECUTE_LOG (588)
15:11:39 | Warning | WorldClient | No handler for opcode SMSG_SPELL_EXECUTE_LOG (588)
15:12:57 | Warning | WorldSocket | No handler for opcode CMSG_QUERY_QUEST_COMPLETION_NPCS (12664)
15:13:13 | Warning | WorldSocket | No handler for opcode CMSG_QUERY_QUEST_COMPLETION_NPCS (12664)
15:14:10 | Error | WorldClient | Packet Read Error: Nullable object must have a value.
at System.Nullable`1.get_Value()
at HermesProxy.World.Client.WorldClient.HandleItemPushResult(WorldPacket packet) in C:\Users\ratko\Desktop\source\CypherProxy\HermesProxy\HermesProxy\World\Client\PacketHandlers\ItemHandler.cs:line 34
at HermesProxy.World.Client.WorldClient.HandlePacket(WorldPacket packet) in C:\Users\ratko\Desktop\source\CypherProxy\HermesProxy\HermesProxy\World\Client\WorldClient.cs:line 387
at HermesProxy.World.Client.WorldClient.ReceiveCallback(IAsyncResult AR) in C:\Users\ratko\Desktop\source\CypherProxy\HermesProxy\HermesProxy\World\Client\WorldClient.cs:line 216
15:14:17 | Server | Session | Accepting connection from 127.0.0.1:63812.
15:14:18 | Network | AuthClient | Connecting to auth server...
15:14:18 | Network | AuthClient | Authentication succeeded!
15:14:18 | Network | AuthClient | Received 1 realms.
15:14:18 | Server | RealmManager | Added realm "Lightbringer" at 127.0.0.1:8085
15:14:20 | Network | WorldSocketManager | Instance socket open.
15:14:20 | Server | WorldSocket | WorldSocket:HandleAuthSession: Client 'rick' authenticated successfully from 127.0.0.1:63816.
15:14:20 | Network | WorldClient | Connecting to world server...
15:14:20 | Network | WorldClient | Connection established!
15:14:20 | Network | WorldClient | Authentication succeeded!
15:14:20 | Warning | WorldSocket | No handler for opcode CMSG_GET_UNDELETE_CHARACTER_COOLDOWN_STATUS (14052)
15:14:20 | Warning | WorldSocket | No handler for opcode CMSG_BATTLE_PAY_GET_PURCHASE_LIST (14018)
15:14:20 | Warning | WorldSocket | No handler for opcode CMSG_BATTLE_PAY_GET_PRODUCT_LIST (14017)
15:14:20 | Warning | WorldSocket | No handler for opcode CMSG_UPDATE_VAS_PURCHASE_STATES (14072)
15:14:20 | Error | AuthClient | Socket Closed By Server
15:14:26 | Warning | WorldSocket | No handler for opcode CMSG_BATTLENET_REQUEST (14074)
15:14:27 | Warning | WorldSocket | No handler for opcode CMSG_GET_ACCOUNT_CHARACTER_LIST (14012)
15:14:27 | Warning | WorldSocket | No handler for opcode CMSG_BATTLE_PAY_GET_PURCHASE_LIST (14018)
15:14:27 | Network | WorldSocketManager | Instance socket open.
15:14:27 | Server | WorldSocket | Client has connected to the instance server.
15:14:27 | Warning | WorldSocket | No handler for opcode CMSG_VIOLENCE_LEVEL (12680)
15:14:27 | Warning | WorldSocket | No handler for opcode CMSG_QUEUED_MESSAGES_END (14188)
15:14:28 | Warning | WorldClient | No handler for opcode SMSG_SET_REST_START (542)
15:14:28 | Warning | WorldSocket | No handler for opcode CMSG_REQUEST_CATEGORY_COOLDOWNS (12673)
15:14:29 | Warning | WorldSocket | No handler for opcode CMSG_MOVE_INIT_ACTIVE_MOVER_COMPLETE (14914)
15:14:29 | Warning | WorldSocket | No handler for opcode CMSG_LFG_LIST_GET_STATUS (13836)
15:14:29 | Warning | WorldSocket | No handler for opcode CMSG_QUERY_QUEST_COMPLETION_NPCS (12664)
15:14:29 | Warning | WorldSocket | No handler for opcode CMSG_CALENDAR_GET_NUM_PENDING (13948)
15:14:29 | Warning | WorldSocket | No handler for opcode CMSG_REQUEST_FORCED_REACTIONS (12807)
15:14:29 | Warning | WorldSocket | No handler for opcode CMSG_BATTLE_PET_REQUEST_JOURNAL (13861)
15:14:29 | Warning | WorldSocket | No handler for opcode CMSG_QUERY_COUNTDOWN_TIMER (12715)
15:14:29 | Warning | WorldSocket | No handler for opcode CMSG_GUILD_SET_ACHIEVEMENT_TRACKING (12399)
15:14:30 | Warning | WorldSocket | No handler for opcode CMSG_GM_TICKET_GET_CASE_STATUS (13967)
15:14:32 | Warning | WorldSocket | No handler for opcode CMSG_REQUEST_CEMETERY_LIST (12665)
15:15:01 | Warning | WorldSocket | No handler for opcode CMSG_DISCARDED_TIME_SYNC_ACKS (14909)
15:15:01 | Warning | WorldSocket | No handler for opcode CMSG_REPORT_CLIENT_VARIABLES (14086)
15:15:02 | Warning | WorldSocket | No handler for opcode CMSG_REPORT_ENABLED_ADDONS (14085)
15:15:02 | Warning | WorldSocket | No handler for opcode CMSG_REPORT_KEYBINDING_EXECUTION_COUNTS (14087)

No handler for opcode CMSG_WRAP_ITEM (14740)

Describe the bug

  • .additem 5042 (Wrapping Paper)
  • .additem 873 (Some random useless item)
  • Use Wrapping Paper on Item
  • Does not wrap item <.<

Game Server
vmangos 7e881d27cd8574603d33fef74ce55ccc5550a508

Hermes Proxy Version
2022-06-04 3.0.1+37

Sending more gold via mail than on player works (but gold is set to 0)

Describe the bug

  • Go to mail box
  • Your own character just has 1 gold or so
  • Send 999 gold to another player
  • Red message pops up that you don't have enough money but the mail is still sent
  • Only 30 copper were removed
    image

The classic clients seems to send the message with 0 gold(?).

packet.WriteUInt32((uint)mail.SendMoney);

Game Server
vmangos 7e881d27cd8574603d33fef74ce55ccc5550a508

Hermes Proxy Version
2022-06-04 3.0.1+36

Freewind post elevator

Logged in with 2 accs, one on classic and other on 1.12

Noticed that when on 1.12 the elevator is up its down on classic and vice versa.

Becoming cc'd while changing warr stances

Had a bug where I changed from battle to berserker stance and got cc'd right as I did, but I was in berserker stance but still had my battle stance bar with all of my battle stance abilities instead of my berserker rage abilities.

I don't know if it is because of my relatively high ping (150+ from na).

need to handle latest Classic client V44403

HermesProxy do not handle client 44403

I tried with no success (LogonChallenge fail leading to answer user do not exist) by adding enum for version 44403

probably the seed is not valid for client 44403 or I missed something

13:07:12 | Server | Server | Starting Hermes Proxy...
13:07:12 | Server | Server | Version 2022-06-12 3.0.1+50(6d61a9b)
13:07:12 | Storage | GameData | Loading data files...
13:07:13 | Server | VersionChecker | Loaded 833 legacy opcodes.
13:07:13 | Server | VersionChecker | Loaded 1639 modern opcodes.
13:07:15 | Storage | GameData | Finished loading data.
13:07:15 | Server | Server | Starting REST service...
13:07:15 | Network | NetworkThread | Network Thread Starting
13:07:15 | Server | Server | Starting Login service...
13:07:15 | Server | Server | BNet Listening on 0.0.0.0:1119...
13:07:15 | Server | Server | World Listening on 0.0.0.0:8084...
13:07:15 | Network | NetworkThread | Network Thread Starting
13:07:15 | Network | NetworkThread | Network Thread Starting
13:07:56 | Server | BnetTcpSession | Accepting connection from 127.0.0.1:55549.
13:08:08 | Network | AuthClient | C P>S | Connecting to auth server...
13:08:47 | Error | AuthClient | Login failed. Reason: FAIL_UNKNOWN_ACCOUNT
13:09:14 | Server | BnetTcpSession | Accepting connection from 127.0.0.1:55693.
13:09:20 | Network | AuthClient | C P>S | Connecting to auth server...
13:11:34 | Error | AuthClient | Login failed. Reason: FAIL_UNKNOWN_ACCOUNT

portion of code in authClient.cs line 412:
AuthResult error = (AuthResult)packet.ReadUInt8();
if (error != AuthResult.SUCCESS)
{
Log.Print(LogType.Error, $"Login failed. Reason: {error}");
SetAuthResponse(error);
return;
}

Looting objects

Dunno if this happens with other objects, but was doing the quest that requires u to collect 10 incendia agave in thousand needles.

And it sometimes it required quite a bit of clicking to get it to properly loot the object on classic client.

Randomize character name results in crash

Describe the bug
When pressing the "Randomize" on character creation screen, the proxy crashes with the following trace:

22:01:44 | Error   | AuthClient | C P<S | Socket Closed By Server
Unhandled exception. System.NullReferenceException: Object reference not set to an instance of an object.
   at HermesProxy.World.Server.Packets.GenerateRandomCharacterNameResult.Write() in E:\Dev\pvp\HermesProxy\HermesProxy\World\Server\Packets\CharacterPackets.cs:line 1044
   at HermesProxy.World.ServerPacket.WritePacketData() in E:\Dev\pvp\HermesProxy\HermesProxy\World\Packet.cs:line 127
   at HermesProxy.World.Server.WorldSocket.SendPacket(ServerPacket packet) in E:\Dev\pvp\HermesProxy\HermesProxy\World\Server\WorldSocket.cs:line 335
   at HermesProxy.World.Server.WorldSocket.HandleGenerateRandomCharacterNameRequest(GenerateRandomCharacterNameRequest randomCharacterName) in E:\Dev\pvp\HermesProxy\HermesProxy\World\Server\PacketHandlers\CharacterHandler.cs:line 221
   at HermesProxy.World.Server.WorldSocket.PacketHandler.<>c__DisplayClass2_0`1.<CreateDelegate>b__0(WorldSocket target, ClientPacket p) in E:\Dev\pvp\HermesProxy\HermesProxy\World\Server\WorldSocket.cs:line 1106
   at HermesProxy.World.Server.WorldSocket.PacketHandler.Invoke(WorldSocket session, WorldPacket packet) in E:\Dev\pvp\HermesProxy\HermesProxy\World\Server\WorldSocket.cs:line 1096
   at HermesProxy.World.Server.WorldSocket.HandlePacket(WorldPacket packet) in E:\Dev\pvp\HermesProxy\HermesProxy\World\Server\WorldSocket.cs:line 315
   at HermesProxy.World.Server.WorldSocket.ReadData() in E:\Dev\pvp\HermesProxy\HermesProxy\World\Server\WorldSocket.cs:line 304
   at HermesProxy.World.Server.WorldSocket.ReadHandler(SocketAsyncEventArgs args) in E:\Dev\pvp\HermesProxy\HermesProxy\World\Server\WorldSocket.cs:line 208
   at Framework.Networking.SocketBase.ProcessReadAsync(SocketAsyncEventArgs args) in E:\Dev\pvp\HermesProxy\Framework\Networking\SocketBase.cs:line 108
   at Framework.Networking.SocketBase.<.ctor>b__5_0(Object sender, SocketAsyncEventArgs args) in E:\Dev\pvp\HermesProxy\Framework\Networking\SocketBase.cs:line 53
   at System.Net.Sockets.SocketAsyncEventArgs.OnCompleted(SocketAsyncEventArgs e)
   at System.Net.Sockets.SocketAsyncEventArgs.ExecutionCallback(Object state)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
--- End of stack trace from previous location ---
   at System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* pNativeOverlapped)

Game Server
vmangos

Hermes Proxy Version

Version 2022-06-06 3.0.1+47(8842ac3)

Creating temporary transport object causes Proxy to crash

  • vMangos
  • .gob tmp 176080 // Creates deeprun tram
  • .gob tmp 11899 // Creates thousand needles elevator

Chain of events:

  1. HandleCompressedUpdateObject
  2. HandleUpdateObject
  3. > CreateObject1/2
    3.1 new ObjectUpdate(...)
    3.1.1 guid.GetObjectType() returns Conversation (because of HighGuidType?) and therefore GameObjectData is not filled
  4. ReadCreateObjectBlock
  5. ReadValuesUpdateBlockOnCreate
  6. StoreObjectUpdate
  7. > updateData.GameObjectData.CreatedBy = GetGuidValue(...)
    7.1 updateData.GameObjectData is null and causes exception

is TBC playable?

You can login, create character, start walking. And that's all. Can't talk to npcs, cast spells on mobs and etc.

image

Stealth and Levitate animation does not display when idling.

Some movement flags or opcodes don't seem to be translated or transmitted correctly. I haven't been able to find the cause of this issue yet, so I'm opening this github issue in the meantime.

To test this: Cast Levitate on yourself, notice that instead of the floating idle animation you are just further up in the air using the ground-standing idle animation.
Create a rogue and use Stealth and notice that you remain in the regular idle animation, not the sneaking idle animation. Movement sneak works as expected, idle does not.

Tested on CMaNGOS with 2.5.2 Client

Entering world from WAN\LAN is dropping connection

CMANGOS Ver: Latest compiled from sources
GameVer: 1.14.0 (40618)
Proxy: Last Released (not compiled)

  1. Tryied to connect to dedicated CMANGOS server on VDS (WAN)
  2. Tryied to connect through LAN from one computer to another

Login is working, char creation is working, but after pressing "Enter World" it tries to cennect 5 times and then disconnects, also Hermes is going in loop with

Moreover if I try to connect from server-PC with 127.0.0.1 it works as it should. By dedicated or LAN network by subnet 192.168.x.x - not

Hermes config looks for 192.168.x.x and it works till entering world

21:12:41 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626).

Full Log:

21:12:25 | Server  | Server | Hello from Hermes Proxy!
21:12:25 | Server  | Server | Compiled on 05/27/2022 04:57:26.
21:12:25 | Storage | GameData | Loading data files...
21:12:25 | Server  | VersionChecker | Loaded 833 legacy opcodes.
21:12:25 | Server  | VersionChecker | Loaded 1640 modern opcodes.
21:12:25 | Storage | GameData | Finished loading data.
21:12:25 | Server  | Server | Starting REST service...
21:12:25 | Network | NetworkThread | Network Thread Starting
21:12:25 | Server  | Server | Starting Realm manager...
21:12:25 | Server  | RealmManager | Added realm "Sandbox" at 127.0.0.1:8084
21:12:25 | Server  | Server | Starting Login service...
21:12:25 | Server  | Server | BNet Listening on 0.0.0.0:1119...
21:12:25 | Network | NetworkThread | Network Thread Starting
21:12:25 | Server  | Server | World Listening on 0.0.0.0:8084...
21:12:25 | Network | NetworkThread | Network Thread Starting
21:12:29 | Server  | Session | Accepting connection from 127.0.0.1:55152.
21:12:29 | Network | AuthClient | Connecting to auth server...
21:12:30 | Network | AuthClient | Authentication succeeded!
21:12:30 | Network | AuthClient | Received 1 realms.
21:12:30 | Server  | RealmManager | Added realm "Test" at 192.168.88.100:8085
21:12:31 | Network | WorldSocketManager | Instance socket open.
21:12:31 | Server  | WorldSocket | WorldSocket:HandleAuthSession: Client 'testC' authenticated successfully from 127.0.0.1:55163.
21:12:31 | Network | WorldClient | Connecting to world server...
21:12:31 | Network | WorldClient | Connection established!
21:12:31 | Network | WorldClient | Authentication succeeded!
21:12:31 | Warning | WorldSocket | No handler for opcode CMSG_GET_UNDELETE_CHARACTER_COOLDOWN_STATUS (14052)
21:12:31 | Warning | WorldSocket | No handler for opcode CMSG_BATTLE_PAY_GET_PURCHASE_LIST (14018)
21:12:31 | Warning | WorldSocket | No handler for opcode CMSG_BATTLE_PAY_GET_PRODUCT_LIST (14017)
21:12:31 | Warning | WorldSocket | No handler for opcode CMSG_UPDATE_VAS_PURCHASE_STATES (14072)
21:12:31 | Error   | AuthClient | Socket Closed By Server
21:12:31 | Warning | WorldSocket | No handler for opcode CMSG_BATTLENET_REQUEST (14074)
21:12:32 | Warning | WorldSocket | No handler for opcode CMSG_GET_ACCOUNT_CHARACTER_LIST (14012)
21:12:33 | Warning | WorldSocket | No handler for opcode CMSG_BATTLE_PAY_GET_PURCHASE_LIST (14018)
21:12:34 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626).
21:12:34 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626).
21:12:34 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626).
21:12:35 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626).
21:12:35 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626).
21:12:35 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626).
21:12:35 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626).
21:12:35 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626).
21:12:36 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626).
21:12:36 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626).
21:12:36 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626).
21:12:36 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626).
21:12:36 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626).
21:12:37 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626).
21:12:38 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626).
21:12:38 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626).
21:12:38 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626).
21:12:38 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626).
21:12:38 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626).
21:12:38 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626).
21:12:38 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626).
21:12:38 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626).
21:12:38 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626).
21:12:39 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626).
21:12:39 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626).
21:12:39 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626).
21:12:39 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626).
21:12:39 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626).
21:12:40 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626).
21:12:40 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626).
21:12:40 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626).
21:12:40 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626).
21:12:40 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626).
21:12:41 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626).
21:12:41 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626).
21:12:41 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626).
21:12:41 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626).
21:12:41 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626).
21:12:42 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626).
21:12:42 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626).
21:12:42 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626).
21:12:42 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626).
21:12:43 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626).
21:12:43 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626).
21:12:43 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626).
21:12:43 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626).
21:12:43 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626).
21:12:44 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626).
21:12:44 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626).
21:12:44 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626).
21:12:44 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626).
21:12:44 | Error   | WorldSocket | Failed to connect 5 times to world socket, aborting login
21:12:44 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626).
21:12:44 | Warning | WorldSocket | No handler for opcode CMSG_GET_UNDELETE_CHARACTER_COOLDOWN_STATUS (14052)
21:12:44 | Warning | WorldSocket | No handler for opcode CMSG_BATTLE_PAY_GET_PURCHASE_LIST (14018)
21:12:44 | Warning | WorldSocket | No handler for opcode CMSG_BATTLE_PAY_GET_PRODUCT_LIST (14017)
21:12:44 | Warning | WorldSocket | No handler for opcode CMSG_UPDATE_VAS_PURCHASE_STATES (14072)
21:12:45 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626).
21:12:45 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626).
21:12:45 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626).
21:12:45 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626).
21:12:45 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626).
21:12:46 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626).
21:12:46 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626).
21:12:46 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626).
21:12:46 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626).
21:12:46 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626).
21:12:47 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626).
21:12:47 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626).
21:12:47 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626).
21:12:47 | Server  | WorldSocket | Client disconnected with reason 14.
21:12:47 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626).
21:12:47 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626).
21:12:48 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626).
21:12:48 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626).
21:12:48 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626).
21:12:48 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626).
21:12:48 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626).
21:12:49 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626).
21:12:49 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626).
21:12:49 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626).
21:12:49 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626).
21:12:49 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626).
21:12:50 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626).
21:12:50 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626).
21:12:50 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626).
21:12:50 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626).
21:12:50 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626).

And another try:

21:22:53 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626). 21:22:54 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626). 21:22:54 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626). 21:22:54 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626). 21:22:54 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626). 21:22:54 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626). 21:22:55 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626). 21:22:55 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626). 21:22:55 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626). 21:22:55 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626). 21:22:55 | Warning | WorldSocket | No handler for opcode CMSG_GET_ACCOUNT_CHARACTER_LIST (14012) 21:22:55 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626). 21:22:56 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626). 21:22:56 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626). 21:22:56 | Warning | WorldSocket | No handler for opcode CMSG_BATTLE_PAY_GET_PURCHASE_LIST (14018) 21:22:56 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626). 21:22:56 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626). 21:22:56 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626). 21:22:57 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626). 21:22:57 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626). 21:22:57 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626). 21:22:57 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626). 21:22:57 | Network | WorldClient | Waiting to send SMSG_SET_PROFICIENCY (10026). 21:22:57 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626). 21:22:58 | Network | WorldClient | Waiting to send SMSG_SET_PROFICIENCY (10026). 21:22:58 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626). 21:22:58 | Network | WorldClient | Waiting to send SMSG_SET_PROFICIENCY (10026). 21:22:58 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626). 21:22:58 | Network | WorldClient | Waiting to send SMSG_SET_PROFICIENCY (10026). 21:22:58 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626). 21:22:58 | Network | WorldClient | Waiting to send SMSG_SET_PROFICIENCY (10026). 21:22:58 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626). 21:22:58 | Network | WorldClient | Waiting to send SMSG_SET_PROFICIENCY (10026). 21:22:58 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626). 21:22:59 | Network | WorldClient | Waiting to send SMSG_SET_PROFICIENCY (10026). 21:22:59 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626). 21:22:59 | Network | WorldClient | Waiting to send SMSG_SET_PROFICIENCY (10026). 21:22:59 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626). 21:22:59 | Network | WorldClient | Waiting to send SMSG_SET_PROFICIENCY (10026). 21:22:59 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626). 21:22:59 | Network | WorldClient | Waiting to send SMSG_SET_PROFICIENCY (10026). 21:22:59 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626). 21:22:59 | Network | WorldClient | Waiting to send SMSG_SET_PROFICIENCY (10026). 21:22:59 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626). 21:23:00 | Network | WorldClient | Waiting to send SMSG_SET_PROFICIENCY (10026). 21:23:00 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626). 21:23:00 | Network | WorldClient | Waiting to send SMSG_SET_PROFICIENCY (10026). 21:23:00 | Network | WorldClient | Waiting to send SMSG_LOGIN_VERIFY_WORLD (9626).

Login failed. Reason: WRONG_BUILD_NUMBER

Hello Guys,
Sorry to trouble your time, but I really can not found how I can solve this error.
I tried HermesProxy for vmangos repack V20, port 3724 for realmlist, 8085 for mangosd, client 1.14.0 40618 to connection will have below error. may I get your help to known what happened? how can I solve that?

HermesProxy: HermesProxy.Windows.27-05-2022
Arctium WoW Launcher: [Launcher Signed (2022/08/19)] [Windows.x86_64.zip]
Core: VMangos Repack V20

config file setup with:
add key="ClientBuild" value="40618"
add key="ClientSeed" value="179D3DC3235629D07113A9B3867F97A7"
add key="ServerBuild" value="5875"

================HermesProxy Error=================
10:22:11 | Server | Server | Hello from Hermes Proxy!
10:22:11 | Server | Server | Compiled on 05/27/2022 04:57:26.
10:22:11 | Storage | GameData | Loading data files...
10:22:11 | Server | VersionChecker | Loaded 833 legacy opcodes.
10:22:11 | Server | VersionChecker | Loaded 1640 modern opcodes.
10:22:11 | Storage | GameData | Finished loading data.
10:22:11 | Server | Server | Starting REST service...
10:22:11 | Network | NetworkThread | Network Thread Starting
10:22:11 | Server | Server | Starting Realm manager...
10:22:11 | Server | RealmManager | Added realm "Sandbox" at 127.0.0.1:8084
10:22:11 | Server | Server | Starting Login service...
10:22:11 | Server | Server | BNet Listening on 0.0.0.0:1119...
10:22:11 | Network | NetworkThread | Network Thread Starting
10:22:11 | Server | Server | World Listening on 0.0.0.0:8084...
10:22:11 | Network | NetworkThread | Network Thread Starting
10:22:32 | Server | Session | Accepting connection from 127.0.0.1:54365.
10:22:32 | Debug | Session | Service 1698982289 Method 1 Token 0
10:22:32 | Debug | Session | Service 233634817 Method 1 Token 1
10:22:32 | Network | AuthClient | Connecting to auth server...
10:22:32 | Debug | AuthClient | Received opcode LOGON_CHALLENGE size 119.
10:22:32 | Debug | AuthClient | Received opcode LOGON_PROOF size 2.
10:22:32 | Error | AuthClient | Login failed. Reason: WRONG_BUILD_NUMBER
10:22:32 | Debug | Session | Service 1698982289 Method 7 Token 2

================Realmd Error=================
Accepting connection from ''
[AuthChallenge] Account 'ADMIN' using IP '' is using 'zhCN' locale (4)
[AuthChallenge] Account ADMIN tried to login with modified client!

Looting something causes an Error from time to time: WorldClient | Packet Read Error: Nullable object must have a value.

First of all, great project!

I get this error from time to time when I am looting something. I'm using auto loot from the client and faster auto loot from LeatrixPlus.
WorldClient | Packet Read Error: Nullable object must have a value.
17:28:37 | Error | WorldClient | Packet Read Error: Nullable object must have a value. at HermesProxy.World.Client.WorldClient.HandleItemPushResult(WorldPacket packet) in C:\Users\<>\Source\Repos\HermesProxy2\HermesProxy\World\Client\PacketHandlers\ItemHandler.cs:line 34 at HermesProxy.World.Client.WorldClient.HandlePacket(WorldPacket packet) in C:\Users\<>\Source\Repos\HermesProxy2\HermesProxy\World\Client\WorldClient.cs:line 387 at HermesProxy.World.Client.WorldClient.ReceiveCallback(IAsyncResult AR) in C:\Users\<>\Source\Repos\HermesProxy2\HermesProxy\World\Client\WorldClient.cs:line 189

[Vanilla] ships and zeppelins not appearing.

Following errors are thrown, and the zeppelins and transport ships not appear in the game, using the classic client.

ort/0 R0/S0 Map: 2560 Low: 5
14:31:47 | Error   | UpdateHandler | Broken create1 without position for Full: 0x18000140000000000000000000000000 Transport/0 R0/S0 Map: 2560 Low: 5
14:31:57 | Error   | UpdateHandler | Broken create1 without position for Full: 0x18000040000000000000000000000000 Transport/0 R0/S0 Map: 512 Low: 1
14:32:34 | Error   | UpdateHandler | Broken create1 without position for Full: 0x18000080000000000000000000000000 Transport/0 R0/S0 Map: 1024 Low: 2

Dead (Spirit) State makes entering world unrecheable

GameVer: 1.14
Proxy: Latest published (not compiled)
Server: CMANGOS builded from sources dated ATM

Steps to reproduce: Die, logout,, try to enter world
Expected behaviour: The spirit state is shown at the char selection, but its not. You can enter world, but you can''t

image

Mobs of quest "Ferocitas the Dream Eater" are not shown as killed and the quest not marked as completed

Describe the bug
Mobs of quest "Ferocitas the Dream Eater" are not shown as killed and the quest not marked as completed

Using 1.12.1: The mobs are shown as killed and marked 7/7 in the quest log and the quest is completed:
Example Version

Using 1.14.0: The mobs are not shown and marked 0/7 in the quest log and the quest is not completed:
Example Version
(This screenshot has been taken after the 1.12.1 screenshot!)

Game Server
I am running my vmangos 0aa048d (newest commit, build at 2022.07.15)

Hermes Proxy Version
(compiled manually)
Version 2022-06-12 3.0.1+50(6d61a9b)

Here is the Hermes Proxy output. During the session i logged in using the 1.12.1 client to create the above screenshot

21:35:44 | Server | Server | Starting Hermes Proxy...
21:35:44 | Server | Server | Version 2022-06-12 3.0.1+50(6d61a9b)
21:35:44 | Storage | GameData | Loading data files...
21:35:44 | Server | VersionChecker | Loaded 833 legacy opcodes.
21:35:44 | Server | VersionChecker | Loaded 1639 modern opcodes.
21:35:44 | Storage | GameData | Finished loading data.
21:35:44 | Server | Server | Starting REST service...
21:35:44 | Network | NetworkThread | Network Thread Starting
21:35:44 | Server | Server | Starting Login service...
21:35:44 | Server | Server | BNet Listening on 0.0.0.0:1119...
21:35:44 | Network | NetworkThread | Network Thread Starting
21:35:44 | Server | Server | World Listening on 0.0.0.0:8084...
21:35:44 | Network | NetworkThread | Network Thread Starting
21:35:54 | Server | BnetTcpSession | Accepting connection from 127.0.0.1:51997.
21:35:54 | Network | AuthClient | C P>S | Connecting to auth server...
21:35:54 | Network | AuthClient | Authentication succeeded!
21:35:54 | Network | AuthClient | Received 1 realms.
21:35:54 | Server | RealmManager | Added realm "vmangos" at 127.0.0.1:8085
21:35:54 | Network | WorldSocketManager | Instance socket open.
21:35:54 | Server | WorldSocket | WorldSocket:HandleAuthSession: Client 'THORSTEN' authenticated successfully from 127.0.0.1:52001.
21:35:54 | Network | WorldClient | Connecting to world server...
21:35:54 | Network | WorldClient | Connection established!
21:35:55 | Network | WorldClient | Authentication succeeded!
21:35:55 | Warning | WorldSocket | No handler for opcode CMSG_GET_UNDELETE_CHARACTER_COOLDOWN_STATUS (14052)
21:35:55 | Warning | WorldSocket | No handler for opcode CMSG_BATTLE_PAY_GET_PURCHASE_LIST (14018)
21:35:55 | Warning | WorldSocket | No handler for opcode CMSG_BATTLE_PAY_GET_PRODUCT_LIST (14017)
21:35:55 | Warning | WorldSocket | No handler for opcode CMSG_UPDATE_VAS_PURCHASE_STATES (14072)
21:35:55 | Error | AuthClient | C P<S | Socket Closed By Server
21:35:55 | Warning | BnetServices | [WorldSocket][127.0.0.1:52001, Account: THORSTEN, Game account: THORSTEN] Client requested service ResourcesService/m:1 but this service is not implemented?
21:35:56 | Warning | WorldSocket | No handler for opcode CMSG_BATTLE_PAY_GET_PURCHASE_LIST (14018)
21:35:57 | Network | WorldSocketManager | Instance socket open.
21:35:57 | Server | WorldSocket | Client has connected to the instance server.
21:35:57 | Warning | WorldSocket | No handler for opcode CMSG_VIOLENCE_LEVEL (12680)
21:35:57 | Warning | WorldSocket | No handler for opcode CMSG_QUEUED_MESSAGES_END (14188)
21:35:57 | Warning | WorldClient | No handler for opcode SMSG_SET_REST_START (542)
21:35:57 | Warning | WorldSocket | No handler for opcode CMSG_REQUEST_CATEGORY_COOLDOWNS (12673)
21:35:57 | Warning | WorldSocket | No handler for opcode CMSG_QUERY_QUEST_COMPLETION_NPCS (12664)
21:35:57 | Warning | WorldSocket | No handler for opcode CMSG_REQUEST_FORCED_REACTIONS (12807)
21:35:57 | Warning | WorldSocket | No handler for opcode CMSG_QUERY_COUNTDOWN_TIMER (12715)
21:35:57 | Warning | WorldSocket | No handler for opcode CMSG_LFG_LIST_GET_STATUS (13836)
21:35:57 | Warning | WorldSocket | No handler for opcode CMSG_CALENDAR_GET_NUM_PENDING (13948)
21:35:57 | Warning | WorldSocket | No handler for opcode CMSG_BATTLE_PET_REQUEST_JOURNAL (13861)
21:35:57 | Warning | WorldSocket | No handler for opcode CMSG_GUILD_SET_ACHIEVEMENT_TRACKING (12399)
21:35:57 | Warning | WorldSocket | No handler for opcode CMSG_GM_TICKET_GET_CASE_STATUS (13967)
21:35:58 | Warning | WorldSocket | No handler for opcode CMSG_REQUEST_CEMETERY_LIST (12665)
21:36:08 | Warning | WorldSocket | No handler for opcode CMSG_QUERY_QUEST_COMPLETION_NPCS (12664)
21:36:08 | Warning | WorldSocket | No handler for opcode CMSG_QUERY_QUEST_COMPLETION_NPCS (12664)
21:45:57 | Warning | WorldSocket | No handler for opcode CMSG_GM_TICKET_GET_CASE_STATUS (13967)
21:51:47 | Error | WorldClient | C P<S | Socket Closed By Server
21:52:22 | Server | BnetTcpSession | Accepting connection from 127.0.0.1:52210.
21:52:23 | Network | AuthClient | C P>S | Connecting to auth server...
21:52:23 | Network | AuthClient | Authentication succeeded!
21:52:23 | Network | AuthClient | Received 1 realms.
21:52:23 | Server | RealmManager | Added realm "vmangos" at 127.0.0.1:8085
21:52:23 | Network | WorldSocketManager | Instance socket open.
21:52:23 | Server | WorldSocket | WorldSocket:HandleAuthSession: Client 'THORSTEN' authenticated successfully from 127.0.0.1:52214.
21:52:23 | Network | WorldClient | Connecting to world server...
21:52:23 | Network | WorldClient | Connection established!
21:52:23 | Network | WorldClient | Authentication succeeded!
21:52:23 | Warning | WorldSocket | No handler for opcode CMSG_GET_UNDELETE_CHARACTER_COOLDOWN_STATUS (14052)
21:52:23 | Warning | WorldSocket | No handler for opcode CMSG_BATTLE_PAY_GET_PURCHASE_LIST (14018)
21:52:23 | Warning | WorldSocket | No handler for opcode CMSG_BATTLE_PAY_GET_PRODUCT_LIST (14017)
21:52:23 | Warning | WorldSocket | No handler for opcode CMSG_UPDATE_VAS_PURCHASE_STATES (14072)
21:52:23 | Error | AuthClient | C P<S | Socket Closed By Server
21:52:23 | Warning | BnetServices | [WorldSocket][127.0.0.1:52214, Account: THORSTEN, Game account: THORSTEN] Client requested service ResourcesService/m:1 but this service is not implemented?
21:52:25 | Warning | WorldSocket | No handler for opcode CMSG_BATTLE_PAY_GET_PURCHASE_LIST (14018)
21:52:25 | Network | WorldSocketManager | Instance socket open.
21:52:25 | Server | WorldSocket | Client has connected to the instance server.
21:52:25 | Warning | WorldSocket | No handler for opcode CMSG_VIOLENCE_LEVEL (12680)
21:52:25 | Warning | WorldSocket | No handler for opcode CMSG_QUEUED_MESSAGES_END (14188)
21:52:26 | Warning | WorldClient | No handler for opcode SMSG_SET_REST_START (542)
21:52:26 | Warning | WorldSocket | No handler for opcode CMSG_REQUEST_CATEGORY_COOLDOWNS (12673)
21:52:26 | Warning | WorldSocket | No handler for opcode CMSG_QUERY_QUEST_COMPLETION_NPCS (12664)
21:52:26 | Warning | WorldSocket | No handler for opcode CMSG_REQUEST_FORCED_REACTIONS (12807)
21:52:26 | Warning | WorldSocket | No handler for opcode CMSG_QUERY_COUNTDOWN_TIMER (12715)
21:52:26 | Warning | WorldSocket | No handler for opcode CMSG_LFG_LIST_GET_STATUS (13836)
21:52:26 | Warning | WorldSocket | No handler for opcode CMSG_CALENDAR_GET_NUM_PENDING (13948)
21:52:26 | Warning | WorldSocket | No handler for opcode CMSG_BATTLE_PET_REQUEST_JOURNAL (13861)
21:52:26 | Warning | WorldSocket | No handler for opcode CMSG_GUILD_SET_ACHIEVEMENT_TRACKING (12399)
21:52:26 | Warning | WorldSocket | No handler for opcode CMSG_GM_TICKET_GET_CASE_STATUS (13967)
21:52:26 | Warning | WorldSocket | No handler for opcode CMSG_REQUEST_FORCED_REACTIONS (12807)
21:52:27 | Warning | WorldSocket | No handler for opcode CMSG_REQUEST_CEMETERY_LIST (12665)
21:58:06 | Warning | BnetServices | [WorldSocket][127.0.0.1:52214, Account: THORSTEN, Game account: THORSTEN] Client requested service PresenceService/m:3 but this service is not implemented?
22:02:26 | Warning | WorldSocket | No handler for opcode CMSG_GM_TICKET_GET_CASE_STATUS (13967)
22:06:53 | Warning | WorldClient | No handler for opcode SMSG_SPELL_EXECUTE_LOG (588)

1.14 classic

23:43:31 | Warning | WorldSocket | No handler for opcode CMSG_GET_UNDELETE_CHARACTER_COOLDOWN_STATUS (14052)
23:43:31 | Warning | WorldSocket | No handler for opcode CMSG_BATTLE_PAY_GET_PURCHASE_LIST (14018)
23:43:31 | Warning | WorldSocket | No handler for opcode CMSG_BATTLE_PAY_GET_PRODUCT_LIST (14017)
23:43:31 | Warning | WorldSocket | No handler for opcode CMSG_UPDATE_VAS_PURCHASE_STATES (14072)
23:43:31 | Error | AuthClient | Socket Closed By Server
23:43:38 | Warning | WorldSocket | No handler for opcode CMSG_BATTLENET_REQUEST (14074)
23:43:38 | Warning | WorldSocket | No handler for opcode CMSG_GET_ACCOUNT_CHARACTER_LIST (14012)
23:43:38 | Warning | WorldSocket | No handler for opcode CMSG_BATTLE_PAY_GET_PURCHASE_LIST (14018)
23:43:45 | Error | WorldClient | Can't send opcode SMSG_SET_PROFICIENCY (10026) before entering world!
23:43:46 | Error | WorldClient | Can't send opcode SMSG_SET_PROFICIENCY (10026) before entering world!
23:43:46 | Error | WorldClient | Can't send opcode SMSG_SET_PROFICIENCY (10026) before entering world!
23:43:46 | Error | WorldClient | Can't send opcode SMSG_SET_PROFICIENCY (10026) before entering world!
23:43:46 | Error | WorldClient | Can't send opcode SMSG_SET_PROFICIENCY (10026) before entering world!
23:43:46 | Error | WorldClient | Can't send opcode SMSG_LOGIN_VERIFY_WORLD (9626) before entering world!
23:43:46 | Error | WorldClient | Can't send opcode SMSG_WORLD_SERVER_INFO (9644) before entering world!
23:43:46 | Error | WorldClient | Can't send opcode SMSG_SET_ALL_TASK_PROGRESS (10119) before entering world!
23:43:46 | Error | WorldClient | Can't send opcode SMSG_INITIAL_SETUP (9600) before entering world!
23:43:46 | Error | WorldClient | Can't send opcode SMSG_LOAD_CUF_PROFILES (9657) before entering world!
23:43:46 | Warning | WorldClient | No handler for opcode SMSG_SET_REST_START (542)
23:43:46 | Error | WorldClient | Can't send opcode SMSG_BIND_POINT_UPDATE (9597) before entering world!
23:43:46 | Error | WorldClient | Can't send opcode SMSG_SEND_KNOWN_SPELLS (11306) before entering world!
23:43:46 | Error | WorldClient | Can't send opcode SMSG_SEND_UNLEARN_SPELLS (11310) before entering world!
23:43:46 | Error | WorldClient | Can't send opcode SMSG_SEND_SPELL_CHARGES (11309) before entering world!
23:43:46 | Error | WorldClient | Can't send opcode SMSG_INITIALIZE_FACTIONS (10009) before entering world!
23:43:46 | Error | WorldClient | Can't send opcode SMSG_TIME_SYNC_REQUEST (11730) before entering world!
23:43:46 | Error | WorldClient | Can't send opcode SMSG_LOGIN_SET_TIME_SPEED (9986) before entering world!
23:43:46 | Network | WorldSocketManager | Instance socket open.
23:43:47 | Server | WorldSocket | Client has connected to the instance server.
23:43:47 | Warning | WorldSocket | No handler for opcode CMSG_VIOLENCE_LEVEL (12680)
23:43:47 | Warning | WorldSocket | No handler for opcode CMSG_QUEUED_MESSAGES_END (14188)
23:43:47 | Warning | WorldSocket | No handler for opcode CMSG_REQUEST_CATEGORY_COOLDOWNS (12673)
23:43:47 | Warning | WorldSocket | No handler for opcode CMSG_MOVE_INIT_ACTIVE_MOVER_COMPLETE (14914)
23:43:47 | Warning | WorldSocket | No handler for opcode CMSG_LFG_LIST_GET_STATUS (13836)
23:43:47 | Warning | WorldSocket | No handler for opcode CMSG_QUERY_QUEST_COMPLETION_NPCS (12664)
23:43:47 | Warning | WorldSocket | No handler for opcode CMSG_CALENDAR_GET_NUM_PENDING (13948)
23:43:47 | Warning | WorldSocket | No handler for opcode CMSG_REQUEST_FORCED_REACTIONS (12807)
23:43:47 | Warning | WorldSocket | No handler for opcode CMSG_BATTLE_PET_REQUEST_JOURNAL (13861)
23:43:47 | Warning | WorldSocket | No handler for opcode CMSG_QUERY_COUNTDOWN_TIMER (12715)
23:43:48 | Warning | WorldSocket | No handler for opcode CMSG_GUILD_SET_ACHIEVEMENT_TRACKING (12399)
23:43:49 | Warning | WorldSocket | No handler for opcode CMSG_GM_TICKET_GET_CASE_STATUS (13967)
23:43:50 | Warning | WorldSocket | No handler for opcode CMSG_QUERY_QUEST_COMPLETION_NPCS (12664)
23:43:55 | Warning | WorldSocket | No handler for opcode CMSG_REQUEST_CEMETERY_LIST (12665)
23:44:35 | Warning | WorldSocket | No handler for opcode CMSG_QUERY_QUEST_COMPLETION_NPCS (12664)
23:44:39 | Warning | WorldSocket | No handler for opcode CMSG_CLOSE_INTERACTION (13459)
23:45:17 | Warning | WorldSocket | No handler for opcode CMSG_QUERY_QUEST_COMPLETION_NPCS (12664)
23:45:20 | Warning | WorldSocket | No handler for opcode CMSG_CLOSE_INTERACTION (13459)
23:45:53 | Warning | WorldSocket | No handler for opcode CMSG_CLOSE_INTERACTION (13459)
23:48:29 | Warning | WorldSocket | No handler for opcode CMSG_REPORT_CLIENT_VARIABLES (14086)
23:48:29 | Warning | WorldSocket | No handler for opcode CMSG_REPORT_ENABLED_ADDONS (14085)
23:48:29 | Warning | WorldSocket | No handler for opcode CMSG_REPORT_KEYBINDING_EXECUTION_COUNTS (14087)
23:48:29 | Warning | WorldSocket | No handler for opcode CMSG_GET_UNDELETE_CHARACTER_COOLDOWN_STATUS (14052)
23:48:30 | Warning | WorldSo

Telredor elevator

Hey Telredor elevator not working properly with TBC classic. - The horizontal movement happens in the wrong direction.

Support for Wotlk 3.4

Please add support for the latest version of wotlk classic. I have been logging into this repository almost every day since wotlk classic was released to see if there is any movement, sadly there is not. I would love to support the development but I have no C# skills whatsoever.
Is there any other way to support?

InventoryResults do not match

The InventoryResults enum has an Element (29) in HermesProxy / New Client that does not exist in the old clients/servers
This causes inventory results >= 29 to be off by one

The solution should be to increment every InventoryResult by 1, if the InventoryResult we get from the server is 29 or higher.

Game Server
CMaNGOS TBC (But I checked the VMaNGOS source, and the enum does not contain this result either)

Hermes Proxy Version
2022-06-05 3.0.1+41(5a6263e) dirty

QUERY_PET_NAME GetEntry() off by one

Somehow QUERY_PET_NAME is off by one in ClassicEra when a pet is just tamed?
Causing pets to be named "Unknown".

It seems that for all other functions GetEntry() is correct.
Did not test it on TBC.

To reproduce:

  • vMangos
  • .npc tame

TOTP doesn't work (2FA support)

Trying to log in with TOTP enabled always yields "Wrong Username or Password" or unknown account in console output.

Game Server
CMaNGOS TBC

Hermes Proxy Version
3.0.1+41(5a6263e) dirty

Collision height is not recalculated on mount/dismount

On 2.4.3 these calculations were probably done clientside, so there was no need to update collision height for player models.
With 2.5.x the client needs to be told the character's collision height explicitly every time that it changes.

Currently this leads to characters that log in while mounted never fitting through doorframes, even after dismounting, while characters that log in dismounted fitting through any doorframe, even when mounted.

I tend to believe that this is something that requires serverside intervention to get done properly.
CMaNGOS for example already has a GetCollisionHeight() function in Unit.cpp so we can already calculate that value, we just don't seem to be transmitting it yet (because the 2.4.3 client has no such opcode afaik)

We can fake it by hijacking the DISMOUNT and MOUNT CMSG/SMSGs and sending "sensible" default values. This will obviously not be perfect, but it should eliminate some trouble that currently occurs

Random logout through the error in Proxy

WoW Ver: 1.14.0 (40618)
ProxyVersion: The most fresh version from GitHub

I was in party with bot, so ranndomly the game logged out with the output of proxy below

image

Abilities not always showing up

Abilites not always showing up on login and have to relog to fix.

  • theyr not showing up anywhere in spellbook or action bars.

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.