| 赞 | 0 |
| VIP | |
| 好人卡 | |
| 积分 | 1 |
| 经验 | |
| 最后登录 | 2013-3-19 |
| 在线时间 | 8 小时 |
- 梦石
- 0
- 星屑
- 50
- 在线时间
- 8 小时
- 注册时间
- 2008-5-6
- 回帖
- 5
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有账号?注册会员
×
本帖最后由 白加黑 于 2013-2-22 12:13 编辑
原帖地址:
ht该死的“新手”限制,权限你妹! tp://forums.rpgmakerweb.com/index.php?/topic/3114-updated-using-rgss3-with-rpg-maker-vx/
va的好处不用多说了,速度快效率高,分辨率解放,等同于vx的改良版,但是固守vx的玩家也很多,主要就是自己所用的游戏脚本系统没有替代品(+1),亦或是素材地图是vx格式无法移植
此方法可以在不破坏游戏文件夹结构的同时让你的游戏轻松搞到120fps,1024*768,请严格按照下面方法执行(第五步除外),执行前备份游戏文件夹
原帖提供的两段代码需要翻墙,特此予以转载
[pre lang="ruby" line="1"] #===============================================================================
# RAFAEL_SOL_MAKER's RGSS2 DATA STRUCTURE FOR ACE (BETA)
# SLIM VERSION: LESS 542 LINES IF COMPARED WITH THE PREVIOUS VERSION
#_______________________________________________________________________________
# Description | It's simply part of the RPG Module Data Structure, extracted
# | originally from RPG Maker VX Help file. This version is
# | tweaked and intended to run only with the RGSS3 game player.
#________________|______________________________________________________________
# Usage | Just plug it before any other scripts, including the ones
# | from default game engine. Yes, this will be the very first!
#________________|______________________________________________________________
# Specifications | Difficulty to Use:
# | * (almost none at all, just plug it correctly)
# | Scripting Difficulty:
# | * (few, it's only a data structure after all)
# | Compatibility:
# | ??? (it's already made to create compatibility!)
# | New Methods:
# | - (none, only old methods already made for RPG Module)
# | Overwritten Methods:
# | - (depends on what are you using for)
# | Aliased Methods:
# | - RPG::Actor.new
# | - RPG::UsableItem.new
# | - RPG::Skill.new
# | - RPG::Item.new
# | - RPG::EquipItem.new
# | - RPG::Weapon.new
# | - RPG::Enemy.new
# | - RPG::Troop.new
# | - RPG::State.new
# | - RPG::System.new
# | - RPG::System::TestBattler.new
#________________|______________________________________________________________
# Special Thanks | -
#________________|______________________________________________________________
#===============================================================================
module RPG
class Area
def initialize
@id = 0
@name = ""
@map_id = 0
@rect = Rect.new(0,0,0,0)
@encounter_list = []
@order = 0
end
attr_accessor :id
attr_accessor :name
attr_accessor :map_id
attr_accessor :rect
attr_accessor :encounter_list
attr_accessor :order
end
class Actor
alias rgss2to3_initialize initialize
def initialize
rgss2to3_initialize
@id = 0
@name = ""
@exp_basis = 25
@exp_inflation = 35
@parameters = Table.new(6,100)
for i in 1..99
@parameters[0,i] = 400+i*50
@parameters[1,i] = 80+i*10
@parameters[2,i] = 15+i*5/4
@parameters[3,i] = 15+i*5/4
@parameters[4,i] = 20+i*5/2
@parameters[5,i] = 20+i*5/2
end
@weapon_id = 0
@armor1_id = 0
@armor2_id = 0
@armor3_id = 0
@armor4_id = 0
@two_swords_style = false
@fix_equipment = false
@auto_battle = false
@super_guard = false
@pharmacology = false
@critical_bonus = false
end
attr_accessor :id
attr_accessor :name
attr_accessor :exp_basis
attr_accessor :exp_inflation
attr_accessor :parameters
attr_accessor :weapon_id
attr_accessor :armor1_id
attr_accessor :armor2_id
attr_accessor :armor3_id
attr_accessor :armor4_id
attr_accessor :two_swords_style
attr_accessor :fix_equipment
attr_accessor :auto_battle
attr_accessor :super_guard
attr_accessor :pharmacology
attr_accessor :critical_bonus
end
class Class
def initialize
@id = 0
@name = ""
@position = 0
@weapon_set = []
@armor_set = []
@element_ranks = Table.new(1)
@state_ranks = Table.new(1)
@learnings = []
@skill_name_valid = false
@skill_name = ""
end
attr_accessor :id
attr_accessor :name
attr_accessor :position
attr_accessor :weapon_set
attr_accessor :armor_set
attr_accessor :element_ranks
attr_accessor :state_ranks
attr_accessor :learnings
attr_accessor :skill_name_valid
attr_accessor :skill_name
end
class UsableItem < BaseItem
alias rgss2to3_initialize initialize
def initialize
rgss2to3_initialize
super
@common_event_id = 0
@base_damage = 0
@variance = 20
@atk_f = 0
@spi_f = 0
@physical_attack = false
@damage_to_mp = false
@absorb_damage = false
@ignore_defense = false
@element_set = []
@plus_state_set = []
@minus_state_set = []
end
def for_one? # Overwrite: +4
return [1, 3, 4, 7, 9, 11].include?(@scope)
end
def for_two?
return [5].include?(@scope)
end
def for_three?
return [6].include?(@scope)
end
def for_random? # Overwrite: -3
return [4, 5, 6].include?(@scope)
end
def dual?
return [3].include?(@scope)
end
def need_selection? # Overwrite: +3
return [1, 3, 7, 9].include?(@scope)
end
attr_accessor :common_event_id
attr_accessor :base_damage
attr_accessor :variance
attr_accessor :atk_f
attr_accessor :spi_f
attr_accessor :physical_attack
attr_accessor :damage_to_mp
attr_accessor :absorb_damage
attr_accessor :ignore_defense
attr_accessor :element_set
attr_accessor :plus_state_set
attr_accessor :minus_state_set
end
class Skill < UsableItem
alias rgss2to3_initialize initialize
def initialize
rgss2to3_initialize
super
@hit = 100
end
attr_accessor :hit
end
class Item < UsableItem
alias rgss2to3_initialize initialize
def initialize
rgss2to3_initialize
super
@hp_recovery_rate = 0
@hp_recovery = 0
@mp_recovery_rate = 0
@mp_recovery = 0
@parameter_type = 0
@parameter_points = 0
end
attr_accessor :hp_recovery_rate
attr_accessor :hp_recovery
attr_accessor :mp_recovery_rate
attr_accessor :mp_recovery
attr_accessor :parameter_type
attr_accessor :parameter_points
end
class EquipItem < BaseItem
alias rgss2to3_initialize initialize
def initialize
rgss2to3_initialize
super
@atk = 0
@def = 0
@spi = 0
@agi = 0
@element_set = []
@state_set = []
end
attr_accessor :atk
attr_accessor :def
attr_accessor :spi
attr_accessor :agi
attr_accessor :element_set
attr_accessor :state_set
end
class Weapon < EquipItem
alias rgss2to3_initialize initialize
def initialize
rgss2to3_initialize
super
@hit = 95
@two_handed = false
@fast_attack = false
@dual_attack = false
@critical_bonus = false
end
attr_accessor :hit
attr_accessor :two_handed
attr_accessor :fast_attack
attr_accessor :dual_attack
attr_accessor :critical_bonus
end
class Armor < EquipItem
def initialize
super
@kind = 0
@eva = 0
@prevent_critical = false
@half_mp_cost = false
@double_exp_gain = false
@auto_hp_recover = false
end
attr_accessor :kind
attr_accessor :eva
attr_accessor :prevent_critical
attr_accessor :half_mp_cost
attr_accessor :double_exp_gain
attr_accessor :auto_hp_recover
end
class Enemy
alias rgss2to3_initialize initialize
def initialize
rgss2to3_initialize
@id = 0
@name = ""
@maxhp = 10
@maxmp = 10
@atk = 10
@def = 10
@spi = 10
@agi = 10
@hit = 95
@eva = 5
@drop_item1 = RPG::Enemy::DropItem.new
@drop_item2 = RPG::Enemy::DropItem.new
@levitate = false
@has_critical = false
@element_ranks = Table.new(1)
@state_ranks = Table.new(1)
@note = ""
end
attr_accessor :id
attr_accessor :name
attr_accessor :maxhp
attr_accessor :maxmp
attr_accessor :atk
attr_accessor :def
attr_accessor :spi
attr_accessor :agi
attr_accessor :hit
attr_accessor :eva
attr_accessor :drop_item1
attr_accessor :drop_item2
attr_accessor :levitate
attr_accessor :has_critical
attr_accessor :element_ranks
attr_accessor :state_ranks
attr_accessor :note
class DropItem
def initialize
@kind = 0
@item_id = 1
@weapon_id = 1
@armor_id = 1
@denominator = 1
end
attr_accessor :kind
attr_accessor :item_id
attr_accessor :weapon_id
attr_accessor :armor_id
attr_accessor :denominator
end
class Action
def initialize
@kind = 0
@basic = 0
@skill_id = 1
@condition_type = 0
@condition_param1 = 0
@condition_param2 = 0
@rating = 5
end
def skill?
return @kind == 1
end
attr_accessor :kind
attr_accessor :basic
attr_accessor :skill_id
attr_accessor :condition_type
attr_accessor :condition_param1
attr_accessor :condition_param2
attr_accessor :rating
end
end
class Troop
class Member
alias rgss2to3_initialize initialize
def initialize
rgss2to3_initialize
@immortal = false
end
attr_accessor :immortal
end
end
class State
alias rgss2to3_initialize initialize
def initialize
rgss2to3_initialize
@id = 0
@name = ""
@icon_index = 0
@priority = 5 # Overwrite: 5 instead 50
@atk_rate = 100
@def_rate = 100
@spi_rate = 100
@agi_rate = 100
@nonresistance = false
@offset_by_opposite = false
@slip_damage = false
@reduce_hit_ratio = false
@battle_only = true
@release_by_damage = false
@hold_turn = 0
@auto_release_prob = 0
@element_set = []
@state_set = []
@note = ""
end
attr_accessor :id
attr_accessor :name
attr_accessor :icon_index
attr_accessor :atk_rate
attr_accessor :def_rate
attr_accessor :spi_rate
attr_accessor :agi_rate
attr_accessor :nonresistance
attr_accessor :offset_by_opposite
attr_accessor :slip_damage
attr_accessor :reduce_hit_ratio
attr_accessor :battle_only
attr_accessor :release_by_damage
attr_accessor :hold_turn
attr_accessor :auto_release_prob
attr_accessor :element_set
attr_accessor :state_set
attr_accessor :note
end
class System
alias rgss2to3_initialize initialize
def initialize
rgss2to3_initialize
@passages = Table.new(8192)
end
attr_accessor :passages
class Terms
def initialize
@level = ""
@level_a = ""
@hp = ""
@hp_a = ""
@mp = ""
@mp_a = ""
@atk = ""
@def = ""
@spi = ""
@agi = ""
@weapon = ""
@armor1 = ""
@armor2 = ""
@armor3 = ""
@armor4 = ""
@weapon1 = ""
@weapon2 = ""
@attack = ""
@skill = ""
@guard = ""
@item = ""
@equip = ""
@status = ""
@save = ""
@game_end = ""
@fight = ""
@escape = ""
@new_game = ""
@continue = ""
@shutdown = ""
@to_title = ""
@cancel = ""
@gold = ""
end
attr_accessor :level
attr_accessor :level_a
attr_accessor :hp
attr_accessor :hp_a
attr_accessor :mp
attr_accessor :mp_a
attr_accessor :atk
attr_accessor :def
attr_accessor :spi
attr_accessor :agi
attr_accessor :weapon
attr_accessor :armor1
attr_accessor :armor2
attr_accessor :armor3
attr_accessor :armor4
attr_accessor :weapon1
attr_accessor :weapon2
attr_accessor :attack
attr_accessor :skill
attr_accessor :guard
attr_accessor :item
attr_accessor :equip
attr_accessor :status
attr_accessor :save
attr_accessor :game_end
attr_accessor :fight
attr_accessor :escape
attr_accessor :new_game
attr_accessor :continue
attr_accessor :shutdown
attr_accessor :to_title
attr_accessor :cancel
attr_accessor :gold
class TestBattler
alias rgss2to3_initialize initialize
def initialize
rgss2to3_initialize
@weapon_id = 0
@armor1_id = 0
@armor2_id = 0
@armor3_id = 0
@armor4_id = 0
end
attr_accessor :weapon_id
attr_accessor :armor1_id
attr_accessor :armor2_id
attr_accessor :armor3_id
attr_accessor :armor4_id
end
end
end
end
[/pre]
[pre lang="ruby" line="1"] #===============================================================================
# RAFAEL_SOL_MAKER's RGSS2 TO RGSS3 FIXES(Work-in-Progress) v0.2
#_______________________________________________________________________________
# Description | Some fixes if you plan to put your Ace game to run on RGSS3.
# | It was proven it's not hard at all, and there are some
# | advantages, like a faster and better Ruby, improved Audio
# | classes, creation of bitmaps with more than 2048x2048 pixels,
# | using a exclusive (and coding flexible) layer to autoshadows,
# | and some other cool features.
#________________|______________________________________________________________
# Usage | Plug it above any custom scripts, below default engine ones.
#________________|______________________________________________________________
# Specifications | Difficulty to Use:
# | * (almost none at all)
# | Scripting Difficulty:
# | * * ½ (I particularly don't recommend to edit it)
# | Compatibility:
# | ??? (it's already made to create compatibility!)
# | New Methods:
# | - Tilemap.passages
# | Overwritten Methods:
# | - (none)
# | Aliased Methods:
# | - Game_Map.setup
# | - Window_Base.initialize
# | - Spriteset_Map.create_tilemap
#________________|______________________________________________________________
# Known Issues | This is a W.I.P. version, so, it's expected to be incomplete.
# | Probably with more tests some problems and bugs can appear...
#________________|______________________________________________________________
# Special Thanks | Migetman12
#________________|______________________________________________________________
#===============================================================================
#===============================================================================
# Tilemap Fix | Well, it's surprising that only it's needed to fix Tilemap!
#________________|______________________________________________________________
#===============================================================================
class Tilemap
def passages=(value)
@passages = value
end
end
#===============================================================================
# Autoshadow Fix | Here let's use the RGSS3 fourth Tilemap layer to do it
#________________|______________________________________________________________
#===============================================================================
class Game_Map
alias __setup setup
def setup(map_id)
__setup(map_id)
__data = data
__data.resize(__data.xsize, __data.xsize, 4)
for x in 0...(__data.xsize - 1)
for y in 0...(__data.ysize - 1)
if __data[x, y, 0] >= 4352 && __data[x, y + 1 ,0] >= 4352 &&
__data[x + 1, y + 1, 0] < 4352
# If you dont want to use autoshadows, change the 5 below to 0
__data[x + 1, y + 1, 3] = 5
end
end
end
end
end
#===============================================================================
# Window Padding | Only changing its default from 12 to 16
#________________|______________________________________________________________
#===============================================================================
class Window_Base < Window
alias __initialize initialize
def initialize(x, y, width, height)
__initialize(x, y, width, height)
self.padding = 16
end
end
#===============================================================================
# Tile Priority | To show some tiles above the hero correctly
#________________|______________________________________________________________
#===============================================================================
class Spriteset_Map
alias __create_tilemap create_tilemap
def create_tilemap
__create_tilemap
@tilemap.flags = $game_map.passages # $data_system.passages
end
end
[/pre]
使用方法:(我这里写的简略不明,最好查看原帖)
准备工作:安装va和vx,提取需要的文件及vx rtp,备份原来的工程,建议使用容错脚本
1.将你游戏中需要的所有素材拷贝到游戏文件夹内,最好包括rtp,新工程将不能识别系统默认的rtp位置(但是能识别va的)
2.拷贝rmva的game.exe(原来游戏的exe没用了)和rgss300.dll到游戏所在的文件夹中,将rmva的game.ini改名为Game_Ace.ini拷贝放入,请将game.ini和Game_Ace.ini中的“RTP=RPGVX”都改为“RTP=”以避免素材混乱
3.新建一个批处理文件,内容如下
@echo off
COPY Game_Ace.ini Game.ini
COPY Data\Scripts.rvdata Data\Scripts.rvdata2
START Game.exe
将此bat放在游戏根目录下
4.打开游戏,将最上面的两段代码插入到main上面,删除main并用以下代码替换原来的main- rgss_main{
- Graphics.freeze
- Font.default_name = [ "SimHei", "黑体", "DFKai-SB", "標楷體", "Verdana"]#带注释的为转载者添加,恢复vx默认字体
- Graphics.resize_screen(640,480)#分辨率随意改~1024也能支持
- $scene = Scene_Title.new
- #Graphics.frame_rate = 120#这句看情况自行diy
- $scene.main while $scene != nil
- Graphics.transition(30)
- }
复制代码 5.删除你游戏所在的文件夹并清空回收站,最好对游戏所在的硬盘进行完全擦除或低级格式化(这句是里人格写的,与作者和转载者无关)
6.关于改完后的工程:
#那个bat文件的作用就是将你当前编辑好的脚本转化为rgss3可是别的脚本格式,外加重定位game.ini,再不修改脚本的情况下无需重复运行
#在每次脚本修改后需要运行一次bat文件,以将脚本更新为rgss3所支持的格式,技术党可以将game.exe和bat打包成一个exe即可解决所有问题
#使用的编辑工具依然是rmvx,兼容之前的vx脚本~
#vx编辑器中直接测试游戏依然可用
7.作者说这个还只是beta版,有bug,不过经过测试,即使是极复杂的脚本系统也没有发现错误,万一出现bug,请诸位多从自己身上找原因,谢谢
|
评分
-
查看全部评分
|