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 6313
801 이동 및 탈것 텔레포트 마나소비량 수정하기 3 지존!! 2010.07.22 1563
800 메뉴 새로운 메뉴 15 file 또라에몽 2010.07.17 5323
799 메뉴 메이플스토리처럼 메뉴를^^ 57 file 딸기님 2010.07.13 7161
» 기타 데이터베이스 자체 제한 해체 XP Ver. 13 THE풀잎 2010.07.04 2171
797 이동 및 탈것 8방향이동, Shift키 누르면 대쉬 63 WinHouse 2010.06.12 4028
796 [자작]게임내에서 필요한 파일 체크하기 / 디버깅 막기 17 file JACKY 2010.06.11 2515
795 메시지 말풍선 표시 스크립트 48 file insertend 2010.06.06 5170
794 타이틀/게임오버 타이틀을 아오오니처럼 만들어보자! 43 file Tassy 2010.06.02 5441
793 전투 [RTAB]HP/SH/EXP 게이지바 ver 1.00 44 file 환상 러브텔 2010.05.22 5342
792 기타 endroll 주석 번역 6 file insertend 2010.05.15 1640
791 타이틀/게임오버 [펌]색다른 게임오버 스크립트 14 file 또라에몽 2010.05.09 4271
790 이동 및 탈것 새로운 픽셀 이동 스크립트 27 file 케나이 2010.04.10 3499
789 전투 srpg용 스크립트라는데 4 세죠 2010.03.26 3525
788 온라인 게임화면을 전체화면으로 하기 27 file 이씨 2010.03.09 4062
787 전투 ABS_v3액션 알피지 46 file 알피지GM 2010.03.07 5809
786 저장 렉없은 자동 세이브 15 알피지GM 2010.03.07 2328
785 파티 KGC-대규모파티 25 rgnrk001 2010.03.01 3781
784 이동 및 탈것 아하! 그렇구나의 3D 신기술 체험 3 14 아하!잘봤어요. 2010.02.28 4262
783 이동 및 탈것 아하! 그렇구나의 3D 신기술 체험 2 23 아하!잘봤어요. 2010.02.28 3816
782 이동 및 탈것 아하! 그렇구나의 3D 신기술 체험 30 아하!잘봤어요. 2010.02.28 4774
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 ... 52 Next
/ 52