Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Kincy
Fundador
Fundador
Mensagens : 216
Data de inscrição : 31/03/2016
Idade : 26
http://www.propixelforum.com

Random Exp e Gold

em Sex Ago 19, 2016 8:50 am
Olá galera da ProPixel, este script é bastante útil para quem quer criar algo mais dinâmico, ele faz com que os monstros e o gold recebido seja randômico, não tenha um valor fixo.

Tutorial:


1º Colocar o script acima do MAIN.


Código:
#===============================================================================
# Creado por: Luca
# Para: RPG Maker XP
# Nome do Script: System Rand Exp Gold
# V: 1.0
#===============================================================================

#===============================================================================
# Instruçoes: Pegar sobre o script "Main".
#===============================================================================

#===============================================================================
# Modulo "SysRan_ExpGol"
#===============================================================================

module SysRan_ExpGol
#-------------------------------------------------------------------------------
# * Exp por default que dara o enemigo se for menor a 1.
#-------------------------------------------------------------------------------
  EXP_DEFAULT = 1
#-------------------------------------------------------------------------------
# * Ouro que dara o enemigo se for menor a 1.
#-------------------------------------------------------------------------------
  GOLD_DEFAULT = 1
#-------------------------------------------------------------------------------
# * Exp default.
#
#   A = Valor negativo que é subtraído.
#   B = Valor positivo que é somado.
#
#   ENEMY_EXP_RAND_DEFAULT = [A, B]
#
#   Nota: Si o mob da 20 exp e se o valor por default e:
#         "[-5, 5]", el restara um aleatorio desde -5 ate 0 e somara um
#         aleatorio desde 5 ate 0.
#-------------------------------------------------------------------------------
  ENEMY_EXP_RAND_DEFAULT = [-5, 5]
#-------------------------------------------------------------------------------
# * Ouro default.
#
#   A = Valor negativo que é subtraído.
#   B = Valor positivo que é somado.
#
#   ENEMY_GOLD_RAND_DEFAULT = [A, B]
#
#   Nota: O mesmo que com a exp.
#-------------------------------------------------------------------------------
  ENEMY_GOLD_RAND_DEFAULT = [-5, 5]
#-------------------------------------------------------------------------------
# * Exp que dara um enemigo especifico.
#
#   A = Id do enemigo.
#   A = Valor negativo que é subtraído.
#   B = Valor positivo que é somado.
#
#   ENEMY_RAND_EXP = {A => [B, C]}
#
#   Nota: O mesmo de antes.
#-------------------------------------------------------------------------------
  ENEMY_RAND_EXP = {
  1 => [-5, 5]
  }
#-------------------------------------------------------------------------------
# * Ouro que dara um enemigo espesifico.
#
#   A = Id do enemigo.
#   A = Valor negativo que é subtraído.
#   B = Valor positivo que é somado.
#
#   ENEMY_RAND_GOLD = {A => [B, C]}
#
#   Nota: O mesmo que os anteriores.
#-------------------------------------------------------------------------------
  ENEMY_RAND_GOLD = {
  1 => [-5, 5]
  }
end

#===============================================================================
# Clase "Scene_Battle"
#===============================================================================

class Scene_Battle
  def start_phase5
    @phase = 5
    $game_system.me_play($game_system.battle_end_me)
    $game_system.bgm_play($game_temp.map_bgm)
    exp = 0
    gold = 0
    treasures = []
    for enemy in $game_troop.enemies
      unless enemy.hidden
        if SysRan_ExpGol::ENEMY_RAND_EXP.include?(enemy.id)
          exp_rand = SysRan_ExpGol::ENEMY_RAND_EXP[enemy.id]
        else
          exp_rand = SysRan_ExpGol::ENEMY_RAND_EXP_DEFAULT
        end
        if SysRan_ExpGol::ENEMY_RAND_GOLD.include?(enemy.id)
          gold_rand = SysRan_ExpGol::ENEMY_RAND_GOLD[enemy.id]
        else
          gold_rand = SysRan_ExpGol::ENEMY_RAND_GOLD_DEFAULT
        end
        exp2 = rand(exp_rand[0].abs)
        exp3 = rand(exp_rand[1])
        exp += (enemy.exp - exp2) + exp3
        exp = SysRan_ExpGol::EXP_DEFAULT if exp < 1
        gold2 = rand(gold_rand[0].abs)
        gold3 = rand(gold_rand[1])
        gold += (enemy.gold - gold2) + gold3
        gold = SysRan_ExpGol::GOLD_DEFAULT if gold < 1
        if rand(100) < enemy.treasure_prob
          if enemy.item_id > 0
            treasures.push($data_items[enemy.item_id])
          end
          if enemy.weapon_id > 0
            treasures.push($data_weapons[enemy.weapon_id])
          end
          if enemy.armor_id > 0
            treasures.push($data_armors[enemy.armor_id])
          end
        end
      end
    end
    treasures = treasures[0..5]
    for i in 0...$game_party.actors.size
      actor = $game_party.actors[i]
      if actor.cant_get_exp? == false
        last_level = actor.level
        actor.exp += exp
        if actor.level > last_level
          @status_window.level_up(i)
        end
      end
    end
    $game_party.gain_gold(gold)
    for item in treasures
      case item
      when RPG::Item
        $game_party.gain_item(item.id, 1)
      when RPG::Weapon
        $game_party.gain_weapon(item.id, 1)
      when RPG::Armor
        $game_party.gain_armor(item.id, 1)
      end
    end
    @result_window = Window_BattleResult.new(exp, gold, treasures)
    @phase5_wait_count = 100
  end
end


Quaisquer dúvidas postar abaixo:


Criado com muito 
Ver o tópico anteriorVoltar ao TopoVer o tópico seguinte
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum