一哥手游欢迎您
QQ登陆 注册 找回密码
查看: 895|回复: 1

[游戏讨论] [进阶硬核] 黄骑首次充电机制详解(更新至懒人总结版)

[复制链接]
  • TA的每日心情
    开心
    2022-10-19 22:21
  • 签到天数: 3 天

    [LV.2]

    大神版主

    Rank: 7Rank: 7Rank: 7

    阳光
    56
    人气
    13309
    G点
    4678
    任务金卷
    0

    资源达人金点子奖纪念勋章最佳新人公爵大人皇帝大神卓越贡献元老勋章人气达人

    发表于 2020-12-1 11:05:42 | 显示全部楼层 |阅读模式
    导语


    因为排版的问题,正文手机容易看不懂,请务必用电脑阅读!!!


    欢迎大家交流讨论。最近有点忙,带四人以下的版本的充电可能要等之后有时间了更新


    懒人专版
    -64xyuQ5-1n45K1nT1kSfo-gb.jpg


    快排


    首先我们需要了解这个游戏中的排序机制,也就是快排。本文的快排与 [@davecat] 大佬帖子有一定的出入。

    简单的来说,我们可以将角色看成一个数组序列,A[3,4,2,1,8],[]中的值是需要排序的目标,比如magic str,tp,hp等等


    1:首先选取一个值,记作index,pcr取的index=int((left+right)/2),因为是整型,所以舍去小数点后的部分,可以简单地理解为做下取整运算。然后记t=A[index]
    按照上面的数组序列,index=int((0+4)/2)=2,t=A[index]=A[2]=2


    2:接着分别从两边遍历,将小于t的放在左边,将大于t的放在右边。代码中具体实现就是k从0:4遍历,j从4:0遍历,若A[k]<t,则不用交换位置,k++,继续循环;若A[j]>t,不用交换位置,j--,继续循环。然后将A[k]和A[j]交换位置,k++,j--。重复上述操作,直到k>j。
    按照上面的数组序列,k=0时需要交换;j=4时不需要交换,j=3时需要交换。于是A[0]和A[3]交换位置,变成A[1,4,2,3,8],然后k变为1,j变为2。进行下一轮循环。
    k=1时,需要交换;j=2时也需要将交换,于是A[1]和A[2]交换位置,变成A[1,2,4,3,8],然后k变为2,j变为1。因为此时k>j,所以跳出循环。


    3:以k和j将上述数组分成两部分,重复步骤1和2。也就是所谓的递归。
    按照上面的数组序列就是分成A[1,2]和A[4,3,8],再进行排序,变成A[1,2]和A[3,4,8],最后结果是A[1,2,3,4,8]


    当然实际写代码的时候还有一些防止bug的判定,例如当数组中只有一个值的时候直接跳出循环




    判定距离


    看过我之前帖子的应该知道角色有攻击距离以及受击半径125等数值。另外初始我方角色两两相距200,例如一号位到五号位之间的距离是800。


    这边让我们引入判定距离这个概念,判定距离描述的是对于同一个参考点,初始不同角色的攻击距离相对于这个参考点的位置。根据判定距离的大小可以判断谁先停谁后停。


    为了方便理解,这边举一个例子。
    我方:镜子(805),星法(755),黄骑(405),空花(130),布丁(125)
    如果我们以布丁作为参考点,每一个角色的判定距离为
    镜子:805-800+125
    星法:755-600+125
    黄骑:405-400+125
    空花:130-200+125
    布丁:125-000+125


    同样的以黄骑为参考点,那么星法的判定距离就是755-200+125,而布丁则是125+400+125


    因为参考系相同,所以根据判定距离这个值大小可以很明显的看出谁先停谁后停。


    黄骑充电机制


    了解了快排,和判定距离的概念,我们就可以开始聊聊黄骑的充电机制。感谢 [@FledgingxDestined丶] 大佬提供的部分思路,黄骑充电有如下要求:


    黄骑在开技能的时候才调用快排计算


    1:比黄骑先停下的角色tp>0,这个tp值受到tp上升和是否被敌方攻击的影响。比黄骑后停的角色tp=0,因为判定在动作回复tp之前,所以黄骑的tp=0。


    2:因为黄骑是充我方,所以我们输入顺序应该变为一号位,二号位,三号位,四号位,五号位。


    3:调用快排运算,取tp最小的那一个




    补充一下临界角色:
    805 雪(镜子),205禊(炸弹人)




    注记


    本文一开始并没有考虑到敌方也就位时,一号位受到攻击,tp更高的情形。


    黄骑四号位跟五号位时,由于此时敌方也已经就位,如果在黄骑充能之前,我方一号位被打,那么肯定是一号位的tp值大于三,最后结果就是上文例子中tp上升一>三的情形。
    具体就跟停下时间和技能吟唱时间之类的有关。

    发帖不易! 捐赠方式支持论坛!建造美好稳定的游戏分享乐园!一哥手游家园!
    -----------------------------------------------------------------------------------------------------------
    实在不行你就回个复也行啊!总之!不要白嫖!从我做起! 请 点 评! 请 回 复!
    -----------------------------------------------------------------------------------------------------------
    如何获得阳光?【 点 评 】+ 阳光 ! 。【  回 复  】+ 阳光 ! 谢谢 !  
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    客服:| 客服QQ: 2607818610 | 商务QQ:19878895 | 服务邮箱:ohyeah@vip.qq.com | 商务电话:13637860062

    公安机关备案号:50010602501574|网站地图|小黑屋|

    一哥ACG ( 渝ICP备13004552号-1)

    GMT+8, 2024-5-6 20:59 , Processed in 0.211096 second(s), 37 queries , Gzip On.

    Powered by 一哥网 X3.4

    © 2001-2013 www.1g31.com

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