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

Project1

 找回密码
 注册会员
搜索
查看: 14370|回复: 20

[RMVX发布] 应求 显示NPC名

 关闭 [复制链接]

TA还没有解放自身的潜力。

Lv1.梦旅人

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

第1届Title华丽大赛新人奖

发表于 2008-11-5 04:17:06 | 显示全部楼层 |阅读模式

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

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

x
比较粗糙,而且不是很认真测试...



  1. #==============================================================================
  2. # 显示NPC名
  3. #------------------------------------------------------------------------------
  4. # 跟原版一样,EV开头的不显示,逗号后加颜色代码
  5. # 修改某事件名的方法:
  6. #   set_npc_name("新名", 事件ID, 地图ID, 是否永久生效)
  7. #     事件ID 为空时表示当前事件
  8. #     地图ID 为空时表示当前地图
  9. #     是否永久生效 默认永久,否则只允许修改当前地图
  10. #==============================================================================
  11. # 参数设定
  12. #==============================================================================
  13. module NPC
  14.   NAME_FONT = "黑体"
  15.   NAME_SIZE = 16
  16.   NAME_SHADOW = false
  17.   NAME_WIDTH = 120
  18. end
  19. #==============================================================================
  20. # 重定事件名
  21. #==============================================================================
  22. def set_npc_name(name, event_id = nil, map_id = nil, forever = true)
  23.   # 处理事件 ID
  24.   if event_id == nil
  25.     event_id = $game_map.interpreter.event_id
  26.   end
  27.   # 处理地图 ID
  28.   if map_id == nil
  29.     $game_map.events[event_id].name = name
  30.     map_id = $game_map.map_id
  31.   else
  32.     map_id = map_id
  33.   end
  34.   return unless forever
  35.   data = load_data(sprintf("Data/Map%03d.rvdata", map_id))
  36.   # 更改名
  37.   data.events[event_id].name = name
  38.   save_data(data, sprintf("Data/Map%03d.rvdata", map_id))
  39. end
  40. #==============================================================================
  41. # ■ Game_Character
  42. #==============================================================================
  43. class Game_Character
  44.   #--------------------------------------------------------------------------
  45.   # ◎ 定义实例变量
  46.   #--------------------------------------------------------------------------
  47.   attr_accessor :name                  # 名称
  48.   #--------------------------------------------------------------------------
  49.   # ◎ 初始化对象
  50.   #--------------------------------------------------------------------------
  51.   alias character_ini initialize
  52.   def initialize
  53.     character_ini
  54.     @name = ""
  55.   end
  56. end
  57. #==============================================================================
  58. # ■ Game_Event
  59. #==============================================================================
  60. class Game_Event < Game_Character
  61.   #--------------------------------------------------------------------------
  62.   # ◎ 定义实例变量
  63.   #--------------------------------------------------------------------------
  64.   attr_reader   :erased
  65.   #--------------------------------------------------------------------------
  66.   # ◎ 初始化对像
  67.   #     map_id : 地图 ID
  68.   #     event  : 事件 (RPG::Event)
  69.   #--------------------------------------------------------------------------
  70.   alias event_ini initialize
  71.   def initialize(map_id, event)
  72.     event_ini(map_id, event)
  73.     @name = @event.name
  74.   end
  75. end
  76. #==============================================================================
  77. # ■ Game_Player
  78. #==============================================================================
  79. class Game_Player < Game_Character
  80.   #--------------------------------------------------------------------------
  81.   # ◎ 获取角色名
  82.   #--------------------------------------------------------------------------
  83.   def name
  84.     return $game_party.members[0].name
  85.   end
  86. end
  87. #==============================================================================
  88. # ■ Game_Interpreter
  89. #==============================================================================
  90. class Game_Interpreter
  91.   #--------------------------------------------------------------------------
  92.   # ◎ 定义实例变量
  93.   #--------------------------------------------------------------------------
  94.   attr_reader   :event_id
  95. end
  96. #==============================================================================
  97. # ■ Sprite_Character
  98. #==============================================================================
  99. class Sprite_Character < Sprite_Base
  100.   #--------------------------------------------------------------------------
  101.   # ◎ 初始化对象
  102.   #     viewport  : 视区
  103.   #     character : 角色 (Game_Character)
  104.   #--------------------------------------------------------------------------
  105.   def initialize(viewport, character = nil)
  106.     super(viewport)
  107.     @character = character
  108.     @balloon_duration = 0
  109.     ## 名称
  110.     @name = @character.name
  111.     set_name_sprite
  112.     update
  113.   end
  114.   #--------------------------------------------------------------------------
  115.   # ◎ 释放
  116.   #--------------------------------------------------------------------------
  117.   def dispose
  118.     dispose_balloon
  119.     super
  120.     ##
  121.     return if @name_sprite == nil
  122.     @name_sprite.bitmap.dispose
  123.     @name_sprite.dispose
  124.   end
  125.   #--------------------------------------------------------------------------
  126.   # ● 更新画面
  127.   #--------------------------------------------------------------------------
  128.   def update
  129.     super
  130.     update_bitmap
  131.     self.visible = (not @character.transparent)
  132.     update_src_rect
  133.     self.x = @character.screen_x
  134.     self.y = @character.screen_y
  135.     self.z = @character.screen_z
  136.     self.opacity = @character.opacity
  137.     self.blend_type = @character.blend_type
  138.     self.bush_depth = @character.bush_depth
  139.     update_balloon
  140.     if @character.animation_id != 0
  141.       animation = $data_animations[@character.animation_id]
  142.       start_animation(animation)
  143.       @character.animation_id = 0
  144.     end
  145.     if @character.balloon_id != 0
  146.       @balloon_id = @character.balloon_id
  147.       start_balloon
  148.       @character.balloon_id = 0
  149.     end
  150.     ## 名称可视和跟随
  151.     unless @name_sprite == nil or @name_sprite.disposed?
  152.       if @character.is_a?(Game_Event) and @character.erased
  153.         @name_sprite.visible = false
  154.         return
  155.       else
  156.         @name_sprite.visible = true
  157.       end
  158.       if @character.is_a?(Game_Player) and @character.in_vehicle?
  159.         @name_sprite.visible = false
  160.         return
  161.       else
  162.         @name_sprite.visible = true
  163.       end
  164.       if @name != @character.name
  165.         @name = @character.name
  166.         refresh_name_sprite
  167.       end
  168.       @name_sprite.x = self.x - 80
  169.       @name_sprite.y = self.y - self.height - NPC::NAME_SIZE+2
  170.       @name_sprite.z = self.z+1
  171.     end
  172.   end
  173.   #--------------------------------------------------------------------------
  174.   # ○ 设定 NPC 名称
  175.   #--------------------------------------------------------------------------
  176.   def set_name_sprite
  177.     return if @character.name[0, 2] == "EV"
  178.     return if @character.name == ""
  179.     return if @character.character_name == ""
  180.     return if @character.is_a?(Game_Event) and @character.erased
  181.     @color_board = Window_Base.new(0,0,33,33)
  182.     @color_board.visible = false
  183.     @name_sprite = Sprite.new
  184.     @name_sprite.bitmap = Bitmap.new(NPC::NAME_WIDTH, NPC::NAME_SIZE+2)
  185.     @name_sprite.bitmap.font.name = NPC::NAME_FONT
  186.     @name_sprite.bitmap.font.size = NPC::NAME_SIZE
  187.     @name_sprite.bitmap.font.shadow = NPC::NAME_SHADOW
  188.     refresh_name_sprite
  189.   end
  190.   #--------------------------------------------------------------------------
  191.   # ○ 更新 NPC 名称
  192.   #--------------------------------------------------------------------------
  193.   def refresh_name_sprite
  194.     name,color_index = @name.split(/,/)
  195.     color_index = 0 if color_index == ""
  196.     @name_sprite.bitmap.font.color = @color_board.text_color(color_index.to_i)
  197.     @name_sprite.bitmap.clear
  198.     @name_sprite.bitmap.draw_text(0,0,160,NPC::NAME_SIZE+2,name,1)
  199.   end
  200. end

复制代码

阿桑奇不是一个偶像;阿桑奇是一种思想

TA还没有解放自身的潜力。

Lv1.梦旅人

神隐的主犯

梦石
0
星屑
90
在线时间
271 小时
注册时间
2008-2-22
帖子
7691

贵宾

发表于 2008-11-5 04:19:30 | 显示全部楼层
那个,可以截张图片么?

《天空之城 —— 破碎的命运》
回复 支持 反对

使用道具 举报

TA还没有解放自身的潜力。

Lv1.梦旅人

kissye的宠物<

梦石
0
星屑
49
在线时间
1562 小时
注册时间
2008-8-11
帖子
6177

贵宾

发表于 2008-11-5 04:24:10 | 显示全部楼层
话说最近总是能看见沉影·····
{/hx}那个··沉影也帮我写过一个脚本······
{/tp}
回复 支持 反对

使用道具 举报

TA还没有解放自身的潜力。

Lv1.梦旅人

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

第1届Title华丽大赛新人奖

 楼主| 发表于 2008-11-5 04:25:12 | 显示全部楼层
这图没啥意思...我自己只测试了事件移动 飞船 暂时消除事件

阿桑奇不是一个偶像;阿桑奇是一种思想

回复 支持 反对

使用道具 举报

TA还没有解放自身的潜力。

Lv1.梦旅人

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-11-3
帖子
20
发表于 2008-11-5 04:27:27 | 显示全部楼层
把名字换在脚下会不会好点....这样看起来怪怪的.....
回复 支持 反对

使用道具 举报

TA还没有解放自身的潜力。

Lv1.梦旅人

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

第1届Title华丽大赛新人奖

 楼主| 发表于 2008-11-5 04:30:37 | 显示全部楼层
以下引用50‰纯黑于2008-11-4 20:27:27的发言:

把名字换在脚下会不会好点....这样看起来怪怪的.....

坐标自己调吧,下了

阿桑奇不是一个偶像;阿桑奇是一种思想

回复 支持 反对

使用道具 举报

TA还没有解放自身的潜力。

Lv1.梦旅人

欠扁头像持有者

梦石
0
星屑
55
在线时间
13 小时
注册时间
2005-10-22
帖子
420
发表于 2009-6-12 08:00:00 | 显示全部楼层
沉影大大~LOVE下下~{/hx}
水兵土星--死亡之星!
回复 支持 反对

使用道具 举报

[动态]受到彩笔之风车的挑战,被揍得晕头转向。 (打开TA的战斗卡片)

Lv3.寻梦者 (暗夜天使)

名侦探小柯

梦石
0
星屑
2193
在线时间
3548 小时
注册时间
2006-9-6
帖子
37352

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

发表于 2008-11-8 02:55:34 | 显示全部楼层
比yangff的那个原始版好多了!{/qiang}
Lofter个站:点击进入吧 不要犹豫了come on baby! (闲水、游戏预告、游戏发布)

回复 支持 反对

使用道具 举报

TA还没有解放自身的潜力。

Lv1.梦旅人

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

第1届Title华丽大赛新人奖

 楼主| 发表于 2009-6-12 08:00:00 | 显示全部楼层
回头想想,这样直接修改数据库并不理想...
我现在觉得用自带的开头变量控制更合理,就像这里改路牌一样:
http://rpg.blue/viewthread.php?tid=105429

阿桑奇不是一个偶像;阿桑奇是一种思想

回复 支持 反对

使用道具 举报

TA还没有解放自身的潜力。

Lv2.观梦者

傻♂逼

梦石
0
星屑
308
在线时间
1601 小时
注册时间
2007-3-13
帖子
6566

烫烫烫开拓者

发表于 2008-11-10 02:17:10 | 显示全部楼层
以下引用越前リョーマ于2008-11-7 18:55:34的发言:

比yangff的那个原始版好多了!

砍了你,更新版你看不见吗?
在整合板2.9.23.1里(ms消失了{/gg})
哎呀,蛋疼什么的最有爱了
回复 支持 反对

使用道具 举报

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

本版积分规则

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

站长信箱:fux2@moe9th.com|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2019-3-27 10:11

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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