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

Divisão Justa de EXP

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

1 Divisão Justa de EXP em Sab Nov 24, 2012 11:15 am

Divisão Justa de EXP
por RTH


Introdução

Esse script permite mudar a divisão de EXP, fazendo com que a EXP seja dada de acordo com o desempenho do personagem durante o combate.

Características

• Altera a divisão de EXP

Screenshots

[Você precisa estar registrado e conectado para ver este link.]

Como usar

Para instalá-lo, apenas cole o script acima do main.

Demo

Não necessita de Demo

Script

Código:
#==============================================================================
# Divisão Justa de EXP
# por Renan Tsuneo Hangai Junior
#===============================================================================
# Divide a experiência conforme o desempenho de cada herói
# na batalha
#===============================================================================

#==============================================================================
# Game_Party
#==============================================================================
class Game_Party
  #--------------------------------------------------------------------------
  def total_hit_count
    tt = 0
    for actor in @actors
      tt += actor.hit_count
    end
    return tt
  end
  #--------------------------------------------------------------------------
  def clear_hit_count
    for actor in @actors
      actor.clear_hit_count
    end
  end
  #--------------------------------------------------------------------------
end
   
#==============================================================================
# Game_Actor
#==============================================================================
class Game_Actor < Game_Battler
  #--------------------------------------------------------------------------
  attr_accessor :hit_count
  #--------------------------------------------------------------------------
  alias rth_divide_exp_gactor_setup setup
  alias rth_divide_exp_gactor_exp= exp=
  #--------------------------------------------------------------------------
  def setup(*args)
    rth_divide_exp_gactor_setup(*args)
    clear_hit_count
  end
  #--------------------------------------------------------------------------
  def clear_hit_count
    @hit_count = 0
  end
  #--------------------------------------------------------------------------
end

#==============================================================================
# Game_Enemy
#==============================================================================
class Game_Enemy < Game_Battler
  #--------------------------------------------------------------------------
  alias rth_divide_exp_genemy_attack_effect attack_effect
  alias rth_divide_exp_genemy_skill_effect skill_effect
  #--------------------------------------------------------------------------
  def attack_effect(attacker)
    pre_hp = @hp
    valor = rth_divide_exp_genemy_attack_effect(attacker)
    if attacker.is_a?(Game_Actor)
      attacker.hit_count += [[self.damage, 0].max, pre_hp].min if self.damage.is_a?(Numeric)
    end
    return valor
  end
  #--------------------------------------------------------------------------
  def skill_effect(user, skill)
    pre_hp = @hp
    valor = rth_divide_exp_genemy_skill_effect(user, skill)
    if user.is_a?(Game_Actor)
      user.hit_count += [[self.damage, 0].max, pre_hp].min if self.damage.is_a?(Numeric)
    end
    return valor
  end
  #--------------------------------------------------------------------------
end

#==============================================================================
# Window_BattleResult
#==============================================================================
class Window_BattleResult < Window_Base
  #--------------------------------------------------------------------------
  def initialize(exp, gold, treasures)
    @exp = exp
    @gold = gold
    @treasures = treasures
    super(160, 0, 320, @treasures.size * 32 + 64 + ($game_party.actors.size * 32))
    self.contents = Bitmap.new(width - 32, height - 32)
    self.y = 160 - height / 2
    self.back_opacity = 160
    self.visible = false
    refresh
  end
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    x = 4
    total_damage = 0
    for actor in $game_party.actors
      total_damage += actor.hit_count
    end
    for i in 0...$game_party.actors.size
      actor = $game_party.actors[i]
      gexp = @exp.to_f * actor.hit_count.to_f / total_damage.to_f
      txt = "#{actor.name} ganhou #{gexp.ceil} "
      self.contents.font.color = normal_color
      cx = contents.text_size(txt).width
      self.contents.draw_text(x, i * 32, cx, 32, txt)
      x += cx
      self.contents.font.color = system_color
      cx = contents.text_size("EXP").width
      self.contents.draw_text(x, i * 32, cx, 32, "EXP")
      x = 4
    end
    y = ($game_party.actors.size * 32)
    self.contents.font.color = normal_color
    cx = contents.text_size(@gold.to_s).width
    self.contents.draw_text(x, y, cx, 32, @gold.to_s)
    x += cx + 4
    self.contents.font.color = system_color
    self.contents.draw_text(x, y, 128, 32, $data_system.words.gold)
    for item in @treasures
      y += 32
      draw_item_name(item, 4, y)
    end
  end
  #--------------------------------------------------------------------------
end

#==============================================================================
# Scene_Battle
#==============================================================================
class Scene_Battle
  #--------------------------------------------------------------------------
  alias rth_divide_exp_scbattle_main main
  #--------------------------------------------------------------------------
  def main
    rth_divide_exp_scbattle_main
    $game_party.clear_hit_count
  end
  #--------------------------------------------------------------------------
  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
        exp += enemy.exp
        gold += enemy.gold
        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 += (actor.hit_count.to_f * exp.to_f / $game_party.total_hit_count.to_f).ceil
        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

Perguntas Frequentes

Nenhuma Pergunta Frequente

Créditos e Agradecimentos
Feito por RTH

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

2 Re: Divisão Justa de EXP em Sab Nov 24, 2012 3:11 pm

leandroteix

avatar
Moderador G
Moderador G
Bom esse script, pelo menos os que não fizer nada não ganha EXP =P melhor ainda se for no NP ^^


_________________
"Verdadeiros Heróis Morrem Sorrindo"
Ver perfil do usuário

3 Re: Divisão Justa de EXP em Sab Nov 24, 2012 3:14 pm

sim sim, isso e mto bom, so n sei se pega em np, dps testo *-*

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

4 Re: Divisão Justa de EXP em Sab Nov 24, 2012 7:51 pm

Warrior

avatar
Moderador
Moderador
bom mesmo os que não ajudam não ganham isso e certo +1


_________________
[Você precisa estar registrado e conectado para ver este link.]
Ver perfil do usuário

Conteúdo patrocinado


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