幻想森林

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

[求助]人名前臉圖(腳本問題)

[复制链接]

1

主题

2

帖子

24

积分

②入门

积分
24
发表于 2007-3-18 23:30:30 | 显示全部楼层 |阅读模式
剛在逛日本網時看到了此串RGSS,但是卻不知如何使用…
(該如何讓該角色臉圖顯示出來,例如用事件內的腳本輸入什麼,或是對話欄一開始要輸入什麼之類的…)

#==============================================================================
# ■ 顔グラ+名前表示     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

以上。懇請各位大大能幫忙!

出自:http://www.k3.dion.ne.jp/~claimh/rgss/index.html
回复

使用道具 举报

38

主题

3468

帖子

1

积分

超级版主

传说中的Bunny火神~!

Rank: 8Rank: 8

积分
1
发表于 2007-3-19 00:48:47 | 显示全部楼层
这个脚本的用法很简单,就是把整个脚本复制以后插到Main上面,然后在最开头的这个地方:
FACENAME_SET[0] = ["アルシェス", "aru.png"]
设定角色的名字以及图片名称,比如
FACENAME_SET[0] = ["SB", "SB.png"]
如果要增加的话就以此类推:
FACENAME_SET[1] = ["猫咪", "cat.png"]
FACENAME_SET[2] = ["BunnyGod", "BunnyGod.png"]
FACENAME_SET[3] = ["天上有头猪在飞", "pig.png"]
……

之后在事件脚本调用时要这样写:
show_face_name(对应编号, 位置)
比如show_face_name(1, 0)就是在左边显示FACENAME_SET[1]设定的头像。
要想让头像消失就是:
hide_face_name(位置)
我突然发现,我是一个很幸运的好人。老婆真好~ 点我进入JQ(激情)教程范例收集!
回复 支持 反对

使用道具 举报

845

主题

1万

帖子

214748万

积分

版主

脑残中……

Rank: 7Rank: 7Rank: 7

积分
2147483647

声命组金赏

发表于 2007-3-19 08:28:12 | 显示全部楼层
觉得这个脚本很鸡肋…… 如果这样还不如直接显示图片来的容易……

PS 杀鸡的签名…… 呃... 鸡嫂都说了虾米啊 > < 我要想知道某人的心事,只要把他灌醉就可以了吗…
= =真想看看某人的RP像... 奸笑ING
http://icv.cc声动音缘配音社
回复 支持 反对

使用道具 举报

38

主题

3468

帖子

1

积分

超级版主

传说中的Bunny火神~!

Rank: 8Rank: 8

积分
1
发表于 2007-3-19 11:07:16 | 显示全部楼层
引用第2楼vvvvvv2007-03-19 08:28发表的:
觉得这个脚本很鸡肋…… 如果这样还不如直接显示图片来的容易……

PS 杀鸡的签名…… 呃... 鸡嫂都说了虾米啊 > < 我要想知道某人的心事,只要把他灌醉就可以了吗…
= =真想看看某人的RP像... 奸笑ING

我是觉得这个脚本除了多显示一个名字框以外没有比直接显示图片好多少。
我突然发现,我是一个很幸运的好人。老婆真好~ 点我进入JQ(激情)教程范例收集!
回复 支持 反对

使用道具 举报

88

主题

5419

帖子

214748万

积分

版主

S素世上最伟大最华丽

Rank: 7Rank: 7Rank: 7

积分
2147483647
QQ
发表于 2007-3-19 12:56:19 | 显示全部楼层
它只是微量修改...将事件脚本化...
将原本的一个公共事件化简为一行命令...
回复 支持 反对

使用道具 举报

1

主题

2

帖子

24

积分

②入门

积分
24
 楼主| 发表于 2007-3-20 20:22:24 | 显示全部楼层
啊,原來是這樣啊!
非常感謝!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-24 10:54 , Processed in 0.012164 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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