查看: 15082|回复: 42

[原创发布] 【零碎发布】老鹰的数据库扩展脚本巢

[复制链接]

老鹰

梦石
40
星屑
37812
在线时间
7091 小时
注册时间
2012-5-26
回帖
3297

极短24评委极短23参与极短22参与极短21评委老司机慢点开短篇十吟唱者组别冠军开拓者剧作品鉴家

发表于 2017-6-6 23:35:21 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 百里_飞柳 于 2023-3-25 13:21 编辑

◇ 前言


1、这里是放置一些自己平时糊的比较小型轻便的插件的地方,因为自己一直在填RPG坑,会以战斗相关的为主。
2、不考虑与其他人的插件整合,如果有需求,请私戳并准备好银子投喂。
3、接受简单的小功能定制,价格预计在一顿饭钱左右,视具体难度看;但太难的请去招募区发帖,我怕会没有时间糊,除非我能立刻想到实现方法。

◇ 乱七八糟



一些替换插件请见这里

[fold=敌人掉落物追加 2017.6.6][pre lang="ruby"]#==============================================================================
# ■ 敌人追加物品掉落  by 老鹰
#------------------------------------------------------------------------------
#   - 新增敌人的额外物品掉落,可带触发条件
#   - 在敌人栏备注内填入 (可用空格或逗号分隔内部各项)(可重复填入多行)
#     <ex drop: 物品类型id 物品id 掉落概率分子 掉落概率分母 出现条件>
#       物品类型id: 1 - 物品  2 - 武器  3 - 护甲 (此外的值均会导致无效)
#       物品id: 对应类型的数据库中物品的id号
#       掉落概率分子、掉落概率分母: 物品的掉落概率为 分子 / 分母
#       出现条件(可选):当字符串被eval后返回的值为真时,允许这个物品掉落
#         注: 可用 s 代表 $game_switches, v 代表 $game_variables
#   - 举例:
#      <ex drop: 1 1 1 2>
#         - 以 1/2的概率 追加掉落 1号物品
#      <ex drop: 2,10,2,5,$game_switches[1]>
#         - 当1号开关开启时,以 2/5的概率 追加掉落 10号武器
#      <ex drop: 3 1,1 1,$game_variables[1] > 5>
#         - 当1号变量大于5时,一定 追加掉落 1号护甲
#   - 实质:在战斗结束统计敌人掉落时,追加读取敌人数据库的note栏并追加掉落
#==============================================================================

class Game_Enemy < Game_Battler
  #--------------------------------------------------------------------------
  # ● 生成物品数组
  #--------------------------------------------------------------------------
  alias eagle_ex_drop_make_drop_items make_drop_items
  def make_drop_items
    array = eagle_ex_drop_make_drop_items
    array += make_extra_drop_items
    return array
  end
  #--------------------------------------------------------------------------
  # ● 生成额外物品数组
  #--------------------------------------------------------------------------
  def make_extra_drop_items
    array = []
    s = $game_switches
    v = $game_variables
    enemy.note.split(/[\r\n]+/).each do |line|
      case line
      when /<ex drop:[ ,]*(\d+)[ ,]*(\d+)[ ,]*(\d+)[ ,]*(\d+)[ ,]*(.*)>/
        cond = $5.to_s
        next if (cond != "" && eval(cond) == false)
        item_kind = $1.to_i; item_id = $2.to_i
        prob = $3.to_i * 1.0 / $4.to_i * drop_item_rate
        array.push(item_object(item_kind, item_id)) if rand < prob
      end
    end
    return array
  end
end[/pre][/fold]


[fold=装备/敌人战斗中自动附加状态 2017.6.6][pre lang="ruby"]#==============================================================================
# ■ 装备/敌人战斗中自动附加状态  by 老鹰
#------------------------------------------------------------------------------
#   - 新增在战斗中指定时刻,装备携带者/敌人的自动附加指定状态
#   - 在装备/敌人栏备注内填入下式(可用空格或逗号分隔内部各项)(可重复填入多行)
#      <状态附加时机: 状态id, 附加概率分子, 附加概率分母, 出现条件>
#       状态附加时机(替换为下列英语):
#          Battle Start State  -  战斗开始时
#          Turn Start State    -  回合开始时  *需碧轨战斗顺序,默认战斗者无该时刻
#          Action End State    -  行动结束时
#          Turn End State      -  回合结束时
#       状态id: 填入需要自动附加的状态id号
#       附加概率分子、附加概率分母(可选): 状态附加的概率为 分子/分母,不填则为 1
#       出现条件(可选):被eval后如果返回真,才能进行附加,不填则默认为 真
#         注: 可用 s 代表 $game_switches, v 代表 $game_variables
#   - 举例:
#       在 1 号护甲备注里填入 <Battle Start State: 1>, 1号角色装备中
#         作用:在战斗开始时,1号角色自动附加一次1号状态
#       在 2 号护甲备注里填入 <Turn End State: 2, 1,2>,2号角色装备中
#         作用:在每次回合结束时,2号角色有 1/2 的概率附加2号状态
#       在 1 号敌人备注里填入 <Action End State: 3, 1,5, $game_switches[1]>
#         作用:1号敌人每次技能使用结束、且1号开关开启时,有 1/5 的概率附加3号状态
#   - 实质:在战斗各个时机,角色自身的处理中追加状态的附加
#==============================================================================

class Game_Battler < Game_BattlerBase
  #--------------------------------------------------------------------------
  # ● 获取需要提取附加状态的对象的数组
  #--------------------------------------------------------------------------
  def get_battler_auto_states_notes_array
    return equips if actor?
    return [self] if enemy?
    return []
  end
  #--------------------------------------------------------------------------
  # ● 处理自动状态的附加
  #--------------------------------------------------------------------------
  def eagle_check_auto_add_states(type)
    array = get_battler_auto_states_notes_array
    case type
    when :on_battle_start
      exp = /<Battle Start State:[ ,]*(\d+)[ ,]*(\d*)[ ,]*(\d*)[ ,]*(.*)>/
    when :on_turn_start
      exp = /<Turn Start State:[ ,]*(\d+)[ ,]*(\d*)[ ,]*(\d*)[ ,]*(.*)>/
    when :on_action_end
      exp = /<Action End State:[ ,]*(\d+)[ ,]*(\d*)[ ,]*(\d*)[ ,]*(.*)>/
    when :on_turn_end
      exp = /<Turn End State:[ ,]*(\d+)[ ,]*(\d*)[ ,]*(\d*)[ ,]*(.*)>/
    end
    s = $game_switches
    v = $game_variables
    array.each do |a|
      next if a == nil
      a.note.split(/[\r\n]+/).each do |line|
        line =~ exp
        # $1 - 状态id $2$3 - 概率 $4 - eval条件
        next if $1 == nil
        next if $4 != "" && eval($4) == false
        p1 = $2 == "" ? 1 : $2.to_i
        p2 = $3 == "" ? 1 : $3.to_i
        next if rand > (p1 * 1.0 / p2)
        add_state($1.to_i)
      end
    end
  end
  
  #--------------------------------------------------------------------------
  # ● 战斗开始处理
  #--------------------------------------------------------------------------
  alias eagle_battler_auto_states_on_battle_start on_battle_start
  def on_battle_start
    eagle_check_auto_add_states(:on_battle_start)
    eagle_battler_auto_states_on_battle_start
  end  
  
  #--------------------------------------------------------------------------
  # ○ 回合开始
  #  需要 碧轨战斗行动顺序系统
  #--------------------------------------------------------------------------
  if Scene_Battle.include?(Saba::Kiseki)
  alias eagle_battler_auto_states_on_turn_start on_turn_start
  def on_turn_start
    eagle_check_auto_add_states(:on_turn_start)
    eagle_battler_auto_states_on_turn_start
  end
  end
  
  #--------------------------------------------------------------------------
  # ● 战斗行动结束时的处理
  #--------------------------------------------------------------------------
  alias eagle_battler_auto_states_on_action_end on_action_end
  def on_action_end
    eagle_check_auto_add_states(:on_action_end)
    eagle_battler_auto_states_on_action_end
  end
  #--------------------------------------------------------------------------
  # ● 回合结束处理
  #--------------------------------------------------------------------------
  alias eagle_battler_auto_states_on_turn_end on_turn_end
  def on_turn_end
    eagle_check_auto_add_states(:on_turn_end)
    eagle_battler_auto_states_on_turn_end
  end
end[/pre][/fold]

[fold=状态影响技能最终伤害 2017.6.6][pre lang="ruby"]#==============================================================================
# ■ 状态影响受到特定技能的伤害  by 老鹰
#------------------------------------------------------------------------------
#  - 简单的利用状态来影响受到指定技能时的伤害
#    当被攻击者附加了对应状态,影响状态对应数组中的所有id号技能的伤害
#  - 实质:直接变更最终伤害,并不影响其他判定
#==============================================================================

module EAGLE
  State_affect_skills_id = {
#状态id => [最终伤害百分比, [被该状态所影响的技能的id号的数组]]
    #1 => [0, [1]],
    #22 => [0, [1,3,4,5]],
  }
  
  State_affect_skill_type_id = {
#状态id => [最终伤害百分比, [被该状态所影响的技能类型id号数组]]
    22 => [0, [0]],
  }

end
class Game_Battler < Game_BattlerBase
  #--------------------------------------------------------------------------
  # ● 获取技能/物品的属性修正值
  #--------------------------------------------------------------------------
  alias eagle_state_skill_item_element_rate item_element_rate
  def item_element_rate(user, item)
    temp = eagle_state_skill_item_element_rate(user, item)
    temp *= with_state_affect_skill(item) if item.is_a?(RPG::Skill)
    return temp
  end

  # 返回所有状态的技能伤害影响程度的连乘结果
  def with_state_affect_skill(item)
    temp = 1
    EAGLE::State_affect_skills_id.each_pair do |key, value|
      next unless self.state?(key)
      temp *= (value[0] / 100.0) if value[1].include?(item.id)
    end
    EAGLE::State_affect_skill_type_id.each_pair do |key, value|
      next unless self.state?(key)
      temp *= (value[0] / 100.0) if value[1].include?(item.stype_id)
    end
    return temp
  end
end[/pre][/fold]

[fold=需要消耗资源才能一直存在的状态 2017.6.6][pre lang="ruby"]#==============================================================================
# ■ 需要持续消耗资源的状态 by 老鹰
#------------------------------------------------------------------------------
#  - 新增状态需要每回合消耗指定资源才能存在
#     当资源不足时,状态解除
#   - 在状态页备注栏中输入
#      <State Cost: SYM VALUE(%)>
#       SYM : HP/hp 对应hp消耗,MP/mp 对应mp消耗,TP/tp 对应tp消耗
#       VALUE(%) : 需要扣除的数值 百分号表示角色当前该值的最大数(负数无效)
#
#   - 实质:在状态回合数更新时同时判定其资源是否满足,并且扣除相应资源
#   - 注:碧轨战斗将状态回合数更新移动至了角色回合开始前
#==============================================================================

class Game_Battler
  #--------------------------------------------------------------------------
  # ● 更新状态的回合数 覆盖
  #--------------------------------------------------------------------------
  def update_state_turns
    states.each do |state|
      @state_turns[state.id] -= 1 if @state_turns[state.id] > 0
      remove_state(state.id) unless check_state_cost(state)
    end
  end
  #--------------------------------------------------------------------------
  # ● 检查是否满足需要消耗的状态
  #  如果满足,则扣除对应消耗,并返回真;否则移除状态
  #--------------------------------------------------------------------------
  def check_state_cost(state)
    # 状态所需消耗
    state_cost = {:HP => 0, :MP => 0, :TP => 0}
    # 计算rate用 总量存储
    rate_temp = {:HP => mhp, :MP => mmp, :TP => 200}
    # 计算是否有足够资源用 当前量存储
    source_temp = {:HP => self.hp, :MP => self.mp, :TP => self.tp}
    state.note.split(/[\r\n]+/).each { |line|
      line =~ /<State Cost: *(\w*) +(\d*|\d*%)>/
      next if $1 == nil # 无消耗
      sym = $1.upcase.to_sym
      value = $2 == nil ? "1" : $2
      value = value.to_i * (value[-1] == '%' ? rate_temp[sym] : 100) / 100.0
      state_cost[sym] += value.to_i
      # 判定是否有足够资源用于扣除
      return false if source_temp[sym] < value.to_i
    }
    state_cost.each { |key, value| pay_state_cost(key, value) if value > 0 }
    return true
  end
  
  # 扣除对应类型的消耗
  def pay_state_cost(type, value)
    case type
    when :HP
      @result.hp_damage += value
      self.hp -= value
    when :MP
      @result.mp_damage += value
      self.mp -= value
    when :TP
      @result.tp_damage += value
      self.tp -= value
    end
  end
  
end[/pre][/fold]

[fold=暴击与暴击伤害 2017.6.7][pre lang="ruby"]#==============================================================================
# ■ 暴击与暴击伤害  by 老鹰
#------------------------------------------------------------------------------
#   - 新增对暴击、暴击造成的伤害的修改
#   - 调整默认的暴击伤害为 100 ,即普通伤害的 2 倍;被暴击伤害为 0 ,即不修改
#   - 角色、职业、武器、护甲、敌人、状态的备注栏中填入下式,即可对暴击进行修改
#      <Certain Crit>      效果: 必定暴击
#      <Certain Be Crited> 效果: 必定被暴击(免疫暴击无效)
#      <Resist Crit>       效果: 免疫暴击
#      - 注:当攻击者为必定暴击,被攻击者为免疫暴击时,按通常暴击概率计算
#   - 角色、职业、武器、护甲、敌人、状态的备注栏中填入下式,即可对暴击伤害进行修改
#      <Crit Damage: 数字> 或 <Crit Damage: 数字%>
#        作用:造成的暴击伤害增加 数字/100 的比例(全部之间为加法叠加)
#      <Be Crited Damage: 数字> 或 <Be Crited Damage: 数字%>
#        作用:被造成的暴击伤害增加 数字/100 的比例(全部之间为加法叠加)
#      - 注:数字可为负数,若最终计算的暴击伤害加成结果为负数,则直接算作普通攻击伤害
#   - 举例:
#       1号护甲的备注中填入 <Crit Damage: 200>,1号角色装备中
#       1号状态的备注中填入 <Crit Damage: -100%>,1号角色被附加了该状态
#       1号敌人的备注中填入 <Be Crited Damage: 300>,1号角色暴击了1号敌人
#       效果:其造成的暴击伤害为 普通伤害的 (100 + 200 - 100 + 300)/100 倍,即5倍
#
#   - 实质:给战斗者新增了两个实例方法,用于获取 暴击伤害加成 和 被暴击伤害加成
#==============================================================================

class Game_BattlerBase
  #--------------------------------------------------------------------------
  # ○ 必定暴击?
  #--------------------------------------------------------------------------
  def certain_crit?
    @crit_params[0]
  end
  #--------------------------------------------------------------------------
  # ○ 必定被暴击?
  #--------------------------------------------------------------------------
  def certain_be_crited?
    @crit_params[1]
  end
  #--------------------------------------------------------------------------
  # ○ 免疫暴击?
  #--------------------------------------------------------------------------
  def resist_crit?
    @crit_params[2]
  end
  #--------------------------------------------------------------------------
  # ○ 暴击伤害加成(百分数)
  #--------------------------------------------------------------------------
  def crit_damage
    @crit_params[3]
  end
  #--------------------------------------------------------------------------
  # ○ 被暴击伤害加成(百分数)
  #--------------------------------------------------------------------------
  def be_crited_damage
    @crit_params[4]
  end
  #--------------------------------------------------------------------------
  # ○ 获取用于计算暴击伤害的数组
  #--------------------------------------------------------------------------
  def get_crit_damage_array
    []
  end
  #--------------------------------------------------------------------------
  # ○ 重新获取暴击各项参数值
  #--------------------------------------------------------------------------
  def reget_crit_params
    # [必定暴击?, 必定被暴击?, 免疫暴击?, 暴击伤害, 被暴击伤害]
    @crit_params = [false, false, false, 100, 0]
    get_crit_damage_array.each do |a|
      next if a == nil
      @crit_params[0] = true if a.note =~ /<Certain Crit>/
      @crit_params[1] = true if a.note =~ /<Certain Be Crited>/
      @crit_params[2] = true if a.note =~ /<Resist Crit>/
      @crit_params[3] += $1.to_i if a.note =~ /<Crit Damage: *(-?\d+)%?>/
      @crit_params[4] += $1.to_i if a.note =~ /<Be Crited Damage: *(-?\d+)%?>/
    end
  end
end

class Game_Battler < Game_BattlerBase
  #--------------------------------------------------------------------------
  # ● 计算伤害
  #--------------------------------------------------------------------------
  alias eagle_crit_damage_make_damage_value make_damage_value
  def make_damage_value(user, item)
    @skill_user = user
    @skill_user.reget_crit_params
    reget_crit_params
    unless @skill_user.certain_crit? && resist_crit?
      @result.critical = true  if @skill_user.certain_crit?
      @result.critical = false if resist_crit?
    end
    @result.critical = true if certain_be_crited?
    eagle_crit_damage_make_damage_value(user, item)
  end
  #--------------------------------------------------------------------------
  # ● 应用关键一击
  #--------------------------------------------------------------------------
  def apply_critical(damage)
    damage * (1 + calc_crit_damage)
  end
  #--------------------------------------------------------------------------
  # ○ 计算最终的暴击伤害加成
  #--------------------------------------------------------------------------
  def calc_crit_damage
    value = (@skill_user.crit_damage + self.be_crited_damage) / 100
    return value < 0 ? 0 : value
  end
end

class Game_Actor < Game_Battler
  #--------------------------------------------------------------------------
  # ○ 获取用于计算暴击伤害的数组
  #--------------------------------------------------------------------------
  def get_crit_damage_array
    [actor, self.class] + equips + states
  end
end

class Game_Enemy < Game_Battler
  #--------------------------------------------------------------------------
  # ○ 获取用于计算暴击伤害的数组
  #--------------------------------------------------------------------------
  def get_crit_damage_array
    [enemy] + states
  end
end[/pre][/fold]

[fold=伤害吸血与反弹 2023.3.25 技能使用者清空result避免反复被状态扣血][pre lang="ruby"]#==============================================================================
# ■ 伤害吸血与反弹  by 老鹰
#------------------------------------------------------------------------------
#   - 新增对所有造成的伤害的吸血、反弹的处理(先吸血、再反弹)
#   - 角色、职业、武器、护甲、敌人、状态的备注栏中填入下式,即可对伤害反弹进行设置
#    <HP Rebound: 伤害反弹比例(%)>
#     - 伤害反弹比例(%) : 填入对最终伤害的反弹的比例,为百分数,%可省略
#    <Resist HP Rebound: 抵抗反弹比例(%)>
#     - 抵抗反弹比例(%) : 填入对最终伤害的抵抗反弹的比例,为百分数,%可省略
#   - 角色、职业、武器、护甲、敌人、状态的备注栏中填入下式,即可对伤害吸血进行设置
#    <HP Drain: 吸血比例(%) 吸血概率分子 吸血概率分母>
#     - 吸血比例(%) : 填入最终伤害的吸血比例,为百分数,%可加可不加
#     - 概率分子分母 : 吸血的概率为 分子/分母,可不填,默认为 1
#    <Resist HP Drain: 抵抗吸血比例(%) 抵抗概率分子 抵抗概率分母>
#     - 抵抗比例(%) : 被吸血时,比例要减去的值,默认为 0
#     - 抵抗分子分母 : 抵抗的概率为 分子/分母,进行吸血处理时,要减去该概率,默认为 0
#   - 举例:
#    1 号角色备注内填入了 <HP Drain: 20%>
#     - 1号角色造成的所有伤害,会吸取伤害的 20% (不超过目标的当前hp值)回复自己
#    1 号敌人备注内填入了 <Resist HP Drain: 10%, 1,5>
#    1 号角色备注内填入了 <HP Drain: 20%, 1,2>
#     - 1号角色攻击1号敌人,有 1/2 - 1/5 的概率 吸取伤害的 20% - 10% 回复自己
#
#   - 实质:在真正实行伤害加减时,先进行吸血操作的处理;在计算完伤害后,进行反弹计算
#==============================================================================

class Game_ActionResult
  #--------------------------------------------------------------------------
  # ○ 生成反弹数值
  #--------------------------------------------------------------------------
  def execute_equips_hp_rebound(user)
    return if @hp_damage <= 0
    rate = (@battler.hp_rebound_rate - user.resist_hp_rebound_rate) / 100.0
    return if rate <= 0
    value = (@hp_damage * rate).to_i
    user.result.hp_damage += value
  end
  #--------------------------------------------------------------------------
  # ○ 生成吸血数值
  #--------------------------------------------------------------------------
  def execute_equips_hp_drain(user)
    return if @hp_damage <= 0
    pro = user.hp_drain_pro - @battler.resist_hp_drain_pro
    return if pro < 1 && (pro < 0 || rand > pro)
    rate = (user.hp_drain_rate - @battler.resist_hp_drain_rate) / 100.0
    return if rate <= 0
    @hp_drain += (@hp_damage * rate).to_i
    @hp_drain = [@battler.hp, @hp_drain.to_i].min
  end
end

class Game_BattlerBase
  #--------------------------------------------------------------------------
  # ○ 获取用于计算吸血相关的数组
  #--------------------------------------------------------------------------
  def get_hp_drain_array
    []
  end
  #--------------------------------------------------------------------------
  # ○ 重新获取吸血与反弹的相关参数
  #--------------------------------------------------------------------------
  def reget_hp_drain_params
    # 数组依次存储 [吸血比例 吸血概率 抗吸血比例 抗吸血概率]
    @hp_drain_params = [0, 0, 0, 0]
    # [反弹比例 抗反弹比例]
    @hp_rebound_params = [0, 0]
    get_hp_drain_array.each do |a|
      next if a == nil
      if a.note =~ /<HP Drain: *(-?\d+)%?[ ,]*(\d*)[ ,]*(\d*)>/
        @hp_drain_params[0] = $1.to_i
        pro1 = $2 == "" ? 1 : $2.to_i
        pro2 = $3 == "" ? 1 : $3.to_i
        @hp_drain_params[1] = pro1 * 1.0 / pro2
      end
      if a.note =~ /<Resist HP Drain: *(-?\d+)%?[ ,]*(\d*)[ ,]*(\d*)>/
        @hp_drain_params[2] = $1.to_i
        pro1 = $2 == "" ? 1 : $2.to_i
        pro2 = $3 == "" ? 1 : $3.to_i
        @hp_drain_params[3] = pro1 * 1.0 / pro2
      end
      @hp_rebound_params[0] = $1.to_i if a.note =~ /<HP Rebound: *(-?\d+)%?>/
      @hp_rebound_params[1] = $1.to_i if a.note =~ /<Resist HP Rebound: *(-?\d+)%?>/
    end
  end
  #--------------------------------------------------------------------------
  # ○ 吸血比例与概率
  #--------------------------------------------------------------------------
  def hp_drain_rate
    @hp_drain_params[0]
  end
  def hp_drain_pro
    @hp_drain_params[1]
  end
  #--------------------------------------------------------------------------
  # ○ 抗吸血比例与概率
  #--------------------------------------------------------------------------
  def resist_hp_drain_rate
    @hp_drain_params[2]
  end
  def resist_hp_drain_pro
    @hp_drain_params[3]
  end
  #--------------------------------------------------------------------------
  # ○ 伤害反弹比例
  #--------------------------------------------------------------------------
  def hp_rebound_rate
    @hp_rebound_params[0]
  end
  #--------------------------------------------------------------------------
  # ○ 抗反弹比例
  #--------------------------------------------------------------------------
  def resist_hp_rebound_rate
    @hp_rebound_params[1]
  end
end

class Game_Battler < Game_BattlerBase
  #--------------------------------------------------------------------------
  # ● 计算伤害
  #--------------------------------------------------------------------------
  alias eagle_equips_hp_rebound_make_damage_value make_damage_value
  def make_damage_value(user, item)    user.result.clear
    user.reget_hp_drain_params
    reget_hp_drain_params
    eagle_equips_hp_rebound_make_damage_value(user, item)
    @result.execute_equips_hp_rebound(user)
  end
  #--------------------------------------------------------------------------
  # ● 执行伤害
  #--------------------------------------------------------------------------
  alias eagle_equips_hp_drain_execute_damage execute_damage
  def execute_damage(user)
    @result.execute_equips_hp_drain(user)
    eagle_equips_hp_drain_execute_damage(user)
    user.hp -= user.result.hp_damage if user != self
  end
end

class Game_Actor < Game_Battler
  #--------------------------------------------------------------------------
  # ○ 获取用于计算吸血相关的数组
  #--------------------------------------------------------------------------
  def get_hp_drain_array
    [actor, self.class] + equips + states
  end
end

class Game_Enemy < Game_Battler
  #--------------------------------------------------------------------------
  # ○ 获取用于计算吸血相关的数组
  #--------------------------------------------------------------------------
  def get_hp_drain_array
    [enemy] + states
  end
end

class Scene_Battle
  #--------------------------------------------------------------------------
  # ● 战斗行动结束时的处理
  #--------------------------------------------------------------------------
  alias eagle_hp_drain_process_action_end process_action_end
  def process_action_end
    all_battle_members.each { |m| m.result.clear_damage_values }
    eagle_hp_drain_process_action_end
  end
end[/pre][/fold]

[fold=属性减抗与比例加成 2017.6.16 修改,重新整合va默认的属性有效度][pre lang="ruby"]#==============================================================================
# ■ 属性减抗与比例加成  by 老鹰
#------------------------------------------------------------------------------
#   - 新增对属性伤害减抗和加成的修改,新增四个属性的结果标志
#   - 伤害先乘以自身的属性加成比例,再执行对敌人的减抗、伤害乘以抗性比例
#   - 角色、职业、武器、护甲、敌人、状态的备注栏中填入下式,即可对属性伤害加成进行设置
#        (单个备注栏中可重复填入多行)
#      <Element Damage Plus Rate: 属性id, 伤害加成比例(%)>
#       - 属性id :需要设置的属性的id(从1开始,具体见数据库-用语-属性中左侧数字)
#       - 伤害加成比例 : 需要附加的属性伤害加成比例(百分数),默认为 0%,可为负数
#          注:当加成比例被减少至小于 0% 时,伤害取为 0
#      <Anti Element Risist Rate: 属性id, 减抗比例(%)>
#       - 属性id :需要设置的属性的id(从1开始,具体见数据库-用语-属性中左侧数字)
#       - 减抗比例 : 需要降低的敌方属性抗性比例(百分数),默认为 0%,负数无效
#   - 举例:
#      1号角色有 <Element Damage Plus Rate: 1, 200%><Anti Element Risist Rate: 1, 20>
#      1号敌人1号属性伤害比例为 80%(即抗性为 20%),1号角色攻击它
#       - 效果:伤害中对于属性的调整比例为 (0.8 + 0.2) * (1.0 + 2.0) = 3.0
#      2号角色有 <Element Damage Plus Rate: 1, 10><Anti Element Risist Rate: 1, 100%>
#      2号敌人1号属性伤害比例为 30%(即抗性为 70%),2号角色攻击它
#       - 效果:伤害中对于属性的调整比例为 (0.3 + 1.0) * (1.0 + 0.1) = 1.43
#   - 实质:
#      完全覆盖了伤害计算时获取属性抗性的方法,
#      如有其它脚本同样进行了修改,请尝试将本脚本放在它们上方便于整合
#==============================================================================

class Game_ActionResult
  #--------------------------------------------------------------------------
  # ○ 新增结果标志
  #--------------------------------------------------------------------------
  attr_accessor :element_resist              # 属性抵抗的标志
  attr_accessor :element_weak                # 属性弱点的标志
  attr_accessor :element_final_resist        # 增加使用者属性加成后属性抵抗
  attr_accessor :element_final_weak          # 增加使用者属性加成后属性弱点
  #--------------------------------------------------------------------------
  # ● 清除标志
  #--------------------------------------------------------------------------
  alias eagle_elements_rate_clear_hit_flags clear_hit_flags
  def clear_hit_flags
    eagle_elements_rate_clear_hit_flags
    @element_resist       = false
    @element_final_resist = false
    @element_weak         = false
    @element_final_weak   = false
  end
end

class Game_Battler < Game_BattlerBase
  #--------------------------------------------------------------------------
  # ● 获取技能/物品的属性修正值(覆盖原方法)
  #--------------------------------------------------------------------------
  alias eagle_origin_item_element_rate item_element_rate
  def item_element_rate(user, item)
    get_user_elements_rate_hash(user)
    rate = eagle_origin_item_element_rate(user, item)
    @result.element_weak   = true if rate > 1
    @result.element_resist = true if rate < 1
    if item.damage.element_id < 0
      rate = user.atk_elements.empty? ? 1.0 : elements_max_rate(user.atk_elements)
    else
      rate = element_rate(item.damage.element_id) + @user_elements_rate[item.damage.element_id][1]
    end
    rate *= @user_elements_rate[item.damage.element_id][0]
    @result.element_final_weak   = true if rate > 1
    @result.element_final_resist = true if rate < 1
    rate < 0 ? 0.0 : rate
  end
  #--------------------------------------------------------------------------
  # ● 获取属性的最大修正值,返回所有属性中最有效的一个(覆盖原方法)
  #     elements : 属性 ID 数组
  #--------------------------------------------------------------------------
  def elements_max_rate(elements)
    elements.inject([0.0]) {|r, i| r.push(element_rate(i) + @user_elements_rate[1]) }.max
  end
  #--------------------------------------------------------------------------
  # ○ 重新计算技能使用者的属性加成值
  #--------------------------------------------------------------------------
  def get_user_elements_rate_hash(user)
    # [加成比例, 减抗比例]
    @user_elements_rate = Array.new($data_system.elements.size) { [1.0, 0.0] }
    user.get_element_rate_array.each do |i|
      next if i == nil
      i.note.split(/[\r\n]+/).each do |line|
        if line =~ /<Element Damage Plus Rate: *(\d+)[ ,]*(-?\d+)%?>/
          @user_elements_rate[$1.to_i][0] += ($2.to_i / 100.0)
        end
        if line =~ /<Anti Element Risist Rate: *(\d+)[ ,]*(-?\d+)%?>/
          @user_elements_rate[$1.to_i][1] += ($2.to_i / 100.0).abs
        end
      end
    end
  end
  #--------------------------------------------------------------------------
  # ○ 获取用于计算属性伤害相关的数组
  #--------------------------------------------------------------------------
  def get_element_rate_array
    []
  end
end

class Game_Actor < Game_Battler
  #--------------------------------------------------------------------------
  # ○ 获取用于计算属性伤害相关的数组
  #--------------------------------------------------------------------------
  def get_element_rate_array
    [actor, self.class] + equips + states
  end
end

class Game_Enemy < Game_Battler
  #--------------------------------------------------------------------------
  # ○ 获取用于计算属性伤害相关的数组
  #--------------------------------------------------------------------------
  def get_element_rate_array
    [enemy] + states
  end
end[/pre][/fold]

新版本请见这里
[fold=游戏加速 2017.7.13 离开地图场景时恢复原状][pre lang="ruby"]#==============================================================================
# ■ 按住Ctrl加速 by 老鹰
#------------------------------------------------------------------------------
#   - 在 地图上/战斗中 按住Ctrl键进行画面刷新加速
#   - 实质:强制将帧数提高至 120 帧,故有些很吃帧数的脚本可能会崩溃
#   - 实现:新建一个控制模块,在scene map/scene battle中刷新按键
#        在Spriteset_Map/Spriteset_Battle中绑定一个精灵显示“加速中”提示图片
#==============================================================================

module EAGLE
module SpeedUp
  #--------------------------------------------------------------------------
  # ● 控制加速的按键
  #--------------------------------------------------------------------------
  KEY = :CTRL
  #--------------------------------------------------------------------------
  # ● 放置于 Graphics/System 下的“加速中”图片
  #  若为 空字符串 "" ,则为脚本默认绘制提示图片
  #--------------------------------------------------------------------------
  FILE_NAME = ""
  #--------------------------------------------------------------------------
  # ● 加速中?
  #--------------------------------------------------------------------------
  @speed_up = false  # 是否在加速的flag
  def self.speed_up?
    @speed_up
  end
  #--------------------------------------------------------------------------
  # ● 更新加速
  #--------------------------------------------------------------------------
  def self.update_speed_up
    if Input.press?(KEY)
      if Graphics.frame_rate == 60
        Graphics.frame_rate = 120
        @speed_up = true
      end
    else
      reset unless Graphics.frame_rate == 60
    end
  end
  #--------------------------------------------------------------------------
  # ● 重置
  #--------------------------------------------------------------------------
  def self.reset
    @speed_up = false
    Graphics.frame_rate = 60
    Graphics.frame_reset
  end
end
end

class Sprite_Hint_SpeedUp < Sprite
  #--------------------------------------------------------------------------
  # ● 初始化对象
  #--------------------------------------------------------------------------
  def initialize(viewport = nil)
    super(viewport)
    redraw
    self.opacity = @d_opacity = 0
    self.x = Graphics.width / 2 - self.bitmap.width / 2
    self.y = @dy = 20
  end
  #--------------------------------------------------------------------------
  # ● 绘制提示位图
  #--------------------------------------------------------------------------
  def redraw
    file = EAGLE::SpeedUp::FILE_NAME
    return self.bitmap = Cache.system(file) if file != ""
    self.bitmap = Bitmap.new(200, 32)
    color1 = Color.new(0,0,0, 0)
    color2 = Color.new(0,0,0, 200)
    self.bitmap.gradient_fill_rect(0, 0, 100, 32, color1, color2)
    self.bitmap.gradient_fill_rect(100, 0, 100, 32, color2, color1)
    self.bitmap.font.size = 21
    self.bitmap.draw_text(0,0,200,32, "- 加速中 -", 1) # 此处修改提示文字
  end
  #--------------------------------------------------------------------------
  # ● 控制
  #--------------------------------------------------------------------------
  def move_in
    @dy = 100  # 此处修改图片显示的暂停y值
    @d_opacity = 255
  end
  def move_out
    @dy = 40 # 此处修改图片移出的最终y值
    @d_opacity = 0
  end
  #--------------------------------------------------------------------------
  # ● 更新
  #--------------------------------------------------------------------------
  def update
    super
    if(EAGLE::SpeedUp.speed_up?)
      move_in
    else
      move_out
    end
    return if @d_opacity == self.opacity
    d = @dy - self.y
    self.y += (d.abs > 9 ? d / 9 : d)
    self.opacity += (@d_opacity > self.opacity ? 20 : -20)
  end
  #--------------------------------------------------------------------------
  # ● 释放
  #--------------------------------------------------------------------------
  def dispose
    super
    self.bitmap.dispose
  end
end

class Scene_Map < Scene_Base
  #--------------------------------------------------------------------------
  # ● 更新
  #--------------------------------------------------------------------------
  alias eagle_hint_speed_up_update update
  def update
    eagle_hint_speed_up_update
    EAGLE::SpeedUp.update_speed_up
  end
  #--------------------------------------------------------------------------
  # ● 结束前处理
  #--------------------------------------------------------------------------
  alias eagle_hint_speed_up_pre_terminate pre_terminate
  def pre_terminate
    EAGLE::SpeedUp.reset
    eagle_hint_speed_up_pre_terminate
  end
end

class Spriteset_Map
  #--------------------------------------------------------------------------
  # ● 初始化对象
  #--------------------------------------------------------------------------
  alias eagle_hint_speed_up_initialize initialize
  def initialize
    @hint_speed_up = Sprite_Hint_SpeedUp.new
    eagle_hint_speed_up_initialize
  end
  #--------------------------------------------------------------------------
  # ● 更新
  #--------------------------------------------------------------------------
  alias eagle_hint_speed_up_update update
  def update
    eagle_hint_speed_up_update
    @hint_speed_up.update
  end
  #--------------------------------------------------------------------------
  # ● 释放
  #--------------------------------------------------------------------------
  alias eagle_hint_speed_up_dispose dispose
  def dispose
    eagle_hint_speed_up_dispose
    @hint_speed_up.dispose
  end
end

class Scene_Battle < Scene_Base
  #--------------------------------------------------------------------------
  # ● 基础更新
  #--------------------------------------------------------------------------
  alias eagle_hint_speed_up_update_basic update_basic
  def update_basic
    eagle_hint_speed_up_update_basic
    EAGLE::SpeedUp.update_speed_up
  end
end

class Spriteset_Battle
  #--------------------------------------------------------------------------
  # ● 初始化对象
  #--------------------------------------------------------------------------
  alias eagle_hint_speed_up_initialize initialize
  def initialize
    @hint_speed_up = Sprite_Hint_SpeedUp.new
    eagle_hint_speed_up_initialize
  end
  #--------------------------------------------------------------------------
  # ● 更新
  #--------------------------------------------------------------------------
  alias eagle_hint_speed_up_update update
  def update
    eagle_hint_speed_up_update
    @hint_speed_up.update
  end
  #--------------------------------------------------------------------------
  # ● 释放
  #--------------------------------------------------------------------------
  alias eagle_hint_speed_up_dispose dispose
  def dispose
    eagle_hint_speed_up_dispose
    @hint_speed_up.dispose
  end
end[/pre][/fold]


[fold=开局敌人变异(一种) 2017.6.23][pre lang="ruby"]#==============================================================================
# ■ 开局敌人变异(一种)  by 老鹰
#------------------------------------------------------------------------------
#   - 新增在战斗开始前对敌人预设的概率变化的处理
#   - 敌人的备注栏中填入下式,即可设置敌人的变异(只能填入一行)
#      (可用英文逗号或空格分隔各项)
#      <Enemy Evolve: 新敌人id, 变异概率分子, 变异概率分母, 出现条件>
#       - 新敌人id - 要变化成的目标敌人的id号
#       - 变异概率分子/分母(可选):变异概率为 分子/分母,不填时默认取 1/1
#       - 出现条件(可选):被eval后返回真时,才触发变异概率计算,默认取真
#          注:可用 s 代替 $game_switches, v 代替 $game_variables
#   - 实质:在敌群中处理同名敌人前进行敌人变化
#==============================================================================

class Game_Troop < Game_Unit
  alias eagle_enemy_evolve_make_unique_names make_unique_names
  def make_unique_names
    members.each do |enemy|
      next unless enemy.alive?
      enemy.enemy.note =~ /<Enemy Evolve: *(\d+)[, ]*(\d*)[, ]*(\d*)[, ]*(.*)>/
      next unless $1
      s = $game_switches; v = $game_variables
      next if $4 != "" && eval($4) == false
      p1 = $2 == "" ? 1 : $2.to_i
      p2 = $3 == "" ? 1 : $3.to_i
      next if rand > (p1 * 1.0 / p2)
      enemy.transform($1.to_i)
    end
    eagle_enemy_evolve_make_unique_names
  end
end[/pre][/fold]

[fold=开局敌人变异(多种) 2017.6.23][pre lang="ruby"]#==============================================================================
# ■ 开局敌人变异(多种)  by 老鹰
#------------------------------------------------------------------------------
#   - 新增在战斗开始前对敌人预设的概率变化的处理
#   - 敌人的备注栏中填入下式,即可设置敌人的变异总分母
#      <Enemy Evolve P: 变异总分母>
#       - 变异总分母:设置所有变异发生的总分母,如果不填,则默认取 100
#          注:当所有变异比例因子之和大于总分母时,一定发生一种变异
#   - 敌人的备注栏中填入下式,即可设置敌人的变异(可填入多行)
#      (可用英文逗号或空格分隔各项)
#      <Enemy Evolve: 新敌人id, 变异比例因子, 出现条件>
#       - 新敌人id: 要变化成的目标敌人的id号
#       - 变异比例因子:变异概率为 比例因子/总分母
#       - 出现条件(可选):被eval后返回真时,才加入变异池中计算,默认取真
#          注:可用 s 代替 $game_switches, v 代替 $game_variables
#   - 实质:在敌群中处理同名敌人前进行敌人变化
#==============================================================================

class Game_Troop < Game_Unit
  alias eagle_enemy_evolve_make_unique_names make_unique_names
  def make_unique_names
    members.each do |enemy|
      next unless enemy.alive?
      enemy.enemy.note =~ /<Enemy Evolve P: *(\d+)/
      p2 = $1 ? $1.to_i : 100
      temp = {} # id => p
      enemy.enemy.note.split(/[\r\n]+/).each do |line|
        line =~ /<Enemy Evolve: *(\d+)[, ]*(\d*)[, ]*(.*)>/
        next unless $1
        s = $game_switches; v = $game_variables
        next if $3 != "" && eval($3) == false
        p1 = $2 == "" ? 1 : $2.to_i
        temp[$1.to_i] = p1
      end
      t = rand(p2) + 1 # 范围 1-p2
      temp.each do |key, value|
        t -= value
        break enemy.transform(key) if t <= 0
      end
    end
    eagle_enemy_evolve_make_unique_names
  end
end[/pre][/fold]

◇ 后记


喵喵喵?!每次编辑帖子都会把那个前置的标签tag给重置回 无 ……
还是就弄成 交流讨论 吧,不然我以后怎么更新帖子

评分

参与人数 16星屑 +482 梦石 +2 赞 +8 收起 理由
c571811558 + 1 塞糖
蔚蓝色四叶 + 1 精品文章
Nalfie + 1 精品文章
alexncf125 + 1 塞糖
p12313461 + 1 精品文章
世界第一中二 + 1 老鹰大大超强的(* ̄︶ ̄)
1060272572 + 1 精品文章
苏达罗 + 1 塞糖
W.Q.C. + 66 我鹰超强的
无名小兵 + 30 塞糖

查看全部评分

梦石
0
星屑
878
在线时间
576 小时
注册时间
2010-6-26
回帖
709
发表于 2017-6-7 15:19:07 来自手机 | 显示全部楼层
感谢大佬的脚本
回复

使用道具 举报

梦石
1
星屑
3913
在线时间
592 小时
注册时间
2007-8-14
回帖
141
发表于 2017-6-7 23:38:09 | 显示全部楼层
鹰老大贼帅!
回复

使用道具 举报

老鹰

梦石
40
星屑
37812
在线时间
7091 小时
注册时间
2012-5-26
回帖
3297

极短24评委极短23参与极短22参与极短21评委老司机慢点开短篇十吟唱者组别冠军开拓者剧作品鉴家

 楼主| 发表于 2017-6-23 12:33:47 | 显示全部楼层
都不知道沉到哪里去了……
自己都翻不到

评分

参与人数 1星屑 +10 收起 理由
迷失炎 + 10 帮顶o o

查看全部评分

回复 1 0

使用道具 举报

梦石
0
星屑
310
在线时间
44 小时
注册时间
2017-7-8
回帖
24
发表于 2017-7-19 15:41:33 | 显示全部楼层
游戏加速 2017.7.13    这个我用了后效果挺好的。但是地图中走动时加速,人物能穿墙。我也不懂代码,能不能取消平时加速,仅仅战斗中可用

点评

注释掉119行就能取消掉地图上加速的更新  发表于 2017-7-19 18:11
穿墙是因为测试模式下按住ctrl键的效果,你可以更换本脚本的按键  发表于 2017-7-19 18:10
回复

使用道具 举报

梦石
0
星屑
4627
在线时间
818 小时
注册时间
2017-7-14
回帖
116

开拓者

发表于 2017-12-28 00:49:07 | 显示全部楼层
大佬,吸血脚本,如果设置成20%,那么伤害也降低成20%了
比如没备注伤害为1000,备注20%吸血后,伤害变为200伤害和吸200点气血
,,这是我设置错误吗?

点评

o ,好吧,谢谢你!  发表于 2017-12-28 17:19
你只要换一个能在一次行动中显示技能使用者和被使用者的伤害pop数字的战斗系统,比如yea-battle system(应该……)等,就知道了。  发表于 2017-12-28 16:19
默认的战斗系统中对于log窗口显示文本,吸血log会优先于伤害log(即有吸血时就不会再显示一遍造成伤害,因为默认里这两值一定是相同的)  发表于 2017-12-28 16:16
我这边测试后,伤害依旧是1000点,吸血200点无问题,你这个疑惑可能是因为默认的log显示机制问题,也就是吸血优先级比伤害高,就没显示1000点伤害  发表于 2017-12-28 16:14
回复

使用道具 举报

梦石
0
星屑
4627
在线时间
818 小时
注册时间
2017-7-14
回帖
116

开拓者

发表于 2017-12-30 17:32:42 | 显示全部楼层
大佬,还能问你一个问题吗?《属性减抗与比例加成》这个脚本可以改成读取备注里面的公式吗?如读取备注里面的变量,
你的暴击与暴击伤害我改成了@crit_params[3] += note.match(/<Crit Damage: *(\S*)>/) ? eval($1) : 0 这样子就可以读取了,
《属性减抗与比例加成》不知道怎么改。我想用变量控制比例。

点评

谢谢大佬,已经解决了,(*^__^*) 嘻嘻  发表于 2017-12-30 18:26
是对$2进行eval,$1返回的是属性id  发表于 2017-12-30 18:06
84行和87行里,你可以尝试把(-?\d+)改成(-?.*?),然后对$1进行eval,这样可以在里面写$game_variables[id]调用变量的值  发表于 2017-12-30 18:06
回复

使用道具 举报

梦石
0
星屑
322
在线时间
19 小时
注册时间
2018-1-22
回帖
41
发表于 2018-1-27 11:34:19 | 显示全部楼层
请问下大佬状态影响伤害里面
#1这里指的是状态ID 后面[0,[1]]这里指的是被状态影响的技能,哪里是调整影响伤害的百分比的?

module EAGLE
  State_affect_skills_id = {
#状态id => [最终伤害百分比, [被该状态所影响的技能的id号的数组]]
    #1 => [0, [1]],
    #22 => [0, [1,3,4,5]],
  }

  State_affect_skill_type_id = {
#状态id => [最终伤害百分比, [被该状态所影响的技能类型id号数组]]
    22 => [0, [0]],
  }

点评

0就是完全免疫,1就是伤害变为原来的1%;不负责显示方面的问题,因为每个人的美化系统太多样……  发表于 2018-1-27 11:55
1就是最终伤害只有原先的%;这个属于显示方面的问题,默认吸血=伤害,所以就有个日志覆盖操作,你随便找个新的战斗日志or伤害pop吧  发表于 2018-1-27 11:54
大佬能不能在吸血里面加个显示优先度....这样跟伤害显示就不冲突了  发表于 2018-1-27 11:49
而且吸血系统同样伤害数字无法正常显示......显示吸血伤害的优先度哪里调整的...我的显血系统调整优先度,没有用的....吸血默认跟伤害是相同的  发表于 2018-1-27 11:48
[0,[1,2,3,4]] 0是百分比吗? 比如调整成 1 出现什么样的效果呢?  发表于 2018-1-27 11:35
回复

使用道具 举报

梦石
0
星屑
322
在线时间
19 小时
注册时间
2018-1-22
回帖
41
发表于 2018-1-27 11:59:43 | 显示全部楼层
你只要换一个能在一次行动中显示技能使用者和被使用者的伤害pop数字的战斗系统,比如yea-battle system(应该……)等,就知道了。

请问大佬这个是什么系统- - 我在搜索里找不到 小白萌新 还望大佬指点迷津..... 或者指点一下如何改正显示生命恢复数字的优先度..

点评

有没有比较快捷的方法修正伤害显示不被覆盖...  发表于 2018-1-27 13:03
https://yanflychannel.wordpress.com/ 似乎要翻墙  发表于 2018-1-27 12:12
你随便找个新的战斗日志or伤害pop吧...这个是脚本嘛.....我刚接触到RM游戏制作很多不懂的,就是显示覆盖了伤害的显示...求大佬给我个POP的连接  发表于 2018-1-27 12:06
回复

使用道具 举报

老鹰

梦石
40
星屑
37812
在线时间
7091 小时
注册时间
2012-5-26
回帖
3297

极短24评委极短23参与极短22参与极短21评委老司机慢点开短篇十吟唱者组别冠军开拓者剧作品鉴家

 楼主| 发表于 2018-1-27 13:23:08 | 显示全部楼层
1060272572 发表于 2018-1-27 11:59
你只要换一个能在一次行动中显示技能使用者和被使用者的伤害pop数字的战斗系统,比如yea-battle system(应 ...

如果全是默认的操作or基于默认操作的优化修改
那就在Game_ActionResult类的110行开始的方法里改成

  1. #--------------------------------------------------------------------------
  2. # ● 获取 HP 伤害的文字
  3. #--------------------------------------------------------------------------
  4. def hp_damage_text
  5.   t = ""
  6.   if @hp_damage > 0
  7.     fmt = @battler.actor? ? Vocab::ActorDamage : Vocab::EnemyDamage
  8.     t = sprintf(fmt, @battler.name, @hp_damage)
  9.   elsif @hp_damage < 0
  10.     fmt = @battler.actor? ? Vocab::ActorRecovery : Vocab::EnemyRecovery
  11.     t = sprintf(fmt, @battler.name, Vocab::hp, -hp_damage)
  12.   else
  13.     fmt = @battler.actor? ? Vocab::ActorNoDamage : Vocab::EnemyNoDamage
  14.     t = sprintf(fmt, @battler.name)
  15.   end
  16.   if @hp_drain > 0
  17.     fmt = @battler.actor? ? Vocab::ActorDrain : Vocab::EnemyDrain
  18.     t += sprintf(fmt, @battler.name, Vocab::hp, @hp_drain)
  19.   end
  20.   t
  21. end
复制代码


这样在log里同一行里先显示伤害,然后显示吸血
别问能不能转行,不能,默认的log是个透明选择框,每一行作为一个log(假选项)绘制

难道真的没有人写过一些battle log美化的插件吗

点评

改完之后还是不行...看楼下截图  发表于 2018-1-27 13:32
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部