本帖最后由 九夜神尊 于 2012-8-29 17:30 编辑
1243852 发表于 2012-8-29 01:12
我没发现你一楼说明了个什么……………………太不详细了。
那我就给你诠释一下吧!
把两个工程考到一起,是为了数据都在一个地方。因为后缀不通,所以文件可以共存。
用VX打开属于VX的数据修改,用VA打开VA的数据修改。
然而在实际游戏运行的时候VA可以同时调用属于VA的和VX的文件。
$data_classes = load_data("Data/Classes.rvdata2") #载入VA的档案
$vx_data_classes = load_data("Data/Classes.rvdata") #载入VX的档案
这代码我相信你看得懂吧?
为什么我调用class的档案呢?
我们设计了一种特殊的装备,这些装备不分种类,不同的职业能使用不同的装备。没有任何规律。
这时候,只有XPVX的职业设置才能做到了,于是我想到了把VX的数据用到这里来。
这样做的意义在于,取XP VX VA的优点。
XP不是没有备注栏么?那么可以调用VX对应的备注呢?
VX不是没有地形标志么?用XP的可以吧!
XP不是有 666个动画数据库么?VA可以用上么??
地图图块设置上,XP有雾图形,战斗背景,远景呢!
虽然这些问题用脚本,哈希表,备注栏等等方法都能得到解决。但是可视化编辑不比翻来翻去填写ID方便的多么?
只是我没想到我的内容不那么好理解。
module VX_AND_VA #-------------------------------------------------------------------------- # ● 转换名字 #-------------------------------------------------------------------------- def self.change_name(a,b) a.each_with_index do |oa,i| next unless oa and b[i] oa.name=b[i].name end end #-------------------------------------------------------------------------- # ● 转换名字 #-------------------------------------------------------------------------- def self.do_change(data_name) a = load_data("Data/#{data_name}.rvdata") b = load_data("Data/#{data_name}.rvdata2") VX_AND_VA.change_name(a,b) save_data(a,"Data/#{data_name}.rvdata") p "#{data_name}转换完毕" end end #以下数组是全部需要转型的数据文件名 ["Actors","Classes","Weapons","Armors"].each do |name| VX_AND_VA.do_change(name) end #~ #★,以上被注释掉,若需要转型取消注释
module VX_AND_VA
#--------------------------------------------------------------------------
# ● 转换名字
#--------------------------------------------------------------------------
def self.change_name(a,b)
a.each_with_index do |oa,i|
next unless oa and b[i]
oa.name=b[i].name
end
end
#--------------------------------------------------------------------------
# ● 转换名字
#--------------------------------------------------------------------------
def self.do_change(data_name)
a = load_data("Data/#{data_name}.rvdata")
b = load_data("Data/#{data_name}.rvdata2")
VX_AND_VA.change_name(a,b)
save_data(a,"Data/#{data_name}.rvdata")
p "#{data_name}转换完毕"
end
end
#以下数组是全部需要转型的数据文件名
["Actors","Classes","Weapons","Armors"].each do |name|
VX_AND_VA.do_change(name)
end
#~ #★,以上被注释掉,若需要转型取消注释
这样的脚本是用于随时合并VX VA两组数据库的名字的。
class RPG::Class < RPG::BaseItem #-------------------------------------------------------------------------- # ● VA初始化别名 #-------------------------------------------------------------------------- alias va_initialize initialize #-------------------------------------------------------------------------- # ● VX初始化别名 #-------------------------------------------------------------------------- def vx_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 #-------------------------------------------------------------------------- # ● 初始化 #-------------------------------------------------------------------------- def initialize va_initialize vx_initialize end def exp_for_level(level) lv = level.to_f basis = @exp_params[0].to_f extra = @exp_params[1].to_f acc_a = @exp_params[2].to_f acc_b = @exp_params[3].to_f return (basis*((lv-1)**(0.9+acc_a/250))*lv*(lv+1)/ (6+lv**2/50/acc_b)+(lv-1)*extra).round.to_i end #--------VA----------------- attr_accessor :exp_params attr_accessor :params attr_accessor :learnings #-------------VX------------------------ 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 RPG::Class < RPG::BaseItem
#--------------------------------------------------------------------------
# ● VA初始化别名
#--------------------------------------------------------------------------
alias va_initialize initialize
#--------------------------------------------------------------------------
# ● VX初始化别名
#--------------------------------------------------------------------------
def vx_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
#--------------------------------------------------------------------------
# ● 初始化
#--------------------------------------------------------------------------
def initialize
va_initialize
vx_initialize
end
def exp_for_level(level)
lv = level.to_f
basis = @exp_params[0].to_f
extra = @exp_params[1].to_f
acc_a = @exp_params[2].to_f
acc_b = @exp_params[3].to_f
return (basis*((lv-1)**(0.9+acc_a/250))*lv*(lv+1)/
(6+lv**2/50/acc_b)+(lv-1)*extra).round.to_i
end
#--------VA-----------------
attr_accessor :exp_params
attr_accessor :params
attr_accessor :learnings
#-------------VX------------------------
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
这是用于同时兼容VX VA的Class数据库的脚本。
|