Project1

标题: NPC显名脚本问题 [打印本页]

作者: 超级马甲    时间: 2008-8-13 20:10
提示: 作者被禁止或删除 内容自动屏蔽
作者: IamI    时间: 2008-8-13 20:13
@namesprite.bitmap.font.color.set(255, 255, 255)
=》@namesprite.bitmap.font.color.set(0, 255, 0)
作者: 亮F    时间: 2008-8-13 21:21
以下引用IamI于2008-8-13 12:13:48的发言:

@namesprite.bitmap.font.color.set(255, 255, 255)
=》@namesprite.bitmap.font.color.set(0, 255, 0)

这个可以说下是第几行么~
有好多一样的,到底要改那一行的~??

作者: 超级马甲    时间: 2008-8-13 22:16
提示: 作者被禁止或删除 内容自动屏蔽
作者: 超级马甲    时间: 2008-8-14 19:54
提示: 作者被禁止或删除 内容自动屏蔽
作者: 青椒    时间: 2008-8-14 20:15
真晕……
用查找功能找不就行咯
作者: Ж纯Ж蓝Ж    时间: 2008-8-14 21:18
第65行.
作者: 亮F    时间: 2008-8-14 23:11
额~````
不知怎么改~`
能否直接发下脚本~`
作者: 黑鏻    时间: 2008-8-15 15:49
#==============================================================================
# ■ Game_Event
#------------------------------------------------------------------------------
#  处理事件的类。条件判断、事件页的切换、并行处理、执行事件功能
# 在 Game_Map 类的内部使用。
###修改的部分请搜索"#★",想要名字颜色变绿,在NPC名字输入“名字,8"就可以。
#==============================================================================
class Game_Event < Game_Character
#——————————————————————————————————————
# 用来返回名称
#——————————————————————————————————————
def name
  return @event.name
end
def name=(newname)
  @event.name = newname
end
end

#==============================================================================
# ■ Sprite_Character
#------------------------------------------------------------------------------
#  角色显示用脚本。监视 Game_Character 类的实例、
# 自动变化脚本状态。
#==============================================================================

class Sprite_Character < RPG::Sprite
#--------------------------------------------------------------------------
# ● 定义实例变量
#--------------------------------------------------------------------------
attr_accessor :character           # 角色
  #--------------------------------------------------------------------------
# ● 初始化对像
#   viewport : 查看端口
#   character : 角色 (Game_Character)
#--------------------------------------------------------------------------
def initialize(viewport, character = nil)
  name = character.name
  super(viewport)
  @character = character
  @namesprite = Sprite.new
  @namesprite.bitmap = Bitmap.new(160, 48)
  @namesprite.bitmap.font.name = "黑体"
  @namesprite.bitmap.font.size = 16
  @namesprite.bitmap.font.color.set(255, 255, 255)
  @evname = name
  @evname_split = name.split(/,/)[0]
  if name[0, 2]=="EV"
  @evname_split = " "
  end
  if name.split(/,/)[1] != nil
  case name.split(/,/)[1]
  when "0"
    @namesprite.bitmap.font.color.set(255, 255, 255)
  when "1"
    @namesprite.bitmap.font.color.set(128, 128, 255)
  when "2"
    @namesprite.bitmap.font.color.set(255, 128, 128)
  when "3"
    @namesprite.bitmap.font.color.set(128, 255, 128)
  when "4"
    @namesprite.bitmap.font.color.set(128, 255, 255)
  when "5"
    @namesprite.bitmap.font.color.set(255, 128, 255)
  when "6"
    @namesprite.bitmap.font.color.set(255, 255, 128)
  when "7"
    @namesprite.bitmap.font.color.set(192, 192, 192)
  when "8"
    @namesprite.bitmap.font.color.set(0, 255, 0)#★绿色,可改
  else
    @namesprite.bitmap.font.color.set(255, 255, 255)
  end
  end
  if @evname_split != "" and @evname_split != nil
  @namesprite.bitmap.draw_text(0, 0, 160, 36, @evname_split, 1)
  end
  update
end
  #--------------------------------------------------------------------------
# ● 更新画面
#--------------------------------------------------------------------------
def update
  super
  # 元件 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)
    @cw = bitmap.width / 4
    @ch = bitmap.height / 4
    self.ox = @cw / 2
    self.oy = @ch
  end
  end
  if @evname != @character.name
  @namesprite.bitmap.clear
  @evname = @character.name
  @evname_split = @character.name.split(/,/)[0]
  if @character.name.split(/,/)[1] != nil
    case @character.name.split(/,/)[1]
    when "0"
      @namesprite.bitmap.font.color.set(255, 255, 255)
    when "1"
      @namesprite.bitmap.font.color.set(128, 128, 255)
    when "2"
      @namesprite.bitmap.font.color.set(255, 128, 128)
    when "3"
      @namesprite.bitmap.font.color.set(128, 255, 128)
    when "4"
      @namesprite.bitmap.font.color.set(128, 255, 255)
    when "5"
      @namesprite.bitmap.font.color.set(255, 128, 255)
    when "6"
      @namesprite.bitmap.font.color.set(255, 255, 128)
    when "7"
      @namesprite.bitmap.font.color.set(192, 192, 192)
    when "8"
      @namesprite.bitmap.font.color.set(0, 255, 0)#★绿色,可改
    else
      @namesprite.bitmap.font.color.set(255, 255, 255)
    end
  end
  if @evname_split != "" and @evname_split != nil
    @namesprite.bitmap.draw_text(0, 0, 160, 36, @evname_split, 1)
  end
  end
  @namesprite.x = self.x-80
  @namesprite.y = self.y+self.oy-60#★改其纵坐标
  #@namesprite.visible = $game_switches[39]
  # 设置可视状态
  self.visible = (not @character.transparent)
  # 图形是角色的情况下
  if @tile_id == 0
  # 设置传送目标的矩形
  sx = @character.pattern * @cw
  sy = (@character.direction - 2) / 2 * @ch
  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
end
#==============================================================================
# ■ Game_Player
#------------------------------------------------------------------------------
#  处理主角的类。事件启动的判定、以及地图的滚动等功能。
# 本类的实例请参考 $game_player。
#==============================================================================

class Game_Player < Game_Character
def name
  return ""
end
end [LINE]1,#dddddd[/LINE]系统信息:本贴由本区版主认可为正确答案,66RPG感谢您的热情解答~
作者: 亮F    时间: 2008-8-15 22:43
名字并没有变成绿色的~`````
不过人物的名字倒是下来了~```
只不过太下来了~````````离NPC好大一截~`````
作者: 黑鏻    时间: 2008-8-16 00:22
以下引用亮F于2008-8-15 14:43:06的发言:

名字并没有变成绿色的~`````
不过人物的名字倒是下来了~```
只不过太下来了~````````离NPC好大一截~`````

没看说明吗?想要名字颜色变绿,在NPC名字输入“名字,8"就可以。
不过想要改更好的颜色的话请改这里
when "8"
   @namesprite.bitmap.font.color.set(0, 255, 0)#★绿色,可改

想要改名字的位置请改这个: @namesprite.y = self.y+self.oy-60#★改其纵坐标
作者: 亮F    时间: 2008-8-16 17:40
嗯~````````
第一个问题解决~``
但不知到有没办法解决第二个问题~
让角色显名~~~~``
作者: 黑鏻    时间: 2008-8-16 20:24
让角色显名不是无聊吗?
直接打开菜单,不就能看到角色的名字了吗?
作者: ★_茄孓    时间: 2008-8-16 20:51
  if @character.is_a?(Game_Player)
  @namesprite.bitmap.draw_text(0,0,160,36,$game_party.actors[0].name.to_s,1)
  end

加在136行下面就有主角名字了
作者: 亮F    时间: 2008-8-16 22:34
以下引用★_茄孓于2008-8-16 12:51:36的发言:


if @character.is_a?(Game_Player)
@namesprite.bitmap.draw_text(0,0,160,36,$game_party.actors[0].name.to_s,1)
end

加在136行下面就有主角名字了

可以是可以了~
但这个又要在哪调距离呢~
还有,这个的字体怎么变成粗的了~
请问这个哪调~``````

作者: 黑鏻    时间: 2008-8-16 23:10
@namesprite.bitmap.font.name = "黑体"
@namesprite.bitmap.font.size = 16


看这个,把“黑体”换成你所喜欢的黑体,“16”就是字体大小。
作者: 亮F    时间: 2008-8-17 18:07
以下引用黑鏻于2008-8-16 15:10:28的发言:

@namesprite.bitmap.font.name = "黑体"
@namesprite.bitmap.font.size = 16


看这个,把“黑体”换成你所喜欢的黑体,“16”就是字体大小。

还是不行啊~```````
这个调了之后NPC的名字是有改变~````
但是角色的名字还是没变啊~````

作者: 黑鏻    时间: 2008-8-17 22:47
但是角色的名字还是没变啊~````


显示角色名干嘛??
脚本都说是NPC显名,要看角色名直接进菜单就能看见了。
作者: 三国英杰传    时间: 2008-8-18 19:24
提示: 作者被禁止或删除 内容自动屏蔽




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1