Maker Palace

¡El Reino del RpgMaker y del Ocio!
 
ÍndiceBuscarGrupos de UsuariosScriptsRecursosTutorialesPalaceJuegosPalaceWikiFAQRegistrarseConectarse
Conectarse
Nombre de Usuario:
Contraseña:
Entrar automáticamente en cada visita: 
:: Recuperar mi contraseña
Buscar
 
 

Resultados por:
 
Rechercher Búsqueda avanzada
Últimos temas
» Dando una vuelta por acá
por LinkLuis55 Dom Ago 20, 2017 2:56 pm

» Heroes del Crimen 2 DEMO
por jasuso Mar Ago 01, 2017 12:04 am

» The Legend of Celestia II: A World of Twilight Shadows Demo
por Jlopez_96 Vie Jul 28, 2017 6:20 pm

» Screenshot del nuevo KUnits XP oon menú
por kyonides-arkanthos Sáb Jul 15, 2017 1:14 am

» The Legend of Celestia: Four Cristals
por Jlopez_96 Mar Abr 25, 2017 4:59 pm

» [VXAce] Burando Doragon
por gantzer49 Dom Abr 23, 2017 7:43 pm

» Que se cuece por estos lares?
por Frikilangelo Jue Mar 23, 2017 8:10 am

Recomendados
RPG en RPG Maker
La importancia de un Backup
Que requiere un sistema de Batalla para ser exitoso
9 Minutos de Juegos por fans
Guía de Subforos para Tontos de Maker Palace
Indice de Scripts Locales XP
Falcao Pearl ABS Liquid
¿Quién está en línea?
En total hay 10 usuarios en línea: 0 Registrados, 0 Ocultos y 10 Invitados :: 1 Motor de búsqueda

Ninguno

La mayor cantidad de usuarios en línea fue 179 el Mar Ago 30, 2011 10:06 pm.
MiniChat
Mejores posteadores
Raiden (3346)
 
DaviX (2740)
 
Frikilangelo (2461)
 
SagahonArturo (1806)
 
Falcao (1775)
 
kyonides-arkanthos (1766)
 
Mur-mai-der (1755)
 
Ares (1613)
 
LinkLuis55 (1556)
 
Webmaster24 (1354)
 
Afiliados
Crear foro Mundo Maker Foro de anime y RM2k3/XP/VX Computer mix
Flag Counter
free counters
Visitas


Comparte | 
 

 KyoPrizePacks XP

Ver el tema anterior Ver el tema siguiente Ir abajo 
AutorMensaje
kyonides-arkanthos
Lord Guru Maker
Lord Guru Maker
avatar

Cantidad de envíos : 1766
Miembro desde : 03/02/2010
Sexo : Masculino

Maker : RMXP


MensajeTema: KyoPrizePacks XP   Miér Jul 08, 2015 8:15 pm

KyoPrizePacks XP
v 1.0.2


por Kyonides-Arkanthos


Este script nace debido a la necedad de un usuario llamado Nyakuya. No bromeo, realmente así fue como surgió la idea de desarrollar este peculiar y no si innecesario script. Lo que tiene de bueno es que no hay que matarse configurando muchos eventos comunes complicados. Cada evento común solo lleva un comando, el llamado a script.

La razón de ser de este script es que Nyakuya deseaba que un objeto equis pudiera ser abierto y en su lugar apareciera inmediatamente otro objeto que haría las de premio para el jugador. El premio sería solo uno de varias posibilidades.

Si tienen más preguntas sobre por qué deberían utilizar este script, pregúntenle a Nyakuya en persona.

Código:
# * KyoPrizePacks XP
#  Scripter : Kyonides-Arkanthos
#  v 1.0.2 - 2015-07-09

#  Este Script les permite crear objetos que funcionen como Paquetes Sorpresa.
#  En vez de obtener algo simple como 1 Poción, reciben un Paquete o Regalo o
#  Cofre Especial. Al abrirlo en el Menú de Objetos o Bolsa, el Paquete por
#  fin revela su contenido, el cual es aleatorio.

#  Llamado a Script para ser utilizado desde un evento común

#    RandomPrize.set_prize(Número)

#    Con este llamado pueden elegir el Paquete de Premios del cual saldrá el
#    Premio definitivo que recibirá el jugador.

#  Como desarrolladores Uds. pueden definir qué premios otorgarán por cada
#  Paquete que el jugador reciba, pero solo obtendrá una de todas aquellas
#  posibilidades que Uds. hubieran configurado en el archivo de TXT. Revisen
#  la Constante PRIZE_FILENAME para saber cuál es el nombre del archivo.

#  Cada renglón en el TXT es un paquete de premios.

#  Obj indica que el premio es un Objeto de la Base de Datos.
#  Arm indica que el premio es una Arma de la Base de Datos.
#  Ard indica que el premio es una Armadura de la Base de Datos.
#  Hab indica que el premio es una Habilidad de la Base de Datos.

#  El Objeto que otorga estos premios no lo obligará salir del menú como es
#  usual en el RPG Maker.

#  Cada indicador irá seguido de 2 números, ID y Cantidad.

module RandomPrize
  # Archivo con la Configuración de los Premios
  PRIZE_FILENAME = 'regalos.txt'
  # Etiqueta de Objeto como Premio en el Archivo
  ITEM_PRIZE  = 'Obj'
  # Etiqueta de Arma como Premio en el Archivo
  WEAPON_PRIZE = 'Arm'
  # Etiqueta de Armadura como Premio en el Archivo
  ARMOR_PRIZE  = 'Ard'
  # Etiqueta de Habilidad o Skill como Premio en el Archivo
  SKILL_PRIZE  = 'Hab'
  # NO EDITAR LO SIGUIENTE
  # Array que guardará los valores del archivo de Configuración
  @prizes = []
  @skip_map = nil
  PRIZE_RXDATA = 'Data/ChestPrizes.rxdata'
  def self.skip_map=(bool) @skip_map = bool end
  def self.skip_map() @skip_map end
  def self.get_prize_data
    if $DEBUG and File.exist?(PRIZE_FILENAME)
      regex = /[a-zA-Z]+/
      lines = File.readlines(PRIZE_FILENAME)
      lines.size.times {|n| @prizes[n] = []
        packs = lines[n].scan(/#{regex}|\d+/)
        packs = packs.map {|ln| self.prize_kind(ln) }.compact
        (packs.size / 3).times {|m| @prizes[n] << packs[m*3,3]}  }
      save_data(@prizes, PRIZE_RXDATA)
      return
    end
    @prizes = load_data(PRIZE_RXDATA)
  end

  def self.prize_kind(kind)
    regexp = /\d+/
    prize = case kind
    when ITEM_PRIZE : :item
    when WEAPON_PRIZE : :weapon
    when ARMOR_PRIZE : :armor
    when SKILL_PRIZE : :skill
    when regexp : kind.to_i
    end
    return prize
  end

  def self.set_prize(index)
    @skip_map = true
    size = @prizes[index].size
    prize = @prizes[index][rand(size)]
    case prize[0]
    when :item : $game_party.gain_item(prize[1], prize[2])
    when :weapon : $game_party.gain_weapon(prize[1], prize[2])
    when :armor : $game_party.gain_armor(prize[1], prize[2])
    when :skill : $game_party.gain_skill(prize[1], prize[2])
    end
  end
  self.get_prize_data
end

class Scene_Item
  def update_item
    if Input.trigger?(Input::B)
      $game_system.se_play($data_system.cancel_se)
      $scene = Scene_Menu.new(0)
      return
    elsif Input.trigger?(Input::C)
      @item = @item_window.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)
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      $game_system.se_play($data_system.decision_se)
      # If effect scope is an ally
      if @item.scope >= 3
        # Activate target window
        @item_window.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
          $game_system.se_play(@item.menu_se)
          # If consumable
          if @item.consumable
            # Decrease used items by 1
            $game_party.lose_item(@item.id, 1)
            $game_system.map_interpreter.update
            @item_window.draw_item(@item_window.index)
          end
          # Do not switch to map screen if Skip Map flag is set to true
          if RandomPrize.skip_map
            @item_window.refresh
            $game_temp.common_event_id = 0
            RandomPrize.skip_map = nil
            return
          end
          $scene = Scene_Map.new
        end
      end
      return
    end
  end

  def update_target
    # If B button was pressed
    if Input.trigger?(Input::B)
      $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
        @item_window.refresh
      end
      # Erase target window
      @item_window.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 $game_party.item_number(@item.id) == 0
        $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
        $game_system.se_play(@item.menu_se)
        # If consumable
        if @item.consumable
          # Decrease used items by 1
          $game_party.lose_item(@item.id, 1)
          # Redraw item window item
          @item_window.draw_item(@item_window.index)
        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
          # Do not switch to map screen if Skip Map flag is set to true
          $game_system.map_interpreter.update
          if RandomPrize.skip_map
            $game_temp.common_event_id = 0
            @item_window.refresh
            RandomPrize.skip_map = nil
            return
          end
          $scene = Scene_Map.new
          return
        end
      end
      # If item wasn't used
      $game_system.se_play($data_system.buzzer_se) unless used
      return
    end
  end
end

Ejemplo de Archivo TXT de Configuración

Código:
Arm 1 2u, Obj 1 5u, Ard 1 3u, Hab 1 2u
Arm 2 2u, Obj 2 4u, Hab 2 2u
Arm 5 1u, Obj 3 2u, Ard 4 2u, Hab 3 1u

Descarga de TXT con Script KyoPrizePacks XP
no hay demo


Espero que este script les sea de utilidad. Yo la verdad prefiero mi otro script, Gem Roulette XP y VX y VX ACE.


Última edición por kyonides-arkanthos el Jue Jul 09, 2015 5:40 pm, editado 2 veces
Volver arriba Ir abajo
Ver perfil de usuario http://deloquesea.mforos.com/forums/
Nyakuya
Caballero Experimentado
Caballero Experimentado
avatar

Cantidad de envíos : 225
Miembro desde : 09/10/2014
Edad : 21
Localización : Tandil
Sexo : Masculino

Maker : RMXP


MensajeTema: Re: KyoPrizePacks XP   Jue Jul 09, 2015 3:26 pm

Cuando lo ejecuto desde el maker anda perfecto. Pero cuando lo ejecuto desde Game.exe da este error.




Ejecuta el juego desde el Game.exe sin abrir el maker, y debería darte el mismo error que me está dando a mi.
Volver arriba Ir abajo
Ver perfil de usuario
kyonides-arkanthos
Lord Guru Maker
Lord Guru Maker
avatar

Cantidad de envíos : 1766
Miembro desde : 03/02/2010
Sexo : Masculino

Maker : RMXP


MensajeTema: Re: KyoPrizePacks XP   Jue Jul 09, 2015 3:56 pm

Eso lo que implica, maracuyá, es que no recrea el archivo desde el TXT de configuración sino que trata de leerlo del archivo rxdata, pero se me olvidó que cambié su contenido de un Hash a un Array y en ese caso el asunto es distinto. Ya casi me encargaré de eso y otro detalle que no ha descubierto aún.
Volver arriba Ir abajo
Ver perfil de usuario http://deloquesea.mforos.com/forums/
kyonides-arkanthos
Lord Guru Maker
Lord Guru Maker
avatar

Cantidad de envíos : 1766
Miembro desde : 03/02/2010
Sexo : Masculino

Maker : RMXP


MensajeTema: Re: KyoPrizePacks XP   Jue Jul 09, 2015 4:11 pm

ACTUALIZACIÓN

Ya reemplacé la versión 1.0.0 por la versión de mantenimiento, la 1.0.1, para corregir lo del merge que pertenecía a una versión beta por un += más adecuado para un Array. También quise agregar una opción para que otros objetos que necesitaran salir del menú para ir al mapa así lo puedan hacer sin afectar a los pocos que sí necesitan quedarse en el menú y refrescar su contenido.

Recomiendo que actualicen sus versiones en cuanto les sea posible.
Volver arriba Ir abajo
Ver perfil de usuario http://deloquesea.mforos.com/forums/
Mur-mai-der
Admin.
Admin.
avatar

Cantidad de envíos : 1755
Miembro desde : 25/11/2010
Edad : 20
Localización : En Nicunihué
Sexo : Masculino

Maker : RMVX

Logros MP :


MensajeTema: Re: KyoPrizePacks XP   Jue Jul 09, 2015 4:56 pm

Excelente script, sirve especialmente en el caso de esos juegos de RPG Maker que se quieren llevar a un servidor Net de MMO, o bien que quieren emular ese estilo de juegos Free-To-Play

_________________
"I´m an alligator... I´m a mama papa coming for you... I´m a Space Invader... I´ll be a Rock and Roll Bitch for you..."
Volver arriba Ir abajo
Ver perfil de usuario http://www.youtube.com/user/orichalchimichangas
kyonides-arkanthos
Lord Guru Maker
Lord Guru Maker
avatar

Cantidad de envíos : 1766
Miembro desde : 03/02/2010
Sexo : Masculino

Maker : RMXP


MensajeTema: Re: KyoPrizePacks XP   Jue Jul 09, 2015 5:42 pm

Me alegra que le encuentre utilidad.

Les aviso que ya está disponible otra versión de mantenimiento, la 1.0.2. Recomiendo que los interesados la descarguen cuanto antes.
Volver arriba Ir abajo
Ver perfil de usuario http://deloquesea.mforos.com/forums/
Contenido patrocinado




MensajeTema: Re: KyoPrizePacks XP   

Volver arriba Ir abajo
 
KyoPrizePacks XP
Ver el tema anterior Ver el tema siguiente Volver arriba 
Página 1 de 1.

Permisos de este foro:No puedes responder a temas en este foro.
Maker Palace :: RGSS Scripts :: Scripts Maker XP-
Cambiar a: