别人的脚本A
别人的脚本B
作者: QQ蚊子湯
时间: 2017-12-2 14:06
使用字符串內嵌表達式#{}
和eval方法
作者: QQ蚊子湯
时间: 2017-12-2 14:20
內嵌表達式可以得到字符串的計算結果
a="50-10"
p a
50-10
p #{a}
40
作者: QQ蚊子湯
时间: 2017-12-2 14:25
https://rpg.blue/thread-398047-1-1.html
請看第一部第一章第二節第三項
有關字符串內嵌表達式的部分
以及第一部第一章第七節第七項
有關eval方法
作者: 芯☆淡茹水
时间: 2017-12-2 16:05
如果备注是 note
计算结果 = note.match(/<伤害 (\S*)>/) ? eval($1) : 0
作者: chd114
时间: 2017-12-2 16:32
用eval方法可以把字符串转换为可以运行的脚本
用begin-end把可以运行的脚本转换为注释文本
···比如说这样···
- %w(Item Skill).each do |type| eval %{
- class RPG::#{type}
- def target_type
- t=$data_#{type.downcase}s[self.id].is_a?(RPG::Item)? -1:1
- return Target::SCOPE[self.id*t][:scopetype] if Target::SCOPE[self.id*t][:scopetype]
- return "o" if Array(1..6).include?(scope)
- #return "f" if Array(7..11).include?(scope)
- return "f" if [7,8].include?(scope)#所有队友
- return "f_d" if [9,10].include?(scope)#阵亡队友
- return "f_a" if [12,13].include?(scope)#存活队友
- return "u" if scope==11#使用者
- return nil if scope==0
- return "fo" if scope==14#任意单体
- return "fo_a" if scope==15#友存活单体|敌单体
- return "fo_d" if scope==16#友阵亡单体|敌单体
- return "a" if scope==17#任意全体
- return "a_a" if scope==18#友存活全体|敌全体
- return "a_d" if scope==19#友阵亡全体|敌全体
- return "aa" if scope==20#全体
- return "aa_a" if scope==21#友存活全体&敌全体
- return "aa_d" if scope==22#友阵亡全体&敌全体
- end
- def target_num
- t=$data_#{type.downcase}s[self.id].is_a?(RPG::Item)? -1:1
- return Target::SCOPE[self.id*t][:rdn]? Target::SCOPE[self.id*t][:rdn] : 1
- end
- end
- }
复制代码
在物品/技能的公式计算也用了这样的方法
- value = item.damage.eval(user, self, $game_variables)
复制代码
欢迎光临 Project1 (https://rpg.blue/) |
Powered by Discuz! X3.1 |