幻想森林

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

请问如何在"显示文章"的地方显示物品的名称

[复制链接]

1

主题

12

帖子

1671

积分

⑥精研

积分
1671
发表于 2005-3-31 19:59:37 | 显示全部楼层 |阅读模式
请问,如何在"显示文章"的地方显示物品的名称呢?

如果每个宝箱都自己在文本框里输入,那么一个物品名称的变化后,工程量好大.

即是象显示主角姓名那样用\N[XXX]就能代替那样.

----------------------------------------------------------------

琢磨了半天终于有点成果了,自己给自己庆祝一下.

      #---FENIX---显示物品名称,"\I[XXX]"~~~~~~~~~~~~~~~~~~~~
      text.gsub!(/\\[Ii]\[([0-9]+)\]/) do
        $data_items[$1.to_i] != nil ? $data_items[$1.to_i].name : ""
      end
      #---FENIX---显示武器名称,"\W[XXX]"~~~~~~~~~~~~~~~~~~~~
       text.gsub!(/\\[Ww]\[([0-9]+)\]/) do
        $data_weapons[$1.to_i] != nil ? $data_weapons[$1.to_i].name : ""
      end
      #---FENIX---显示防具名称,"\A[XXX]"~~~~~~~~~~~~~~~~~~~~
       text.gsub!(/\\[Aa]\[([0-9]+)\]/) do
        $data_armors[$1.to_i] != nil ? $data_armors[$1.to_i].name : ""
      end
       #---FENIX---显示技能名称,"\S[XXX]"~~~~~~~~~~~~~~~~~~~~
      text.gsub!(/\\[Ss]\[([0-9]+)\]/) do
        $data_skills[$1.to_i] != nil ? $data_skills[$1.to_i].name : ""
      end
      #---FENIX---显示职业名称,"\Z[XXX]"~~~~~~~~~~~~~~~~~~~~
       text.gsub!(/\\[Zz]\[([0-9]+)\]/) do
        $data_classes[$1.to_i] != nil ? $data_classes[$1.to_i].name : ""
      end
      #~~~~~~~~~~~~~~~~~~~~

只要把上面的代码插入Window_Message的
   # 有等待显示的文字的情况下
    if $game_temp.message_text != nil
      text = $game_temp.message_text
      # 限制文字处理
      begin
        last_text = text.clone
        text.gsub!(/\\[Vv]\[([0-9]+)\]/) { $game_variables[$1.to_i] }
      end until text == last_text
      text.gsub!(/\\[Nn]\[([0-9]+)\]/) do
        $game_actors[$1.to_i] != nil ? $game_actors[$1.to_i].name : ""
      end
后面,就能调用了.其实原来的代码也就是用正则表达式替换显示变量和姓名而已.
没有什么技术含量,照套的.按这个道理还可以显示更多的内容

菜鸟的成就,呵呵



[此贴子已经被作者于2005-4-1 12:13:12编辑过]
人品好才是真的好
回复

使用道具 举报

9

主题

243

帖子

3873

积分

⑥精研

积分
3873
发表于 2005-3-31 20:04:36 | 显示全部楼层
其实都差不多,只不过是变量的问题,例如,显示变量001号
设置001号变量名称为宝剑
嗯,差不多就是这样吧,不过我还是有些不懂你的意思
什么是物品名称的变化
obi-wan,may the force be with you
回复 支持 反对

使用道具 举报

1

主题

12

帖子

1671

积分

⑥精研

积分
1671
 楼主| 发表于 2005-3-31 20:09:28 | 显示全部楼层
怎么把物品的名称赋值给一个变量呢?好象没有见有这一条啊
人品好才是真的好
回复 支持 反对

使用道具 举报

9

主题

243

帖子

3873

积分

⑥精研

积分
3873
发表于 2005-3-31 20:11:00 | 显示全部楼层
嗯,好像解释和问题有出入
你先解释下什么是物品名称的变化
obi-wan,may the force be with you
回复 支持 反对

使用道具 举报

6

主题

35

帖子

1592

积分

⑥精研

耶稣大魔王

积分
1592
发表于 2005-3-31 20:20:35 | 显示全部楼层
做个共用事件显示物品名也不错,我就用这个。
回复 支持 反对

使用道具 举报

1

主题

12

帖子

1671

积分

⑥精研

积分
1671
 楼主| 发表于 2005-3-31 20:21:32 | 显示全部楼层
就是开始编写游戏的时候,物品名称没有定,于是随便起了个名字,比如\"药草\",等做了十多个宝箱(显示\"获得药草\")后,想把\"药草\"改成\"药丸\",那就得在每个宝箱里都更改了.主角的姓名可以用\\N[XXX]代替,在\"角色姓名\"里改一次就能把所有涉及到主角姓名的地方都变化,可是为什么没有能替代物品名称的呢?

很急着想知道解决方法,谢谢了.

公用事件里怎么获取物品名称呢?

[此贴子已经被作者于2005-3-31 20:22:34编辑过]
人品好才是真的好
回复 支持 反对

使用道具 举报

13

主题

77

帖子

1728

积分

⑥精研

紫姊姊

积分
1728
QQ
发表于 2005-3-31 20:41:24 | 显示全部楼层
以下是引用fenix在2005-3-31 20:21:32的发言:

就是开始编写游戏的时候,物品名称没有定,于是随便起了个名字,比如\"药草\",等做了十多个宝箱(显示\"获得药草\")后,想把\"药草\"改成\"药丸\",那就得在每个宝箱里都更改了.主角的姓名可以用\\N[XXX]代替,在\"角色姓名\"里改一次就能把所有涉及到主角姓名的地方都变化,可是为什么没有能替代物品名称的呢?

很急着想知道解决方法,谢谢了.

公用事件里怎么获取物品名称呢?


大概明白楼主的意思了,不过还是建议开始就把物品名定好

另外得到物品的显示可以用变量+公用事件来做啊

不过我自己做游戏的时候都是用文本写的,而且尽量都写不一样,会让玩家多一点兴趣

比如:同样一个宝箱,可以用随机显示:你获得了XXX,或者你得到了XXX,或者得到XXX,或者从箱子里拿到XXX………………[em04]
无论在什么时代, 孩子们都有权干他们自己的事,对吗?
回复 支持 反对

使用道具 举报

9

主题

243

帖子

3873

积分

⑥精研

积分
3873
发表于 2005-3-31 20:46:13 | 显示全部楼层
显示物品名称,嗯,在我记忆里这好像没有这显示代码,可能要改RGSS了
鄙人RGSS菜鸟……
这贴有难度啊(还是我变菜了),若是发到进阶区,应该就有人来帮你
obi-wan,may the force be with you
回复 支持 反对

使用道具 举报

1

主题

12

帖子

1671

积分

⑥精研

积分
1671
 楼主| 发表于 2005-3-31 21:10:09 | 显示全部楼层
以下是引用☆艾露比☆在2005-3-31 20:41:24的发言:




大概明白楼主的意思了,不过还是建议开始就把物品名定好

另外得到物品的显示可以用变量+公用事件来做啊

是指把物品名称赋值给一个变量把?可是我没有找到这个选项啊?我指的是物品的名称,不是物品的数量

[此贴子已经被作者于2005-3-31 21:28:36编辑过]
人品好才是真的好
回复 支持 反对

使用道具 举报

1

主题

12

帖子

1671

积分

⑥精研

积分
1671
 楼主| 发表于 2005-4-1 11:44:50 | 显示全部楼层
琢磨了半天终于有点成果了,自己给自己庆祝一下.

      #---FENIX---显示物品名称,\"\\I[XXX]\"~~~~~~~~~~~~~~~~~~~~
      text.gsub!(/\\\\[Ii]\\[([0-9]+)\\]/) do
        $data_items[$1.to_i] != nil ? $data_items[$1.to_i].name : \"\"
      end
      #---FENIX---显示武器名称,\"\\W[XXX]\"~~~~~~~~~~~~~~~~~~~~
       text.gsub!(/\\\\[Ww]\\[([0-9]+)\\]/) do
        $data_weapons[$1.to_i] != nil ? $data_weapons[$1.to_i].name : \"\"
      end
      #---FENIX---显示防具名称,\"\\A[XXX]\"~~~~~~~~~~~~~~~~~~~~
       text.gsub!(/\\\\[Aa]\\[([0-9]+)\\]/) do
        $data_armors[$1.to_i] != nil ? $data_armors[$1.to_i].name : \"\"
      end
       #---FENIX---显示技能名称,\"\\S[XXX]\"~~~~~~~~~~~~~~~~~~~~
      text.gsub!(/\\\\[Ss]\\[([0-9]+)\\]/) do
        $data_skills[$1.to_i] != nil ? $data_skills[$1.to_i].name : \"\"
      end
      #---FENIX---显示职业名称,\"\\Z[XXX]\"~~~~~~~~~~~~~~~~~~~~
       text.gsub!(/\\\\[Zz]\\[([0-9]+)\\]/) do
        $data_classes[$1.to_i] != nil ? $data_classes[$1.to_i].name : \"\"
      end
      #~~~~~~~~~~~~~~~~~~~~

只要把上面的代码插入Window_Message的
   # 有等待显示的文字的情况下
    if $game_temp.message_text != nil
      text = $game_temp.message_text
      # 限制文字处理
      begin
        last_text = text.clone
        text.gsub!(/\\\\[Vv]\\[([0-9]+)\\]/) { $game_variables[$1.to_i] }
      end until text == last_text
      text.gsub!(/\\\\[Nn]\\[([0-9]+)\\]/) do
        $game_actors[$1.to_i] != nil ? $game_actors[$1.to_i].name : \"\"
      end
后面,就能调用了.其实原来的代码也就是用正则表达式替换显示变量和姓名而已.

菜鸟的成就,呵呵
[em03][em03][em03][em03]
[此贴子已经被作者于2005-4-1 12:12:07编辑过]
人品好才是真的好
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-19 20:15 , Processed in 0.013024 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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