合击公式(参考)

更新日期: 2024-02-28  最新编辑:丶豚豚

  把合击理解为一种炸弹,炸弹需要两部分,1.点火引綫。2.爆炸实体。

  炸弹的引綫与实体不同,并且按固定的规格用大致差不多的製作数量完成。

  合击与炸弹的不同之处在于,合击的引綫同时作爲实体影响威力,而且实体的製作数量是动态的,实体的製作数量由引綫出现的出手顺序的位置决定,具有部分废弃引綫。

  在玩家指令读取时相当于炸弹製作阶段,哪个作爲引綫哪些作爲实体是不确定的,部分可能的引綫不见得在玩家指令读取时便成功加入製作材料中去,引綫具有消耗性废弃性,这个引綫概率为50%(初心服很可能不一样),不点燃便没用了,而引綫一旦点燃,引綫的作用便以完成,后续不需要再次点燃(指50%概率计算),同时作爲实体影响威力。

  在实际战斗动画开始,也就是炸弹实际爆炸过程中,当然也会有实际情况的意外成爲哑弹或半哑弹,因爲炸弹内部是分室的,也就是就算已经在玩家指令读取阶段判断为合击,实际过程中根据条件依然会降格为普通攻击,截断合击,甚至影响合击头等。

  根据实际情况一场战斗也可以单弹、双弹、叁弹......一个炸弹可以单黄蛋、双黄蛋、叁黄蛋......前者事先构造,后者突发裂变。

  其它条件因素具足的情况下,是否为引綫完全由概率决定,为50%,其它条件因素大多数玩家总结的差不多了。例如:连续出手顺序、普通攻击、同一对象位置等等。

  想要合击要注意分爲,构造阶段,爆炸阶段,前者玩家输入指令完成,后者动画运行完成。

  排除任何额外因素,能10合的单位集合,10合概率50%,9合概率25%,8合概率12.5%......有10合概率50%,有9合概率75%,有8合概率87.5%......

  猜测:

  被合击单位除了制御巫术以及祈祷等各种技能抵消伤害外,还有诸如被合击单位选择换位等应对手段,只是换位后塬合击集团第一速度顺位的合击降格为对随机对象的普通攻击很可能是无视对方闪避必定命中,如战斗过程中因根据具体情况只有1个战斗单位的特殊合击形式也可能具有特殊普通攻击一致的性质。

  战斗单位

  {

  战斗行动轮数

  行动动作

  远程武器

  主客方

  自身位置

  攻击对象位置

  卡位

  昏睡

  石化

  混乱

  挑拨

  混乱塬动作

  忠诚塬动作 //非宠物强制为塬动作

  当前血量

  }

  战斗单位集合 //速度由高至低

  {

  战斗单位[战斗单位数]

  }

  if 玩家指令读取

  {

  位置集合[20] = {0}

  for (合击引綫 = 无, 行动轮数 = 0, i = 0; i < 战斗单位集合.战斗单位数; ++i)

  {

  if 战斗单位集合[i].行动动作 == 普通攻击 &&

  战斗单位集合[i].远程武器 == 非 &&

  战斗单位集合[i].卡位 == 非 &&

  战斗单位集合[i].昏睡 == 非 &&

  战斗单位集合[i].石化 == 非 &&

  战斗单位集合[i].混乱 == 非 &&

  战斗单位集合[i].挑拨 == 非

  {

  if 合击引綫 == 有 &&

  位置集合[战斗单位集合[i].自身位置] != 1

  {

  if 战斗单位集合[i].主客方 == 战斗单位集合[i-1].主客方 &&

  战斗单位集合[i].攻击对象位置 == 战斗单位集合[i-1].攻击对象位置

  {

  位置集合[战斗单位集合[i].自身位置] = 1

  战斗单位集合[i-1].行动动作 = 合击

  战斗单位集合[i].行动动作 = 合击

  战斗单位集合[i].战斗行动轮数 = 行动轮数

  continue;

  }

  合击引綫 = 无

  for (x = 0; x < 20; ++x)

  {

  位置集合[x] = 0

  }

  }

  if 合击引綫 == 无 &&

  rand(1,100) <= 50 //初心服也许更改了这个数值

  {

  合击引綫 = 有

  位置集合[战斗单位集合[i].自身位置] = 1

  ++行动轮数

  战斗单位集合[i].战斗行动轮数 = 行动轮数

  continue;

  }

  }

  合击引綫 = 无

  for (x = 0; x < 20; ++x)

  {

  位置集合[x] = 0

  }

  ++行动轮数

  战斗单位集合[i].战斗行动轮数 = 行动轮数

  }

  }

  if 战斗动画开始

  {

  for (i = 0; i < 战斗单位集合.战斗单位数; ++i)

  {

  if 战斗单位集合[i].行动动作 == 合击

  {

  if 战斗单位集合[i].远程武器 == 是

  {

  战斗单位集合[i].行动动作 = 普通攻击

  战斗单位集合[i].战斗行动轮数 = 0

  }

  else

  {

  for (ii = i + 1; ii < 战斗单位集合.战斗单位数; ++ii)

  {

  if 战斗单位集合[i].战斗行动轮数 != 战斗单位集合[ii].战斗行动轮数

  {

  战斗单位集合[i].行动动作 = 普通攻击

  break;

  }

  if 战斗单位集合[ii].忠诚塬动作 == 非 ||

  战斗单位集合[ii].混乱塬动作 == 非

  {

  战斗单位集合[ii].行动动作 = 普通攻击

  战斗单位集合[i].行动动作 = 普通攻击

  战斗单位集合[ii].战斗行动轮数 = 0

  break;

  }

  if 战斗单位集合[ii].远程武器 == 是

  {

  战斗单位集合[ii].行动动作 = 普通攻击

  战斗单位集合[i].行动动作 = 普通攻击

  break;

  }

  if 战斗单位集合[ii].昏睡 == 非 &&

  战斗单位集合[ii].石化 == 非 &&

  战斗单位集合[ii].当前血量 > 0

  {

  break;

  }

  }

  for (ii = i; ii < 战斗单位集合.战斗单位数; ++ii)

  {

  if 战斗单位集合[ii].战斗行动轮数 == 战斗单位集合[i].战斗行动轮数 &&

  战斗单位集合[ii].行动动作 == 合击 &&

  战斗单位集合[ii].攻击对象位置 == 空

  {

  战斗单位集合[ii].行动动作 = 普通攻击

  战斗单位集合[i].行动动作 = 普通攻击(特殊) //该普通攻击比较特殊

  }

  }

  }

  }

  战斗单位集合[i].实际执行动作

  }

  }

  单次合击形式 = 速度由高至低连续相同战斗行动轮数的合击

  玩家指令读取时的普通攻击註意促成合流升格为合击,战斗动画开始的合击註意避免分流降为普通攻击。玩家指令读取时注意点击同一对象,速度顺序,甚至一些方式调整速度;战斗动画开始时需要保证战斗单位的当前血量、状态等,前一个单位是否为合击取决于后者。

  50%是合击引线起点,有了引线以后的合击单位便无视概率计算,但是作引线也有50%的概率作不成引线而失去进入合击的可能,所以尽量让不稳定的单位或者输出低的单位作成合击引线。战斗过程前的合流的不稳定因素 与 战斗过程中的分流因素 尽量重合,保证大流尽量不被分割以及输出伤害不被分离。

  例:可能不听话的宠,输出不高的单位尽量放在先手位置,听从指令的单位输出高的单位尽量聚在大流之中,人物等不会NO的单位,尤其高输出单位尽量处在连续不断的速度顺序内,中间最好不插入可能NO的单位