Mundo Maker
¡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 4133 miembros registrados.
El último usuario registrado es Neysersitoh.

Nuestros miembros han publicado un total de 84769 mensajes en 12064 argumentos.

[Colectivo][XP] DLCs

Ver el tema anterior Ver el tema siguiente Ir abajo

RPG Maker XP [Colectivo][XP] DLCs

Mensaje por xXIsrael0499Xx el 2017-04-26, 14:27

Con autorización de Wecoc que ya no quiere saber nada de esto XDDD, Abro este Tema & Colectivo para juntar ideas y ver si todos juntos podemos lograr hacer esto, por lo menos para XP  nose si alguien lo quiere para otros Maker pero por lo menos yo abriré esto para XP, primero por es el que uso y segundo por que es el que mejor manejo.

Pensando un poco y tomando en cuenta ideas del Topic de aportación de ideas pensé una  forma de hacer DLCs, pero que en teoría no ningún DLC os explico la forma como lo hice:

Spoiler:
Primero modifique Scene_Title, y le añadí la Opción de DLCs, luego hice la Scene_DLC, bueno lo que hace esto es lo siguiente entras a la escena y elijes el DLC (Solo uno por que me dio flojera) y cuando le das te manda al 3 mapa creado... que seria el DLC. lo único que faltaría seria que al completar el juego se desbloquee la  opción del DlC lo que no hice, porque se me olvido como es que se hacia XD. Quizás no me entiendas así que subí una Demo para que veas que fue lo que hice...

Bueno esto que hice genera un problema, bueno 2.. uno que no es un DLC como tal ya que un DLC es sinónimo de contenido descargable, se trata de contenido extra para un juego. Puede incluir misiones adicionales, mapas, armas y pieles, de los cuales todos son ampliaciones a un juego. Y esto no es descargable si no que ya esta añadido en el juego y lo segundo es el problema de las ID de mapa, la forma que lo hice es que se telestrasporte al mapa De ID "X" lo que genera que si se hace esto como descargable se lié todo y genere bugs raros que no explicare pero ya me los imagino, va fastidiar un poco a las personas que usen este sistema porque lo de las ID de mapa hay que tener Extremo cuidado ya que cualquier error  puede hacer que no funcione.

Aquí les Dejo los 2 Scripts:

Scene_Title
Código:
# ** Scene_Title
#------------------------------------------------------------------------------
#  This class performs title screen processing.
#==============================================================================

class Scene_Title
  #--------------------------------------------------------------------------
  # * Main Processing
  #--------------------------------------------------------------------------
  def main
    # If battle test
    if $BTEST
      battle_test
      return
    end
    # Load database
    $data_actors        = load_data("Data/Actors.rxdata")
    $data_classes       = load_data("Data/Classes.rxdata")
    $data_skills        = load_data("Data/Skills.rxdata")
    $data_items         = load_data("Data/Items.rxdata")
    $data_weapons       = load_data("Data/Weapons.rxdata")
    $data_armors        = load_data("Data/Armors.rxdata")
    $data_enemies       = load_data("Data/Enemies.rxdata")
    $data_troops        = load_data("Data/Troops.rxdata")
    $data_states        = load_data("Data/States.rxdata")
    $data_animations    = load_data("Data/Animations.rxdata")
    $data_tilesets      = load_data("Data/Tilesets.rxdata")
    $data_common_events = load_data("Data/CommonEvents.rxdata")
    $data_system        = load_data("Data/System.rxdata")
    # Make system object
    $game_system = Game_System.new
    # Make title graphic
    @sprite = Sprite.new
    @sprite.bitmap = RPG::Cache.title($data_system.title_name)
    # Make command window
    s1 = "Nuevo"
    s2 = "Cargar"
    s3 = "Salir"
    s4 = "DLCs"
    @command_window = Window_Command.new(192, [s1, s2, s3, s4])
    @command_window.back_opacity = 160
    @command_window.x = 320 - @command_window.width / 2
    @command_window.y = 288
    # Continue enabled determinant
    # Check if at least one save file exists
    # If enabled, make @continue_enabled true; if disabled, make it false
    @continue_enabled = false
    for i in 0..3
      if FileTest.exist?("Save#{i+1}.rxdata")
        @continue_enabled = true
      end
    end
    # If continue is enabled, move cursor to "Continue"
    # If disabled, display "Continue" text in gray
    if @continue_enabled
      @command_window.index = 1
    else
      @command_window.disable_item(1)
    end
    # Play title BGM
    $game_system.bgm_play($data_system.title_bgm)
    # Stop playing ME and BGS
    Audio.me_stop
    Audio.bgs_stop
    # 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
    # Dispose of command window
    @command_window.dispose
    # Dispose of title graphic
    @sprite.bitmap.dispose
    @sprite.dispose
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    # Update command window
    @command_window.update
    # If C button was pressed
    if Input.trigger?(Input::C)
      # Branch by command window cursor position
      case @command_window.index
      when 0  # New game
        command_new_game
      when 1  # Continue
        command_continue
      when 2  # Shutdown
        command_shutdown
      when 3  # DlCs
        command_DLCs
      end
    end
  end
  #--------------------------------------------------------------------------
  # * Command: New Game
  #--------------------------------------------------------------------------
  def command_new_game
    # Play decision SE
    $game_system.se_play($data_system.decision_se)
    # Stop BGM
    Audio.bgm_stop
    # Reset frame count for measuring play time
    Graphics.frame_count = 0
    # Make each type of game object
    $game_temp          = Game_Temp.new
    $game_system        = Game_System.new
    $game_switches      = Game_Switches.new
    $game_variables     = Game_Variables.new
    $game_self_switches = Game_SelfSwitches.new
    $game_screen        = Game_Screen.new
    $game_actors        = Game_Actors.new
    $game_party         = Game_Party.new
    $game_troop         = Game_Troop.new
    $game_map           = Game_Map.new
    $game_player        = Game_Player.new
    # Set up initial party
    $game_party.setup_starting_members
    # Set up initial map position
    $game_map.setup($data_system.start_map_id)
    # Move player to initial position
    $game_player.moveto($data_system.start_x, $data_system.start_y)
    # Refresh player
    $game_player.refresh
    # Run automatic change for BGM and BGS set with map
    $game_map.autoplay
    # Update map (run parallel process event)
    $game_map.update
    # Switch to map screen
    $scene = Scene_Map.new
  end
  #--------------------------------------------------------------------------
  # * Command: Continue
  #--------------------------------------------------------------------------
  def command_continue
    # If continue is disabled
    unless @continue_enabled
      # 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 load screen
    $scene = Scene_Load.new
  end
  #--------------------------------------------------------------------------
  # * Command: Shutdown
  #--------------------------------------------------------------------------
  def command_shutdown
    # Play decision SE
    $game_system.se_play($data_system.decision_se)
    # Fade out BGM, BGS, and ME
    Audio.bgm_fade(800)
    Audio.bgs_fade(800)
    Audio.me_fade(800)
    # Shutdown
    $scene = nil
  end
  #--------------------------------------------------------------------------
  # * Command: DLCs
  #--------------------------------------------------------------------------
  def command_DLCs
    # Play decision SE
    $game_system.se_play($data_system.decision_se)
    # Switch to load screen
    $scene = Scene_DLC.new
  end
  #--------------------------------------------------------------------------
  # * Battle Test
  #--------------------------------------------------------------------------
  def battle_test
    # Load database (for battle test)
    $data_actors        = load_data("Data/Actors.rxdata")
    $data_classes       = load_data("Data/Classes.rxdata")
    $data_skills        = load_data("Data/Skills.rxdata")
    $data_items         = load_data("Data/Items.rxdata")
    $data_weapons       = load_data("Data/Weapons.rxdata")
    $data_armors        = load_data("Data/Armors.rxdata")
    $data_enemies       = load_data("Data/Enemies.rxdata")
    $data_troops        = load_data("Data/Troops.rxdata")
    $data_states        = load_data("Data/States.rxdata")
    $data_animations    = load_data("Data/Animations.rxdata")
    $data_tilesets      = load_data("Data/Tilesets.rxdata")
    $data_common_events = load_data("Data/CommonEvents.rxdata")
    $data_system        = load_data("Data/System.rxdata")
    # Reset frame count for measuring play time
    Graphics.frame_count = 0
    # Make each game object
    $game_temp          = Game_Temp.new
    $game_system        = Game_System.new
    $game_switches      = Game_Switches.new
    $game_variables     = Game_Variables.new
    $game_self_switches = Game_SelfSwitches.new
    $game_screen        = Game_Screen.new
    $game_actors        = Game_Actors.new
    $game_party         = Game_Party.new
    $game_troop         = Game_Troop.new
    $game_map           = Game_Map.new
    $game_player        = Game_Player.new
    # Set up party for battle test
    $game_party.setup_battle_test_members
    # Set troop ID, can escape flag, and battleback
    $game_temp.battle_troop_id = $data_system.test_troop_id
    $game_temp.battle_can_escape = true
    $game_map.battleback_name = $data_system.battleback_name
    # Play battle start SE
    $game_system.se_play($data_system.battle_start_se)
    # Play battle BGM
    $game_system.bgm_play($game_system.battle_bgm)
    # Switch to battle screen
    $scene = Scene_Battle.new
  end
end

Scene_DLC
Código:
#==============================================================================
# ** Scene_DLC
#------------------------------------------------------------------------------
#  This class performs game end screen processing.
#==============================================================================

class Scene_DLC
  #--------------------------------------------------------------------------
  # * Main Processing
  #--------------------------------------------------------------------------
  def main
    # Make command window
    s1 = "El Desierto"
    s2 = "Salir"
    s3 = "Cancelar"
    @command_window = Window_Command.new(192, [s1, s2, s3])
    @command_window.x = 320 - @command_window.width / 2
    @command_window.y = 240 - @command_window.height / 2
    # 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
    # Dispose of window
    @command_window.dispose
    # If switching to title screen
    if $scene.is_a?(Scene_Title)
      # Fade out screen
      Graphics.transition
      Graphics.freeze
    end
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    # Update command window
    @command_window.update
    # 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_Title.new
      return
    end
    # If C button was pressed
    if Input.trigger?(Input::C)
      # Branch by command window cursor position
      case @command_window.index
      when 0  # DLC
        command_DLC
      when 1  # shutdown
        command_shutdown
      when 2  # quit
        command_cancel
      end
      return
    end
  end
  #--------------------------------------------------------------------------
  # * Process When Choosing [To DLCs] Command
  #--------------------------------------------------------------------------
  def command_DLC
  # Play decision SE
  $game_system.se_play($data_system.decision_se)
  # Stop BGM
  Audio.bgm_stop
  # Reset frame count for measuring play time
  Graphics.frame_count = 0
  # Make each type of game object
  $game_temp = Game_Temp.new
  $game_system = Game_System.new
  $game_switches = Game_Switches.new
  $game_variables = Game_Variables.new
  $game_self_switches = Game_SelfSwitches.new
  $game_screen = Game_Screen.new
  $game_actors = Game_Actors.new
  $game_party = Game_Party.new
  $game_troop = Game_Troop.new
  $game_map = Game_Map.new
  $game_player = Game_Player.new
  # Set up initial party
  $game_party.setup_starting_members
  # Switch to map screen
  $game_map.setup(3)
  # hacia q posición
  $game_player.moveto(09, 14)
  # Refresh player
  $game_player.refresh
  # Run automatic change for BGM and BGS set with map
  $game_map.autoplay
  # Update map (run parallel process event)
  $game_map.update
  $scene = Scene_Map.new
  end
  #--------------------------------------------------------------------------
  # * Process When Choosing [Shutdown] Command
  #--------------------------------------------------------------------------
  def command_shutdown
    # Play decision SE
    $game_system.se_play($data_system.decision_se)
    # Fade out BGM, BGS, and ME
    Audio.bgm_fade(800)
    Audio.bgs_fade(800)
    Audio.me_fade(800)
    # Shutdown
    $scene = nil
  end
  #--------------------------------------------------------------------------
  # *  Process When Choosing [Cancel] Command
  #--------------------------------------------------------------------------
  def command_cancel
    # Play decision SE
    $game_system.se_play($data_system.decision_se)
    # Switch to menu screen
    $scene = Scene_Title.new
  end
end

La Demo
Código:
https://mega.nz/#!DRUWRTIb!DzHysU-DIbYnf-e-UEcrx8AM0G7I7YiVaq0d9FtX7T4

Yo pienso que esta forma es la mas fácil de hacer, pero yo por ejemplo no lo tomaría como DLC Si no como un Extra, nose lo importante es que cumpla su función, Veamos como se desarrolla esto.... y perdón por los errores ortográficos y errores de sintaxis pero lo hice apurado...
avatar
xXIsrael0499Xx
Soñador
Soñador

0/3

Créditos 896

Gracias : 39

Volver arriba Ir abajo

RPG Maker XP Re: [Colectivo][XP] DLCs

Mensaje por Ledai el 2017-04-26, 18:02

Agradezco el esfuerzo y el interés en el tema. Pero como bien explicas, el camino que toma esta propuesta se aleja en sí del termino Dlc's ya que el contenido tiene que encontrarse previamente en el proyecto completo, y lo que "descargas" es solo el acceso. Por lo que en mi caso pierde el sentido y proposito de poder añadir cosas extras (Externas) al juego una vez publicado, sin tener que hacer descargarse a los jugadores un nuevo proyecto con el contenido incluido, lo veo doblemente cargante para los jugadores, tener que descargarse el proyecto "actualizado" y luego el Dlc' para jugar el extra...

Digamos que no es en sí la idea que más me atraería a mi como jugadora, por lo que tampoco me atrae como makera; Y más en vista de que siguiendo esta misma propuesta, para tener ya el contenido "extra" incluido dentro del juego con anterioridad y posteriormente desbloquear el acceso a ello, se puede hacer de otras formas incluso menos complejas, tales como el uso de una contraseña o similares.

¡De todos modos seguiré los avances del tema, ya que como aporte siempre puede venir bien tenerlo en mente!

Gracias y suerte!!
avatar
Ledai
Aventurero
Aventurero

0/3

Créditos 2354

Gracias : 170

Volver arriba Ir abajo

RPG Maker XP Re: [Colectivo][XP] DLCs

Mensaje por Lithering-Games el 2017-04-26, 20:02

Bueno, yo no se de scripts. Pero se podría descargar los datos, músicas y gráficos nuevos y manualmente instalarlos al proyecto con la ayuda de un .txt.. De ese modo, el jugador solo descarga los datos y gráficos, y la instalación no sería muy compleja ni para el jugador ni para el creador, simplemente mover archivos y sin ningún script complejo por parte del creador. Funciona también para bug fixes o traducciones instalables, yo lo he hecho y me ha funcionado.
avatar
Lithering-Games
Principiante
Principiante

0/3

Créditos 533

Gracias : 21

Volver arriba Ir abajo

RPG Maker XP Re: [Colectivo][XP] DLCs

Mensaje por xXIsrael0499Xx el 2017-04-27, 10:44

@Ledia Concuerdo contigo, mas o menos el sistema que hice es como una base para que surja la idea de como implementar el DLC, ya que seria mas o menos lo mismo pero con la diferencia.. de que el jugador debería descargar el DLC, y luego Mediante Script hacer que compruebe que si archivo "X" data existe, se puede acceder al Script..

Lo Cual pienso que seria la forma mas fácil... de hacer, pero un poco complicado para personas que no saben de Script, entonces habría que tomar en cuenta esa parte, entonces digamos que lo conseguimos hacer, tendríamos que hacer un tutorial extenso de como usar el Script para que todos puedan usarlo...
Gracias por comentar :3

@Lithering-Games Es una buena idea lo que dices, estaba pensando en usar un programita que iso Orochii que es para parches de juegos y quizás pueda ser un complemento para esto...
Gracias por comentar :3
avatar
xXIsrael0499Xx
Soñador
Soñador

0/3

Créditos 896

Gracias : 39

Volver arriba Ir abajo

RPG Maker XP Re: [Colectivo][XP] DLCs

Mensaje por silvanash el 2017-04-27, 10:52

Lo de tener el material ya instalado y después obligar a bajarse/pagar un DLC es jugar sucio, y a las empresas que hacen eso se les debería caer la cara de la vergüenza.

Ahora en serio:

Para hacer el sistema, habría que romper parte del EULA del Maker. Sería la parte que dice que está prohibido averiguar cómo está encriptado el archivo del juego. Si supiéramos cómo funciona, podríamos crear un encriptado (que tiene ya todos los scripts, database y gráficos) y mandarlo como DLC. Habría que escribir algún script que leyese el archivo encriptado junto al encriptado del proyecto original y eso, pero ya lo dejo para gente con más experiencia.

Edito:

Ya puestos, en realidad habría que preparar el juego base desde el principio para que funcionara con los DLCs. Si esos DLCs traen cosas nuevas de database (armas, skills, enemigos), hay que dejar los scripts configurados para leer cosas que no están definidas en la database original. Para estos casos sería útil usar algo por el estilo del IGOS, o mejor de MS3. En mi juego, las cosas no van por ID de database, sino por el objeto en sí, de modo que incluso si tu database no incluye esa ID, el sistema es capaz de leer esos datos. Si el DLC es sólo para equipamiento o material de database nuevo, editar los scripts para leer las cosas de esta forma es lo más simple que se puede hacer.
avatar
silvanash
Aventurero
Aventurero

0/3

Créditos 1605

Gracias : 225

Volver arriba Ir abajo

RPG Maker XP Re: [Colectivo][XP] DLCs

Mensaje por orochii el 2017-05-01, 18:25

Bueno si es con un archivo encriptado, puedes no romper la EULA si no abres el archivo por completo.

Quiza funcione hacer un parche con algo tipo LunarIPS, que lo que hace es comparar dos archivos binarios y guardar las diferencias entre ambos para generar el parche.

Quiza haya forma de implementar eso y copiar archivos (ej. música, que creo no se encripta) en algún tipo de instalador. O sino dejarle la tarea al usuario, que no es recomendable xD.

Hay muchas formas de implementar DLCs sinceramente, pero creo que siempre dependen más de las necesidades de cada proyecto/individuo.

Salut!
avatar
orochii
Caballero Shiro
Caballero Shiro

0/3

Créditos 6388

Gracias : 332

Volver arriba Ir abajo

RPG Maker XP Re: [Colectivo][XP] DLCs

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


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