#=============================================================== # ● [XP/VX/VXA] ◦ Database Limit Breaker IIIa ◦ □ # * 데이터 베이스 파일에서 데이터 수의 제한을 해제합니다. * #-------------------------------------------------------------- # ◦ by Woratana [woratana@hotmail.com] # ◦ Thaiware RPG Maker Community # ◦ Originally released on: 22/02/2008 # ◦ Ported to VXAce by Mr. Bubble on: 30/12/2011 # ◦ Modified by Etude87(습작) on: 27/06/2012 #-------------------------------------------------------------- #========================================== # ** 사용법 #------------------------------------------ # [Korean] # 0. Project 파일을 엽니다. (먼저 데이터베이스 파일 자체를 수정하므로 미리 백업해놓길 추천합니다~) # 1. 스크립트 에디터에서 'Main' 섹션 위쪽에 이 스크립트를 추가합니다. # 2. 아래의 DLB_USE_IT = false 를 DLB_USE_IT = true 로 수정합니다. # 3. DLB_DATA 해시에 수정하길 원하시는 데이터베이스 파일과 그 수를 적습니다. # 4. 테스트 플레이를 실행합니다. # 5. 작업이 완료되면 게임이 자동 종료됩니다. # 6. *저장하지 말고* Project 파일을 닫습니다. # 7. 다시 Project 파일을 엽니다. 그럼 완료! # 8. 그럼 다시 DLB_USE_IT = true 를 DLB_USE_IT = false 로 수정합니다. # XP/VX 의 경우는 이 스크립트를 남겨둬야 하지만, # VX Ace 의 경우는 지워버리셔도 됩니다. #========================================== #=========================================================================== # [KOR] 제한 해제를 사용하셨나요? (테스트 플레이 실행 이후에 다시 false로 설정하시고, # DLB_DATA에서 아무것도 바꾸지 마세요.) # 아니면 제한 해제가 끝났으면 지워버리세요.(역:아마도 VX Ace에 대한 내용인듯) #+========================================================================== DLB_USE_IT = false # (true / false) if DLB_USE_IT # 이 줄은 손대지 마세요. DLB_DATA = { #====================================================== # [KOR] 데이터베이스 파일의 데이터 수를 변경할 수 있습니다~ # * 기본적으로 데이터 베이스의 한도는 999개 # * 변수나 스위치의 한계는 5000개 # 이 스크립트는 이 한계를 돌파할 수 있습니다~ #=============================== # ** 설정방법 ** #------------------------------- # 한줄에는 반드시 1개의 데이터베이스 파일만 적어주세요. # 양식: '데이터베이스 파일' => (갯수), # 예: 'switch' => 5500, # (* 마지막에 쉼표( , )적는 것을 잊지 마세요!) #============================================== # ** [목록] 데이터베이스 파일 ** #---------------------------------------------- # 'switch' 스위치 # 'variable' 변수 # 'actor' 액터 # 'class' 직업 # 'skill' 스킬 # 'item' 아이템 # 'weapon' 무기 # 'armor' 방어구 # 'enemy' 적 # 'troop' 적그룹 # 'state' 상태 # 'tileset' 타일셋 (RMXP/RMVXA 전용) # 'animation' 애니메이션 # 'commonev' 커먼이벤트 # 'element' 속성(RMVXA 전용) # 'weapon_type' 무기 타입(RMVXA 전용) # 'skill_type' 스킬 타입(RMVXA 전용) # 'armor_type' 방어구 타입(RMVXA 전용) #====================================================== # * 여기부터 설정 시작! #====================================================== 'actor' => 1011, #======================================================== # * [END] 설정 끗! 이 아래로는 손대지 말것! #======================================================== 'end' => nil # Close hash } if defined?(Audio.setup_midi) # VXA dformat = '.rvdata2' elsif defined?(Graphics.wait) # VX dformat = '.rvdata' else # XP dformat = '.rxdata' end 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 'tileset'; dname = 'Tilesets'; dnewdata = 'RPG::Tileset.new' when 'commonev'; dname = 'CommonEvents'; dnewdata = 'RPG::CommonEvent.new' when 'element'; dname = 'System'; dvar = 'elements'; dnewdata = 'RPG::System.new' when 'weapon_type'; dname = 'System'; dvar = 'weapon_types'; dnewdata = 'RPG::System.new' when 'skill_type'; dname = 'System'; dvar = 'skill_types'; dnewdata = 'RPG::System.new' when 'armor_type'; dname = 'System'; dvar = 'armor_types'; dnewdata = 'RPG::System.new' when 'end'; next else; p 'unknown DLB_DATA!', 'Check carefully what you typed in DLB_DATA' end base_data = load_data('Data/' + dname + dformat) 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 + dformat) end end p 'Finished in ' + (Time.now - start_time).to_s + ' sec' exit end # checks for VXAce since these methods do not need to be overwritten # in RGSS3. unless defined?(Audio.setup_midi) class Game_Switches #-------------------------------------------------------------------------- # * Set Switch # Make the system be able to set switch ID more than 5000 #-------------------------------------------------------------------------- def []=(switch_id, value) @data[switch_id] = value end end class Game_Variables #-------------------------------------------------------------------------- # * Set Variable # Make the system be able to set switch ID more than 5000 #-------------------------------------------------------------------------- def []=(variable_id, value) @data[variable_id] = value end end end # unless defined?(Audio.setup_midi)