Project1
标题:
关于一个看似很简单实际也很简单我却不会的脚本。。。
[打印本页]
作者:
BBBBB6
时间:
2010-8-16 20:06
标题:
关于一个看似很简单实际也很简单我却不会的脚本。。。
这个是黑暗圣剑里的不行动的角色半透明。。。
#==============================================================================
# 本脚本来自www.66RPG.com,使用和转载请保留此信息
#==============================================================================
class Bitmap
alias sailcat_draw_text draw_text unless method_defined? :sailcat_draw_text
def draw_text(p1,p2,p3=0,p4=3,p5=nil,p6=0,p7=3,p8=nil)
case p1
when Numeric
x = p1
y = p2
width = p3
height = p4
text = p5
align = p6
shadow_direction = p7
shadow_color = p8
if shadow_color.nil?
shadow_color = Color.new(0,0,0,self.font.color.alpha * 0.67)
end
when Rect
x = p1.x
y = p1.y
width = p1.width
height = p1.height
text = p2
align = p3
shadow_direction = p4
shadow_color = p5
if shadow_color.nil?
shadow_color = Color.new(0,0,0,self.font.color.alpha * 0.67)
end
end
color_temp = self.font.color.clone
if shadow_direction != 0
self.font.color = shadow_color
case shadow_direction
when 1
sailcat_draw_text(x-1,y+1,width,height,text,align)
when 3
sailcat_draw_text(x+1,y+1,width,height,text,align)
when 7
sailcat_draw_text(x-1,y-1,width,height,text,align)
when 9
sailcat_draw_text(x+1,y-1,width,height,text,align)
end
self.font.color=color_temp
end
sailcat_draw_text(x,y,width,height,text,align)
end
end
#==============================================================================
# 本脚本来自www.66RPG.com,使用和转载请保留此信息
#==============================================================================
复制代码
然后修改Sprite_Battler的65行左右就可以达到不行动的角色半透明。。。
#==============================================================================
# ■ Sprite_Battler
#------------------------------------------------------------------------------
# 战斗显示用活动块。Game_Battler 类的实例监视、
# 活动块的状态的监视。
#==============================================================================
class Sprite_Battler < RPG::Sprite
#--------------------------------------------------------------------------
# ● 定义实例变量
#--------------------------------------------------------------------------
attr_accessor :battler # 战斗者
#--------------------------------------------------------------------------
# ● 初始化对像
# viewport : 显示端口
# battler : 战斗者 (Game_Battler)
#--------------------------------------------------------------------------
def initialize(viewport, battler = nil)
super(viewport)
@battler = battler
@battler_visible = false
end
#--------------------------------------------------------------------------
# ● 释放
#--------------------------------------------------------------------------
def dispose
if self.bitmap != nil
self.bitmap.dispose
end
super
end
#--------------------------------------------------------------------------
# ● 刷新画面
#--------------------------------------------------------------------------
def update
super
# 战斗者为 nil 的情况下
if @battler == nil
self.bitmap = nil
loop_animation(nil)
return
end
# 文件名和色相与当前情况有差异的情况下
if @battler.battler_name != @battler_name or
@battler.battler_hue != @battler_hue
# 获取、设置位图
@battler_name = @battler.battler_name
@battler_hue = @battler.battler_hue
self.bitmap = RPG::Cache.battler(@battler_name, @battler_hue)
@width = bitmap.width
@height = bitmap.height
self.ox = @width / 2
self.oy = @height
# 如果是战斗不能或者是隐藏状态就把透明度设置成 0
if @battler.dead? or @battler.hidden
self.opacity = 0
end
end
# 动画 ID 与当前的情况有差异的情况下
if @battler.damage == nil and
@battler.state_animation_id != @state_animation_id
@state_animation_id = @battler.state_animation_id
loop_animation($data_animations[@state_animation_id])
end
# 应该被显示的角色的情况下
if @battler_visible
if self.opacity >145
self.opacity -= 5
end
end
# 明灭
if @battler.blink
self.opacity = 255
else
blink_off
end
# 不可见的情况下
unless @battler_visible
# 出现
if not @battler.hidden and not @battler.dead? and
(@battler.damage == nil or @battler.damage_pop)
appear
@battler_visible = true
end
end
# 可见的情况下
if @battler_visible
# 逃跑
if @battler.hidden
$game_system.se_play($data_system.escape_se)
escape
@battler_visible = false
end
# 白色闪烁
if @battler.white_flash
whiten
@battler.white_flash = false
end
# 动画
if @battler.animation_id != 0
animation = $data_animations[@battler.animation_id]
animation(animation, @battler.animation_hit)
@battler.animation_id = 0
end
# 伤害
if @battler.damage_pop
damage(@battler.damage, @battler.critical)
@battler.damage = nil
@battler.critical = false
@battler.damage_pop = false
end
# korapusu
if @battler.damage == nil and @battler.dead?
if @battler.is_a?(Game_Enemy)
$game_system.se_play($data_system.enemy_collapse_se)
else
$game_system.se_play($data_system.actor_collapse_se)
end
collapse
@battler_visible = false
end
end
# 设置活动块的坐标
self.x = @battler.screen_x
self.y = @battler.screen_y
self.z = @battler.screen_z
end
end
复制代码
======然后我的问题其实就是======
用了这个脚本之后不行动的敌人也半透明了谁帮我一下谢谢了。。。
作者:
火ZHI意志
时间:
2010-8-16 20:09
替换成:
if @battler.is_a?(Game_Enemy)
else
if @battler_visible
if self.opacity >145
self.opacity -= 5
end
end
作者:
水镜风生
时间:
2010-8-16 20:11
if @battler_visible && @battler.is_a?(Game_Actor)
if self.opacity >145
self.opacity -= 5
end
end
复制代码
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1