幻想森林

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1277|回复: 1

[转帖]脸谱+姓名显示脚本

[复制链接]

7

主题

18

帖子

220

积分

③业余

积分
220
发表于 2006-5-24 21:48:16 | 显示全部楼层 |阅读模式
原地址:http://www.k3.dion.ne.jp/~claimh/




使用方法:
1.顔グラ(128×128)をPicturesへインポート
2.スクリプト内に名前と顔グラのセットを記述
3.イベント中で顔グラ+名前を表示させるには、
  show_face_name(id, type)
     id:2.でセットした顔グラ+名前の登録ID
     type:表示タイプ(0→左、1→右)
4.表示した顔グラ+名前を消すには、
  hide_face_name(type)
  (注)左右のどちらかしか消せませんので、
     両方表示させている場合は、2回実行してください。


  (本人不懂日语,有懂的翻译一下,如果你像偶一样聪明,不翻也能用......哈哈)



#==============================================================================
# ■ 顔グラ+名前表示     Ver.1.0.1              by Claimh
#------------------------------------------------------------------------------
#   会話時に顔グラと名前を別ウィンドウに表示できます。
#==============================================================================

module Face_Name
  FACENAME_SET = []
#==============================================================================
# □ カスタマイズSTART
#==============================================================================
  # 顔グラ+名前セットの設定
  # FACENAME_SET[登録ID] = [ 名前(""とすれば、名無し), 顔グラのファイル名]
  FACENAME_SET[0] = ["アルシェス", "aru.png"]
#==============================================================================
# □ カスタマイズEND
#==============================================================================
end


class Interpreter
  #--------------------------------------------------------------------------
  # ● 顔グラ+名前表示
  #       id    : 顔グラ+名前セットID
  #       type  : 表示タイプ(0:左    1:右)
  #--------------------------------------------------------------------------
  def show_face_name(id, type)
    if type == 0
      @l_face_window = Window_Face.new
      if Face_Name::FACENAME_SET[id][0] != ""
        @l_face_window.set_face_name(id)
        @l_name_window = Window_Name.new(id)
        @l_dummy_window = Window_NameDummy.new
      end
    elsif type == 1
      @r_face_window = Window_Face.new
      @r_face_window.x = 480
      if Face_Name::FACENAME_SET[id][0] != ""
        @r_face_window.set_face_name(id)
        @r_name_window = Window_Name.new(id)
        @r_dummy_window = Window_NameDummy.new
        @r_name_window.x = 336
        @r_dummy_window.x = 336
      end
    end
  end
  
  #--------------------------------------------------------------------------
  # ● 顔グラ+名前消去
  #--------------------------------------------------------------------------
  def hide_face_name(type)
    if type == 0
      @l_face_window.dispose
      @l_face_window = nil
      if @l_name_window != nil
        @l_name_window.dispose
        @l_name_window = nil
        @l_dummy_window.dispose
        @l_dummy_window = nil
      end
    elsif type == 1
      @r_face_window.dispose
      @r_face_window = nil
      if @r_name_window != nil
        @r_name_window.dispose
        @r_dummy_window.dispose
        @r_name_window = nil
        @r_dummy_window = nil
      end
    end
  end
end

class Window_Face < Window_Base
  include Face_Name
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #--------------------------------------------------------------------------
  def initialize
    super(0, 160, 160, 160)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.opacity = 0
  end
  
  #--------------------------------------------------------------------------
  # ● 顔グラ+名前表示
  #--------------------------------------------------------------------------
  def set_face_name(id)
    face = FACENAME_SET[id]
    bitmap = RPG::Cache.picture(face[1])
    src_rect = Rect.new(0, 0, self.width, self.height)
    self.contents.blt(0, 0, bitmap, src_rect)
  end
end

class Window_Name < Window_Base
  include Face_Name
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #--------------------------------------------------------------------------
  def initialize(id)
    name = FACENAME_SET[id]
    return if name[0] == nil
    super(144, 256, 160, 64)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.opacity = 0
    self.contents.draw_text(0, 0, 128, 32, name[0])
  end
end

class Window_NameDummy < Window_Base
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #--------------------------------------------------------------------------
  def initialize
    super(144, 272, 160, 32)
  end
end
回复

使用道具 举报

91

主题

3188

帖子

83986万

积分

荣誉群

传说中的Bunny大神~!

积分
839861514
QQ
发表于 2006-5-24 22:08:10 | 显示全部楼层
原地址:http://www.k3.dion.ne.jp/~claimh/

下次转载请记得贴上原地址哦。
其他所有的Bunny神都素我的部下XD~ 小教程范例收集 Orz感谢邪恶萝卜联盟!!!(原因自己去猜)
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|幻想森林

GMT+8, 2025-6-27 17:57 , Processed in 0.010011 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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