○ 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
19
5
560
25
参考请注明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
 

stop呜呜大王

馆主
成员
2024-01-16
44
1
2
776
24
大佬我发现了个地方,如果我选了招式后进入了形态选择阶段,但是我不想用这个招式了就好像退不到选招式的阶段了
 

在线成员

现在没有会员在线。

论坛统计

主题
352
消息
1,622
会员
2,359
最新会员
世界悳尽头

关于我们

  • 宝可梦以及其他相关名称是任天堂的商标,版权归宝可梦公司所有。宝可饭堂是一个同人游戏中文社区,不隶属于宝可梦公司。在宝可饭堂上的粉丝游戏亦未获得其授权,请支持正版游戏。
© 2022- pokefans.cn
点此延长宝可饭堂生命