VX 스크립트

우연히 옛날에 올라온 해상도 스크립트를 봤는데요,

 

쓸만한 스크립트인데 몇가지 오류가 있어서 문해결하여 수정버젼 올립니다.

 

 

main  위에 삽입 하시면 됩니다 ^^;

 

첫 두줄의 640과 480을 각기 원하는 해상도로 바꿔주세요.

 

 

 

 

 

 

 

 

WIDTH = 640
HEIGHT = 480
DELTA_WIDTH   = (WIDTH - 544).abs
DELTA_HEIGHT = (HEIGHT - 416).abs

Graphics.resize_screen(WIDTH, HEIGHT)

class Game_Map
  alias tds_vx_resolution_change_setup_scroll setup_scroll
  def setup_scroll
    tds_vx_resolution_change_setup_scroll   
    @scroll_direction = 2
    @scroll_rest = 0
    @scroll_speed = 4
    @margin_x = (width - 20) * 256 / 2  
    @margin_y = (height - 15) * 256 / 2    
  end 
  alias tds_vx_resolution_change_calc_parallax_x calc_parallax_x
  def calc_parallax_x(bitmap)
    tds_vx_resolution_change_calc_parallax_x(bitmap)   
    if bitmap == nil
      return 0
    elsif @parallax_loop_x
      return @parallax_x / 16
    elsif loop_horizontal?
      return 0
    else
      w1 = bitmap.width - WIDTH
      w2 = @map.width * 32 - WIDTH
      if w1 <= 0 or w2 <= 0
        return 0
      else
        return @parallax_x * w1 / w2 / 8
      end
    end
  end
  alias tds_vx_resolution_change_calc_parallax_y calc_parallax_y 
  def calc_parallax_y(bitmap)
    tds_vx_resolution_change_calc_parallax_y(bitmap)   
    if bitmap == nil
      return 0
    elsif @parallax_loop_y
      return @parallax_y / 16
    elsif loop_vertical?
      return 0
    else
      h1 = bitmap.height - HEIGHT
      h2 = @map.height * 32 - HEIGHT
      if h1 <= 0 or h2 <= 0
        return 0
      else
        return @parallax_y * h1 / h2 / 8
      end
    end
  end
  def scroll_down(distance)
    if loop_vertical?
      @display_y += distance
      @display_y %= @map.height * 256
      @parallax_y += distance
    else
      last_y = @display_y
      @display_y = [@display_y + distance, (height - 15) * 256].min
      @parallax_y += @display_y - last_y
    end
  end
  def scroll_right(distance)
    if loop_horizontal?
      @display_x += distance
      @display_x %= @map.width * 256
      @parallax_x += distance
    else
      last_x = @display_x
      @display_x = [@display_x + distance, (width - 20) * 256].min
      @parallax_x += @display_x - last_x
    end
  end
end

class Game_Player < Game_Character
 
  CENTER_X = (WIDTH / 2 - 16) * 8    
  CENTER_Y = (HEIGHT / 2 - 16) * 8    
  alias tds_vx_resolution_change_center center 
  def center(x, y)
    tds_vx_resolution_change_center(x, y)   
    display_x = x * 256 - CENTER_X                   
    unless $game_map.loop_horizontal?            
      max_x = ($game_map.width - 20) * 256   
      display_x = [0, [display_x, max_x].min].max  
    end
    display_y = y * 256 - CENTER_Y             
    unless $game_map.loop_vertical?                 
      max_y = ($game_map.height - 15) * 256  
      display_y = [0, [display_y, max_y].min].max  
    end
    $game_map.set_display_pos(display_x, display_y)  
  end
end

class Sprite_Base < Sprite
  alias tds_vx_resolution_change_start_animation start_animation 
  def start_animation(animation, mirror = false)
    tds_vx_resolution_change_start_animation(animation, mirror = false)   
    dispose_animation
    @animation = animation
    return if @animation == nil
    @animation_mirror = mirror
    @animation_duration = @animation.frame_max * 4 + 1
    load_animation_bitmap
    @animation_sprites = []
    if @animation.position != 3 or not @@animations.include?(animation)
      if @use_sprite
        for i in 0..15
          sprite = ::Sprite.new(viewport)
          sprite.visible = false
          @animation_sprites.push(sprite)
        end
        unless @@animations.include?(animation)
          @@animations.push(animation)
        end
      end
    end
    if @animation.position == 3
      if viewport == nil
        @animation_ox = WIDTH/ 2
        @animation_oy = HEIGHT / 2
      else
        @animation_ox = viewport.rect.width / 2
        @animation_oy = viewport.rect.height / 2
      end
    else
      @animation_ox = x - ox + width / 2
      @animation_oy = y - oy + height / 2
      if @animation.position == 0
        @animation_oy -= height / 2
      elsif @animation.position == 2
        @animation_oy += height / 2
      end
    end
  end
end


class Spriteset_Map
  def create_viewports
    @viewport1 = Viewport.new(0, 0, WIDTH, HEIGHT)
    @viewport2 = Viewport.new(0, 0, WIDTH, HEIGHT)
    @viewport3 = Viewport.new(0, 0, WIDTH, HEIGHT)
    @viewport2.z = 50
    @viewport3.z = 100
  end
end

class Spriteset_Battle
  def create_viewports
    @viewport1 = Viewport.new(0, 0, WIDTH, HEIGHT)
    @viewport2 = Viewport.new(0, 0, WIDTH, HEIGHT)
    @viewport3 = Viewport.new(0, 0, WIDTH, HEIGHT)
    @viewport2.z = 50
    @viewport3.z = 100
  end
end

class Window_Base < Window
  def x=(x)
    super(x + DELTA_WIDTH / 2)
  end
 
  def y=(y)
    super(y + DELTA_HEIGHT/ 2)
  end
end


class Scene_Battle < Scene_Base
  def create_info_viewport
    @info_viewport = Viewport.new(0, 288, WIDTH, HEIGHT)
    @info_viewport.z = 100
    @status_window = Window_BattleStatus.new
    @party_command_window = Window_PartyCommand.new
    @actor_command_window = Window_ActorCommand.new
    @status_window.viewport = @info_viewport
    @party_command_window.viewport = @info_viewport
    @actor_command_window.viewport = @info_viewport
    @status_window.x = 128
    @actor_command_window.x = 544
    @info_viewport.visible = false
  end
end

class Scene_Item < Scene_Base
   def start
    super
    create_menu_background
    @viewport = Viewport.new(0, 0, WIDTH, HEIGHT)
    @help_window = Window_Help.new
    @help_window.viewport = @viewport
    @item_window = Window_Item.new(0, 56, 544, 360)
    @item_window.help_window = @help_window
    @item_window.active = false
    @target_window = Window_MenuStatus.new(0,  0)
    hide_target_window
  end
 
  def show_target_window(right)
    @item_window.active = false
    width_remain = WIDTH - @target_window.width
    @target_window.x = right ? width_remain : 0
    @target_window.visible = true
    @target_window.active = true
    if right
      @viewport.rect.set(0, 0, width_remain, HEIGHT)
      @viewport.ox = 0
    else
      @viewport.rect.set(@target_window.width, 0, width_remain, HEIGHT)
      @viewport.ox = @target_window.width
    end
  end
 
  def hide_target_window
    @item_window.active = true
    @target_window.visible = false
    @target_window.active = false
    @viewport.rect.set(0, 0, WIDTH, HEIGHT)
    @viewport.ox = 0
  end
end

class Scene_Skill < Scene_Base
  def start
    super
    create_menu_background
    @actor = $game_party.members[@actor_index]
    @viewport = Viewport.new(0, 0, WIDTH, HEIGHT)
    @help_window = Window_Help.new
    @help_window.viewport = @viewport
    @status_window = Window_SkillStatus.new(0, 56, @actor)
    @status_window.viewport = @viewport
    @skill_window = Window_Skill.new(0, 112, 544, 304, @actor)
    @skill_window.viewport = @viewport
    @skill_window.help_window = @help_window
    @target_window = Window_MenuStatus.new(0, 0)
    hide_target_window
  end
 
  def show_target_window(right)
    @skill_window.active = false
    width_remain = WIDTH - @target_window.width
    @target_window.x = right ? width_remain : 0
    @target_window.visible = true
    @target_window.active = true
    if right
      @viewport.rect.set(0, 0, width_remain, HEIGHT)
      @viewport.ox = 0
    else
      @viewport.rect.set(@target_window.width, 0, width_remain, HEIGHT)
      @viewport.ox = @target_window.width
    end
  end

  def hide_target_window
    @skill_window.active = true
    @target_window.visible = false
    @target_window.active = false
    @viewport.rect.set(0, 0, WIDTH, HEIGHT)
    @viewport.ox = 0
  end
end


class Spriteset_Map
 
  alias tds_vx_resolution_change_create_viewports create_viewports
  def create_viewports
    tds_vx_resolution_change_create_viewports   
    @viewport1 = Viewport.new(0, 0, WIDTH, HEIGHT)
    @viewport2 = Viewport.new(0, 0, WIDTH, HEIGHT)
    @viewport3 = Viewport.new(0, 0, WIDTH, HEIGHT)
    @viewport2.z = 50
    @viewport3.z = 100
  end
end

 

Comment '11'
  • profile
    천공대전 2011.07.19 17:05

    스크립트는 괜찮은데

    써보면 영...

     

  • ?
    카리스 2011.07.19 18:43

    기본적으로 이상한데는 수정했는데, 마음에 안드시는 부분 있으시거든 말씀해주세요 ^^;

  • profile
    천공대전 2011.08.06 11:53

    이제 잘 되는군요 감사합니다 ^^

  • ?
    석진이 2011.07.19 20:40

    아니설마, 이제 640x480제한이 아니라 아무 크기든지 가능하게 만드신겁니까???

  • ?
    카리스 2011.07.19 21:25

    한번 알아봐야겠습니다 그쪽도...  으워어어 너무 자기 비하하지 마세요 ㅜㅜㅜㅜ

    저도 정말 대단할거 없는 놈입니다;; 이 스크립트도 원래 있던거 수정한거에 지나지 않으니까요;;

  • ?
    석진이 2011.07.19 21:00

    그렇군요... dll을 아무나 손대는게 아니군요...  그래도 대단하십니다.  저같은놈은 상상도 할 수 없는 영역입니다.  스크립트들 만들어주셔서 감사합니다.

  • ?
    카리스 2011.07.19 20:44

    아니요 아쉽게도 저도 640x480입니다 ㅜㅜ

    기존 아방스 스크립트는 경계밖으로 벗어나거나 할때 버그가 있어 그부분을 살짝 건드려준겁니다... 으으..

    640x480은 프로그래밍적으로 잠겨있는 값으로 보이며 그 이상으로 수정하기 위해서는 아마 winAPI를 통하거나 아니면 실행파일 자체를 뜯어봐야될것 같네요... 스크립트로 어떻게 되는 부분은 아닐것 같습니다 제 짧은 지식으로는..

  • ?
    매디 2011.07.19 21:20

    전체화면이 먹히나요? 먹히면 좋을텐데...쩝

  • ?
    카리스 2011.07.19 21:28

    댓글 읽고 혹시나 해서 얼른 테스트 해봤는데 잘 됩니다 ^^;

  • ?
    모험소년 2011.08.17 22:35

    이런걸 변경했을때 메시지 영역은 어떻게 설정하나요?? 저는 400x300으로 작게 했는데 메시지가 짤려서 안보이네요 ..

  • ?
    포인트퍙퍙 2011.09.21 19:19

    좋은스크립트네요


List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
공지 스크립트 자료 게시물 작성시 주의사항 3 습작 2012.12.24 5398
130 기타 회피,명중,크리 스테이트를 작성하는 스크립트 9 카르와푸딩의아틀리에 2009.06.30 2393
129 기타 확장 에러 메시지 13 file 허걱 2009.08.17 2497
128 기타 화폐단위 구분해 주는 스크립트 38 file 허걱 2010.04.13 3652
127 기타 화면에 그림 그리는 스크립트 21 file 강진수 2010.02.27 2961
126 기타 화면 확대 스크립트 12 file 에돌이 2011.07.22 3059
125 기타 화면 해상도(640 X 480) 스크립트 6 file 쿠쿠밥솥 2012.01.10 3972
» 기타 해상도 변경 스크립트 11 카리스 2011.07.19 2723
123 기타 페이드 시간 변경 2 rukan 2009.07.01 1360
122 기타 통합 스크립트(좋은 마우스 스크립트 좋은거),KGC좋은거 새로운 거 스크립트 세이브 스크립트 좋은거!~~~~~ 14 알피지GM 2010.03.07 3829
121 기타 텍스트 파일 읽어 오는 스크립트 11 아방스 2008.03.04 2877
120 기타 태양 스크립트. 15 file 할렘 2009.02.20 4463
119 기타 타격관계도 등의 한계돌파 11 시트르산 2010.09.10 2365
118 기타 클리어 횟수 기록하기 8 file 허걱 2009.08.22 2729
117 기타 커스텀 페이지 스크립트 9 file 달표범 2009.09.07 3140
116 기타 커맨드 시스템 7 file 허걱 2009.07.21 2856
115 기타 캐릭터 소개화면 16 file 좀비사냥꾼 2009.03.29 6044
114 기타 카지노 슬롯머신 15 file 아방스가 짱 2010.02.28 3023
113 기타 책 읽기 스크립트. 19 허걱 2009.01.31 4490
112 기타 책 읽기 스크립트 44 file 히류 2010.10.05 4506
111 기타 집안의 가구를 내마음대로 데코레이션하기 15 file EuclidE 2010.09.18 4303
Board Pagination Prev 1 2 3 4 5 6 7 Next
/ 7