查看: 3131|回复: 5

[已经解决] 被动技能脚本问题

[复制链接]
梦石
0
星屑
1816
在线时间
21 小时
注册时间
2008-7-20
回帖
2
发表于 2013-9-15 21:24:57 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 lkm55030 于 2013-9-17 13:07 编辑

[pre lang="ruby" line="1"]
#========================================================
#被动技能
#------------------------------------------------- -----------------------------
一种特别的技能,学会后可以提高角色属性,遗忘后属性会降低。
#==============================================================================
# [更新记录]
#    - 2012.02.16 By 我
#      * 第一版
#=================================================
[使用方法]
# - 将本脚本插入到MAIN以上
#
#技能的备注栏用<paradd:0,100>就代表0号属性增加100。
#用<paramulti:0,1.1>就代表0号属性乘1.1倍。
#此程序先处理paramulti的再处理paradd比如原属性是100,
#我有一个<paramulti:0,1.1><paradd:0,100>的技能,
#就会把属性乘以1.1倍,得到110,再加100,
#得到210然后再处理之后的技能。
=================================================
#听说6R有个神马PS0,就闲着无聊蛋疼设置了一个。。。
$_PS0 = {} if $_PS0 == nil  
$_PS0["UnActiveSkill"] = 20120216
module RPG
  class Skill
    def paramulti(parid)
      note.split(/[\r\n]+/).each { |line|
        case line
        when /<(?:PARAMULTI|paramulti):[ ](\d+),(\d+)>/i
          pult = $1.to_i  
          if pult==parid
          return $2.to_i
        end
        end
      }
      return 1
    end
    def paradd(parid)
      note.split(/[\r\n]+/).each { |line|
        case line
        when /<(?:PARADD|paradd):[ ](\d+),(\d+)>/i
          pult = $1.to_i
          if pult==parid
            return $2.to_i
          end
        end
      }
      return 0
    end
  end
end
class Game_Actor < Game_Battler
  def skls
    a=@skills
    for n in added_skills
      a.push(n)
    end
    return a
  end
  alias pbse param_base
  def param_base(param_id)
    a=pbse(param_id)
    for i in skls
      a*=$data_skills.paramulti(param_id)
      a+=$data_skills.paradd(param_id)
    end
    return a
  end
end
#==============================================================================
#  結束
#==============================================================================[/pre]

我想用个被动技能可以增加10%的血量
<paramulti:0,1.1>
但是有用到小数点hp就不会改变

<paramulti:0,2>
整数的话就可以变2倍
用加的也一样只要有小数点hp就不会增加
问题出在哪?

点评

把里面的 to_i 改为 to_f 再把第66行 return a 改为 return a.to_i  发表于 2013-9-15 22:57
梦石
0
星屑
1816
在线时间
21 小时
注册时间
2008-7-20
回帖
2
 楼主| 发表于 2013-9-16 14:04:38 | 显示全部楼层
改了还是一样有小数点hp不会改变
没有效
回复

使用道具 举报

梦石
0
星屑
125
在线时间
486 小时
注册时间
2007-5-27
回帖
788
发表于 2013-9-16 23:08:26 | 显示全部楼层
……
有没有哪里可以设置被动技能的生效条件?
比如说有这个被动技能的话半血时如何如何这种的……
回复

使用道具 举报

梦石
0
星屑
50
在线时间
135 小时
注册时间
2013-6-10
回帖
28
发表于 2013-9-17 03:10:49 | 显示全部楼层
本帖最后由 xTsukihime 于 2013-9-17 03:46 编辑
我想用个被动技能可以增加10%的血量
<paramulti:0,1.1>
但是有用到小数点hp就不会改变


這是regex的問題
  1. when /<(?:PARAMULTI|paramulti):[ ](\d+),(\d+)>/i
复制代码
如果有小數點就不會match (不會翻譯,請幫忙)
可以自己看: http://rubular.com/r/HXiB9CLnFH

要解決可以改成
  1. <(?:PARAMULTI|paramulti):[ ](\d+),\s*(\d*\.?\d*)>
复制代码
http://rubular.com/r/HJowU7gf5o

下面paradd的regex也要改。

点评

The real Tsukihime? Or just a joke?  发表于 2013-9-17 07:05
回复

使用道具 举报

梦石
0
星屑
50
在线时间
135 小时
注册时间
2013-6-10
回帖
28
发表于 2013-9-17 09:46:54 | 显示全部楼层
oops.......
回复

使用道具 举报

梦石
0
星屑
1816
在线时间
21 小时
注册时间
2008-7-20
回帖
2
 楼主| 发表于 2013-9-17 13:06:48 | 显示全部楼层
可以用了 謝謝大大

点评

请问被动技能脚本怎么改才能用啊?  发表于 2013-10-1 21:35
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部