Project1
标题:
神剑晴天2脚本了 角色名显示不出来
[打印本页]
作者:
sblkhgm
时间:
2012-4-17 20:08
标题:
神剑晴天2脚本了 角色名显示不出来
这代码哪有问题, 为什么NPC能显示名字 而角色却显示不出来
#==============================================================================
# ■ Sprite_Character
#------------------------------------------------------------------------------
# 角色显示用脚本。监视 Game_Character 类的实例、
# 自动变化脚本状态。
#==============================================================================
class Sprite_Character < RPG::Sprite
#--------------------------------------------------------------------------
# ● 定义实例变量
#--------------------------------------------------------------------------
attr_accessor :character # 角色
#--------------------------------------------------------------------------
# ● 初始化对像
# viewport : 查看端口
# character : 角色 (Game_Character)
#--------------------------------------------------------------------------
def initialize(viewport, character = nil)
super(viewport)
@character = character
# 事件显示名字脚本加强★★★★★★★★★★★★★★★★★★★★★★★★★
name = character.name
@namesprite = Sprite.new(viewport)
@namesprite.bitmap = Bitmap.new(160, 48)
@namesprite.bitmap.font.name = "宋体"
@namesprite.bitmap.font.size = 16
@namesprite.bitmap.font.color.set(255, 250, 0, 255) # 黄色
@evname = name
@evname_split = name.split(/,/)[0]
if name.split(/,/)[1] != nil
case name.split(/,/)[1]
when "0"
@namesprite.bitmap.font.color.set(60, 255, 80, 255) # 绿色
when "1"
@namesprite.bitmap.font.color.set(190, 130, 0, 255) # 橙色
when "2"
@namesprite.bitmap.font.color.set(0, 120, 210, 255) # 蓝色
when "3"
@namesprite.bitmap.font.color.set(255, 0, 50, 255) # 红色
end
end
if @evname_split != "" and @evname_split != nil and not $game_temp.in_battle
@namesprite.bitmap.draw_text(0, 0, 160, 36, @evname_split, 1)
end
# 事件显示名字脚本加强★★★★★★★★★★★★★★★★★★★★★★★★★
update
end
#--------------------------------------------------------------------------
# ● 更新画面
#--------------------------------------------------------------------------
def update
super
# 事件显示名字脚本加强★★★★★★★★★★★★★★★★★★★★★★★★★
if @evname != @character.name
@namesprite.bitmap.clear
end
@namesprite.x = self.x - 80 # 显示坐标
@namesprite.y = self.y - self.oy - 24 + 130 # 显示坐标
# 元件 ID、文件名、色相与现在的情况存在差异的情况下
if @tile_id != @character.tile_id or
@character_name != @character.character_name or
@character_hue != @character.character_hue
# 记忆元件 ID 与文件名、色相
@tile_id = @character.tile_id
@character_name = @character.character_name
@character_hue = @character.character_hue
# 元件 ID 为有效值的情况下
if @tile_id >= 384
self.bitmap = RPG::Cache.tile($game_map.tileset_name,
@tile_id, @character.character_hue)
self.src_rect.set(0, 0, 32, 32)
self.ox = 16
self.oy = 32
# 元件 ID 为无效值的情况下
else
self.bitmap = RPG::Cache.character(@character.character_name,
@character.character_hue)
# 素材处理★★★★★★★★★★★★★★★★★★★★★★★★★★★
# 需要使用特殊的素材文件名为识别处理的情况时!列如:
# 当素材文件名为“场所移动”时,对该素材处理方法
if @character_name == "场所移动"
@cw = bitmap.width / 19
@ch = bitmap.height
# 除此以外,其他素材和角色行走图等素材的处理
else
@cw = bitmap.width / 8
@ch = bitmap.height / 8
end
# ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
self.ox = @cw / 2
self.oy = @ch
end
end
# 设置可视状态
self.visible = (not @character.transparent)
# 图形是角色的情况下
if @tile_id == 0
# 设置传送目标的矩形
sx = @character.pattern * @cw
# 八向素材处理★★★★★★★★★★★★★★★★★★★★★★★★★★★
# 需要使用特殊的素材文件名为识别处理的情况时!列如:
if @character_name == "场所移动"
sy = 0 * @ch
else
case @character.direction
when 2
sy = 0 * @ch # 下
when 4
sy = 1 * @ch # 左
when 6
sy = 2 * @ch # 右
when 8
sy = 3 * @ch # 上
when 1
sy = 4 * @ch # 左下
when 3
sy = 5 * @ch # 右下
when 7
sy = 6 * @ch # 左上
when 9
sy = 7 * @ch # 右上
end
end
# ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
self.src_rect.set(sx, sy, @cw, @ch)
end
# 设置脚本的坐标
self.x = @character.screen_x
self.y = @character.screen_y
self.z = @character.screen_z(@ch)
# 设置不透明度、合成方式、茂密
self.opacity = @character.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
end
def dispose
super
unless @namesprite.disposed?
@namesprite.bitmap.dispose
@namesprite.dispose
end
end
end
复制代码
我插入过其他的角色名显示脚本 能显示 但是有些冲突 求高手指点 dsu_plus_rewardpost_czw
作者:
Wind2010
时间:
2012-4-20 17:21
class Game_Player
def name
return $game_party.actors[0].nil? ? "" : $game_party.actors[0].name
end
end
复制代码
作者:
sblkhgm
时间:
2012-4-20 23:51
Wind2010 发表于 2012-4-20 17:21
脚本加在哪,我式了下,好像没反应……
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1