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
641 전투 턴제 전투메시지 스크립트 10 file 백호 2009.02.21 2197
640 전투 오버드라이브 8 file 키라링 2009.01.23 2193
639 기타 [회복] 대기 회복 스크립트4.0 여러 오류 문제 해결 및 길이 줄임 11 file 코아 코스튬 2010.11.06 2189
638 상점 상점아템 가격변동(중뷁?) 4 캉쿤 2011.09.14 2188
637 기타 클리어 횟수 기록하기 1 file 허걱 2009.08.22 2187
636 기타 [신기술 체험] 솔로채팅창 17 file 백호 2009.02.22 2187
635 기타 [신기술 체험] 레이싱 스크립트 8 file 백호 2009.02.22 2185
634 기타 대화창 글자 한글자씩뜨는 스크립트 7 백호 2009.02.22 2185
633 메시지 Universal Message System 1.8.0 by ccoa 1 file Alkaid 2010.09.08 2183
632 기타 [All RGSS] 윈도우 메세지박스 스크립트 (Completed ver) 5 file Cheapmunk 2014.06.22 2178
631 메시지 Etude87_Item_Choice_XP ver.1.10 13 file 습작 2013.05.19 2177
630 온라인 Multi-Netplay Extended[구버전용] 3 백호 2009.02.22 2175
» 기타 데이터베이스 자체 제한 해체 XP Ver. 13 THE풀잎 2010.07.04 2170
628 맵/타일 H-Mode7 Engine 1.0 by MGCaladtogel 8 Alkaid 2010.12.23 2161
627 기타 [맵 아이디 확인 스크립트] 맵아이디 모르는 사람을 위한 스크립트 9 file 코아 코스튬 2010.10.09 2161
626 키입력 Aleworks Input Module 1.21 by vgvgf (SDK호환) 8 WMN 2008.04.06 2145
625 기타 홈페이지 띄우기 (VX 상관없음.) 6 KNAVE 2009.08.25 2137
624 기타 Upload & Download files with RGSS 2.1 by berka (XP/VX 공용) 5 Alkaid 2010.11.20 2134
623 기타 KGC꺼 몬스터도감 수정해봤어요;;; 9 file 백호 2009.02.21 2134
622 스킬 기술문서(스킬 습득 아이템) 7 ok하승헌 2010.02.18 2132
Board Pagination Prev 1 ... 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 ... 52 Next
/ 52