질문과 답변

Extra Form

셀프변수스크립트를넣고 세이브하려니까  충돌뜨네요 고칠수있는방법좀요..


#=============================================================================
# ** SG Self Variables B
#=============================================================================
# sandgolem
# Version 1
# 19.04.06
#=============================================================================
#
# To use this script, use variables #1 - 3 in any events.
# It'll be whatever that event's self variable for it is.
# This also works for event page conditions
# In battle, these are temporary variables that is reset with each.
#
#=============================================================================
#
# To check for updates or find more scripts, visit:
#      http://www.gamebaker.com/rmxp/scripts/
#
# To use this script, copy it and insert it in a new section above "Main",
# but under the default scripts. Needs to be under SG Script Control, but
# above any that alias Game_Event's refresh.
#
# Have problems? You can leave me a message at:
# http://www.gamebaker.com/users/sandgolem
#
#=============================================================================

class Scene_Title
  alias sandgolem_selfvarb_title_main main
  def main
    $sg_self_variables = {}
    sandgolem_selfvarb_title_main
  end
end   

class Scene_Save < Scene_File   
  alias sandgolem_selfvarb_save_write write_save_data
  def write_save_data(file)
    $game_sg['selfvars'] = $sg_self_variables
    sandgolem_selfvarb_save_write(file) 
    $game_sg['selfvars'] = nil
  end
end

class Scene_Load < Scene_File     
  alias sandgolem_selfvarb_load_read read_save_data
  def read_save_data(file) 
    sandgolem_selfvarb_load_read(file)
    if $game_sg['selfvars'] != nil
      $sg_self_variables = $game_sg['selfvars']
      $game_sg['selfvars'] = nil
    end   
  end
end

class Scene_Battle
  alias sandgolem_selfvarb_battle_main main
  def main
    for i in 1 .. 3
      $game_variables[i] = 0
    end
    sandgolem_selfvarb_battle_main
  end
end

class Interpreter
  alias sandgolem_selfvarb_interp_execcommand execute_command
  def execute_command
    if $scene.is_a?(Scene_Map)
      for i in 1 .. 3
        key = [@map_id, @event_id, i]
        if $sg_self_variables[key] != nil
          $game_variables[i] = $sg_self_variables[key]
        else
          $game_variables[i] = 0
        end
      end
    end
    sandgolem_selfvarb_interp_execcommand
  end
 
  alias sandgolem_selfvarb_interp_command122 command_122
  def command_122
    sandgolem_selfvarb_interp_command122
    if @parameters[0] <= 3 && $scene.is_a?(Scene_Map)
      for i in @parameters[0] .. @parameters[1]
        if i <= 3
          key = [@map_id, @event_id, i]
          $sg_self_variables[key] = $game_variables[i]
        end
      end
      $game_map.need_refresh = true
    end
  end
end

class Game_Event < Game_Character
 
  def refresh
    new_page = nil
    unless @erased
      for page in @event.pages.reverse
        c = page.condition
        if c.switch1_valid
          if $game_switches[c.switch1_id] == false
            next
          end
        end
        if c.switch2_valid
          if $game_switches[c.switch2_id] == false
            next
          end
        end
#------------------------------------------------------------------------------
# Begin SG Self Variables edit
#------------------------------------------------------------------------------
        if c.variable_valid
          if c.variable_id <= 3
            key = [$game_map.map_id, @event.id, c.variable_id]
            if $sg_self_variables[key] != nil
              if $sg_self_variables[key] < c.variable_value
                next
              end
            else
              next
            end
          elsif $game_variables[c.variable_id] < c.variable_value
            next
          end
        end
#------------------------------------------------------------------------------
# End SG Self Variables edit
#------------------------------------------------------------------------------
        if c.self_switch_valid
          key = [@map_id, @event.id, c.self_switch_ch]
          if $game_self_switches[key] != true
            next
          end
        end
        new_page = page
        break
      end
    end
    if new_page == @page
      return
    end
    @page = new_page
    clear_starting
    if @page == nil
      @tile_id = 0
      @character_name = ""
      @character_hue = 0
      @move_type = 0
      @through = true
      @trigger = nil
      @list = nil
      @interpreter = nil
      return
    end
    @tile_id = @page.graphic.tile_id
    @character_name = @page.graphic.character_name
    @character_hue = @page.graphic.character_hue
    if @original_direction != @page.graphic.direction
      @direction = @page.graphic.direction
      @original_direction = @direction
      @prelock_direction = 0
    end
    if @original_pattern != @page.graphic.pattern
      @pattern = @page.graphic.pattern
      @original_pattern = @pattern
    end
    @opacity = @page.graphic.opacity
    @blend_type = @page.graphic.blend_type
    @move_type = @page.move_type
    @move_speed = @page.move_speed
    @move_frequency = @page.move_frequency
    @move_route = @page.move_route
    @move_route_index = 0
    @move_route_forcing = false
    @walk_anime = @page.walk_anime
    @step_anime = @page.step_anime
    @direction_fix = @page.direction_fix
    @through = @page.through
    @always_on_top = @page.always_on_top
    @trigger = @page.trigger
    @list = @page.list
    @interpreter = nil
    if @trigger == 4
      @interpreter = Interpreter.new
    end
    check_event_trigger_auto
  end
end


---------------------------------여기까지 셀프변수 스크립트


  #--------------------------------------------------------------------------
  # ● 공개 인스턴스 변수
  #--------------------------------------------------------------------------
  attr_reader   :filename                 # 파일명
  attr_reader   :selected                 # 선택 상태
  #--------------------------------------------------------------------------
  # ● 오브젝트 초기화
  #     file_index : 세이브 파일의 인덱스 (0~3)
  #     filename   : 파일명
  #--------------------------------------------------------------------------
  def initialize(file_index, filename)
    super(0, 64 + file_index % 4 * 104, 640, 104)
    self.contents = Bitmap.new(width - 32, height - 32)
    @file_index = file_index
    @filename = "Save#{@file_index + 1}.rxdata"
    @time_stamp = Time.at(0)
    @file_exist = FileTest.exist?(@filename)
    if @file_exist
      file = File.open(@filename, "r")
      @time_stamp = file.mtime
      @characters = Marshal.load(file)
      @frame_count = Marshal.load(file)
      @game_system = Marshal.load(file)
      @game_switches = Marshal.load(file)
      @game_variables = Marshal.load(file)
      @total_sec = @frame_count / Graphics.frame_rate
      file.close
    end
    refresh
    @selected = false
  end
  #--------------------------------------------------------------------------
  # ● 리프레쉬
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    # 파일 번호를 묘화
    self.contents.font.color = normal_color
    name = "파일 #{@file_index + 1}"
    self.contents.draw_text(4, 0, 600, 32, name)
    @name_width = contents.text_size(name).width
    # 세이브 파일이 존재하는 경우
    if @file_exist
      # 캐릭터를 묘화
      for i in 0...@characters.size
        bitmap = RPG::Cache.character(@characters[i][0], @characters[i][1])
        cw = bitmap.rect.width / 4
        ch = bitmap.rect.height / 4
        src_rect = Rect.new(0, 0, cw, ch)
        x = 300 - @characters.size * 32 + i * 64 - cw / 2
        self.contents.blt(x, 68 - ch, bitmap, src_rect)
      end
      # 플레이 시간을 묘화
      hour = @total_sec / 60 / 60
      min = @total_sec / 60 % 60
      sec = @total_sec % 60
      time_string = sprintf("%02d:%02d:%02d", hour, min, sec)
      self.contents.font.color = normal_color
      self.contents.draw_text(4, 8, 600, 32, time_string, 2)
      # 타임 스탬프를 묘화
      self.contents.font.color = normal_color
      time_string = @time_stamp.strftime("%Y/%m/%d %H:%M")
      self.contents.draw_text(4, 40, 600, 32, time_string, 2)
    end
  end
  #--------------------------------------------------------------------------
  # ● 선택 상태의 설정
  #     selected : 새로운 선택 상태 (true=선택 false=비선택)
  #--------------------------------------------------------------------------
  def selected=(selected)
    @selected = selected
    update_cursor_rect
  end
  #--------------------------------------------------------------------------
  # ● 커서의 구형 갱신
  #--------------------------------------------------------------------------
  def update_cursor_rect
    if @selected
      self.cursor_rect.set(0, 0, @name_width + 8, 32)
    else
      self.cursor_rect.empty
    end
  end
end


----------------------------------여기까지 세이브스크립트


도와주세요...


List of Articles
종류 분류 제목 글쓴이 날짜 조회 수
공지 묻고 답하기 가이드 습작 2014.06.14 12442
한글 패치 RMXP rpg xp 한글패치 후 글자가 나오질 않습니다 1 file 핫핑세일 2019.12.04 279
한글 패치 RMVXA RPG VX ACE 한글 패치 3 채토 2019.02.12 804
한글 패치 RM2k 스팀 알만툴 2k는 한글패치가 없나여? 2 태연천사 2019.04.01 317
한글 패치 RMVXA Translator++ invalid multibyte char (utf-8) 오류 (영어겜임) file 진영삼 2019.05.02 429
한글 패치 RMVXA VX Ace툴 스팀 버전 한글패치는 없는 건가요? 자유와바람 2019.11.07 319
한글 패치 RMVXA 지원하지 않는 조작 1 청빛날개 2020.02.04 96
한글 패치 RMXP 스팀 알만툴XP 한글패치 관련 질문입니다 으으으으으으 2020.02.25 342
한글 패치 기타 SRC나 DNML 유저팬픽시나리오MOD제작툴 한글화 하시는분은 없나요? 1 모드좋아 2020.02.27 212
한글 패치 RMVXA RPG MAKER VX ACE 한글패치 관련 문의드립니다ㅠ 2 쇠창살 2020.03.02 462
한글 패치 RMVX vx 한글패치 어떻게 해야 하나요 ㅠㅠㅠ 2 얄라셩 2020.06.05 279
한글 패치 RMXP RPG XP 스팀 한글패치 최신 버전은 없나요? 1 일리브 2020.11.14 660
한글 패치 RM2k3 2003 게임의 글자가 특수문자로 출력됩니다. 1 file 우주신유니콘 2021.03.20 301
한글 패치 RMVXA RPG Maker VX Ace 한글 출력? 1 ikmyung 2021.05.17 302
한글 패치 기타 알만툴 2k 스팀판은 한글패치가 없나요? 김기차 2023.08.28 49
한글 패치 RM2k RM2k의 스팀 한글패치 다크크리에이터 2024.01.27 24
플러그인 추천 RMMV MV 인벤토리 변경하는 플러그인이 있을까요? 2 머리큰두두 2023.09.19 62
플러그인 추천 RMMV 지도의 특정 좌표를 한번에 찾아가는 플러그인은 없을까요? 7 겐마 2020.08.22 126
플러그인 추천 RMMV npc 이동 1 코기 2020.02.09 89
플러그인 추천 RMMV MV에서 대각선이동이 가능한가요? (8방향이동) 6 믕믱이 2020.03.12 780
플러그인 추천 RMMV 이런 플러그인인데 혹시 알고있는 사람 있습니까??? 2 file 호구랑 2019.03.02 241
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ... 83 Next
/ 83