查看: 2073|回复: 8

[已经过期] 请问如何读取备注里的公式

[复制链接]
梦石
0
星屑
2920
在线时间
713 小时
注册时间
2010-7-25
回帖
659

开拓者

发表于 2017-7-31 11:24:46 | 显示全部楼层 |阅读模式

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

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

×
那些可以得出数字的公式,请问如何在备注里读取。例如我要读取一个技能的备注,设使用技能的人攻击力20,技能备注的是 <备注 user.atk*2> ,那如何让这个技能的备注在实际运用时被判定为<备注 40> 呢?

评分

参与人数 1赞 +1 收起 理由
魔法☆梅莉 + 1 用eval(备注公式内容)就可以了!.

查看全部评分

梦石
0
星屑
6375
在线时间
1473 小时
注册时间
2015-7-25
回帖
609

极短25参与开拓者

发表于 2017-7-31 12:55:19 | 显示全部楼层
[pre lang="ruby"]class Game_Battler < Game_BattlerBase
  def a(user,item)
    r = /<备注\s*(\w+)(\W*)(\w+)(\W*)(\d*)>/
    if item.is_a?(RPG::Skill) and r =~ item.note
      s = $1.to_s+$2.to_s+$3.to_s+$4.to_s+$5.to_s
      num = s.scan(/(\w+)(\W*)(\w+)(\W*)(\d*)/)
      if num[0][0] == "user"
        case num[0][2]
        when "atk"
          z = user.atk * num[0][4].to_i
        end
      end
    else
      0
    end
    p z if z
  end
  def item_apply(user, item)
    @result.clear
    @result.used = item_test(user, item)
    @result.missed = (@result.used && rand >= item_hit(user, item))
    @result.evaded = (!@result.missed && rand < item_eva(user, item))
    if @result.hit?
      unless item.damage.none?
        @result.critical = (rand < item_cri(user, item))
        make_damage_value(user, item)
        execute_damage(user)
      end
      item.effects.each {|effect| item_effect_apply(user, item, effect) }
      item_user_effect(user, item)
      a(user,item)
    end
  end
end[/pre]

点评

这段脚本只是举例子的,完全可以扩充继续写下去,比如when "def";xxxx  发表于 2017-7-31 13:09
但你这个只能用于我的提问例子啊,例子以外的都用不了了……我是想要可以用于任何可以得出数据的计算的……  发表于 2017-7-31 13:07

评分

参与人数 1星屑 +30 收起 理由
jianyulei + 30 啊!好长!

查看全部评分

笨肉包的游戏讨论群932812135 (实时更新) 喜欢的话欢迎加入~
目前的坑
??? #像素风OC游戏 准备中 短篇-约5小时
花城梦之心 #像素风OC游戏 系统开发+素材绘制中
【不可思议的迷宫】幽灵契约外传:歌莉娅 v0.4 游戏文件已更新
同时更新中~ (沉迷摸鱼中~更新速度较慢请见谅w)
这是属于笨肉包一个人的旅行~(这只肉包又在摸鱼!
旅途的最终目标~ ???(保密~
回复

使用道具 举报

梦石
0
星屑
2920
在线时间
713 小时
注册时间
2010-7-25
回帖
659

开拓者

 楼主| 发表于 2017-7-31 14:24:16 | 显示全部楼层
本帖最后由 jianyulei 于 2017-7-31 19:32 编辑
魔法丶小肉包 发表于 2017-7-31 12:55
class Game_Battler < Game_BattlerBase
  def a(user,item)
    r = //


感觉还是不行,每种运算都必须要写完整的一套,这个公式等于是如果备注<备注 1> 那么则计算攻击*2,想要另一个算法都得再追加一个<备注 2>的判断,我看别人的脚本里面都可以直接写任何公式来进行计算啊

脚本.zip

13.02 KB, 下载次数: 69

点评

已添加脚本附件到3楼,选了2个看起来好像不一样的方法,一个是状态的,一个是技能的  发表于 2017-7-31 19:33
网速太慢...挂了VPN也打不开...要不你直接找个脚本发出来...  发表于 2017-7-31 18:22
http://artificialprovidence.web.fc2.com/ 星潟的脚本好多都有备注读取公式,而且方法还写的不同,不过不会正则的我根本看不懂……  发表于 2017-7-31 18:01
其实我主要是卡在获取公式之后如何把字符串的双引号去掉的环节上,肉包比较笨,所以只能想出用scan  发表于 2017-7-31 16:53
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部