设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2094|回复: 8
打印 上一主题 下一主题

求达人修改下NCP角色显示名称脚本!

 关闭 [复制链接]

Lv1.梦旅人

欠扁头像持有者

梦石
0
星屑
114
在线时间
16 小时
注册时间
2005-10-22
帖子
423
跳转到指定楼层
1
发表于 2008-11-3 23:33:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
1.比如说我在地图A中设置2号事件的名字,$game_map.events[2].name = "打开的宝箱"!
  修改完之后,2号事件名字变为“打开的宝箱”~但是只要重新载入地图A或者重新进入
  游戏,2号事件就会变为未修改时候的名字了!请问一下,要如何修改,才能让其保存
  住修改后的名字呢?
2.比如说:有A和B两个地图,请问一下,有没有办法在A地图中设置地图B中某个事件的名
  字呢?
脚本!
  1. #==============================================================================
  2. # 本脚本来自www.66rpg.com,转载、使用请保留此信息
  3. #==============================================================================
  4. # 作者:柳柳
  5. #
  6. # 使用方法:插入到main前即可,之后就会显示每个事件的名字。
  7. # 不想显示名字的NPC直接把名字设置为一个空格就行了。
  8. #
  9. # 附加功能:名字颜色区分:比如一个NPC的名字是  柳柳,2  就会用2号颜色(红色)显示
  10. #
  11. # 修改NPC名的方法:$game_map.events[事件ID编号].name =
  12. # 比如某个宝箱,原名宝箱,打开后名为“打开的宝箱”,则
  13. # $game_map.events[@event_id].name = "打开的宝箱" 或者
  14. # $game_map.events[2].name = "打开的宝箱" (假设宝箱是2号事件)
  15. #
  16. # 修改颜色定义:70-88行,131-149行,自己随便改。
  17. #
  18. # 给主角带上名字:192行,改 "" 为 "主角" 或者 $game_party.actors[0].name 即可
  19. #
  20. # 是否显示姓名的开关:157行,开头的井号去掉。则以后39号开关打开的时候才会显示姓名
  21. #
  22. #==============================================================================
  23. class Game_Event < Game_Character
  24. #——————————————————————————————————————
  25. # 用来返回名称
  26. #——————————————————————————————————————
  27. def name
  28.    return @event.name
  29. end  
  30. def name=(newname)
  31.    @event.name = newname
  32. end
  33. end
  34. #==============================================================================
  35. # ■ Sprite_Character
  36. #------------------------------------------------------------------------------
  37. #  角色显示用脚本。监视 Game_Character 类的实例、
  38. # 自动变化脚本状态。
  39. #==============================================================================
  40. $flyname = "Vehicle"
  41. class Sprite_Character < Sprite_Base
  42.   #--------------------------------------------------------------------------
  43.   # ● 定量
  44.   #--------------------------------------------------------------------------
  45.   BALLOON_WAIT = 12                  # 表情最后帧的等待时间
  46. #--------------------------------------------------------------------------
  47. # ● 定义实例变量
  48. #--------------------------------------------------------------------------
  49. attr_accessor :character                # 角色
  50. #--------------------------------------------------------------------------
  51. # ● 初始化对像
  52. #     viewport  : 查看端口
  53. #     character : 角色 (Game_Character)
  54. #--------------------------------------------------------------------------
  55. def initialize(viewport, character = nil)
  56.    if character.character_name != $flyname
  57.    name = character.name
  58.    end
  59.    super(viewport)
  60.    @character = character
  61.    @namesprite = Sprite.new
  62.    @namesprite.bitmap = Bitmap.new(160, 48)
  63.    @namesprite.bitmap.font.name = "黑体"
  64.    @namesprite.bitmap.font.size = 16
  65.    @namesprite.bitmap.font.color.set(255, 255, 255)
  66.    @evname = name
  67.    if character.character_name != $flyname
  68.    @evname_split = name.split(/,/)[0]
  69. else
  70.    @evname_split = nil
  71. end
  72. if character.character_name != $flyname
  73.    if name[0, 2]=="EV" or character.character_name == $flyname
  74.      @evname_split = " "
  75.    end
  76. end
  77. if character.character_name != $flyname
  78.    if name.split(/,/)[1] != nil
  79.      case name.split(/,/)[1]
  80.      when "0"
  81.        @namesprite.bitmap.font.color.set(255, 255, 255)
  82.      when "1"
  83.        @namesprite.bitmap.font.color.set(128, 128, 255)
  84.      when "2"
  85.        @namesprite.bitmap.font.color.set(255, 128, 128)
  86.      when "3"
  87.        @namesprite.bitmap.font.color.set(128, 255, 128)
  88.      when "4"
  89.        @namesprite.bitmap.font.color.set(128, 255, 255)
  90.      when "5"
  91.        @namesprite.bitmap.font.color.set(255, 128, 255)
  92.      when "6"
  93.        @namesprite.bitmap.font.color.set(255, 255, 128)
  94.      when "7"
  95.        @namesprite.bitmap.font.color.set(192, 192, 192)
  96.      else
  97.        @namesprite.bitmap.font.color.set(255, 255, 255)
  98.      end
  99.    end
  100. end
  101.    if @evname_split != "" and @evname_split != nil
  102.      @namesprite.bitmap.draw_text(0, -5, 160, 36, @evname_split, 1)
  103.    end
  104.     @character = character
  105.     @balloon_duration = 0
  106.    update
  107. end
  108.   #--------------------------------------------------------------------------
  109.   # ● 释放
  110.   #--------------------------------------------------------------------------
  111.   def dispose
  112.    if character.character_name != $flyname
  113.    @namesprite.bitmap.dispose
  114.    @namesprite.dispose
  115. end

  116.     dispose_balloon
  117.     super
  118.   end
  119. #--------------------------------------------------------------------------
  120. # ● 更新画面
  121. #--------------------------------------------------------------------------
  122. def update
  123.     super
  124.     update_bitmap
  125.     self.visible = (not @character.transparent)
  126.     update_src_rect
  127.     self.x = @character.screen_x
  128.     self.y = @character.screen_y
  129.     self.z = @character.screen_z
  130.     self.opacity = @character.opacity
  131.     self.blend_type = @character.blend_type
  132.     self.bush_depth = @character.bush_depth
  133.     update_balloon
  134.     if @character.animation_id != 0
  135.       animation = $data_animations[@character.animation_id]
  136.       start_animation(animation)
  137.       @character.animation_id = 0
  138.     end
  139.     if @character.balloon_id != 0
  140.       @balloon_id = @character.balloon_id
  141.       start_balloon
  142.       @character.balloon_id = 0
  143.     end

  144.     if character.character_name != $flyname
  145.    if @evname != @character.name
  146.      @namesprite.bitmap.clear
  147.      @evname = @character.name
  148.      @evname_split = @character.name.split(/,/)[0]
  149.      if @character.name.split(/,/)[1] != nil
  150.        case @character.name.split(/,/)[1]
  151.        when "0"
  152.          @namesprite.bitmap.font.color.set(255, 255, 255)
  153.        when "1"
  154.          @namesprite.bitmap.font.color.set(128, 128, 255)
  155.        when "2"
  156.          @namesprite.bitmap.font.color.set(255, 128, 128)
  157.        when "3"
  158.          @namesprite.bitmap.font.color.set(128, 255, 128)
  159.        when "4"
  160.          @namesprite.bitmap.font.color.set(128, 255, 255)
  161.        when "5"
  162.          @namesprite.bitmap.font.color.set(255, 128, 255)
  163.        when "6"
  164.          @namesprite.bitmap.font.color.set(255, 255, 128)
  165.        when "7"
  166.          @namesprite.bitmap.font.color.set(192, 192, 192)
  167.        else
  168.          @namesprite.bitmap.font.color.set(255, 255, 255)
  169.        end
  170.      end
  171.      if @evname_split != "" and @evname_split != nil
  172.        @namesprite.bitmap.draw_text(0, 0, 160, 36, @evname_split, 1)
  173.      end
  174.    end
  175.    @namesprite.x = self.x-80
  176.    @namesprite.y = self.y-self.oy-24
  177.    @namesprite.visible = $game_switches[39]
  178.    end
  179. end
  180.   #--------------------------------------------------------------------------
  181.   # ● 获取图块图像的指定图块
  182.   #     tile_id : 图块 ID
  183.   #--------------------------------------------------------------------------
  184.   def tileset_bitmap(tile_id)
  185.     set_number = tile_id / 256
  186.     return Cache.system("TileB") if set_number == 0
  187.     return Cache.system("TileC") if set_number == 1
  188.     return Cache.system("TileD") if set_number == 2
  189.     return Cache.system("TileE") if set_number == 3
  190.     return nil
  191.   end
  192.   #--------------------------------------------------------------------------
  193.   # ● 刷新传送的位图数据
  194.   #--------------------------------------------------------------------------
  195.   def update_bitmap
  196.     if @tile_id != @character.tile_id or
  197.        @character_name != @character.character_name or
  198.        @character_index != @character.character_index
  199.       @tile_id = @character.tile_id
  200.       @character_name = @character.character_name
  201.       @character_index = @character.character_index
  202.       if @tile_id > 0
  203.         sx = (@tile_id / 128 % 2 * 8 + @tile_id % 8) * 32;
  204.         sy = @tile_id % 256 / 8 % 16 * 32;
  205.         self.bitmap = tileset_bitmap(@tile_id)
  206.         self.src_rect.set(sx, sy, 32, 32)
  207.         self.ox = 16
  208.         self.oy = 32
  209.       else
  210.         self.bitmap = Cache.character(@character_name)
  211.         sign = @character_name[/^[\!\$]./]
  212.         if sign != nil and sign.include?('$')
  213.           @cw = bitmap.width / 3
  214.           @ch = bitmap.height / 4
  215.         else
  216.           @cw = bitmap.width / 12
  217.           @ch = bitmap.height / 8
  218.         end
  219.         self.ox = @cw / 2
  220.         self.oy = @ch
  221.       end
  222.     end
  223.   end
  224.   #--------------------------------------------------------------------------
  225.   # ● 刷新传送的矩形数据
  226.   #--------------------------------------------------------------------------
  227.   def update_src_rect
  228.     if @tile_id == 0
  229.       index = @character.character_index
  230.       pattern = @character.pattern < 3 ? @character.pattern : 1
  231.       sx = (index % 4 * 3 + pattern) * @cw
  232.       sy = (index / 4 * 4 + (@character.direction - 2) / 2) * @ch
  233.       self.src_rect.set(sx, sy, @cw, @ch)
  234.     end
  235.   end
  236.   #--------------------------------------------------------------------------
  237.   # ● 开始显示表情图标
  238.   #--------------------------------------------------------------------------
  239.   def start_balloon
  240.     dispose_balloon
  241.     @balloon_duration = 8 * 8 + BALLOON_WAIT
  242.     @balloon_sprite = ::Sprite.new(viewport)
  243.     @balloon_sprite.bitmap = Cache.system("Balloon")
  244.     @balloon_sprite.ox = 16
  245.     @balloon_sprite.oy = 32
  246.     update_balloon
  247.   end
  248.   #--------------------------------------------------------------------------
  249.   # ● 刷新表情图标
  250.   #--------------------------------------------------------------------------
  251.   def update_balloon
  252.     if @balloon_duration > 0
  253.       @balloon_duration -= 1
  254.       if @balloon_duration == 0
  255.         dispose_balloon
  256.       else
  257.         @balloon_sprite.x = x
  258.         @balloon_sprite.y = y - height
  259.         @balloon_sprite.z = z + 200
  260.         if @balloon_duration < BALLOON_WAIT
  261.           sx = 7 * 32
  262.         else
  263.           sx = (7 - (@balloon_duration - BALLOON_WAIT) / 8) * 32
  264.         end
  265.         sy = (@balloon_id - 1) * 32
  266.         @balloon_sprite.src_rect.set(sx, sy, 32, 32)
  267.       end
  268.     end
  269.   end
  270.   #--------------------------------------------------------------------------
  271.   # ● 释放表情图标
  272.   #--------------------------------------------------------------------------
  273.   def dispose_balloon
  274.     if @balloon_sprite != nil
  275.       @balloon_sprite.dispose
  276.       @balloon_sprite = nil
  277.     end
  278.   end
  279. end
  280. class Game_Player < Game_Character
  281. def name
  282.    return ""
  283. end
  284. end



复制代码

版务信息:本贴由楼主自主结贴~
水兵土星--死亡之星!

Lv3.寻梦者 (暗夜天使)

名侦探小柯

梦石
0
星屑
3309
在线时间
3620 小时
注册时间
2006-9-6
帖子
37400

开拓者贵宾第3届短篇游戏大赛主流游戏组亚军第5届短篇游戏比赛亚军

2
发表于 2008-11-4 03:40:22 | 只看该作者
你这个是VX的么……
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
49
在线时间
157 小时
注册时间
2007-12-16
帖子
3454
3
发表于 2008-11-4 03:50:30 | 只看该作者
以下引用越前リョーマ于2008-11-3 19:40:22的发言:

你这个是VX的么……

XP的....
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (暗夜天使)

名侦探小柯

梦石
0
星屑
3309
在线时间
3620 小时
注册时间
2006-9-6
帖子
37400

开拓者贵宾第3届短篇游戏大赛主流游戏组亚军第5届短篇游戏比赛亚军

4
发表于 2008-11-4 03:53:22 | 只看该作者
以下引用做游戏的新手于2008-11-3 19:50:30的发言:


以下引用越前リョーマ于2008-11-3 19:40:22的发言:

你这个是VX的么……


XP的....

那么发这里是不正常的。
而且我记得改了地图名字也依然不会变回去的。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

欠扁头像持有者

梦石
0
星屑
114
在线时间
16 小时
注册时间
2005-10-22
帖子
423
5
 楼主| 发表于 2008-11-4 04:41:19 | 只看该作者
VX可以用的!{/hx}
水兵土星--死亡之星!
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
46
在线时间
10 小时
注册时间
2007-5-27
帖子
2558

第1届Title华丽大赛新人奖

6
发表于 2008-11-5 03:42:16 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

欠扁头像持有者

梦石
0
星屑
114
在线时间
16 小时
注册时间
2005-10-22
帖子
423
7
 楼主| 发表于 2008-11-5 19:57:13 | 只看该作者
以下引用沉影不器于2008-11-4 19:42:16的发言:

曾写过一个事件显示血条的脚本,估计差不多,我可以试试...

{/se}沉影老大~谢谢!
水兵土星--死亡之星!
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
510
在线时间
0 小时
注册时间
2009-1-23
帖子
2
8
发表于 2009-6-10 18:00:29 | 只看该作者
不行呀......已經把腳本複製到main以下了,不過還是不能用,角色名稱都沒有顯示,可不可以幫我查看這腳本有沒有問題???謝謝

#==============================================================================
class Game_Event < Game_Character
#———————————————————————————__———————————
# 用来返回名称
#——————————————————————————__————————————
def name
   return @event.name
end  
def name=(newname)
   @event.name = newname
end
end
#==============================================================================
# ■ Sprite_Character
#------------------------------------------------------------------------------
#  角色显示用脚本。监视 Game_Character 类的实例、
# 自动变化脚本状态。
#==============================================================================
$flyname = "Vehicle"
class Sprite_Character < Sprite_Base
#--------------------------------------------------------------------------
# ● 定量
#--------------------------------------------------------------------------
  BALLOON_WAIT = 12                  # 表情最后帧的等待时间
#--------------------------------------------------------------------------
# ● 定义实例变量
#--------------------------------------------------------------------------
attr_accessor :character                # 角色
#--------------------------------------------------------------------------
# ● 初始化对像
#     viewport  : 查看端口
#     character : 角色 (Game_Character)
#--------------------------------------------------------------------------
def initialize(viewport, character = nil)
   if character.character_name != $flyname
   name = character.name
   end
   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
   if character.character_name != $flyname
   @evname_split = name.split(/,/)[0]
else
   @evname_split = nil
end
if character.character_name != $flyname
   if name[0, 2]=="EV" or character.character_name == $flyname
     @evname_split = " "
   end
end
if character.character_name != $flyname
   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)
     else
       @namesprite.bitmap.font.color.set(255, 255, 255)
     end
   end
end
   if @evname_split != "" and @evname_split != nil
     @namesprite.bitmap.draw_text(0, -5, 160, 36, @evname_split, 1)
   end
    @character = character
    @balloon_duration = 0
   update
end
#--------------------------------------------------------------------------
# ● 释放
#--------------------------------------------------------------------------
  def dispose
   if character.character_name != $flyname
   @namesprite.bitmap.dispose
   @namesprite.dispose
end
    dispose_balloon
    super
  end
#--------------------------------------------------------------------------
# ● 更新画面
#--------------------------------------------------------------------------
def update
    super
    update_bitmap
    self.visible = (not @character.transparent)
    update_src_rect
    self.x = @character.screen_x
    self.y = @character.screen_y
    self.z = @character.screen_z
    self.opacity = @character.opacity
    self.blend_type = @character.blend_type
    self.bush_depth = @character.bush_depth
    update_balloon
    if @character.animation_id != 0
      animation = $data_animations[@character.animation_id]
      start_animation(animation)
      @character.animation_id = 0
    end
    if @character.balloon_id != 0
      @balloon_id = @character.balloon_id
      start_balloon
      @character.balloon_id = 0
    end

    if character.character_name != $flyname
   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)
       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-24
   @namesprite.visible = $game_switches[39]
   end
end
#--------------------------------------------------------------------------
# ● 获取图块图像的指定图块
#     tile_id : 图块 ID
#--------------------------------------------------------------------------
  def tileset_bitmap(tile_id)
    set_number = tile_id / 256
    return Cache.system("TileB") if set_number == 0
    return Cache.system("TileC") if set_number == 1
    return Cache.system("TileD") if set_number == 2
    return Cache.system("TileE") if set_number == 3
    return nil
  end
#--------------------------------------------------------------------------
# ● 刷新传送的位图数据
#--------------------------------------------------------------------------
  def update_bitmap
    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;
        self.bitmap = tileset_bitmap(@tile_id)
        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
  end
#--------------------------------------------------------------------------
# ● 刷新传送的矩形数据
#--------------------------------------------------------------------------
  def update_src_rect
    if @tile_id == 0
      index = @character.character_index
      pattern = @character.pattern < 3 ? @character.pattern : 1
      sx = (index % 4 * 3 + pattern) * @cw
      sy = (index / 4 * 4 + (@character.direction - 2) / 2) * @ch
      self.src_rect.set(sx, sy, @cw, @ch)
    end
  end
#--------------------------------------------------------------------------
# ● 开始显示表情图标
#--------------------------------------------------------------------------
  def start_balloon
    dispose_balloon
    @balloon_duration = 8 * 8 + BALLOON_WAIT
    @balloon_sprite = ::Sprite.new(viewport)
    @balloon_sprite.bitmap = Cache.system("Balloon")
    @balloon_sprite.ox = 16
    @balloon_sprite.oy = 32
    update_balloon
  end
#--------------------------------------------------------------------------
# ● 刷新表情图标
#--------------------------------------------------------------------------
  def update_balloon
    if @balloon_duration > 0
      @balloon_duration -= 1
      if @balloon_duration == 0
        dispose_balloon
      else
        @balloon_sprite.x = x
        @balloon_sprite.y = y - height
        @balloon_sprite.z = z + 200
        if @balloon_duration < BALLOON_WAIT
          sx = 7 * 32
        else
          sx = (7 - (@balloon_duration - BALLOON_WAIT) / 8) * 32
        end
        sy = (@balloon_id - 1) * 32
        @balloon_sprite.src_rect.set(sx, sy, 32, 32)
      end
    end
  end
#--------------------------------------------------------------------------
# ● 释放表情图标
#--------------------------------------------------------------------------
  def dispose_balloon
    if @balloon_sprite != nil
      @balloon_sprite.dispose
      @balloon_sprite = nil
    end
  end
end
class Game_Player < Game_Character
def name
   return ""
end
end
回复 支持 反对

使用道具 举报

Lv2.观梦者 (管理员)

八云紫的式神

梦石
0
星屑
629
在线时间
1243 小时
注册时间
2008-1-1
帖子
4282

烫烫烫

9
发表于 2009-6-10 18:01:55 | 只看该作者
要到main以上
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2025-1-27 04:36

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表