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

Project1

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

[已经解决] 如何让变量显示的不再是数字而是一个文字或者词语

[复制链接]

Lv1.梦旅人

梦石
0
星屑
239
在线时间
2399 小时
注册时间
2008-4-11
帖子
12326

贵宾第6届短篇游戏比赛季军

跳转到指定楼层
1
发表于 2011-1-24 03:34:44 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 一瞬间的幻觉 于 2011-1-30 02:08 编辑

这个和我的问题很类似,但是他的是XP的,而且我的更加复杂
http://rpg.blue/forum.php?mod=vi ... =%E5%8F%98%E9%87%8F

但我的问题不是这个,我的是:

本来句子中的变量代入是数字的,比如说  史莱姆等级\v[1]LV
当该变量增加10,那么显示出的句子便是 史莱姆等级10LV

但是如果我要表达的变量并不限于阿拉伯数字,那又该如何呢,
例如:\v[1]史莱姆,当这个变量id1=1的时候输出的文字为“”,当变量=2的时候,输出的文字为“
也就是说随着变量的改变,句子会变成这样:史莱姆---史莱姆

我不知道应该改哪段脚本,怎么定义变量id=1在1的时候是“小”,2的时候是“大”。。。以此类推

谢谢,貌似有点难,要是能解决就好了

点评

而且我用的也是VX啊……  发表于 2011-1-24 12:39
突然发现,那个链接不是我的帖子么……  发表于 2011-1-24 12:39
能提供好的思路就行,也不是说非要改脚本。。。咳咳我脚本盲  发表于 2011-1-24 03:35

Lv5.捕梦者 (管理员)

老黄鸡

梦石
0
星屑
42681
在线时间
7616 小时
注册时间
2009-7-6
帖子
13506

开拓者贵宾

2
发表于 2011-1-24 09:10:52 | 只看该作者
回复 一瞬间的幻觉 的帖子

case 什么的比较好用,数组也可以
case例子
  1.   def convert_special_characters
  2.     @text.gsub!(/\\V\[([0-9]+)\]/i) { $game_variables[$1.to_i] }
  3.     @text.gsub!(/\\N\[([0-9]+)\]/i) { $game_actors[$1.to_i].name }
  4.     @text.gsub!(/\\C\[([0-9]+)\]/i) { "\x01[#{$1}]" }
  5.     @text.gsub!(/\\G/)              { "\x02" }
  6.     @text.gsub!(/\\\./)             { "\x03" }
  7.     @text.gsub!(/\\\|/)             { "\x04" }
  8.     @text.gsub!(/\\!/)              { "\x05" }
  9.     @text.gsub!(/\\>/)              { "\x06" }
  10.     @text.gsub!(/\\</)              { "\x07" }
  11.     @text.gsub!(/\\\^/)             { "\x08" }
  12.     @text.gsub!(/\\\\/)             { "\\" }
  13.   end
复制代码
修改为
  1.   def convert_special_characters
  2.     @text.gsub!(/\\V\[([0-9]+)\]/i) { fux2($game_variables[$1.to_i]) }
  3.     @text.gsub!(/\\N\[([0-9]+)\]/i) { $game_actors[$1.to_i].name }
  4.     @text.gsub!(/\\C\[([0-9]+)\]/i) { "\x01[#{$1}]" }
  5.     @text.gsub!(/\\G/)              { "\x02" }
  6.     @text.gsub!(/\\\./)             { "\x03" }
  7.     @text.gsub!(/\\\|/)             { "\x04" }
  8.     @text.gsub!(/\\!/)              { "\x05" }
  9.     @text.gsub!(/\\>/)              { "\x06" }
  10.     @text.gsub!(/\\</)              { "\x07" }
  11.     @text.gsub!(/\\\^/)             { "\x08" }
  12.     @text.gsub!(/\\\\/)             { "\\" }
  13.   end
  14.   
  15.   def fux2(str)
  16.     case str
  17.     when 0..5
  18.       return "小"
  19.     when 6..10
  20.       return "中"
  21.     when 11..15
  22.       return "大"
  23.     when 16..20
  24.       return "巨"
  25.     end
  26.   end
复制代码
于是数组的例子就是
  1.   def convert_special_characters
  2.     @text.gsub!(/\\V\[([0-9]+)\]/i) { fux2($game_variables[$1.to_i]) }
  3.     @text.gsub!(/\\N\[([0-9]+)\]/i) { $game_actors[$1.to_i].name }
  4.     @text.gsub!(/\\C\[([0-9]+)\]/i) { "\x01[#{$1}]" }
  5.     @text.gsub!(/\\G/)              { "\x02" }
  6.     @text.gsub!(/\\\./)             { "\x03" }
  7.     @text.gsub!(/\\\|/)             { "\x04" }
  8.     @text.gsub!(/\\!/)              { "\x05" }
  9.     @text.gsub!(/\\>/)              { "\x06" }
  10.     @text.gsub!(/\\</)              { "\x07" }
  11.     @text.gsub!(/\\\^/)             { "\x08" }
  12.     @text.gsub!(/\\\\/)             { "\\" }
  13.   end
  14.   
  15.   def fux2(str)
  16.     fux2 = [[0,5,"小"],[6,10,"中"],[11,15,"大"],[16,20,"巨"]]
  17.     fux2.each do |i|
  18.       if str >= i[0] && str <= i[1]
  19.         return i[2]
  20.       end
  21.     end
  22.   end
复制代码
注意,以上的方法都没有考虑数值超出范围的情况,不过对于作者,应该不会故意去草畜范围的吧.

点评

这段脚本是在哪里?还有,要是变量溢出该怎么办?或者我该在最后加一个[21,99999999]?  发表于 2011-1-24 17:08

评分

参与人数 1星屑 +600 收起 理由
DeathKing + 600 认可答案

查看全部评分

RGDirect - DirectX驱动的RGSS,点我了解.
RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复 支持 反对

使用道具 举报

Lv1.梦旅人

战国美少年森兰丸

梦石
0
星屑
204
在线时间
852 小时
注册时间
2008-7-20
帖子
3705
3
发表于 2011-1-24 11:19:07 | 只看该作者
这里http://rpg.blue/thread-162573-1-3.html冰舞用了使变量带入物品名称。
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
4427
在线时间
1911 小时
注册时间
2010-12-21
帖子
2365
4
发表于 2011-1-24 12:00:21 | 只看该作者
本帖最后由 黄亦天 于 2011-1-24 12:15 编辑

回复 一瞬间的幻觉 的帖子

最简单的就是
$game_variables[编号] = "字符"
在对话中输入:\v[编号]时,显示的就是 字符 二字
注意要用半角引号…… 全角引号“”经常被我误用,导致各种错误……

附加三张图片:(有别的东西乱入请无视)
事件内的写法:

对话中的效果:

F9调试窗口里的惨状:

点评

真的这么简单?我试试看  发表于 2011-1-24 17:09
唔…… 脑子秀逗了…… 无视分歧什么的吧……  发表于 2011-1-24 12:42
使用时条件分歧一下~~ 用同一变量的话,事先不把字符改为数字会出现错误的,如果用其他变量分歧,可以避免错误,不过就意味着要多用一个变量  发表于 2011-1-24 12:22
绿坝娘素材库企划

素材库获取方法:暂时中止,需求者私聊。
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (暗夜天使)

名侦探小柯

梦石
0
星屑
3299
在线时间
3619 小时
注册时间
2006-9-6
帖子
37400

开拓者贵宾第3届短篇游戏大赛主流游戏组亚军第5届短篇游戏比赛亚军

5
发表于 2011-1-24 13:07:59 | 只看该作者
你们不要忽视默认功能啊,文章显示里可以显示角色的名字,比如编号5的名字为小,编号6为大,也可以都是使用同一个,根据情况临时把那个名字改掉……

点评

\n[x]的方法我也试过,已经设定好的N个变量又要重新设比较不方便  发表于 2011-1-24 17:10
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-24 02:28

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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