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

Project1

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

[已经解决] 请教条件当第1,2,3号敌人同时在战斗队伍里且都HP>0的写法

[复制链接]

Lv4.逐梦者

梦石
0
星屑
9163
在线时间
466 小时
注册时间
2015-5-8
帖子
866
跳转到指定楼层
1
发表于 2019-11-8 01:53:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
咱想在Skill_effect里做个套路:

“当第1,2,3号敌人都在队伍时则这3个人使用任何技能时技能的威力提升30%”

实在不想用for来写.......

还请大神指点一二,先谢过了!

Lv5.捕梦者

梦石
0
星屑
36382
在线时间
10788 小时
注册时间
2009-3-15
帖子
4813
2
发表于 2019-11-8 15:09:19 | 只看该作者
本帖最后由 soulsaga 于 2019-11-8 16:04 编辑

你需要的很多大神都给过你了..还不能活学活用? [

RUBY 代码复制
  1. if user.is_a?(Game_Enemy) and ([1,2,3] & $game_troop.enemies.id).size==3 and $game_troop.enemies.all? {|e| e.hp > 0}

点评

还有那个$game_troop.enemies.all? {|e| e.hp > 0}也不知道啥意思..  发表于 2019-11-8 20:16
活学了但用不活啊..比这句 [1,2,3] & $game_troop.enemies.id).size==3 是神马意思啊?  发表于 2019-11-8 20:14

评分

参与人数 2星屑 +50 +1 收起 理由
RyanBern + 50 认可答案
taeckle + 1 大神威武!

查看全部评分

回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9163
在线时间
466 小时
注册时间
2015-5-8
帖子
866
3
 楼主| 发表于 2019-11-8 20:15:36 | 只看该作者
本帖最后由 taeckle 于 2019-11-8 20:27 编辑
soulsaga 发表于 2019-11-8 15:09
你需要的很多大神都给过你了..还不能活学活用? [


大神这句那要是用all又该怎么写啊?
回复 支持 反对

使用道具 举报

Lv4.逐梦者

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

R考场第七期纪念奖

4
发表于 2019-11-8 20:58:10 | 只看该作者
本帖最后由 miantouchi 于 2019-11-8 22:22 编辑

建议你看下论坛的【新手向】RMVA - RGSS3脚本入门教程(施工中)https://rpg.blue/thread-398047-1-1.html
遇到不明白的先查下,这次记住了理解了,下一次你就可以模仿着各位大大给的答案,样子,照猫画虎了,
这样写着写着,就成你自己的了。
不能光着急做游戏,学习基础也很重要的,KB哥就让我看基础,我说看不进去,但是发现不看真的不行,
有许多问题,就比如上面你问的,人家即使给你答案了,你自己也不明白。


位和(&),就是将两边的数组里面共同拥有的元素留下(重复的会去除),其他的全部去除。

arr = [1,2,3,4,5,6,7,10]
p arr &= [0,1,5,4,7,8,9]#输出:[1,5,4,7]

所以([1,2,3] & $game_troop.enemies.id).size==3
这句意思就是数组[1,2,3] 和敌人id做 位和,如果1,2,3同时存在就是数组大小等于3

再来说$game_troop.enemies.all? {|e| e.hp > 0}这一句
用F1可以查到
all? {|item| ... }
当所有元素都为真时,返回 true。若某元素为假时,立即返回 false。
若带块调用时,会依次为各个元素来执行块的内容,若所有的结果都为真,则返回 true。一旦块返回假时, 立即返回 false。
p [1,2,3].all? {|v| v > 0}   # => true
p [1,2,3].all? {|v| v > 1}   # => false
所以,$game_troop.enemies 每个hp大于0的情况下才返回true。
哪块有问题望指正。


点评

多谢,还有这句p [1,2,3].all? {|v| v > 0} # => true里的字母“v”是神马意思啊?可以换成其他字母吗?  发表于 2019-11-8 22:56
我打多了,笔误  发表于 2019-11-8 22:21
多谢大神指点,我想问的是你建的第一个数组arr = [1,,2,,3,4,,5,6,7,10]为啥有的是“,,”有的是“,”啊?有什么区别吗?  发表于 2019-11-8 21:30

评分

参与人数 1+1 收起 理由
taeckle + 1 大神暴击,从天而降!

查看全部评分

回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9163
在线时间
466 小时
注册时间
2015-5-8
帖子
866
5
 楼主| 发表于 2019-11-9 00:43:28 | 只看该作者
soulsaga 发表于 2019-11-8 15:09
你需要的很多大神都给过你了..还不能活学活用? [

大神请问下你这句([1,2,3] & $game_troop.enemies.id).size==3
里的“& $game_troop.enemies.id” 咱还有点不懂...这“$game_troop.enemies.id”这里不是一个数字吗?
我看数组的位和运算都是数组和数组之间来做的,比如[5,6,7,8] &=[7,8,9,10] 的结果就是[7,8]
那这数组[1,2,3]又该怎么跟一个数字$game_troop.enemies.id做运算呢?
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9163
在线时间
466 小时
注册时间
2015-5-8
帖子
866
6
 楼主| 发表于 2019-11-9 01:20:57 | 只看该作者
miantouchi 发表于 2019-11-8 20:58
建议你看下论坛的【新手向】RMVA - RGSS3脚本入门教程(施工中)https://rpg.blue/thread-398047-1-1.html
...


大神你举的例子的确是数组跟数组做“位和”
但这里的“$game_troop.enemies.id”不是一个数字嘛?
一个数组又该怎么跟一个数字做“位和”呢?

点评

位和运算……我这粗心的毛病……至于为什么等有3,四楼说的也很清楚了  发表于 2019-11-9 20:20
说错了,把三个角色的ID封装成一个数组 ,然后替换$game_troop.enemies.id。如果那三个ID证好是1、2、3,那么为何运算的结果就是“.size==3”  发表于 2019-11-9 20:19
我感觉$game_troop.enemies.id好像也不大对,但他意思已经表达的很明白了,你把三个角色的ID封装成一个变量,然后替换掉$game_troop.enemies.id就行了。  发表于 2019-11-9 20:17
我又没加编号进去..  发表于 2019-11-9 18:44
这个$game_troop.enemies.id为什么是数组,这enemies.id不就是数据库里敌人的编号嘛?  发表于 2019-11-9 17:53
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-14 13:46

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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