查看: 3569|回复: 36

[已经解决] 【已解决】自制中毒物品,遇到问题了,请帮助!

[复制链接]
梦石
0
星屑
15041
在线时间
2230 小时
注册时间
2019-1-24
回帖
964

R考场第七期纪念奖

发表于 2019-6-9 19:53:24 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 miantouchi 于 2019-6-15 13:34 编辑

看到论坛里面有人问制作物品带有持续性的,虽然也想出来一个办法,但是感觉代码写的太过庞大,不够泛用性,结果思考了一天想是想到了,但是卡在一个地方了。
比如。
初级黑暗料理。每次扣血10%
中级黑暗料理。每次扣血20%
高级黑暗料理。每次扣血30%
鹤顶红。每次扣血80%
我设计了4款物品黑暗料理,然后把每种药品的扣血比例写在各自物品的说明里面,通过正则表达式,提取里面的10,20,30,80这样的数值现在也成功了。
然后判断,敌人如果是状态3(持续伤害标记打钩),然后通过这些数值比例计算每回合的扣血比例(因原版的统一的就是10%,不够灵活)
maxhp * 提取的百分比,大体是这个思路。

最后,我把Scene_Battle 4里面的。生成物品行动结果make_item_action_result
# 获取物品
@item = $data_items[@active_battler.current_action.item_id]
里面的@tiem加到了@active_battler.slip_damage_effect(@item)这里面。
从这里面获得玩家当前使用的是哪种黑暗料理。
现在结果,能识别使用物品首次的@item值。
打个比方
敌人1 血大于0并且持续伤害,使用初级黑暗料理,@item=10%,持续运行伤害计算10%,第一个人
敌人2 血大于0并且持续伤害,使用中级黑暗料理,@item=20%,持续运行伤害计算20%,第二个人。
接下来,由于系统没有调用make_item_action_result,因为让怪物中毒的物品用过一次后,等下一次扣血@item的值就是上次最后一个敌人中毒的比例了(因为之后就没用使用中毒物品了)。
敌人1,敌人2、敌人3等等都是中毒扣除最后一个敌人喝的黑暗料理的扣血百分比了。

我想如何才能让怪物记录下首次中毒的比例,就是喝了初级、中级、高级。之后每回合扣血按照各自之前使用中毒物品的比例计算。
1.png
2.png
3.png
4.png
5.png

评分

参与人数 1赞 +1 收起 理由
myownroc + 1 这标题看成自制dp了,我没救了.

查看全部评分

梦石
0
星屑
664
在线时间
101 小时
注册时间
2016-7-15
回帖
130
发表于 2019-6-9 22:07:06 | 显示全部楼层
?不是很懂...不同状态同时附加就会一起生效的吧?

点评

放弃 想法了,搞不赢啊。我这个不能叠加。  发表于 2019-6-9 22:47
那么你做不同的状态就好了吧  发表于 2019-6-9 22:07
回复

使用道具 举报

梦石
0
星屑
42235
在线时间
6017 小时
注册时间
2006-11-10
回帖
6966
发表于 2019-6-9 22:18:33 | 显示全部楼层
不同道具给于不同状态 毒1 毒2 毒3
到 def slip_damage_effect 里分别判断中的是哪种状态, 分别扣血就行了

点评

简单的先做, 以后慢慢挑战复杂想法就是了  发表于 2019-6-9 22:37
哦,功力不行,只能作罢了,你啥时候没事时候实现个我看看啊,我是不行了。  发表于 2019-6-9 22:33
emm, 只记录数字是可以叠加,而且还能自己叠, 不过效果就和你想要的大相径庭了  发表于 2019-6-9 22:31
那你要再给每个battler加一个实变量, 用来分别记录各自的毒, 然后中毒阶段把对应的变量保存在里面.多了好几个步骤, 而且状态法能叠加,你这个不行  发表于 2019-6-9 22:28
如果能实现,就可以省下很多状态,直接添加物品和说明就行了。  发表于 2019-6-9 22:26
回复

使用道具 举报

梦石
0
星屑
39236
在线时间
11155 小时
注册时间
2009-3-15
回帖
4768
发表于 2019-6-9 22:49:38 | 显示全部楼层
你不应该把扣血比例写在物品说明里..应该写在状态里

点评

你到底想要的是什么效果?  发表于 2019-6-9 23:16
?  发表于 2019-6-9 23:04
不对,那我又回到昨天了,昨天我就是毒1、毒2、毒3的网上加状态  发表于 2019-6-9 22:54
新思路啊,等我明天试试哈  发表于 2019-6-9 22:53
回复

使用道具 举报

梦石
0
星屑
39236
在线时间
11155 小时
注册时间
2009-3-15
回帖
4768
发表于 2019-6-9 23:28:29 | 显示全部楼层
本帖最后由 soulsaga 于 2019-6-9 23:39 编辑

[pre lang="ruby"]#变量定义为数组
    @item=[]
    #把道具实例代入敌人成员ID数组里
    @item[@active_battler.troop_id] = $data_items[@active_battler.current_action.item_id] if @active_battler.is_a?(Game_Enemy)[/pre]
那么还是用回道具吧
改成这样即可..
那么每个敌人的扣血就会不相同了..

点评

不太行啊,报错了,我把工程发你,改改啊。一会没定义这个一会没定义哪个的,解决了这个那个就报错了。  发表于 2019-6-10 08:23
回复

使用道具 举报

梦石
0
星屑
15041
在线时间
2230 小时
注册时间
2019-1-24
回帖
964

R考场第七期纪念奖

 楼主| 发表于 2019-6-10 08:25:53 | 显示全部楼层
soulsaga 发表于 2019-6-9 23:28
#变量定义为数组
    @item=[]
    #把道具实例代入敌人成员ID数组里

帮我看看,怎么改

中毒物品制作.rar

190.07 KB, 下载次数: 106

回复

使用道具 举报

梦石
0
星屑
39236
在线时间
11155 小时
注册时间
2009-3-15
回帖
4768
发表于 2019-6-10 10:39:14 | 显示全部楼层
miantouchi 发表于 2019-6-10 08:25
帮我看看,怎么改

终於改好了..我也有点被搞混了..

中毒物品制作.rar

190.72 KB, 下载次数: 143

点评

6楼你发的工程使用物品不扣数量..  发表于 2019-6-10 21:02
哦,那你发一份完好的工程给我啊。  发表于 2019-6-10 21:01
就是6楼你发的..  发表于 2019-6-10 20:59
但是你之前给的工程就已经有问题了..我就是用那个改的..  发表于 2019-6-10 20:59
我用的是你传上来的。。。  发表于 2019-6-10 20:55
回复

使用道具 举报

梦石
0
星屑
39236
在线时间
11155 小时
注册时间
2009-3-15
回帖
4768
发表于 2019-6-10 21:08:09 | 显示全部楼层
本帖最后由 soulsaga 于 2019-6-10 22:21 编辑
miantouchi 发表于 2019-6-10 08:25
帮我看看,怎么改


这个应该没问题..

中毒物品制作改.rar

189.37 KB, 下载次数: 83

点评

现在是使用正常物品会报错了,不过你已经解决中毒物品了,剩下的我自己思考吧  发表于 2019-6-11 21:42
哈哈  发表于 2019-6-11 11:51
这次真的改好了...  发表于 2019-6-10 22:21
一样的,也是,我让第一个怪物中毒初级、第二个怪物中毒中级、第三个怪物中毒高级。结果都扣188血量  发表于 2019-6-10 21:27
刚传错了..  发表于 2019-6-10 21:19

评分

参与人数 1星屑 +100 赞 +1 收起 理由
RyanBern + 100 + 1 认可答案

查看全部评分

回复

使用道具 举报

梦石
0
星屑
39236
在线时间
11155 小时
注册时间
2009-3-15
回帖
4768
发表于 2019-6-12 14:58:29 | 显示全部楼层
[pre lang="ruby"]def itemdmg(item)
     self.中毒[self.member_index]=item.description if self.is_a?(Game_Enemy)
     end[/pre]

改成这样应该不会报错了..应该吧..
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部