O TEMA DO FÓRUM ESTÁ EM MANUTENÇÃO. FEEDBACKS AQUI: ACESSAR

[RGSS3] "FF Window_Afterbattle"

Iniciado por Fallen, 11/04/2013 às 16:41

E aí galera andei meio sumido esses dias, por estar com uma conexão bem lenta. Mesmo assim tenho trabalhado no projeto bastante, e principalmente nos toques finais nos menus. Uma coisa que me chateia bastante ainda, é o estilo de vitória, pois ainda utilizo o padrão do Ace, pois o único que eu vi o Yanfly não me agrada, além de não respeitar o Script de Colapso Avançado do Victor. e.e
Bom o meu pedido é se for simples, será que existe algum script já com o visual da vitória parecido com FF? É um menu bem simples, com um visual simplista, após a luta é exibida uma janela acima na tela, basicamente no mesmo estilo da Battle Log, que mostra a EXP em sequência o Gil, e também na sequência mostra caso um personagem tenho subido de Level, aprendido alguma técnica e etc.
É basicamente a mesma idéia da padrão, só que agora a informação seria mostrada no topo da Tela e em sequência, bem não sei se já existe algo assim, mas não custa nada tentar. E se alguma alma caridosa se dispor a fazer eu ficaria muito agradecido, já que minha habilidade em RGSS se estende apenas a modificar e acrescentar funções e.e
Enfim, deixo uma imagem caso alguém não conheça o Estilo:


Ixi, eu já dei uma vasculhada legal na net, eu acho que não tem nenhum que atende ao seu pedido :/, porém se puder esperar as minhas épocas de provas terminarem, eu acho que eu posso fazer para você, se não for urgente, porque acho que não é demorado. Só deixar tudo aqui que aparece, zeny, exp, levels, skills...?

Opa Raizen, cara agradeço por se oferecer em fazer eu fico no aguardo então cara xD, não é algo urgente no momento, então aguardo de boa.
Me parece  que não é difícil, eu só não tenho cacife pra 'criar' algo relacionado a RGSS só modifico até começar a estudar e.e, Se você notar vai criar uma nova classe para isso, porque o sistema padrão de vitória do Ace é meio feioso ou preguiçoso '-', eles usaram a janela de mensagem para mostrar as informações. Bom Raizen, agradeço e fico no aguardo.
Exatamente isso as informações que irão aparecer.

- Exp
- Dinheiro
- Level caso algum ou alguns dos heróis tenho subido de Lv no grupo, tipo "Adam subiu de nível!"
- Magia caso alguém tenha aprendido uma nova habilidade.
- Itens, de uma maneira bem básica mesmo "Poção obtida" nesse caso podem todos os itens obtidos na mesma linha e.e"

A intenção é mostrar as informações separadamente e uma de cada vez, ah e um wait o minimo que seja também, porque os scripts de afterbattle, pelo menos do yanfly são meio que no susto, a batalha mal acaba e já aparece '-'
Agradeço Raizen, e fico no aguardo.

Adicionando mais uma informação, tem esse script do RMXP que é basicamente o que quero, não sei se converter é mais fácil do que criar, mas enfim e.e



Link Aqui

Bom, como não lembro qual é o sistema de batalha que você está usando fiz um teste o o padrão mesmo. Entenda que isso é um teste, então pode não dar certo ou pode causar algum bug inesperado. Aguardo sua resposta para correções.

class WindowBattleResult < Window_Base
  
  attr_accessor :done
  
  def initialize
    super( 0, 0, Graphics.width, 48)
    @messages = []
    @delay = 0
    @done = false
  end
  
  def add(str)
    @messages << str
  end
  
  def update
    @delay -= 1
    if @delay <= 0 && @messages.size > 0
      @delay = 60
      str = @messages.shift
      self.contents.clear unless str.nil?
      draw_text( 0, 0, Graphics.width - 32, 24, str)
    end
    if @messages.empty? && @delay <= 0
      @done = true
    end
  end
end

class Game_Actor < Game_Battler
  
  attr_accessor :levelup
  
  alias :sheol_battle_result_level_up :level_up  
  def level_up
    @levelup = true
    sheol_battle_result_level_up
  end
end


module BattleManager
  
  def self.process_victory
    play_battle_end_me
    replay_bgm_and_bgs
    @message = WindowBattleResult.new
    display_exp
    gain_exp
    gain_gold
    gain_drop_items
    loop do 
      Graphics.update
      @message.update
      break if @message.done
    end
    SceneManager.return
    @message.dispose
    battle_end(0)
    return true
  end
  
   def self.display_exp
    if $game_troop.exp_total > 0
      text = sprintf(Vocab::ObtainExp, $game_troop.exp_total)
      @message.add(text)
    end
  end
  
  def self.gain_exp
    $game_party.all_members.each do |actor|
      actor.gain_exp($game_troop.exp_total)
      if actor.levelup
        @message.add(sprintf(Vocab::LevelUp, actor.name, Vocab::level, actor.level))
        actor.levelup = false
        actor.class.learnings.each do |learning|
          skill = learning.skill_id if learning.level == actor.level
          text = $data_skills[skill].name unless skill.nil?
          @message.add(sprintf(Vocab::ObtainSkill, text)) unless skill.nil? 
        end
      end
    end
  end
  
  def self.gain_gold
    if $game_troop.gold_total > 0
      currency = Vocab::currency_unit
      text = sprintf(Vocab::ObtainGold, $game_troop.gold_total, currency)
      @message.add(text)
      $game_party.gain_gold($game_troop.gold_total)
    end
  end
 
  def self.gain_drop_items
   $game_troop.make_drop_items.each do |item|
     $game_party.gain_item(item, 1)
     @message.add(sprintf(Vocab::ObtainItem, item.name))
   end
  end
end

17/04/2013 às 08:43 #5 Última edição: 17/04/2013 às 10:06 por Fallen
Fala ae SheolShade seu script ficou ótimo é basicamente o que quero, mas eis aqui alguns problemas que eu encontrei nele.

- Quando a última ação é uma magia, é exibida sempre a informação da magia castada certo? o problema é que quando essa magia mata o inimigo, a janela de vitória surge por trás da janela de magia, ou log, sem esperar e depois que o log da magia some ela aparece mais uma vez e fecha o jogo e.e

- Eu estou usando o Victor Animated Battle e um script em diferencial que é o Custom Collapse dele mesmo, por isso a importância do delay na janela ela aguardar tudo ser processado, a pose de vitória e os colapsos avançados quando existirem.

Sei que é um teste, e tirando os erros, o script ficou perfeito e já te agradeço por ter se disposto a me ajudar, ah uma coisa o sistema de vitória padrão do maker, que é feito preguiçosamente pelo battle manager, consegue obedecer as prioridades mesmo do custom collapse, talvez um molde baseado nesse sistema, mesmo sabendo que já é o caso funcione perfeitamente. então é isso sheolshade se puder continuar ajudando agradeço, mesmo assim já te agradeço pela ajuda cara \o




Edit:
Esqueça o que eu disse sobre os erros, aparentemente esses erros ocorreram pela posição do script na lista, coloquei ele acima de todos e funcionou perfeitamente, agora só falta conseguir fazer com que as poses de vitória sejam processadas sem travar a janela e.e, enfim agradeço pela ajuda Sheolshade quebrou um galho enorme muito obrigado \o