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

Project1

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

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

[复制链接]

Lv3.寻梦者

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

开拓者

跳转到指定楼层
1
发表于 2017-7-31 11:24:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

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

评分

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

查看全部评分

Lv4.逐梦者

梦石
0
星屑
6260
在线时间
1481 小时
注册时间
2015-7-25
帖子
652

开拓者

2
发表于 2017-7-31 12:55:19 | 只看该作者
RUBY 代码复制
  1. class Game_Battler < Game_BattlerBase
  2.   def a(user,item)
  3.     r = /<备注\s*(\w+)(\W*)(\w+)(\W*)(\d*)>/
  4.     if item.is_a?(RPG::Skill) and r =~ item.note
  5.       s = $1.to_s+$2.to_s+$3.to_s+$4.to_s+$5.to_s
  6.       num = s.scan(/(\w+)(\W*)(\w+)(\W*)(\d*)/)
  7.       if num[0][0] == "user"
  8.         case num[0][2]
  9.         when "atk"
  10.           z = user.atk * num[0][4].to_i
  11.         end
  12.       end
  13.     else
  14.       0
  15.     end
  16.     p z if z
  17.   end
  18.   def item_apply(user, item)
  19.     @result.clear
  20.     @result.used = item_test(user, item)
  21.     @result.missed = (@result.used && rand >= item_hit(user, item))
  22.     @result.evaded = (!@result.missed && rand < item_eva(user, item))
  23.     if @result.hit?
  24.       unless item.damage.none?
  25.         @result.critical = (rand < item_cri(user, item))
  26.         make_damage_value(user, item)
  27.         execute_damage(user)
  28.       end
  29.       item.effects.each {|effect| item_effect_apply(user, item, effect) }
  30.       item_user_effect(user, item)
  31.       a(user,item)
  32.     end
  33.   end
  34. end

点评

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

评分

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

查看全部评分

笨肉包的首款像素OC游戏《花城梦之心》尝试制作中~
目前的坑 【不可思议的迷宫】幽灵契约外传:歌莉娅
持续更新中~ 当前进度 v0.28
大版本更新时才会更新网盘文件,预计下次大版本更新:v0.30
完成度:
主线 15% 支线 0% 数据库 6% 系统 86% 美术 6%
两边同时填坑~
( 这里是笨肉包~专修魔法!目标是大魔法师!
( 坑太大啦,一个人填不完啦hhh 一定会填完的嗯...
( 每天都和bug们比试魔力~吾之魔法将扫平一切!
( 弱点是美术,魔法修行之余再补补课吧~
( 哼哼哼~这便是魔法的力量!
大家都离开啦,笨肉包也不知道还能坚持多久呀...
这是属于笨肉包一个人的旅行(再见了...蚊子湯,七重酱,笨肉包永远想你们!TwT
回复 支持 反对

使用道具 举报

Lv3.寻梦者

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

开拓者

3
 楼主| 发表于 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
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-17 12:37

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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