查看: 1610|回复: 2

[有事请教] 蓄力连击脚本求助

[复制链接]
梦石
0
星屑
5948
在线时间
334 小时
注册时间
2017-1-18
回帖
31
发表于 2023-12-23 23:53:55 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
脚本是在论坛里找的一位大佬的,脚本如下:
#【蓄力技能,强制行动技能】
#作者:默城九
#使用方法:
#[火球.3]:强制连续三回合连续使用此技能
#[火球@蓄力]:此技能需要一回合蓄力,下回合自动强制使用此技能
$蓄力状态ID = 13
class Game_Battler
  alias skill_effect_1 skill_effect
  def skill_effect(user, skill)
    user.remove_state($蓄力状态ID)
    if skill.qz > 0 and user.skill_hh == 0
      user.skillhh(skill.qz)
      user.skillid(skill.id)
    end
    if user.skill_hh > 0
      i = user.skill_hh - 1
      user.skillhh(i)
    end
    skill_effect_1(user, skill)
  end
  def skill_id
    @skill_id = 0 if @skill_id == nil
    return @skill_id
  end
  def skillid(i)
    @skill_id = i
  end
  def skill_hh
    @skill_hh = 0 if @skill_hh == nil
    return @skill_hh
  end
  def skillhh(i)
    @skill_hh = i
  end
end
module RPG
class Skill
   def name
     name = @name.split(/./)[0]
     name = name.split(/@/)[0]
     return name != nil ? name : ""
   end
   def qz
     name = @name.split(/./)[1]
     return name != nil ? name.to_i.abs : 0
   end
   def xl
     name = @name.split(/@/)[1]
     return name != nil ? name.to_s : ""
   end
end
end
class Scene_Battle
  alias update_phase3_1 update_phase3
  def update_phase3
    if @active_battler.state?($蓄力状态ID) or @active_battler.skill_hh > 0
      @active_battler.current_action.skill_id = @active_battler.skill_id
      @active_battler.current_action.kind = 1
      i = $data_skills[@active_battler.current_action.skill_id].scope
      if i == 1
        start_enemy_select if @enemy_arrow == nil
      elsif i == 3 or i == 5
        start_actor_select if @actor_arrow != nil
      else
        phase3_next_actor
      end
    end
    update_phase3_1
  end
  alias make_skill_action_result_1 make_skill_action_result
  def make_skill_action_result
    @skill = $data_skills[@active_battler.current_action.skill_id]
    unless @active_battler.current_action.forcing
      unless @active_battler.skill_can_use?(@skill.id)
        $game_temp.forcing_battler = nil
        @phase4_step = 1
        return
      end
    end
    if @skill.xl == "蓄力" and !@active_battler.state?($蓄力状态ID)
      @active_battler.add_state($蓄力状态ID)
      @active_battler.skillid(@skill.id)
      @status_window.refresh
      @help_window.set_text("[蓄力]"+@skill.name, 1)
      return
    end
    make_skill_action_result_1
  end
end
但在技能后加“.2”时,打开游戏技能报错:脚本的第40行发生了NoMethodError private method ’split'called for nil:NilClass
对脚本几乎一窍不通,求解惑!
梦石
0
星屑
6295
在线时间
799 小时
注册时间
2019-1-20
回帖
223
发表于 2023-12-30 11:18:03 | 显示全部楼层
把  /./  都换成英文的  /,/     
名字那里也把 . 改成 ,
不要弄错成中文的 /,/   ,

提高解决问题的方法:
查看对应版本的帮助文件或者默认脚本中可能相似的部分 看有没有思路能照搬(不是)
改变问题为更有可能的,常见的,系统性的 如:天气自动变化成下雨→天气系统 要多想几种可能
使用论坛的搜索功能查找相关问题 咦?这跟我想的不一样啊!讨厌啦~\(≧□≦)/~啦啦啦
清楚说明实际上你想解决的问题  想看坛友的女装,想看!  
脚本自己有改过的地方要尽量标明  提高除BUG效率 ... ...
脚本有问题但不是默认脚本的要全部贴出来 大胆点,尽情发,我说的是女装照!
三包原则:包有BUG,包甩锅,包咕咕 长期下线,急事换人!难事换人!啥事都换人!换人换人换人!!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部