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
97 전투 전투시 메시지 표시 시간 조절 7 file 아방스 2008.01.24 2828
96 파티 전투중 파티 변경 스크립트 21 아방스 2008.03.09 3477
95 전투 전투후 HP/MP 퍼센테이지(지정) 회복 5 하얀슬픔 2010.12.06 2490
94 기타 전투후 이어지는 베경음 9 비극ㆍ 2010.04.19 2190
93 전투 전투후렙업시나오는상세창 11 작은샛별 2010.03.07 3128
92 이동 및 탈것 점프를 제한 하는 스크립트 15 아방스 2008.01.31 4605
91 메시지 조합한글 21 file 허걱 2009.06.27 4410
90 기타 좀 뭐랄까... 어이없는 "비행선 더 높게 날아오르게 하기!"스크립트.... 8 루시페르 2009.06.06 2426
89 이름입력 주인공이름으로 저장하는 스크립트 6 file 아방스 2009.02.07 4079
88 중복이지만...제가 올린 단체 액알 스크립트에서 오류가 너무 많이 나서...개인 액알로 다시 올려드리는 겁니다. 15 21stcentury 2008.10.12 3429
87 메뉴 지난 메뉴 스크립트에 이은 스테이터스 스크립트! 5 file 독사 2008.06.29 3545
86 전투 지형에 따른 전투배경화면 표시 스크립트!! 30 file 레오 2008.09.17 5855
85 메시지 직접 생각해서 만든 "문장 속 특정 단어 색 바꾸기" 10 file X.66 2010.04.28 4363
84 기타 집안의 가구를 내마음대로 데코레이션하기 15 file EuclidE 2010.09.18 4303
83 메뉴 창 크기 변경 스크립트 6 file Incubus 2008.05.25 5945
82 기타 책 읽기 스크립트 44 file 히류 2010.10.05 4506
81 기타 책 읽기 스크립트. 19 허걱 2009.01.31 4490
80 체력 게이지바 스크립트 30 아방스 2008.09.01 5829
79 스킬 체스트 팝업 3.0 9 file 파이어 2010.12.05 3037
78 장비 초보적인 장비레벨 개념 스크립트 - 수정 및 덤 9 아이미르 2011.09.06 2657
Board Pagination Prev 1 ... 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 Next
/ 32