查看: 1974|回复: 4

[已经解决] 如何做出不一样的状态特性?

[复制链接]
梦石
0
星屑
69
在线时间
26 小时
注册时间
2015-8-18
回帖
3
发表于 2015-8-28 13:43:17 | 显示全部楼层 |阅读模式

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

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

×
例如我做了个叫蓄力的状态,一般情况下这个状态的效果是物理攻击乘以百分之一百三十,如何才能让其加在某角色身上时效果变得比原来的效果更高?(例如物理攻击乘以百分之一百四十,一百五十之类的,而其他角色加上去仍旧是一百三十)

…あたしは天

梦石
0
星屑
2308
在线时间
4033 小时
注册时间
2010-10-4
回帖
10548

开拓者贵宾

发表于 2015-8-28 13:48:05 | 显示全部楼层
本帖最后由 taroxd 于 2015-8-28 13:49 编辑

瞎糊了一段,未测试
[pre lang="ruby"]
class Game_Actor
  def atk_with_actor1_buff
    atk = atk_without_actor1_buff
    if @actor_id == 1 && state?(28)  # 角色 ID 为 1,有 28 号状态时
      (atk / 1.3 * 1.5).to_i  # 攻击力变为原来的 1.5 / 1.3 倍
    else
      atk # 否则保持不变
    end
  end

  alias_method :atk_without_actor1_buff, :atk
  alias_method :atk, :atk_with_actor1_buff
end
[/pre]

评分

参与人数 1梦石 +1 收起 理由
VIPArcher + 1 认可答案

查看全部评分

回复

使用道具 举报

梦石
0
星屑
69
在线时间
26 小时
注册时间
2015-8-18
回帖
3
 楼主| 发表于 2015-8-28 14:05:13 | 显示全部楼层
taroxd 发表于 2015-8-28 13:48
瞎糊了一段,未测试

class Game_Actor

没有用……
回复

使用道具 举报

…あたしは天

梦石
0
星屑
2308
在线时间
4033 小时
注册时间
2010-10-4
回帖
10548

开拓者贵宾

发表于 2015-8-28 14:11:59 | 显示全部楼层
云仙玉 发表于 2015-8-28 14:05
没有用……

菜单栏里显示不变,战斗中是有效果的

一定要菜单栏正确的话,可以这样

[pre lang="ruby"]
class Game_Actor
  def param_with_actor1_buff(param_id)
    param = param_without_actor1_buff(param_id)
    if @actor_id == 1 && state?(28) && param_id == 2  # 角色 ID 为 1,有 28 号状态,获取的属性为攻击力时
      (param / 1.3 * 1.5).to_i  # 攻击力变为原来的 1.5 / 1.3 倍
    else
      param # 否则保持不变
    end
  end

  alias_method :param_without_actor1_buff, :param
  alias_method :param, :param_with_actor1_buff
end
[/pre]

评分

参与人数 1星屑 +150 收起 理由
VIPArcher + 150 我很赞同

查看全部评分

回复

使用道具 举报

梦石
0
星屑
69
在线时间
26 小时
注册时间
2015-8-18
回帖
3
 楼主| 发表于 2015-8-28 14:15:52 | 显示全部楼层
taroxd 发表于 2015-8-28 14:11
菜单栏里显示不变,战斗中是有效果的

一定要菜单栏正确的话,可以这样

解决了。谢谢!
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部