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
821 기타 Chaos Project Debug System 1.06b by Blizzard file Alkaid 2010.09.07 1367
820 메시지 XRXS9 - 메세지 표시 업그레이드 X file Alkaid 2010.09.07 3305
819 HUD HUD Menu 2.0 by Raziel 3 Alkaid 2010.09.07 2031
818 맵/타일 Map Image Maker 3.0 by rey meustrus file Alkaid 2010.09.06 1608
817 전투 Active Time Battle 2.62 by パラ犬 file Alkaid 2010.09.06 1652
816 메뉴 Stormtronics CMS 5.39b - Hybrid Edition by Blizzard 4 file Alkaid 2010.09.06 1742
815 스킬 RO Job/Skill System 2.01b by Blizzard 2 file Alkaid 2010.09.05 1862
814 메뉴 Ryex's Collapsing CMS 2.51 3 Alkaid 2010.09.05 1667
813 전투 GubiD's Tactical Battle System 1.5.1.4 (RMXP용) GTBS 2 Alkaid 2010.09.03 2456
812 메뉴 자작 메뉴 스크립트들(L's Simple CMS and menu scenes) (SDK 호환?) 10 Alkaid 2010.09.02 3455
811 기타 House Decoration System 1.6 by MephistoX (SDK 2.x, MACL 2.x 필요) 1 file Alkaid 2010.09.02 1489
810 스킬 Grouping and Detail 7.2 by DerVVulfman 1 file Alkaid 2010.09.02 1509
809 기타 Phylomortis.com 스크립트들. file Alkaid 2010.09.02 1775
808 장비 Multislots! 2.1 by DerVVulfman 3 file Alkaid 2010.09.02 1537
807 키입력 AInput Module 3.10 by vgvgf (전체키, 마우스 입력) 6 file Alkaid 2010.09.01 3029
806 저장 키라링님이 올리신 [KGC_2PaneSave] 번역 1 무뇌인 2010.08.18 1471
805 HUD 강화 나침반 스크립트 (원본 by 허걱) 16 file JACKY 2010.08.16 3105
804 HUD 캐릭터 아래 SP,HP표시해주는 스크립트 33 file 김!제스! 2010.08.04 4269
803 기타 액알 30 지존!! 2010.07.26 5094
802 기타 명령어들 6 지존!! 2010.07.24 2288
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ... 52 Next
/ 52