¡Bienvenid@ a Mundo Maker!

¿Quieres aprender todo sobre el RPG Maker?



Regístrate y forma parte de Mundo Maker.
Conectarse

Recuperar mi contraseña

Temas importantes
----------------------------------------
Páginas con recursos RPG Maker
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
Afiliados
Estadísticas
Tenemos 3510 miembros registrados.
El último usuario registrado es Patrol9X.

Nuestros miembros han publicado un total de 80434 mensajes en 11368 argumentos.
Navega con Google Chrome
[DESCARGA]

[RPGXP] Diablo Starter kit v.1.0

 :: RPG Maker :: Scripts

Ver el tema anterior Ver el tema siguiente Ir abajo

[RPGXP] Diablo Starter kit v.1.0

Mensaje por Arestame el 2010-07-02, 09:21

Más tarde encontré un starter kit que le gustaría en mundo maker, así que arestame cogió el starter kit y lo posteó acá.
-Vengo a Anunciaros de que encontré un Starter Kit del juego Diablo
-Pero aún no está terminado del todo
-Dice Arestame a toda la peña

-Los Nuevos Sistemas que va a concluir este starter kit son los siguientes *digo mientras alzo un pergamino*

-Pantalla Completa
-Inventario Estilo Diablo
-ABS
-Nombre del Mapa (By: Moghunter)
-Sistema de Puntos (Yo que se que es eso)
-UMS (Sistema de Mensaje Universal, Universal Message System)
-8 Clases: en las que incluye,Paladin, Amazon, Barbarian, Necromancer, Sorceress, Assasin, Witch Doctor y Druida

- Y muuuuuuuuuchas más cosas *dice el pergamino*
Aquí el link, no está protegido, así que lo tienes que coger de una vez XDDDD
Pincha en la imagen

Arestame
Aventurero
Aventurero

0/3

Créditos 1518

Gracias : 37

Volver arriba Ir abajo

Re: [RPGXP] Diablo Starter kit v.1.0

Mensaje por Daante el 2014-07-26, 19:43

No hay nada bro - resubelo otra vez porfa quisiera probarlo

Daante
Iniciado
Iniciado

0/3

Créditos 2

Gracias : 2

Volver arriba Ir abajo

._.

Mensaje por Pancho Sanchez el 2014-07-26, 20:28

Daante escribió:No hay nada bro - resubelo otra vez porfa quisiera probarlo

Trata de no revivir viejos temas.
pero bueno, estaba buscando lo mismo hace unas semanas, estan todos cerrados y rotos.
pero encontre este inventario al estilo Diablo, esta bueno, lo iba a usar, pero no quedaba con el baúl.
os lo dejo, tambien para aquellas personas que lo busquen aprovecho:
Código:
    #==========================================================================#====
    #  Sistema de Inventário Estilo Mu e Diablo 2.0
    #  ou Diablo Waypoint, como muitos preferem dizer...
    #------------------------------------------------------------------------------
    #  Criado por DarkSchneider
    #  Adaptado por Raphael Nunes
    #------------------------------------------------------------------------------
    =begin
      O script cria um menu de itens de slots, semelhantes ao que vemos em
    jogos como Diablo, Mu, Dungeon Siege e assim vai...
    Ótimo para quem está fazendo um game de ABS, e quer que seu inventário seja
    limitado...

    Ai vocíª deve estar se perguntando... O que esse palhaço fez?

    Ai eu respondo:

    Esse palhaço (eu) adaptei o script para funcionar em qualquer script de menu,
    seja ele complexo ou não, seja o jogo online ou não...Alem de traduzir certas coisas
    e adicionar algumas coisas que faziam o script dar incompatibilidade com o SDK...


    Do que ele prescisa: Apenas que cada Character tenha um Battlers com o mesmo nome, se
    o character se chamar Zé_Peneira, o Battler tambem deve se chamar Zé_Peneira...

    O resto...Bem...É o resto... ^^

    Podem acreditar...É um ótimo script...

    Caso queiram mudar o tamanho dos slots dos itens, bem,,,Melhor tirar o cavalinho
    da chuva, pois para fazer isso, será nescessário modificar todos os cáuculos do
    sistema...

    Para usar, apenas coloque o acima do Main e acima tambem do sue menu...
    E pronto...

    PS: Seu menu não pode modificar o Scene_Item...

    =end

    #==============================================================================

    class Scene_Item
      def initialize(actor_index = 0)
        @actor_index = actor_index
      end
   
      def main
        # Make help window, item window
        s1 = "Usar"
        s2 = "Mover"
        s3 = "jogar"
        @command_window = Window_Command.new(193, [s1, s2 , s3])
        @command_window.y = 64
        @help_window = Window_Help.new
        @grid = Window_Grid.new(@actor_index)
        @grid.active = false
        # Associate help window
        @grid.help_window = @help_window
        # Make target window (set to invisible / inactive)
        @target_window = Window_Target.new
        @target_window.visible = false
        @target_window.active = false
        @window_pc = Window_Base.new(0,192,193,287)
        @window_pc.contents = Bitmap.new(161,255)
        @window_pc.draw_actor_name($game_party.actors[@actor_index], 10, 0)
        @window_pc.draw_actor_picture($game_party.actors[@actor_index], 80, 250)
        # Execute transition
        Graphics.transition
        # Main loop
        loop do
          # Update game screen
          Graphics.update
          # Update input information
          Input.update
          # Frame update
          update
          # Abort loop if screen is changed
          if $scene != self
            break
          end
        end
        # Prepare for transition
        Graphics.freeze
        @cursor_icon.dispose if @cursor_icon != nil
        # Dispose of windows
        @command_window.dispose
        @help_window.dispose
        #@item_window.dispose
        @target_window.dispose
        @grid.dispose
        @window_pc.dispose
      end
      #--------------------------------------------------------------------------
      # * Frame Update
      #--------------------------------------------------------------------------
      def update
        # Update windows
        @command_window.update
        @help_window.update
        @target_window.update
        @grid.update
        if @command_window.active
          update_command
          return
        end
        # If item window is active: call update_item
        if @grid.active
          case @grid.mode
          when 0
            update_usa
          when 1
            @cursor_icon = Cursor_Icon.new if @cursor_icon == nil
            @cursor_icon.visible = false
            update_muovi
          when 2
            update_lascia
          when 3
            @cursor_icon.update
            update_muovi2
          end
          return
        end
        # If target window is active: call update_target
        if @target_window.active
          update_target
          return
        end
      end
   
      def update_command
        # If B button was pressed
        if Input.trigger?(Input::B)
          # Play cancel SE
          $game_system.se_play($data_system.cancel_se)
          # Switch to menu screen
          $scene = Scene_Menu.new(0)
        return
      end
        if Input.trigger?(Input::C)
          # Branch by command window cursor position
          case @command_window.index
          when 0  # use
            # Play decision SE
            $game_system.se_play($data_system.decision_se)
            @command_window.active = false
            @grid.active = true
            @grid.set = 0
            @grid.mode = @command_window.index
          when 1  # move
            # Play decision SE
            $game_system.se_play($data_system.decision_se)
            # Make status window active
            @command_window.active = false
            @grid.active = true
            @grid.set = 0
            @grid.mode = @command_window.index
          when 2  # drop
            # Play decision SE
            $game_system.se_play($data_system.decision_se)
            # Make status window active
            @command_window.active = false
            @grid.active = true
            @grid.set = 0
            @grid.mode = @command_window.index
          end
          return
        end
      end
      #--------------------------------------------------------------------------
      # * Frame Update (when item window is active)
      #--------------------------------------------------------------------------
      def update_usa
        # If B button was pressed
        if Input.trigger?(Input::B)
          # Play cancel SE
          $game_system.se_play($data_system.cancel_se)
          # Switch to menu screen
          @command_window.active = true
          @grid.active = false
          @grid.set = - 1
          return
        end
        # If C button was pressed
        if Input.trigger?(Input::C)
          # Get currently selected data on the item window
          @item = @grid.item
          # If not a use item
          unless @item.is_a?(RPG::Item)
            # Play buzzer SE
            $game_system.se_play($data_system.buzzer_se)
            return
          end
          # If it can't be used
          unless $game_party.item_can_use?(@item.id)
            # Play buzzer SE
            $game_system.se_play($data_system.buzzer_se)
            return
          end
          # Play decision SE
          $game_system.se_play($data_system.decision_se)
          # If effect scope is an ally
          if @item.scope >= 3
            # Activate target window
            @grid.active = false
            #@target_window.x = (@item_window.index + 1) % 2 * 304
            @target_window.visible = true
            @target_window.active = true
            # Set cursor position to effect scope (single / all)
            if @item.scope == 4 || @item.scope == 6
              @target_window.index = -1
            else
              @target_window.index = 0
            end
          # If effect scope is other than an ally
          else
            # If command event ID is valid
            if @item.common_event_id > 0
              # Command event call reservation
              $game_temp.common_event_id = @item.common_event_id
              # Play item use SE
              $game_system.se_play(@item.menu_se)
              # If consumable
              if @item.consumable
                # Decrease used items by 1
                $game_party.lose_item(@item.id, 1, false)
                # Draw item window item
                @grid.delete_item
              end
              # Switch to map screen
              $scene = Scene_Map.new
              return
            end
          end
          return
        end
      end
      #--------------------------------------------------------------------------
      # * Frame Update (when target window is active)
      #--------------------------------------------------------------------------
      def update_target
        # If B button was pressed
        if Input.trigger?(Input::B)
          # Play cancel SE
          $game_system.se_play($data_system.cancel_se)
          # If unable to use because items ran out
          unless $game_party.item_can_use?(@item.id)
            # Remake item window contents
            @grid.refresh
          end
          # Erase target window
          @grid.active = true
          @target_window.visible = false
          @target_window.active = false
          return
        end
        # If C button was pressed
        if Input.trigger?(Input::C)
          # If items are used up
          if @grid.item_del?
            # Play buzzer SE
            $game_system.se_play($data_system.buzzer_se)
            return
          end
          # If target is all
          if @target_window.index == -1
            # Apply item effects to entire party
            used = false
            for i in $game_party.actors
              used |= i.item_effect(@item)
            end
          end
          # If single target
          if @target_window.index >= 0
            # Apply item use effects to target actor
            target = $game_party.actors[@target_window.index]
            used = target.item_effect(@item)
          end
          # If an item was used
          if used
            # Play item use SE
            $game_system.se_play(@item.menu_se)
            # If consumable
            if @item.consumable
              # Decrease used items by 1
              $game_party.lose_item(@item.id, 1, false)
              # Redraw item window item
              @grid.delete_item
            end
            # Remake target window contents
            @target_window.refresh
            # If all party members are dead
            if $game_party.all_dead?
              # Switch to game over screen
              $scene = Scene_Gameover.new
              return
            end
            # If common event ID is valid
            if @item.common_event_id > 0
              # Common event call reservation
              $game_temp.common_event_id = @item.common_event_id
              # Switch to map screen
              $scene = Scene_Map.new
              return
            end
          end
          # If item wasn't used
          unless used
            # Play buzzer SE
            $game_system.se_play($data_system.buzzer_se)
          end
          return
        end
      end
   
      def update_muovi
   
        if Input.trigger?(Input::B)
          # Play cancel SE
          $game_system.se_play($data_system.cancel_se)
          # Switch to menu screen
          @command_window.active = true
          @grid.active = false
          @grid.set = - 1
          return
        end
   
        if Input.trigger?(Input::C)
          if @grid.item != nil
          @grid.get_item
          bitmap = Bitmap.new(32,32)
          x = 4 + (@grid.cursor_rect.width == 32 ? 0 : 18)
          y = 4 + (@grid.cursor_rect.height == 32 ? 0 : 32)
          bitmap.blt(0,0,@grid.contents,Rect.new(@grid.cursor_rect.x + x,
          @grid.cursor_rect.y + y,@grid.cursor_rect.width,@grid.cursor_rect.height))

          @cursor_icon.refresh(bitmap, @grid.item_saved[1])
          @grid.cursor_rect.width = @cursor_icon.bitmap.width
          @grid.cursor_rect.height = @cursor_icon.bitmap.height
          @cursor_icon.x = @grid.cursor_rect.x + @grid.x + 16
          @cursor_icon.y = @grid.cursor_rect.y + @grid.y + 16
          @cursor_icon.visible = true
          @grid.delete_item

          @grid.mode = 3
          end
          return
        end
      end
   
      def update_lascia
        if Input.trigger?(Input::B)
          # Play cancel SE
          $game_system.se_play($data_system.cancel_se)
          # Switch to menu screen
          @command_window.active = true
          @grid.active = false
          @grid.set = - 1
          return
        end
        if Input.trigger?(Input::C)
          if @grid.item != nil
            @grid.delete_item
          end
          return
        end
      end
   
      def update_muovi2
        @grid.cursor_rect.width = @cursor_icon.bitmap.width
        @grid.cursor_rect.height = @cursor_icon.bitmap.height
        @cursor_icon.x = @grid.cursor_rect.x + @grid.x + 16
        @cursor_icon.y = @grid.cursor_rect.y + @grid.y + 16
        if @grid.empty?
          @cursor_icon.blink_on
          @cursor_icon.tone.set(0,0,0,0)
        else
          @cursor_icon.blink_off
          @cursor_icon.tone.set(0,0,0,255)
        end
   
        if Input.trigger?(Input::B)
          # Play cancel SE
          $game_system.se_play($data_system.cancel_se)
          # Switch to menu screen
          @grid.redraw_item(false)
          @grid.mode = 1
          return
        end
        if Input.trigger?(Input::C)
          if @grid.empty?
            @grid.redraw_item
            @cursor_icon.visible = false
            @grid.mode = 1
          end
          return
        end
      end
    end


    class Window_Selectable < Window_Base
      alias old_initialize initialize
      def initialize(x, y, width, height)
        old_initialize(x, y, width, height)
        if self.is_a?(Window_Grid)
          @x = 0
          @y = 0
        end
      end
   
      alias old_update update
      def update
        if !self.is_a?(Window_Grid)
          old_update
          return
        end
        super
        item = $game_party.actors[@actor_index].item_grid
        # If cursor is movable
        if self.active and @item_max > 0 and @x >= 0
          # If pressing down on the directional buttons
          if Input.repeat?(Input::DOWN)
            @y = -1 if @y == item.size - (self.cursor_rect.height == 96 ? 3 : 1)
            @y += 2 if item[@y][@x][1] == "w" or item[@y][@x][1] == "a"
            if item[@y + 1][@x][1] == "r" and item[@y + 1][@x - 1][1] == "a"
              @x -= 1
            end
            @y += 1
            $game_system.se_play($data_system.cursor_se)
          end
          # If the up directional button was pressed
          if Input.repeat?(Input::UP)
            @y = item.size if @y - 1 == -1
            @y -= 2 if item[@y - 1][@x][1] == "e" or item[@y - 1][@x][1] == "r"
            @x -= 1 if item[@y - 1][@x - 1][1] == "a"
            @y -= 1
       
            $game_system.se_play($data_system.cursor_se)
          end
          # If the right directional button was pressed
          if Input.repeat?(Input::RIGHT)
            if @x + (self.cursor_rect.width == 64 ? 2 : 1) == item[@y].size
              @x = 0
              @y -= 1 if item[@y - 1][@x][1] == "a"
              @y -= 2 if item[@y - 2][@x][1] == "a"
            else
            @x += 1 if item[@y][@x][1] == "a"
            if item[@y][@x + 1][1] == "r"
              @y -= 1 if item[@y - 1][@x + 1][1] == "a"
              @y -= 2 if item[@y - 2][@x + 1][1] == "a"
            end
            if item[@y][@x + 1][1] == "e"
              @y -= 1
              @y -= 1 if item[@y - 1][@x + 1][1] == "w"
            end
              @x += 1
            end
            $game_system.se_play($data_system.cursor_se)
          end
          # If the left directional button was pressed
          if Input.repeat?(Input::LEFT)
            @x = item[@y].size if @x - 1 == -1
            if item[@y][@x - 1][1] == "r"
              @x -= 1
              @y -= 1 if item[@y - 1][@x - 1][1] == "a"
              @y -= 2 if item[@y - 2][@x - 1][1] == "a"
            end
            if item[@y][@x - 1][1] == "e"
              @y -= 1
              @y -= 1 if item[@y - 1][@x - 1][1] == "w"
            end
            @x -= 1
            $game_system.se_play($data_system.cursor_se)
          end
        end
        # Update help text (update_help is defined by the subclasses)
        if self.active and @help_window != nil
          update_help
        end
        # Update cursor rectangle
        update_cursor_rect
      end
    end

    class Window_Grid < Window_Selectable
   
      attr_accessor :mode
      attr_reader :item_saved
   
      def initialize(actor_index)
        super(192,64,448,416)
        self.contents = Bitmap.new(width - 32, height - 32) #icone oggetti
        self.opacity = 0
        @window = Window_Base.new(x , y , width, height) #griglia bianca
        @window.contents = Bitmap.new(width - 32, height - 32)
        @window.z = self.z - 4
        @grid_color = Sprite.new    #colori oggetti
        @grid_color.bitmap = Bitmap.new(width - 32, height - 32)
        @grid_color.x = self.x + 16
        @grid_color.y = self.y + 16
        @grid_color.z = @window.z + 2
        @actor_index = actor_index
        @mode = 0
        @mini_help = Mini_Help.new
        self.set = -1
        n = self.contents.width / 32
        m = self.contents.height / 32
        @column_max = n
        draw_grid
        refresh
      end
   
      def draw_grid
        @window.contents.fill_rect(0, 0, width - 32, height - 32, Color.new(255,255,255))
        i = 0
        color = Color.new(0,0,0)
        while i < self.contents.height
          draw_line(0, i, self.contents.width, i, color)
          i += 32
        end
        i = 0
        while i < self.contents.width
          draw_line(i, 0, i, self.contents.width, color)
          i += 32
        end
      end
   
      def draw_line(sx, sy, ex, ey, color)
        rad = Math.atan2(ey-sy, ex-sx)
        dx = Math.cos(rad)
        dy = Math.sin(rad)
        while (sx - ex).abs > 1 || (sy - ey).abs > 1
          sx += dx
          sy += dy
          @window.contents.set_pixel(sx, sy, color)
        end
      end
   
      def refresh
        @item_max = 0
        item = $game_party.actors[@actor_index].item_grid
        for i in 0..item.size - 1
          for j in 0..item[i].size - 1
            if item[i][j][0]!= 0 and item[i][j][1] != "r" and item[i][j][1] != "e"
              @item_max += 1
            end
          end
        end
   
        for i in 0..item.size - 1
          for j in 0..item[i].size - 1
            draw_item(item[i][j][0], item[i][j][1], i , j)
          end
        end
      end
   
      def update_cursor_rect
        # If cursor position is less than 0
        if @x < 0
          self.cursor_rect.empty
          return
        end
        # Calculate cursor width
        case $game_party.actors[@actor_index].item_grid[@y][@x][1]
        when "i"
          cursor_width = 32
          cursor_height = 32
        when "w"
          cursor_width = 32
          cursor_height = 96
        when "a"
          cursor_width = 64
          cursor_height = 96
        else
          cursor_width = 32
          cursor_height = 32
        end
        # Calculate cursor coordinates
        x = @x * 32
        y = @y * 32
        # Update cursor rectangle
        self.cursor_rect.set(x, y, cursor_width, cursor_height)
      end
   
      def delete_item
        case $game_party.actors[@actor_index].item_grid[@y][@x][1]
        when "i"
          @grid_color.bitmap.fill_rect(@x*32+1, @y*32+1, 31, 31, Color.new(0,0,0,0))
          self.contents.fill_rect(@x*32, @y*32, 32, 32, Color.new(0,0,0,0))
          $game_party.actors[@actor_index].item_grid[@y][@x][0] = 0
          $game_party.actors[@actor_index].item_grid[@y][@x][1] = ""
        when "w"
          @grid_color.bitmap.fill_rect(@x*32+1, @y*32+1, 31, 95, Color.new(0,0,0,0))
          self.contents.fill_rect(@x*32, @y*32 + 4 + 32, 32, 32, Color.new(0,0,0,0))
          $game_party.actors[@actor_index].item_grid[@y][@x][0] = 0
          $game_party.actors[@actor_index].item_grid[@y][@x][1] = ""
          $game_party.actors[@actor_index].item_grid[@y + 1][@x][0] = 0
          $game_party.actors[@actor_index].item_grid[@y + 1][@x][1] = ""
          $game_party.actors[@actor_index].item_grid[@y + 2][@x][0] = 0
          $game_party.actors[@actor_index].item_grid[@y + 2][@x][1] = ""
        when "a"
          @grid_color.bitmap.fill_rect(@x*32+1, @y*32+1, 63, 95, Color.new(0,0,0,0))
          self.contents.fill_rect(@x*32 + 18, @y*32 + 4 + 32, 32, 32, Color.new(0,0,0,0))
          $game_party.actors[@actor_index].item_grid[@y][@x][0] = 0
          $game_party.actors[@actor_index].item_grid[@y][@x][1] = ""
          $game_party.actors[@actor_index].item_grid[@y + 1][@x][0] = 0
          $game_party.actors[@actor_index].item_grid[@y + 1][@x][1] = ""
          $game_party.actors[@actor_index].item_grid[@y + 2][@x][0] = 0
          $game_party.actors[@actor_index].item_grid[@y + 2][@x][1] = ""
          $game_party.actors[@actor_index].item_grid[@y][@x + 1][0] = 0
          $game_party.actors[@actor_index].item_grid[@y][@x + 1][1] = ""
          $game_party.actors[@actor_index].item_grid[@y + 1][@x + 1][0] = 0
          $game_party.actors[@actor_index].item_grid[@y + 1][@x + 1][1] = ""
          $game_party.actors[@actor_index].item_grid[@y + 2][@x + 1][0] = 0
          $game_party.actors[@actor_index].item_grid[@y + 2][@x + 1][1] = ""
        end
      end
   
      def item
        i = $game_party.actors[@actor_index].item_grid[@y][@x][0]
        case $game_party.actors[@actor_index].item_grid[@y][@x][1]
        when "i"
          return $data_items[i]
        when "w"
          return $data_weapons[i]
        when "a"
          return $data_armors[i]
        else return nil
        end
      end
   
      def item_del?
        if $game_party.actors[@actor_index].item_grid[@y][@x][0] == 0
          # Unusable
          return true
        else
          return false
        end
      end
   
      def dispose
        super
        @window.dispose
        @grid_color.dispose
        @mini_help.dispose
      end
   
      def update_help
        @mini_help.contents.font.color = (($game_party.item_can_use?(item.id) and item.is_a?(RPG::Item))? normal_color : disabled_color)
        @help_window.set_text(item == nil ? "" : item.description)
        @mini_help.set_text(item == nil ? "" : item.name)
        @mini_help.visible = false if item == nil
        @mini_help.x = self.cursor_rect.x +  self.cursor_rect.width + 192 +
        (self.contents.width - self.cursor_rect.x - self.cursor_rect.width < @mini_help.width ? -@mini_help.width : 18)
        @mini_help.y = self.cursor_rect.y + self.cursor_rect.height + 64 +
        (self.contents.height - self.cursor_rect.y - self.cursor_rect.height < @mini_help.height ? -@mini_help.height : 18)
      end
   
      def get_item
        @item_saved = [$game_party.actors[@actor_index].item_grid[@y][@x][0],
        $game_party.actors[@actor_index].item_grid[@y][@x][1], @x, @y]
      end
   
      def redraw_item(f = true)
        if f
          x = 4 + (@x * 32)
          y = @y * 32
        else
          x = 4 + (@item_saved[2] * 32)
          y = @item_saved[3] * 32
          tx = @x
          ty = @y
          @x = @item_saved[2]
          @y = @item_saved[3]
        end
        draw_item(@item_saved[0], @item_saved[1], @y , @x)
        case @item_saved[1]
        when "i"
          $game_party.actors[@actor_index].item_grid[@y][@x][0] = @item_saved[0]
          $game_party.actors[@actor_index].item_grid[@y][@x][1] = @item_saved[1]
        when "w"
          $game_party.actors[@actor_index].item_grid[@y][@x][0] = @item_saved[0]
          $game_party.actors[@actor_index].item_grid[@y][@x][1] = @item_saved[1]
          $game_party.actors[@actor_index].item_grid[@y + 1][@x][0] = @item_saved[0]
          $game_party.actors[@actor_index].item_grid[@y + 1][@x][1] = "e"
          $game_party.actors[@actor_index].item_grid[@y + 2][@x][0] = @item_saved[0]
          $game_party.actors[@actor_index].item_grid[@y + 2][@x][1] = "e"
        when "a"
          $game_party.actors[@actor_index].item_grid[@y][@x][0] = @item_saved[0]
          $game_party.actors[@actor_index].item_grid[@y][@x][1] = @item_saved[1]
          $game_party.actors[@actor_index].item_grid[@y + 1][@x][0] = @item_saved[0]
          $game_party.actors[@actor_index].item_grid[@y + 1][@x][1] = "r"
          $game_party.actors[@actor_index].item_grid[@y + 2][@x][0] = @item_saved[0]
          $game_party.actors[@actor_index].item_grid[@y + 2][@x][1] = "r"
          $game_party.actors[@actor_index].item_grid[@y][@x + 1][0] = @item_saved[0]
          $game_party.actors[@actor_index].item_grid[@y][@x + 1][1] = "r"
          $game_party.actors[@actor_index].item_grid[@y + 1][@x + 1][0] = @item_saved[0]
          $game_party.actors[@actor_index].item_grid[@y + 1][@x + 1][1] = "r"
          $game_party.actors[@actor_index].item_grid[@y + 2][@x + 1][0] = @item_saved[0]
          $game_party.actors[@actor_index].item_grid[@y + 2][@x + 1][1] = "r"
        end
        @x = tx if @x != tx and tx != nil
        @y = ty if @y != ty and ty != nil
      end
   
      def empty?
        case @item_saved[1]
        when "i"
          return true if $game_party.actors[@actor_index].item_grid[@y][@x][1] == ""
        when "w"
          if $game_party.actors[@actor_index].item_grid[@y][@x][1] == "" and
            $game_party.actors[@actor_index].item_grid[@y + 1][@x][1] == "" and
            $game_party.actors[@actor_index].item_grid[@y + 2][@x][1] == ""
     
          return true
        end
        when "a"
          if $game_party.actors[@actor_index].item_grid[@y][@x][1] == "" and
            $game_party.actors[@actor_index].item_grid[@y + 1][@x][1] == "" and
            $game_party.actors[@actor_index].item_grid[@y + 2][@x][1] == "" and
            $game_party.actors[@actor_index].item_grid[@y][@x + 1][1] == "" and
            $game_party.actors[@actor_index].item_grid[@y + 1][@x + 1][1] == "" and
            $game_party.actors[@actor_index].item_grid[@y + 2][@x + 1][1] == ""
     
            return true
          end
        end
        return false
      end
   
      def set=(set)
        @x = set
        @y = set
        @mini_help.visible = (set == 0 ? true : false)
      end

   
      def draw_item(item_id, type, i , j)
        if type == "i" and
          $game_party.item_can_use?($data_items[item_id].id)
          opacity = 255
        else
          opacity = 128
        end
       
        if item_id != 0
          case type
          when "i"
            x = 4 + (j * 32)
            y = i * 32
            bitmap = RPG::Cache.icon($data_items[item_id].icon_name)
            @grid_color.bitmap.fill_rect(j*32+1, i*32+1, 31, 31, Color.new(0,0,200))
            self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
          when "w"
            x = 4 + (j * 32)
            y = i * 32
            bitmap = RPG::Cache.icon($data_weapons[item_id].icon_name)
            @grid_color.bitmap.fill_rect(j*32+1, i*32+1, 31, 95, Color.new(200,0,0))
            self.contents.blt(x, y + 4 + 32, bitmap, Rect.new(0, 0, 24, 24), opacity)
          when "a"
            x = 4 + (j * 32)
            y = i * 32
            bitmap = RPG::Cache.icon($data_armors[item_id].icon_name)
            @grid_color.bitmap.fill_rect(j*32+1, i*32+1, 63, 95, Color.new(0,200,0))
            self.contents.blt(x + 18, y + 4 + 32, bitmap, Rect.new(0, 0, 24, 24), opacity)
          end
        end
      end
    end

    class Mini_Help < Window_Base
      alias old_initialize initialize
      def initialize
        super(0, 0, 180, 40)
        self.contents = Bitmap.new(width - 32, height - 32)
        self.contents.font.size = 14
        self.back_opacity = 170
        self.z = 102
        self.visible = false
      end
   
      def set_text(text, align = 1)
        # If at least one part of text and alignment differ from last time
        if text != @text or align != @align
          # Redraw text
          self.contents.clear
          #self.contents.font.color = normal_color
          self.contents.draw_text(4, -12, self.width - 40, 32, text, align)
          #self.width = self.contents.text_size(text).width
          @text = text
          @align = align
          @actor = nil
        end
        self.visible = true
      end
    end

    class Game_Actor < Game_Battler
      attr_accessor :item_grid
      alias old_initialize initialize
      def initialize(actor_id)
        old_initialize(actor_id)
        @item_grid = Array.new(12)
        for i in 0..@item_grid.size - 1
          @item_grid[i] = Array.new(13)
          for k in 0..@item_grid[i].size - 1
            @item_grid[i][k] = Array.new(2)
            @item_grid[i][k][0] = 0
            @item_grid[i][k][1] = ""
          end
        end
      end

    end

    class Game_Party
   
      def gain_item(item_id, n)
        if item_id > 0
          for k in 1..n
            for i in 0..self.actors.size - 1
            break if set_item(item_id, "i", i) == nil
            end
          end
        end
      end
   
      def gain_weapon(weapon_id, n)
        if weapon_id > 0
          for k in 1..n
            for i in 0..self.actors.size - 1
              break if set_item(weapon_id, "w", i) == nil
            end
          end
        end
      end
   
      def gain_armor(armor_id, n)
        if armor_id > 0
          for k in 1..n
            for i in 0..self.actors.size - 1
              break if set_item(armor_id, "a", i) == nil
            end
          end
        end
      end
   
      def lose_item(item_id, n, random = true)
        if random == true
          if item_id > 0
            for k in 1..n
              del_item(item_id, "i")
            end
          end
        end
        @items[item_id] = [[item_number(item_id) + -n, 0].max, 99].min
      end
   
      def lose_weapon(weapon_id, n, random = true)
        if random == true
          if weapon_id > 0
            for k in 1..n
              del_item(weapon_id, "w")
            end
          end
        end
        @weapons[weapon_id] = [[weapon_number(weapon_id) + -n, 0].max, 99].min
      end

      def lose_armor(armor_id, n, random = true)
        if random == true
          if armor_id > 0
            for k in 1..n
              del_item(armor_id, "a")
            end
          end
        end
        @armors[armor_id] = [[armor_number(armor_id) + -n, 0].max, 99].min
      end
   
      def set_item(item_id, type, i)
          for a in 0..self.actors[i].item_grid.size - 1
            for b in 0..self.actors[i].item_grid[a].size - 1
              if self.actors[i].item_grid[a][b][0] == 0
                case type
                when "i"
                  self.actors[i].item_grid[a][b][0] = item_id
                  self.actors[i].item_grid[a][b][1] = type
                  @items[item_id] = [[item_number(item_id) + 1, 0].max, 99].min
                  return
                when "w"
                  if a < self.actors[i].item_grid.size - 2
                  if self.actors[i].item_grid[a + 1][b][0] == 0 and
                    self.actors[i].item_grid[a + 2][b][0] == 0

                    self.actors[i].item_grid[a][b][0] = item_id
                    self.actors[i].item_grid[a][b][1] = type
                    self.actors[i].item_grid[a + 1][b][0] = item_id
                    self.actors[i].item_grid[a + 1][b][1] = "e"
                    self.actors[i].item_grid[a + 2][b][0] = item_id
                    self.actors[i].item_grid[a + 2][b][1] = "e"
                    @weapons[item_id] = [[weapon_number(item_id) + 1, 0].max, 99].min
                    return
                  end
                  end
                when "a"
                  if b < self.actors[i].item_grid[a].size - 1 and a < self.actors[i].item_grid.size - 2
                  if self.actors[i].item_grid[a + 1][b][0] == 0 and self.actors[i].item_grid[a + 2][b][0] == 0 and
                    self.actors[i].item_grid[a][b + 1][0] == 0 and
                    self.actors[i].item_grid[a + 1][b + 1][0] == 0 and self.actors[i].item_grid[a + 2][b + 1][0] == 0
               
                    self.actors[i].item_grid[a][b][0] = item_id
                    self.actors[i].item_grid[a][b][1] = type
                    self.actors[i].item_grid[a + 1][b][0] = item_id
                    self.actors[i].item_grid[a + 1][b][1] = "r"
                    self.actors[i].item_grid[a + 2][b][0] = item_id
                    self.actors[i].item_grid[a + 2][b][1] = "r"
                    self.actors[i].item_grid[a][b + 1][0] = item_id
                    self.actors[i].item_grid[a][b + 1][1] = "r"
                    self.actors[i].item_grid[a + 1][b + 1][0] = item_id
                    self.actors[i].item_grid[a + 1][b + 1][1] = "r"
                    self.actors[i].item_grid[a + 2][b + 1][0] = item_id
                    self.actors[i].item_grid[a + 2][b + 1][1] = "r"
                    @armors[item_id] = [[armor_number(item_id) + 1, 0].max, 99].min
                    return
                  end
                  end
                end
              end
            end
          end
      end
   
      def del_item(item_id, type)
        for i in 0..self.actors.size - 1
          for a in 0..self.actors[i].item_grid.size - 1
            for b in 0..self.actors[i].item_grid[a].size - 1
              if self.actors[i].item_grid[a][b][0] == item_id and
                self.actors[i].item_grid[a][b][1] == type
           
                case type
                when "i"
                  self.actors[i].item_grid[a][b][0] = 0
                  self.actors[i].item_grid[a][b][1] = ""
                  return
                when "w"
                    self.actors[i].item_grid[a][b][0] = 0
                    self.actors[i].item_grid[a][b][1] = ""
                    self.actors[i].item_grid[a + 1][b][0] = 0
                    self.actors[i].item_grid[a + 1][b][1] = ""
                    self.actors[i].item_grid[a + 2][b][0] = 0
                    self.actors[i].item_grid[a + 2][b][1] = ""
                    return
                when "a"
                    self.actors[i].item_grid[a][b][0] = 0
                    self.actors[i].item_grid[a][b][1] = ""
                    self.actors[i].item_grid[a + 1][b][0] = 0
                    self.actors[i].item_grid[a + 1][b][1] = ""
                    self.actors[i].item_grid[a + 2][b][0] = 0
                    self.actors[i].item_grid[a + 2][b][1] = ""
                    self.actors[i].item_grid[a][b + 1][0] = 0
                    self.actors[i].item_grid[a][b + 1][1] = ""
                    self.actors[i].item_grid[a + 1][b + 1][0] = 0
                    self.actors[i].item_grid[a + 1][b + 1][1] = ""
                    self.actors[i].item_grid[a + 2][b + 1][0] = 0
                    self.actors[i].item_grid[a + 2][b + 1][1] = ""
                    return
                end
              end
            end
          end
        end
      end
    end


    class Cursor_Icon < RPG::Sprite
      def initialize
        super
        @color = Color.new(255,255,0,150)
        @rect = Rect.new(0, 0, 24, 24)
      end
   
      def refresh(bitmap, item)
        case item
        when "i"
          x = 4
          y = 4
          width = 32
          height = 32
        when "w"
          x = 4
          y = 36
          width = 32
          height = 96
        when "a"
          x = 22
          y = 36
          width = 64
          height = 96
        end
        if self.bitmap == nil or (self.bitmap.width != width or self.bitmap.height != height)
          self.bitmap = Bitmap.new(width, height)
        else
          self.bitmap.clear
        end
        self.bitmap.fill_rect(0,0,width,height, @color)
        self.bitmap.blt(x, y , bitmap, @rect)
        self.z = 9999
      end
    end

    class Window_Base
      def draw_actor_picture(actor, x, y)
        bitmap = RPG::Cache.battler(actor.character_name, actor.character_hue)
        cw = bitmap.width
        ch = bitmap.height
        src_rect = Rect.new(0, 0, cw, ch)
        self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect)
      end
    end

    class Scene_Menu
        def update_command
        # If B button was pressed
        if Input.trigger?(Input::B)
          # Play cancel SE
          $game_system.se_play($data_system.cancel_se)
          # Switch to map screen
          $scene = Scene_Map.new
          return
        end
        # If C button was pressed
        if Input.trigger?(Input::C)
          # If command other than save or end game, and party members = 0
          if $game_party.actors.size == 0 and @command_window.index < 4
            # Play buzzer SE
            $game_system.se_play($data_system.buzzer_se)
            return
          end
          # Branch by command window cursor position
          case @command_window.index
          when 0  # item
            # Play decision SE
            $game_system.se_play($data_system.decision_se)
            # Switch to item screen
            @command_window.active = false
            @status_window.active = true
            @status_window.index = 0
          when 1  # skill
            # Play decision SE
            $game_system.se_play($data_system.decision_se)
            # Make status window active
            @command_window.active = false
            @status_window.active = true
            @status_window.index = 0
          when 2  # equipment
            # Play decision SE
            $game_system.se_play($data_system.decision_se)
            # Make status window active
            @command_window.active = false
            @status_window.active = true
            @status_window.index = 0
          when 3  # status
            # Play decision SE
            $game_system.se_play($data_system.decision_se)
            # Make status window active
            @command_window.active = false
            @status_window.active = true
            @status_window.index = 0
          when 4  # save
            # If saving is forbidden
            if $game_system.save_disabled
              # Play buzzer SE
              $game_system.se_play($data_system.buzzer_se)
              return
            end
            # Play decision SE
            $game_system.se_play($data_system.decision_se)
            # Switch to save screen
            $scene = Scene_Save.new
          when 5  # end game
            # Play decision SE
            $game_system.se_play($data_system.decision_se)
            # Switch to end game screen
            $scene = Scene_End.new
          end
          return
        end
      end
      #--------------------------------------------------------------------------
      # * Frame Update (when status window is active)
      #--------------------------------------------------------------------------
      def update_status
        # If B button was pressed
        if Input.trigger?(Input::B)
          # Play cancel SE
          $game_system.se_play($data_system.cancel_se)
          # Make command window active
          @command_window.active = true
          @status_window.active = false
          @status_window.index = -1
          return
        end
        # If C button was pressed
        if Input.trigger?(Input::C)
          # Branch by command window cursor position
          case @command_window.index
          when 0
            $game_system.se_play($data_system.decision_se)
            $scene = Scene_Item.new(@status_window.index)
          when 1  # skill
            # If this actor's action limit is 2 or more
            if $game_party.actors[@status_window.index].restriction >= 2
              # Play buzzer SE
              $game_system.se_play($data_system.buzzer_se)
              return
            end
            # Play decision SE
            $game_system.se_play($data_system.decision_se)
            # Switch to skill screen
            $scene = Scene_Skill.new(@status_window.index)
          when 2  # equipment
            # Play decision SE
            $game_system.se_play($data_system.decision_se)
            # Switch to equipment screen
            $scene = Scene_Equip.new(@status_window.index)
          when 3  # status
            # Play decision SE
            $game_system.se_play($data_system.decision_se)
            # Switch to status screen
            $scene = Scene_Status.new(@status_window.index)
          end
          return
        end
      end
    end



Pancho Sanchez
Soñador
Soñador

0/3

Créditos 126

Gracias : 6

Volver arriba Ir abajo

Re: [RPGXP] Diablo Starter kit v.1.0

Mensaje por Contenido patrocinado Hoy a las 16:50


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


 :: RPG Maker :: Scripts

Permisos de este foro:
No puedes responder a temas en este foro.