zoukankan      html  css  js  c++  java
  • 炉石兄弟更新修复记录(至2020年11月)

    修复基于大神beebee102发出的版本,来源 Chuck Lu的博客园

    修复时间为2020年11月,按照顺序修复。

    1. 修复mono.dll -> mono-2.0-bdwgc.dll

    现象/错误提示

    炉石兄弟与炉石传说一起闪退

    来源

    1. wjhwjhn 的博客中的《2020-05-16 记录对炉石兄弟的修复》

      原文章被整理合并进《炉石兄弟DIY汇总》中

    网址: http://blog.wjhwjhn.com/index.php/archives/18/

    2. 《2020-05-16 记录对炉石兄弟的修复》下方评论(hanling1015)

      简单提到两个 + 12 改为 + 8
      原文章被合并,评论丢失

    3. maxiori 的帖子《发几张截图,懂的自然懂》

    网址:http://tieba.baidu.com/p/6684018294

    具体修复

    1. ns27 - Class276

    原来

    			this.intptr_0 = this.method_18("mono.dll");
    			this.intptr_31 = this.intptr_0 + 522030;
    			this.intptr_28 = this.intptr_0 + 91559;
    			this.intptr_13 = this.intptr_0 + 226176;
    			this.intptr_16 = this.intptr_0 + 91615;
    			this.intptr_6 = this.intptr_0 + 78677;
    			this.intptr_1 = this.intptr_0 + 102855;
    			this.intptr_15 = this.intptr_0 + 230512;
    			this.intptr_14 = this.intptr_0 + 224970;
    			this.intptr_7 = this.intptr_0 + 73617;
    			this.intptr_19 = this.intptr_0 + 120353;
    			this.intptr_29 = this.intptr_0 + 162866;
    			this.intptr_17 = this.intptr_0 + 525190;
    			this.intptr_25 = this.intptr_0 + 389455;
    			this.intptr_24 = this.intptr_0 + 385464;
    			this.intptr_32 = this.intptr_0 + 389677;
    			this.intptr_34 = this.intptr_0 + 384279;
    			this.intptr_36 = this.intptr_0 + 382675;
    			this.intptr_35 = this.intptr_0 + 91327;
    			this.intptr_23 = this.intptr_0 + 428289;
    			this.intptr_33 = this.intptr_0 + 378912;
    			this.intptr_27 = this.intptr_0 + 515937;
    			this.intptr_12 = this.intptr_0 + 176417;
    			this.intptr_10 = this.intptr_0 + 176976;
    			this.intptr_4 = this.intptr_0 + 77237;
    			this.intptr_8 = this.intptr_0 + 107261;
    			this.intptr_21 = this.intptr_0 + 231261;
    			this.intptr_18 = this.intptr_0 + 522401;
    			this.intptr_5 = this.intptr_0 + 733279;
    			this.intptr_30 = this.intptr_0 + 91701;
    			this.intptr_2 = this.intptr_0 + 733427;
    			this.intptr_9 = this.intptr_0 + 162872;
    			this.intptr_3 = this.intptr_0 + 91604;
    			this.intptr_26 = this.intptr_0 + 383139;
    			this.intptr_22 = this.intptr_0 + 385556;
    			this.intptr_20 = this.intptr_0 + 91570;
    			this.intptr_11 = this.intptr_0 + 401933;
    

    修改为

    			this.intptr_0 = this.method_18("mono-2.0-bdwgc.dll");
    			this.intptr_1 = this.intptr_0 + 199840;
    			this.intptr_2 = this.intptr_0 + 203968;
    			this.intptr_3 = this.intptr_0 + 203984;
    			this.intptr_4 = this.intptr_0 + 166304;
    			this.intptr_5 = this.intptr_0 + 204000;
    			this.intptr_6 = this.intptr_0 + 175328;
    			this.intptr_7 = this.intptr_0 + 168320;
    			this.intptr_8 = this.intptr_0 + 202016;
    			this.intptr_9 = this.intptr_0 + 154816;
    			this.intptr_10 = this.intptr_0 + 974896;
    			this.intptr_11 = this.intptr_0 + 636272;
    			this.intptr_12 = this.intptr_0 + 975808;
    			this.intptr_13 = this.intptr_0 + 379920;
    			this.intptr_14 = this.intptr_0 + 376208;
    			this.intptr_15 = this.intptr_0 + 403952;
    			this.intptr_16 = this.intptr_0 + 204960;
    			this.intptr_17 = this.intptr_0 + 526647;
    			this.intptr_18 = this.intptr_0 + 731120;
    			this.intptr_19 = this.intptr_0 + 203856;
    			this.intptr_20 = this.intptr_0 + 204080;
    			this.intptr_21 = this.intptr_0 + 232912;
    			this.intptr_22 = this.intptr_0 + 647472;
    			this.intptr_23 = this.intptr_0 + 864192;
    			this.intptr_24 = this.intptr_0 + 644320;
    			this.intptr_25 = this.intptr_0 + 656512;
    			this.intptr_26 = this.intptr_0 + 652128;
    			this.intptr_27 = this.intptr_0 + 730864;
    			this.intptr_28 = this.intptr_0 + 204176;
    			this.intptr_29 = this.intptr_0 + 155712;
    			this.intptr_30 = this.intptr_0 + 232880;
    			this.intptr_31 = this.intptr_0 + 729376;
    			this.intptr_32 = this.intptr_0 + 657968;
    			this.intptr_33 = this.intptr_0 + 658720;
    			this.intptr_34 = this.intptr_0 + 627408;
    			this.intptr_35 = this.intptr_0 + 189456;
    			this.intptr_36 = this.intptr_0 + 644448;
    
    1. ns27 - Class276 - method_31

    IntPtr pointer = intPtr + 12;+ 12 修改为 +8

    1. ns27 - Class276 - method_32

    IntPtr pointer = intPtr2 + 12;+ 12 修改为 +8

    2. 去除正版检测

    现象/错误提示

    The current process file does not match the expected process file. Please reinstall Hearthbuddy.

    来源

    Chuck(霜之咏叹调99) 的博客园《HearthBuddy 第一次调试》

    网址:https://www.cnblogs.com/chucklu/p/11179300.html

    具体修复

    找到主程序入口,在HearthBuddy下面的APP文件中搜索,找到如下代码。把这个检查直接去掉

    if (!first.SequenceEqual(second))
    {
    App.ilog_0.Error("The current process file does not match the expected process file. Please reinstall Hearthbuddy.");
    Logger.OpenLogFile();
    base.Shutdown(1);
    return;
    }

    移除代码之后,尝试编译发现报错,是因为变量的名字不符合C#的规范导致的

    右键选中字段,然后Edit Field,把<>9改成Instance9。<>9_5_0改为Instance9_5_0

    3.修复Network.m_lastGameServerInfo

    现象/错误提示

    [Tick] Exception during execution:System.MissingFieldException: Field 'Network.m_lastGameServerInfo' not found.

    来源

    Chuck 的github (https://github.com/ChuckHearthstone/SilverFish) 中的Issues (ghotm)

    网址:https://github.com/ChuckHearthstone/SilverFish/issues/40

    具体修复

    原来

    // Triton.Game.Mapping.Network
    		public GameServerInfo m_lastGameServerInfo
    		{
    			get
    			{
    				return base.method_3<GameServerInfo>("m_lastGameServerInfo");
    			}
    		}
    

    修改为

    // Triton.Game.Mapping.Network
    		public GameServerInfo m_lastGameServerInfo
    		{
    			get
    			{
    				return base.method_14<GameServerInfo>("GetLastGameServerJoined", Array.Empty<object>());
    			}
    		}
    

    4. 修复CollectionDeckBoxVisual.IsValid

    现象/错误提示

    System.MissingMethodException: Method 'CollectionDeckBoxVisual.IsValid' not found.

    来源

    Chuck 的博客园《HearthBuddy炉石兄弟 Method 'CollectionDeckBoxVisual.IsValid' not found.》

    网址:https://www.cnblogs.com/chucklu/p/11183453.html

    具体修复

    处理思路是,把HearthBuddy里面的IsValid改为IsValidForCurrentMode【注意这里最后是mode不是model】

    原来

    		//Triton.Game.Mapping.CollectionDeckBoxVisual
    		public bool IsValid()
    		{
    			return base.method_11<bool>("IsValid", Array.Empty<object>());
    		}
    

    修改为

    		//Triton.Game.Mapping.CollectionDeckBoxVisual
    		public bool IsValid()
    		{
    			return base.method_11<bool>("IsValidForCurrentMode", Array.Empty<object>());
    		}
    

    5. 修复选不中对战模式、卡组

    现象/错误提示

    [TournamentScene_DeckPicker] The client has been detected to be in a broken state. Please restart it as soon as possible as it cannot leave the current scene.

    选不中对战模式、卡组

    来源

    hanling1015 在群中的帮助

    具体修复

    搜字符串 UnityEngine.dll 改为 UnityEngine.CoreModule.dll

    位置:Triton.Game.TritonHs

    (需要先修改不规范变量名,参考“修复2”)

    6. 修复收藏界面报错

    现象/错误提示

    System.MissingMethodException: Method 'CollectionManager.GetTaggedDeck' not found.

    收藏界面报错

    具体修复

    原来

    //Triton.Game.Mapping.CollectionManager
    		public CollectionDeck GetTaggedDeck(CollectionManager.DeckTag tag)
    		{
    			return base.method_14<CollectionDeck>("GetTaggedDeck", new object[]
    			{
    				tag
    			});
    		}
    

    修改为

    //Triton.Game.Mapping.CollectionManager
    		public CollectionDeck GetTaggedDeck(CollectionManager.DeckTag tag)
    		{
    			return base.method_14<CollectionDeck>("GetEditedDeck", Array.Empty<object>());
    		}
    	}
    

    7. 修复点击开始对战卡死/狂野和休闲模式来回切换

    现象/错误提示

    GreyMagic.InjectionDesyncException: Process must have frozen or gotten out of sync: Injection Finished Event was never fired

    点击开始对战卡死

    或者狂野和休闲模式来回切换

    来源

    与 铁甲依然在 的聊天

    具体修复

    1. Triton.Bot.Logic.DefaultBot

    搜索 IN_RANKED_PLAY_MODEIN_RANKED_PLAY_MODE 右键编辑IL指令,修改对应option数值

    1. Triton.Game.Mapping.Option

    搜索 IN_RANKED_PLAY_MODEIN_RANKED_PLAY_MODE 右键编辑字段,修改对应option数值

    最新option数值在炉石的Assembly-CSharp.dll中找

    可以用反射一劳永逸,不过已经是后来大家想出来的办法。这里只讲修复,而且这也是之前一直以来都修复方式。所以暂且不提。

    8. 修复UberText.m_TextMeshGameObject

    现象/错误提示

    System.MissingFieldException: Field 'UberText.m_TextMeshGameObject' not found.

    来源

    Chuck 的github (https://github.com/ChuckHearthstone/SilverFish) 中的Issues (Dustsc)

    网址:https://github.com/ChuckHearthstone/SilverFish/issues/43

    具体修复

    1. 添加类

      using ns26;
      using ns27;
      using System;
      using System.Collections.Generic;
      using Triton.Game.Mono;
      using System.Runtime.InteropServices;
      
      namespace Triton.Game.Mapping
      {
      	[Attribute38("UberTextRendering")]
      	public class UberTextRendering : MonoBehaviour
      	{
      		public UberTextRendering(IntPtr address, string className)
      				: base(address, className)
      		{
      		}
      
      		public UberTextRendering(IntPtr address)
      			: this(address, "UberTextRendering")
      		{
      		}
      		
      		public GameObject m_textMeshGameObject => method_3<GameObject>("m_textMeshGameObject");
      	}
      }
      

      添加后编译

    2. 编辑类 Triton.Game.Mapping.UberText
      原来

      //Triton.Game.Mapping.UberText
      		public GameObject m_TextMeshGameObject
      		{
      			get
      			{
      				return base.method_3<GameObject>("m_TextMeshGameObject");
      			}
      		}
      

      修改为

      //Triton.Game.Mapping.UberText
      		public UberTextRendering m_UberTextRendering => method_3<UberTextRendering>("m_UberTextRendering");
      		
      		public GameObject m_TextMeshGameObject => m_UberTextRendering.m_textMeshGameObject;
      

    9. 留牌界面报错

    现象/错误提示

    System.MissingMethodException: Method 'Entity.GetRace' not found.

    来源

    Chuck 的博客园《HearthBuddy炉石兄弟 Method 'Entity.GetRace' not found.》

    网址:https://www.cnblogs.com/chucklu/p/11378719.html

    具体修复

  • 相关阅读:
    详解java并发原子类AtomicInteger(基于jdk1.8源码分析)
    可见性、原子性和有序性
    Django基础之简单的前后端交互
    JDK1.8新特性之(三)--函数式接口
    JDK1.8新特性之(一)--Lambda表达式
    JDK1.8新特性之(二)--方法引用
    在IDEA创建类时自动创建作者日期等信息设定
    用batch调用DB2 CLPPlus执行多个SQL文
    windows7 设定开关机事件
    Mybatis显示修改数据库成功,数据库却没有修改
  • 原文地址:https://www.cnblogs.com/varc/p/14777947.html
Copyright © 2011-2022 走看看