如何在 Ubuntu 18.04 上运行魔兽争霸 3?

tat*_*tsu 5 wine games 18.04

这里的指南:如何安装魔兽世界?已经十年没有工作了。这个问题需要在 ubuntu 18.04.1 和 Wine 开发停止的特定背景下重新回答:

葡萄酒正在经历一些奇怪的转变。Wine 的 staging 分支的维护者最近放弃了它,但 Lutris 项目很快又把它捡起来了。

在您阅读本文时,这可能不是问题,但现在,确实是。因此,主要指南将侧重于 Ubuntu 的最新 vanilla Wine 版本,但您绝对可以在最新的 staging 或 Gallium Nine 版本可用时安装它们。

我认为这个特定的 Ubuntu 版本与过去运行魔兽争霸 3 的解决方案不兼容。

我得到这个屏幕:

冰封王座安装失败:“启动战网代理时遇到问题”

我尝试了很多不同的方法:

  1. 所有三个Lutris 安装程序
  2. 在 Linux 上玩
  3. 本指南专门针对 18.04,带有 wine-staging,但使用此来源:

    sudo apt-add-repository 'deb https://dl.winehq.org/wine-builds/ubuntu/ bionic main'
    
    Run Code Online (Sandbox Code Playgroud)

    和这个WineHQ 帖子

但是在第一个指南的结尾我运行:

wine64 ~/Downloads/Warcraft-III-Setup.exe
Run Code Online (Sandbox Code Playgroud)

这很突出:

0103:fixme:wininet:InternetSetOptionW Option 77 STUB
Run Code Online (Sandbox Code Playgroud)

我再次看到屏幕:

t@tsu:~/Downloads$ wine64 ~/Downloads/Warcraft-III-Setup.exe 
000b:fixme:winediag:start_process Wine Staging 3.18 is a testing version containing experimental patches.
000b:fixme:winediag:start_process Please mention your exact version when filing bug reports on winehq.org.
ERROR: ld.so: object '/usr/lib/x86_64-linux-gnu/libnss3.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
002b:fixme:thread:RtlCreateUserThread stack_commit != 0 is unimplemented
002b:fixme:thread:RtlCreateUserThread stack_commit != 0 is unimplemented
002d:fixme:ver:GetCurrentPackageId (0xbcfe9c (nil)): stub
002b:fixme:thread:RtlCreateUserThread stack_commit != 0 is unimplemented
002b:fixme:thread:RtlCreateUserThread stack_commit != 0 is unimplemented
002b:fixme:thread:RtlCreateUserThread stack_commit != 0 is unimplemented
002b:fixme:thread:RtlCreateUserThread stack_commit != 0 is unimplemented
0033:fixme:winhttp:get_system_proxy_autoconfig_url no support on this platform
0033:fixme:winhttp:WinHttpDetectAutoProxyConfigUrl discovery via DHCP not supported
ERROR: ld.so: object '/usr/lib/x86_64-linux-gnu/libnss3.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
0037:fixme:thread:RtlCreateUserThread stack_commit != 0 is unimplemented
0037:fixme:thread:RtlCreateUserThread stack_commit != 0 is unimplemented
0039:fixme:ver:GetCurrentPackageId (0xbcfe9c (nil)): stub
0037:fixme:thread:RtlCreateUserThread stack_commit != 0 is unimplemented
0037:fixme:thread:RtlCreateUserThread stack_commit != 0 is unimplemented
0037:fixme:thread:RtlCreateUserThread stack_commit != 0 is unimplemented
0037:fixme:thread:RtlCreateUserThread stack_commit != 0 is unimplemented
003f:fixme:winhttp:get_system_proxy_autoconfig_url no support on this platform
003f:fixme:winhttp:WinHttpDetectAutoProxyConfigUrl discovery via DHCP not supported
ERROR: ld.so: object '/usr/lib/x86_64-linux-gnu/libnss3.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
<html><head><title>Object moved</title></head><body>
<h2>Object moved to <a href="http://www.blizzard.com/404">here</a>.</h2>
</body></html>
003f:fixme:wininet:InternetSetOptionW Option 77 STUB
0046:err:wininet:open_http_connection create_netconn failed: 12029
0044:err:ole:CoCreateInstanceEx apartment not initialised
0044:err:ntdll:NtQueryInformationToken Unhandled Token Information class 24!
ERROR: ld.so: object '/usr/lib/x86_64-linux-gnu/libnss3.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
0044:fixme:ver:GetCurrentPackageId (0x33fe14 (nil)): stub
ERROR: ld.so: object '/usr/lib/x86_64-linux-gnu/libnss3.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
003f:fixme:wininet:InternetSetOptionW Option 77 STUB
0047:err:wininet:open_http_connection create_netconn failed: 12029
003f:fixme:wininet:InternetSetOptionW Option 77 STUB
0046:err:wininet:open_http_connection create_netconn failed: 12029
<html><head><title>Object moved</title></head><body>
<h2>Object moved to <a href="http://www.blizzard.com/404">here</a>.</h2>
</body></html>
003f:fixme:wininet:InternetSetOptionW Option 77 STUB
0047:err:wininet:open_http_connection create_netconn failed: 12029
004a:fixme:wbemprox:wbem_locator_ConnectServer unsupported flags
004a:fixme:wbemprox:client_security_SetBlanket 0x7c81f938, 0x181ad8, 10, 0, (null), 3, 3, (nil), 0x00000000
004a:fixme:wbemprox:client_security_Release 0x7c81f938
004a:fixme:wbemprox:enum_class_object_Next timeout not supported
004a:err:ntdll:NtQueryInformationToken Unhandled Token Information class 24!
004a:fixme:thread:RtlCreateUserThread stack_reserve != 0 is unimplemented
004a:fixme:thread:RtlCreateUserThread stack_commit != 0 is unimplemented
004a:fixme:thread:RtlCreateUserThread stack_commit != 0 is unimplemented
0050:fixme:ver:GetCurrentPackageId (0x1c5fe9c (nil)): stub
004a:fixme:thread:RtlCreateUserThread stack_commit != 0 is unimplemented
004a:fixme:thread:RtlCreateUserThread stack_commit != 0 is unimplemented
003f:fixme:wininet:InternetSetOptionW Option 77 STUB
0046:err:wininet:open_http_connection create_netconn failed: 12029
003f:fixme:wininet:InternetSetOptionW Option 77 STUB
0047:err:wininet:open_http_connection create_netconn failed: 12029
<html><head><title>Object moved</title></head><body>
<h2>Object moved to <a href="http://www.blizzard.com/404">here</a>.</h2>
</body></html>
t@tsu:~/Downloads$ 003f:fixme:wininet:InternetSetOptionW Option 77 STUB
0046:err:wininet:open_http_connection create_netconn failed: 12029
003f:fixme:wininet:InternetSetOptionW Option 77 STUB
0047:err:wininet:open_http_connection create_netconn failed: 12029
004a:fixme:heap:GetPhysicallyInstalledSystemMemory stub: 0x33f9c0
003f:fixme:wininet:InternetSetOptionW Option 77 STUB
004a:fixme:heap:GetPhysicallyInstalledSystemMemory stub: 0x33f7b8
004a:fixme:thread:RtlCreateUserThread stack_commit != 0 is unimplemented
004a:fixme:thread:RtlCreateUserThread stack_commit != 0 is unimplemented
004a:fixme:thread:RtlCreateUserThread stack_commit != 0 is unimplemented
004a:fixme:thread:RtlCreateUserThread stack_commit != 0 is unimplemented
004a:fixme:thread:RtlCreateUserThread stack_commit != 0 is unimplemented
004a:fixme:thread:RtlCreateUserThread stack_commit != 0 is unimplemented
004a:fixme:thread:RtlCreateUserThread stack_commit != 0 is unimplemented
004a:fixme:thread:RtlCreateUserThread stack_commit != 0 is unimplemented
004a:fixme:thread:RtlCreateUserThread stack_commit != 0 is unimplemented
004a:fixme:thread:RtlCreateUserThread stack_commit != 0 is unimplemented
004a:fixme:thread:RtlCreateUserThread stack_commit != 0 is unimplemented
004a:fixme:thread:RtlCreateUserThread stack_commit != 0 is unimplemented
004a:fixme:thread:RtlCreateUserThread stack_commit != 0 is unimplemented
004a:fixme:thread:RtlCreateUserThread stack_commit != 0 is unimplemented
004a:fixme:thread:RtlCreateUserThread stack_commit != 0 is unimplemented
004a:fixme:thread:RtlCreateUserThread stack_commit != 0 is unimplemented
004a:fixme:thread:RtlCreateUserThread stack_commit != 0 is unimplemented
004a:fixme:thread:RtlCreateUserThread stack_commit != 0 is unimplemented
004a:fixme:thread:RtlCreateUserThread stack_commit != 0 is unimplemented
0052:fixme:winhttp:get_system_proxy_autoconfig_url no support on this platform
0052:fixme:winhttp:WinHttpDetectAutoProxyConfigUrl discovery via DHCP not supported
004a:fixme:ole:CoInitializeSecurity ((nil),-1,(nil),(nil),0,3,(nil),0,(nil)) - stub!
004a:fixme:wbemprox:client_security_SetBlanket 0x7c81f938, 0x21fbc0, 10, 0, (null), 3, 3, (nil), 0x00000000
004a:fixme:wbemprox:client_security_Release 0x7c81f938
004e:fixme:dbghelp:elf_search_auxv can't find symbol in module
ERROR: ld.so: object '/usr/lib/x86_64-linux-gnu/libnss3.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
0068:fixme:heap:GetPhysicallyInstalledSystemMemory stub: 0x33f278
0068:fixme:heap:GetPhysicallyInstalledSystemMemory stub: 0x33f278
0068:fixme:ntdll:NtQuerySystemInformationEx Relationship filtering not implemented: 0x3
0068:fixme:ntdll:NtQuerySystemInformationEx Relationship filtering not implemented: 0x3
0068:fixme:ver:GetCurrentPackageId (0x33f01c (nil)): stub
0068:fixme:winhttp:get_system_proxy_autoconfig_url no support on this platform
0068:fixme:winhttp:WinHttpDetectAutoProxyConfigUrl discovery via DHCP not supported
0042:err:ntdll:RtlpWaitForCriticalSection section 0x196c5c "?" wait timed out in thread 0042, blocked by 003f, retrying (60 sec)
ERROR: ld.so: object '/usr/lib/x86_64-linux-gnu/libnss3.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
0042:fixme:wininet:InternetSetOptionW Option 77 STUB
0070:err:wininet:open_http_connection create_netconn failed: 12029
006e:err:ole:CoCreateInstanceEx apartment not initialised
006e:err:ntdll:NtQueryInformationToken Unhandled Token Information class 24!
ERROR: ld.so: object '/usr/lib/x86_64-linux-gnu/libnss3.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
006e:fixme:ver:GetCurrentPackageId (0x33fe14 (nil)): stub
ERROR: ld.so: object '/usr/lib/x86_64-linux-gnu/libnss3.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
0042:fixme:wininet:InternetSetOptionW Option 77 STUB
0071:err:wininet:open_http_connection create_netconn failed: 12029
0042:fixme:wininet:InternetSetOptionW Option 77 STUB
0070:err:wininet:open_http_connection create_netconn failed: 12029
0042:fixme:wininet:InternetSetOptionW Option 77 STUB
0071:err:wininet:open_http_connection create_netconn failed: 12029
0042:fixme:wininet:InternetSetOptionW Option 77 STUB
0070:err:wininet:open_http_connection create_netconn failed: 12029
0073:fixme:wbemprox:wbem_locator_ConnectServer unsupported flags
0073:fixme:wbemprox:client_security_SetBlanket 0x7c7f4938, 0x181ad8, 10, 0, (null), 3, 3, (nil), 0x00000000
0073:fixme:wbemprox:client_security_Release 0x7c7f4938
0073:fixme:wbemprox:enum_class_object_Next timeout not supported
0073:err:ntdll:NtQueryInformationToken Unhandled Token Information class 24!
0073:fixme:thread:RtlCreateUserThread stack_reserve != 0 is unimplemented
0073:fixme:thread:RtlCreateUserThread stack_commit != 0 is unimplemented
0073:fixme:thread:RtlCreateUserThread stack_commit != 0 is unimplemented
0079:fixme:ver:GetCurrentPackageId (0x1c5fe9c (nil)): stub
0073:fixme:thread:RtlCreateUserThread stack_commit != 0 is unimplemented
0073:fixme:thread:RtlCreateUserThread stack_commit != 0 is unimplemented
0042:fixme:wininet:InternetSetOptionW Option 77 STUB
0071:err:wininet:open_http_connection create_netconn failed: 12029
0042:fixme:wininet:InternetSetOptionW Option 77 STUB
0070:err:wininet:open_http_connection create_netconn failed: 12029
0042:fixme:wininet:InternetSetOptionW Option 77 STUB
0071:err:wininet:open_http_connection create_netconn failed: 12029
0042:fixme:wininet:InternetSetOptionW Option 77 STUB
0070:err:wininet:open_http_connection create_netconn failed: 12029
0042:fixme:wininet:InternetSetOptionW Option 77 STUB
0071:err:wininet:open_http_connection create_netconn failed: 12029
0073:fixme:heap:GetPhysicallyInstalledSystemMemory stub: 0x33f9c0
0042:fixme:wininet:InternetSetOptionW Option 77 STUB
0070:err:wininet:open_http_connection create_netconn failed: 12029
0073:fixme:heap:GetPhysicallyInstalledSystemMemory stub: 0x33f7b8
0073:fixme:thread:RtlCreateUserThread stack_commit != 0 is unimplemented
0073:fixme:thread:RtlCreateUserThread stack_commit != 0 is unimplemented
0073:fixme:thread:RtlCreateUserThread stack_commit != 0 is unimplemented
0073:fixme:thread:RtlCreateUserThread stack_commit != 0 is unimplemented
0073:fixme:thread:RtlCreateUserThread stack_commit != 0 is unimplemented
0073:fixme:thread:RtlCreateUserThread stack_commit != 0 is unimplemented
0073:fixme:thread:RtlCreateUserThread stack_commit != 0 is unimplemented
0073:fixme:thread:RtlCreateUserThread stack_commit != 0 is unimplemented
0073:fixme:thread:RtlCreateUserThread stack_commit != 0 is unimplemented
0073:fixme:thread:RtlCreateUserThread stack_commit != 0 is unimplemented
0073:fixme:thread:RtlCreateUserThread stack_commit != 0 is unimplemented
0073:fixme:thread:RtlCreateUserThread stack_commit != 0 is unimplemented
0073:fixme:thread:RtlCreateUserThread stack_commit != 0 is unimplemented
0073:fixme:thread:RtlCreateUserThread stack_commit != 0 is unimplemented
0073:fixme:thread:RtlCreateUserThread stack_commit != 0 is unimplemented
0042:fixme:wininet:InternetSetOptionW Option 77 STUB
0073:fixme:thread:RtlCreateUserThread stack_commit != 0 is unimplemented
0073:fixme:thread:RtlCreateUserThread stack_commit != 0 is unimplemented
0073:fixme:thread:RtlCreateUserThread stack_commit != 0 is unimplemented
0073:fixme:thread:RtlCreateUserThread stack_commit != 0 is unimplemented
007b:fixme:winhttp:get_system_proxy_autoconfig_url no support on this platform
007b:fixme:winhttp:WinHttpDetectAutoProxyConfigUrl discovery via DHCP not supported
0073:fixme:ole:CoInitializeSecurity ((nil),-1,(nil),(nil),0,3,(nil),0,(nil)) - stub!
0073:fixme:wbemprox:client_security_SetBlanket 0x7c7f4938, 0x21e370, 10, 0, (null), 3, 3, (nil), 0x00000000
0073:fixme:wbemprox:client_security_Release 0x7c7f4938
0077:fixme:dbghelp:elf_search_auxv can't find symbol in module
ERROR: ld.so: object '/usr/lib/x86_64-linux-gnu/libnss3.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
0091:fixme:heap:GetPhysicallyInstalledSystemMemory stub: 0x33f278
0091:fixme:heap:GetPhysicallyInstalledSystemMemory stub: 0x33f278
0091:fixme:ntdll:NtQuerySystemInformationEx Relationship filtering not implemented: 0x3
0091:fixme:ntdll:NtQuerySystemInformationEx Relationship filtering not implemented: 0x3
0091:fixme:ver:GetCurrentPackageId (0x33f01c (nil)): stub
0091:fixme:winhttp:get_system_proxy_autoconfig_url no support on this platform
0091:fixme:winhttp:WinHttpDetectAutoProxyConfigUrl discovery via DHCP not supported
Run Code Online (Sandbox Code Playgroud)

Ale*_*ant 3

我遇到了同样的问题:相同的 Ubuntu 版本,相同的尝试,相同的一切;我快要疯了。我已经在 Windows 机器上安装了游戏,压缩游戏文件夹并将其移动到我的 Linux 上。

我发现,不知何故,war3 LAUNCHER 比安装游戏的设置效果更好。

你仍然需要一个密钥才能使用游戏,所以我不在乎给出 exe

它与 staging-pba-3.18 对我来说完美配合,你必须告诉我这是否适合你。


编辑:

在线应该没问题,你需要一个魔兽争霸3“battle.net”帐户,你可以在游戏中创建,主要担心暴雪反作弊不喜欢酒,但是很多人,包括我自己,都在玩SC2和守望先锋在wine上有一段时间了,而暴雪似乎并不关心,所以我不明白他们为什么会关心War3。

我不了解 LAN,也无法真正测试它......

对于解决方案,这真的很有趣,因为这不是 Linux 错误,自从补丁 1.30 以来,有些人在 Windows 上也遇到了这个问题:D
两个可能的修复是:

  • 启动游戏时使用该-nativefullscr参数(它对我不起作用,我的显卡在游戏启动后不会输出任何内容,我的屏幕表现得好像已断开连接)。

  • 编辑 wine 注册表以强制启动解决方案,虽然感觉有点黑客风格,但效果确实很好。键已输入HKEY_CURRENT_USER/Software/Blizzard Entertainment/Warcraft III/Video,您想要更改resheight屏幕reswidth大小,值以十六进制表示,但输入窗口应该允许您输入十进制值

请注意,虽然游戏将以您想要的分辨率和宽高比渲染,但菜单将保留在 4/3