赞 | 0 |
VIP | 289 |
好人卡 | 7 |
积分 | 1 |
经验 | 7622 |
最后登录 | 2024-2-4 |
在线时间 | 400 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 65
- 在线时间
- 400 小时
- 注册时间
- 2005-10-24
- 帖子
- 634
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
内嵌表达式本是很好用的东东,可惜在数据库中的物品名称、描述、事件的对话等等都无法使用,使用下面这个方法就可以把字符串中的内嵌表达式还原- .gsub(/\#\{(.*?)\}/){eval($1)}
复制代码 下面这段用来测试其有效性- $num1 = 874
- $num2 = 253
- text = 'num are #{$num1} and #{$num2}'
- p text
- text = text.gsub(/\#\{(.*?)\}/){eval($1)}
- p text
复制代码 具体的应用方法有很多,其中之一是把它加入各个Window类有draw_text的地方。如果认为这种方法比较麻烦的话,把下面这段东西插入Main之上,就可以把内嵌表达式扩展到“几乎”所有需要描绘文字的地方了。为什么说几乎?因为有些脚本是逐字描绘的,所以这些脚本还是要在其中插入把字符串中的内嵌表达式还原的语句。- #==============================================================================
- # 伪·内嵌表达式 v1.0
- # By 叶子
- #==============================================================================
- # 1-5-2007 v1.0
- #==============================================================================
- # 使用方法:插入到Main之上,这样就可以在数据库、事件等等中使用内嵌表达式了
- # 内嵌表达式说明请打开帮助,搜索“内嵌表达式”
- #==============================================================================
- class Bitmap
- alias fake_exp_draw_text draw_text
- def draw_text(x = 0, y = 0, width = 0, height = 0, str = "", align = 0)
- if y.is_a?(String)
- str = y
- rect = x
- x = rect.x
- y = rect.y
- align = width
- width = rect.width
- height = rect.height
- end
- fake_exp_draw_text(x, y, width, height, str.gsub(/\#\{(.*?)\}/){eval($1)}, align)
- end
- end
- module RPG
- class EventCommand
- def parameters
- if @code == 101 or @code == 401
- fake_exp_parameters = @parameters.clone
- fake_exp_parameters[0].gsub!(/\#\{(.*?)\}/){eval($1)}
- return fake_exp_parameters
- else
- return @parameters
- end
- end
- end
- end
复制代码
使用举例:在限制使用次数或有冷却时间的特技名称或描述中显示使用次数或冷却时间;特技等级;在对话中插入各种变量,例如物品个数,省了代入变量这一步;随时可变的角色、职业、怪物、物品、特技名字,等等。
同时附上帮助中内嵌表达式的说明:[quote]内嵌表达式在字符串里面,可以用 #{变量名} 的形式把变量的内容嵌入在字符串当中。
game = "RPG"
print "#{game} Maker XP" # => RPG Maker XP
上述示例里,第一行是为 game 变量赋值代入字符串“RPG”。第二行里面,其中 #{game} 是表示直接嵌入变量 game 的值字符串“RPG”,和后面的“ Maker XP”组合在一起,从而输出一个新的字符串。 RPGXP 的事件指令「显示文章」里,在文章中使用 \V[n] 和 \N[n] 控制码可以把变量的值和角色的名称作为信息嵌入文字中,这个功能好像和那个十分相似。
这个功能,让我们举例来说明在预置脚本中应如何使用。
print("文件 #{filename} 没找到。")
print 的显示内容应附加上括号 (),如果其优先顺序不易混淆的话可以省略(本章 print 的使用示例介绍中全部省略了括号)。预置脚本中基本上都统一使用有括号,所以在这儿也加上一个。
这个是当然,
print("文件 " + filename + " 没找到。")
像这样写也可以,使用内嵌表达式的方法会使读取程序变得很容易。
另外内嵌表达式和控制码一样,在单引号 '' 中间的字符串里使用也会无效。[quote]
[本贴由 叶舞枫 于 2007-4-28 13:28:56 进行了编辑] |
|