Atributos sem limites

    tecao98
    tecao98
    Membro Experiente
    Membro Experiente

    Mensagens : 146
    Credibilidade : 17

    Atributos sem limites Empty Atributos sem limites

    Mensagem por tecao98 em Dom Jan 06, 2013 3:06 pm

    Introdução

    Este script faz com que o personagem atinja um atributo que ele não podia alcançar antes por exemplo se seu herói tem 80931 de HP no level 99, no level 100 ele terá 81741 de HP, fora isso ainda aumenta os outros status HP , MP , Ataque e etc.

    Para fazer o Script funcionar cole-o acima de MAIN.

    Script

    Código:
    #===============================================================================
    # * Level sem limites, por momomo - Tradução por NicholasRg
    #===============================================================================
    #
    # Diferente dos outros, este script sobe os atributos proporcionalmente
    # ao que foi definido no database.
    # Ex:se ash tem 80931 de HP no lvl 99, no lvl 100, ele terá 81741.
    #
    #===============================================================================
    # Defina abaixo os Limites dos atributos
      BASE_FINAL_LEVEL = 9999  # Limite do LV
      MAXHP_LIMIT = 99999999    # Limite do HP
      MAXSP_LIMIT = 99999999    # Limite do MP
      STR_LIMIT  = 999999      # Limite da Força
      DEX_LIMIT  = 999999      # Limite da Destreza
      AGI_LIMIT  = 999999      # Limite da Agilidade
      INT_LIMIT  = 999999      # Limite da Inteligência
    # Não altere nada abaixo. (ao menos que saiba oque esteje fazendo)
    class Game_Actor < Game_Battler
      def new_final_level
        lv = BASE_FINAL_LEVEL
        #以下上限LV個別指定用
        #case self.id
        #when 1
        #  lv = 255
        #when 2
        #  lv = 999
        #when 8
        #  lv = 15600
        #end
        return lv
      end
      #--------------------------------------------------------------------------
      # ● EXP 計算
      #--------------------------------------------------------------------------
      def make_exp_list
        actor = $data_actors[@actor_id]
        @exp_list = Array.new(new_final_level + 2)
        @exp_list[1] = 0
        pow_i = 2.4 + actor.exp_inflation / 100.0
        for i in 2..new_final_level + 1
          if i > new_final_level
            @exp_list[i] = 0
          else
            n = actor.exp_basis * ((i + 3) ** pow_i) / (5 ** pow_i)
            @exp_list[i] = @exp_list[i-1] + Integer(n)
          end
        end
      end
      #--------------------------------------------------------------------------
      # ● MaxHP の取得
      #--------------------------------------------------------------------------
      def maxhp
        n = [[base_maxhp + @maxhp_plus, 1].max, MAXHP_LIMIT].min
        for i in @states
          n *= $data_states[i].maxhp_rate / 100.0
        end
        n = [[Integer(n), 1].max, MAXHP_LIMIT].min
        return n
      end
      #--------------------------------------------------------------------------
      # ● 基本 MaxHP の取得
      #--------------------------------------------------------------------------
      def base_maxhp
        n = $data_actors[@actor_id].parameters[0, 1]
        n += $data_actors[@actor_id].parameters[0, 2] * @level
        return n
      end
      #--------------------------------------------------------------------------
      # ● 基本 MaxSP の取得
      #--------------------------------------------------------------------------
      def base_maxsp
        n = $data_actors[@actor_id].parameters[1, 1]
        n += $data_actors[@actor_id].parameters[1, 2] * @level
        return n
      end
      #--------------------------------------------------------------------------
      # ● 基本腕力の取得
      #--------------------------------------------------------------------------
      def base_str
        n = $data_actors[@actor_id].parameters[2, 1]
        n += $data_actors[@actor_id].parameters[2, 2] * @level
        weapon = $data_weapons[@weapon_id]
        armor1 = $data_armors[@armor1_id]
        armor2 = $data_armors[@armor2_id]
        armor3 = $data_armors[@armor3_id]
        armor4 = $data_armors[@armor4_id]
        n += weapon != nil ? weapon.str_plus : 0
        n += armor1 != nil ? armor1.str_plus : 0
        n += armor2 != nil ? armor2.str_plus : 0
        n += armor3 != nil ? armor3.str_plus : 0
        n += armor4 != nil ? armor4.str_plus : 0
        return [[n, 1].max, STR_LIMIT].min
      end
      #--------------------------------------------------------------------------
      # ● 基本器用さの取得
      #--------------------------------------------------------------------------
      def base_dex
        n = $data_actors[@actor_id].parameters[3, 1]
        n += $data_actors[@actor_id].parameters[3, 2] * @level
        weapon = $data_weapons[@weapon_id]
        armor1 = $data_armors[@armor1_id]
        armor2 = $data_armors[@armor2_id]
        armor3 = $data_armors[@armor3_id]
        armor4 = $data_armors[@armor4_id]
        n += weapon != nil ? weapon.dex_plus : 0
        n += armor1 != nil ? armor1.dex_plus : 0
        n += armor2 != nil ? armor2.dex_plus : 0
        n += armor3 != nil ? armor3.dex_plus : 0
        n += armor4 != nil ? armor4.dex_plus : 0
        return [[n, 1].max, DEX_LIMIT].min
      end
      #--------------------------------------------------------------------------
      # ● 基本素早さの取得
      #--------------------------------------------------------------------------
      def base_agi
        n = $data_actors[@actor_id].parameters[4, 1]
        n += $data_actors[@actor_id].parameters[4, 2] * @level
        weapon = $data_weapons[@weapon_id]
        armor1 = $data_armors[@armor1_id]
        armor2 = $data_armors[@armor2_id]
        armor3 = $data_armors[@armor3_id]
        armor4 = $data_armors[@armor4_id]
        n += weapon != nil ? weapon.agi_plus : 0
        n += armor1 != nil ? armor1.agi_plus : 0
        n += armor2 != nil ? armor2.agi_plus : 0
        n += armor3 != nil ? armor3.agi_plus : 0
        n += armor4 != nil ? armor4.agi_plus : 0
        return [[n, 1].max, AGI_LIMIT].min
      end
      #--------------------------------------------------------------------------
      # ● 基本魔力の取得
      #--------------------------------------------------------------------------
      def base_int
        n = $data_actors[@actor_id].parameters[5, 1]
        n += $data_actors[@actor_id].parameters[5, 2] * @level
        weapon = $data_weapons[@weapon_id]
        armor1 = $data_armors[@armor1_id]
        armor2 = $data_armors[@armor2_id]
        armor3 = $data_armors[@armor3_id]
        armor4 = $data_armors[@armor4_id]
        n += weapon != nil ? weapon.int_plus : 0
        n += armor1 != nil ? armor1.int_plus : 0
        n += armor2 != nil ? armor2.int_plus : 0
        n += armor3 != nil ? armor3.int_plus : 0
        n += armor4 != nil ? armor4.int_plus : 0
        return [[n, 1].max, INT_LIMIT].min
      end
      #--------------------------------------------------------------------------
      # ● EXP の変更
      #    exp : 新しい EXP
      #--------------------------------------------------------------------------
      def exp=(exp)
        # ★EXPの上限チェックを解除
        @exp = [exp, 0].max
        # レベルアップ
        while @exp >= @exp_list[@level+1] and @exp_list[@level+1] > 0
          @level += 1
          # スキル習得
          for j in $data_classes[@class_id].learnings
            if j.level == @level
              learn_skill(j.skill_id)
            end
          end
        end
        # レベルダウン
        while @exp < @exp_list[@level]
          @level -= 1
        end
        # 現在の HP と SP が最大値を超えていたら修正
        @hp = [@hp, self.maxhp].min
        @sp = [@sp, self.maxsp].min
      end
      #--------------------------------------------------------------------------
      # ● レベルの変更
      #    level : 新しいレベル
      #--------------------------------------------------------------------------
      def level=(level)
        # 上下限チェック
        # ★LV上限をnew_final_levelでチェックするように変更
        level = [[level, new_final_level].min, 1].max
        # EXP を変更
        self.exp = @exp_list[level]
      end
    end
     
     
    class Game_Battler
      #--------------------------------------------------------------------------
      # ● MaxSP の取得
      #--------------------------------------------------------------------------
      def maxsp
        n = [[base_maxsp + @maxsp_plus, 0].max, MAXSP_LIMIT].min
        for i in @states
          n *= $data_states[i].maxsp_rate / 100.0
        end
        n = [[Integer(n), 0].max, MAXSP_LIMIT].min
        return n
      end
      #--------------------------------------------------------------------------
      # ● 腕力の取得
      #--------------------------------------------------------------------------
      def str
        n = [[base_str + @str_plus, 1].max, STR_LIMIT].min
        for i in @states
          n *= $data_states[i].str_rate / 100.0
        end
        n = [[Integer(n), 1].max, STR_LIMIT].min
        return n
      end
      #--------------------------------------------------------------------------
      # ● 器用さの取得
      #--------------------------------------------------------------------------
      def dex
        n = [[base_dex + @dex_plus, 1].max, DEX_LIMIT].min
        for i in @states
          n *= $data_states[i].dex_rate / 100.0
        end
        n = [[Integer(n), 1].max, DEX_LIMIT].min
        return n
      end
      #--------------------------------------------------------------------------
      # ● 素早さの取得
      #--------------------------------------------------------------------------
      def agi
        n = [[base_agi + @agi_plus, 1].max, AGI_LIMIT].min
        for i in @states
          n *= $data_states[i].agi_rate / 100.0
        end
        n = [[Integer(n), 1].max, AGI_LIMIT].min
        return n
      end
      #--------------------------------------------------------------------------
      # ● 魔力の取得
      #--------------------------------------------------------------------------
      def int
        n = [[base_int + @int_plus, 1].max, INT_LIMIT].min
        for i in @states
          n *= $data_states[i].int_rate / 100.0
        end
        n = [[Integer(n), 1].max, INT_LIMIT].min
        return n
      end
      #--------------------------------------------------------------------------
      # ● MaxHP の設定
      #    maxhp : 新しい MaxHP
      #--------------------------------------------------------------------------
      def maxhp=(maxhp)
        @maxhp_plus += maxhp - self.maxhp
        @maxhp_plus = [[@maxhp_plus, -MAXHP_LIMIT].max, MAXHP_LIMIT].min
        @hp = [@hp, self.maxhp].min
      end
      #--------------------------------------------------------------------------
      # ● MaxSP の設定
      #    maxsp : 新しい MaxSP
      #--------------------------------------------------------------------------
      def maxsp=(maxsp)
        @maxsp_plus += maxsp - self.maxsp
        @maxsp_plus = [[@maxsp_plus, -MAXSP_LIMIT].max, MAXSP_LIMIT].min
        @sp = [@sp, self.maxsp].min
      end
      #--------------------------------------------------------------------------
      # ● 腕力の設定
      #    str : 新しい腕力
      #--------------------------------------------------------------------------
      def str=(str)
        @str_plus += str - self.str
        @str_plus = [[@str_plus, -STR_LIMIT].max, STR_LIMIT].min
      end
      #--------------------------------------------------------------------------
      # ● 器用さの設定
      #    dex : 新しい器用さ
      #--------------------------------------------------------------------------
      def dex=(dex)
        @dex_plus += dex - self.dex
        @dex_plus = [[@dex_plus, -DEX_LIMIT].max, DEX_LIMIT].min
      end
      #--------------------------------------------------------------------------
      # ● 素早さの設定
      #    agi : 新しい素早さ
      #--------------------------------------------------------------------------
      def agi=(agi)
        @agi_plus += agi - self.agi
        @agi_plus = [[@agi_plus, -AGI_LIMIT].max, AGI_LIMIT].min
      end
      #--------------------------------------------------------------------------
      # ● 魔力の設定
      #    int : 新しい魔力
      #--------------------------------------------------------------------------
      def int=(int)
        @int_plus += int - self.int
        @int_plus = [[@int_plus, -INT_LIMIT].max, INT_LIMIT].min
      end
    end

    Screens

    Antes

    Atributos sem limites Lvl99f

    Depois

    Atributos sem limites Lvl100k

    Créditos

    momomo - criador do script
    NicholasRg - Tradutor do script
    Tecão98 - Criador do tópico
    jiraya
    jiraya
    Administrador
    Administrador

    Mensagens : 1299
    Credibilidade : 54

    Atributos sem limites Empty Re: Atributos sem limites

    Mensagem por jiraya em Seg Jan 07, 2013 8:38 pm

    Ja tinha visto esse scritp antes ele é muito bom obrigado por postar!

      Data/hora atual: Qui Set 19, 2019 6:02 pm