¡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 3397 miembros registrados.
El último usuario registrado es LucasGF.

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

[RMXP] Scene_Start

 :: RPG Maker :: Scripts

Ver el tema anterior Ver el tema siguiente Ir abajo

[RMXP] Scene_Start

Mensaje por orochii el 2010-02-09, 18:59

Buenas, tengo el (algo) de presentarles mi primer script (creía arreglarle la cosa de mostrar película pero viendo a Wecoc me terminé dando por "vencido" por el momento xD). Ésta cosa para lo que sirve es para mostrar un logo al inicio del juego, con la diferencia de que puede animarse levemente xd... por el momento no es nada increíble, aunque supuestamente está hecho para ser modificado fácilmente xD.
¿Problema? Necesita modificar levemente el main para funcionar, y también dentro de algún tiempo les presentaré mi scene_title, talvez les guste o qué se yo.

Aquí va el script... está con comentarios en inglés y español, supuestamente, al menos en la parte de configuración.
Código:

#==============================================================================
# ** Scene_Start by Orochii Zouveleki ;D. v2.0
#------------------------------------------------------------------------------
#  Una pequeña escena antes del título del juego, para llamarla debidamente edita
#  en el Main la línea $scene = Scene_Title.new, cambia Title por Start y listo xD
#==============================================================================
#  My little starting scene (a little logo before the title). For calling it,
#  modify this line on "Main" script $scene = Scene_Title.new, just change
#  Title by Start and that's all xD.
#==============================================================================
#Historial:
#1.0 - Versión inicial.
#2.0 - Arreglada la cuestión con el video además de pulida y retocada el segundo tipo de animación ;).
#==============================================================================
class Scene_Start
  #Configuraciones/configurations :).
  #Spa: Primero el nombre de archivo de logo a utilizar.
  #Eng: First the logo filename to be used.
  LOGO = "ragnarok_logo"
  #Spa: Segundo el fondo, déjalo vacío si el fondo está en el fondo, claro si el tipo
  #de animación es el 1 u otras que hayas hecho sin fondo estático.
  #Eng: Second, the background, leave it blank if you don't want one (for example,
  #animation 2 and later ones <if you do other ones>)
  BCKLOGO = ""
  #Spa: Tercero y último, el tipo de animación. Puedes hacer otros tipos, sea
  #modificando los existentes (total los que hice son muy sencillos ;D).
  #0- Aparece y desaparece el logo. Fin de la historia.
  #1- Lo de arriba pero usando un background. Puedes definir velocidad de
  #desplazamiento usando el parámetro modificable 1 (PARAM1).
  #2- Si haces alguno y no modificas simplemente...
  #Eng: Third and last, animation type. You can make other styles, modifying or
  #from scratch (this ones are just basic examples.
  #0- Appearing-dissapearing logo. That's all.
  #1- Same as above but with a moving background. Use PARAM1 for movespeed.
  #2- If you add other ones...
  ANIM_TYPE = 0
  #Spa: Parámetros modificables. Puedes agregar otros fácilmente si quieres ;D.
  #Eng: Mod parameters. Used if needed. You can add easily if you want ;D.
  PARAM0 = 8 #time in seconds for the whole logo animation, then goes to Title (or movie if you put one)
  PARAM1 = 2
  PARAM2 = 0.01 #animation framespeed (for animation)
  PARAM3 = 5 # por ahora es usado como un delay al final del video, pero puede usarse como se quiera :)
  #Movie ON/OFF
  MOVIE = true
  #Spa: Nombre del archivo de la película
  #Eng: Movie filename
  MOVIE_FILE = "Intro"
  #--------------------------------------------------------------------------
  # * Main Processing
  #--------------------------------------------------------------------------
  def main
    # If battle test
    if $BTEST
      $scene = Scene_Title.new
      return
    end
    Graphics.frame_count = 0
    @theanim_frames = 1
    $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 logo graphic
    @logo = Sprite.new
    @logo.bitmap = RPG::Cache.title(LOGO)
    if ANIM_TYPE == 1
      @logo2 = Sprite.new
      @logo2.bitmap = RPG::Cache.title(BCKLOGO)
      @logo.bitmap.opacity = 0
    end
    # Make command window
    #@err_win = Window_Errorifier.new
    @command_window = Window_Command.new(192, ["  "])   
    @command_window.back_opacity = 255
    @command_window.x = 0
    @command_window.y = 600
    Audio.me_stop
    Audio.bgs_stop
    $game_system.me_play($game_system.battle_end_me)
    # 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
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    # Update command window
    @command_window.update
    # If C button was pressed
    wasd = Graphics.frame_rate
    wsda = wasd * PARAM0
    wsdaf = wsda
    if MOVIE == true
      wsdaf += (wasd * PARAM3)
    end
    wertyq = wasd * PARAM2 * @theanim_frames
    if ANIM_TYPE == 1
      if Graphics.frame_count == wertyq
        @logo.bitmap.opacity + PARAM1
      end
    end
    if Graphics.frame_count == wsda
      # Branch by command window cursor position
      if MOVIE == true
        Scene_Movie.new(MOVIE_FILE)
        # Dispose of title graphic
        @logo.bitmap.dispose
        @logo.dispose
        if ANIM_TYPE == 1
          @logo2.bitmap.dispose
          @logo2.dispose
        end
      end
    end
    if Graphics.frame_count == wsdaf
      $scene= Scene_Title.new
    end
    if Input.trigger?(Input::C)
      # Branch by command window cursor position
      Audio.me_stop
      $scene= Scene_Title.new
    end
  end
end
Éste es el script, al menos yo lo uso en mi Dawn of Dragons (de hecho lo hice para ello), y pues me dieron ganas de al menos ponerlo por acá, después iré poniendo más scripts, puesto que tendré que hacer más para algunos sistemillas de juego (si, soy un desorden, un día estoy con VX, otro con 2k3 <3, y otro con XP, ya me cansé de dar x-cusas ¬¬ jajajaja).
¿Créditos? Bueno si lo llegan a usar, no es necesario que me pongan entre créditos, pero si no se roben mi tontería esta, no se debe usar con fines comerciales, y son libres de modificarlo, trátese como si estuviese con GNU/GPL (pero no le puedo poner licencia a algo hecho en rubí, o creo que no).
Otra cosa, la "velocidad" con que aparece el logo usa el PARAM1 también, eso es fácilmente modificable, por aquello que se quiera poner un parámetro distinto ;D. Simplemente agregar un parámetro más y cambias el PARAM1 por el nombre de la variable que creaste (o cambiar el PARAM1 por un valor "real"). Se los dejo de tarea xD (para "suí" mismos xD).

DEMO: Mediafire

Suerte gente, y lo que es importante, makeen mucho ;D,
Orochii Zouveleki

PD.: Por si les interesa, el Scene_Movie, necesario para reproducir videos (sólo AVI hasta ahora). Es recomendable NO usarlo, puesto que al estar reproduciendo video secuestra toda (o mucha) de la capacidad del procesador, y a veces hasta puede pegar el programa (o eso parece, al menos en máquinas antigüecillas puede causar problemas).
Ahí va el script, PUEDE que si alguna vez me siento capacitado lo arregle, pero como es anónimo ni idea de si hay versión mejorada :P, al menos ésta es funcional ;D:
Código:

class Scene_Movie

def initialize(movie)
  @readini = Win32API.new 'kernel32', 'GetPrivateProfileStringA', %w(p p p p l p), 'l'
  @movie_name = Dir.getwd()+"\\Movies\\"+movie+".avi"
  main
end

def main

  game_name = "\0" * 256
  @readini.call('Game','Title','',game_name,255,".\\Game.ini")
  game_name.delete!("\0")
  @wnd = Win32API.new('user32','FindWindowEx','%w(l,l,p,p)','L')
  @temp = @wnd.call(0,0,nil,game_name).to_s
  movie = Win32API.new('winmm','mciSendString','%w(p,p,l,l)','V')
  movie.call("open \""+@movie_name+"\" alias FILE style 1073741824 parent " + @temp.to_s,0,0,0)
  @message = Win32API.new('user32','SendMessage','%w(l,l,l,l)','V')
 
  @detector = Win32API.new('user32','GetSystemMetrics','%w(l)','L')
  @width = @detector.call(0)
  if @width == 640
    fullscreen
    Graphics.update
    sleep(1)
    Graphics.update
    sleep(1)
    Graphics.update
    sleep(1)
  end
 
  status = " " * 255
  movie.call("play FILE",0,0,0)
  loop do
    sleep(0.1)
    @message.call(@temp.to_i,11,0,0)
    Graphics.update
    @message.call(@temp.to_i,11,1,0)
    Input.update
    movie.call("status FILE mode",status,255,0)
    true_status = status.unpack("aaaa")
    if true_status.to_s != "play"
      break
    end
    if Input.trigger?(Input::B)
      Input.update
      break
    end
  end
  movie.call("close FILE",0,0,0)
  bail
end

def bail
  if @width == 640
    fullscreen
  end
  end
end

def fullscreen()

$full.call(18,0,0,0)
$full.call(13,0,0,0)
$full.call(18,0,2,0)
$full.call(13,0,2,0)
end
$full = Win32API.new('user32','keybd_event','%w(l,l,l,l)','')


Última edición por orochii el 2010-02-15, 00:46, editado 2 veces

orochii
Caballero Shiro
Caballero Shiro

0/3

Créditos 6045

Gracias : 266

http://drekirokr.weebly.com/

Volver arriba Ir abajo

Re: [RMXP] Scene_Start

Mensaje por Celio Hogane el 2010-02-09, 20:05

...
Una cosa que me he fijado... porque el ultimo end tiene #? Eso no tiene sentido, es un error tonto, Por favor, dime que ese NO es el error, dimelo! XD

Celio Hogane
Principiante
Principiante

1/3

Créditos 663

Gracias : 4

Volver arriba Ir abajo

Re: [RMXP] Scene_Start

Mensaje por orochii el 2010-02-09, 21:17

Uhhh ¿error de... que esa es la razón de que no me haya funcionado con el Scene_start? nop, ese no es el error... porque sino a la hora de "compilar" el maker me hubiera mandado un horrible error :P. De hecho quitándole ese # el script tira error, porque ese end sobra. Es un End que usaba para comentar el script entero en mis pruebas, creo que olvidé quitarlo xDDDDDDDDDD.
¡Ah! y ya lo arreglé, nunca pensé que yo fuera tan idiotadespistado jajajaja, nada más poner Scene_Movie en lugar de Scene_movie, quien sabe porqué no intenté eso antes ¬¬... en fin caso perdido xd. Editado post principal.

Ajem, si esa es la única duda, está resuelta creo ;), gracias por el comentario Celio,
Orochii Zouveleki

Edit: ¡SIN EMBARGO! Ahora hay otro error ¬¬ jaja pero eso con hacerlo esperar un ratito más :P, estaría listo... ahorita edito y lo arreglo ;D.
Edit2: Otra cosa... al Scene_Movie lo he cambiado, ya que el otro al parecer no funcionaba ¬¬... así que supuestamente es 100% funcional. Siempre tiene los defectos del Scene_Movie (que algunas veces "traba" la ventana, e incluso puede ser muy pesado, por lo que por el momento no lo recomiendo). Eso aunque no tenga qué ver conmigo, si alguna vez logro aligerarlo o lo que sea, lo postearé ;).
Edit2525: Opio Muka Muka xD, postea scripts, la idea es colaborar (al menos al postear scripts), y la verdad mi vía del scripting no es muy profesional, puesto que ni siquiera sé usar correctamente los módulos xP. Pero eso con estudiar algunos scripts lo arreglo ;D.


Última edición por orochii el 2010-02-10, 05:58, editado 1 vez

orochii
Caballero Shiro
Caballero Shiro

0/3

Créditos 6045

Gracias : 266

http://drekirokr.weebly.com/

Volver arriba Ir abajo

Re: [RMXP] Scene_Start

Mensaje por Mukadelheid el 2010-02-10, 02:58

XD

parecen profesionales s.

muy util script.




Última edición por Mukadelheid el 2012-05-30, 23:31, editado 1 vez

Mukadelheid
Principiante
Principiante

0/3

Créditos 331

Gracias : 28

Volver arriba Ir abajo

Re: [RMXP] Scene_Start

Mensaje por orochii el 2010-02-15, 00:45

Actualizado: posteado demo (http://www.mediafire.com/?2mjmkjzk5mx).

Saludos,
Orochii Zouveleki

orochii
Caballero Shiro
Caballero Shiro

0/3

Créditos 6045

Gracias : 266

http://drekirokr.weebly.com/

Volver arriba Ir abajo

Re: [RMXP] Scene_Start

Mensaje por Contenido patrocinado Hoy a las 12:41


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.