Jump to content
Rpg²S Forum

Misterdiablo94

Utenti
  • Posts

    46
  • Joined

  • Last visited

Posts posted by Misterdiablo94

  1. Allora dato che per i miei due videogiochi ho utilizzato uno script inventario in stile Resident Evil su RPG Maker VX Ace, e siccome mi piacerebbe sviluppare un terzo capitolo su MV, vorrei che qualcuno mi aiutasse a riscrivere il codice per MV.

    C'è qualcuno disposto ad aiutarmi? Lo script è questo.

    module RE_MENU
      BAR_POSITION_X = 3
      BAR_POSITION_Y = 0
    end
    
    module Special_Map
     
      Archive_ID = 12
      Archive_x = 17
      Archive_y = 13
     
      Option_ID = 11
      Option_x = 17
      Option_y = 13
    
      Map_ID_Variable = 6
      Coord_x_Variable = 7
      Coord_y_Variable = 8
     
      def self.set_coordinates
        $game_variables[Map_ID_Variable] = $game_map.map_id
        $game_variables[Coord_x_Variable] = $game_player.x
        $game_variables[Coord_y_Variable] = $game_player.y
      end
     
    end
    
    class Scene_Menu < Scene_MenuBase
        alias re_inventory_create_command_window create_command_window
        def create_command_window
            re_inventory_create_command_window
            @command_window.set_handler(:inventory,      method(:command_inventory))
        end
      
        def command_inventory
            SceneManager.call(Scene_RE_Menu)   
        end
    
    end
    
    class Window_MenuCommand < Window_Command
        alias re_inventory_add_main_commands add_main_commands
        def add_main_commands
            add_command("RE Inventory",   :inventory,   main_commands_enabled)
            re_inventory_add_main_commands
        end
    end
    
    class Scene_RE_Menu < Scene_Base
    
        attr_reader :help_window
      
        def start
            super
        Special_Map.set_coordinates
            load_windowskin
        $game_party.last_item.object = nil
        create_menu_window
            create_face_window
            create_name_window
            create_life_window       
            create_help_window
            create_weapon_window
            create_ammo_window
            create_equip_window
            create_use_window
            create_item_window
        @item_index = 0
        @item_window.select(-1)
        @menu_window.select(1)
        @menu_window.activate
        create_background
        end
     
        def load_windowskin
            @windowskin = Bitmap.new("Graphics/System/re_menu_skin")
        @windowskin2 = Bitmap.new("Graphics/System/re_menu_ski2")
        end
    
        def create_menu_window
        @menu_window = Window_RE_Command.new(167,10)
        @menu_window.windowskin = @windowskin
        @menu_window.set_handler(:option, method(:open_option))
        @menu_window.set_handler(:item, method(:go_inventory))
            @menu_window.set_handler(:exit, method(:return_map))
        @menu_window.set_handler(:cancel, method(:return_scene))
      end
    
        def create_face_window
            @face_window = Window_Base.new(0,43,100,100)
            @face_window.windowskin = @windowskin
            @face_window.padding = 8
            @face_window.contents = Bitmap.new(84,84)
            @face_window.draw_actor_face($game_party.members[0],-6,-6)   
        @face_window.hide
        end
      
        def create_name_window
            @name_window = Window_Base.new(0,138,100,48)
            @name_window.windowskin = @windowskin
            @name_window.draw_text(-16,0,100,24,$game_party.members[0].name,1)
        @name_window.hide
        end
      
        def create_life_window
            @life_window = Window_Base.new(100,54,259,50)
            @life_window.windowskin = @windowskin
      
            life_refresh
        end
      
        def create_help_window
            @help_window = Window_Help2.new(3,305,358,Graphics.height - 30)
            @help_window.windowskin = @windowskin
        end
      
        def create_weapon_window
            @weapon_window = Window_Base.new(0,53,Graphics.width-440,90)
            @weapon_window.windowskin = @windowskin
            @weapon_window.draw_RE_weapon($game_player.actor.weapons[0],0,0) if $game_player.actor.weapons[0]
        end
      
        def create_ammo_window
            @ammo_window = Window_Base.new(430,90+48,Graphics.width-430,48)
            @ammo_window.windowskin = @windowskin
            ammo_refresh
        @ammo_window.hide
        end
      
        def create_equip_window
            @equip_window = Window_RE_Equip.new(248,130+48)
            @equip_window.windowskin = @windowskin2
            @equip_window.set_handler(:cancel, method(:item_back))
            @equip_window.set_handler(:equip, method(:equip_weapon))
            @equip_window.set_handler(:remove, method(:remove_weapon))
        @equip_window.set_handler(:reload, method(:reload_weapon))
            @equip_window.deactivate
            @equip_window.hide
        end
      
        def    create_use_window
            @use_window = Window_RE_Use.new(248,130+48)
        @use_window.windowskin = @windowskin2
            @use_window.set_handler(:cancel, method(:item_back))
            @use_window.set_handler(:use, method(:use_item))
            @use_window.deactivate
            @use_window.hide
        end
      
        def    create_item_window
            @item_window = Window_RE_Item.new(359,20+33,191,395-48) #(353,40+48,191,375-48)    New Version (353,10+33,191,400-48)
            @item_window.windowskin = @windowskin
            @item_window.set_handler(:ok, method(:on_item_ok))
            @item_window.set_handler(:cancel, method(:exit_inventory))       
            @item_window.refresh
        end
    
      def create_background
    
       @background_sprite = Sprite.new
    
       @background_sprite.bitmap = Cache.picture ("Background Inventory")
    
       @background_sprite.x = 0
    
       @background_sprite.y = 0
     end
     
      
        def item_back
            @use_window.hide
            @equip_window.hide
      
            @item_window.refresh
            @item_window.activate
     
        end
      
        def on_item_ok
        $game_party.last_item.object = @item_window.item
            if @item_window.item.is_a?(RPG::Item)
                @use_window.set_item(@item_window.item)
                @use_window.refresh
                @use_window.activate
                @use_window.show
              
            elsif @item_window.item.is_a?(RPG::Weapon)
                @equip_window.set_item(@item_window.item)
                @equip_window.refresh
                @equip_window.activate
                @equip_window.show
        else
          RPG::SE.stop
          @item_window.activate
            end
        end
      
        def item
            @item_window.item
        end
      
        def equip_weapon
            $game_player.actor.change_equip(0,@item_window.item)
            weapon_refresh
            item_back
        end
      
        def remove_weapon
            $game_player.actor.change_equip(0,nil)
            weapon_refresh
            item_back
        end
     
      def reload_weapon
        weapon = $weapons.find{|weapon| weapon.weapon.name == $data_weapons[item.id].name}
        $game_party.items.each { |item|
          if item.id == weapon.magazine.id
            $game_party.lose_item(weapon.magazine,1)
            weapon.bullets += weapon.max
            Audio.se_play("Audio/Se/#{weapon.wav_name}_reload", 100, 100)
            break
          end
        }
        if weapon == $game_player.equipped_weapon
          weapon_refresh
        else
          ammo_refresh
        end
            item_back
      end
      
        def ammo_refresh
        @ammo_window.contents.clear
            if $game_player.equipped_weapon != nil
                string = sprintf( "Munizioni : %d",$game_player.equipped_weapon.bullets)
            else
                string =""
            end
            @ammo_window.draw_text(0,0,Graphics.width-430,24,string,0)
      
      end
     
        def weapon_refresh
            @weapon_window.contents.clear
            @weapon_window.draw_RE_weapon($game_player.actor.weapons[0],0,0) if $game_player.actor.weapons[0]
        ammo_refresh
        end
      
        def item_target_actors
            if !item.for_friend?
              []
            elsif item.for_all?
              $game_party.members
            else
              [$game_player.actor]
            end
        end
     
          #--------------------------------------------------------------------------
          # * Use Item on Actor
          #--------------------------------------------------------------------------
            def use_item_to_actors
                user = $game_player.actor
                item_target_actors.each do |target|
                    item.repeats.times { target.item_apply(user, item) }
                end
            end
          #--------------------------------------------------------------------------
          # * Use Item
          #--------------------------------------------------------------------------
            def use_item
                Sound.play_use_item
                $game_player.actor.use_item(item)
                use_item_to_actors
                check_common_event
                check_gameover
                weapon_refresh
                life_refresh
          RPG::BGS.stop
                item_back
            end
      
          #--------------------------------------------------------------------------
          # * Determine if Common Event Is Reserved
          #    Transition to the map screen if the event call is reserved.
          #--------------------------------------------------------------------------
            def check_common_event
                SceneManager.goto(Scene_Map) if $game_temp.common_event_reserved?
            end
          
        def life_refresh
     
        bar1 = Bitmap.new("Graphics/System/life_bar")
        bar2 = Bitmap.new("Graphics/System/blood_bar")
        x = RE_MENU::BAR_POSITION_X
        y = RE_MENU::BAR_POSITION_Y
      
        @life_window.contents.blt(x,y,bar2,bar2.rect)
      
        rate = $game_player.actor.hp*1.0/$game_player.actor.mhp
        rect = Rect.new(0,0,bar1.width * rate,bar1.height)
      
        @life_window.contents.blt(x,y,bar1,rect)
      end
    
      def go_inventory
        @item_window.select(0)
        @menu_window.select(-1)
        @menu_window.deactivate
        @item_window.activate
      end
     
      def exit_inventory
        @help_window.clear
        @item_index = @item_window.index
        @item_window.select(-1)
        @item_window.deactivate
        @menu_window.select(1)
        @menu_window.activate
      end
     
      def open_option
        $game_player.transparent = true
        $game_system.save_bgm
        RPG::BGS.stop
        $game_player.reserve_transfer(Special_Map::Option_ID,Special_Map::Option_x,Special_Map::Option_y)
        $game_player.perform_transfer
        SceneManager.call(Scene_Map)
        $game_switches[10] = false
      end
     
      def open_archive
        $game_player.transparent = true
        $game_system.save_bgm
        RPG::BGS.stop
        $game_player.reserve_transfer(Special_Map::Archive_ID,Special_Map::Archive_x,Special_Map::Archive_y)
        $game_player.perform_transfer
        SceneManager.call(Scene_Map)
        $game_switches[10] = false
      end
    
      def return_map
        map = $game_variables[Special_Map::Map_ID_Variable]
        x = $game_variables[Special_Map::Coord_x_Variable]
        y = $game_variables[Special_Map::Coord_y_Variable]
        if $game_map.map_id != map #se esco da un menu...
          $game_player.reserve_transfer(map,x,y) #ritorna nella mappa
          $game_system.replay_bgm #Riparte la bgm
          $game_switches[980] = true #si attiva la switch per togliere la dissolvenza
          $game_temp.reserve_common_event(43) #Si attiva l'evento comune per togliere la dissolvenza
        end
        return_scene
      end
    end
    
    class Window_RE_Equip < Window_Command
    
        def initialize(x,y)
            super(x,y)
        end
      
        def window_width
            return (Graphics.width-430)
        end
      
        def make_command_list
            add_command("Equip",   :equip,   equip_ok?)
            add_command("Rimuovi",  :remove,  remove_ok?)
        add_command("Ricarica",  :reload,  reload_ok?)
        end
     
      def reload_ok?
        if @item
         a = $weapons.find{|weapon| weapon.weapon.name == $data_weapons[@item.id].name}
         a && a.bullets == 0
       else
        b = false
        end
      end
     
        def equip_ok?
            @item != $game_player.actor.weapons[0]
        end
      
        def remove_ok?
            @item == $game_player.actor.weapons[0]
        end
    
        def set_item(item)       
            @item = item
        end
    end
    
    class Window_RE_Use < Window_Command
    
        def initialize(x,y)
            super(x,y)
        end
      
        def window_width
            return (Graphics.width-430)
        end
      
        def make_command_list
            add_command("Usa",   :use,   use_ok?)
        end
      
        def use_ok?
            actor = $game_player.actor
            actor.usable?(@item) && actor.item_test(actor,@item)
        end
      
        def set_item(item)
            @item = item
        end
    end
    
    #==============================================================================
    # ** Window_ItemList
    #------------------------------------------------------------------------------
    #  This window displays a list of party items on the item screen.
    #==============================================================================
    
    class Window_RE_Item < Window_Selectable
      #--------------------------------------------------------------------------
      # * Object Initialization
      #--------------------------------------------------------------------------
      def initialize(x, y, width, height)
        super(x, y, width, height)
        @help_window = SceneManager.scene.help_window
        @data = []
      
      end
    
      #--------------------------------------------------------------------------
      # * Get Digit Count
      #--------------------------------------------------------------------------
      def col_max
        return 2
      end
      def item_width
        return 80
      end
      def item_height
        return 80
      end
      def spacing
         return 0
      end
      #--------------------------------------------------------------------------
      # * Get Number of Items
      #--------------------------------------------------------------------------
      def item_max
        @data ? @data.size : 1
      end
      #--------------------------------------------------------------------------
      # * Get Item
      #--------------------------------------------------------------------------
      def item
        @data && index >= 0 ? @data[index] : nil
      end
      #--------------------------------------------------------------------------
      # * Include in Item List?
      #--------------------------------------------------------------------------
      def include?(item)
            return true
      end
      #--------------------------------------------------------------------------
      # * Create Item List
      #--------------------------------------------------------------------------
        def make_item_list
            actor = $game_party.members[0]
            @data = actor.weapons
            @data += $game_party.all_items.select {|item| include?(item) }
        #    @data.push(nil) if include?(nil)
        end
      #--------------------------------------------------------------------------
      # * Restore Previous Selection Position
      #--------------------------------------------------------------------------
      def select_last
        select(@data.index($game_party.last_item.object) || 0)
      end
      #--------------------------------------------------------------------------
      # * Draw Item
      #--------------------------------------------------------------------------
      def draw_item(index)
        item = @data[index]
        if item
            rect = item_rect(index)
            if item.is_a?(RPG::Weapon)
                draw_RE_weapon(item,rect.x,rect.y+10)
            else
                draw_RE_item(item,rect.x,rect.y+10)
            end   
        end
      end
      #--------------------------------------------------------------------------
      # * Update Help Text
      #--------------------------------------------------------------------------
      def update_help
        @help_window.set_item(item)
      end
      #--------------------------------------------------------------------------
      # * Refresh
      #--------------------------------------------------------------------------
      def refresh
        make_item_list
        create_contents
        draw_all_items
        select_last
      end
    end
    
    
    class Window_Help2 < Window_Base
      #--------------------------------------------------------------------------
      # * Object Initialization
      #--------------------------------------------------------------------------
      def initialize(x,y,width,height)
        super(x,y,width,height)
      
      end
      #--------------------------------------------------------------------------
      # * Set Text
      #--------------------------------------------------------------------------
      def set_text(text)
        if text != @text
          @text = text
          refresh
        end
      end
      #--------------------------------------------------------------------------
      # * Clear
      #--------------------------------------------------------------------------
      def clear
        set_text("")
      end
      #--------------------------------------------------------------------------
      # * Set Item
      #     item : Skills and items etc.
      #--------------------------------------------------------------------------
      def set_item(item)
        set_text(item ? item.name + "" + item.description : "")
      end
      #--------------------------------------------------------------------------
      # * Refresh
      #--------------------------------------------------------------------------
      def refresh
        contents.clear
        self.contents.font.size = 20
       # draw_text_ex(4, 0, @text)
        a = @text.scan(/(.+)/)
        draw_text(4,0, width , 24, a[0][0]) if a[0]
        draw_text(4,24, width , 24, a[1][0]) if a[1]
      end
    end
    
    class Window_Base
    
        def draw_RE_weapon(item, x, y, enabled = true)
            bmp = Bitmap.new(90,70)
            bmp.fill_rect(bmp.rect,Color.new(255,255,255))
            bitmap = Cache.RE_weapon(item.name) rescue bmp
    
        a = $weapons.find{|weapon| weapon.weapon.name == $data_weapons[item.id].name}
      
      
        image = Bitmap.new(90,70)
        image.blt((80-bitmap.width)/2,(60-bitmap.height)/2,bitmap,bitmap.rect)
      
        image.draw_text(-15,40,85,20,a.bullets,2) if a
            rect = Rect.new(0,0,90,70)
            contents.blt(x, y, image, rect, enabled ? 255 : translucent_alpha)
            bmp.dispose
        end
      
        def draw_RE_item(item, x, y, enabled = true)
            bmp = Bitmap.new(90,70)
            bmp.fill_rect(bmp.rect,Color.new(255,255,255))
            bitmap = Cache.RE_item(item.name) rescue bmp
      
        image = Bitmap.new(90,70)
        image.blt((80-bitmap.width)/2,(60-bitmap.height)/2,bitmap,bitmap.rect)
          
        image.draw_text(-15,40,85,20,$game_party.item_number(item),2)
            rect = Rect.new(0,0,90,70)
            contents.blt(x,y,image, rect, enabled ? 255 : translucent_alpha)
            bmp.dispose
        end
          
    end
    
    class Window_RE_Command < Window_HorzCommand
      def window_width
        return Graphics.width
      end
     
      def make_command_list
        add_command("", :option)
        add_command("", :item)
        add_command("", :exit)
      end
     
      def col_max
        return 6
      end
      
      def spacing
        return 1
      end
     
      def item_width
        (width - standard_padding * 1 + spacing) / col_max - spacing #10
      end
    end
    
    module Cache
      
        def self.RE_weapon(filename)
            load_bitmap("Graphics/Weapons/", filename)
        end
      
        def self.RE_item(filename)
            load_bitmap("Graphics/Items/", filename)
        end
    end
    
  2. Secondo gioco del mister a dir poco fatto bene. Ottimo risultato.

     

    Con il pop poi non ci sono storie, demolisce le rtp standard che è un piacere. Aspetto altre novità e altri progetti stile Eb. E sopratutto il remake del primo con il pop!

     

     

     

    (Devo ancora provarlo ma dall'anteprima e aver seguito un po' gli sviluppi si intuisce subito che si tratta di qualcosa di bello)

     

     

     

    Grazie anche per la citazione nei credits;)

     

    Figurati Loppa ;) Anzi dovrei essere io a ringraziarti di cuore sia per il supporto che per la collaborazione che hai sempre dato ai miei progetti ^^

  3. Ehilà Guardian, si il primo capitolo effettivamente mancava qui sul forum XD

    Riguardo invece un possibile terzo capitolo, beh considerando che nei prossimi mesi dovrò lavorare alla seconda parte di questo capitolo ( si Evil Biohazard2D II è diviso in due capitoli come noterai dal menu principale ) è probabile che ci sarà un futuro Evil Biohazard2d III ^^

  4. Salve a tutti, ragazzi. Mentre continuavo alla correzione del gioco, ho appena riscontrato qualche problema nel combat system da me adottato. Per farvelo capire meglio, metterò un link video correlato. Come potete vedere, mentre sparo, il colpo può oltrepassare vari oggetti come tavoli, muri e altri. Vorrei sistemare questa faccenda, in modo che il colpo non raggiungesse il nemico oltrepassando gli eventi. Vi ringrazio in anticipo.

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

  5. Ciao midi, innanzi tutto ti ringrazio sia per i complimenti che per i consigli ;) poi comunque tranquillo questa e' solo l'introduzione del gioco, appena entrerai nella villa sara' molto piu libero il gameplay, per il discorso dei dialoghi, avevo detto che tutto non era in versione definitiva quindi verranno risolti ;) invece per quanto riguarda il parco, effettivamente non hai tutti i torti, ansi, ti ringrazio di avermi dato l'idea del bar :D

  6. Sia midi che guardian, grazie di cuore.

     

    Allora guardian per quanto riguarda la sezione equip, potrai solamente equipaggiare armi mentre per utilizzare medkit o altro dovrai recarti nella sezione oggetti. :)

    Midi per quanto riguarda il secondo screenshot, sappi' che quella sara' un'altra area di gioco, il resto invece lo migliorero' tranquillo ;)

×
×
  • Create New...