注册会员 登录
Project1 返回首页

椎名ヤシロ de 特护病房 ... ... https://rpg.blue/?10105 [收藏] [复制] [分享] [RSS] ~μ's(・∀・)イイネ!! サイッコウダネ!!~

日志

【脚本共享】【VA】更改角色等级上限的物品/技能……

已有 339 次阅读2016-10-27 15:50 | 技能, 角色

写好之后才发现眼瞎进错区的产物……
也许会有人需要吧??总之用法在代码注释里有……

PS:然后作为提升等级上限的物品即使没设置各种恢复效果之类的也可以使用(但是请不要对敌人使用)。
PS2:事实上技能的话还没试过是不是能用。
PPAP:降低上限的话,如果当前角色等级高于降低后的上限,会被强行降级。

#------------------------------------
# ○ 通过角色备注获取一下初始最大值,
#  在备注里填上“<N_MLV 数值>”(不含引号)设置初始最大等级
#  不填的话默认99级,且等级上限提升之后不会超过99级
#------------------------------------
class RPG::Actor < RPG::BaseItem
  def default_max_level
    return @note =~ /<N_MLV\s?(.*)?>/ ? $1.to_i : @max_level
  end
end
#------------------------------------
# ○ 通过物品/技能备注获取更改最大等级的信息,
#  在备注里填上“<C_MLV 数值>”(不含引号)设置更改的最大等级数,
#  填负数则会减少最大等级。
#  备注里填了这个信息的物品视为更改等级上限的物品
#------------------------------------
class RPG::UsableItem < RPG::BaseItem
  def max_lv_change
    return @note =~ /<C_MLV\s?(.*)?>/ ? $1.to_i : nil
  end
  def max_lv_change_item?
    return !max_lv_change.nil?
  end
end


class Game_Battler < Game_BattlerBase
  #--------------------------------------------------------------------------
  # ● 技能/物品的应用测试
  #  如果是等级上限突破物品优先允许使用
  #--------------------------------------------------------------------------
  alias sny46_161027_item_test item_test
  def item_test(user, item)
    return true if (item and item.max_lv_change_item?)
    return sny46_161027_item_test(user, item)
  end
  #--------------------------------------------------------------------------
  # ● 应用技能/物品的效果
  #  增加突破等级上限物品的效果
  #--------------------------------------------------------------------------
  alias sny46_161027_item_apply item_apply
  def item_apply(user, item)
    sny46_161027_item_apply(user, item)
    return unless (item and item.max_lv_change_item?)
    self.add_max_level(item.max_lv_change)
  end
end


class Game_Actor < Game_Battler
  #--------------------------------------------------------------------------
  # ● 设置
  #--------------------------------------------------------------------------
  alias sny46_161027_setup setup
  def setup(actor_id)
    sny46_161027_setup(actor_id)
    @real_max_level = self.actor.default_max_level
  end
  #--------------------------------------------------------------------------
  # ● 最大等级
  #--------------------------------------------------------------------------
  alias sny46_161027_max_level max_level
  def max_level
    return [@real_max_level, sny46_161027_max_level].min
  end
  #------------------------------------
  # ○ 提升/降低最大等级
  #------------------------------------
  def add_max_level(n)
    old_max_lv = @real_max_level
    @real_max_level += n
    # 等级上限降低的情况
    return unless old_max_lv > @real_max_level
    # 如果当前等级大于变化后的等级上限就降级
    level_down while self.level > @real_max_level
  end
end

鸡蛋

鲜花

评论 (0 个评论)

facelist doodle 涂鸦笔

您需要登录后才可以评论 登录 | 注册会员

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2022-7-3 09:59

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

返回顶部