查看: 4237|回复: 10

[推荐问答] 【自问答】如何使角色拥有空手攻击力?

[复制链接]

○赛

梦石
0
星屑
1254
在线时间
1276 小时
注册时间
2013-1-22
回帖
2078

贵宾

发表于 2015-10-23 22:35:00 | 显示全部楼层 |阅读模式

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

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

×
问:如何使角色拥有空手攻击力,即攻击力不仅受装备影响?

思路:在Game_Battler里面相关定义里修改攻击力算法,这里我倾向于在Game_Battler里面修改而不是在Game_Actor里面修改。
首先,请打开我们的脚本编辑器,在Game_Battler 1的180行左右找到攻击力的定义部分(如图1)。
图1.png
观察这一段内容,不难发现,n就是处理后的攻击力,由于攻击力还受状态的百分比影响,所以使用Integer(n)取整数。
于是,我们可以在return前面添加如下代码。
  1. n += str if self.is_a?(Game_Actor) # 如果是角色,则攻击力加上自己的力量数值。
复制代码
这边需要解释的内容有两个,is_a是可以判定一个对象是否是一个类的实例的方法,括号里的就是类名。
if语句通常是由if和end组成的,但如果仅有一行,也可以写成   执行内容 if 表达式,这样看起来更简洁明了,不是吗?
修改后的Game_Battler 1 如图2。
图2.png
这样修改好了之后,角色的攻击力受力量影响,但是如果不装备武器,不会显示动画,于是我们可以到Scene_Battle里面修改相关的语句。
通过搜索,我们可以找到Scene_Battle 4 186行左右的脚本(如图3)。
图3.png
看到了吗?@active_battler就是正在行动的角色,@animation2_id就是即将在被攻击的人身上播放的动画。
于是我们就可以写一句条件分歧来播放空手动画。
  1. @animation2_id = 4 if @active_battler.is_a?(Game_Actor) and @active_battler.weapon_id == 0
复制代码
其中,前面一部分是判定是否是角色,后面一部分是判定是否没有武器。修改后的代码如图4。
图4.png
现在,我们可以说大功告成了!测试一下看看,是不是有攻击力了呢?
图5.png 图6.png

@RyanBern 召唤版主申请自问答贴,其他几位版主的id记不太清楚了,就只艾特RB君吧~

点评

那空手攻击的属性怎么设置呢  发表于 2017-1-25 13:55
已自己解决,谢谢你的思路  发表于 2016-2-29 14:01
如果修改物防=敏捷,魔防=魔力  发表于 2016-2-29 13:58
如果修改防御,魔防呢?  发表于 2016-2-29 13:53

评分

参与人数 3星屑 +160 梦石 +1 赞 +1 收起 理由
miantouchi + 1 精品文章
RyanBern + 150 + 1 精品文章
jiushiainilip19 + 10 我很赞同

查看全部评分

梦石
0
星屑
9557
在线时间
5074 小时
注册时间
2013-6-21
回帖
3459

开拓者贵宾剧作品鉴家

发表于 2015-10-23 23:27:35 | 显示全部楼层
本帖最后由 RyanBern 于 2015-10-24 09:12 编辑

支持自问答帖!虽然图书馆已经有了脚本,但是做出教程确实很赞。
个人建议:在Game_Actor#base_atk中修改
回复

使用道具 举报

梦石
0
星屑
1232
在线时间
1017 小时
注册时间
2011-4-30
回帖
1464
发表于 2015-10-24 01:14:24 | 显示全部楼层
为什么在Game_Battler里面修改而不是在Game_Actor里面修改呢?

点评

好吧……是那个三元运算符解释起来有点麻烦。。。  发表于 2015-10-24 08:28
回复

使用道具 举报

梦石
0
星屑
50
在线时间
17 小时
注册时间
2017-1-18
回帖
35
发表于 2017-1-24 23:11:12 | 显示全部楼层
萌新提问个弱智问题....不受装备影响?装备攻击力改为0不就好了?

点评

捂脸,看漏了吗  发表于 2017-1-30 13:05
“不仅”受装备影响  发表于 2017-1-25 13:58
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部