注册会员 登录
Project1 返回首页

喵呜喵5的树洞 https://rpg.blue/?291206 [收藏] [复制] [分享] [RSS]

日志

【脚本】脸图显示心情

热度 17已有 3420 次阅读2014-3-8 22:31 |个人分类:脚本| 心情

这个脚本需要搭配我的基础脚本共同使用:http://rm.66rpg.com/home.php?mod=space&uid=291206&do=blog&id=13513

如果只是需要测试脚本的性能的话可以使用下面这个素材图片,命名为Mood放到Graphics\System文件夹下后直接载入脚本,之后在对话中使用转义字符“\mood[hello]”(不包括双引号)即可查看效果。

(请注意:上面这个素材来自恋爱游戏制作大师2,根据EB官方协定,只有拥有Renai2的正版版权才能将这个素材用于RM游戏中)

=begin

===============================================================================

  脸图显示心情 By喵呜喵5

===============================================================================


【说明】


  在对话中使用转义字符:\mood[心情的名字] 即可在脸图上显示指定的心情图标


  关于心情图标的设置请参考设定部分的说明


  心情的图片素材放在 Graphics\System 目录下


=end

$m5script ||= {};raise("需要喵呜喵5基础脚本的支持") unless $m5script[:M5Base]

$m5script[:M5FM20141206] = 20141206;M5script.version(20141205)

module M5FM20141206

#==============================================================================

# 设定部分

#==============================================================================


  Z = 201


  # 心情的Z坐标,当心情遮住某些窗口时请尝试修改这里


  LIST = {


  # 按照下面的格式设置对话中显示在脸图上的心情:


  # "心情的名字(不允许重复)" =>  ["心情图标的文件名",

  # [心情图标的动画数目,每张动画显示的时间],

  # [对话框居下时的X坐标,对话框居下时的Y坐标],

  # [对话框居中时的X坐标,对话框居中时的Y坐标],

  # [对话框居上时的X坐标,对话框居上时的Y坐标]],(注意最后的逗号)

  #

  # 例如:

  #

  # "hello" =>  ["Mood",[7,10],[90,300],[90,153],[90,6]] ,

  #

  # 表示名字叫hello的心情素材文件名为Mood,包含7张动画图片,每张图片显示10帧,

  # 对话框居下、中、上时心情的显示位置分别为(90,300)(90,153)(90,6)

  # 之后在对话中输入\mood[hello]就会在对应位置播放设置好的这个心情


  "hello" =>  ["Mood",[7,10],[90,300],[90,153],[90,6]] ,



#==============================================================================

# 设定结束

#==============================================================================

  }

class Sprite_Mood < Sprite

  def initialize

    super(nil)

    self.z = Z

    clear_instance_variables

  end

  def clear_instance_variables

    @duration = @wait = @max_frame = @width = 0

    @frame = 0

    self.bitmap = nil

    self.src_rect.set(Rect.new)

  end

  def set_mood(setting,pos)

    update_placement(setting,pos)

    self.bitmap = Cache.system(setting[0])

    @max_frame , @duration = setting[1]

    @wait = @frame = 0

    @width = self.bitmap.width / @max_frame

  end

  def update_placement(setting,pos)

    self.x,self.y = case pos

                    when 1 then setting[3]

                    when 2 then setting[2]

                    else setting[4]

                    end

  end

  def update

    super

    clear_instance_variables if @frame == @max_frame + 1 and self.bitmap

    return unless self.bitmap

    return (@wait -= 1) if @wait > 0

    self.src_rect.set(@frame * @width, 0, @width, self.bitmap.height)

    @wait = @duration

    @frame += 1

  end

end

end # module M5FM20141206

class Window_Message

  alias m5_20140308_initialize initialize

  def initialize

    m5_20140308_initialize

    @face_mood = M5FM20141206::Sprite_Mood.new

  end

  alias m5_20140308_dispose dispose

  def dispose

    m5_20140308_dispose

    @face_mood.dispose

  end

  alias m5_20140308_update update

  def update

    m5_20140308_update

    @face_mood.update if @face_mood.bitmap

  end

  alias m5_20140308_process_escape_character process_escape_character

  def process_escape_character(code, text, pos)

    case code.upcase

    when 'MOOD'

      mood = M5FM20141206::LIST[m5_obtain_escape_param(text)]

      if mood

        @face_mood.set_mood(mood, @position)

        wait(1) until !@face_mood.bitmap

      else

        msgbox "指定的心情不存在!" if $TEST

      end

    else

      m5_20140308_process_escape_character(code, text, pos)

    end

  end

end

5

鸡蛋

鲜花

刚表态过的朋友 (5 人)

发表评论 评论 (3 个评论)

回复 zshuser 2014-4-11 16:30
似乎很好用啊!地图上那一小点心情显示在大分辨率的情况下就显得比较无语了……
回复 kymcz79608 2016-8-18 20:03
要怎么在对话筐右下角显示那个东西出来?
就是图片右下角的东西
回复 喵呜喵5 2016-8-19 01:07
kymcz79608: 要怎么在对话筐右下角显示那个东西出来?
就是图片右下角的东西
http://rm.66rpg.com/home.php?mod=space&uid=291206&do=blog&id=12749

facelist doodle 涂鸦笔

您需要登录后才可以评论 登录 | 注册会员

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

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

GMT+8, 2024-5-8 04:23

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

返回顶部