Mundo Maker
¡Bienvenid@ a Mundo Maker!

¿Quieres aprender todo sobre el RPG Maker?



Regístrate y forma parte de Mundo Maker.

[Semi-Colectivo] [ACE] Hidden Class - Window

Ver el tema anterior Ver el tema siguiente Ir abajo

[Semi-Colectivo] [ACE] Hidden Class - Window

Mensaje por Wecoc el 2014-05-09, 01:48

Existen varias clases reescritas de Window para XP, VX o ambos a la vez. Pero hasta dónde sé no hay para Ace, y varias cosas van distintas. Así que bueno, de momento he pasado la Hidden Class Window de Poccil para XP, a Ace. Salen cosas raras pero es un comienzo supongo (también he hecho un poco por mi parte...)

Sí, es prácticamente como un colectivo de esos pero más "mascado" xDD ¡¡Cuanto más gente colabore mejor, así que venga scripters, animaos!!

Código:
class WindowCursorRect < Rect
  attr_reader :x
  attr_reader :y
  attr_reader :width
  attr_reader :height

  def initialize(window)
    @window=window
    @x = 0
    @y = 0
    @width = 0
    @height = 0
  end

  def empty
    needupdate=@x != 0 || @y != 0 || @width != 0 || @height != 0
    if needupdate
      @x = 0
      @y = 0
      @width = 0
      @height = 0
      @window.width = @window.width
    end
  end

  def isEmpty?
    return @x == 0 && @y == 0 && @width == 0 && @height == 0
  end

  def set(*args)
    if args[0].is_a?(Rect)
      x = args[0].x
      y = args[0].y
      width = args[0].width
      height = args[0].height
    else
      x = args[0]
      y = args[1]
      width = args[2]
      height = args[3]
    end
    if @x != x || @y != y || @width != width || @height != height
      @x = x
      @y = y
      @width = width
      @height = height
      @window.width = @window.width
    end
  end

  def height=(value)
    @height = value
    @window.width = @window.width
  end

  def width=(value)
    @width = value
    @window.width = @window.width
  end

  def x=(value)
    @x = value
    @window.width = @window.width
  end
 
  def y=(value)
    @y = value
    @window.width = @window.width
  end
end

class Window
  attr_reader :tone
  attr_reader :color
  attr_reader :blend_type
  attr_reader :contents_blend_type
  attr_reader :viewport
  attr_reader :contents
  attr_reader :ox
  attr_reader :oy
  attr_reader :x
  attr_reader :y
  attr_reader :z
  attr_reader :blinds_tone
  attr_reader :width
  attr_reader :height
  attr_reader :active
  attr_reader :pause
  attr_reader :opacity
  attr_reader :back_opacity
  attr_reader :contents_opacity
  attr_reader :blinds_opacity
  attr_reader :visible
  attr_reader :blinds_visible
  attr_reader :cursor_rect
  attr_reader :openness
  attr_reader :stretch
  attr_reader :blinds_stretch
  attr_reader :padding
  attr_reader :padding_bottom
  attr_reader :cursor_blink
  attr_reader :arrows_visible
 
  def windowskin
    @_windowskin
  end
 
  def initialize(x, y, width, height)
    @sprites = {}
    @spritekeys = [
      "back", "blinds",
      "corner0", "side0", "scroll0",
      "corner1", "side1", "scroll1",
      "corner2", "side2", "scroll2",
      "corner3", "side3", "scroll3",
      "cursor", "contents", "pause"
    ]
    @sidebitmaps = [nil, nil, nil, nil]
    @cursorbitmap = nil
    @viewport = nil
    for i in @spritekeys
      @sprites[i] = Sprite.new(@viewport)
    end
    @disposed = false
    @tone = Tone.new(0, 0, 0)
    @blinds_tone = Tone.new(0, 0, 0)
    @color = Color.new(0, 0, 0, 0)
    @blankcontents = Bitmap.new(1, 1)
    @contents = @blankcontents
    @_windowskin = nil
    @x = x
    @y = y
    @width = width
    @height = height
    @openness = 255
    @ox = 0
    @oy = 0
    @z = 0
    @padding = 12
    @padding_bottom = 12
    @stretch = true
    @blinds_stretch = false
    @blinds_visible = true
    @visible = true
    @active = true
    @arrows_visible = false
    @blend_type = 0
    @contents_blend_type = 0
    @opacity = 255
    @back_opacity = 180
    @contents_opacity = 255
    @blinds_opacity = 60
    @cursor_rect = WindowCursorRect.new(self)
    @cursor_blink = true
    @cursorblink = 0
    @cursoropacity = 255
    @pause = false
    @pauseopacity = 255
    @pauseframe = 0
    privRefresh(true)
  end
 
  def dispose
    if !self.disposed?
      for i in @sprites
        i[1].dispose if i[1]
        @sprites[i[0]] = nil
      end
      for i in 0...@sidebitmaps.length
        @sidebitmaps[i].dispose if @sidebitmaps[i]
        @sidebitmaps[i] = nil
      end
      @blankcontents.dispose
      @cursorbitmap.dispose if @cursorbitmap
      @backbitmap.dispose if @backbitmap
      @blindsbitmap.dispose if @blindsbitmap
      @sprites.clear
      @sidebitmaps.clear
      @_windowskin = nil
      @_contents = nil
      @disposed = true
    end
  end
 
  def padding=(value)
    @padding = value
    @padding_bottom = value
    privRefresh
  end
 
  def padding_bottom=(value)
    @padding_bottom = value
    privRefresh
  end
 
  def open?
    return @openness == 255
  end
 
  def close?
    return @openness == 0
  end
 
  def move(x, y, width, height)
    self.x = x
    self.y = y
    self.width = width
    self.height = height
  end
 
  def arrows_visible=(value)
    @arrows_visible = value
    privRefresh
  end
 
  def openness=(value)
    @openness = value
    @openness = 0 if @openness < 0
    @openness = 255 if @openness > 255
    privRefresh
  end
 
  def stretch=(value)
    @stretch = value
    privRefresh(true)
  end
 
  alias back_stretch stretch unless $@
  alias back_stretch= stretch= unless $@
 
  def blinds_stretch=(value)
    @blinds_stretch = value
    privRefresh(true)
  end
 
  def cursor_blink=(value)
    @cursor_blink = value
    privRefresh(true)
  end
 
  def blinds_visible=(value)
    @blinds_visible = value
    privRefresh
  end
 
  def visible=(value)
    @visible = value
    privRefresh
  end
 
  def viewport=(value)
    @viewport = value
    for i in @spritekeys
      @sprites[i].dispose
      if @sprites[i].is_a?(Sprite)
        @sprites[i] = Sprite.new(@viewport)
      elsif @sprites[i].is_a?(Plane)
        @sprites[i] = Plane.new(@viewport)
      else
        @sprites[i] = nil
      end
    end
    privRefresh(true)
  end

  def z=(value)
    @z = value
    privRefresh
  end
 
  def disposed?
    return @disposed
  end
 
  def contents=(value)
    @contents = value
    privRefresh
  end
 
  def windowskin=(value)
    @_windowskin = value
    privRefresh(true)
  end
 
  def ox=(value)
    @ox = value
    privRefresh
  end
 
  def active=(value)
    @active = value
    privRefresh(true)
  end
 
  def cursor_rect=(value)
    if !value
      @cursor_rect.empty
    else
      @cursor_rect.set(value.x, value.y, value.width, value.height)
    end
  end

  def oy=(value)
    @oy = value
    privRefresh
  end

  def width=(value)
    @width = value
    privRefresh(true)
  end

  def height=(value)
    @height = value
    privRefresh(true)
  end

  def pause=(value)
    @pause = value
    @pauseopacity = 0 if !value
    privRefresh
  end

  def x=(value)
    @x = value
    privRefresh
  end

  def y=(value)
    @y = value
    privRefresh
  end

  def opacity=(value)
    @opacity = value
    @opacity = 0 if @opacity < 0
    @opacity = 255 if @opacity > 255
    privRefresh
  end

  def back_opacity=(value)
    @back_opacity = value
    @back_opacity = 0 if @back_opacity < 0
    @back_opacity = 255 if @back_opacity > 255
    privRefresh
  end

  def contents_opacity=(value)
    @contents_opacity = value
    @contents_opacity = 0 if @contents_opacity < 0
    @contents_opacity = 255 if @contents_opacity > 255
    privRefresh
  end

  def blinds_opacity=(value)
    @blinds_opacity = value
    @blinds_opacity = 0 if @blinds_opacity < 0
    @blinds_opacity = 255 if @blinds_opacity > 255
    privRefresh
  end
 
  def tone=(value)
    @tone = value
    @blinds_tone = value
    privRefresh(true)
  end

  def blinds_tone=(value)
    @blinds_tone = value
    privRefresh(true)
  end
 
  def color=(value)
    @color = value
    privRefresh(true)
  end

  def blend_type=(value)
    @blend_type = value
    privRefresh(true)
  end

  def flash(color,duration)
    return if disposed?
    for i in @sprites
      i[1].flash(color, duration)
    end
  end

  def update
    return if disposed?
    mustchange=false
    if @active
      if @cursor_blink
        if @cursorblink == 0
          @cursoropacity -= 8
          @cursorblink = 1 if @cursoropacity <= 128
        else
          @cursoropacity += 8
          @cursorblink = 0 if @cursoropacity >= 255
        end
        mustchange = true if !@cursor_rect.isEmpty?
      else
        mustchange = true if @cursoropacity != 255
        @cursoropacity = 255
      end
    else
      mustchange = true if @cursoropacity != 128
      @cursoropacity = 128
    end
    if @pause
      @pauseframe = (Graphics.frame_count / 8) % 4
      @pauseopacity = [@pauseopacity + 64, 255].min
      mustchange=true
    end
    privRefresh if mustchange
    for i in @sprites
      i[1].update
    end
  end

private

  def ensureBitmap(bitmap,dwidth,dheight)
    if !bitmap || bitmap.disposed? || bitmap.width < dwidth || bitmap.height < dheight
      bitmap.dispose if bitmap
      bitmap = Bitmap.new([1, dwidth].max, [1, dheight].max)
    end
    return bitmap
  end

  def tileBitmap(dstbitmap, dstrect, srcbitmap, srcrect)
    return if !srcbitmap || srcbitmap.disposed?
    left = dstrect.x
    top = dstrect.y
    y = 0
    loop do break unless y < dstrect.height
      x = 0
      loop do break unless x < dstrect.width
        dstbitmap.blt(x + left, y + top, srcbitmap, srcrect)
        x += srcrect.width
      end
      y += srcrect.height
    end
  end

  def privRefresh(changeBitmap=false)
    return if self.disposed?
    backopac = self.back_opacity * self.opacity / 255
    blindopac = [self.blinds_opacity, self.back_opacity].min
    blindopac *= self.opacity / 255
    contopac = self.contents_opacity
    cursoropac = @cursoropacity * contopac / 255
    for i in 0...4
      @sprites["corner#{i}"].bitmap = @_windowskin
      @sprites["scroll#{i}"].bitmap = @_windowskin
    end
    @sprites["pause"].bitmap = @_windowskin
    @sprites["contents"].bitmap = @contents
    blank_tone = Tone.new(0, 0, 0)
    if @_windowskin && !@_windowskin.disposed?
      for i in 0...4
        @sprites["corner#{i}"].opacity = @opacity
        @sprites["corner#{i}"].tone = blank_tone
        @sprites["corner#{i}"].color = @color
        @sprites["corner#{i}"].blend_type = @blend_type
        @sprites["corner#{i}"].visible = @visible
        @sprites["side#{i}"].opacity = @opacity
        @sprites["side#{i}"].tone = blank_tone
        @sprites["side#{i}"].color = @color
        @sprites["side#{i}"].blend_type = @blend_type
        @sprites["side#{i}"].visible = @visible
        @sprites["scroll#{i}"].opacity = @opacity
        @sprites["scroll#{i}"].tone = blank_tone
        @sprites["scroll#{i}"].blend_type = @blend_type
        @sprites["scroll#{i}"].color = @color
        @sprites["scroll#{i}"].visible = @visible
      end
      @sprites["cursor"].color = @color
      @sprites["pause"].color = @color
     
      @sprites["back"].color = @color
      @sprites["back"].tone = @tone
      @sprites["back"].blend_type = @blend_type
     
      @sprites["blinds"].color = @color
      @sprites["blinds"].tone = @blinds_tone
      @sprites["blinds"].blend_type = @blend_type
     
      @sprites["contents"].color = @color
      @sprites["contents"].tone = blank_tone
      @sprites["contents"].blend_type = @contents_blend_type
     
      @sprites["back"].opacity = backopac
      @sprites["blinds"].opacity = blindopac
      @sprites["contents"].opacity = contopac
      @sprites["cursor"].opacity = cursoropac
      @sprites["pause"].opacity = @pauseopacity
      @sprites["back"].visible = @visible
      @sprites["blinds"].visible = @visible && @blinds_visible
      @sprites["contents"].visible = @visible && @openness == 255
      @sprites["pause"].visible = @visible && @pause
      @sprites["cursor"].visible = @visible && @openness == 255
      hascontents=(@contents && !@contents.disposed?)
      @sprites["scroll0"].visible = @arrows_visible
      @sprites["scroll1"].visible = @arrows_visible
      @sprites["scroll2"].visible = @arrows_visible
      @sprites["scroll3"].visible = @arrows_visible
    else
      for i in 0...4
        @sprites["corner#{i}"].visible = false
        @sprites["side#{i}"].visible = false
        @sprites["scroll#{i}"].visible = false
      end
      @sprites["contents"].visible = @visible && @openness == 255
      @sprites["contents"].color = @color
      @sprites["contents"].tone = @tone
      @sprites["contents"].blend_type = @contents_blend_type
      @sprites["contents"].opacity = contopac
      @sprites["back"].visible = false
      @sprites["blinds"].visible = false
      @sprites["pause"].visible = false
      @sprites["cursor"].visible = false
    end
    for i in @sprites
      i[1].z=@z
    end
    @sprites["cursor"].z= @z + 1
    @sprites["contents"].z= @z + 2
    @sprites["pause"].z= @z + 2
    trimX = 64
    trimY = 0
    backRect =  Rect.new(0,  0, 64, 64)
    blindsRect = Rect.new(0, 64, 64, 64)
   
    @sprites["corner0"].src_rect.set(trimX,      trimY + 0,  16, 16)
    @sprites["corner1"].src_rect.set(trimX + 48, trimY + 0,  16, 16)
    @sprites["corner2"].src_rect.set(trimX,      trimY + 48, 16, 16)
    @sprites["corner3"].src_rect.set(trimX + 48, trimY + 48, 16, 16)
    @sprites["scroll0"].src_rect.set(trimX + 24, trimY + 16, 16,  8) # up
    @sprites["scroll3"].src_rect.set(trimX + 24, trimY + 40, 16,  8) # down
    @sprites["scroll1"].src_rect.set(trimX + 16, trimY + 24,  8, 16) # left
    @sprites["scroll2"].src_rect.set(trimX + 40, trimY + 24,  8, 16) # right
   
    cursorX = 64
    cursorY = 64
   
    sideRects=[
      Rect.new(trimX + 16, trimY + 0, 32, 16),
      Rect.new(trimX, trimY + 16, 16, 32),
      Rect.new(trimX + 48, trimY + 16, 16, 32),
      Rect.new(trimX + 16,trimY + 48, 32, 16)
    ]
    if @width > 32 && @height > 32
      @sprites["contents"].src_rect.set(@ox, @oy, @width - @padding, @height - @padding_bottom)
    else
      @sprites["contents"].src_rect.set(0, 0, 0, 0)
    end
    pauseRects=[
      trimX + 32,trimY + 64,
      trimX + 48,trimY + 64,
      trimX + 32,trimY + 80,
      trimX + 48,trimY + 80,
    ]
    pauseWidth = 16
    pauseHeight = 16
    @sprites["pause"].src_rect.set(
      pauseRects[@pauseframe * 2],
      pauseRects[@pauseframe * 2 + 1],
      pauseWidth,pauseHeight
    )
    @sprites["pause"].x = @x + (@width / 2) - (pauseWidth / 2)
    @sprites["pause"].y = @y + @height - @padding #16 refers to skin margin
    @sprites["contents"].x = @x + @padding
    @sprites["contents"].y = @y + @padding
    @sprites["corner0"].x = @x
    @sprites["corner0"].y = @y
    @sprites["corner1"].x = @x + @width - 16
    @sprites["corner1"].y = @y
    @sprites["corner2"].x = @x
    @sprites["corner2"].y = @y + @height - 16
    @sprites["corner3"].x = @x + @width - 16
    @sprites["corner3"].y = @y + @height - 16
    @sprites["side0"].x = @x + 16
    @sprites["side0"].y = @y
    @sprites["side1"].x = @x
    @sprites["side1"].y = @y + 16
    @sprites["side2"].x = @x + @width - 16
    @sprites["side2"].y = @y + 16
    @sprites["side3"].x = @x + 16
    @sprites["side3"].y = @y + @height - 16
    @sprites["scroll0"].x = @x + @width / 2 - 8
    @sprites["scroll0"].y = @y + 8
    @sprites["scroll1"].x = @x + 8
    @sprites["scroll1"].y = @y + @height / 2 - 8
    @sprites["scroll2"].x = @x + @width - 16
    @sprites["scroll2"].y = @y + @height / 2 - 8
    @sprites["scroll3"].x = @x + @width / 2 - 8
    @sprites["scroll3"].y = @y + @height - 16
    @sprites["back"].x = @x + 2
    @sprites["back"].y = @y + 2
    @sprites["blinds"].x = @x + 2
    @sprites["blinds"].y = @y + 2
    @sprites["cursor"].x = @x + @padding + @cursor_rect.x
    @sprites["cursor"].y = @y + @padding + @cursor_rect.y
    if changeBitmap && @_windowskin && !@_windowskin.disposed?
      width = @cursor_rect.width
      height = @cursor_rect.height
      if width > 0 && height > 0
        cursorrects = [
          # sides
          Rect.new(cursorX + 8, cursorY + 0, 16, 16),
          Rect.new(cursorX + 0, cursorY + 8, 16, 16),
          Rect.new(cursorX + 16, cursorY + 8, 16, 16),
          Rect.new(cursorX + 8, cursorY + 16, 16, 16),
          # corners
          Rect.new(cursorX + 0, cursorY + 0, 16, 16),
          Rect.new(cursorX + 16, cursorY + 0, 16, 16),
          Rect.new(cursorX + 0, cursorY + 16, 16, 16),
          Rect.new(cursorX + 16, cursorY + 16, 16, 16),
          # back
          Rect.new(cursorX + 16, cursorY + 16, 1, 1)
        ]
        m = 16
        fm = 32
        @cursorbitmap = ensureBitmap(@cursorbitmap, width, height)
        @cursorbitmap.clear
        @sprites["cursor"].bitmap = @cursorbitmap
        @sprites["cursor"].src_rect.set(0, 0, width, height)
        rect = Rect.new(m, m, width - fm, height - fm)
        @cursorbitmap.stretch_blt(rect, @_windowskin, cursorrects[8])
        @cursorbitmap.blt(0, 0, @_windowskin, cursorrects[4])
        @cursorbitmap.blt(width - m, 0, @_windowskin, cursorrects[5])
        @cursorbitmap.blt(0, height - m, @_windowskin, cursorrects[6])
        @cursorbitmap.blt(width - m, height - m, @_windowskin, cursorrects[7])
        rect = Rect.new(m, 0, width - fm, m)
        @cursorbitmap.stretch_blt(rect, @_windowskin, cursorrects[0])
        rect = Rect.new(0, m, m, height - fm)
        @cursorbitmap.stretch_blt(rect, @_windowskin, cursorrects[1])
        rect = Rect.new(width - m, m, m, height - fm)
        @cursorbitmap.stretch_blt(rect, @_windowskin, cursorrects[2])
        rect = Rect.new(m, height - m, width - fm, m)
        @cursorbitmap.stretch_blt(rect, @_windowskin, cursorrects[3])
      else
        @sprites["cursor"].visible = false
        @sprites["cursor"].src_rect.set(0, 0, 0, 0)
      end
      for i in 0..3
        dwidth=(i==0||i==3) ? @width - 32 : 16
        dheight=(i==0||i==3) ? 16 : @height - 32
        @sidebitmaps[i] = ensureBitmap(@sidebitmaps[i], dwidth, dheight)
        @sprites["side#{i}"].bitmap = @sidebitmaps[i]
        @sprites["side#{i}"].src_rect.set(0, 0, dwidth, dheight)
        @sidebitmaps[i].clear
        if sideRects[i].width > 0 && sideRects[i].height > 0
          @sidebitmaps[i].stretch_blt(@sprites["side#{i}"].src_rect,
          @_windowskin,sideRects[i])
        end
      end
      backwidth = @width - 4
      backheight = @height - 4
      if backwidth > 0 && backheight > 0
        @backbitmap = nil
        @blindsbitmap = nil
        @backbitmap = ensureBitmap(@backbitmap, backwidth, backheight)
        @sprites["back"].bitmap = @backbitmap
        @sprites["back"].src_rect.set(0, 0, backwidth, backheight)
        @backbitmap.clear
        if @stretch
          @backbitmap.stretch_blt(@sprites["back"].src_rect, @_windowskin, backRect)
        else
          tileBitmap(@backbitmap,@sprites["back"].src_rect, @_windowskin, backRect)
        end
        if blindsRect
          @blindsbitmap = ensureBitmap(@blindsbitmap, backwidth, backheight)
          @sprites["blinds"].bitmap = @blindsbitmap
          @sprites["blinds"].src_rect.set(0, 0, backwidth, backheight)
          if @blinds_stretch == true
            @blindsbitmap.stretch_blt(@sprites["blinds"].src_rect, @_windowskin, blindsRect)
          else
            tileBitmap(@blindsbitmap,@sprites["blinds"].src_rect, @_windowskin, blindsRect)
          end
        end
      else
        @sprites["back"].visible = false
        @sprites["back"].src_rect.set(0, 0, 0, 0)
        @sprites["blinds"].visible = false
        @sprites["blinds"].src_rect.set(0, 0, 0, 0)
      end
    end
    if @openness != 255
      opn = @openness / 255.0
      for k in @spritekeys
        sprite = @sprites[k]
        ratio = (@height <= 0) ? 0 : (sprite.y - @y) * 1.0 / @height
        sprite.zoom_y=opn
        sprite.oy = 0
        sprite.y = (@y + (@height / 2.0) + (@height * ratio * opn) - (@height / 2 * opn)).floor
      end
    else
      for k in @spritekeys
        sprite = @sprites[k]
        sprite.zoom_y = 1.0
      end
    end
    i = 0
    for k in @spritekeys
      sprite = @sprites[k]
      y = sprite.y
      sprite.y = i
      sprite.oy = (sprite.zoom_y <= 0) ? 0 : (i - y) / sprite.zoom_y
    end
  end
end


¿Qué hay que hacer?

Para quien no lo haya entendido, lo que habría que hacer es lo siguiente:

Probar todas las funcionalidades de las ventanas por defecto en Ace (la mayoría estan en la ayuda), y luego probar las mismas pero usando el script. En el probable caso de que no quede igual, pues es cuestión de arreglarlo o bien al menos notificarlo aquí. Por ejemplo, usando el script el cursor se ve raro, como con doble transparencia en medio. Justamente eso lo arreglé hace tiempo para los Multiple Cursor en VX así que será lo mismo que hiciera allí, pero con lo demás (posición de las flechitas, funcionamiento de openness, padding ...... pues lo mismo.

¿De qué serviría eso?

Pues para crear nuevas funciones a las ventanas del Ace más fácilmente, cosa que los otros makers ya tienen. Editar cualquier tontería de la windowskin por ahora; desde la opacidad de los cursores hasta la posición de las flechas de la ventana, es un infierno y algunas cosas directamente no son posibles... con el script eso ya sería distinto.

¿Puedo participar sin ser un scripter?

Bueno, pues sí. Puedes ser tester de los scripts, eso puede ser de bastante ayuda. Como dije, notificar las diferencias entre con/sin script es una de las cosas a hacer.

¿Y yo qué gano participando?

Pues mi respeto y mi gratitud. Y la de Orochii (?) xD
No saldrás en los créditos del script porque el script tendrá, como los demás scripts colectivos, un agradecimiento global al foro Mundo Maker... Así que participando ayudas a la actividad del foro, y a la propia comunidad.

Eso sí, si ayudaras bastante me plantearía darte algún premio por el esfuerzo.

¿Qué pasa con los demás colectivos de scripts del foro?

¡Que siguen abiertos! Pasa que son más complicados que éste, y especialmente el de Hextiles está en un punto muerto, así que lo entiendo... Entiendo que no les hagáis ni puñetero caso xD ¡Pero éste con la mitad de esfuerzo lo sacamos, gente!

¡A participar!


Última edición por Wecoc el 2014-05-17, 15:21, editado 1 vez
avatar
Wecoc
Administrador
Administrador



Créditos 12211

Gracias : 632

Volver arriba Ir abajo

Re: [Semi-Colectivo] [ACE] Hidden Class - Window

Mensaje por Wecoc el 2014-05-17, 14:54

He actualizado un poco el script. Debería interesaros más, sobretodo a los que usáis VX Ace.

Lista de cosas detectadas que fallan:

- La ventana de Título no se ve (ni idea de por qué)
- El cursor se ve entrecortado a tamaño pequeño.
- No tengo claro que arrows_visible funcione correctamente
- El nuevo tone asignado se va a la porra con refresh (en realidad tampoco va bien por defecto)
- ox y oy funcionan distinto, aunque curiosamente creo que era en el default que iba mal, igualmente con el cursor debería ir y no va
- Algunas cosas relacionadas con las blinds (tramado de rallas que va por encima el fondo de la ventana) solo se actualizan bien tras ser activada la ventana

Lista de cosas nuevas respecto a la ventana default:

- stretch (que es lo mismo que back_stretch) y blinds_stretch
- blend_type y contents_blend_type (recuperado de XP)
- blinds_opacity y blinds_visible
- blinds_tone
- cursor_blink (ponle false para que no parpadee el cursor)
- color
- flash(color, tone)

Pero sobre todo, añade la posibilidad de cambiar las cosas.
avatar
Wecoc
Administrador
Administrador



Créditos 12211

Gracias : 632

Volver arriba Ir abajo

Re: [Semi-Colectivo] [ACE] Hidden Class - Window

Mensaje por orochii el 2014-05-17, 17:27

Creo que para que se vea la ventana de título, necesita el comando de open. Y el de close. Esa ventana empieza con openness=0 si mal no recuerdo. Y bueno, lo revisé hace un rato un poco, y noté que no estaba.

Sin embargo, no dará error porque el método existe en la clase original, y como lo que haces es sobreescribirla...
avatar
orochii
Reportero

0/3

Créditos 7724

Gracias : 436

Volver arriba Ir abajo

Re: [Semi-Colectivo] [ACE] Hidden Class - Window

Mensaje por Wecoc el 2014-05-17, 18:14

Pero Orochii, la ventana de mensaje también tiene open y close y allí funciona bien el openness xD
Aún así yo también creo que será algo de eso, porque no se me ocurre otra explicación...
avatar
Wecoc
Administrador
Administrador



Créditos 12211

Gracias : 632

Volver arriba Ir abajo

Re: [Semi-Colectivo] [ACE] Hidden Class - Window

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.