Giter VIP home page Giter VIP logo

mercenaries's Introduction

Author: Pik4; Original Author: zyz2000(ABC)

基于BepInEx开发的炉石传说佣兵战纪插件,需要和HsMod搭配使用。

免责声明

使用辅助进行游戏的行为违反了暴雪用户协议 1.C.ii.2 使用机器人程序软件(BOT): 任何未经暴雪和/或运营方明确授权,允许自动控制游戏,服务器和/或任何组件或其功能的的代码或/和软件,如自动操控游戏中的角色;因此根据协议,暴雪和/或运营方可以暂停、撤销或终止您使用本平台或本平台的部分功能或组成部分的许可。 本项目仅用作C#的学习研究,由于使用该项目导致账号被封禁,本人不承担任何责任。如果该插件的开源分享行为损害了暴雪/运营方的利益,请联系我停止更新/删库,我会全力配合。

问题处理

如果有问题请提交Issues。

加入该项目

当您的第一个PR通过后,我会邀请您加入该项目,成为collaborator。

文件、目录说明

MercenariesHelper.sln 主程序解决方案

strategy.sln 策略解决方案

binaryFile 预编译的主程序以及策略文件

binaryFile/HsMod.dll HsMod,挂机核心组件,用于提升挂机质量。

teamConifg 一些策略,目前主要用作PVP(PVE也可使用)

zyz2000-mercenary 原始项目

编译说明

  1. 安装Visual Studio,安装C#相关功能。
  2. 打开MercenariesHelper.sln,添加引用,尝试编译,直到报错不缺引用(智能提示不提示using)为止。
  3. 编译strategy.sln,编译策略时需要MercenariesHelper.dll,故2、3顺序固定。

注:引用优先在Bepinex\unstripped_corlib,其次在%PROGRAMFILES(x86)%\Hearthstone\Hearthstone_Data\Managed中查找。结合MercenariesHelper.csproj分析即可。

如果不想使用HsMod.dll,需要将MercenariesHelper.csBuild4Public 的值设置为true再进行编译。

安装说明

  1. 分别编译MercenariesHelperstrategy
  2. 配置BepInEx,该部分可以参考这里。 2.1. 下载BepInEx_x86,并将其解压到炉石根目录Hearthstone\下。 2.2. 创建一个目录Hearthstone\BepInEx\unstripped_corlib\;下载MonoUnity,并将其解压在该目录。 2.3. 修改Hearthstone\doorstop_config.ini,将dllSearchPathOverride= 替换成dllSearchPathOverride=BepInEx\unstripped_corlib
  3. 安装BepInEx配置管理BepInExConfigManager.Mono,解压到Hearthstone\BepInEx\即可;进入游戏后F5进行相关控制。
  4. 将编译好的两个dll文件,以及HsMod.dll,存放在Hearthstone\BepInEx\plugins即可。

使用说明

  1. 进入游戏后按下F5,找到佣兵挂机插件进行配置(需要点击保存,或者修改BepInExConfigManagerAutoSave)。注:策略要带上.dll,空策略为任务策略。
  2. 按下F9开始挂机。
  3. 当按下F10时,会列出当前你的佣兵队伍以及所有关卡ID。并打开Config目录。此时,你可以修改创建MercenaryTeam.cfg(该文件会在加载strategy.dll后,在战斗界面自行创建,创建策略的是王冰冰),并根据模板自行修改即可。

策略说明

  1. 行前缀#+->~分别代表注释、优先技能、排除上场、优先攻击、联动技能。
  2. 当没有行前缀时,则按顺序加入佣兵策略,上场顺序与该策略一致。
  3. 策略说明:以-作为分割符,分割每一个功能块,除佣兵名称、技能顺序、技能指向之外,其他参数均为可选。详细可参考默认配置。
  4. 火焰龙.dll(火焰队PVE策略,成分为:巴琳达、迦顿、拉格纳罗斯、希奈丝特拉、珑心、奥妮克希亚)

binaryFile/P.HsMod.ShowInfo.dll

HsMod(HearthStoneModify)的WebServer部分,用于显示任务、收藏、开包情况、佣兵养成进度、游戏常量等信息,需要放在BepInEx\plugins目录下。默认端口为58744(炉石九键),运行游戏后访问http://ip:port/即可,如果在云服务器上,则可能需要放通该端口。游戏内按下F4可用于重启该服务。

HsMod(HearthStoneModify)一个基于BepInEx功能多样的炉石插件。挂机时,需要手动设置AFK模式。

TODO

等个有缘人来完善。

  1. 代码重构(特别是主程序代码重构、策略合并进入主程序),修复各类延迟(添加sleep函数)。
  2. 代码优化(优化程序执行逻辑、提高执行效率)。
  3. 增加技能循环执行。
  4. 增加技能不释放。
  5. 优化技能抉择。(当前为执行抉择技能最后一个选项)
  6. 优化技能联动。(当前逻辑可能存在些许混乱)
  7. 优化优先技能(直接排序列表即可,不需要判断是否在场)
  8. 多策略执行。(根据PVP佣兵颜色变阵,或根据PVE抉择合适策略)
  9. 自动合成、升级佣兵。
  10. 自动替换佣兵。
  11. 自动推图(火焰队按顺序解锁未解锁的关卡,考虑做瓦莉拉任务)
  12. PVE宝藏抉择(过英雄难度,双重宝箱处理)
  13. 增加任务处理体系(长时间进度不变时,将佣兵加入黑名单,并自动放弃任务)。
  14. 定向优化PVE任务(技能类别,斩杀指定类型随从)。
  15. 独立UIBepInExConfigManager用着挺方便的,暂不考虑开发UI。故这里考虑优化配置选项。
  16. PVP随机选择队伍(匹配策略)。
  17. 对局记录、添加推送。
  18. 优化中控,向中控发送心跳。
  19. 合并MixMod的部分或全部功能(可以考虑开坑做成炉石助手)
  20. 未完待续

mercenaries's People

Contributors

pik-4 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

Watchers

 avatar  avatar  avatar  avatar  avatar

mercenaries's Issues

蓝色传送门typeid=0

你好,我在学习规划路径部分代码的时候发现,会有一个判断蓝色传送门的操作
if (donelist[min][i].NodeTypeId == 0) //蓝色传送门后面到BOSS前全部设置为完成状态
神秘节点的取值是0,14,18,19,23,44
我测试0是未揭示的神秘节点,18才是传送门,而且从0变成18的过程成会体现在下一次HandleMap中
不知道我调试的对不对,希望交流一下!

关于“TryAutoNextSelectCoin”函数的补丁

TryAutoNextSelectCoin对应的补丁函数中,会调用Network.Get().ChooseLettuceMapNode(minNode[i].NodeId)来选择非怪物节点。

但是我测试发现,当出现多个非怪物节点连续的时候,将会一瞬间调用多次Network.Get().ChooseLettuceMapNode(minNode[i].NodeId),这会导致TryAutoNextSelectCoin短时间内的再次调用。并且其中的NetCache.Get().GetNetObject<NetCache.NetCacheLettuceMap>()并不能将预期的地图情况下载下来(可能只来得及响应其中前一两次的节点选择),最终可能导致对同一怪物节点的两次GameMgr.Get().FindGame,造成游戏崩溃。

我能想到的方法就是在Network.Get().ChooseLettuceMapNode(minNode[i].NodeId)后加上sleep,但是这会导致UI线程卡住,
另一个就是找到一种更新NetCache的方法,很遗憾我没有找到

希望能与你交流一下

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.