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

Project1

 找回密码
 注册会员
搜索
查看: 1986|回复: 3
打印 上一主题 下一主题

[已经解决] 对话时怎样才能自动显示角色头像和名字?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
76
在线时间
150 小时
注册时间
2012-1-29
帖子
122
跳转到指定楼层
1
发表于 2012-2-26 11:02:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 狂人狂者 于 2012-2-26 20:43 编辑

想做一个刚开始自己选择人物的游戏,虽然角色选择可以解决,但是由于角色不同所产生的对话比较麻烦,有没有更快捷的对话中根据主角而显示主角姓名和头像方法?求大神解决...

点评

hcm
那到底是什么啊?  发表于 2012-2-27 12:00
脚本冲突去死去死!!!

Lv3.寻梦者

虚空人形

梦石
0
星屑
4557
在线时间
2037 小时
注册时间
2011-8-11
帖子
3398

贵宾

2
发表于 2012-2-26 14:26:20 | 只看该作者
在数据库-角色中多设计些角色(一个无图无名),
数据库-系统设初始角色为无图无名的,
在初始地图加自动执行事件:显示选项:(各个角色的名字,不够的在第四项设下一页,加新的显示选项,
                                                        由此往下直到角色设完为止,别忘记加玩家入伍事件)
在最后让无图无名者离队。

点评

我的问题并不是角色选择界面啊...  发表于 2012-2-26 20:43

评分

参与人数 1星屑 +60 收起 理由
iisnow + 60 感谢帮助

查看全部评分

回复

使用道具 举报

Lv2.观梦者

梦石
0
星屑
503
在线时间
1478 小时
注册时间
2011-9-17
帖子
1316

开拓者贵宾

3
发表于 2012-2-28 11:19:26 | 只看该作者
本帖最后由 iisnow 于 2012-2-28 11:21 编辑

提供一种方法,不算很好,但是可以解决:

首先,不再使用角色在角色表中的索引,即不使用id,而使用角色在当前队伍中的编号,即你需要知道当前主角应该在队伍中排第几

所以要替换一些东西,将$game_actors[x]变成$game_party.members[x]

然后,至于角色的头像显示,提供的方法中,需要加入一个素材,即在Face文件夹中加入一张图(内容没有任何要求),文件名命为“MAIN”(当然,这个也无所谓),称这张图为索引图片
下面是脚本:
  1. class Game_Interpreter

  2.   def command_101
  3.     unless $game_message.busy
  4.       if @params[0] == "MAIN"    #索引图片的名称
  5.         actor = $game_party.members[@params[1]]
  6.         face_name = actor.character_name
  7.         face_index = actor.character_index
  8.       else
  9.         face_name = @params[0]
  10.         face_index = @params[1]
  11.       end
  12.       $game_message.face_name = face_name
  13.       $game_message.face_index = face_index
  14.       $game_message.background = @params[2]
  15.       $game_message.position = @params[3]
  16.       @index += 1
  17.       while @list[@index].code == 401       # 文章数据
  18.         $game_message.texts.push(@list[@index].parameters[0])
  19.         @index += 1
  20.       end
  21.       if @list[@index].code == 102          # 显示选择项
  22.         setup_choices(@list[@index].parameters)
  23.       elsif @list[@index].code == 103       # 数值输入处理
  24.         setup_num_input(@list[@index].parameters)
  25.       end
  26.       set_message_waiting                   # 设置等待信息结束
  27.     end
  28.     return false
  29.   end
  30.   
  31. end

  32. class Window_Message
  33.   
  34.    alias :iisnow_convert_special_characters :convert_special_characters
  35.    def convert_special_characters
  36.      @text.gsub!(/\\M\[([0-9]+)\]/i) { $game_party.members[$1.to_i].name }
  37.      iisnow_convert_special_characters
  38.    end
  39.    
  40. end
复制代码
于是设置事件时,选择头像时,选择索引文件,然后主角在队伍中第X位,就选择第X个(8个框框嘛)
然后这样的话,对话时会显示队伍中第X位的头像。

最后,是名称,加入\M转义,即在对话中\M[X]就是指队伍中第X位的名称(类似于\N转义)
(M是我设置的,可以任意改)

附上范例:
iisnow.zip (256.01 KB, 下载次数: 1410) ���

点评

选择人物就参照SF,我这个提供的方法,基于SF的做法)  发表于 2012-2-28 12:55
我帖子中要有是不HX的空白,请Ctrl + A
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
46
在线时间
1527 小时
注册时间
2012-1-12
帖子
1716

贵宾

4
发表于 2012-2-28 13:36:09 | 只看该作者
可以试试用事件来做很简单,不过很繁琐
例如,有两个人物可选
设置变量“人物”
选择人物1之后,接下来所有的NPC对话都设置个条件分歧,当变量“人物”=1时设置一串对话,当变量“人物”=2时同样是那串对话改一下图片就好,虽然看起来很麻烦,不过做起来复制黏贴还是很方便的=。=
我是事件党,不会用脚本=。=

评分

参与人数 1星屑 +40 收起 理由
iisnow + 40 感谢帮助

查看全部评分

=。=
                    ↑↑↑↑本人所发帖多为玩笑逗大家一乐,不用太当真↑↑↑↑
-------------------------------------分割线---------------------------------------
                                                      
                                  以下六人为本人爱妃团,严禁NTR
                  iisnowbbh梦回碧落迷糊的安安pigsss
tianlluo
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-14 06:50

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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