XP 스크립트

http://www.gamebaker.com/rmxp/scripts/self-variables.htm
  이벤트에 셀프스위치같은 로컬변수를 부여하는 스크립트입니다.  사용하기 위해서는 SG Settings control 스크립트가 필요합니다.  이벤트 로컬변수는 전투시 임시변수로도 사용가능합니다.


오리지널 버전(로컬변수 1개):
#=============================================================================
# ** SG Self Variables
#=============================================================================
# sandgolem
# Version 2
# 7.05.06
#=============================================================================
#
SG_Self_Variable = 1
#
# To use this script, use variable #1 in any events.
# Set the number above if you'd like to use a different variable.
# It'll be whatever that event's self variable for it is.
# This also works for event page conditions
# In battle, this is a temporary variable 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.
#
# This script is not SDK compatible. See site above for details on how to edit.
#
# Have problems? You can leave me a message at:
# http://www.gamebaker.com/users/sandgolem
#
#=============================================================================

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

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

class Scene_Load < Scene_File     
  alias sandgolem_selfvar_load_read read_save_data
  def read_save_data(file) 
    sandgolem_selfvar_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_selfvar_battle_main main
  def main
    $game_variables[SG_Self_Variable] = 0
    sandgolem_selfvar_battle_main
  end
end

class Interpreter
  alias sandgolem_selfvar_interp_execcommand execute_command
  def execute_command
    if $scene.is_a?(Scene_Map)
      @key = [@map_id, @event_id]
      if $sg_self_variables[@key] != nil
        $game_variables[SG_Self_Variable] = $sg_self_variables[@key]
      else
        $game_variables[SG_Self_Variable] = 0
      end
    end
    sandgolem_selfvar_interp_execcommand
  end
 
  alias sandgolem_selfvar_interp_command122 command_122
  def command_122
    sandgolem_selfvar_interp_command122
    if @parameters[0] == SG_Self_Variable && $scene.is_a?(Scene_Map)
      $sg_self_variables[@key] = $game_variables[SG_Self_Variable]
      $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 == SG_Self_Variable
            key = [$game_map.map_id, @event.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


로컬변수 3개까지 사용가능한 버전:
#=============================================================================
# ** 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[1]
        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


**이 스크립트는 기본적으로 SDK와 호환되지 않습니다. 

Who's 백호

?

이상혁입니다.

http://elab.kr


List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
공지 스크립트 자료 게시물 작성시 주의사항 습작 2012.12.24 6205
541 이동 및 탈것 이벤트가 이벤트를 따라가는것 8 백호 2009.02.22 1873
540 상점 Advanced Shop System by Alexis Hiemis 1 file Alkaid 2010.10.08 1872
539 저장 KGC_2PaneSave 15 file 키라링 2009.01.23 1872
538 장비 Angie's Equipment Sets 2.3 by DerVVulfman 7 Alkaid 2010.12.31 1869
537 기타 잠수방지 스크립트 12 백호 2009.02.22 1869
536 맵/타일 Editor Tiles by PK8 (XP/VX/VXA) Alkaid 2012.09.11 1868
535 맵/타일 Call Map Event by DerVVulfman Alkaid 2011.12.21 1864
534 스킬 RO Job/Skill System 2.01b by Blizzard 2 file Alkaid 2010.09.05 1862
533 [복권] 복권시스템 2.0 [수정 완료] 12 file 코아 코스튬 2010.10.26 1861
532 타이틀/게임오버 타이틀 아주 미묘한 효과 5 백호 2009.02.22 1858
531 전투 Etude87_Custom_Slip_Damage_XP ver.1.0 5 습작 2012.08.26 1857
530 그래픽 [자작]Bitmap에서 줄긋기, 네모그리기 6 나뚜루 2009.01.24 1855
529 기타 광물캐기 스크립트 1 file 백호 2009.02.22 1850
528 전투 MrMo DVV Add-On #13: Tinuke's Smart Missiles 2 Alkaid 2011.01.24 1846
527 전투 KGC_Active Count Battle (7/30일자) 7 file 백호 2009.02.22 1846
526 기타 일시정지 스크립트 13 【§㉤ㅏ법㉧ㅣ§】 2011.02.26 1843
525 이동 및 탈것 젤다 스타일 맵스크롤 5 file 백호 2009.02.21 1839
524 기타 몬스터 도감 7 file 백호 2009.02.21 1837
523 전투 Minkoff's Animated Battlers - Enhanced 13.8 by DerVVulfman 1 Alkaid 2012.08.26 1833
522 키입력 텍스트입력 이벤트명령 2.0 by wachunga@rmxp.org (SDK호환) file 백호 2009.02.22 1826
Board Pagination Prev 1 ... 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 ... 52 Next
/ 52