Project1
标题:
[rpgmakervx.net]影子效果翻译(等待修改成XP版)
[打印本页]
作者:
司马睿风
时间:
2008-12-5 00:08
标题:
[rpgmakervx.net]影子效果翻译(等待修改成XP版)
此奖励积分已经收回,工作失误(汗)
by.杀人越货
翻译的一般吧,应该能看懂,不过我没看过脚本内容就是了,大概的意思是通过事件的中加入一个注释,然后这个事件被当作现实中的太阳来使用来产生影子效果
#==============================================================================
# ** Spriteset_Map
#------------------------------------------------------------------------------
# This class edits problems cause by Sprite_Shadow and Sprite_Sun
#==============================================================================
class Spriteset_Map
#--------------------------------------------------------------------------
# * Alias Listings
#--------------------------------------------------------------------------
alias create_viewports_original create_viewports
alias dispose_viewports_original dispose_viewports
alias update_viewports_original update_viewports
alias update_tilemap_original update_tilemap
alias dispose_tilemap_original dispose_tilemap
alias create_tilemap_original create_tilemap
#--------------------------------------------------------------------------
# * Create Viewport
#--------------------------------------------------------------------------
def create_viewports
create_viewports_original
@viewport0 = Viewport.new(0, 0, 544, 416)
@viewport0.z = 1
@viewport1.z = 20
end
#--------------------------------------------------------------------------
# * Create Tilemap
#--------------------------------------------------------------------------
def create_tilemap
create_tilemap_original
@tilemap0 = Tilemap.new(@viewport0)
@tilemap0.bitmaps[0] = Cache.system("TileA1")
@tilemap0.bitmaps[1] = Cache.system("TileA2")
@tilemap0.bitmaps[4] = Cache.system("TileA5")
@tilemap = Tilemap.new(@viewport1)
@tilemap.bitmaps[2] = Cache.system("TileA3")
@tilemap.bitmaps[3] = Cache.system("TileA4")
@tilemap.bitmaps[5] = Cache.system("TileB")
@tilemap.bitmaps[6] = Cache.system("TileC")
@tilemap.bitmaps[7] = Cache.system("TileD")
@tilemap.bitmaps[8] = Cache.system("TileE")
@tilemaps = [@tilemap, @tilemap0]
@tilemaps.each {|x| x.map_data = $game_map.data}
@tilemaps.each {|x| x.passages = $game_map.passages}
end
#--------------------------------------------------------------------------
# * Dispose of Tilemap
#--------------------------------------------------------------------------
def dispose_tilemap
dispose_tilemap_original
@tilemap0.dispose
end
#--------------------------------------------------------------------------
# * Dispose of Viewport
#--------------------------------------------------------------------------
def dispose_viewports
@viewport0.dispose
dispose_viewports_original
end
#--------------------------------------------------------------------------
# * Update Tilemap
#--------------------------------------------------------------------------
def update_tilemap
update_tilemap_original
@tilemap0.ox = $game_map.display_x / 8
@tilemap0.oy = $game_map.display_y / 8
@tilemap0.update
end
#--------------------------------------------------------------------------
# * Update Viewport
#--------------------------------------------------------------------------
def update_viewports
update_viewports_original
@viewport0.tone = $game_map.screen.tone
@viewport0.ox = $game_map.screen.shake
@viewport0.update
end
end
复制代码
#==============================================================================
# ** Sprite Sun
#------------------------------------------------------------------------------
# Based on Sprite Shadow
# modified by Rataime
# New Edits by DerVVulfman
# Modified for VX by Syvkal
# Fixes by Painhurt
# October 14, 2008
#------------------------------------------------------------------------------
#
#简介:
#
#此系统可让您和所有的'准备'的活动而产生的阴影
#外地地图。该播放器可以移动左右,而计划'阳光'会
#显示了一层阴影。同样,事件,特别在其发表评论
#活动名单也可以产生阴影。
#
#------------------------------------------------- -----------------------------
#
#说明:
#
# -太阳
#要创建一个太阳的影响,您需要创建一个地图事件的是
#使用'为'太阳本身。在大多数情况下,这将是一个
#如果没有字符图形。
#不想看太阳吗?(作者增加恶搞吧)
#
#为了使这些事件的一个太阳,您需要插入一个几
#事情到这一事件的“事件列表命令中 。这些事情是没好注释的
#
#第一个评论补充的是, “制造一个太阳“(不含引号) 。它通知
#系统,这个地图有一个太阳的影响。剩下的两个
#值是可选的,并预设值中的配置 (只需加入脚本中) 。他们也增加注释
#
# self_angle '变量或数值' ---每个阴影有多少个角度(不确定)
# self_opacity '变量数值' ---阴影黑色程度。
#
#在此之后,您的人物现在可以走动,并产生阴影。
#
# -其他活动
#事件不知道他们会产生阴影。为了让这些知道影子,
#所有您需要做的是添加一个特殊的注释加入
# “事件的命令中” 。评论需要这仅仅是一句
# '开始阴影' (同样不包括引号) 。
#(作者也许是需要插入begin Shadow这个注释来启动影子系统)
#
#
#------------------------------------------------- -----------------------------
#
#修订说明:
#
# 1 )加入格式化的标题和注释在整个中。
# 2 )封装注释/参数代码在XPML模块。
# 3 )设置太阳阴影数组的一个实例用较少的资源。
# 4 )兼容近Fantastica的跟进运动系统。
# 5 )兼容Ccoa的卡特彼勒系统。
#6 )兼容性与骗子的卡特彼勒系统。
#7 )由默认的阴影设置的配置节。
#(上文说到的系统应该是作者所发布的网站的某些脚本)
#
#
#========================================================================
# ** C O N F I G U R A T I O N S Y S T E M ** #
#========================================================================
#卡特彼勒系统
CATERPILLAR_COMPATIBLE = true # 切换为Fukuyama's original
SQUAD_MOVE_COMPATIBLE = false # 切换为接近 Fantastica's SBABS
CCOA_CATER_COMPATIBLE = false # 切换为 Ccoa's Caterpillar
TRICKSTER_CATER_COMPATIBLE = false # 切换为Trickster's Caterpillar
#太阳影子系统
SUN_WARN = true # 检查老的太阳系统
SUN_ANGLE = 45 # 太阳产生的阴影角度
SUN_OPACITY = 128 # 阳光设置的阴影
#========================================================================
# **** E N D O F C O N F I G U R A T I O N S Y S T E M **** #
#========================================================================
#==============================================================================
# ** Game_Temp
#------------------------------------------------------------------------------
# 本级处理的临时数据,不包括保存数据。
# 参见“ $ game_temp ”的实例,这个类.
#==============================================================================
class Game_Temp
#--------------------------------------------------------------------------
# * 公共实例变量
#--------------------------------------------------------------------------
attr_accessor :sun_spriteset # spritesets持有的'阳光'的阴影
end
#==============================================================================
# ** Game_Party
#------------------------------------------------------------------------------
# 本级处理数据。它包括gold and items的信息(本人未读脚本不知道意思)
# 参见“ $ game_party ”的实例,这个类
#==============================================================================
class Game_Party
#--------------------------------------------------------------------------
# * 公共实例变量
#--------------------------------------------------------------------------
attr_reader :characters
end
#==============================================================================
# ** Sprite_Sun
#------------------------------------------------------------------------------
# 这精灵是用来建议相对于地图的特色影子位置相对于地图的位置
# 它遵守Game_Character类和自动更改图片的条件
#==============================================================================
class Sprite_Sun < Sprite_Base
#--------------------------------------------------------------------------
# * 公共实例变量
#--------------------------------------------------------------------------
attr_accessor :character
#--------------------------------------------------------------------------
# * 对象初始化
# viewport : viewport
# character : character (Game_Character)
# id : id
#--------------------------------------------------------------------------
def initialize(viewport, character = nil, id=0)
super(viewport)
@character = character
params=$game_temp.sun_spriteset.sun[id]
self_angle = SUN_ANGLE
self_opacity = SUN_OPACITY
self_angle = params[0] if params.size > 0
self_opacity = params[1] if params.size > 1
@self_angle = self_angle
@self_opacity = self_opacity
update
end
#--------------------------------------------------------------------------
# * Frame Update
#--------------------------------------------------------------------------
def update
super
#如果tile_id(标题编号),file name(文件名字),或者色调与现在的不同
if @tile_id != @character.tile_id or
@character_name != @character.character_name or
@character_index != @character.character_index
@tile_id = @character.tile_id
@character_name = @character.character_name
@character_index = @character.character_index
if @tile_id > 0
sx = (@tile_id / 128 % 2 * 8 + @tile_id % 8) * 32;
sy = @tile_id % 256 / 8 % 16 * 32;
set_number = @tile_id / 256
self.bitmap = Cache.system("TileB") if set_number == 0
self.bitmap = Cache.system("TileC") if set_number == 1
self.bitmap = Cache.system("TileD") if set_number == 2
self.bitmap = Cache.system("TileE") if set_number == 3
self.src_rect.set(sx, sy, 32, 32)
self.ox = 16
self.oy = 32
else
self.bitmap = Cache.character(@character_name)
sign = @character_name[/^[\!\$]./]
if sign != nil and sign.include?('$')
@cw = bitmap.width / 3
@ch = bitmap.height / 4
else
@cw = bitmap.width / 12
@ch = bitmap.height / 8
end
self.ox = @cw / 2
self.oy = @ch
end
end
# 设置可见的情况
self.visible = (not @character.transparent)
# If graphic is character(如果图片是人 不确定翻译)
if @tile_id == 0
index = @character.character_index
pattern = @character.pattern < 3 ? @character.pattern : 1
# 设置矩形变化
sx = (index % 4 * 3 + pattern) * @cw
@direct = @character.direction
if self.angle > 90 or angle < -90
sy = ( 4 - 2) / 2 * @ch if @direct == 6
sy = ( 6 - 2) / 2 * @ch if @direct == 4
sy = (@character.direction - 2) / 2 * @ch if @direct != 4 and @direct != 6
else
sy = (index / 4 * 4 + (@character.direction - 2) / 2) * @ch
end
self.src_rect.set(sx, sy, @cw, @ch)
end
# 设置图片坐标
self.x = @character.screen_x
self.y = @character.screen_y-5
self.z = @character.screen_z- 1
# 设置透明,合成方法,and bush depth(这个水平有限不知道是什么)
self.opacity = @self_opacity
self.blend_type = @character.blend_type
self.bush_depth = @character.bush_depth
# 动画
if @character.animation_id != 0
animation = $data_animations[@character.animation_id]
animation(animation, true)
@character.animation_id = 0
end
self.angle = @self_angle.to_i - 90
self.color = Color.new(0, 0, 0)
end
end
#==============================================================================
# ** Sprite_Character
#------------------------------------------------------------------------------
# 这脚本是用来显示character.它遵守Game_Character 类和自动更改脚本条件
#==============================================================================
class Sprite_Character < Sprite_Base
#--------------------------------------------------------------------------
# * 别名列表
#--------------------------------------------------------------------------
alias sun_initialize initialize
alias sun_update update
#--------------------------------------------------------------------------
# * 对象初始化
# viewport : viewport
# character : character (Game_Character)
#--------------------------------------------------------------------------
def initialize(viewport, character = nil)
@viewport0 = Viewport.new(0, 0, 544, 416)
@viewport0.z = 1
@character = character
super(viewport)
@sunlist=[]
if character.is_a?(Game_Event) and $game_temp.sun_spriteset.sun != []
params = XPML.XPML_read("Shadow", @character.id, 2)
if params != nil
for i in 0...$game_temp.sun_spriteset.sun.size
@sunlist.push(Sprite_Sun.new(@viewport0, @character, i))
end
end
end
if character.is_a?(Game_Player) and $game_temp.sun_spriteset.sun != []
for i in 0...$game_temp.sun_spriteset.sun.size
@sunlist.push(Sprite_Sun.new(@viewport0, $game_player, i))
end
#===================================================
# * 兼容性与 Caterpillar(毛虫?)功能
#===================================================
if CATERPILLAR_COMPATIBLE and $game_party.characters != nil
for member in $game_party.characters
for i in 0...$game_temp.sun_spriteset.sun.size
@sunlist.push(Sprite_Sun.new(@viewport0, member, i))
end
end
end
if SQUAD_MOVE_COMPATIBLE and $game_allies.values != nil
for member in $game_allies.values
for i in 0...$game_temp.sun_spriteset.sun.size
@sunlist.push(Sprite_Sun.new(@viewport0, member, i))
end
end
end
if CCOA_CATER_COMPATIBLE and $game_train.actors != nil
for member in $game_train.actors
for i in 0...$game_temp.sun_spriteset.sun.size
@sunlist.push(Sprite_Sun.new(@viewport0, member, i))
end
end
end
if TRICKSTER_CATER_COMPATIBLE and $game_party.followers != nil
for member in $game_party.followers
for i in 0...$game_temp.sun_spriteset.sun.size
@sunlist.push(Sprite_Sun.new(@viewport0, member, i))
end
end
end
#===================================================
# ** 兼容性脚本底部
#===================================================
end
# 执行原来的语句
sun_initialize(viewport, @character)
end
#--------------------------------------------------------------------------
# * 更新图片
#--------------------------------------------------------------------------
def update
sun_update
if @sunlist != []
for i in
[email protected]
@sunlist[i].update
end
end
end
end
#==============================================================================
# ** Game_Event
#------------------------------------------------------------------------------
# 这里处理包括事件页,开关,通行设置,并行处理等
# 这里使用了Game_Map类
#==============================================================================
class Game_Event < Game_Character
#--------------------------------------------------------------------------
# * 公共实例变量
#--------------------------------------------------------------------------
attr_accessor :id
end
#==============================================================================
# ** Spriteset_Map
#------------------------------------------------------------------------------
# 这个类汇集了地图的上的图片, tilemaps等
# 这是理使用了Scene_Map类
#==============================================================================
class Spriteset_Map
#--------------------------------------------------------------------------
# * 公共实例变量
#--------------------------------------------------------------------------
attr_accessor :sun
#--------------------------------------------------------------------------
# * 别名列表
#--------------------------------------------------------------------------
alias sun_initialize initialize
#--------------------------------------------------------------------------
# * 对象初始化
#--------------------------------------------------------------------------
def initialize
@sun = []
$game_temp.sun_spriteset = self
warn = false
for k in $game_map.events.keys.sort
if ($game_map.events[k].list != nil and
$game_map.events[k].list[0].code == 108 and
($game_map.events[k].list[0].parameters == ["sun"] or
$game_map.events[k].list[0].parameters == ["o"]))
warn = true
end
params = XPML.XPML_read("Sun", k, 2)
$game_temp.sun_spriteset.sun.push(params) if params != nil
end
if warn == true and SUN_WARN
p "Warning : At least one event on this map uses an obsolete way to add a sun effect"
end
# Perform the original call
sun_initialize
end
end
#==============================================================================
# ** module XPML
#------------------------------------------------------------------------------
# 这一模块处理读取和传递的注释参数
#
# XPML的主要方法是用来检查和读取注释
# 如果标记的'check'不存在则返回nil
# 如果没有传递参数则返回[]
# 它返回的参数列表回转换未int型
# eg :
# begin first
# begin second
# param1 1
# param2 two
# begin third
# anything 3
#
# p XPML_read("first", event_id) -> []
# p XPML_read("second", event_id) -> [1,"two"]
# p XPML_read("third", event_id) -> [3]
# p XPML_read("forth", event_id) -> nil
#===================================================
module XPML
module_function
#--------------------------------------------------------------------------
# * XPML_read
# markup : 事件中的注释
# event_id : 事件ID
# max_param_number : 最大数量的(参数/注释)去读取
#--------------------------------------------------------------------------
def XPML_read(markup, event_id, max_param_number = 0)
parameter_list = nil
event = $game_map.events[event_id]
return if event.list == nil
for i in 0...event.list.size
if event.list[i].code == 108 and
event.list[i].parameters[0].downcase == "begin " + markup.downcase
parameter_list = [] if parameter_list == nil
for j in i + 1...event.list.size
if event.list[j].code == 108
parts = event.list[j].parameters[0].split
if parts.size != 1 and parts[0].downcase != "begin"
if parts[1].to_i != 0 or parts[1] == "0"
parameter_list.push(parts[1].to_i)
else
parameter_list.push(parts[1])
end
else
return parameter_list
end
else
return parameter_list
end
if max_param_number != 0 and j == i + max_param_number
return parameter_list
end
end
end
end
return parameter_list
end
end
复制代码
汉化部分还是有点问,具体使用等我读过才知道
脚本3的内容和脚本2差不多可以参照使用,脚本1注释较少我就不汉化了
关于需要转换到XP系统上的问题我想就在这1周内或下周左右我会该成XP上的系统的,对于XP系统上有需要的朋友可以等等看
作者:
偶尔杀人越货
时间:
2008-12-5 00:53
静待完成。
作者:
bububinghe
时间:
2008-12-5 02:00
期待很久了,谢谢
作者:
偶尔杀人越货
时间:
2008-12-6 01:18
kao,做了一件超级蠢的事情,汗死
不认真啊不认真~
找缝ing
作者:
精灵使者
时间:
2008-12-6 03:11
果然机器引擎翻译的很囧……
作者:
偶尔杀人越货
时间:
2008-12-6 05:17
那啥,分数已经扣回,最近真是越来越漫不经心了呢{/gg}
机器翻译的是不给分的{/gg}
找缝钻……
作者:
雪流星
时间:
2008-12-6 18:56
要不要加條版規:故意用機器翻譯的倒扣分
上次有個求翻譯的也是有人用機器翻譯了想蒙混
作者:
偶尔探花不雅
时间:
2008-12-6 19:09
提示:
作者被禁止或删除 内容自动屏蔽
作者:
司马睿风
时间:
2008-12-8 03:10
我进行了一些修改了,因为人工翻译太累,我对照英文文本修改了语法不通顺的地方,当然我不是做文本润色的,我感觉还是读不通,但是注释的地方我像应该可以知道每个类的作用
作者:
bububinghe
时间:
2008-12-8 20:02
总之期待中,造福人类的行为都值得期待,赞!
作者:
精灵使者
时间:
2008-12-9 08:43
精灵将会全新的翻译影子效果,1,2版本的东西都将全面汉化。
敬请期待。
作者:
司马睿风
时间:
2008-12-10 01:25
使用很简单,启动的时候注释上加入begin Sum影子系统启动注释加上begin Shadow,既然精灵自己打算搞那么我就不继续了,虽然昨天晚上看了下。精灵看下我签名,希望你会哭
作者:
精灵使者
时间:
2008-12-10 02:17
嗯哪。
打算汉化一个完美版本外加范例工程出来。
其实我的英语四级还算是有些用的哦……
作者:
司马睿风
时间:
2008-12-10 02:30
我认为英语够用就好,作为一个程序员来说虽然需要英语水平很高,但是我个人的观点是我看的懂就好不要知道具体意思,明白程序错误和程序代码的意思就够了。反而现在觉得日语之类的很重要,虽然日本人我不是很喜欢,但是日本女人我还是很喜欢的。(还有小日本的游戏,不过我都玩的盗版)
作者:
yangff
时间:
2008-12-10 02:39
过分,用翻译软件。。。
#==============================================================================
# ** 太阳
#------------------------------------------------------------------------------
# Based on Sprite Shadow
# modified by Rataime
# New Edits by DerVVulfman
# Modified for VX by Syvkal
# Fixes by Painhurt
# October 14, 2008
#------------------------------------------------------------------------------
#
#简介:
#
#此系统可让您和所有的NCP的活动产生阴影
#该事件可以移动左右,而计划'阳光'会
#
#------------------------------------------------- -----------------------------
#
#说明:
#
# -太阳
#要创建一个太阳吗?您需要创建一个地图事件的是
#作为太阳本身。在大多数情况下,这将是一个
#如果没有字符图形。
#不想看太阳吗?(作者增加恶搞吧)
#
#为了使这些事件作为一个太阳,您需要插入一个
#注释到这一事件的“事件列表命令中 。这些事情是没好注释的
#
#第一个注释是, “o“(不含引号) 。它通知 #这个因该素这个吧
#这两个值是可选的,并预设值中的配置 (只需加入脚本中) 。他们也增加注释
#
# self_angle '变量或数值' ---每个阴影有多少个角度(不确定)
# self_opacity '变量数值' ---阴影黑色程度。
#
#在此之后,您的人物现在可以走动,并产生阴影。
#
# -其他活动
#事件不知道他们会产生阴影。为了让这些知道影子,
#所有您需要做的是添加一个特殊的注释加入
# “事件的命令中” 。评论需要这仅仅是一句
# '开始阴影' (同样不包括引号) 。
#(作者也许是需要插入begin Shadow这个注释来启动影子系统)
#
这样会正常化一点
#第一个注释是, “o“(不含引号) 。它通知 #这个因该素这个吧
这个被翻译软件恶搞拉
作者:
偶尔探花不雅
时间:
2008-12-10 05:14
提示:
作者被禁止或删除 内容自动屏蔽
作者:
精灵使者
时间:
2008-12-10 09:53
我已经完美汉化完毕……明天放脚本和范例。
作者:
司马睿风
时间:
2008-12-10 20:34
这个脚本N简单,不过精灵有转到XP下么?
作者:
精灵使者
时间:
2008-12-10 21:19
这个脚本不是很简单……而且冲突蛮多的。
结果在spriteset_map下和默认脚本冲突了。害得我需要重写……
另外和烛光脚本也一并冲突。
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1