Jump to content
Rpg²S Forum

EmanueleSpeed

Utenti
  • Posts

    241
  • Joined

  • Last visited

  • Days Won

    1

Posts posted by EmanueleSpeed

  1. Hi Guys , ho un problema.Nel database quando voglio dare dei comandi di battaglia tipo Speciale o Magia c'e Addizional ability e Sealed Ability, ma se voglio aggiungere quel comando tramite evento non esiste :( .

    Praticamente, voglio che il personaggio apprenda quel comando tramite evento, qualche soluzione? grz :)

  2. a breve inserisco un video, grazie per i vostri commenti mi saranno di aiuto nel migliorare ^_^
    Il topic l'ho aperto perchè vi aggiornerò spesso,
    sto lavorando al progetto ogni giorno..
    un po di pazienza spero di non commettere piu gli stessi errori...
    sbagliando si impara :)
     
    Modifiche al gioco
     

    Completamento Storia da 5% --> 6%

    Orario di gioco attuale da 1h 20m --> 1h 40m

     

    Modifica grafica vari Holders

    Vi posto uno screen della battaglia iniziale:

    http://imageshack.us/a/img19/5223/fqq5.jpg

     

    http://imageshack.us/a/img13/4963/w4wf.jpg

     

  3. http://imageshack.com/a/img716/9492/foln.png

    http://imageshack.com/a/img691/8909/eam2.png

    presenta

    http://imageshack.com/a/img822/3961/2v6t.png

    Trailer Beta Demo

    https://www.youtube.com/watch?v=11hGsZ8gTJI

    Pre-Alpha Demo Battle System.
    (Cattura e Richiamo - mostri, alleati in battaglia).

    https://www.youtube.com/watch?v=wQwxXnqm87A&feature=youtu.be

    1. Introduzione

    Il progetto e nato nell'idea che di giochi jprg stile a turni come i vecchi ff non c'e ne sono più, quindi ho deciso di crearne uno, sperando che piaccia.

    2. Storia
    Pianeta Erlyna, pianeta prosperoso, la cui prosperità è stata legata ad un libro magico per diversi secoli. Ogni 100 anni il libro veniva utilizzato per rinnovare la fertilità del pianeta. Come ogni secolo, anche questo stava giungendo alla fine. Per questo il re ha convocato i suoi cavalieri per affidargli un compito...

     

    Rinnovo totale del gioco, solo la storia già scritta rimarrà uguale.

     

    Aggiornamenti.

    Cambiato completamente il sistema di battaglia graficamente.

     

    Pian pianino cambierò anche tutto il resto un rinnovo totale del gioco ^^ .

     

    Mapping

     

    Nuovo video del Mapping

     

    Beta V0.01

    https://www.youtube.com/watch?v=eRDovsTchGE

     

    Battaglia

    Ecco a voi Screen e Video:

    http://imageshack.com/a/img843/2913/lk6g.jpg

    http://imageshack.com/a/img191/6357/zve1.jpg

     

    http://imageshack.com/a/img842/4411/ofwa.jpg

     

    http://imageshack.com/a/img835/6271/lvlk.jpg

     

    Menù

     

    Menù Principale V 0.00

    http://imageshack.com/a/img197/2128/25ga.jpg

    http://imageshack.com/a/img703/9756/g6cv.jpg

     

     

     

    http://imageshack.com/a/img841/7681/mh47.jpg

     

    Altri Screen & Video

     

     

    http://imageshack.com/a/img706/9680/649a.jpghttp://imageshack.com/a/img835/8679/ht4d.jpghttp://imageshack.com/a/img853/5871/awfb.jpghttp://imageshack.com/a/img198/6408/6omb.jpg

     

     

     

     

     

    ______________________________________________________________________________________________________

     

    ______________________________________________________________________________________________________

     

    Video & Screen Precedenti

     

     

     

    Vecchio Progetto (Non centra nnt con il nuovo)

     

     

    3. Personaggi

    http://imageshack.us/a/img801/6691/qn0a.png

    Cheran: Un ragazzo serio di buon cuore, un principiante cavaliere del re, mette in pericolo la sua vita per svolgere le missioni affidate dal re.

    http://imageshack.us/a/img22/9818/db24.png

    Pixie: Uno Spirito Curatrice, si unisce a Cheran per il suo buon cuore. Ha il compito di aiutarlo nelle situazioni più critiche.

    4. Disegni/Fan Art

    lavori in corso...


    5. Caratteristiche Tecniche/Gameplay

    Jrpg a turni

    Battle Symphony

    Grafica Personaggi : Holders

    script presi in giro per il web

    lavori in corso...


    6. Screenshot

    Dialoghi:

    http://img9.imageshack.us/img9/7281/vp4o.jpg

     

    http://imageshack.us/a/img18/4085/rsvj.jpg

     

    Battaglia:

    http://imageshack.us/a/img594/842/7pja.jpg

     

    http://imageshack.us/a/img513/756/8k8h.jpg

     

    Menù:

    http://imageshack.us/a/img818/3746/9dv7.jpg

     

    Video

     

    http://img59.imageshack.us/img59/6370/4vq.gif

     

    7. Demo/Link alla versione giocabile

    Per funzionare la demo sono necessari gli RTP installati sul pc

    1. Installa gli RTP.

    2. Estrai e avvia il gioco.

    Qui gli RTP: http://www.rpgmakerweb.com/download/additional/run-time-packages/thankyou-rtp-vx-ace
    Qui la demo: http://www.mediafire.com/?zahjwvp51048263 http://imageshack.us/a/img513/6808/v341.gifhttp://imageshack.us/a/img843/873/pkg.gif
    8. Crediti Vari

    lavori in corso...

    1° Progetto

     

    Completamento Storia 6%

     

    Orario di gioco attuale 1h 40m

    __________

    Demo Precedenti

     

    Demo/Link alla versione giocabile

    Per funzionare la demo sono necessari gli RTP installati sul pc

    1. Installa gli RTP.

    2. Estrai e avvia il gioco.

    Qui gli RTP: http://www.rpgmakerweb.com/download/additional/run-time-packages/thankyou-rtp-vx-ace
    Qui la demo: http://www.mediafire.com/download/o62hm8bmz4u997m/Cheran+e+il+libro+magico+Demo+Buona2.exe

     

     

     

  4. Ho bisogno di un'enorme aiuto, dovrei modificare questo script

     

    #==============================================================================
    # +++ MOG - Battle Result (1.4) +++
    #==============================================================================
    # By Moghunter
    # http://www.atelier-rgss.com
    #==============================================================================
    # Apresentação animada do resultado da batalha.
    #==============================================================================
    # Arquivos necessários. (Graphics/System)
    #
    # Result.png
    # Result_Layout.png
    # Result_Levelup.png
    # Result_Levelword.png
    # Result_Number_1.png
    # Result_Number_2.png
    #
    #==============================================================================
    # Histórico (Version History)
    #==============================================================================
    # 1.4 - Compatibilidade com o script de pause.
    # 1.3 - Melhoria do código e compatibilidade.
    # 1.2 - Melhoria do código e compatibilidade.
    # - Adição de sons.
    # 1.1 - Corrigido o erro de apresentar o Resultado ao fugir ou perder a batalha.
    #==============================================================================
    module MOG_BATLE_RESULT
    #Posição do EXP.
    RESULT_EXP_POSITION = [440,80]
    #Posição do GOLD.
    RESULT_GOLD_POSITION = [476,125]
    #Posição da palavra LeveL UP.
    RESULT_LEVELWORD_POSITION = [0,0]
    #Posição do Level.
    RESULT_LEVEL_POSITION = [230,-7]
    #Posição dos parâmetros
    RESULT_PARAMETER_POSITION = [70,70]
    #Posição da janela de skill.
    RESULT_NEW_SKILL_POSITION = [240,230]
    #Definição da animação de Level UP.
    RESULT_LEVELUP_ANIMATION_ID = 37
    end

    #==============================================================================
    # ? Game Temp
    #==============================================================================
    class Game_Temp
    attr_accessor :level_parameter
    attr_accessor :level_parameter_old
    attr_accessor :result
    attr_accessor :battle_end

    #--------------------------------------------------------------------------
    # ? Initialize
    #--------------------------------------------------------------------------
    alias mog_result_initialize initialize
    def initialize
    @level_parameter = []
    @level_parameter_old = []
    @result = false
    @battle_end = false
    mog_result_initialize
    end

    end

    #==============================================================================
    # ? Game Actor
    #==============================================================================
    class Game_Actor < Game_Battler

    #--------------------------------------------------------------------------
    # ? Display_level_up
    #--------------------------------------------------------------------------
    alias mog_result_display_level_up display_level_up
    def display_level_up(new_skills)
    if $game_temp.result
    $game_temp.level_parameter = [@level,new_skills]
    return
    end
    mog_result_display_level_up(new_skills)
    end

    end

    #==============================================================================
    # ? BattleManager
    #==============================================================================
    module BattleManager

    #--------------------------------------------------------------------------
    # ? Process Victory
    #--------------------------------------------------------------------------
    def self.process_victory
    play_battle_end_me
    replay_bgm_and_bgs
    if $mog_rgss3_battle_cry != nil
    execute_battle_cry(1, nil, nil)
    end
    battle_end(0)
    SceneManager.return
    return true
    end

    end

    #==============================================================================
    # ? Spriteset Battle
    #==============================================================================
    class Scene_Battle < Scene_Base

    #--------------------------------------------------------------------------
    # ? Dispose
    #--------------------------------------------------------------------------
    alias mog_battle_result_pre_terminate pre_terminate
    def pre_terminate
    execute_result if can_enable_battle_result?
    mog_battle_result_pre_terminate
    end

    #--------------------------------------------------------------------------
    # ? Can Enable Battle Result?
    #--------------------------------------------------------------------------
    def can_enable_battle_result?
    return false if !$game_troop.all_dead?
    return false if $game_party.members.empty?
    return false if $game_party.all_dead?
    return true
    end

    #--------------------------------------------------------------------------
    # ? Execute Result
    #--------------------------------------------------------------------------
    def execute_result
    @result = Battle_Result.new
    if $mog_rgss3_combo_count != nil
    $game_temp.combo_time = 0 rescue nil
    end
    loop do
    @result.update
    @spriteset.update
    Graphics.update
    Input.update
    break if @result.victory_phase == 10
    end
    @result.dispose
    end

    end

    #==============================================================================
    # ? Battle Result
    #==============================================================================
    class Battle_Result
    include MOG_BATLE_RESULT

    attr_accessor :victory_phase

    #--------------------------------------------------------------------------
    # ? Initialize
    #--------------------------------------------------------------------------
    def initialize
    $game_temp.battle_end = true
    $game_temp.result = true
    @victory_phase = 0
    @victory_wait_duration = 0
    @fade_result_window = false
    create_victory_sprites
    end

    #--------------------------------------------------------------------------
    # ? Create Victory Sprites
    #--------------------------------------------------------------------------
    def create_victory_sprites
    @result_number = Cache.system("Result_Number_1")
    @result_number2 = Cache.system("Result_Number_2")
    @result_cw = @result_number.width / 10
    @result_ch = @result_number.height / 2
    @result2_cw = @result_number2.width / 10
    @result2_ch = @result_number2.height / 2
    create_victory_text
    create_victory_layout
    create_victory_exp
    create_victory_gold
    create_window_treasure
    end

    #--------------------------------------------------------------------------
    # ? Victory Wait ?
    #--------------------------------------------------------------------------
    def victory_wait?
    return false if @victory_wait_duration <= 0
    @victory_wait_duration -= 1
    return true
    end

    #--------------------------------------------------------------------------
    # ? End Victory
    #--------------------------------------------------------------------------
    def end_victory
    @victory_wait_duration = 10
    dispose
    end

    #--------------------------------------------------------------------------
    # ? Create Victory Layout
    #--------------------------------------------------------------------------
    def create_victory_layout
    return if @victory_layout_sprite != nil
    @victory_layout_sprite = Sprite.new
    @victory_layout_sprite.z = 1001
    @victory_layout_sprite.bitmap = Cache.system("Result_Layout")
    @victory_layout_sprite.zoom_x = 2.0
    @victory_layout_sprite.opacity = 0
    end

    #--------------------------------------------------------------------------
    # ? Create Victory Text
    #--------------------------------------------------------------------------
    def create_victory_text
    return if @victory_sprite != nil
    @victory_sprite = Sprite.new
    @victory_sprite.z = 1000
    @victory_sprite.bitmap = Cache.system("Result")
    @victory_sprite.ox = @victory_sprite.width / 2
    @victory_sprite.oy = @victory_sprite.height / 2
    @victory_sprite.x = @victory_sprite.ox
    @victory_sprite.y = @victory_sprite.oy
    @victory_sprite.zoom_x = 1.5
    @victory_sprite.zoom_y = 1.5
    @victory_sprite.opacity = 0
    end

    end

    #==============================================================================
    # ? Battle Result
    #==============================================================================
    class Battle_Result

    #--------------------------------------------------------------------------
    # ? Dispose
    #--------------------------------------------------------------------------
    def dispose
    $game_temp.result = false
    $game_temp.battle_end = false
    @victory_sprite.bitmap.dispose
    @victory_sprite.dispose
    @victory_layout_sprite.bitmap.dispose
    @victory_layout_sprite.dispose
    @exp_number.bitmap.dispose
    @exp_number.dispose
    @gold_number.bitmap.dispose
    @gold_number.dispose
    @result_number.dispose
    @window_treasure.dispose
    dispose_level_up
    @result_number.dispose
    @result_number2.dispose
    @tr_viewport.dispose
    end

    #--------------------------------------------------------------------------
    # ? Dispose Result Actor Bitmap
    #--------------------------------------------------------------------------
    def dispose_result_actor_bitmap
    return if @result_actor_sprite == nil
    return if @result_actor_sprite.bitmap == nil
    @result_actor_sprite.bitmap.dispose
    end

    #--------------------------------------------------------------------------
    # ? Dispose Level UP
    #--------------------------------------------------------------------------
    def dispose_level_up
    return if @levelup_layout == nil
    @levelup_layout.bitmap.dispose
    @levelup_layout.dispose
    @levelup_word.bitmap.dispose
    @levelup_word.dispose
    @result_actor_sprite.bitmap.dispose
    @result_actor_sprite.dispose
    @parameter_sprite.bitmap.dispose
    @parameter_sprite.dispose
    @level_sprite.bitmap.dispose
    @level_sprite.dispose
    if @new_skill_window != nil
    @new_skill_window.dispose
    end
    end

    end

    #==============================================================================
    # ? Battle Result
    #==============================================================================
    class Battle_Result

    #--------------------------------------------------------------------------
    # ? Update
    #--------------------------------------------------------------------------
    def update
    if $mog_rgss3_pause != nil
    update_pause if MOG_PAUSE::PAUSE_SCENE_BATTLE
    end
    return if @victory_phase == nil
    update_victory_fade if @fade_result_window
    return if victory_wait?
    case @victory_phase
    when 0; update_victory_initial
    when 1; update_victory_initial2
    when 2; update_victory_initial3
    when 3; update_victory_exp
    when 4; update_victory_gold
    when 5; update_victory_item
    when 6; update_victory_levelup
    when 9; update_skip_result
    end
    if Input.trigger?(:C)
    if @victory_phase == 10
    end_victory
    elsif @victory_phase.between?(1,5)
    Sound.play_cursor
    @victory_phase = 9
    end
    end
    end

    #--------------------------------------------------------------------------
    # ? Skip Result
    #--------------------------------------------------------------------------
    def update_skip_result
    @victory_sprite.opacity -= 10
    @victory_sprite.visible = false
    @victory_layout_sprite.opacity += 10
    @victory_layout_sprite.zoom_x = 1.00
    @gold_number.opacity += 10
    @gold_number.zoom_x = 1.00
    @gold_number.zoom_y = 1.00
    @exp_number.opacity += 10
    @exp_number.zoom_x = 1.00
    @exp_number.zoom_y = 1.00
    @window_treasure.contents_opacity += 10
    if @exp_old != @exp_total
    @exp_old = @exp_total
    refresh_exp_number
    end
    if @gold_old = @gold_total
    @gold_old = @gold_total
    refresh_gold_number
    end
    @window_treasure.x = 0
    update_victory_item if @window_treasure.contents_opacity == 255
    end

    #--------------------------------------------------------------------------
    # ? Update Victory Fade
    #--------------------------------------------------------------------------
    def update_victory_fade
    fade_speed = 10
    @victory_sprite.opacity -= fade_speed
    @victory_layout_sprite.opacity -= fade_speed
    @gold_number.opacity -= fade_speed
    @exp_number.opacity -= fade_speed
    @window_treasure.contents_opacity -= fade_speed
    end

    #--------------------------------------------------------------------------
    # ? Update Victory Initial
    #--------------------------------------------------------------------------
    def update_victory_initial
    @victory_sprite.zoom_x -= 0.01
    @victory_sprite.zoom_y -= 0.01
    @victory_sprite.opacity += 10
    if @victory_sprite.zoom_x <= 1.00
    @victory_sprite.zoom_x = 1
    @victory_sprite.zoom_y = 1
    @victory_sprite.opacity = 255
    @victory_phase = 1
    @victory_wait_duration = 20
    end
    end

    #--------------------------------------------------------------------------
    # ? Update Victory Initial 2
    #--------------------------------------------------------------------------
    def update_victory_initial2
    @victory_sprite.zoom_x += 0.01
    @victory_sprite.zoom_y += 0.01
    @victory_sprite.opacity -= 10
    if @victory_sprite.opacity <= 0
    @victory_sprite.zoom_x = 1
    @victory_sprite.zoom_y = 1
    @victory_sprite.opacity = 0
    @victory_phase = 2
    end
    end

    #--------------------------------------------------------------------------
    # ? Update Victory Initial 3
    #--------------------------------------------------------------------------
    def update_victory_initial3
    @victory_layout_sprite.zoom_x -= 0.02
    @victory_layout_sprite.opacity += 10
    if @victory_layout_sprite.zoom_x <= 1.00
    @victory_layout_sprite.zoom_x = 1
    @victory_layout_sprite.opacity = 255
    @victory_phase = 3
    end
    end

    end

    #==============================================================================
    # ? Battle Result
    #==============================================================================
    class Battle_Result

    #--------------------------------------------------------------------------
    # ? Create Victory Exp
    #--------------------------------------------------------------------------
    def create_victory_exp
    @exp_number = Sprite.new
    @exp_number.bitmap = Bitmap.new(@result_number.width,@result_ch)
    @exp_number.z = 1002
    @exp_number.y = RESULT_EXP_POSITION[1]
    @exp_number.zoom_x = 2
    @exp_number.zoom_y = 2
    @exp_total = $game_troop.exp_total
    @exp_number.opacity = 0
    @exp_old = 0
    @exp_ref = ((1 * @exp_total) / 111).truncate rescue nil
    @exp_ref = 1 if @exp_ref < 1 or @exp_ref == nil
    @exp_ref = 0 if @exp_total == 0
    refresh_exp_number
    end

    #--------------------------------------------------------------------------
    # ? Update Victory Exp
    #--------------------------------------------------------------------------
    def update_victory_exp
    update_exp_sprite
    update_exp_number
    end

    #--------------------------------------------------------------------------
    # ? Update EXP Sprite
    #--------------------------------------------------------------------------
    def update_exp_sprite
    @exp_number.opacity += 15
    if @exp_number.zoom_x > 1.00
    @exp_number.zoom_x -= 0.03
    @exp_number.zoom_x = 1.00 if @exp_number.zoom_x <= 1.00
    end
    @exp_number.zoom_y = @exp_number.zoom_x
    if (@exp_old >= @exp_total) and @exp_number.zoom_x == 1.00
    @victory_phase = 4
    Sound.play_cursor
    end
    end

    #--------------------------------------------------------------------------
    # ? Refresh Exp Number
    #--------------------------------------------------------------------------
    def refresh_exp_number
    @exp_number.bitmap.clear
    draw_result_exp(@exp_old, 0,0)
    end

    #--------------------------------------------------------------------------
    # ? Update Exp_number
    #--------------------------------------------------------------------------
    def update_exp_number
    return if @exp_old == @exp_total
    @exp_old += @exp_ref
    @exp_old = @exp_total if @exp_old > @exp_total
    refresh_exp_number
    end

    #--------------------------------------------------------------------------
    # ? Draw Result EXP
    #--------------------------------------------------------------------------
    def draw_result_exp(value,x,y)
    ncw = @result_cw
    nch = @result_ch
    number = value.abs.to_s.split(//)
    x2 = x - (number.size * ncw)
    @exp_number.ox = (number.size * ncw) / 2
    @exp_number.oy = @result_ch / 2
    @exp_number.x = (RESULT_EXP_POSITION[0] + @result_cw + @exp_number.ox) - (number.size * ncw)
    for r in 0..number.size - 1
    number_abs = number[r].to_i
    nsrc_rect = Rect.new(ncw * number_abs, 0, ncw, nch)
    @exp_number.bitmap.blt(x + (ncw * r), y, @result_number, nsrc_rect)
    end
    end

    end

    #==============================================================================
    # ? Battle Result
    #==============================================================================
    class Battle_Result

    #--------------------------------------------------------------------------
    # ? Create Victory Gold
    #--------------------------------------------------------------------------
    def create_victory_gold
    @gold_number = Sprite.new
    @gold_number.bitmap = Bitmap.new(@result_number.width,@result_ch)
    @gold_number.z = 1002
    @gold_number.y = RESULT_GOLD_POSITION[1]
    @gold_number.opacity = 0
    @gold_number.zoom_x = 2
    @gold_number.zoom_y = 2
    @gold_total = $game_troop.gold_total
    @gold_old = 0
    @gold_ref = ((1 * @gold_total) / 111).truncate rescue nil
    @gold_ref = 1 if @gold_ref < 1 or @gold_ref == nil
    @gold_ref = 0 if @gold_total == 0
    $game_party.gain_gold($game_troop.gold_total)
    refresh_gold_number
    end

    #--------------------------------------------------------------------------
    # ? Update Victory Gold
    #--------------------------------------------------------------------------
    def update_victory_gold
    update_gold_sprite
    update_gold_number
    end

    #--------------------------------------------------------------------------
    # ? Update GOLD Sprite
    #--------------------------------------------------------------------------
    def update_gold_sprite
    @gold_number.opacity += 15
    if @gold_number.zoom_x > 1.00
    @gold_number.zoom_x -= 0.03
    @gold_number.zoom_x = 1.00 if @gold_number.zoom_x <= 1.00
    end
    @gold_number.zoom_y = @gold_number.zoom_x
    if @gold_old >= @gold_total and @gold_number.zoom_x == 1.00
    @victory_phase = 5
    Sound.play_cursor
    end
    end

    #--------------------------------------------------------------------------
    # ? Refresh gold Number
    #--------------------------------------------------------------------------
    def refresh_gold_number
    @gold_number.bitmap.clear
    draw_result_gold(@gold_old, 0,0)
    end

    #--------------------------------------------------------------------------
    # ? Update Gold Number
    #--------------------------------------------------------------------------
    def update_gold_number
    return if @gold_old == @gold_total
    @gold_old += @gold_ref
    @gold_old = @gold_total if @gold_old > @gold_total
    refresh_gold_number
    end

    #--------------------------------------------------------------------------
    # ? Draw Result Gold
    #--------------------------------------------------------------------------
    def draw_result_gold(value,x,y)
    ncw = @result_cw
    nch = @result_ch
    number = value.abs.to_s.split(//)
    x2 = x - (number.size * ncw)
    @gold_number.ox = (number.size * ncw) / 2
    @gold_number.oy = @result_ch / 2
    @gold_number.x = (RESULT_GOLD_POSITION[0] + @result_cw + @gold_number.ox) - (number.size * ncw)
    for r in 0..number.size - 1
    number_abs = number[r].to_i
    nsrc_rect = Rect.new(ncw * number_abs, @result_ch, ncw, nch)
    @gold_number.bitmap.blt(x + (ncw * r), y, @result_number, nsrc_rect)
    end
    end

    end

    #==============================================================================
    # ? Battle Result
    #==============================================================================
    class Battle_Result

    #--------------------------------------------------------------------------
    # ? Create Window Treasure
    #--------------------------------------------------------------------------
    def create_window_treasure
    @tr_viewport = Viewport.new(-8, 164, 576, 118)
    @tr_viewport.z = 1003
    @window_treasure = Window_Treasure.new
    @window_treasure.viewport = @tr_viewport
    end

    #--------------------------------------------------------------------------
    # ? Update Victory Item
    #--------------------------------------------------------------------------
    def update_victory_item
    @window_treasure.update
    @actor_level = []
    return if @window_treasure.x != 0 and @victory_phase >= 6
    @victory_phase = 6
    @result_member_max = $game_party.battle_members.size
    @result_member_id = 0
    end

    end

    #==============================================================================
    # ? Window Treasure
    #==============================================================================
    class Window_Treasure < Window_Base

    #--------------------------------------------------------------------------
    # ? Initialize
    #--------------------------------------------------------------------------
    def initialize
    super(-544,-10, 576, 256)
    self.opacity = 0
    self.contents_opacity = 0
    self.contents.font.size = 24
    self.contents.font.bold = true
    self.z = 1003
    @range_max = 256
    @wait_time = 30
    @scroll = false
    draw_treasure
    end

    #--------------------------------------------------------------------------
    # ? Draw_Treasure
    #--------------------------------------------------------------------------
    def draw_treasure
    contents.clear
    t_index = 0
    space_x = 540 / 3
    $game_troop.make_drop_items.each do |item|
    xi = (t_index * space_x) - ((t_index / 3) * (space_x * 3))
    yi = (t_index / 3) * 32
    $game_party.gain_item(item, 1)
    draw_item_name(item,xi, yi, true, 140)
    t_index += 1
    end
    @range_max = (t_index / 3) * 32
    @scroll = true if t_index > 12
    end

    #--------------------------------------------------------------------------
    # ? Update
    #--------------------------------------------------------------------------
    def update
    super
    self.contents_opacity += 10
    if self.x < 0
    self.x += 15
    if self.x >= 0
    self.x = 0
    Sound.play_cursor
    end
    end
    if @scroll and self.contents_opacity == 255 and self.x == 0
    @wait_time -= 1 if @wait_time > 0
    return if @wait_time > 0
    self.y -= 1
    self.y = 128 if self.y < -@range_max
    @wait_time = 30 if self.y == -10
    end
    end

    end

    #==============================================================================
    # ? Battle Result
    #==============================================================================
    class Battle_Result

    #--------------------------------------------------------------------------
    # ? Create Levelup
    #--------------------------------------------------------------------------
    def create_levelup
    if @levelup_layout == nil
    @levelup_layout = Sprite.new
    @levelup_layout.z = 1000
    @levelup_layout.bitmap = Cache.system("Result_Levelup")
    end
    if @levelup_word == nil
    @levelup_word = Sprite.new
    @levelup_word.z = 1001
    @levelup_word.bitmap = Cache.system("Result_Levelword")
    @levelup_word.ox = @levelup_word.bitmap.width / 2
    @levelup_word.oy = @levelup_word.bitmap.height / 2
    @levelup_word.x = @levelup_word.ox + RESULT_LEVELWORD_POSITION[0]
    @levelup_word.y = @levelup_word.oy + RESULT_LEVELWORD_POSITION[1]
    end
    @levelup_word.blend_type = 1
    @levelup_word.zoom_x = 2
    @levelup_word.zoom_y = 2
    end

    #--------------------------------------------------------------------------
    # ? Create Parameter Number
    #--------------------------------------------------------------------------
    def create_parameter_number
    if @parameter_sprite == nil
    @parameter_sprite = Sprite.new
    @parameter_sprite.bitmap = Bitmap.new(250,220)
    @parameter_sprite.z = 1001
    @parameter_sprite.x = RESULT_PARAMETER_POSITION[0]
    @parameter_sprite.y = RESULT_PARAMETER_POSITION[1]
    @parameter_sprite.bitmap.font.size = 16
    @parameter_sprite.bitmap.font.bold = true
    end
    refresh_parameter
    end

    #--------------------------------------------------------------------------
    # ? Refresh Parameter
    #--------------------------------------------------------------------------
    def refresh_parameter
    @parameter_animation = 0
    @parameter_sprite.bitmap.clear
    @parameter_sprite.opacity = 0
    @parameter_sprite.x = RESULT_PARAMETER_POSITION[0] - 200
    actor_old = $game_temp.level_parameter_old
    draw_result_parameter(@actor_result.mhp,actor_old[1],0,28 * 0)
    draw_result_parameter(@actor_result.mmp,actor_old[2],0,28 * 1)
    draw_result_parameter(@actor_result.atk,actor_old[3],0,28 * 2)
    draw_result_parameter(@actor_result.def,actor_old[4],0,28 * 3)
    draw_result_parameter(@actor_result.mat,actor_old[5],0,28 * 4)
    draw_result_parameter(@actor_result.mdf,actor_old[6],0,28 * 5)
    draw_result_parameter(@actor_result.agi,actor_old[7],0,28 * 6)
    draw_result_parameter(@actor_result.luk,actor_old[8],0,28 * 7)
    end

    #--------------------------------------------------------------------------
    # ? Draw Result EXP
    #--------------------------------------------------------------------------
    def draw_result_parameter(value,value2,x,y)
    ncw = @result2_cw
    nch = @result2_ch
    number = value.abs.to_s.split(//)
    x2 = x + (number.size * ncw) + 16
    for r in 0..number.size - 1
    number_abs = number[r].to_i
    nsrc_rect = Rect.new(ncw * number_abs, 0, ncw, nch)
    @parameter_sprite.bitmap.blt(x + (ncw * r), y, @result_number2, nsrc_rect)
    end
    value3 = value - value2
    par = ""
    if value > value2
    par = "+"
    @parameter_sprite.bitmap.font.color = Color.new(50,255,255)
    elsif value < value2
    par = ""
    @parameter_sprite.bitmap.font.color = Color.new(255,155,100)
    end
    return if value == value2
    @parameter_sprite.bitmap.draw_text(x2,y - 8,100,32,par.to_s + value3.to_s,0)
    end

    #--------------------------------------------------------------------------
    # ? Create Result Actor
    #--------------------------------------------------------------------------
    def create_result_actor
    if @result_actor_sprite == nil
    @result_actor_sprite = Sprite.new
    @result_actor_sprite.z = 999
    end
    dispose_result_actor_bitmap
    @result_actor_sprite.bitmap = Cache.picture("Actor" + @actor_result.id.to_s)
    @result_actor_org = [380 - (@result_actor_sprite.bitmap.width / 2), Graphics.height - @result_actor_sprite.bitmap.height]
    @result_actor_sprite.x = @result_actor_org[0] + 200
    @result_actor_sprite.y = @result_actor_org[1]
    @result_actor_sprite.opacity = 0
    end

    #--------------------------------------------------------------------------
    # ? Check New Skill
    #--------------------------------------------------------------------------
    def check_new_skill
    @new_skills = $game_temp.level_parameter[1]
    @new_skills_index = 0
    end

    #--------------------------------------------------------------------------
    # ? Show New Skill
    #--------------------------------------------------------------------------
    def show_new_skill(start = false)
    Sound.play_recovery unless start
    @new_skill_window.draw_new_skill(@new_skills[@new_skills_index])
    @new_skills_index += 1
    if @new_skills_index == @new_skills.size or
    @new_skills[@new_skills_index] == nil
    @new_skills = nil
    end
    end

    #--------------------------------------------------------------------------
    # ? Check Level UP
    #--------------------------------------------------------------------------
    def check_level_up
    if @new_skills != nil and !@new_skills.empty?
    show_new_skill
    return
    end
    for battler_id in @result_member_id..@result_member_max
    actor_result = $game_party.members[@result_member_id]
    $game_temp.level_parameter = [] if $game_temp.level_parameter == nil
    $game_temp.level_parameter_old = [] if $game_temp.level_parameter_old == nil
    $game_temp.level_parameter.clear
    $game_temp.level_parameter_old.clear
    $game_temp.level_parameter_old = [actor_result.level,actor_result.mhp,actor_result.mmp,
    actor_result.atk, actor_result.def, actor_result.mat, actor_result.mdf, actor_result.agi, actor_result.luk] rescue nil
    actor_result.gain_exp($game_troop.exp_total) rescue nil
    @result_member_id += 1
    @new_skills = nil
    @new_skills_index = 0
    if $game_temp.level_parameter != nil and !$game_temp.level_parameter.empty?
    show_level_result
    break
    end
    end
    return if !$game_temp.level_parameter.empty?
    @victory_phase = 10 if @result_member_id >= @result_member_max
    end

    #--------------------------------------------------------------------------
    # ? Create Level
    #--------------------------------------------------------------------------
    def create_level
    if @level_sprite == nil
    @level_sprite = Sprite.new
    @level_sprite.bitmap = Bitmap.new(200,64)
    @level_sprite.z = 1002
    end
    @level_sprite.bitmap.font.size = 48
    @level_sprite.bitmap.font.bold = true
    @level_sprite.x = RESULT_LEVEL_POSITION[0]
    @level_sprite.y = RESULT_LEVEL_POSITION[1]
    @level_sprite.bitmap.clear
    @level_sprite.bitmap.font.color = Color.new(255,255,255)
    @level_sprite.bitmap.draw_text(0,0,100,64,@actor_result.level,1)
    levelup = @actor_result.level - $game_temp.level_parameter_old[0]
    @level_sprite.bitmap.font.color = Color.new(50,255,255)
    @level_sprite.bitmap.font.size = 18
    @level_sprite.bitmap.draw_text(80,0,100,64,"+" + levelup.to_s ,0)
    end

    #--------------------------------------------------------------------------
    # ? Create New Skill Windos
    #--------------------------------------------------------------------------
    def create_new_skill_window
    if @new_skill_window == nil
    @new_skill_window = Window_Result_Skill.new
    end
    @new_skill_window.x = RESULT_NEW_SKILL_POSITION[0]
    @new_skill_window.y = RESULT_NEW_SKILL_POSITION[1]
    check_new_skill
    if @new_skills != nil and !@new_skills.empty?
    show_new_skill
    else
    @new_skill_window.x = -544
    end
    end

    #--------------------------------------------------------------------------
    # ? Show Level Result
    #--------------------------------------------------------------------------
    def show_level_result
    Sound.play_cursor
    @actor_result = $game_party.members[@result_member_id - 1] rescue nil
    return if @actor_result == nil
    @actor_result.animation_id = RESULT_LEVELUP_ANIMATION_ID
    @fade_result_window = true
    create_levelup
    create_level
    create_parameter_number
    create_result_actor
    create_new_skill_window
    end

    end

    #==============================================================================
    # ? Battle Result
    #==============================================================================
    class Battle_Result

    #--------------------------------------------------------------------------
    # ? Update Victory Item
    #--------------------------------------------------------------------------
    def update_victory_levelup
    check_level_up if Input.trigger?(:C)
    update_show_levelup
    if @levelup_layout == nil
    @window_treasure.update
    else
    @window_treasure.contents_opacity -= 15
    end
    end

    #--------------------------------------------------------------------------
    # ? Update Show Level UP
    #--------------------------------------------------------------------------
    def update_show_levelup
    return if @levelup_layout == nil
    return if @result_actor_sprite == nil
    @new_skill_window.update
    if @result_actor_sprite.x > @result_actor_org[0]
    @result_actor_sprite.x -= 5
    @result_actor_sprite.opacity += 7
    if @result_actor_sprite.x <= @result_actor_org[0]
    @result_actor_sprite.x = @result_actor_org[0]
    @result_actor_sprite.opacity = 255
    end
    end
    if @levelup_word.zoom_x > 1.00
    @levelup_word.zoom_x -= 0.03
    if @levelup_word.zoom_x < 1.00
    @levelup_word.zoom_x = 1.00
    @levelup_word.blend_type = 0
    end
    end
    @levelup_word.zoom_y = @levelup_word.zoom_x
    if @parameter_sprite.x < RESULT_PARAMETER_POSITION[0]
    @parameter_sprite.opacity += 13
    @parameter_sprite.x += 5
    if @parameter_sprite.x >= RESULT_PARAMETER_POSITION[0]
    @parameter_sprite.opacity = 255
    @parameter_sprite.x = RESULT_PARAMETER_POSITION[0]
    end
    end
    end

    end

    #==============================================================================
    # ? Window Result Skill
    #==============================================================================
    class Window_Result_Skill < Window_Base

    #--------------------------------------------------------------------------
    # ? Initialize
    #--------------------------------------------------------------------------
    def initialize
    super(0,0, 270, 58)
    self.opacity = 160
    self.contents_opacity = 255
    self.contents.font.name = "Arial"
    self.contents.font.bold = true
    self.z = 1003
    @animation_time = 999
    @org = [MOG_BATLE_RESULT::RESULT_NEW_SKILL_POSITION[0],MOG_BATLE_RESULT::RESULT_NEW_SKILL_POSITION[1]]
    end

    #--------------------------------------------------------------------------
    # ? DrawNew Skill
    #--------------------------------------------------------------------------
    def draw_new_skill(skill)
    contents.clear
    self.contents.font.size = 16
    self.contents.font.color = Color.new(100,200,100)
    contents.draw_text(0,0,100,32, "New Skill",0)
    self.contents.font.color = Color.new(255,255,255)
    draw_item_name_skill(skill,70,0, true, 170)
    self.x = @org[0]
    self.y = @org[1]
    @animation_time = 0
    self.opacity = 0
    self.contents_opacity = 0
    end

    #--------------------------------------------------------------------------
    # ? Draw Item Name
    #--------------------------------------------------------------------------
    def draw_item_name_skill(item, x, y, enabled = true, width = 172)
    return unless item
    draw_icon(item.icon_index, x, y, enabled)
    change_color(normal_color, enabled)
    draw_text(x + 24, y + 4, width, line_height, item.name)
    end

    #--------------------------------------------------------------------------
    # ? Update
    #--------------------------------------------------------------------------
    def update
    super
    return if @animation_time == 999
    @animation_time += 1 if @animation_time != 999
    case @animation_time
    when 0..30
    self.y -= 1
    self.opacity += 5
    self.contents_opacity += 5
    when 31..60
    self.y += 1
    self.opacity += 5
    self.contents_opacity += 5
    else
    self.y = @org[1]
    self.opacity = 255
    self.contents_opacity = 255
    @animation_time = 999
    end
    end

    end

    $mog_battle_result = true

     

    link script originale :

     

    Praticamente vorrei eliminare tutto e lasciare solamente il lv up a fine battaglia , si puo fare? help me pls

  5. Ciao a tutti allora ho un problema cn lo script Battle Summon di Tsukihime questo http://www.rpgmakervxace.net/topic/3934-battle-summon/

     

    Praticamente creo la skill summon(nel database) nello script inserisco il numero della skill

    Tramite evento dono al main l'evocazione add_actor_summon(actor_id)

    in battaglia utilizzo la skill summon si apre evoco la summon ma non appare in battaglia

    come posso risolvere? :(

     

    Ho provato ad evocarlo tramite skill inserendo evento summon_battler(summon_id)

    L'evocazione appare però a fine battaglia non me la ritrovo piu.

     

    ho provato in diversi modi ma non riesco :(

    Help me pls

  6. Ciao
    io per adesso ho trovato 2 bestiari

    1. Bisba94

     

    #===============================================================================
    # Titolo: B94 - Bestiario
    # Versione: 1.0
    # Autore: Bisba94
    #-------------------------------------------------------------------------------
    # Riepilogo versioni:
    # - 1.0 (23/07/13) Realase iniziale
    #-------------------------------------------------------------------------------
    # Condizioni d'uso:
    # - Siete liberi di utilizzare questo script in qualunque progetto commerciale o
    # non commerciale, chiedo solo di essere citato fra i Crediti.
    # - Siete liberi di pubblicare questo script su qualunque community a patto che
    # vengano citati l'autore e la provenienza
    # - Lo Script può essere modificato per utilizzo personale e pubblicato nella
    # nuova versione a patto che vengano citati l'autore del lavoro originale e la provenienza
    #-------------------------------------------------------------------------------
    # Istruzioni:
    # - Incollare sotto Materials prima di Main
    # - Apparirà una nuova voce nel menù per accedere al Bestiario (è possibile rimuoverla)
    # - Modificate le impostazioni fin dove è segnato, non modificate nulla dello
    # script se non sapete cosa state facendo.
    #-------------------------------------------------------------------------------
    # Contatti:
    # - Per qualunque informazione, segnalazione, richiesta o altro scrivete a:
    # bisba1994@live.it
    #===============================================================================

    $imported = {} if $imported.nil? # Non modificare queste linee
    $imported["B94-Bestiario"] = true # Non modificare queste linee

    module Bestiario

    # PARTE MODIFICABILE

    MENU_COMMAND = "Bestiario" # Nome del Comando che apparirà nel menù
    SWITCH_MENU_ATTIVATO = 0 # Switch per attivare il comando nel menù
    # (se si imposta 0 è sempre attivo)

    ESCLUSI = [1] # Lista dei mostri esclusi dal Bestiario

    # Liste dei mostri appartenenti a categorie speciali
    MOSTRI_SPECIALI = {:rari => [10,20,24,27],
    :boss => [19,23,25,29],
    :speciali => [30]
    } # NON CANCELLARE

    # Numero di cifre della lista di mostri divisi per categorie
    CIFRE_MAX = { :comuni => 2,
    :rari => 2,
    :boss => 1,
    :speciali => 1
    } # NON CANCELLARE

    # Nomi delle categorie
    NOME_CATEGORIA = { :comuni => "Comuni",
    :rari => "Rari",
    :boss => "Boss",
    :speciali => "Speciali"
    } # NON CANCELLARE

    SCONOSCIUTO = "?????????" # Nome visualizzato per i mostri non ancora sconfitti



    # Icone degli elementi da visualizzare nel bestiario
    ICONE_ELEMENTI = {3 => 96,
    4 => 97,
    5 => 98,
    6 => 99,
    7 => 100,
    8 => 101,
    9 => 102,
    10 => 103
    } # NON CANCELLARE
    CONFRONTO_STAT = true # true: mostra una barra che si riempie al crescere delle statistiche

    #Colore barre delle statistiche.
    # 'Statistica' => id colore
    # 0: PV 1: PM 2: ATT 3: DIF 4: ATTM 5: DIFM 6: AGI 7: FORT
    COLORE_STATISTICHE = { 0=>0, 1=> 1, 2=>2, 3=>3, 4=>4, 5=>5, 6=>6, 7=>7}

    COLORE_RESISTENZA = 10 # Colore attribuito alle resistenze del mostro
    COLORE_DEBOLEZZA = 11 # Colore attribuito alle debolezze del mostro
    COLORE_NULLO = 7 # Colore attribuito agli elementi che provocano danni nulli
    COLORE_CAP = 11 # Colore numero mostri sconfitti massimo
    COLORE_BARRA1 = 4 # Colore iniziale barra di completamento
    COLORE_BARRA2 = 12 # Colore finale barra di completamento

    SWITCH_COMPLETAMENTO = 1 # Switch che quando è ON attiva la visualizzazione delle
    # statistiche di completamento del Bestiario (Lista di tutti
    # i mostri e percentuale di completamento). Se impostata su 0
    # la visualizzazione sarà sempre attiva.

    NOME_SPRITE = "" # Testo aggiuntivo per inidicare gli sprite dei nemici che
    # appariranno nel bestiario.
    # ES: inserendo "_B" il programma cercherà nella cartella battlers
    # il file "Mostro_B" invece di "Mostro" usato dal database

    MOSTRA_INCONTRI = true # true: mostra il numero di nemici sconfitti

    # Limite dei nemici sconfitti visualizzati
    # se è 0 il numero sarà illimitato
    CAP_SCONFITTI = { :comuni => 5,
    :rari => 3,
    :boss => 1,
    :speciali => 1
    } # NON CANCELLARE

    SCONFITTI = "Sconfitti" # Testo per i nemici sconfitti

    EXP_NAME = "Esperienza" # Testo per il nome dei punti esperienza

    TOT_INCONTRATI = "Mostri Incontrati"
    TOT_SCONFITTI = "Mostri Sconfitti"
    TOT_DANNI = "Danni Inflitti"

    # Lista dei titolo ottenibili
    # no. % col titolo
    TITOLI = { 1 => [ 0, 1, "Principiante"],
    2 => [ 20, 2, "Intermedio"],
    3 => [ 50, 3, "Esperto"],
    4 => [ 80, 4, "Maestro"],
    5 => [100, 5, "IL Cacciatore"]
    } # NON CANCELLARE


    # FINE PARTE MODIFICABILE!!


    def self.create_enemies_array
    mostri = []
    for i in 1...$data_enemies.length
    if ESCLUSI.include?(i)
    mostri = nil
    else
    mostri.push($data_enemies.id)
    end
    end
    return mostri
    end

    end

    #===============================================================================
    # Window_Bestairy_Category (Nuova Classe)
    #===============================================================================

    class Window_Bestiary_Category < Window_HorzCommand

    def initialize
    super(0,0)
    end #initialize

    def window_width
    Graphics.width
    end #window_width

    def update
    super
    @list_window.category = current_symbol if @list_window
    end #update

    def make_command_list
    add_command(Bestiario::NOME_CATEGORIA[:comuni], :comuni)
    add_command(Bestiario::NOME_CATEGORIA[:rari], :rari)
    add_command(Bestiario::NOME_CATEGORIA[:boss], :boss)
    add_command(Bestiario::NOME_CATEGORIA[:speciali], :speciali)
    end #make_command_list

    def list_window=(list_window)
    @list_window = list_window
    update
    end #list_window=

    end #Window_Bestiary_Category

    #===============================================================================
    # Window_Bestiary_List (Nuova Classe)
    #===============================================================================

    class Window_Bestiary_List < Window_Command
    include Bestiario

    def initialize(symbol)
    @symbol = symbol
    super(0,48)
    end #initialize

    def window_width
    return Graphics.width / 2
    end #window_width

    def window_height
    return Graphics.height - 48
    end #window_height

    def category=(symbol)
    return if @symbol == symbol
    @symbol = symbol
    refresh
    self.index = 0
    end #category=

    def enemy_name(index)
    enemy = $data_enemies[index]
    return enemy.name
    end #enemy_name

    def id_for_list(index)
    return @enemies[index]
    end #id_for_list

    def select_symbol
    if @symbol == :comuni
    no_common = MOSTRI_SPECIALI[:rari] + MOSTRI_SPECIALI[:boss] + MOSTRI_SPECIALI[:speciali]
    remove_enemies(no_common)
    else
    mantain_enemies
    end #if
    end #select_symbol

    def remove_enemies(no_common)
    @enemies.each_index do |i|
    @enemies = nil if no_common.include?(i)
    end #do
    end #remove_enemies

    def mantain_enemies
    @enemies.each_index do |i|
    @enemies = nil if !(MOSTRI_SPECIALI[@symbol].include?(i))
    end #do
    end #mantain_enemies

    def make_command_list
    @enemies = Bestiario.create_enemies_array
    select_symbol
    @enemies.compact!
    n = 0
    @enemies.each_index do |i|
    @enemies = nil if !$game_party.incontrato?(@enemies) and !$game_switches[sWITCH_COMPLETAMENTO] and SWITCH_COMPLETAMENTO != 0
    next if @enemies == nil
    n += 1
    num = zeri(n)
    enabled = $game_party.sconfitto?(@enemies)
    $game_party.incontrato?(@enemies) ? name = enemy_name(@enemies) : name = SCONOSCIUTO
    add_command(num + ": " + name, :mostro, enabled)
    end #do
    @enemies.compact!
    end #make_command_list

    def zeri(i)
    istr = i.to_s
    until istr.size >= CIFRE_MAX[@symbol]
    istr = "0" + istr
    end #until
    return istr
    end #zeri

    end #Window_Bestiary_List

    #===============================================================================
    # Window_Bestiary_Progress (Nuova Classe)
    #===============================================================================

    class Window_Bestiary_Progress < Window_Base
    include Bestiario

    def initialize
    @sconfitti = 0
    @tot_sconfitti = 0
    @percentuale = 0
    # @danni = 0
    @incontrati = 0
    @tot_incontrati = 0
    super(window_width, 48, window_width, window_height)
    totale_mostri_sconfitti
    draw_completamento
    draw_horz_line(0,line_height*3, window_width - 24)
    draw_info_inutili(0, line_height*4)
    draw_horz_line(0,line_height*9, window_width - 24)
    draw_titolo(0,line_height*10)
    end #initialize

    def draw_completamento
    change_color(system_color)
    draw_text(0,0,window_width - 24, line_height, "Completamento")
    change_color(normal_color)
    contents.fill_rect(0,(line_height*2) + 2, window_width - 24, line_height - 4, Color.new(0,0,0,200))
    contents.fill_rect(2,(line_height*2) + 4, window_width - 28, line_height - 8, Color.new(0,0,0,80))
    if $game_switches[sWITCH_COMPLETAMENTO] or SWITCH_COMPLETAMENTO == 0
    draw_text(0,0,window_width - 24, line_height, sprintf("%.2f%", @percentuale), 2)
    bar_w = ((@percentuale / 100) * (window_width - 28)).to_i
    contents.gradient_fill_rect(2, (line_height*2) + 4, bar_w, line_height - 8, text_color(COLORE_BARRA1), text_color(COLORE_BARRA2))
    draw_text(0,line_height*1,window_width - 24, line_height, @sconfitti.to_s + "/" + @max.to_s, 2)
    else
    draw_text(0,0,window_width - 24, line_height, "??? %", 2)
    draw_text(0,line_height*1,window_width - 24, line_height, @sconfitti.to_s + "/" + @incontrati.to_s, 2)
    end #if
    end #draw_completamento

    def draw_info_inutili(x, y)
    change_color(system_color)
    draw_text(x,y,window_width - 24, line_height, TOT_INCONTRATI)
    draw_text(x,y + (line_height)*2,window_width - 24, line_height, TOT_SCONFITTI)
    # draw_text(x,y + (line_height)*4,window_width - 24, line_height, TOT_DANNI)
    change_color(normal_color)
    draw_text(x,y + line_height,window_width - 24, line_height, @tot_incontrati,2)
    draw_text(x,y + (line_height)*3,window_width - 24, line_height, @tot_sconfitti,2)
    # draw_text(x,y + (line_height)*5,window_width - 24, line_height, @danni,2)
    end #draw_info_inutili

    def draw_titolo(x,y)
    change_color(system_color)
    draw_text(x,y,window_width - 24, line_height, "Titolo:")
    TITOLI.each_key do |i|
    next if @percentuale < TITOLI[0]
    change_color(text_color(TITOLI[1]))
    @tit = TITOLI[2]
    end
    draw_text(x,y + (line_height*1.5),window_width - 24, line_height, @tit, 1)
    end #draw_titolo

    def totale_mostri_sconfitti
    mostri = Bestiario.create_enemies_array
    mostri.compact!
    @max = mostri.size
    mostri.each do |i|
    @sconfitti += 1 if $game_party.sconfitto?(i)
    @incontrati += 1 if $game_party.incontrato?(i)
    @tot_sconfitti += $game_party.conta_sconfitti(i) if $game_party.sconfitto?(i)
    @tot_incontrati += $game_party.conta_incontrati(i) if $game_party.incontrato?(i)
    end #do
    @percentuale = (@sconfitti.to_f * 100) / @max
    end #totale_mostri_sconfitti

    def draw_horz_line(x, y, length)
    line_y = y + line_height / 2 - 1
    contents.fill_rect(x, line_y, length, 2, line_color)
    end #draw_horz_line

    def line_color
    color = text_color(0)
    color.alpha = 80
    return color
    end #line_color

    def window_width
    Graphics.width / 2
    end #window_width

    def window_height
    Graphics.height - 48
    end #window_height

    end #Window_Bestiary_Progress

    #===============================================================================
    # Window_Monster_Page (Nuova Classe)
    #===============================================================================

    class Window_Monster_Page < Window_Selectable
    include Bestiario

    def initialize(id, symbol)
    super(window_x,window_y, window_width, window_height)
    create_enemy_array
    @id = id
    @symbol = symbol
    draw_block1(0,0)
    draw_horz_line(0, line_height, line_width)
    draw_horz_line(0, line_height * 9.5, window_width - 24)
    draw_block2(0, line_height)
    end #initialize

    def create_enemy_array
    @enemies = []
    for i in 0...$data_enemies.length
    @enemies.push($data_enemies)
    end #for
    end #create_enemy_array

    def draw_block1(x, y)
    draw_name(x, y)
    draw_stat(x, y + (line_height*1.5))
    draw_sprite(x + line_width + 12, y)
    end #draw_block1

    def draw_block2(x, y)
    draw_elements(x, y*10)
    draw_loot(x, y*11)
    end #draw_block2

    def draw_name(x, y)
    contents.fill_rect(x, y, line_width, line_height, Color.new(0,0,0,60))
    change_color(normal_color)
    draw_text(x, y, line_width, line_height, @enemies[@id].name)
    end #draw_name

    def draw_stat(x,y)
    for i in 0..7
    draw_param(x, y + (line_height*i), i)
    end #for
    end #draw_stat

    def draw_param(x, y, param_id)
    contents.fill_rect(x, y, line_width, line_height - 4, Color.new(0,0,0,60))
    if CONFRONTO_STAT
    contents.fill_rect(x, y + line_height - 6, line_width, 2, Color.new(0,0,0,180)) if param_id > 1
    media = calcola_media
    percentage = (@enemies[@id].params[param_id] * (line_width*0.67)) / media
    percentage = line_width if percentage > line_width
    contents.fill_rect(x, y + line_height - 6, percentage, 2, text_color(param_id + 2)) if param_id > 1
    contents.fill_rect(x, y + line_height - 6, line_width, 2, text_color(param_id + 2)) if param_id <= 1
    end #if
    change_color(system_color)
    draw_text(x, y, line_width, line_height, Vocab::param(param_id))
    change_color(normal_color)
    draw_text(x, y, line_width, line_height, @enemies[@id].params[param_id], 2)
    end #draw_param

    def calcola_media
    media = 0
    for i in 2..7
    media += @enemies[@id].params
    end #for
    media = media / 6
    return media
    end #calcola_media

    def draw_sprite(x,y)
    contents.fill_rect(x, y, line_width, line_height * 9.5, Color.new(0,0,0,60))
    view_x = x + window_x + 12
    view_y = y + window_y + 12
    viewport = Viewport.new(view_x,view_y,line_width, line_height * 9.5)
    viewport.z = 150
    @battler = Sprite.new(viewport)
    @battler.bitmap = Cache.battler(@enemies[@id].battler_name + NOME_SPRITE, @enemies[@id].battler_hue)
    @battler.ox = @battler.width/ 2
    @battler.x = line_width / 2
    @battler.oy = @battler.height / 2
    @battler.y = (line_height * 9.5) / 2
    (@battler.zoom_x -= 0.05 and @battler.zoom_y -= 0.05) until (@battler.width*@battler.zoom_x) <= line_width and (@battler.height*@battler.zoom_y) <= line_height * 9.5
    draw_incontri(x) if MOSTRA_INCONTRI
    end #draw_sprite

    def close
    @battler.dispose
    super
    end #close

    def draw_incontri(x)
    change_color(system_color)
    draw_text(window_width - 24 - line_width, line_height*8.5, line_width, line_height, SCONFITTI)
    if calcola_sconfitti >= CAP_SCONFITTI[@symbol] and CAP_SCONFITTI[@symbol] != 0
    change_color(text_color(COLORE_CAP))
    draw_text(window_width - 24 - line_width, line_height*8.5, line_width, line_height, CAP_SCONFITTI[@symbol], 2)
    else
    change_color(normal_color)
    draw_text(window_width - 24 - line_width, line_height*8.5, line_width, line_height, calcola_sconfitti.to_s + "/" + calcola_incontrati.to_s, 2)
    end #if
    end #draw_incontri

    def calcola_sconfitti
    return $game_party.conta_sconfitti(@id)
    end #calcola_sconfitti

    def calcola_incontrati
    return $game_party.conta_incontrati(@id)
    end #calcola_incontrati

    def draw_elements(x,y)
    width = (window_width - 24) / ICONE_ELEMENTI.length
    ICONE_ELEMENTI.each_key do |i|
    current_x = 1 + x + (width * (i-3))
    contents.fill_rect(current_x, y, width - 2, line_height - 2, Color.new(0,0,0,60))
    draw_icon(ICONE_ELEMENTI, current_x, y)
    value = element_rate(i)
    change_color(normal_color)
    change_color(text_color(COLORE_RESISTENZA)) if value < 1.0
    change_color(text_color(COLORE_NULLO)) if value == 0.0
    change_color(text_color(COLORE_DEBOLEZZA)) if value > 1.0
    draw_text(current_x, y, width, line_height, sprintf("%d%", value*100), 2)
    end #do
    end #draw_elements

    def draw_loot(x,y)
    width = (window_width - 24) / max_loot
    contents.fill_rect(x + 1, y, width - 2, line_height - 2, Color.new(0,0,0,60))
    change_color(system_color)
    draw_text(x + 1, y, width - 2, line_height - 2, EXP_NAME + ":")
    change_color(normal_color)
    draw_text(x + 1, y, width - 2, line_height - 2, @enemies[@id].exp, 2)
    contents.fill_rect(x + 1 + width, y, width - 2, line_height - 2, Color.new(0,0,0,60))
    change_color(system_color)
    draw_text(x + 1 + width, y, width - 2, line_height - 2, Vocab.currency_unit + ":")
    change_color(normal_color)
    draw_text(x + 1 + width, y, width - 2, line_height - 2, @enemies[@id].gold, 2)
    end #draw_loot

    def max_loot
    return 2
    end #max_loot

    def element_rate(i)
    element = 1.0
    @enemies[@id].features.each do |f|
    if f.code == 11
    element = f.value if f.data_id == i
    end #if
    end #do
    return element
    end #element_rate

    def draw_horz_line(x, y, length)
    line_y = y + line_height / 4 - 1
    contents.fill_rect(x, line_y, length, 2, line_color)
    end #draw_horz_line

    def line_color
    color = text_color(0)
    color.alpha = 80
    return color
    end #line_color

    def line_width
    (window_width - 36) / 2
    end #line_width

    def window_width
    Graphics.width - 32
    end #window_width

    def window_height
    return 24 + (line_height * 12)
    end #window_height

    def window_y
    (Graphics.height - window_height) / 2
    end #window_y

    def window_x
    (Graphics.width - window_width) / 2
    end #window_x

    end #Window_Monster_Page

    #===============================================================================
    # Scene_Bestiary (Nuova Classe)
    #===============================================================================

    class Scene_Bestiary < Scene_Base

    def initialize
    super
    @category = :comuni
    @id = 0
    create_bestiary_list
    create_bestiary_progress
    create_bestiary_category
    end #initialize

    def create_bestiary_list
    @list_window = Window_Bestiary_List.new(@category)
    @list_window.activate
    @list_window.set_handler(:mostro, method(:disegna_mostro))
    @list_window.set_handler(:cancel, method(:return_scene))
    end #create_bestiary_list

    def create_bestiary_category
    @category_window = Window_Bestiary_Category.new
    @category_window.activate
    @category_window.list_window = @list_window
    end #create_bestiary_category

    def disegna_mostro
    @category = @category_window.current_symbol
    @id = @list_window.index
    @category_window.deactivate
    @list_window.deactivate
    index = @list_window.id_for_list(@id)
    crea_pagina_mostro(index)
    end #disegna_mostro

    def crea_pagina_mostro(index)
    @monster_window = Window_Monster_Page.new(index, @category)
    @monster_window.back_opacity = 255
    @monster_window.activate
    @monster_window.set_handler(:ok, method(:return_list))
    @monster_window.set_handler(:cancel, method(:return_list))
    end #crea_pagina_mostro

    def return_list
    @monster_window.close
    @category_window.activate
    @list_window.activate
    end #return_list

    def create_bestiary_progress
    @progress_window = Window_Bestiary_Progress.new
    end #create_bestiary_progress

    end #Scene_Bestiary

    #===============================================================================
    # Game_Party
    #-------------------------------------------------------------------------------
    # alias: initialize
    # new method: sconfitto?
    # new method: conta_sconfitti
    # new method: mostro_sconfitto
    #===============================================================================

    class Game_Party < Game_Unit

    alias initialize_bestiario initialize
    def initialize
    @sconfitto = []
    @contatore_kill = []
    @incontrato = []
    @contatore_incontri = []
    @kill_totali = 0
    @incontri_totali = 0
    initialize_bestiario
    end #initialize

    def sconfitto?(i)
    return true if @sconfitto == true
    return false
    end #sconfitto?

    def incontrato?(i)
    return true if @incontrato == true
    return false
    end #incontrato?

    def conta_sconfitti(i)
    contatore = @contatore_kill
    contatore = 0 if contatore.nil?
    return contatore
    end #conta_sconfitti

    def conta_incontrati(i)
    contatore = @contatore_incontri
    contatore = 0 if contatore.nil?
    return contatore
    end #conta_incontrati

    def mostro_sconfitto(i)
    @contatore_kill = 0 if @contatore_kill.nil?
    @contatore_kill += 1
    @kill_totali += 1
    @sconfitto = true
    end #mostro_sconfitto

    def mostro_incontrato(i)
    @contatore_incontri = 0 if @contatore_incontri.nil?
    @contatore_incontri += 1
    @incontri_totali += 1
    @incontrato = true
    end #mostro_incontrato

    end #Game_Party

    #===============================================================================
    # BattleManager
    #-------------------------------------------------------------------------------
    # alias: battle_end
    #===============================================================================

    class << BattleManager

    alias setup_bestiario setup
    def setup(troop_id, can_escape = true, can_lose = false)
    setup_bestiario(troop_id, can_escape, can_lose)
    $game_troop.members.each {|i| $game_party.mostro_incontrato(i.enemy_id)}
    end #setup

    alias battle_end_bestiario battle_end
    def battle_end(result)
    $game_troop.dead_members.each {|i| $game_party.mostro_sconfitto(i.enemy_id)}
    battle_end_bestiario(result)
    end #battle_end

    end #BattleManager


    class Game_ActionResult

    alias initialize_bestiario initialize
    def initialize(battler)
    initialize_bestiario(battler)
    @total_damage = 0
    end

    alias make_damage_bestiario make_damage
    def make_damage(value, item)
    make_damage_bestiario(value, item)
    @total_damage += @hp_damage
    end

    def total_damage
    return @total_damage
    end

    end


    #===============================================================================
    # Window_MenuCommand
    #-------------------------------------------------------------------------------
    # alias: add_original_commands
    #===============================================================================

    class Window_MenuCommand < Window_Command

    alias add_original_commands_bestiario add_original_commands
    def add_original_commands
    add_original_commands_bestiario
    add_command(Bestiario::MENU_COMMAND, :bestiary) if $game_switches[bestiario::SWITCH_MENU_ATTIVATO] or Bestiario::SWITCH_MENU_ATTIVATO == 0
    end #add_original_commands

    end #Window_MenuCommand

    #===============================================================================
    # Scene_Menu
    #-------------------------------------------------------------------------------
    # alias: create_command_window
    # new method: command_bestiary
    #===============================================================================

    class Scene_Menu < Scene_MenuBase

    alias create_command_window_bestiary create_command_window
    def create_command_window
    create_command_window_bestiary
    @command_window.set_handler(:bestiary, method(:command_bestiary))
    end #create_command_window

    def command_bestiary
    SceneManager.call(Scene_Bestiary)
    end #command_bestiary
    end #Scene_Menu

     

     

    2.Moghunter

     

    #==============================================================================
    # +++ MOG - MONSTER BOOK (v1.4) +++
    #==============================================================================
    # By Moghunter
    # http://www.atelier-rgss.com/
    #==============================================================================
    # Sistema que permite verificar os parâmetros dos inimigos derrotados,
    # o que inclui o battleback e a música de batalha.
    #
    #==============================================================================
    # Para chamar o script use o comando abaixo.
    #
    # SceneManager.call(Monster_Book)
    #
    #==============================================================================

    #==============================================================================
    # ? Histórico (Version History)
    #==============================================================================
    # v 1.4 - Correção do Crash quando não há definição de música de batalha.
    # v 1.3 - Correção do Crash aleatório.
    # v 1.2 - Melhoria no sistema de dispose.
    # v 1.1 - Correção na atualização do battleback em imagens repetidas.
    # - Correção na execução da música quando o pitch ou volume é diferente.
    # - Correção no espaço entre os números de parametros.
    #==============================================================================

    module MOG_MONSTER_BOOK
    #Ocultar inimigos especificos da lista de inimigos.
    HIDE_ENEMIES_ID = [9,10]
    #Ativar a música de batalha.
    PLAY_MUSIC = true
    #Definição da palavra Completado.
    COMPLETED_WORD = "Completed"
    #Ativar o Monster Book no Menu.
    MENU_COMMAND = true
    #Nome do comando apresentado no menu.
    MENU_COMMAND_NAME = "Bestiary"
    end

    #==============================================================================
    # ? Game_Temp
    #==============================================================================
    class Game_Temp
    attr_accessor :bestiary_battleback1_name
    attr_accessor :bestiary_battleback2_name

    #--------------------------------------------------------------------------
    # ? Initialize
    #--------------------------------------------------------------------------
    alias mog_bestiary_initialize initialize
    def initialize
    @bestiary_battleback1_name = ""
    @bestiary_battleback1_name = ""
    mog_bestiary_initialize
    end
    end

    #==============================================================================
    # ? Game_System
    #==============================================================================
    class Game_System

    attr_accessor :bestiary_defeated
    attr_accessor :bestiary_battleback
    attr_accessor :bestiary_music

    #--------------------------------------------------------------------------
    # ? Initialize
    #--------------------------------------------------------------------------
    alias mog_monster_book_initialize initialize
    def initialize
    @bestiary_defeated = []
    @bestiary_battleback = []
    @bestiary_music = []
    mog_monster_book_initialize
    end

    end

    #==============================================================================
    # ? Spriteset_Battle
    #==============================================================================
    class Spriteset_Battle
    #--------------------------------------------------------------------------
    # ? Initialize
    #--------------------------------------------------------------------------
    alias mog_bestiary_initialize initialize
    def initialize
    mog_bestiary_initialize
    $game_temp.bestiary_battleback1_name = battleback1_name
    $game_temp.bestiary_battleback2_name = battleback2_name
    end

    end

    #==============================================================================
    # ? Game_Enemy
    #==============================================================================
    class Game_Enemy < Game_Battler
    attr_accessor :enemy_id

    #--------------------------------------------------------------------------
    # ? Die
    #--------------------------------------------------------------------------
    alias mog_monster_book_die die
    def die
    mog_monster_book_die
    check_monster_book
    end

    #--------------------------------------------------------------------------
    # ? Check Monster Book
    #--------------------------------------------------------------------------
    def check_monster_book
    if $game_system.bestiary_defeated[@enemy_id] == nil
    $game_system.bestiary_defeated[@enemy_id] = 0
    $game_system.bestiary_battleback[@enemy_id] = [$game_temp.bestiary_battleback1_name,$game_temp.bestiary_battleback2_name]
    $game_system.bestiary_music[@enemy_id] = $game_system.battle_bgm
    end
    $game_system.bestiary_defeated[@enemy_id] += 1
    end
    end

    #==============================================================================
    # ? Window_Monster_Status
    #==============================================================================

    class Window_Monster_Status < Window_Selectable
    #--------------------------------------------------------------------------
    # ? Initialize
    #--------------------------------------------------------------------------
    def initialize(enemy)
    super(0, 288, 544, 128)
    self.opacity = 255
    self.z = 300
    refresh(enemy)
    activate
    end

    #--------------------------------------------------------------------------
    # ? Refresh
    #--------------------------------------------------------------------------
    def refresh(enemy)
    self.contents.clear
    if $game_system.bestiary_defeated[enemy.id] == nil
    self.contents.draw_text(0,0 , 180, 24, "No Data",0)
    else
    change_color(system_color)
    w_max = 50
    ex = 16
    self.contents.draw_text(0,0 , w_max, 24, Vocab::param(0),0)
    self.contents.draw_text(0,24 * 1 , w_max, 24, Vocab::param(1),0)
    self.contents.draw_text(0,24 * 2 , w_max, 24, Vocab::param(2),0)
    self.contents.draw_text(0,24 * 3 , w_max, 24, Vocab::param(3),0)
    self.contents.draw_text(128,24 * 0 , w_max, 24, Vocab::param(4),0)
    self.contents.draw_text(128,24 * 1 , w_max, 24, Vocab::param(5),0)
    self.contents.draw_text(128,24 * 2 , w_max, 24, Vocab::param(6),0)
    self.contents.draw_text(128,24 * 3 , w_max, 24, Vocab::param(7),0)
    self.contents.draw_text(256,24 * 0 , w_max, 24, "Exp",0)
    self.contents.draw_text(384,24 * 0 , w_max, 24, Vocab::currency_unit,0)
    self.contents.draw_text(256,24 * 1 , w_max, 24, "Treasure",0)
    change_color(normal_color,true)
    w_max2 = 64
    #HP
    self.contents.draw_text(32 + ex,0 , w_max2, 24, enemy.params[0],2)
    #MP
    self.contents.draw_text(32 + ex,24 * 1 , w_max2, 24, enemy.params[1],2)
    #ATK
    self.contents.draw_text(32 + ex,24 * 2 ,w_max2 , 24, enemy.params[2],2)
    #Def
    self.contents.draw_text(32 + ex,24 * 3 , w_max2, 24, enemy.params[3],2)
    #Mag Power
    self.contents.draw_text(160 + ex,24 * 0 , w_max2, 24, enemy.params[4],2)
    #Mag Def
    self.contents.draw_text(160 + ex,24 * 1 , w_max2, 24, enemy.params[5],2)
    #Agility
    self.contents.draw_text(160 + ex,24 * 2 , w_max2, 24, enemy.params[6],2)
    #Luck
    self.contents.draw_text(160 + ex,24 * 3 , w_max2, 24, enemy.params[7],2)
    #EXP
    self.contents.draw_text(280,24 * 0 , 96, 24, enemy.exp,2)
    #Gold
    self.contents.draw_text(400,24 * 0 , 96, 24, enemy.gold,2)
    #Drop Items
    tr = 0
    for i in enemy.drop_items
    next if i.kind == 0
    tr += 1
    tr_name = $data_items[i.data_id] if i.kind == 1
    tr_name = $data_weapons[i.data_id] if i.kind == 2
    tr_name = $data_armors [i.data_id] if i.kind == 3
    draw_icon(tr_name.icon_index, 336, 24 * tr)
    self.contents.draw_text(368,24 * tr , 160, 24, tr_name.name.to_s,0)
    end
    end
    end
    end

    #==============================================================================
    # ? Window_Monster_List
    #==============================================================================
    class Window_Monster_List < Window_Selectable

    #------------------------------------------------------------------------------
    # ? Initialize
    #------------------------------------------------------------------------------
    def initialize(data)
    super(312, 64, 232, 224)
    self.opacity = 255
    self.z = 301
    @index = -1
    @data = data
    @item_max = @data.size
    refresh(data)
    select(0)
    activate
    end

    #------------------------------------------------------------------------------
    # ? Refresh
    #------------------------------------------------------------------------------
    def refresh(data)
    self.contents.clear
    if @item_max > 0
    self.contents = Bitmap.new(width - 32, @item_max * 24)
    for i in 0...@item_max
    draw_item(i)
    end
    end
    end

    #------------------------------------------------------------------------------
    # ? draw_item MAX
    #------------------------------------------------------------------------------
    def check_item_max
    @data_max = 0
    for i in $data_enemies
    next if i == nil or MOG_MONSTER_BOOK::HIDE_ENEMIES_ID.include?(i.id)
    @data_max += 1
    end
    end

    #------------------------------------------------------------------------------
    # ? draw_item
    #------------------------------------------------------------------------------
    def draw_item(index)
    x = 0
    y = index / col_max * 24
    n_index = index + 1
    if $game_system.bestiary_defeated[@data[index].id] == nil
    monster_name = "No Data"
    defeated = " ---- "
    change_color(normal_color,false)
    else
    monster_name = @data[index].name
    change_color(normal_color,true)
    end
    check_item_max
    d = @data_max > 99 ? "%03d" : @data_max > 9 ? "%02d" : "%01d"
    text = sprintf(d, n_index).to_s + " - "
    self.contents.draw_text(x,y , 56, 24, text,0)
    self.contents.draw_text(x + 56,y , 140, 24, monster_name,0)
    end

    #------------------------------------------------------------------------------
    # ? Item Max
    #------------------------------------------------------------------------------
    def item_max
    return @item_max == nil ? 0 : @item_max
    end

    end

    #==============================================================================
    # ? Window_Monster_Comp
    #==============================================================================
    class Window_Monster_Comp < Window_Selectable
    include MOG_MONSTER_BOOK

    #--------------------------------------------------------------------------
    # ? Initialize
    #--------------------------------------------------------------------------
    def initialize
    super(312,0, 232, 64)
    self.opacity = 255
    self.z = 300
    refresh
    activate
    end

    #--------------------------------------------------------------------------
    # ? Check Completition
    #--------------------------------------------------------------------------
    def check_completion
    data_max = 0
    for i in $data_enemies
    next if i == nil or MOG_MONSTER_BOOK::HIDE_ENEMIES_ID.include?(i.id)
    data_max += 1
    end
    comp = 0
    for i in 0...$game_system.bestiary_defeated.size
    comp += 1 if $game_system.bestiary_defeated != nil
    end
    @completed = COMPLETED_WORD + " " + comp.to_s + "/" + data_max.to_s
    end

    #--------------------------------------------------------------------------
    # ? Refresh
    #--------------------------------------------------------------------------
    def refresh
    self.contents.clear
    check_completion
    self.contents.draw_text(0,0, 160, 24, @completed.to_s,0)
    end
    end

    #==============================================================================
    # ? Monster_Book
    #==============================================================================
    class Monster_Book

    #--------------------------------------------------------------------------
    # ? Main
    #--------------------------------------------------------------------------
    def main
    Graphics.transition
    execute_loop
    execute_dispose
    end

    #--------------------------------------------------------------------------
    # ? Execute Loop
    #--------------------------------------------------------------------------
    def execute_loop
    loop do
    Graphics.update
    Input.update
    update
    break if SceneManager.scene != self
    end
    end

    #--------------------------------------------------------------------------
    # ? Initialize
    #--------------------------------------------------------------------------
    def initialize
    load_data
    execute_dispose
    create_window_guide
    create_enemy_sprite
    create_battleback
    @music = [nil,nil,nil]
    refresh_bgm
    end

    #------------------------------------------------------------------------------
    # ? Initialize
    #------------------------------------------------------------------------------
    def load_data
    BattleManager.save_bgm_and_bgs
    @data = []
    for i in $data_enemies
    next if i == nil or MOG_MONSTER_BOOK::HIDE_ENEMIES_ID.include?(i.id)
    @data.push(i)
    end
    end

    #--------------------------------------------------------------------------
    # ? Execute Dispose
    #--------------------------------------------------------------------------
    def execute_dispose
    return if @windows_guide == nil
    Graphics.freeze
    @windows_guide.dispose
    @windows_guide = nil
    @windows_status.dispose
    if @enemy_sprite.bitmap != nil
    @enemy_sprite.bitmap.dispose
    end
    @enemy_sprite.dispose
    dispose_battleback
    @battleback1.dispose
    @battleback2.dispose
    @window_comp.dispose
    BattleManager.replay_bgm_and_bgs
    end

    #--------------------------------------------------------------------------
    # ? Dispose_battleback
    #--------------------------------------------------------------------------
    def dispose_battleback
    if @battleback1.bitmap != nil
    @battleback1.bitmap.dispose
    @battleback1.bitmap = nil
    end
    if @battleback2.bitmap != nil
    @battleback2.bitmap.dispose
    @battleback2.bitmap = nil
    end
    end

    #--------------------------------------------------------------------------
    # ? Create Window Guide
    #--------------------------------------------------------------------------
    def create_window_guide
    @windows_guide = Window_Monster_List.new(@data)
    @enemy = @data[@windows_guide.index]
    @windows_status = Window_Monster_Status.new(@enemy)
    @window_comp = Window_Monster_Comp.new
    @old_index = @windows_guide.index
    @org_pos = [@windows_guide.x,@windows_guide.y]
    @fade_time = 60
    end

    #--------------------------------------------------------------------------
    # ? Create Enemy Sprite
    #--------------------------------------------------------------------------
    def create_enemy_sprite
    @enemy_sprite = Sprite.new
    @enemy_sprite.z = 100
    @enemy_sprite_org = @enemy_sprite.x
    refresh_enemy_sprite
    end

    #--------------------------------------------------------------------------
    # ? Create_Battleback
    #--------------------------------------------------------------------------
    def create_battleback
    @battleback1 = Sprite.new
    @battleback1.z = 1
    @battleback1.opacity = 0
    @battleback2 = Sprite.new
    @battleback2.z = 2
    @battleback2.opacity = 0
    @old_battleback = [nil,nil]
    refresh_batteback
    end

    #--------------------------------------------------------------------------
    # ? Update
    #--------------------------------------------------------------------------
    def update
    @windows_guide.update
    update_command
    update_animation
    refresh if @old_index != @windows_guide.index
    end

    #--------------------------------------------------------------------------
    # ? Update Animation
    #--------------------------------------------------------------------------
    def update_animation
    update_window_fade_animation
    update_battleback_animation
    update_enemy_sprite_animation
    end

    #--------------------------------------------------------------------------
    # ? Update Enemy Sprite Animation
    #--------------------------------------------------------------------------
    def update_enemy_sprite_animation
    @enemy_sprite.opacity += 15
    if @enemy_sprite.x < @enemy_sprite_org
    @enemy_sprite.x += 15
    if @enemy_sprite.x >= @enemy_sprite_org
    @enemy_sprite.x = @enemy_sprite_org
    end
    end
    end

    #--------------------------------------------------------------------------
    # ? Update Window Fade Animation
    #--------------------------------------------------------------------------
    def update_window_fade_animation
    if @windows_guide.visible
    @windows_guide.opacity += 15
    @windows_guide.contents_opacity += 15
    if @windows_guide.y > @org_pos[1]
    @windows_guide.y -= 25
    if @windows_guide.y < @org_pos[1]
    @windows_guide.y = @org_pos[1]
    @windows_guide.opacity += 255
    @windows_guide.contents_opacity = 255
    end
    end
    else
    @windows_guide.opacity -= 15
    @windows_guide.contents_opacity -= 15
    if @windows_guide.y < (@windows_guide.height + 416)
    @windows_guide.y += 25
    @windows_guide.y = (@windows_guide.height + 416) if @windows_guide.y > (@windows_guide.height + 416)
    end
    end
    end

    #--------------------------------------------------------------------------
    # ? Update Battleback Animation
    #--------------------------------------------------------------------------
    def update_battleback_animation
    if @old_battleback == nil
    @battleback1.opacity -= 10
    @battleback2.opacity -= 10
    else
    @battleback1.opacity += 10
    @battleback2.opacity += 10
    end
    end

    #--------------------------------------------------------------------------
    # ? Update Command
    #--------------------------------------------------------------------------
    def update_command
    if Input.trigger?(Input::B) or Input.press?(Input::B)
    Sound.play_cancel
    SceneManager.return
    elsif Input.trigger?(Input::C)
    Sound.play_ok
    return
    if @windows_guide.visible
    @windows_guide.visible = false
    else
    @windows_guide.visible = true
    end
    end
    end

    #--------------------------------------------------------------------------
    # ? Refresh Animation
    #--------------------------------------------------------------------------
    def refresh
    @old_index = @windows_guide.index
    @enemy = @data[@windows_guide.index]
    @windows_status.refresh(@enemy)
    refresh_bgm
    refresh_enemy_sprite
    refresh_batteback
    end

    #--------------------------------------------------------------------------
    # ? Refresh Animation
    #--------------------------------------------------------------------------
    def refresh_enemy_sprite
    if @enemy_sprite.bitmap != nil
    @enemy_sprite.bitmap.dispose
    @enemy_sprite.bitmap = nil
    end
    if $game_system.bestiary_defeated[@enemy.id] != nil
    @enemy_sprite.bitmap = Cache.battler(@enemy.battler_name, @enemy.battler_hue)
    @enemy_sprite_org = (312/ 2) - (@enemy_sprite.bitmap.width / 2)
    @enemy_sprite.x = -@enemy_sprite.bitmap.width
    @enemy_sprite.y = 272 - @enemy_sprite.bitmap.height
    @enemy_sprite.opacity = 0
    end
    end

    #--------------------------------------------------------------------------
    # ? BGM Refresh
    #--------------------------------------------------------------------------
    def refresh_bgm
    return unless MOG_MONSTER_BOOK::PLAY_MUSIC
    if $game_system.bestiary_music[@enemy.id] != nil and
    (@music[0] != $game_system.bestiary_music[@enemy.id].name or
    @music[1] != $game_system.bestiary_music[@enemy.id].volume or
    @music[2] != $game_system.bestiary_music[@enemy.id].pitch)
    m = $game_system.bestiary_music[@enemy.id]
    @music = [m.name, m.volume, m.pitch]
    RPG::BGM.stop
    Audio.bgm_play("Audio/BGM/" + m.name, m.volume, m.pitch) rescue nil
    end
    end

    #--------------------------------------------------------------------------
    # ? Refresh Battleback
    #--------------------------------------------------------------------------
    def refresh_batteback
    if $game_system.bestiary_battleback[@enemy.id] != nil and
    (@old_battleback[0] != $game_system.bestiary_battleback[@enemy.id][0] or
    @old_battleback[1] != $game_system.bestiary_battleback[@enemy.id][1])
    @old_battleback = [$game_system.bestiary_battleback[@enemy.id][0], $game_system.bestiary_battleback[@enemy.id][1]]
    dispose_battleback
    @battleback1.opacity = 0
    @battleback2.opacity = 0
    if $game_system.bestiary_battleback[@enemy.id][0] != nil
    @battleback1.bitmap = Cache.battleback1($game_system.bestiary_battleback[@enemy.id][0])
    else
    @battleback1.bitmap = Cache.battleback1("")
    end
    if $game_system.bestiary_battleback[@enemy.id][1] != nil
    @battleback2.bitmap = Cache.battleback2($game_system.bestiary_battleback[@enemy.id][1])
    else
    @battleback2.bitmap = Cache.battleback2("")
    end
    end
    end

    end

    if MOG_MONSTER_BOOK::MENU_COMMAND
    #==============================================================================
    # ? Window Menu Command
    #==============================================================================
    class Window_MenuCommand < Window_Command

    #------------------------------------------------------------------------------
    # ? Add Main Commands
    #------------------------------------------------------------------------------
    alias mog_bestiary_add_main_commands add_main_commands
    def add_main_commands
    mog_bestiary_add_main_commands
    add_command(MOG_MONSTER_BOOK::MENU_COMMAND_NAME, :bestiary, main_commands_enabled)
    end
    end

    #==============================================================================
    # ? Scene Menu
    #==============================================================================
    class Scene_Menu < Scene_MenuBase

    #------------------------------------------------------------------------------
    # ? Create Command Windows
    #------------------------------------------------------------------------------
    alias mog_bestiary_create_command_window create_command_window
    def create_command_window
    mog_bestiary_create_command_window
    @command_window.set_handler(:bestiary, method(:Monster_Book))
    end

    #------------------------------------------------------------------------------
    # ? Monster Book
    #------------------------------------------------------------------------------
    def Monster_Book
    SceneManager.call(Monster_Book)
    end

    end

    end

    $mog_rgss3_monster_book = true

     

  7. Ciao a tutti , sono arrivato solo adesso :(

    ho scoperto da poco rpg maker purtroppo, adesso mi son fiondato subito nella creazione di game ^_^

    sono un pivello attualmente ma in 2 giorni che ho iniziato.. vedo progressi.. spero bene xd

    cmq piacere Emanuele 21 anni

    good luck!! :P

×
×
  • Create New...