Yet another new version =)
Closed this issue · 7 comments
Hi yangyuan!
The current Hearthrock version is not up to date with the latest Hearthstone version. I lack the knowledge of updating the Hearthrock version myself and would greatly appreciate an update!
Cheers and thanks for an awesome work.
Hello,
Although I do not know the project well enough to guarantee that this fix has no weird behaviors, I have been able to successfully patch Hearthstone version 13.0.3.28329 by updating the pegasus.json file (found in the release zip 0.6.0) with the following values:
{ "checksum": "4137629A103C800246890911106F97412582FE8B", "version": "13.0.3.28329" }
you did fine, but you also need this new dlls, I decrypted 'em for you
you can just build client project, go to "~hearthrock\src\Hearthrock.Client\bin\Debug"
and replace with this:
it'll be help until new version hsrock will be delivered
also, you can just replace with this Managed.zip in "~Blizzard\Hearthstone\Hearthstone_Data\Managed"
it's already patched new version
Hello @AiSatan, thank you for the clarifications. I have some questions regarding the DLLs:
- why aren't they included in the github source code?
- where do they come from?
My current understanding is that they're decompiled game files -> extended with hearthrock's logic -> recompiled. Is this correct? I'm asking because I would like to find out more about the capabilities of the bot engine. Please let me know if there are some resources where I can learn more about this (I tried reading through the issues but the information is kind of fragmented).
Thank you.
Hi, @v-secure
why aren't they included in the github source code?
I believe it's because dlls is not "source code" and it's easier to deliver/update through nuget.
where do they come from?
this dlls from "~\Blizzard\Hearthstone\Hearthstone_Data\Managed", you can find them and use instead of nuget, but 'cause they (blizzard) start encrypt Assembly-CSharp.dll (#31), you'll need this code to decrypt it:
https://gist.github.com/yangyuan/14444ccbc08517f64b31cf24165fccf2
My current understanding is that they're decompiled game files -> extended with hearthrock's logic -> recompiled. Is this correct?
I think you are right, but to be clear:
- decrypt Assembly-CSharp.dll
- patch Assembly-CSharp.dll with this code (it'll be add Hearthrock.dll to references, and call it before/after some methods):
https://github.com/yangyuan/hearthrock/blob/master/src/Hearthrock.Client/Hacking/MonoCecilExtensions.cs - replace original Assembly-CSharp.dll with patched version
well, bot engine can do anything that Assembly-CSharp.dll contain, if you need something new, for example, "bool IsMinionFrozen", you can easily add this here: https://github.com/yangyuan/hearthrock/blob/master/src/Hearthrock/Pegasus/Internal/RockPegasusSnapshotHelper.cs and re-patch Assembly-CSharp.dll
I think, best way to learn (if you don't work for blizzard, I believe that they have some manual) it's use engine's source code: https://github.com/yangyuan/hearthrock/tree/master/src/Hearthrock
I also updated my Fork
https://github.com/AiSatan/hearthrock
The different here, that I use my own nuget https://www.nuget.org/packages/Hearthrock.RedStone
you can use my Fork, or just replace nuget in this project with mine and update pegasus.json file (https://github.com/AiSatan/hearthrock/blob/master/src/Hearthrock.Client/pegasus.json):
{ "checksum": "4137629A103C800246890911106F97412582FE8B", "version": "13.0.3.28329" }
Please, check both repositories if you'll looking for new version