=begin
多语言系统插件V1.0
by 炽天裁决
这个插件可以导出数据库中的文本,然后做成外挂翻译
使用方法,放入此插件,将模式改为“save”运行游戏
然后会生成一个文档,在每一行后面添加对应的翻译
然后将模式改成“load”,即可
注意:此插件目前只支持替换数据库中的文本
脚本库善用查找功能就能轻松解决。。。吧
=end
module Dictionary
MODE = "load"#模式,save表示储存原始文本,load表示读取翻译文本
SAVE = "System/text_input.txt"#原始文本保存位置
NAME = "System/text_input.txt"#翻译文本保存位置
SPLIT = "``"#间隔符号
ENTER = "~~"#换行符号
end
$classlist = []
$init = false
############################################################################
if Dictionary::MODE == "save"
module DataManager
class <<self; alias sv_load_normal_database load_normal_database; end
def self.load_normal_database
sv_load_normal_database
save_all
end
def self.save_all
save_actor
save_class
save_skill
save_item
save_weapon
save_armor
save_enemy
save_state
save_troop
save_common_event
save_system
save_mapinfo
end
def self.sv_text(i,kind = "none",d = "#",id = 0)
id = id.to_s
return unless i.class == String
x = i.delete("0123456789,./*-+=% ")
return if x == ""
sv = File.new(Dictionary::SAVE, "a")
sv.syswrite(kind+"#{Dictionary::SPLIT}"+d+"#{Dictionary::SPLIT}"+id+"#{Dictionary::SPLIT}"+i + "#{Dictionary::SPLIT}\n#{Dictionary::ENTER}")
sv.close
end
def self.save_actor
kind = "$data_actors"
$data_actors.each{|a|
next if a == nil
sv_text(a.name,kind,"#name","#{a.id}")
sv_text(a.description,kind,"#description","#{a.id}")
sv_text(a.nickname,kind,"#nickname","#{a.id}")
}
end
def self.save_class
kind = "$data_classes"
$data_classes.each{|a|
next if a == nil
sv_text(a.name,kind,"#name","#{a.id}")
sv_text(a.description,"#description","#{a.id}")
}
end
def self.save_skill
kind = "$data_skills"
$data_skills.each{|a|
next if a == nil
sv_text(a.name,kind,"#name","#{a.id}")
sv_text(a.description,kind,"#description","#{a.id}")
sv_text(a.message1,kind,"#message1","#{a.id}")
sv_text(a.message2,kind,"#message2","#{a.id}")
}
end
def self.save_item
kind = "$data_items"
$data_items.each{|a|
next if a == nil
sv_text(a.name,kind,"#name","#{a.id}")
sv_text(a.description,kind,"#description","#{a.id}")
}
end
def self.save_weapon
kind = "$data_weapons"
$data_weapons.each{|a|
next if a == nil
sv_text(a.name,kind,"#name","#{a.id}")
sv_text(a.description,kind,"#description","#{a.id}")
}
end
def self.save_armor
kind = "$data_armors"
$data_armors.each{|a|
next if a == nil
sv_text(a.name,kind,"#name","#{a.id}")
sv_text(a.description,kind,"#description","#{a.id}")
}
end
def self.save_enemy
kind = "$data_enemies"
$data_enemies.each{|a|
next if a == nil
sv_text(a.name,kind,"#name","#{a.id}")
sv_text(a.description,kind,"#description","#{a.id}")
}
end
def self.save_state
kind = "$data_states"
$data_states.each{|a|
next if a == nil
sv_text(a.name,kind,"#name","#{a.id}")
sv_text(a.description,kind,"#description","#{a.id}")
sv_text(a.message1,kind,"#message1","#{a.id}")
sv_text(a.message2,kind,"#message2","#{a.id}")
sv_text(a.message3,kind,"#message3","#{a.id}")
sv_text(a.message4,kind,"#message4","#{a.id}")
}
end
def self.save_troop
kind = "$data_troops"
$data_troops.each{|a|
next if a == nil
sv_text(a.name,kind,"#name","#{a.id}")
a.pages.each{|i|
next if i == nil
i.list.each{|c|
next if c == nil
if input?(c)
c.parameters.each{|s|
sv_text(s,kind,"#event","#{a.id}")
}
end
}
}
}
end
def self.save_common_event
kind = "$data_common_events"
$data_common_events.each{|a|
next if a == nil
a.list.each{|i|
next if i == nil
if input?(i)
i.parameters.each{|s|
sv_text(s,kind,"#event","#{a.id}")
}
end
}
}
end
def self.save_system
kind = "$data_system "
a = $data_system
sv_text(a.game_title,kind,"#game_title")
sv_text(a.currency_unit,kind,"#currency_unit")
a.elements.each{|i|
sv_text(i,kind,"#elements")
}
a.weapon_types.each{|i|
sv_text(i,kind,"#weapon_types")
}
a.skill_types.each{|i|
sv_text(i,kind,"#skill_types")
}
# a.switches.each{|i|
# sv_text(i,kind,"#switches")
#}
# a.variables.each{|i|
# sv_text(i,kind,"#variables")
# }
a.terms.basic.each{|i|
sv_text(i,kind,"#terms.basic")
}
a.terms.params.each{|i|
sv_text(i,kind,"#terms.params")
}
a.terms.etypes.each{|i|
sv_text(i,kind,"#terms.etypes")
}
a.terms.commands.each{|i|
sv_text(i,kind,"#terms.commands")
}
end
def self.save_mapinfo
kind = "$data_mapinfos"
$data_mapinfos.each{|b,a|
next if a == nil
sv_text(a.name,kind,"#name","#{a.parent_id}")
next if a.parent_id == 0
map = load_data(sprintf("Data/Map%03d.rvdata2", a.parent_id))
kind2 = (sprintf("Map%03d", a.parent_id))
sv_text(map.display_name,kind2,"#display_name","#{a.parent_id}")
map.events.each{|k,v|
next if v == nil
v.pages.each{|p|
next if p == nil
p.list.each{|c|
next if c == nil
if input?(c)
c.parameters.each{|s|
sv_text(s,kind2,"#envent","#{a.parent_id}")
}
end
}
}
}
}
end
def self.input?(i)
a = [401]
return a.include?(i.code)
end
end
end
if Dictionary::MODE == "load"
$tsl_list = {}
ld = File.read(Dictionary::NAME).split("\n#{Dictionary::ENTER}")
ld.each{|line|
a = line.split("#{Dictionary::SPLIT}")
$tsl_list[a[0]] = {} if $tsl_list[a[0]] == nil
$tsl_list[a[0]][a[2]] = {} if $tsl_list[a[0]][a[2]] == nil
$tsl_list[a[0]][a[2]][a[3]] = a[4] if a.size == 5
}
module DataManager
class <<self; alias ld_load_normal_database load_normal_database; end
def self.load_normal_database
ld_load_normal_database
load_all
end
def self.load_all
load_actor
load_class
load_skill
load_item
load_weapon
load_armor
load_enemy
load_state
load_troop
load_common_event
load_system
load_mapinfo
end
def self.ld_text(i,kind = "none",b = "#",id = 0)
id = id.to_s
return false unless i.class == String
x = i.delete("0123456789,./*-+=% ")
return false if x == ""
return false if $tsl_list[kind] == nil
return false if $tsl_list[kind][id] == nil
m = $tsl_list[kind][id][i]
return false if m == nil
return m
end
def self.load_actor
kind = "$data_actors"
data = [nil]
$data_actors.each{|a|
next if a == nil
n = ld_text(a.name,kind,"#name","#{a.id}")
a.name = n if n != false
n = ld_text(a.description,kind,"#description","#{a.id}")
a.description = n if n != false
n = ld_text(a.nickname,kind,"#nickname","#{a.id}")
a.nickname = n if n != false
data+=[a]
}
$data_actors = data
end
def self.load_class
kind = "$data_classes"
data = [nil]
$data_classes.each{|a|
next if a == nil
n = ld_text(a.name,kind,"#name","#{a.id}")
a.name = n if n != false
n = ld_text(a.description,kind,"#description","#{a.id}")
a.description = n if n != false
data+=[a]
}
$data_classes = data
end
def self.load_skill
kind = "$data_skills"
data = [nil]
$data_skills.each{|a|
next if a == nil
n = ld_text(a.name,kind,"#name","#{a.id}")
a.name = n if n != false
n = ld_text(a.description,kind,"#description","#{a.id}")
a.description = n if n != false
n = ld_text(a.message1,kind,"#message1","#{a.id}")
a.message1 = n if n != false
n = ld_text(a.message2,kind,"#message2","#{a.id}")
a.message2 = n if n != false
data+=[a]
}
$data_skills = data
end
def self.load_item
kind = "$data_items"
data = [nil]
$data_items.each{|a|
next if a == nil
n = ld_text(a.name,kind,"#name","#{a.id}")
a.name = n if n != false
n = ld_text(a.description,kind,"#description","#{a.id}")
a.description = n if n != false
data+=[a]
}
$data_items = data
end
def self.load_weapon
kind = "$data_weapons"
data = [nil]
$data_weapons.each{|a|
next if a == nil
n = ld_text(a.name,kind,"#name","#{a.id}")
a.name = n if n != false
n = ld_text(a.description,kind,"#description","#{a.id}")
a.description = n if n != false
data+=[a]
}
$data_weapons = data
end
def self.load_armor
kind = "$data_armors"
data = [nil]
$data_armors.each{|a|
next if a == nil
n = ld_text(a.name,kind,"#name","#{a.id}")
a.name = n if n != false
n = ld_text(a.description,kind,"#description","#{a.id}")
a.description = n if n != false
data+=[a]
}
$data_armors = data
end
def self.load_enemy
kind = "$data_enemies"
data = [nil]
$data_enemies.each{|a|
next if a == nil
n = ld_text(a.name,kind,"#name","#{a.id}")
a.name = n if n != false
n = ld_text(a.description,kind,"#description","#{a.id}")
a.description = n if n != false
data+=[a]
}
$data_enemies = data
end
def self.load_state
kind = "$data_states"
data = [nil]
$data_states.each{|a|
next if a == nil
n = ld_text(a.name,kind,"#name","#{a.id}")
a.name = n if n != false
n = ld_text(a.description,kind,"#description","#{a.id}")
a.description = n if n != false
n = ld_text(a.message1,kind,"#message1","#{a.id}")
a.message1 = n if n != false
n = ld_text(a.message2,kind,"#message2","#{a.id}")
a.message2 = n if n != false
n = ld_text(a.message3,kind,"#message3","#{a.id}")
a.message3 = n if n != false
n = ld_text(a.message4,kind,"#message4","#{a.id}")
a.message4 = n if n != false
data+=[a]
}
$data_states = data
end
def self.load_troop
kind = "$data_troops"
data = [nil]
$data_troops.each{|a|
next if a == nil
n = ld_text(a.name,kind,"#name","#{a.id}")
a.name = n if n != false
a.pages.each_index{|i|
next if a.pages[i] == nil
a.pages[i].list.each_index{|c|
next if a.pages[i].list[c] == nil
if input?(a.pages[i].list[c])
a.pages[i].list[c].parameters.each_index{|s|
n = ld_text(a.pages[i].list[c].parameters[s],kind,"#event","#{a.id}")
a.pages[i].list[c].parameters[s] = n if n != false
}
end
}
}
data+=[a]
}
$data_troops = data
end
def self.load_common_event
kind = "$data_common_events"
$data_common_events.each_index{|a|
next if $data_common_events[a] == nil
$data_common_events[a].list.each_index{|i|
next if $data_common_events[a].list[i] == nil
if input?($data_common_events[a].list[i])
$data_common_events[a].list[i].parameters.each_index{|s|
n = ld_text($data_common_events[a].list[i].parameters[s],kind,"#event","#{$data_common_events[a].id}")
$data_common_events[a].list[i].parameters[s] = n if n != false
}
end
}
}
end
def self.load_system
kind = "$data_system "
a = $data_system
n = ld_text(a.game_title,kind,"#game_title")
a.game_title = n if n != false
n = ld_text(a.currency_unit,kind,"#currency_unit")
a.currency_unit = n if n != false
a.elements.each_index{|i|
n = ld_text(a.elements[i],kind,"#elements")
a.elements[i] = n if n != false
}
a.weapon_types.each_index{|i|
n = ld_text(a.weapon_types[i],kind,"#weapon_types")
a.weapon_types[i] = n if n != false
}
a.skill_types.each_index{|i|
n = ld_text(a.skill_types[i],kind,"#skill_types")
a.skill_types[i] = n if n != false
}
a.switches.each_index{|i|
n = ld_text(a.switches[i],kind,"#switches")
a.switches[i] = n if n != false
}
a.variables.each_index{|i|
n = ld_text(a.variables[i],kind,"#variables")
a.variables[i] = n if n != false
}
a.terms.basic.each_index{|i|
n = ld_text(a.terms.basic[i],kind,"#terms.basic")
a.terms.basic[i] = n if n != false
}
a.terms.params.each_index{|i|
n = ld_text(a.terms.params[i],kind,"#terms.params")
a.terms.params[i] = n if n != false
}
a.terms.etypes.each_index{|i|
n = ld_text(a.terms.etypes[i],kind,"#terms.etypes")
a.terms.etypes[i] = n if n != false
}
a.terms.commands.each_index{|i|
n = ld_text(a.terms.commands[i],kind,"#terms.commands")
a.terms.commands[i] = n if n != false
}
$data_system = a
end
def self.load_mapinfo
kind = "$data_mapinfos"
data = [nil]
$data_mapinfos.each{|b,a|
next if a == nil
n = ld_text(a.name,kind,"#name","#{a.parent_id}")
$data_mapinfos[b].name = n if n != false
data+=[a]
}
$data_mapinfos = data
end
def self.load_map(id)
map = load_data(sprintf("Data/Map%03d.rvdata2", id))
kind2 = (sprintf("Map%03d", id))
n = ld_text(map.display_name,kind2,"#display_name","#{id}")
map.display_name = n if n != false
map.events.each{|k,v|
next if v == nil
v.pages.each_index{|p|
next if v.pages[p] == nil
v.pages[p].list.each_index{|c|
next if v.pages[p].list[c] == nil
if input?(v.pages[p].list[c])
v.pages[p].list[c].parameters.each_index{|s|
n = ld_text(v.pages[p].list[c].parameters[s],kind2,"#envent","#{id}")
map.events[k].pages[p].list[c].parameters[s] = n if n != false
}
end
}
}
}
return map
end
def self.input?(i)
a = [401]
return a.include?(i.code)
end
end
class Game_Map
alias ld_setup setup
def setup(map_id)
ld_setup(map_id)
@map_id = map_id
@map = DataManager.load_map(map_id) unless @map_id == Region_Effects::SPAWN_MAP_ID
@tileset_id = @map.tileset_id
@display_x = 0
@display_y = 0
referesh_vehicles
setup_events
setup_scroll
setup_parallax
setup_battleback
@need_refresh = false
end
end
end