| 
 
| 赞 | 0 |  
| VIP | 0 |  
| 好人卡 | 7 |  
| 积分 | 1 |  
| 经验 | 43463 |  
| 最后登录 | 2017-9-10 |  
| 在线时间 | 1019 小时 |  
 Lv1.梦旅人 
	梦石0 星屑50 在线时间1019 小时注册时间2012-4-25帖子799 | 
| 
x
加入我们,或者,欢迎回来。您需要 登录 才可以下载或查看,没有帐号?注册会员  @protosssonny复制代码module P叔
  #=============参==============数==============设==============定==============
  # 请在下面设定被动技能的ID,当角色拥有该被动技能时才会触发状态附加。
  # 默认设置是127号技能。
    SKILL_ID = 127
  # 请在下面设定附加状态的ID
  # 默认设置是26号状态。
    STATE_ID = 26
  # 请设定HP限定变量的ID,用于控制各项数值。
  # 默认设置是10号变量。
    HP_VARIABLE = 10
  # HP限定变量是类似这样一个特殊的一维数组变量:
   $game_variables[P叔::HP_VARIABLE] = [40,35,0,45]
  # 默认表示当队伍1号的HP小于或等于40才附加状态;当队伍2号的HP小于或等于35才附加状态;
  # 队伍3号无效化,队伍4号的HP小于或等于45才附加状态
  #==============================================================================
#end
class Scene_Base
  
  #--------------------------------------------------------------------------
  # ● 更新画面
  #--------------------------------------------------------------------------
  def update
    auto_state_by_skill                                 # 添加了本句
    update_basic
  end
  #--------------------------------------------------------------------------
  # ● 附加状态  自定义函数
  #--------------------------------------------------------------------------
def auto_state_by_skill
    if $game_variables[P叔::HP_VARIABLE].class == Array # 当HP限定变量才执行
      return if $game_party.members.empty?
      for i in 0...$game_party.members.size
        j = $game_party.members[i]
        j.remove_state(P叔::STATE_ID) if j.hp <= 0      # 死亡时解除状态
        next unless j.skill_learn?($data_skills[P叔::SKILL_ID]) # 没有学会技能则跳过
        # 当hp<=最大hp的百分比时,附加状态STATE_ID,否则就解除
        j.hp <= j.mhp * $game_variables[P叔::HP_VARIABLE][i] / 100.0 ? j.add_state(P叔::STATE_ID) : j.remove_state(P叔::STATE_ID)
      end  
    end  
  end
 ======================================================================================
 
 这是P叔完本做的一个被动状态的技能,但这个脚本存在一些问题,比如变量中没有TP选项,而且也无法定义不同的被动(至少我脚本水平不高),于是我就修改了一下。
 很可惜,脚本报错了,本身我不懂得脚本,不清楚问题所在复制代码class Scene_Base
  
  #--------------------------------------------------------------------------
  # ● 更新画面
  #--------------------------------------------------------------------------
  def update
    auto_state_by_skill                                 # 添加了本句
    update_basic
  end
  #--------------------------------------------------------------------------
  # ● 附加状态  自定义函数
  #--------------------------------------------------------------------------
 def auto_state_by_skill
    $game_actors[4].remove_state(445) if game_actors[4].hp <= 0 #5号(排序是从0开始?)角色死亡时解除445号状态
    $game_actors[4].remove_state(446) if game_actors[4].hp <= 0 #5号角色死亡时解除446号状态
    if $game_actors[4].tp <= 60 && !$game_actors[4].state?(447) #该角色TP不小于60时且状态不是447时
      $game_actors[4].add_state(445) # 加上445号状态
      $game_actors[4].remove_state(446) # 解除446号状态
    elsif
      $game_actors[4].tp > 60 && !$game_actors[4].state?(447) #该角色TP大于60时且状态不是447时
      $game_actors[4].add_state(446)# 加上446号状态
      $game_actors[4].remove_state(445)# 解除445号状态
    elsif
      $game_actors[4].state?(447)#如果该角色状态是447号状态时
      $game_actors[4].remove_state(445) #解除445号状态
      $game_actors[4].remove_state(446) #解除445号状态
    end
  end
end
 
   
 另外,我还想做一个光环类物品,当某角色装备上某个防具(光环类装备复数,限定某一个角色),在场上出现时,会给己方角色加上光环(被动状态),当角色不在场上或者更换了其他装备,就移除该状态。该如何判定角色在不在场以及如何全体附加解除状态?
 | 
 |