○ ESS20仅限 【原创】手动选择切换代欧奇希斯形态教程

参考请注明Credits:ES泽洛,如有bug请反馈。

23.08.29修改以兼容ZUD

1.在脚本编辑器中找到PBEffects,在122行附近添加。注意,后面的数字视情况而定,一般比它上面一行大就行。
Ruby:
DeoxysForm          = 117
1681555062780.png

2.找到Battler_Initialize,在279行附近添加。上方和此处的作用为,声明一个状态用于存储当前形态编号,并初始化为0。
Ruby:
@effects[PBEffects::DeoxysForm]          = 0
1681555243513.png

3.找到Battler_UseMove,在195行附近添加。此段作用为选择技能时,如果是代欧奇希斯,就选择需要切换的形态,为后续做准备。
Ruby:
    #代欧奇希斯变形态前置
    if isSpecies?(:DEOXYS)
      if self.effects[PBEffects::DeoxysForm] == self.form
        forms = [0,1,2,3]
        formNames = ["普通","攻击","防御","速度"]
        i = 0
        for f in 0...forms.length
          if f == self.form
            i = f
            break
          end
        end
        forms.delete_at(i)
        formNames.delete_at(i)
        index = pbMessage(_INTL("想要让{1}变成什么形态?",pbThis),formNames,-1)
        if index != -1
          self.effects[PBEffects::DeoxysForm] = forms[index]
        end
      end
    end
1693308145637.png

4.还是在Battler_UseMove,在368行附近添加。此段作用为判断是否为代欧奇希斯,然后根据之前选择的形态进行切换。
Ruby:
    #代欧奇希斯变形态
    if isSpecies?(:DEOXYS) && user.effects[PBEffects::DeoxysForm] != user.form
      newForm = user.effects[PBEffects::DeoxysForm]
      formNames = ["普通","攻击","防御","速度"]
      pbChangeForm(newForm,_INTL("{1}变为了{2}形态!",pbThis, formNames[newForm]))
      user.effects[PBEffects::DeoxysForm] = user.form
    end
1681560082253.png

5.找到FormHandlers,在最末端添加。此段作用为结束战斗时将代欧奇希斯恢复成普通形态,以避免潜在的问题。如果不想恢复,可不加此段,并自行调试可能出现的问题。
Ruby:
MultipleForms.register(:DEOXYS, {
  "getFormOnLeavingBattle" => proc { |pkmn, battle, usedInBattle, endBattle|
    next 0
  }
})
1681559701917.png
 
最后编辑:

w15174289601

精英训练家
2023/02/05
22
5
560
26
参考请注明Credits:ES泽洛,如有bug请反馈。

1.在脚本编辑器中找到PBEffects,在此处添加。注意,后面的数字视情况而定,一般比它上面一行大就行。
Ruby:
DeoxysForm          = 117
浏览附件972

2.找到Battler_Initialize,在此处添加。上方和此处的作用为,声明一个状态用于存储当前形态编号,并初始化为0。
Ruby:
@effects[PBEffects::DeoxysForm]          = 0
浏览附件973

3.找到Battle_CommandPhase,在此处添加。此段作用为选择技能时,如果是代欧奇希斯,就选择需要切换的形态,为后续做准备。
Ruby:
      #代欧奇希斯变形态前置
      battler = @battlers[idxBattler]
      if battler.isSpecies?(:DEOXYS)
        if battler.effects[PBEffects::DeoxysForm] == battler.form
          forms = [0,1,2,3]
          formNames = ["普通","攻击","防御","速度"]
          i = 0
          for f in 0...forms.length
            if f == battler.form
              i = f
              break
            end
          end
          forms.delete_at(i)
          formNames.delete_at(i)
          index = pbMessage(_INTL("想要让{1}变成什么形态?",battler.name),formNames,-1)
          if index != -1
            battler.effects[PBEffects::DeoxysForm] = forms[index]
          end
        end
      end
浏览附件978

4.找到Battler_UseMove,在此处添加。此段作用为判断是否为代欧奇希斯,然后根据之前选择的形态进行切换。
Ruby:
    #代欧奇希斯变形态
    if isSpecies?(:DEOXYS) && user.effects[PBEffects::DeoxysForm] != user.form
      newForm = user.effects[PBEffects::DeoxysForm]
      formNames = ["普通","攻击","防御","速度"]
      pbChangeForm(newForm,_INTL("{1}变为了{2}形态!",pbThis, formNames[newForm]))
      user.effects[PBEffects::DeoxysForm] = user.form
    end
浏览附件977

5.找到FormHandlers,在最末端添加。此段作用为结束战斗时将代欧奇希斯恢复成普通形态,以避免潜在的问题。如果不想恢复,可不加此段,并自行调试可能出现的问题。
Ruby:
MultipleForms.register(:DEOXYS, {
  "getFormOnLeavingBattle" => proc { |pkmn, battle, usedInBattle, endBattle|
    next 0
  }
})
浏览附件976
 
2024/01/16
30
3
953
25
大佬我发现了个地方,如果我选了招式后进入了形态选择阶段,但是我不想用这个招式了就好像退不到选招式的阶段了
 

TAAAAAAA

天王
管理成员
2024/06/16
241
4
36
1,270
大佬我发现了个地方,如果我选了招式后进入了形态选择阶段,但是我不想用这个招式了就好像退不到选招式的阶段了
你发现的并不是问题,而是本来逻辑就是这样的,变形态是在使用技能之前让你选,接着变,而不是在你选技能的时候让你选和变,也就是说,在选技能的阶段结束之后,才会进入变形态的阶段,你无法返回到前一个阶段。
就算没有变形态这回事情,在单打中,选了技能之后也不会发生允许你取消选择再重选技能的情况,技能选了就是确定了。
 

在线成员

现在没有成员在线。

最新帖子

论坛统计

主题
517
消息
2,352
成员
3,007
最新成员
ZQLdw