XP 스크립트

 할렘님의 

에서 설명하는 RPG VX에서 데이터베이스 제한을 해체하는 스크립트를 조금 변형해서

RPG XP에서도 사용할 수 있게 해봤습니다.

사용 전에 분명 백업해두세요!!

 

#==========================================
# ** HOW TO USE
#------------------------------------------
# 0. Open your project (Recommend to backup your database files first~)
# 1. Paste this script in above 'Main'.
# 2. Set DLB_USE_IT = true
# 3. Setup database files you want to change, in DLB_DATA
# 4. Run your game...
# 5. When it finished, game will close itself
# 6. Close your project *without save*
# 7. Open your project again. Done!
# 8. You can either remove this script, or set DLB_USE_IT = false
#==========================================

  #===========================================================================
  # Use limit breaker? (set this to false after you run this script,
  # and haven't change anything in DLB_DATA after that)
  # or REMOVE this script when finished~
  #===========================================================================
  DLB_USE_IT = true  # (true / false)
 
  DLB_DATA = {
  #======================================================
  # Database file you want to change their number:
  # * Limit of normal database files are 999
  # * Limit of variables and switches are 5000
  # This script will allow you to change their number over their limit~
  #===============================
  # ** How to setup **
  #-------------------------------
  # Add 1 line below per 1 database file you want to change.
  # Structure: 'Database_File' => (number),
  # e.g. 'switch' => 5500,
  # (* Don't forget to put , behind the line!)
 
  #==============================================
  # ** [List] Database_File
  #----------------------------------------------
  # 'switch' for Game Switches
  # 'variable' for Game Variables
  # 'actor' for Actors
  # 'class' for Classes
  # 'skill' for Skills
  # 'item' for Items
  # 'weapon' for Weapons
  # 'armor' for Armors
  # 'enemy' for Enemies
  # 'troop' for Troops
  # 'state' for States
  # 'animation' for Animations
  # 'commonev' for Common Events
  #======================================================
  # * START to setup from here!
  #======================================================
  'actor' =>2000,
  'class' => 2000,
  'skill' => 2000,
  'item' => 2000,
  'weapon' => 2000,
  'troop' => 2000,
  'enemy' => 2000,
  'state' => 2000,
  'armor' => 2000,
  'animation' => 2000,
  'commonev' => 2000,
  'switch' => 2000,
  'variable' => 2000,
  #========================================================
  # * [END] Database Limit Breaker Setup Part
  #========================================================
  'end' => nil # End
  }
  if DLB_USE_IT
    start_time = Time.now
    DLB_DATA.each do |k,v|
      dvar = nil
      case k
      when 'switch'; dname = 'System'; dvar = 'switches'; dnewdata = ''
      when 'variable'; dname = 'System'; dvar = 'variables'; dnewdata = ''
      when 'actor'; dname = 'Actors'; dnewdata = 'RPG::Actor.new'
      when 'class'; dname = 'Classes'; dnewdata = 'RPG::Class.new'
      when 'skill'; dname = 'Skills'; dnewdata = 'RPG::Skill.new'
      when 'item'; dname = 'Items'; dnewdata = 'RPG::Item.new'
      when 'weapon'; dname = 'Weapons'; dnewdata = 'RPG::Weapon.new'
      when 'armor'; dname = 'Armors'; dnewdata = 'RPG::Armor.new'
      when 'enemy'; dname = 'Enemies'; dnewdata = 'RPG::Enemy.new'
      when 'troop'; dname = 'Troops'; dnewdata = 'RPG::Troop.new'
      when 'state'; dname = 'States'; dnewdata = 'RPG::State.new'
      when 'animation'; dname = 'Animations'; dnewdata = 'RPG::Animation.new'
      when 'commonev'; dname = 'CommonEvents'; dnewdata = 'RPG::CommonEvent.new'
      when 'end'; next
      else; p 'unknown DLB_DATA!', 'Check carefully what you typed in DLB_DATA'
      end
      base_data = load_data('Data/' + dname + '.rxdata')
      data = dvar.nil? ? base_data : eval('base_data.' + dvar.to_s)
      unless data.size > v and v - (data.size - 1) <= 0
        add_data = Array.new(v - (data.size - 1)) { eval(dnewdata) }
        data.push *add_data
        save_data(base_data, 'Data/' + dname + '.rxdata')
      end
    end
    p 'Finished in ' + (Time.now - start_time).to_s + ' sec'
    exit
  end

 

사용방법

0. 스크립트를 적용할 프로젝트를 엽니다. (만일을 위해 먼저 데이터베이스 파일을 백업해 놓으세요.)
1. 스크립트를 추가시키라는 말입니다.  스크립트 추가 방법은 다들 아시죠?
여기서 잠깐. 스크립트를 그냥 복사+붙여넣기 하시면 맨 아래 end 부분에 아방스 홈페이지 출처가 남게됩니다. 출처부분을 지워서 end 글씨가 파란색이 되도록 바꿔주세요.
2. 'Set DLB_USE_IT = true' 이걸로 고치라는 내용같은데 신경 안쓰셔도 됩니다. (이미 고쳐져 있기때문.)
3(중요). 스크립트 중간에 보시면 'actor' => 5000 이런 부분이 있습니다. 숫자 부분을 수정하면 그 숫자에 맞게 제한을 풀 수 있습니다. 예를 들어 'actor' => 1200 이런식으로 숫자를 바꾸면 데이터베이스 액터의 최대수가 1200으로 늘어나게 됩니다. 5000 로 그냥 두면 최대수는 5000이 되지요.
그런데 이 부분을 잘 설정하셔야 렉이 안걸립니다. 만약 아이템은 1200으로 만들고 싶고 액터는 30명 정도만 필요하시면 'item' => 1200     'actor'=> 30      으로 바꿔주세요. 그래야 렉이 안걸립니다.
4. 이제 스크립트를 적용시키고 테스트 플레이를 해봅시다. 그러면 타이틀은 안뜨고 검은화면이 뜰것입니다. 정상적이니 걱정하지 않으셔도 됩니다.
5. 몇초 기다리면 'finished in (숫자)' 라는 창이 뜰것입니다. 확인을 누르면 자동으로 테스트 플레이가 종료됩니다.
6. 이제 RPG VX를 종료시킵니다. 저장은 하지 말라고 나와있네요.
7. 다시 RPG VX를 실행시킵니다. 드디어 끝났네요. 데이터베이스를 열어 최대수를 확인해 봅시다.
8. 스크립트 에디터에서 이 스크립트를 삭제시키거나 'Set DLB_USE_IT = true' 부분을 'Set DLB_USE_IT = false' 로 바꿔주시기 바랍니다.

Comment '13'
  • ?
    이신S 2010.07.05 00:10

    혹시 xp에서 아이템 코드에 몇바이트 메모리가 할당되는지 아시는지요? 8000까지 잡아보려고 하는데 메모리 충돌이 일어나지 않나 궁금하네요...

  • profile
    THE풀잎 2010.07.05 11:22

    그건 잘 모르겠는데 전 2000으로까지밖에 안해봐서...몇만개로 할정도로 필요하신건가요 ㅜㅜ

  • ?
    이신S 2010.07.05 00:18

    순수 1byte면 256개일텐데 이미 그건 넘었으니 2바이트 이상이라는 얘긴데, 부호화를 해도 3만개 좀 넘게 까지는 허용가능할 것 같기는 한데,  메모리 할당 방식을 좀 아시면 설명좀...

  • ?
    이신S 2010.07.05 00:13

    2. 분명 주석부에 원래 스위치 한도가 5000개라고 되어있는데 모양을 보니까 2000개로 재할당 해주는 것 같네요. 여기에 뭔가 의미가?

  • profile
    THE풀잎 2010.07.05 11:23

    그건 원래 제한이라는 뜻이에요...스위치한도가 원래 5000개잖아요;; 근데 지금 저 스크립트 대로라면 한도를 2000씩으로 되어있으니 2000으로 줄여지는게 당연하겠죠?

  • ?
    이신S 2010.07.05 00:40

    3. 툴의 데이터 베이스를 건드리는 스크립트 같은데, 한번 사용하면 다른 프로젝트에도 적용되는건 아닌지요?

  • profile
    THE풀잎 2010.07.05 11:21

    아뇨 ;;; 트루와 폴스로 각각 프로젝트에 설정해야함

  • ?
    이신S 2010.07.05 00:46

    4. 수행 결과 스크립트가 끊긴다고 나오네요...

  • ?
    파이어 2010.07.09 13:48

    흠... 써보겠습니다. 감사합니다

  • ?
    강지 2010.07.20 16:18

    잘 썻습니다.

  • ?
    Outsider2 2010.07.24 10:08

    감사합니다.

  • ?
    포인트팡팡 2010.07.24 10:08
    축하합니다. Outsider2님은 55포인트에 당첨되셨습니다
  • ?
    白月のはる 2010.09.18 01:46

    하.. 써보니 엄청나더군요..

    감사합니다.


List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
공지 스크립트 자료 게시물 작성시 주의사항 습작 2012.12.24 6153
114 기타 대화 글씨가 한글자씩 나오는 스크립트 2 백호 2009.02.22 2464
113 기타 대화창 글자 한글자씩뜨는 스크립트 7 백호 2009.02.22 2185
112 기타 대화창에 얼굴그래픽 스크립트 25 file 백호 2009.02.21 4137
111 기타 더블애니메이션 스크립트 1 백호 2009.02.22 1593
110 기타 데미지 출력 스크립트 예제 9 file 백호 2009.02.22 1559
» 기타 데이터베이스 자체 제한 해체 XP Ver. 13 THE풀잎 2010.07.04 2171
108 기타 동료들이 기차처럼 줄줄 따라온다!? 7 file 백호 2009.02.21 1990
107 기타 디버그 윈도우 강화! 3 file 백호 2009.02.21 1550
106 기타 랜덤 지하 감옥 작성 스크립트 1 file 백호 2009.02.21 1338
105 기타 레벨, 능력치 무한 스크립트 3 백호 2009.02.22 1712
104 기타 레벨,능력치 9999 3 백호 2009.02.22 1596
103 기타 레벨9999만들기스크립 23 해파리 2009.04.10 3344
102 기타 레벨9999스크립트 4 백호 2009.02.21 1151
101 기타 레벨업스크립트(xp) 2 게임을만들자! 2014.08.05 1687
100 기타 레벨업시 전회복 by ccoa 8 백호 2009.02.22 2514
99 기타 레벨업포인트 3 백호 2009.02.22 1692
98 기타 레벨을 표시해주는 스크립트 5 백호 2009.02.22 2403
97 기타 마법반사스크립트 4 *ps인간 2009.01.26 1403
96 기타 마우스로 길찾기 스크립트 예제 file 백호 2009.02.21 1168
95 기타 만화형태 말칸 스크립트 28 file 백호 2009.02.22 3705
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 11 12 13 Next
/ 13