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
241 저장 링메뉴에 빠져 봅시다 - 링메뉴의 세이브시 팅김이 사라지는 방법 !! 3 file 백호 2009.02.21 1998
240 기타 메세지창의 위치 변동 자동화 file 백호 2009.02.21 1138
239 이동 및 탈것 방향키를 누름에따라 점프의 거리가 길어진다 - 출처:엑사포 의 비밀소년님과 연금술사님의 스크립트를 개량함 3 백호 2009.02.21 1234
238 미니맵 미니맵(중복률100%? 한글번역!) 17 백호 2009.02.21 3423
237 기타 필요 경험치 직접 정하기 9 백호 2009.02.21 1408
236 아이템 아이템을 사용하여 기술 습득하기 (기술문서 아이템) 2 file 백호 2009.02.21 1033
235 메뉴 메뉴 변경 스크립트 2 file 백호 2009.02.21 2359
234 기타 CG모드 도입 스크립트 file 백호 2009.02.21 1383
233 오디오 음악 재생 스크립트 3 file 백호 2009.02.21 1140
232 아이템 흠..몬스터도감말고 아이템도감~ 9 백호 2009.02.21 2028
231 기타 게이지 3 백호 2009.02.21 1395
230 메뉴 링메뉴+음악도입스크립트 백호 2009.02.21 1051
229 전투 에너미 HP&SP 표시 스크립트 2 file 백호 2009.02.21 2544
228 메뉴 스테이터스 화면에 넥스트 표시 1 file 백호 2009.02.21 1759
227 키입력 新전체키 스크립트(그에 따른 그림도 실려있음) 6 file 백호 2009.02.21 2255
226 장비 전체키 이용을 위한 장비창 스크립트 백호 2009.02.21 1234
225 전투 흠.. 아직도 이 스크립트가 없군요 ㅋㅋ(제가올림..) 1 file 백호 2009.02.21 3335
224 기타 新 무기 개조 스크립트 3 file 백호 2009.02.21 1487
223 기타 창고 스크립트 2 백호 2009.02.21 1203
222 기타 제련시스템 수정본입니다. 3 file 백호 2009.02.21 1020
Board Pagination Prev 1 ... 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 ... 52 Next
/ 52