查看: 4059|回复: 2

[RMVX发布] 【VX & VA】事件name显示……好像已经很多了吧

[复制链接]
梦石
0
星屑
513
在线时间
1479 小时
注册时间
2011-9-17
回帖
1266

开拓者贵宾

发表于 2011-12-16 14:02:48 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 iisnow 于 2012-3-25 22:52 编辑

不多说了:
这个是雪大的脚本
我的脚本,比雪大的脚本浅显一些(浅显多了)
具体效果:
捕获.PNG
于是很容易就发现我的脚本的一些特点了:
1.支持“\n”换行
2.支持复杂图形(包括元件图)的事件
3.自动居中于事件头顶

另外:
1.可以自定义需要显示的事件名称(前缀判据)
2.可以用开关全局控制(详见脚本)
脚本也很短啦,虽然没有雪大的47行,也只有53行:(不过,只能在VX中使用哦~VA也应该可以)
  1. class Game_Event
  2.   attr_reader   :event
  3. end

  4. class Sprite_Name < Sprite_Base
  5.   
  6.   FLAG = "显示"  #姓名前缀,只有拥有该前缀的name才会显示,设为空,则全部都会显示,
  7.   #KEY = 10   #全局开关ID,去掉改行以及17行的#即可使用
  8.   
  9.   def initialize(viewport, character = nil)
  10.     super(viewport)
  11.     @cha = character
  12.   end
  13.   
  14.   def update
  15.     super
  16.     return unless @cha.event.name =~ /^#{FLAG}/ #&& $game_switches[KEY]
  17.     if @cha.event.name.split(FLAG,2)[1] != @name
  18.       @name = FLAG.empty? ? @cha.event.name : @cha.event.name.split(FLAG,2)[1]
  19.       name_pa = @name.split(/\\n/i)
  20.       name_pa.delete_if {|x| x.downcase == '\n'}
  21.       @wid = []
  22.       name_pa.each{|s| @wid << Bitmap.new(100,100).text_size(s).width}
  23.       self.bitmap = Bitmap.new(@wid.max,16 * name_pa.size)
  24.       self.bitmap.font.size = 14
  25.       name_pa.each_with_index{|s,x| self.bitmap.draw_text(0,x * 16,@wid.max,16,s,1)}
  26.     end
  27.     if @cha.character_name == ""
  28.       self.y = @cha.screen_y - 16 * (@wid.size + 2)
  29.     else
  30.       temp_flag = @cha.character_name =~ /^\!?\$.*/
  31.       temp_pic = Cache.character(@cha.character_name)
  32.       self.y = temp_flag ? @cha.screen_y - temp_pic.height / 4 - 16 * @wid.size : @cha.screen_y - temp_pic.height / 8 - 16 * @wid.size
  33.     end
  34.     self.x = @cha.screen_x - @wid.max / 2
  35.     self.z = @cha.screen_z + 100
  36.   end
  37.   
  38. end

  39. class Spriteset_Map
  40.   
  41.   alias :iisnow_create_characters :create_characters
  42.   
  43.   def create_characters
  44.     iisnow_create_characters
  45.     $game_map.events.values.each do |event|
  46.       @character_sprites.push(Sprite_Name.new(@viewport1, event))
  47.     end
  48.   end
  49.   
  50. end
复制代码
以上,完了,自习去的



我帖子中要有是不HX的空白,请Ctrl + A

虚構歪曲

梦石
0
星屑
354
在线时间
1196 小时
注册时间
2010-12-18
回帖
3842

贵宾

发表于 2012-1-11 21:23:25 | 显示全部楼层
http://rpg.blue/thread-217619-1-1.html
哎呀,换行……又要更新了……今天才看到这个帖子啊喵……话说别老是提到我好久以前的练手物嘛,早就有正式版了。
回复

使用道具 举报

梦石
0
星屑
681
在线时间
1 小时
注册时间
2014-12-13
回帖
1
发表于 2014-12-13 23:07:58 | 显示全部楼层
赞!!!
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部