Life RPG Maker 2.0
Bem vindo a LRM, forum de ajuda Maker
Registre-se em nosso forum e aproveite Very Happy
esperamos que você seja ajudado e esperamos que nos ajude Very Happy
Life RPG Maker 2.0

2ª versão do forum life rpg maker

Os membros mais ativos do mês

Últimos assuntos
» Kingdon 1.6
Ter Jun 09, 2015 3:02 pm por MasterKill

» Tempo dinâmico e Hora do Sistema
Seg Dez 09, 2013 5:42 pm por jonathas

» Sistema de Natação
Sab Dez 07, 2013 5:14 pm por jonathas

» Classificar Inventario
Sab Dez 07, 2013 12:07 pm por Samuka_Adm

» VOLTEI ALELUIA :D
Sab Dez 07, 2013 10:35 am por Samuka_Adm

» Netplay Master v4.0.7
Qua Jun 26, 2013 1:32 pm por xdario

» The League Of War [Season 1]
Sex Jan 18, 2013 6:02 pm por Warrior

» Meu primeiro desenho que posto :D
Qua Jan 09, 2013 1:37 pm por PedroMatoso

» Window Configurações
Qua Jan 09, 2013 1:36 pm por PedroMatoso

Parceiros
Fórum grátis

Fórum grátis


Mundo RPG Maker
MMORPG BRASIL

Você não está conectado. Conecte-se ou registre-se

HL-Dificult Option 2.1

Ver o tópico anterior Ver o tópico seguinte Ir em baixo  Mensagem [Página 1 de 1]

1 HL-Dificult Option 2.1 em Sab Nov 24, 2012 11:55 am

Edit.: Atualizei o script [27/11/2010]

HL-Dificult Option 2.1
[color:e25c=#36f]introdução Dramática:
Eu ia lançar um Hl-Update Pack, com todos os scripts q eu fiz, só q melhorados, com os novos conhecimentos q adquiri ao longo de minha vida de scripter.xD. Porém parei de usar o RmXp, pelo menos por enquanto, n deu pra terminar tds os scripts, mas pelo menos fiz 2, e estou disponibilzando.
[Momento Emo]Esses podem ser os meus últimos scripts [o outro eu ja postei], então espero q gostem.[/Momento Emo]
[color:e25c=#36f]Descrição:Cria as opções de dificuldade, onde você define quanto porcento o monstro ficará mais/menos forte, dará a mais/menos em ouro e exp e chances terá a mais/menos de derrubar um item, não esqueça de configurar o script.
[color:e25c=#36f]Histórico de Updates:
Na Versão 2.0
=> Pode-se aumentar número de dificuldades;
=> Pode-se especificar uma porcentagem de desvantagem/vantagem para os atributos desejados;
=> Pode-se criar uma probabilidade exata para cair o item, em cada dificuldade;
=> Pode-se ativar uma switch quando o jogador escolher a dificuldade;
=> Uma melhora no código em si, através do uso do alias.
Na Versão 2.1
=> Quando botava 0, o inimigo ficava 2x mais fraco (corrigido)
=> Quando o inimigo tinha vantagem, dava erro no momento da batalha (corrigido)

[color:e25c=#36f]Função:Dar chance de jogadores não tão experientes ganharem experiencia.XD

[color:e25c=#36f]Screens:
Spoiler:
[img width=614 height=480][Você precisa estar registrado e conectado para ver este link.]
[color:e25c=#36f]MiniFaq:
- Como Adicionar Scripts ao Rpg Maker Xp??
Simplesmente clique em um ícone(papel e lápis) que está na área
superior, direita.Abrirá uma janela(a janela de scripts), terá uma lista
do lado esquerdo,o último item é o main.Apartir daí, você pode fazer
2 coisas:
1º- Ou clica com o botão direito em mais e selecione inserir,
aparecerá na lista um espaço em branco, selecione, e no espaço
do lado esquerdo, cole o Script(Texto).
2º- Ou abre a demo(projeto de demonstração) do script, abre a
janela de scripts e clica com o botão direito no item "HL-Dificult
Option" e seleciona copiar, agora abra seu projeto, abra a janela
de scripts e clique com o botão direito no item "main" da lista e
selecione colar.
[color:e25c=#36f]Download:
Não é necessário uma demo
Texto
Código:
#==============================================================================
# HL - Dificult Option 2.1 (2 Bugs Corrigidos)
#------------------------------------------------------------------------------
# Este script faz com que haja opções de dificuldade.
#------------------------------------------------------------------------------
# Autor: HugoLinux/HugoLnx (http://hugolnx.wordpress.com/)
# Colaboração: Black ( encontrou os bugs ;) )
#==============================================================================

#Defina aqui o Nome das Dificuldades, par adicionar dificuldades
#adicione , "<nome da dificuldade>" se eu quiser adicionar a
#dificuldade "Impossível", eu escrevo:
#DIFI = ["Fácil","Médio","Difícil","Muito Difícil","Impossível"]
#lembre-se que sempre que adicionar/retirar uma dificuldade,
#tem que adicionar/retirar uma "casa" ao resto dos Atributos...
DIFI = ["Fácil","Médio","Difícil","Muito Difícil"]
#Defina aqui a porcentagem de desvantagem/vantagem que o monstro
#terá, em porcentagem.Por exemplo, no caso a baixo...
#-25 é negativo, então está representando que o monstro tera uma
#desvantagem de 25%(escreva 0 para que não tenha desvantagem/vantagem),
#e já que é o 1º então esta desvantagem será aplicada ao 1º nível
#citado, no caso é "Facil".
DIFI_L = [-25,0,50,100]
#Defina aqui o ID da switch que será ativada caso o nível seja
#escolhido, deixe 0 para que não seja ativada nenhuma
DIFI_S = [1,2,3,4]
#Se você quiser uma desvantagem/vantagem individual para cada
#atributo do inimigo defina abaixo, se não quiser deixe nil mesmo:
HP = [nil,nil,nil,nil] # Hp
MP = [nil,nil,nil,nil] # Mp
FOR = [nil,nil,nil,nil] # Força
DES = [nil,nil,nil,nil] # Destreza
AGI = [nil,nil,nil,nil] # Agilidade
MAG = [nil,nil,nil,nil] # Magia
ATK = [nil,nil,nil,nil] # Ataque
DEF_FIS = [nil,nil,nil,nil] # Defesa Física
DEF_MAG = [nil,nil,nil,nil] # Defesa Mágica
ESQ = [nil,nil,nil,nil] # Esquiva
EXP = [nil,nil,nil,nil] # Experiência
DIN = [nil,nil,nil,nil] # Dinheiro
ITEM_PROB = [nil,nil,nil,nil] # Probabilidade de cair item

#Se você quiser uma probabilidade exata de probabilidade
#escreva-a abaixo:
ITEM_PROB_EXACT = [nil,nil,nil,nil]

class Game_Enemy < Game_Battler
 
  #--------------------------------------------------------------------------
  # - Inicialização de Objetos
  #
  #    troop_id    : ID do Grupo de Inimigos
  #    member_index : Índice de Inimigos
  #--------------------------------------------------------------------------
 
  def initialize(troop_id, member_index)
    super()
    @troop_id = troop_id
    @member_index = member_index
    troop = $data_troops[@troop_id]
    @enemy_id = troop.members[@member_index].enemy_id
    enemy = $data_enemies[@enemy_id]
    @battler_name = enemy.battler_name
    @battler_hue = enemy.battler_hue
    @hp = maxhp
    @sp = maxsp
    @hidden = troop.members[@member_index].hidden
    @immortal = troop.members[@member_index].immortal
  end
  def calc_difi_vant(vants,type)
    if vants[$difi_op] < 0
      difi = 100 - vants[$difi_op].abs
      difi2 = 100 + vants[$difi_op].abs
    elsif vants[$difi_op] == 0
      difi = 100
      difi2 = 100
    else
      difi = 100 + vants[$difi_op]
      difi2 = 100 - vants[$difi_op]
    end
    return type == 0 ? difi : difi2
  end
  def base_maxhp
    mult = HP[$difi_op] == nil ? $difi : calc_difi_vant(HP,0)
    return Integer(($data_enemies[@enemy_id].maxhp * mult)/100)
  end
 
  #--------------------------------------------------------------------------
  # - Selcionar Base do MaxMP
  #--------------------------------------------------------------------------
 
  def base_maxsp
    mult = MP[$difi_op] == nil ? $difi : calc_difi_vant(MP,0)
    return Integer(($data_enemies[@enemy_id].maxsp * mult)/100)
  end
 
  #--------------------------------------------------------------------------
  # - Selecionar Base da Força
  #--------------------------------------------------------------------------
 
  def base_str
    mult = FOR[$difi_op] == nil ? $difi : calc_difi_vant(FOR,0)
    return Integer(($data_enemies[@enemy_id].str * mult)/100)
  end
 
  #--------------------------------------------------------------------------
  # - Selecionar Base da Destreza
  #--------------------------------------------------------------------------
 
  def base_dex
    mult = DES[$difi_op] == nil ? $difi : calc_difi_vant(DES,0)
    return Integer(($data_enemies[@enemy_id].dex * mult)/100)
  end
  #--------------------------------------------------------------------------
  # - Selecionar Base da Agilidade
  #--------------------------------------------------------------------------
 
  def base_agi
    mult = AGI[$difi_op] == nil ? $difi : calc_difi_vant(AGI,0)
    return Integer(($data_enemies[@enemy_id].agi * mult)/100)
  end
 
  #--------------------------------------------------------------------------
  # - Selecionar Base da Magia
  #--------------------------------------------------------------------------
 
  def base_int
    mult = MAG[$difi_op] == nil ? $difi : calc_difi_vant(MAG,0)
    return Integer(($data_enemies[@enemy_id].int * mult)/100)
  end
 
  #--------------------------------------------------------------------------
  # - Selecionar Base do Ataque
  #--------------------------------------------------------------------------
 
  def base_atk
    mult = ATK[$difi_op] == nil ? $difi : calc_difi_vant(ATK,0)
    return Integer(($data_enemies[@enemy_id].atk * mult)/100)
  end
 
  #--------------------------------------------------------------------------
  # - Selecionar Base da Defesa
  #--------------------------------------------------------------------------
 
  def base_pdef
    mult = DEF_FIS[$difi_op] == nil ? $difi : calc_difi_vant(DEF_FIS,0)
    return Integer(($data_enemies[@enemy_id].pdef * mult)/100)
  end
 
  #--------------------------------------------------------------------------
  # - Selecionar Base da Defesa Mágica
  #--------------------------------------------------------------------------
 
  def base_mdef
    mult = DEF_MAG[$difi_op] == nil ? $difi : calc_difi_vant(DEF_MAG,0)
    return Integer(($data_enemies[@enemy_id].mdef * mult)/100)
  end
 
  #--------------------------------------------------------------------------
  # - Selecionar Base da Esquiva
  #--------------------------------------------------------------------------
 
  def base_eva
    mult = ESQ[$difi_op] == nil ? $difi : calc_difi_vant(ESQ,0)
    return Integer(($data_enemies[@enemy_id].eva * mult)/100)
  end
    def exp
      mult = EXP[$difi_op] == nil ? $difi2 : calc_difi_vant(EXP,1)
    return Integer(($data_enemies[@enemy_id].exp * mult)/100)
  end
 
  #--------------------------------------------------------------------------
  # - Selecionar Dinheiro
  #--------------------------------------------------------------------------
 
  def gold
    mult = DIN[$difi_op] == nil ? $difi2 : calc_difi_vant(DIN,1)
    return Integer(($data_enemies[@enemy_id].gold * mult)/100)
  end
  def treasure_prob
    mult = ITEM_PROB[$difi_op] == nil ? $difi2 : calc_difi_vant(ITEM_PROB,1)
    return ITEM_PROB_EXACT[$difi_op] == nil ? Integer(($data_enemies[@enemy_id].treasure_prob * mult)/100) : ITEM_PROB_EXACT[$difi_op]
  end
end
#==============================================================================
# Scene_Title
#------------------------------------------------------------------------------
# Esta classe trata da Tela de Título
#==============================================================================

class Scene_Title
  def main
    if $BTEST
      battle_test
      return
    end
    # Carregar o Banco de Dados
    $data_actors        = load_data("Data/Actors.rxdata")
    $data_classes      = load_data("Data/Classes.rxdata")
    $data_skills        = load_data("Data/Skills.rxdata")
    $data_items        = load_data("Data/Items.rxdata")
    $data_weapons      = load_data("Data/Weapons.rxdata")
    $data_armors        = load_data("Data/Armors.rxdata")
    $data_enemies      = load_data("Data/Enemies.rxdata")
    $data_troops        = load_data("Data/Troops.rxdata")
    $data_states        = load_data("Data/States.rxdata")
    $data_animations    = load_data("Data/Animations.rxdata")
    $data_tilesets      = load_data("Data/Tilesets.rxdata")
    $data_common_events = load_data("Data/CommonEvents.rxdata")
    $data_system        = load_data("Data/System.rxdata")
    # Criar um Sistema
    $game_system = Game_System.new
 
    # Criar um gráfico de título
    @sprite = Sprite.new
    @sprite.bitmap = RPG::Cache.title($data_system.title_name)
    # Criar uma janela de comandos
    s1 = "Novo Jogo"
    s2 = "Continuar"
    s3 = "Sair"
    @command_window = Window_Command.new(192, [s1, s2, s3])
    @command_window.back_opacity = 160
    @command_window.x = 224
    @command_window.y = 288
    @command_window.y -= (DIFI.size - 5) * 32 if DIFI.size > 5
    op = []
    for i in 0..DIFI.size - 1
      op << DIFI[i]
    end
    bigest = check_bigest(DIFI)
    @difi_window = Window_Command.new(w_w(bigest) + 48 ,op)
    @difi_window.height = 1
    @difi_window.visible = false
    @difi_window.active = false
    @difi_window.back_opacity = 160
    @difi_window.x = @command_window.x + @command_window.width
    @difi_window.y = @command_window.y
    @continue_enabled = false
    for i in 0..3
      if FileTest.exist?("Saves/Save#{i+1}.rxdata")
        @continue_enabled = true
      end
    end
    if @continue_enabled
      @command_window.index = 1
    else
      @command_window.disable_item(1)
    end
    $game_system.bgm_play($data_system.title_bgm)
    Audio.me_stop
    Audio.bgs_stop
    Graphics.transition
    loop do
      Graphics.update
      Input.update
      update
      if $scene != self
        break
      end
    end
    Graphics.freeze
    @command_window.dispose
    @difi_window.dispose
    @sprite.bitmap.dispose
    @sprite.dispose

  end
  def check_bigest(words)
    bigest = words[0]
    for i in 0..words.size - 2
      if w_w(words[i]) < w_w(words[i+1])
        bigest = words[i+1]
      end
    end
    return bigest
  end
  def w_w(word)
    m_bitmap = Bitmap.new(32,32)
    return m_bitmap.text_size(word).width
  end
  def update
    if @difi_window.visible == true and @difi_window.height <= DIFI.size * 32 + 32 - 4
      @difi_window.height += 5
    elsif @difi_window.visible
      @difi_window.height = DIFI.size * 32 + 32
      @difi_window.active = true
      if Input.trigger?(Input::B)
        @difi_window.active = false
        @difi_window.visible = false
        @difi_window.height = 1
        @command_window.active = true
      end
      if Input.trigger?(Input::C)
        $difi_op = @difi_window.index
        if DIFI_L[@difi_window.index] < 0
          $difi = 100 - DIFI_L[@difi_window.index].abs
          $difi2 = 100 + DIFI_L[@difi_window.index].abs
        elsif DIFI_L[@difi_window.index] == 0
          $difi = 100
          $difi2 = 100
        else
          $difi = 100 + DIFI_L[@difi_window.index]
          $difi2 = 100 - DIFI_L[@difi_window.index]
        end
        #$difi = Integer($difi)
        command_new_game
      end
   
    end
    # Atualizar a janela de comandos
    @command_window.update
    @difi_window.update
    # Se o botão C for pressionado
    if Input.trigger?(Input::C)
      # ramificação pela posição do cursor
      case @command_window.index
      when 0  # Novo Jogo
      @difi_window.visible = true
      @difi_window.active = false
      @command_window.active = false
      $game_system.se_play($data_system.decision_se)
      when 1  # Continuar
        command_continue
      when 2  # Sair
        command_shutdown
      end
    end
  end
 
  alias ali_new_game command_new_game
  def command_new_game
    ali_new_game 
    $game_switches[DIFI_S[@difi_window.index]] = true if DIFI_S[@difi_window.index] != 0 
    $scene = Scene_Map.new
  end

end

[color:e25c=#36f]Créditos:HugoLinux/HugoLnx, criei o script xD
Black, localizou bugs Wink

[TAGS]
Script
HL-scripts
dificuldade
HugoLinux
HugoLnx
2.0
2.1

Ver perfil do usuário http://liferpgmakerv2.forumais.com

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo  Mensagem [Página 1 de 1]

Permissão deste fórum:
Você não pode responder aos tópicos neste fórum