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

Project1

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

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

[复制链接]

Lv4.逐梦者

梦石
0
星屑
14616
在线时间
2196 小时
注册时间
2019-1-24
帖子
1123

R考场第七期纪念奖

跳转到指定楼层
1
发表于 2019-6-9 19:53:24 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 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 (63.87 KB, 下载次数: 15)

1.png

2.png (63.89 KB, 下载次数: 14)

2.png

3.png (44.44 KB, 下载次数: 19)

3.png

4.png (44.46 KB, 下载次数: 14)

4.png

5.png (45.18 KB, 下载次数: 15)

5.png

评分

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

查看全部评分

Lv2.观梦者

梦石
0
星屑
664
在线时间
101 小时
注册时间
2016-7-15
帖子
143
2
发表于 2019-6-9 22:07:06 | 只看该作者
?不是很懂...不同状态同时附加就会一起生效的吧?

点评

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

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
39016
在线时间
5717 小时
注册时间
2006-11-10
帖子
6619
3
发表于 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
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
36437
在线时间
10798 小时
注册时间
2009-3-15
帖子
4814
4
发表于 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
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
36437
在线时间
10798 小时
注册时间
2009-3-15
帖子
4814
5
发表于 2019-6-9 23:28:29 | 只看该作者
本帖最后由 soulsaga 于 2019-6-9 23:39 编辑

RUBY 代码复制
  1. #变量定义为数组
  2.     @item=[]
  3.     #把道具实例代入敌人成员ID数组里
  4.     @item[@active_battler.troop_id] = $data_items[@active_battler.current_action.item_id] if @active_battler.is_a?(Game_Enemy)

那么还是用回道具吧
改成这样即可..
那么每个敌人的扣血就会不相同了..

点评

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

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
14616
在线时间
2196 小时
注册时间
2019-1-24
帖子
1123

R考场第七期纪念奖

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

帮我看看,怎么改

中毒物品制作.rar

190.07 KB, 下载次数: 106

回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
36437
在线时间
10798 小时
注册时间
2009-3-15
帖子
4814
7
发表于 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
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
36437
在线时间
10798 小时
注册时间
2009-3-15
帖子
4814
8
发表于 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 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
36437
在线时间
10798 小时
注册时间
2009-3-15
帖子
4814
9
发表于 2019-6-12 14:58:29 | 只看该作者
RUBY 代码复制
  1. def itemdmg(item)
  2.      self.中毒[self.member_index]=item.description if self.is_a?(Game_Enemy)
  3.      end


改成这样应该不会报错了..应该吧..
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-23 13:12

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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