全新世纪吧 关注:935贴子:23,917
  • 5回复贴,共1

【脚本】并没有什么卵用的PP系统= = 仅全二脚本适用

取消只看楼主收藏回复

是的,我竟然闲的蛋疼成这样,只盼悠哈姐看到不要打死我
PP值就是技能的SP消耗
物品的SP回复就是PP的回复值(这样设置后该物品失去恢复SP能力)
每次战前PP自动恢复,体力越少PP能恢复到的极限越少
无法对带有超杀属性的技能设定
效果图

没有设置该属性的技能不受影响

不一定特技就消耗PP,可以自定义(其实是本人忘了给这个技能设定该效果

原脚本:仿Pokemon特技系统 来源:RM天干宝典

脚本二楼,一楼装不下了= =


IP属地:重庆1楼2016-02-01 23:53回复
    PP_skill = 11#消耗PP的技能属性
    PP_recover = 12 #带有该属性的技能/物品将具有PP恢复/扣除属性,不过技能的脚本还没写所以只有物品能用了ORZ
    class Game_System
    attr_accessor :PP # 特技的点数
    alias vince initialize
    def initialize
    vince
    @PP = []
    a = $data_skills.size - 1
    for i in 1..a
    @PP[i] = $data_skills[i].sp_cost
    end
    end
    #--------------------------------------------------------------------------
    # ● PP校正
    #--------------------------------------------------------------------------
    def PP_correcting
    a = $data_skills.size - 1
    for i in 1..a
    @PP[i] = [@PP[i],$data_skills[i].sp_cost].min
    end
    end
    end
    class Game_Battler
    #--------------------------------------------------------------------------
    # ● 可以使用特技的判定
    # skill_id : 特技 ID
    #--------------------------------------------------------------------------
    alias skill_can_use2? skill_can_use?
    def skill_can_use?(skill_id)
    skill_can_use2?(skill_id)
    # PP 不足的限定技不能使用
    if $game_system.PP[skill_id] < 1 and $data_skills[skill_id].element_set.include?(PP_skill)
    return false
    end
    return true
    end
    alias item_effect2 item_effect
    def item_effect(item)
    item_effect2(item)
    if item.element_set.include?(PP_recover)
    for i in 0..self.skills.size-1
    a = self.skills[i]
    $game_system.PP[a] += recover_sp
    end
    self.sp -= recover_sp
    $game_system.PP_correcting
    end
    end
    end
    class Scene_Battle
    alias make_skill_result2 make_skill_result
    def make_skill_result
    make_skill_result2
    if @skill.element_set.include?(PP_skill)
    @active_battler.sp += @skill.sp_cost
    $game_system.PP[@skill.id] -= 1
    end
    end
    end
    class Window_Skill < Wnd_Selectable
    def draw_item(index)
    skill = @data[index]
    if @actor.skill_can_use?(skill.id)
    self.contents.font.color = normal_color
    else
    self.contents.font.color = disabled_color
    end
    x = 4
    y = index * 24
    self.contents.font.size = 16
    self.contents.font.color = Color.new(69, 39, 0, 255)
    self.contents.font.name = ["方正粗活意简体", "黑体"]
    rect = Rect.new(x, y, self.width / @column_max - 32, 32)
    self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
    bitmap = RPG::Cache.icon(skill.icon_name)
    opacity = self.contents.font.color == Color.new(69, 39, 0, 255) ? 255 : 128
    self.contents.blt(x, y+2, bitmap, Rect.new(0, 0, 24, 24), opacity)
    self.contents.draw_text(x + 28, y-2, 204, 32, skill.name)
    #############################################################################
    if skill.element_set.include?(PP_skill)
    self.contents.draw_text(x + 200, y-2, 48, 32, $game_system.PP[skill.id].to_s + "/" + skill.sp_cost.to_s, 2)
    else
    self.contents.draw_text(x + 220, y-2, 48, 32, skill.sp_cost.to_s)
    end
    ##########################################################################
    end
    end
    class Scene_Battle
    alias prepare2 prepare
    def prepare
    prepare2
    #-----------------------------------
    # PP恢复
    #-----------------------------------
    for index in 0...$game_party.actors.size
    battler = $game_party.actors[index]
    for i in 0..battler.skills.size-1
    a = battler.skills[i]
    $game_system.PP[a] = [battler.hp*$data_skills[a].sp_cost/battler.maxhp,$game_system.PP[a]].max
    end
    end
    end
    end


    IP属地:重庆2楼2016-02-01 23:54
    回复
      class Window_Help_Self < Window_Base
      alias skill2 skill
      def skill(skill)
      # 取得描述
      description = skill.description.clone
      # 取得屬性、附加狀態、解除狀態之副本
      element_set = skill.element_set.clone
      plus_state_set = skill.plus_state_set.clone
      minus_state_set = skill.minus_state_set.clone
      # 過濾不顯示的描述
      element_set -= @unshow[:elements]
      plus_state_set -= @unshow[:states]
      minus_state_set -= @unshow[:states]
      # 初始化設定
      x = 0
      y = 0
      h = 0
      phrase = {}
      scope = {}
      # 基本數據設定
      =begin
      name_size = 名字文字大小
      size = 描述文字大小
      word = 每行的描述文字數
      move = 全體描述偏移幅度
      =end
      name_size = 18
      size = 14
      word = 12
      move = 0
      # 基本文字設定
      phrase[:scope] = "范围:"
      phrase[:power] = "威力:"
      phrase[:cost_sp] = "消耗MP:"
      phrase[:cost_xp] = "消耗XP:"
      phrase[:cost_pp] = "剩余使用次数:"
      phrase[:hit_rate] = "命中率:"
      phrase[:elements] = "攻击属性"
      phrase[:plus] = "附加"
      phrase[:minus] = "解除"
      phrase[:states] = "状态"
      scope[0] = "特殊技能"
      scope[1] = "敌单体"
      scope[2] = "敌全体"
      scope[3] = "我方单体"
      scope[4] = "我方全体"
      scope[5] = "我方昏死(单体)"
      scope[6] = "我方昏死(全体)"
      scope[7] = "自身"
      #由描叙确定高
      h =description.size/3/word
      h += 1 if (description.size%3/word) > 0
      h += 4 #空行,效果范围,消费MP,命中率
      h += 1 unless skill.power.zero?
      h += 1 unless element_set.empty?
      h += 1 unless element_set[4].nil?
      h += plus_state_set.size
      h += minus_state_set.size
      #------------------------------------------------------------------------
      # ● 換算高度
      #------------------------------------------------------------------------
      self.height=h * size + name_size + 32
      self.contents.dispose unless self.contents.nil?
      self.contents = Bitmap.new(self.width - 32, self.height - 32)
      #------------------------------------------------------------------------
      # ● 名字描述
      #------------------------------------------------------------------------
      text = skill.name
      # self.contents.font.color = Color.new(255, 255, 128, 255)
      self.contents.font.color = Color.new(69,39,0)
      self.contents.font.name = ["方正粗活意简体", "黑体"]
      self.contents.font.size = name_size
      if text!=nil
      self.visible = true
      self.contents.draw_text(0,0, text.size*7, name_size, text, 0)
      else
      self.visible = false
      end
      #------------------------------------------------------------------------
      # ● 說明描述
      #------------------------------------------------------------------------
      x = 0
      y += 1
      while (description != ("" or nil))
      text = ""
      word.times do
      t = description.slice!(/./m)
      break if t.nil?
      text += t
      end
      cx = contents.text_size(text).width
      #self.contents.font.color = normal_color
      self.contents.font.size = size
      self.contents.draw_text(0, y*size+5, cx, size, text, 0)
      y+=1
      end
      #------------------------------------------------------------------------
      # ● 攻擊範圍
      #------------------------------------------------------------------------
      text = phrase[:scope] + scope[skill.scope]
      x = 0
      y += 1
      # self.contents.font.color = normal_color
      self.contents.font.size = size
      self.contents.font.color = Color.new(69,39,0)
      self.contents.font.name = ["方正粗活意简体", "黑体"]
      self.contents.draw_text(x, y*size+5, text.size*6, size, text, 0)
      #------------------------------------------------------------------------
      # ● 空一行
      #------------------------------------------------------------------------
      y += 1
      #------------------------------------------------------------------------
      # ● 威力描述
      #------------------------------------------------------------------------
      unless skill.power.zero?
      power = skill.power > 0 ? skill.power : -1 * skill.power
      text = phrase[:power] + power.to_s
      x = 0
      y += 1
      #self.contents.font.color = normal_color
      self.contents.font.size = size
      self.contents.font.color = Color.new(69,39,0)
      self.contents.font.name = ["方正粗活意简体", "黑体"]
      self.contents.draw_text(x, y*size+5, text.size*6, size, text, 0)
      end
      #------------------------------------------------------------------------
      # ● 消費MP描述
      #------------------------------------------------------------------------
      text = phrase[:cost_sp] + skill.sp_cost.to_s
      text = phrase[:cost_pp] + $game_system.PP[skill.id].to_s + "/" + skill.sp_cost.to_s if skill.element_set.include?(PP_skill)
      text = phrase[:cost_xp] + skill.sp_cost.to_s if skill.element_set.include?(10)
      x = 0
      y += 1
      # self.contents.font.color = normal_color
      self.contents.font.size = size
      self.contents.font.color = Color.new(69,39,0)
      self.contents.font.name = ["方正粗活意简体", "黑体"]
      self.contents.draw_text(x, y*size+5, text.size*6, size, text, 0)
      #------------------------------------------------------------------------
      # ● 命中率描述
      #------------------------------------------------------------------------
      text = phrase[:hit_rate] + skill.hit.to_s + "%"
      x = 0
      y += 1
      # self.contents.font.color = normal_color
      self.contents.font.size = size
      self.contents.font.color = Color.new(69,39,0)
      self.contents.font.name = ["方正粗活意简体", "黑体"]
      self.contents.draw_text(x, y*size+5, text.size*6, size, text, 0)
      #------------------------------------------------------------------------
      # ● 攻擊屬性
      #------------------------------------------------------------------------
      if element_set.size > 0
      text=phrase[:elements]
      for i in 0...element_set.size
      if i < 4
      text+=$data_system.elements[element_set[i]]
      else
      break
      end
      end
      x = 0
      y += 1
      # self.contents.font.color = normal_color
      self.contents.font.size = size
      self.contents.font.color = Color.new(69,39,0)
      self.contents.font.name = ["方正粗活意简体", "黑体"]
      self.contents.draw_text(x, y*size+5, text.size*6, size, text, 0)
      end
      if element_set.size >= 5
      text=""
      for i in 4...element_set.size
      text+=$data_system.elements[element_set[i]]
      end
      x= (phrase[:elements].size)*3
      y += 1
      #self.contents.font.color = normal_color
      self.contents.font.size = size
      self.contents.font.color = Color.new(69,39,0)
      self.contents.font.name = ["方正粗活意简体", "黑体"]
      self.contents.draw_text(x, y*size+5, text.size*6, size, text, 0)
      end
      #------------------------------------------------------------------------
      # ● 狀態附加
      #------------------------------------------------------------------------
      unless plus_state_set.empty?
      text= phrase[:plus]
      x = 0
      y += 1
      # self.contents.font.color = normal_color
      self.contents.font.color = Color.new(69,39,0)
      self.contents.font.name = ["方正粗活意简体", "黑体"]
      self.contents.font.size = size
      self.contents.draw_text(x, y*size+5, text.size*6, size, text, 0)
      plus_state_set.each do |plus_state|
      y += 1
      text=$data_states[plus_state].name
      # self.contents.font.color = normal_color
      self.contents.font.size = size
      self.contents.font.color = Color.new(69,39,0)
      self.contents.font.name = ["方正粗活意简体", "黑体"]
      self.contents.draw_text(x, y*size+5, text.size*6, size, text, 0)
      end
      end
      #------------------------------------------------------------------------
      # ●狀態解除
      #------------------------------------------------------------------------
      unless minus_state_set.empty?
      text = phrase[:minus]
      x = 0
      y += 1
      # self.contents.font.color = normal_color
      self.contents.font.color = Color.new(69,39,0)
      self.contents.font.name = ["方正粗活意简体", "黑体"]
      self.contents.font.size=size
      self.contents.draw_text(x, y*size+5, text.size*6, size, text, 0)
      minus_state_set.each do |minus_state|
      y += 1
      text=$data_states[minus_state].name
      # self.contents.font.color = normal_color
      self.contents.font.size=size
      self.contents.font.color = Color.new(69,39,0)
      self.contents.font.name = ["方正粗活意简体", "黑体"]
      self.contents.draw_text(x, y*size+5, text.size*6, size, text, 0)
      end
      end
      end
      end


      IP属地:重庆3楼2016-02-01 23:54
      回复
        class Window_Help_Self < Window_Base
        alias skill2 skill
        def skill(skill)
        # 取得描述
        description = skill.description.clone
        # 取得屬性、附加狀態、解除狀態之副本
        element_set = skill.element_set.clone
        plus_state_set = skill.plus_state_set.clone
        minus_state_set = skill.minus_state_set.clone
        # 過濾不顯示的描述
        element_set -= @unshow[:elements]
        plus_state_set -= @unshow[:states]
        minus_state_set -= @unshow[:states]
        # 初始化設定
        x = 0
        y = 0
        h = 0
        phrase = {}
        scope = {}
        # 基本數據設定
        =begin
        name_size = 名字文字大小
        size = 描述文字大小
        word = 每行的描述文字數
        move = 全體描述偏移幅度
        =end
        name_size = 18
        size = 14
        word = 12
        move = 0
        # 基本文字設定
        phrase[:scope] = "范围:"
        phrase[:power] = "威力:"
        phrase[:cost_sp] = "消耗MP:"
        phrase[:cost_xp] = "消耗XP:"
        phrase[:cost_pp] = "剩余使用次数:"
        phrase[:hit_rate] = "命中率:"
        phrase[:elements] = "攻击属性"
        phrase[:plus] = "附加"
        phrase[:minus] = "解除"
        phrase[:states] = "状态"
        scope[0] = "特殊技能"
        scope[1] = "敌单体"
        scope[2] = "敌全体"
        scope[3] = "我方单体"
        scope[4] = "我方全体"
        scope[5] = "我方昏死(单体)"
        scope[6] = "我方昏死(全体)"
        scope[7] = "自身"
        #由描叙确定高
        h =description.size/3/word
        h += 1 if (description.size%3/word) > 0
        h += 4 #空行,效果范围,消费MP,命中率
        h += 1 unless skill.power.zero?
        h += 1 unless element_set.empty?
        h += 1 unless element_set[4].nil?
        h += plus_state_set.size
        h += minus_state_set.size
        #------------------------------------------------------------------------
        # ● 換算高度
        #------------------------------------------------------------------------
        self.height=h * size + name_size + 32
        self.contents.dispose unless self.contents.nil?
        self.contents = Bitmap.new(self.width - 32, self.height - 32)
        #------------------------------------------------------------------------
        # ● 名字描述
        #------------------------------------------------------------------------
        text = skill.name
        # self.contents.font.color = Color.new(255, 255, 128, 255)
        self.contents.font.color = Color.new(69,39,0)
        self.contents.font.name = ["方正粗活意简体", "黑体"]
        self.contents.font.size = name_size
        if text!=nil
        self.visible = true
        self.contents.draw_text(0,0, text.size*7, name_size, text, 0)
        else
        self.visible = false
        end
        #------------------------------------------------------------------------
        # ● 說明描述
        #------------------------------------------------------------------------
        x = 0
        y += 1
        while (description != ("" or nil))
        text = ""
        word.times do
        t = description.slice!(/./m)
        break if t.nil?
        text += t
        end
        cx = contents.text_size(text).width
        #self.contents.font.color = normal_color
        self.contents.font.size = size
        self.contents.draw_text(0, y*size+5, cx, size, text, 0)
        y+=1
        end
        #------------------------------------------------------------------------
        # ● 攻擊範圍
        #------------------------------------------------------------------------
        text = phrase[:scope] + scope[skill.scope]
        x = 0
        y += 1
        # self.contents.font.color = normal_color
        self.contents.font.size = size
        self.contents.font.color = Color.new(69,39,0)
        self.contents.font.name = ["方正粗活意简体", "黑体"]
        self.contents.draw_text(x, y*size+5, text.size*6, size, text, 0)


        IP属地:重庆4楼2016-02-01 23:55
        收起回复
          @superizumo @sugestaoge @天龙啸 @小囧3344 @v哈姆太郎v @clorycolle
          @wanglinshu110 @挽尊的呵呵 @王于明
          表示总感觉还忘了谁求回复


          IP属地:重庆6楼2016-02-01 23:59
          收起回复
            #把被删的那一楼补上------------------------------------------------------------------------
            # ● 空一行
            #------------------------------------------------------------------------
            y += 1
            #------------------------------------------------------------------------
            # ● 威力描述
            #------------------------------------------------------------------------
            unless skill.power.zero?
            power = skill.power > 0 ? skill.power : -1 * skill.power
            text = phrase[:power] + power.to_s
            x = 0
            y += 1
            #self.contents.font.color = normal_color
            self.contents.font.size = size
            self.contents.font.color = Color.new(69,39,0)
            self.contents.font.name = ["方正粗活意简体", "黑体"]
            self.contents.draw_text(x, y*size+5, text.size*6, size, text, 0)
            end
            #------------------------------------------------------------------------
            # ● 消費MP描述
            #------------------------------------------------------------------------
            text = phrase[:cost_sp] + skill.sp_cost.to_s
            text = phrase[:cost_pp] + $game_system.PP[skill.id].to_s + "/" + skill.sp_cost.to_s if skill.element_set.include?(PP_skill)
            text = phrase[:cost_xp] + skill.sp_cost.to_s if skill.element_set.include?(10)
            x = 0
            y += 1
            # self.contents.font.color = normal_color
            self.contents.font.size = size
            self.contents.font.color = Color.new(69,39,0)
            self.contents.font.name = ["方正粗活意简体", "黑体"]
            self.contents.draw_text(x, y*size+5, text.size*6, size, text, 0)
            #------------------------------------------------------------------------
            # ● 命中率描述
            #------------------------------------------------------------------------
            text = phrase[:hit_rate] + skill.hit.to_s + "%"
            x = 0
            y += 1
            # self.contents.font.color = normal_color
            self.contents.font.size = size
            self.contents.font.color = Color.new(69,39,0)
            self.contents.font.name = ["方正粗活意简体", "黑体"]
            self.contents.draw_text(x, y*size+5, text.size*6, size, text, 0)
            #------------------------------------------------------------------------
            # ● 攻擊屬性
            #------------------------------------------------------------------------
            if element_set.size > 0
            text=phrase[:elements]
            for i in 0...element_set.size
            if i < 4
            text+=$data_system.elements[element_set[i]]
            else
            break
            end
            end
            x = 0
            y += 1
            # self.contents.font.color = normal_color
            self.contents.font.size = size
            self.contents.font.color = Color.new(69,39,0)
            self.contents.font.name = ["方正粗活意简体", "黑体"]
            self.contents.draw_text(x, y*size+5, text.size*6, size, text, 0)
            end
            if element_set.size >= 5
            text=""
            for i in 4...element_set.size
            text+=$data_system.elements[element_set[i]]
            end
            x= (phrase[:elements].size)*3
            y += 1
            #self.contents.font.color = normal_color
            self.contents.font.size = size
            self.contents.font.color = Color.new(69,39,0)
            self.contents.font.name = ["方正粗活意简体", "黑体"]
            self.contents.draw_text(x, y*size+5, text.size*6, size, text, 0)
            end
            #------------------------------------------------------------------------
            # ● 狀態附加
            #------------------------------------------------------------------------
            unless plus_state_set.empty?
            text= phrase[:plus]
            x = 0
            y += 1
            # self.contents.font.color = normal_color
            self.contents.font.color = Color.new(69,39,0)
            self.contents.font.name = ["方正粗活意简体", "黑体"]
            self.contents.font.size = size
            self.contents.draw_text(x, y*size+5, text.size*6, size, text, 0)
            plus_state_set.each do |plus_state|
            y += 1
            text=$data_states[plus_state].name
            # self.contents.font.color = normal_color
            self.contents.font.size = size
            self.contents.font.color = Color.new(69,39,0)
            self.contents.font.name = ["方正粗活意简体", "黑体"]
            self.contents.draw_text(x, y*size+5, text.size*6, size, text, 0)
            end
            end
            #------------------------------------------------------------------------
            # ●狀態解除
            #------------------------------------------------------------------------
            unless minus_state_set.empty?
            text = phrase[:minus]
            x = 0
            y += 1
            # self.contents.font.color = normal_color
            self.contents.font.color = Color.new(69,39,0)
            self.contents.font.name = ["方正粗活意简体", "黑体"]
            self.contents.font.size=size
            self.contents.draw_text(x, y*size+5, text.size*6, size, text, 0)
            minus_state_set.each do |minus_state|
            y += 1
            text=$data_states[minus_state].name
            # self.contents.font.color = normal_color
            self.contents.font.size=size
            self.contents.font.color = Color.new(69,39,0)
            self.contents.font.name = ["方正粗活意简体", "黑体"]
            self.contents.draw_text(x, y*size+5, text.size*6, size, text, 0)
            end
            end
            end
            end
            #完


            IP属地:重庆7楼2016-02-02 00:02
            回复