【暗黑3导航插件】TurboHUD中文交流社区

 找回密码
 新建会员

QQ登录

只需一步,快速开始

查看: 25610|回复: 28
打印 上一主题 下一主题

雷电宏三刀卡药水

[复制链接]

27

主题

91

帖子

417

积分

中级会员

Rank: 3Rank: 3

积分
417

雷电宏发展贡献者

跳转到指定楼层
楼主
发表于 2019-2-17 22:17:20 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
用了宏越来越懒了,哈哈。想自己加个三刀自动卡杀回药水功能,不过sno interface里不知道怎么把 击回数据抓取,希望老大帮忙下,具体实现如下

1. 判断当前击回数,如果击回大于一定数值列如100000, 则药水按照原来设定的小于40%HP喝。
2. 如果小于100000, 药水在99%HP就喝。
3. 暗影之力 在 药水冷却时cast下.

2和3很容易实现,不过1我看了好多接口,只有在sno文件夹里 IAttributeList.cs 找到个IAttribute Hitpoints_On_Hit { get; },可怎么引用数据呢,试了好多都不行,就是下面 ? 应该怎么引用。半吊子c++水平,见笑了。

        private bool IsGetHitpointsOnHitIsAbove(TestContext ctx)
        {
            bool IsAbove;
            double Hitpoint;
            Hitpoint = ?;
            IsAbove = Hitpoint >= 100000 ? true : false;
            return IsAbove;
        }

其他我也想不出更好的办法 判断几时喝药再开翅膀,如果把药水HP限制改大是最简单了,不过HC来说,不太合适。谢谢先!


27

主题

91

帖子

417

积分

中级会员

Rank: 3Rank: 3

积分
417

雷电宏发展贡献者

沙发
 楼主| 发表于 2019-2-19 17:54:29 | 显示全部楼层
TurboHUD 发表于 2019-2-18 19:08
下次更新时添加新的接口

多谢老大,能不能提供下击回接口,我自己搞一下。

27

主题

91

帖子

417

积分

中级会员

Rank: 3Rank: 3

积分
417

雷电宏发展贡献者

板凳
 楼主| 发表于 2019-2-28 07:52:42 | 显示全部楼层
的确john好像更新接口了,加了击回,等老大测试。各位如果想一喝药水,自动开翅膀,请自行改DemonHunterShadowPowerPlugin.cs 成下面:如果用多重再注释掉。下面还加了自动触发残影。
            CreateCastRule()
                .IfInTown().ThenNoCastElseContinue()
                .IfCastingIdentify().ThenNoCastElseContinue()
                .IfCastingPortal().ThenNoCastElseContinue()
                .IfOnCooldown().ThenNoCastElseContinue()
                .IfCanCastBuff().ThenContinueElseNoCast()
                .IfCanCastSimple().ThenContinueElseNoCast()
                .IfTrue(IsPotionOnCoolDown).ThenCastElseContinue()
                .IfEnoughMonstersNearby(ctx => 40, ctx => 1).ThenContinueElseNoCast()
                .IfSpecificBuffIsAboutToExpire(hud.Sno.SnoPowers.ElusiveRing, 1, 30, 100).ThenCastElseContinue();
        private bool IsPotionOnCoolDown(TestContext ctx)
        {
            bool IsOnCooldown;
            double Cooldown;
            Cooldown = (Hud.Game.Me.Powers.HealthPotionSkill.CooldownFinishTick - Hud.Game.CurrentGameTick) / 60d;
            IsOnCooldown = Cooldown < 30 && Cooldown > 29.6 ? true : false;
            return IsOnCooldown;
        }

27

主题

91

帖子

417

积分

中级会员

Rank: 3Rank: 3

积分
417

雷电宏发展贡献者

地板
 楼主| 发表于 2019-2-28 16:19:55 | 显示全部楼层
本帖最后由 goas2018 于 2019-2-28 16:25 编辑
TurboHUD 发表于 2019-2-28 13:54
是可以加判断站立状态并且残影戒指减伤消失后再按暗影之力,但是最好再加入戒律判断,带来的问题就是你自 ...

你说的,我发的代码都实现了啊,一检测到药水cd, 翅膀就开,还有如果检测到残影没了,也开,因为我自己用,我没加暗影套,戒律判断,因为我知道都满足的。喝药现在是靠掉血判断,我发这帖子就是希望找到击回接口,就可以用为判断,来决定是不是一掉血就喝,加上我那代码,可以完美卡药水。

27

主题

91

帖子

417

积分

中级会员

Rank: 3Rank: 3

积分
417

雷电宏发展贡献者

5#
 楼主| 发表于 2019-2-28 18:21:08 | 显示全部楼层
sanwu555 发表于 2019-2-28 17:12
这段代码是不是有错啊?加进去爆红字错误啊!

你肯定加的格式不对。我上传下,直接覆盖 TurboHUD Chinese\TurboHUD\plugins\LightningMod\SkillHandlers\DemonHunter 里面同名文件,不过每次开hud, 你要不选更新, 否则又覆盖回去了。再发个回避射击技能的,可以自动发维持明徹buff, 不过回避必须设置在数字键或右键。用这些前提是,你暗影套装都已经有,基本成型,词缀无所谓。

DemonHunter.zip

1.42 KB, 下载次数: 6484

27

主题

91

帖子

417

积分

中级会员

Rank: 3Rank: 3

积分
417

雷电宏发展贡献者

6#
 楼主| 发表于 2019-3-2 05:58:39 | 显示全部楼层
TurboHUD 发表于 2019-3-1 18:36
如果用击回判断的话岂不是一直重复按暗影之力。。。

不会,卡药水就是喝完药水开翅膀击回增加5万左右,本地图永远保持。这些其实用做喝药判断,翅膀只要喝药 就自动开。喝药就是如果击回掉落了,那只要血到99%就喝,否则到40%喝,很容易实现的。不过因为每个人击回不一样,应该做不到普遍适用,要自己改适当数值。

27

主题

91

帖子

417

积分

中级会员

Rank: 3Rank: 3

积分
417

雷电宏发展贡献者

7#
 楼主| 发表于 2019-3-2 22:39:59 | 显示全部楼层
TurboHUD 发表于 2019-3-2 13:41
我不是很理解你的意思,下版本会添加以下接口
Hud.Game.Me.Defense.LifeOnKill 击杀恢复
Hud.Game.Me.D ...

其实就是用击回判断掉多少血,就喝药,我因为玩专家,所以喝药比较重要,普通模式其实不用管这,只要用我暗影的代码,判断喝药就开然后把掉血改大就行。下面是喝药代码
                .IfHealthPercentageIsBelow(ctx => 40).ThenCastElseContinue()
                .IfTrue(IsGetHitpointsOnHitIsAbove).ThenNoCastElseContinue() //(药水有没有卡上, true 就是卡上了,就不用再99%喝药)
                .IfBossIsNearby(ctx => 40).ThenNoCastElseContinue()// boss边上就别卡了。
                .IfHealthPercentageIsBelow(ctx => 99).ThenCastElseContinue(); //99%就喝

                   private bool IsGetHitpointsOnHitIsAbove(TestContext ctx)
                  {
                   bool IsAbove;
                   double Hitpoint;
                   Hitpoint = Hud.Game.Me.Defense.LifeOnHit;
                   IsAbove = Hitpoint >= 100000 ? true : false; // 100000因人而异, 没卡以前的数值
                   return IsAbove;
                   }

明徹那个,得带护腕,不用暗影,我懒的加判断带不带了。

27

主题

91

帖子

417

积分

中级会员

Rank: 3Rank: 3

积分
417

雷电宏发展贡献者

8#
 楼主| 发表于 2019-3-3 20:50:54 | 显示全部楼层
TurboHUD 发表于 2019-3-3 17:54
我发现有个问题啊
你这个卡击回跟自动保持残影戒指是冲突的
卡上击回后为了保持残影戒指BUFF再次使用暗 ...

这是没办法的,游戏机制问题,尽量用翻滚保持残影,暗影只会在残影快失效才开,否则只能重新卡,反正已经都实现自动化了,击回掉落了,喝血又可以马上99%喝,很快又卡上了。
您需要登录后才可以回帖 登录 | 新建会员

本版积分规则

TurboHUD交流社区  

GMT+8, 2024-5-18 00:24 , Processed in 0.129618 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表