¡Bienvenido a Universo Maker!
¿Es esta la primera vez que visitas el foro? Si es así te recomendamos que te registres para tener completo acceso a todas las áreas y secciones del foro, así también podrás participar activamente en la comunidad. Si ya tienes una cuenta, conectate cuanto antes.
Iniciar Sesión Registrarme

No estás conectado. Conéctate o registrate

Ir a la página : Precedente  1, 2, 3, 4, 5  Siguiente

Ver el tema anterior Ver el tema siguiente Ir abajo Mensaje [Página 3 de 5.]

rpgmanumaker

avatar
Muchísimas gracias, youkai!!! Con eso ya me sobra para lo que quería escribir.

rpgmanumaker

avatar
Pues aquí estoy otra vez... No quería hacer doble post, pero como nadie ha contestado aún... Espero que me perdonen el doble post.
Bueno, esta vez el pedido puede ser un poco más difícil... Sigue siendo para Ace...
Quisiera un sistema de stats... al estilo de ragnarok online... aquí una imagen para que me comprendas mejor Stats de RO
En fin, en este juego... no sé si has jugado alguna vez... pero por si no lo has hecho aquí una explicación XD... Cuando subes de LV te dan una cantidad de puntos para asignara ciertos valores. Como ves en esa imagen. Pues eso es lo que yo quisiera... que por cada lv que suba me vayan dando puntos... que pueda decidir cuantos puntos obtendré con cada lv.
No sé si te será muy complicado hacerlo... Si es así... pues no se puede hacer nada. Y si puedes hacerlo pues... muchas gracias!! XD.

rpgmanumaker

avatar
Pues aquí estoy otra vez... No quería hacer doble post, pero como nadie ha contestado aún... Espero que me perdonen el doble post.
Bueno, esta vez el pedido puede ser un poco más difícil... Sigue siendo para Ace...
Quisiera un sistema de stats... al estilo de ragnarok online... aquí una imagen para que me comprendas mejor Stats de RO
En fin, en este juego... no sé si has jugado alguna vez... pero por si no lo has hecho aquí una explicación XD... Cuando subes de LV te dan una cantidad de puntos para asignara ciertos valores. Como ves en esa imagen. Pues eso es lo que yo quisiera... que por cada lv que suba me vayan dando puntos... que pueda decidir cuantos puntos obtendré con cada lv.
No sé si te será muy complicado hacerlo... Si es así... pues no se puede hacer nada. Y si puedes hacerlo pues... muchas gracias!! XD.

youkai

avatar
wow...pues entonces lo lograste. Hiciste double post y spam!! XDDD
Y ya vere que puedo hacer...porque ahora vienen los examenes finales y el pedido tuyo es un poco complicado(por ser para Ace ¬¬")
Saludos,
¥oukai

alex.fayula

avatar
Buenas vengo con más trabajo jeje

Está vez se trata de un pequeño problema en un script de batalla en tiempo activo (Victor Engine).

El caso es que la ventana de estatus de la batalla se le añade un barra ATB y se alarga la ventana para ello.

Dentro del script se hace referencia a si quieres que dicha ventana se desplace o no al mostrar la ventana de comandos del actor(atacar, habilidades, magia, defender...)

Al seleccionar que no se mueva (y aquí está el problema) la ventana de comandos del actor aparece en el lado izquierdo, tapando los nombres de los heroes. He conseguido modificar el scene_batle para cambiar la posición de la ventana de comandos del actor pero el script del ATB (Victor Engine) no me permite desplazar horizontalmente la ventana, sin embargo sí me lo permite verticalmente. (lo he probado sin el script y funciona a la perfeccion)
El caso es que yo quiero que la ventana se situe en el lado derecho. Tapando las barras de ATB.
A ver si lo logras xD

Te dejo el script y otros 2 que son necesarios para que este funcione. Te los dejo en el orden que deben estar en el editor de scripts y con las opciones (ATB) ya establecidas tal com lo quiero usar:

BAsic Module:
https://dl.dropbox.com/u/27014140/Scripts/Victor%20Engine%20-%20Basic%20Module.txt

Animated Battle:

https://dl.dropbox.com/u/27014140/Scripts/Victor%20Engine%20-%20Animated%20Battle.txt


Y, finalmente, el script a editar, ya que es el que produce el error:
https://dl.dropbox.com/u/27014140/Scripts/Victor%20Engine%20-%20Active%20Time%20Battle.txt

Saludos y gracias!

youkai

avatar
Me costo mas tiempo intentar enteder que era lo que querias que encontrar el error(de hecho, aun no se si esto era lo que buscabas) XDDD
Dime si asi esta bien o en realidad querias que hiciese alguna otra cosa, si no era esto lo que buscabas, entonces se un poco mas especifico.
[url=Victor Engine - Active Time Battle]hotfile.com Victor_Engine_-_Active_Time_Battle.txt.html[/url]
Saludos,
¥oukai
PD: Extraño el maker XP T-T!!! XD

alex.fayula

avatar
Es perfecto así que lo has entendido a la perfección jaja

Muchas gracias de nuevo youkai!!

youkai

avatar
SUSPENDIDO EL TALLER HASTA EL DIA 25

Perdonen las molestias, pero en estas proximas 2 semanas no voy a poder atender a ningun pedido que me hagan. Si desean, pueden irlos dejando aqui, pero solo los voy a poder resolver despues del dia 25 a las 12:30 PM.
Razon: Examenes finales de curso que empiezan mañana...y terminan el 25 XDD

Pues nada, ya termine con mis pruebas, asi que el taller queda reabierto y pendiente a cualquier pedido de script que deseen hacer. Oficializando el tema:

Reabierto el Taller de Scripts: "RGSS Center"

Saludos,
¥oukai

sombi02

avatar
hola buen dia, disculpa youkai, me podrias ayudar con un script para el XP, es q quiero llamar a un menu de configuraciones desde alguna tecla "D" pr ejemplo, en el menu de configuraciones tendria opciones como las habituales de sonido, pantalla completa, cambiar el skin, cosas asi, es que lo eh visto en otros proyectos pero nose como hacerlo, espero haberme explicado bien, si pudieras ayudarme te lo agradeceria, gracias y saludos

youkai

avatar
Ok, dame unos minutos para hacerlo.

EDIT: Finalmente listo, perdona por la molestia pero tuve que salir de casa y ahora mismo casi fue que regrese.
Aqui esta tu pedido, dime si asi te parece bien o necesita mas/menos cosas. Otra cosa importante, la tecla para llamar al menu DESDE EL MAPA la defines en OPT_KEYCALL.
Espero que te sirva y quedes satisfecho ^^
Código:
#=;=;=;=;=;=;=;=;=;=;=;=;=;=;=;=;=;=;=;=;=;=;=;=;=;=;=;=;=;=;=;=;=;=;=;=;=;=;=;=
# ** Autor: Blizzard **
# Editado y adaptado por youkai
#=>==<=>==<=>==<=>==<=>==<=>==<=>==<=>==<=>==<=>==<=>==<=>==<=>==<=>==<=>==<=>==
# Creditos de la creacion de este script darlos a su verdadero autor Blizzard,
# solo me ocupe de extraerlo e independizarlo del Stormtronics CMS - Hybrid Edition
#=;=;=;=;=;=;=;=;=;=;=;=;=;=;=;=;=;=;=;=;=;=;=;=;=;=;=;=;=;=;=;=;=;=;=;=;=;=;=;=
module Youkai
OPT_KEYCALL = Input::A
BGM_Variable = 49
BGM_Lock = 49 # Switch que impide cambiar el BGM de batalla.

# Sonidos de batalla intercambiables.
BATTLE_BGMS = [
#            ['BGM_NAME', VOLUME, PITCH, 'DISPLAY_NAME']
              ['001-Battle01', 100, 100, 'BGM 1'],
              ['002-Battle02', 100, 100, 'BGM 2'],
              ['003-Battle03', 100, 100, 'BGM 3'],
              ['004-Battle04', 100, 100, 'BGM 4']]
             
RETURN_SCENE = Scene_Map  # Elige a que escena regresar al salir del menu.

# Skins a los que puedes cambiar. Se debe de poner el nombre del archivo SIN la
# extension.
SKINS = ['Original', 'Heavy Gold', 'Hell Breath', 'Liquid Water',
          'Violent Violet', 'Ice Cool', 'Fatal Venom', 'Perfect Chaos',
          'Blizzard Master']
         
# Fuentes disponibles para cambiar. Se debe de poner el nombre que adquiere la
# fuente EN LA PC.
FONTS = ['Arial', 'Future', 'Comic Sans MS', 'Brush Script', 'Tahoma',
          'Times New Roman']
end

#==============================================================================
# Bitmap
#==============================================================================

class Bitmap

  if $tons_version == nil || $tons_version < 3.71
  alias init_ultimate_font_override_later initialize unless $@
  def initialize(w, h = nil)
    if w.is_a?(Numeric) && h.is_a?(Numeric)
      init_ultimate_font_override_later(w, h)
    else
      init_ultimate_font_override_later(w)
    end
    if $game_system != nil && $game_system.fontname != nil &&
        !$scene.is_a?(Scene_Title)
      self.font.name = $game_system.fontname
      self.font.size = $game_system.fontsize
    else
      self.font.name = Font.default_name
      self.font.size = Font.default_size
    end
  end
 
  def gradient_bar(x, y, w, color1, color2, color3, rate, flag = false)
    offset = 5
    x += offset
    y += 26
    (0...offset+3).each {|i| fill_rect(x-i, y+i-2, w+3, 1, Color.new(0, 0, 0))}
    (0...offset+1).each {|i| fill_rect(x-i, y+i-1, w+1, 1, Color.new(255, 255, 255))}
    (0...w+offset).each {|i|
        red = color3.red * i / (w + offset)
        green = color3.green * i / (w + offset)
        blue = color3.blue * i / (w + offset)
        oy = i < offset ? offset-i : 0
        off = i < offset ? i : i > w ? w+offset-i : offset
        fill_rect(x+i-offset+1, y+oy-1, 1, off, Color.new(red, green, blue))}
    if (w*rate).to_i >= offset
      (0...(w*rate).to_i+offset).each {|i|
          red = color1.red + (color2.red-color1.red)*i/((w+offset)*rate)
          green = color1.green + (color2.green-color1.green)*i/((w+offset)*rate)
          blue = color1.blue + (color2.blue-color1.blue)*i/((w+offset)*rate)
          oy = i < offset ? offset-i : 0
          off = i < offset ? i : i > w*rate ? (w*rate).to_i+offset-i : offset
          fill_rect(x+i-offset+1, y+oy-1, 1, off, Color.new(red, green, blue))}
    else
      (0...(w*rate).to_i).each {|i| (0...offset-1).each {|j|
          red = color1.red + (color2.red-color1.red) * i / (w * rate)
          green = color1.green + (color2.green-color1.green) * i / (w * rate)
          blue = color1.blue + (color2.blue-color1.blue) * i / (w * rate)
          set_pixel(x+i-j+1, y+j-1, Color.new(red, green, blue))}}
    end
  end
  end

  def draw_element_graph(x_plus, y_plus, rad, color, limit = -1)
    (-rad-1...0).each {|r| (r...0).each {|x|
        color.alpha = 255 * (rad+1.0-r.abs)/(rad+1)
        y = (r.abs * Math.sin(Math.acos(x/r.to_f))).to_i
        h = y * 2
        case limit
        when 1, 9 then h = (y < x.abs ? 0 : y - x.abs)
        when 2, 8 then y > x.abs ? h = y = x.abs : h = y
        when 3, 7
          y > x.abs ? h = y = x.abs : h = y
          y = 0 if y > 0
        when 4, 6 then h, y = (y < x.abs ? 0 : y - x.abs), -x.abs
        end
        if limit <= 5
          fill_rect(rad*2-x + x_plus, rad-y + y_plus, 1, h, color)
        else
          fill_rect(rad*2+x+1 + x_plus, rad-y + y_plus, 1, h, color)
        end}}
  end
 
end

#==============================================================================
# Game_System
#==============================================================================

class Game_System
 
  attr_accessor :bgm_volume
  attr_accessor :sfx_volume
  attr_accessor :cam
  attr_reader  :fontname
  attr_reader  :fontsize
 
  alias init_storm_cms_later initialize unless $@
  def initialize
    init_storm_cms_later
    @bgm_volume = @sfx_volume = 100
    @cam = 0
    if $tons_version != nil
      if $tons_version >= 6.03 && !@BARS
        @bar_style, @bar_opacity = 0, 255
      end
      if $tons_version < 1.6
        self.fontname = 'Arial'
        self.fontsize = 24
      end
    else
      self.fontname = 'Arial'
      self.fontsize = 24
    end
  end
 
  def fontname=(name)
    Font.default_name = $defaultfonttype = $fontface = @fontname = name
  end
   
  def fontsize=(size)
    Font.default_size = $defaultfontsize = $fontsize = @fontsize = size
  end
 
  def get_cam
    $game_variables[Youkai::CAM_Variable] = @cam
    return true
  end
   
  def reset_battle_bgm
    bgm = Youkai::BATTLE_BGMS[$game_variables[Youkai::BGM_Variable]]
    $game_system.battle_bgm = RPG::AudioFile.new(bgm[0], bgm[1], bgm[2])
    return true
  end
 
  if $dream_music
  def bgm_play(bgm)
    @playing_bgm = bgm
    if bgm != nil && bgm.name != ''
      vol = correction(@bgm_volume)
      dream_ed = bgm.clone
      dream_ed.volume = dream_ed.volume * vol / 100
      DREAM.play_encrypted_audio('Audio/BGM/', dream_ed, 0)
    else
      Audio.bgm_stop
    end
    Graphics.frame_reset
  end
 
  def bgs_play(bgs)
    @playing_bgs = bgs
    if bgs != nil && bgs.name != ''
      vol = correction(@sfx_volume)
      dream_ed = bgs.clone
      dream_ed.volume = dream_ed.volume * vol / 100
      DREAM.play_encrypted_audio('Audio/BGS/', dream_ed, 1)
    else
      Audio.bgs_stop
    end
    Graphics.frame_reset
  end
 
  def me_play(me)
    if me != nil && me.name != ''
      vol = correction(@bgm_volume)
      dream_ed = me.clone
      dream_ed.volume = dream_ed.volume * vol / 100
      DREAM.play_encrypted_audio('Audio/ME/', dream_ed, 2)
    else
      Audio.me_stop
    end
    Graphics.frame_reset
  end
 
  def se_play(se)
    if se != nil && se.name != ''
      vol = correction(@sfx_volume)
      dream_ed = se.clone
      dream_ed.volume = dream_ed.volume * vol / 100
      DREAM.play_encrypted_audio('Audio/SE/', dream_ed, 3)
    end
  end
  else
  def bgm_play(bgm)
    @playing_bgm = bgm
    if bgm != nil && bgm.name != ''
      vol = correction(@bgm_volume)
      Audio.bgm_play('Audio/BGM/' + bgm.name , bgm.volume * vol / 100, bgm.pitch)
    else
      Audio.bgm_stop
    end
    Graphics.frame_reset
  end
 
  def bgs_play(bgs)
    @playing_bgs = bgs
    if bgs != nil && bgs.name != ''
      vol = correction(@sfx_volume)
      Audio.bgs_play('Audio/BGS/' + bgs.name, bgs.volume * vol / 100, bgs.pitch)
    else
      Audio.bgs_stop
    end
    Graphics.frame_reset
  end
 
  def me_play(me)
    if me != nil && me.name != ''
      vol = correction(@bgm_volume)
      Audio.me_play('Audio/ME/' + me.name, me.volume * vol / 100, me.pitch)
    else
      Audio.me_stop
    end
    Graphics.frame_reset
  end

  def se_play(se)
    if se != nil && se.name != ''
      vol = correction(@sfx_volume)
      Audio.se_play('Audio/SE/' + se.name, se.volume * vol / 100, se.pitch)
    end
  end
  end
 
  def correction(volume)
    case volume
    when 100 then return 100
    when 95 then return 97
    when 90 then return 95
    when 85 then return 92
    when 80 then return 90
    when 75 then return 87
    when 70 then return 85
    when 65 then return 82
    when 60 then return 80
    when 55 then return 77
    when 50 then return 75
    when 45 then return 72
    when 40 then return 70
    when 35 then return 65
    when 30 then return 60
    when 25 then return 55
    when 20 then return 50
    when 15 then return 40
    when 10 then return 35
    when 5 then return 25
    end
    return 0
  end 
end

#==============================================================================
# Window_CMSOptions
#==============================================================================

class Window_Options < Window_Selectable

  attr_accessor :current_font
  attr_reader  :current_skin
  attr_reader  :skin_name
  attr_reader  :font_name
 
  def initialize
    @background = 'CMSFullscreen'
    super(0, 0, 640, 480)
    @commands = ['BGM Volume', 'SFX Volume', 'Battle BGM']
    @commands.push('Bar Style', 'Bar Opacity') if $Blizz_Art
    @commands.push('Font', 'Windowskin')
    get_skin_and_font
    self.contents = Bitmap.new(width - 32, height - 32)
    self.index = 0
    @item_max = @commands.size
    refresh
  end
 
  def get_option
    return @commands[index]
  end
 
  def refresh
    self.contents.clear
    self.contents.font.name = $game_system.fontname
    (0...@item_max).each {|i|
        self.contents.font.color = normal_color
        self.contents.fill_rect(24, 16 + i*36, 192, 32, Color.new(0, 0, 0, 0))
        self.contents.draw_text(24, 16 + i*36, 192, 32, @commands[i])
        draw_arrows(288, 4 + i*36)
        case @commands[i]
        when 'BGM Volume' then draw_volume(288, 4 + i*36)
        when 'SFX Volume' then draw_volume(288, 4 + i*36, true)
        when 'Battle BGM' then draw_battle_bgm(288, 4 + i*36)
        when 'Battle Cam' then draw_battle_cam(288, 4 + i*36)
        when 'Bar Style' then draw_style(288, 4 + i*36)
        when 'Bar Opacity' then draw_opacity(288, 4 + i*36)
        when 'Font' then draw_font(288, 4 + i*36)
        when 'Windowskin' then draw_skin(288, 4 + i*36)
        end}
  end
     
  def draw_arrows(x, y)
    self.contents.draw_text(x - 32, y + 13, 32, 32, '<<')
    self.contents.draw_text(x + 249, y + 13, 32, 32, '>>')
  end
 
  def draw_volume(x, y, mode = false, width = 224)
    volume = (mode ? $game_system.sfx_volume.to_f : $game_system.bgm_volume.to_f)
    vol = volume.to_f / 100
    color1 = Color.new(20, 40, 80, 192)
    color2 = Color.new(60, 120, 240, 192)
    color3 = Color.new(0, 0, 80, 192)
    old, $game_system.bar_opacity = $game_system.bar_opacity, 255 if $Blizz_Art
    self.contents.gradient_bar(x, y, width, color1, color2, color3, vol, true)
    $game_system.bar_opacity = old if $Blizz_Art
  end
 
  def draw_style(x, y, width = 224)
    color1 = Color.new(80, 80, 0, 192)
    color2 = Color.new(240, 240, 0, 192)
    self.contents.gradient_bar(x + 32, y, width - 64, color1, color2, color1, 1, true)
  end
 
  def draw_battle_bgm(x, y, width = 224)
    bgm = Youkai::BATTLE_BGMS[$game_variables[Youkai::BGM_Variable]][3]
    if $game_switches[Youkai::BGM_Lock] || Youkai::BATTLE_BGMS.size <= 1
      self.contents.font.color = Color.new(0, 0, 0, 255)
      self.contents.draw_text(x+1, y + 13+1, 224, 32, bgm, 1)
      self.contents.font.color = disabled_color
    else
      self.contents.font.color = normal_color
    end
    self.contents.draw_text(x, y + 13, 224, 32, bgm, 1)
  end
 
  def draw_battle_cam(x, y, width = 224)
    cam = ($game_variables[Youkai::CAM_Variable] == 0 ? 'ON' : 'OFF')
    self.contents.draw_text(x, y + 13, 224, 32, cam, 1)
  end
 
  def draw_opacity(x, y, width = 224)
    alpha = case $game_system.bar_opacity
    when 0 then 'No Bar'
    when 1..85 then 'Light'
    when 86..170 then 'Medium'
    when 171..254 then 'Hard'
    when 255 then 'Full'
    end
    self.contents.draw_text(x, y + 13, 224, 32, alpha, 1)
  end
 
  def draw_font(x, y, width = 224)
    @font_name = Youkai::FONTS[@current_font]
    self.contents.font.name = @font_name
    self.contents.draw_text(x, y + 13, 224, 32, @font_name, 1)
    self.contents.font.name = $game_system.fontname
  end
 
  def draw_skin(x, y, width = 224)
    @skin_name = Youkai::SKINS[self.current_skin]
    self.contents.draw_text(x, y + 13, 224, 32, @skin_name, 1)
    self.contents.fill_rect(x + 48, y +428, 128, 128, Color.new(0, 0, 0, 0))
    bitmap = RPG::Cache.windowskin(@skin_name)
    self.contents.blt(x + 50, y + 50, bitmap, Rect.new(2, 2, 124, 124))
    self.contents.blt(x + 48, y + 48, bitmap, Rect.new(128, 0, 16, 16))
    self.contents.blt(x + 160, y + 48, bitmap, Rect.new(176, 0, 16, 16))
    self.contents.blt(x + 48, y + 160, bitmap, Rect.new(128, 48, 16, 16))
    self.contents.blt(x + 160, y + 160, bitmap, Rect.new(176, 48, 16, 16))
    (2..4).each {|i|
        self.contents.blt(x+i*32, y+48, bitmap, Rect.new(144, 0, 32, 16))}
    (2..4).each {|i|
        self.contents.blt(x+i*32, y+160, bitmap, Rect.new(144, 48, 32, 16))}
    (2..4).each {|i|
        self.contents.blt(x+48, y+i*32, bitmap, Rect.new(128, 16, 16, 32))}
    (2..4).each {|i|
        self.contents.blt(x+160, y+i*32, bitmap, Rect.new(176, 16, 16, 32))}
  end
 
  def current_skin
    return (@current_skin == nil ? 0 : @current_skin)
  end
 
  def current_skin=(val)
    @current_skin = (val.is_a?(Numeric) ? val : 0)
  end
 
  def get_skin_and_font
    @font_name = $game_system.fontname
    @current_font = Youkai::FONTS.index(@font_name)
    @skin_name = $game_system.windowskin_name
    self.current_skin = Youkai::SKINS.index(@skin_name)
  end
 
  def update_cursor_rect
    if self.index < 0
      self.cursor_rect.empty
    else
      self.cursor_rect.set(16, @index*36 + 16, 128, 32)
    end
  end
 
end

class Scene_Options 
  def main
    @options_window = Window_Options.new
    # Execute transition
    Graphics.transition
    # Main loop
    loop do
      # Update game screen
      Graphics.update
      # Update input information
      Input.update
      # Frame update
      update_options
      # Abort loop if screen is changed
      if $scene != self
        break
      end
    end
    # Prepare for transition
    Graphics.freeze
    # Dispose of windows
    @options_window.dispose
  end
 
  def update_options
    @options_window.update
    if Input.trigger?(Input::B)
      $game_system.se_play($data_system.cancel_se)
      $scene = Youkai::RETURN_SCENE.new
      return
    end
    case @options_window.get_option
    when 'BGM Volume'
      if Input.repeat?(Input::RIGHT)
        $game_system.bgm_volume += 5
        $game_system.bgm_volume = 100 if $game_system.bgm_volume > 100
        $game_system.bgm_play($game_system.bgm_memorize)
        @options_window.refresh
      elsif Input.repeat?(Input::LEFT)
        $game_system.bgm_volume -= 5
        $game_system.bgm_volume = 0 if $game_system.bgm_volume < 0
        $game_system.bgm_play($game_system.bgm_memorize)
        @options_window.refresh
      end
    when 'SFX Volume'
      if Input.repeat?(Input::RIGHT)
        $game_system.sfx_volume += 5
        if $game_system.sfx_volume > 100
          $game_system.sfx_volume = 100
        else
          $game_system.se_play($data_system.cursor_se)
        end
        @options_window.refresh
      elsif Input.repeat?(Input::LEFT)
        $game_system.sfx_volume -= 5
        $game_system.sfx_volume = 0 if $game_system.sfx_volume < 0
        $game_system.se_play($data_system.cursor_se)
        @options_window.refresh
      end
    when 'Battle BGM'
      if Input.repeat?(Input::LEFT) || Input.repeat?(Input::RIGHT) ||
          Input.repeat?(Input::C)
        if $game_switches[Youkai::BGM_Lock] || Youkai::BATTLE_BGMS.size <= 1
          $game_system.se_play($data_system.buzzer_se)
        else
          $game_system.se_play($data_system.decision_se)
          ind = $game_variables[Youkai::BGM_Variable]
          if Input.repeat?(Input::RIGHT) || Input.repeat?(Input::C)
            ind = (ind+1) % Youkai::BATTLE_BGMS.size
          elsif Input.repeat?(Input::LEFT)
            ind = (ind+Youkai::BATTLE_BGMS.size-1) % Youkai::BATTLE_BGMS.size
          end
          $game_variables[Youkai::BGM_Variable] = ind
          $game_system.reset_battle_bgm
          @options_window.refresh
        end
      end
    when 'Battle Cam'
      if Input.repeat?(Input::LEFT) || Input.repeat?(Input::RIGHT) ||
          Input.repeat?(Input::C)
        if Youkai::CAM_AVAILABLE
          $game_system.se_play($data_system.decision_se)
          $game_system.cam = ($game_system.cam+1) % 2
          $game_system.get_cam
          @options_window.refresh
        else
          $game_system.se_play($data_system.buzzer_se)
        end
      end
    when 'Bar Style'
      if Input.repeat?(Input::RIGHT)
        if $game_system.bar_opacity == 0
          $game_system.se_play($data_system.buzzer_se)
        else
          $game_system.bar_style = ($game_system.bar_style + 1) % 7
          $game_system.se_play($data_system.decision_se)
          @options_window.refresh
        end
      elsif Input.repeat?(Input::LEFT)
        if $game_system.bar_opacity == 0
          $game_system.se_play($data_system.buzzer_se)
        else
          $game_system.bar_style = ($game_system.bar_style + 6) % 7
          $game_system.se_play($data_system.decision_se)
          @options_window.refresh
        end
      end
    when 'Bar Opacity'
      if Input.repeat?(Input::LEFT) || Input.repeat?(Input::RIGHT)
        $game_system.se_play($data_system.decision_se)
        $game_system.bar_opacity += (Input.repeat?(Input::RIGHT) ? 64 : -64)
        @options_window.refresh
      end
    when 'Font'
      if Input.repeat?(Input::RIGHT)
        $game_system.se_play($data_system.decision_se)
        @options_window.current_font += 1
        @options_window.current_font %= Youkai::FONTS.size
        @options_window.refresh
      elsif Input.repeat?(Input::LEFT)
        $game_system.se_play($data_system.decision_se)
        @options_window.current_font += Youkai::FONTS.size - 1
        @options_window.current_font %= Youkai::FONTS.size
        @options_window.refresh
      elsif Input.repeat?(Input::C)
        $game_system.se_play($data_system.decision_se)
        $game_system.fontname = @options_window.font_name
        @options_window.refresh
      end
    when 'Windowskin'
      if Input.repeat?(Input::RIGHT)
        $game_system.se_play($data_system.decision_se)
        @options_window.current_skin += 1
        @options_window.current_skin %= Youkai::SKINS.size
        @options_window.refresh
      elsif Input.repeat?(Input::LEFT)
        $game_system.se_play($data_system.decision_se)
        @options_window.current_skin += Youkai::SKINS.size - 1
        @options_window.current_skin %= Youkai::SKINS.size
        @options_window.refresh
      elsif Input.repeat?(Input::C)
        $game_system.se_play($data_system.decision_se)
        $game_system.windowskin_name = @options_window.skin_name
      end
    end
  end
end

class Game_Map
  alias options_window_update update
  def update
    options_window_update
    if Input.trigger?(Youkai::OPT_KEYCALL)
      $game_system.se_play($data_system.decision_se)
      $scene = Scene_Options.new
    end
  end
end
Saludos,
¥oukai

sombi02

avatar
Funciona de maravilla, gracias, y no te preocupes, no era algo urgente, nadamas una pregunta, quitar la opcion de cambiar la musica, y en lugar de esa poner la de pantalla completa?

otra cosa, se me acaba de ocurrir, se le agregar mas opciones como activar/descativar algun script, pr ejemplo, activar o desactivar el dinero en mapa, disculpa si soy muy exigente XD

youkai

avatar
Seeh, diria que demasiado exigente ¬¬", pero para eso estoy XDD
Si quieres que agregue la opcion de activar/desactivar el script de oro en mapa, pasame ese script porque tengo que hacerle algunas modificaciones.
Y para el Full Screen, pues...tienes el script de pantalla completa? ^^ Sino lo tienes no te preocupes, ya buscare alguno que valga la pena por mi cuenta XD
Saludos,
¥oukai

sombi02

avatar
jajaja si ntp, como te decía no es algo urgente, lo de activar o desactivar script olvídalo si quieres solo lo ponia como ejemplo. lo de la pantalla completa , tengo el Main Mejorado (Version 2.0 por Webmaster24) donde puedo poner la pantalla completa o no, pero ps yo solo quería que saliera esa opción en la ventana de configuración, aun asi gracias por la ayuda, me ah servido bastante. saludos

rpgmanumaker

avatar
Hola, youkai!!
Bueno, quería preguntarte si me podrías hacer un script, no creo que sea muy complicado lo que voy a pedir XD.
Bueno, quisiera que al pulsar una tecla (la que sea) en el menú de batalla o en el menú skill normal, cuando tienes el cursor situado en una script te salga una ventana que te diga la fórmula de batalla de la script, los efectos que produce, las habilidades que sube, etc., Sería para el ACE

youkai

avatar
Hola manu, ya tengo la base completada(finalmente -.-" realmente odio el ace) XD
Lo que necesito que me hagas un boceto de como quieres que quede la ventana ^^ Algo sencillo.
Una vez que lea tu respuesta, cuenta 10min y pongo el pedido completo XD
Saludos,
¥oukai

rpgmanumaker

avatar
Um... no me importa como quede... confío en tu gran experiencia y sabiduría... para hacerlo XD.
Hazla como quieras, pero tal vez que se muestre arriba del rectángulo de comandos de la party/actor... o donde quieras XD.

alex.fayula

avatar
Hola de nuevo youkai, bueno mi pedido es sencillo. Quiero ver que tal queda la batalla con la Window Battle Status transparente. Por lo que veo en el script original para el VXAce no aparece una opción para delimitar la opacidad de la ventana. Entonces me gustaría que añadieras una opción que me permita cambiarle la opacidad a dicha ventana (de tal forma que se vean todos los contenidos pero la ventana no salga)

Si necesitas el script original dímelo y lo subo.

Un saludo youkai!

youkai

avatar
Hola alex, si es el sistema por defecto del maker no necesito que lo pongas, pero si fuese algun otro CBS, es necesario que lo pongas.

Manu...subestime al Ace XD Despues de todo no es tan sencillo agregarle las cosas a la ventana. Por eso odio el ace...tiene las cosas "demasiado" organizadas. XD

Saludos,
¥oukai

alex.fayula

avatar
es el original, uso algún que otro script de batalla pero no le afecta a la ventana de estado de batalla, ya que modificando los parametros del script original puedo moverla de sitio y cambiarle el tamaño, lo que no puedo es cambiarle la opacidad ya que no viene la opción.

si viera que no es compatible o algo ya te lo diría, aunque lo dudo.

Gracias de antemano!

youkai

avatar
Hola alex, aqui tienes tu pedido listo. En las varaibles del modulo Youkai vienen los valores de opacidad y el nombre de la variable indica para que ventana es. Reduje un poco el nombre porque...ya sabes, vagancia. XD
Código:
module Youkai
  Status_win = 160
  Party_comnd_win = 160
  Actor_comnd_win = 160
  Actor_win = 160
  Enemy_win = 160
end

class Scene_Battle < Scene_Base
  alias youkai_create_status_window create_status_window
  alias youkai_create_party_command_window create_party_command_window
  alias youkai_create_actor_command_window create_actor_command_window
  alias youkai_create_actor_window create_actor_window
  alias youkai_create_enemy_window create_enemy_window
 
  def create_status_window
    youkai_create_status_window
    @status_window.opacity = Youkai::Status_win
  end
  #--------------------------------------------------------------------------
  # ● パーティコマンドウィンドウの作成
  #--------------------------------------------------------------------------
  def create_party_command_window
    youkai_create_party_command_window
    @party_command_window.opacity = Youkai::Party_comnd_win
  end
  #--------------------------------------------------------------------------
  # ● アクターコマンドウィンドウの作成
  #--------------------------------------------------------------------------
  def create_actor_command_window
    youkai_create_actor_command_window
    @actor_command_window.opacity = Youkai::Actor_comnd_win
  end
 
  def create_actor_window
    youkai_create_actor_window
    @actor_window.opacity = Youkai::Actor_win
  end
  #--------------------------------------------------------------------------
  # ● 敵キャラウィンドウの作成
  #--------------------------------------------------------------------------
  def create_enemy_window
    youkai_create_enemy_window
    @enemy_window.opacity = Youkai::Enemy_win
  end
end
Saludos,
¥oukai

alex.fayula

avatar
Muchas gracias youkai, es exactamente lo que buscaba.

Trabajo excelente como siempre!
Un saludo!

youkai

avatar
Manu!! Finalmente encontré el tiempo y la paciencia para entenderme con el ace y llegar a algo ^^
Esta no es mi versión final, es solo para que la evalúes y me digas que te parece ya que como no me diste referencia...estoy haciendo las cosas del aire. Recuerda que al que le tiene que gustar es a ti no a mi. XD

Si quieres cambiar la tecla que llame la ventana, la cambias en el módulo.
Código:
module Youkai
  Button = Input::A
end

class Window_SkillInfo < Window_Base
  def initialize
    super(0,192,Graphics.width, Graphics.height - 192)
    @skill = nil
  end
 
  def refresh
    self.contents.clear
    x = 4
    draw_item_name(@skill, 192, 0, true, width)
    # -----------------------------------------------
    spend = @skill.mp_cost == 0 ? [tp_cost_color, @skill.tp_cost.to_s + "TP"] :
    [mp_cost_color, @skill.mp_cost.to_s + "MP"]
    self.contents.draw_text(x, 32, 160, 32, "Consume: ")
    self.contents.font.color = spend[0]
    draw_text(x+text_size("Consume: ").width, 32, 64, 32, spend[1])
    self.contents.font.color = normal_color
    self.contents.draw_text(x,64,160,32,"Fórmula:")
    self.contents.font.size = 20
    self.contents.draw_text(x,96,200,32,formula)
    # -----------------------------------------------
    x = 208
    self.contents.draw_text(x, 32, 160, 32, "Estados que causa:")
    w_text1 = text_size("Estados que causa:").width
    self.contents.draw_text(x, 64, 160, 32, "Estados que quita:")
    x1 = x2 = x
    @skill.effects.each{|effect|
    if effect.code == 21
      state = $data_states[effect.data_id]
      p_c = 255 * effect.value1
      draw_state_icon(state.icon_index, x1 + w_text1 + 4, 32, p_c)
      x1 += 24
    elsif effect.code == 22
      state = $data_states[effect.data_id]
      p_c = 255 * effect.value1
      draw_state_icon(state.icon_index, x2 + w_text1 + 4, 64, p_c)
      x2 += 24
    end}
  end
 
  def draw_state_icon(icon_index, x, y, per_cent)
    bitmap = Cache.system("Iconset")
    rect = Rect.new(icon_index % 16 * 24, icon_index / 16 * 24, 24, 24)
    contents.blt(x, y, bitmap, rect, per_cent)
  end
 
  def formula
    form = @skill.damage.formula
    return "-------" if form == "0"
    if form.include?("a.") && form.include?("b.")
      result = form.gsub(/(a\.)+/) { "user." }
      result.gsub!(/(b\.)+/) { "target." }
      return result
    end
    return form.gsub(/(a\.)+/) { "user." } if form.include?("a.")
    return form.gsub(/(b\.)+/) { "target." } if form.include?("b.")
  end
 
  def skill=(skill)
    @skill = skill
    refresh
  end
end

#==============================================================================
# ■ Scene_Skill
#------------------------------------------------------------------------------
#  スキル画面の処理を行うクラスです。処理共通化の便宜上、スキルも「アイテム」
# として扱っています。
#==============================================================================

class Scene_Skill < Scene_ItemBase
  #--------------------------------------------------------------------------
  # ● 開始処理
  #--------------------------------------------------------------------------
  def start
    super
    create_help_window
    create_command_window
    create_status_window
    create_item_window
    create_skillinfo_window
  end
 
  def create_skillinfo_window
    @skillinfo_window = Window_SkillInfo.new
    @skillinfo_window.visible = false
    @skillinfo_window.viewport = @viewport
  end
 
  def update
    super
    if Input.trigger?(Youkai::Button)
      update_skillinfo if @item_window.item
    end
    if Input.trigger?(Input::B) && @skillinfo_window.visible
      @skillinfo_window.visible = false
      @item_window.active = true
      @item_window.visible = true
      return
    end
  end
 
  def update_skillinfo
    if !@skillinfo_window.visible
      @skillinfo_window.skill = @item_window.item
      @skillinfo_window.visible = true
      @item_window.active = false
      @item_window.visible = false
      return
    else
      @skillinfo_window.visible = false
      @item_window.active = true
      @item_window.visible = true
      return
    end
  end
  #--------------------------------------------------------------------------
  # ● スキルの使用者を取得
  #--------------------------------------------------------------------------
  def user
    @actor
  end
  #--------------------------------------------------------------------------
  # ● コマンド[スキル]
  #--------------------------------------------------------------------------
  def command_skill
    @item_window.activate
    @item_window.select_last
  end
  #--------------------------------------------------------------------------
  # ● アイテム[決定]
  #--------------------------------------------------------------------------
  def on_item_ok
    @actor.last_skill.object = item
    determine_item
  end
  #--------------------------------------------------------------------------
  # ● アイテム[キャンセル]
  #--------------------------------------------------------------------------
  def on_item_cancel
    @item_window.unselect
    @command_window.activate
  end
  #--------------------------------------------------------------------------
  # ● アイテム使用時の SE 演奏
  #--------------------------------------------------------------------------
  def play_se_for_item
    Sound.play_use_skill
  end
  #--------------------------------------------------------------------------
  # ● アイテムの使用
  #--------------------------------------------------------------------------
  def use_item
    super
    @status_window.refresh
    @item_window.refresh
  end
  #--------------------------------------------------------------------------
  # ● アクターの切り替え
  #--------------------------------------------------------------------------
  def on_actor_change
    @command_window.actor = @actor
    @status_window.actor = @actor
    @item_window.actor = @actor
    @command_window.activate
  end
end
Como dije, no fue jamón hacerla XDD Pero lo mas complicado de insertar(la formula) ya esta dentro, por lo que el resto si que es cosa sencilla. Te recuerdo: si deseas hacerle cambio a las posiciones de las cosas o si quieres agregar algo mas, por favor, DÍMELO!! XDD

rpgmanumaker

avatar
Bueno, pues me da un pequeño fallo...
Dice: "line 35 nomethodeerror occurred"
undefined mode 'icon_index' for nil:nilclass. Espero que no sea muy difícil de solucionar.
Am... otra cosa, podrías hacer que la ventana también saliera en la pantalla de pelea... era hay donde quería que saliera principalmente... siento las molestias.

alex.fayula

avatar
Youkai necesito que me realices un pedido que ya te pedí en su día. Resulta que necesito actualizar un sistema de batalla, ya que sino me producía un bug. Entonces al actualizarlo ha vuelto al salir el problema:

Resulta que, tal cual tengo el script configurado no se me permite mover la window_actorCommand, y está me sale pegada al borde inferior izquierdo, tapandome el nombre del heroe.

La altura es la correcta pero quiero que salga al lado derecho



Me remito a mi mensaje anterior para decirte los scripts que son (se necesitan 3, los 2 primeros son para que funcione con el que tengo el problema. Te los dejo en orden.

Basic Module:

https://dl.dropbox.com/u/27014140/Scripts/Victor%20Engine%20-%20Basic%20Module.txt

Animated Battle:

https://dl.dropbox.com/u/27014140/Scripts/Victor%20Engine%20-%20Animated%20Battle.txt

Y Active time battle (el del problema en sí)

https://dl.dropbox.com/u/27014140/Scripts/Victor%20Engine%20-%20Active%20Time%20Battle.txt

Lo supiste solucionar una vez así que no creo que te suponga un gran problema jejej

PD: Si quieres me podrías decir que cambiaste (si no es muy complicado claro) para que, en caso de tener que actualizar de nuevo o similar pueda hacerlo yo (creeme que lo he intentado) y no darte la tabarra.

Gracias de nuevo!

youkai

avatar
alex: en el 3er script busca de la linea 1620 a la 1629 esta el metodo que tienes que modificar. Para cambiarle la posicion a la ventana busca:
Código:
@actor_command_window.x =
Y despues del igual ponle el valor que desees ^^
Te vas a encontrar 2 lineas con @actor_command_window.x dentro de una condicional( if ) Te recomendo que pongas lo mismo en las 2 lineas, de todas formas el script es para ti y asi es como lo quieres Ópalo Guiño

manu: El error no entiendo por que es.... :S A mi me funciona bien, pero de todas formas te voy a explicar la teoria del error.
Al parecer la linea que obtiene el status que modificaria la skill devuelve nil. La razon exacta no te la puedo dar....dime tu que has hecho con el skill pensando a partir del pedazo de codigo este que te pongo:
Código:
    @skill.effects.each{|effect|
    if effect.code == 21
      state = $data_states[effect.data_id] # Esta es la que produce el error
      p_c = 255 * effect.value1
      draw_state_icon(state.icon_index, x1 + w_text1 + 4, 32, p_c) # esta es la 35 xD
      x1 += 24
    elsif effect.code == 22
      state = $data_states[effect.data_id]
      p_c = 255 * effect.value1
      draw_state_icon(state.icon_index, x2 + w_text1 + 4, 64, p_c)
      x2 += 24
    end}
Dime cuales son los efectos que le pusiste a la skill con la cual te dio el error, aunque eso no deberia de afectar porque el script esta preparado para que solo coja los comandos de Agregar Estado y Quitar Estado.

EDIT: Acabo de ver el por que del problema ^^ Es que tienes puesto que agregue el estado de ataque normal(no se como funciona, pero bueno)
Para arreglar el problema ese cambia la linea 32:
Código:
    if effect.code == 21
por:
Código:
    if effect.code == 21 && effect.data_id != 0
Con eso, si la habilidad agrega ese estado(ataque normal) no se va a mostrar en la ventana. Si quieres que se muestre, dime que hace eso en el juego Ópalo Sonrisa Grande
Saludos,
¥oukai

Contenido patrocinado


Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje [Página 3 de 5.]

Ir a la página : Precedente  1, 2, 3, 4, 5  Siguiente

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