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

Project1

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

[已经解决] 如果第1号角色习得第1,2,3,4,5,6,7,8,9,10,11,12号技能中任意3个,

[复制链接]

Lv4.逐梦者

梦石
0
星屑
9128
在线时间
463 小时
注册时间
2015-5-8
帖子
865
跳转到指定楼层
1
发表于 2019-10-31 14:41:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 taeckle 于 2019-11-1 17:01 编辑

if $game_actors[1].skill_learn?(2) 这个意思咱懂,如果第一号角色学会第2号技能的话,

咱要是想用一句话(也就是仅用一行)写“如果第一号角色学会第1,2,3,4,5,6,7,8,9,10,11,12号技能中任意3个的话,”  或者 “如果第一号角色学会第第1,2,3,4,5,6,7,8,9,10,11,12号技能中任意2个的话”

该怎么写啊?

Lv5.捕梦者

梦石
10
星屑
39440
在线时间
1914 小时
注册时间
2010-11-14
帖子
3315

R考场第七期纪念奖

2
发表于 2019-10-31 17:24:34 | 只看该作者
if 1.upto(12).count{|i|  $game_actors[1].skill_learn?(i)} >= 3

评分

参与人数 1+1 收起 理由
taeckle + 1 大神威武,请受小弟一拜!

查看全部评分

用头画头像,用脚写脚本
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9128
在线时间
463 小时
注册时间
2015-5-8
帖子
865
3
 楼主| 发表于 2019-11-1 17:00:26 | 只看该作者
KB.Driver 发表于 2019-10-31 17:24
if 1.upto(12).count{|i|  $game_actors[1].skill_learn?(i)} >= 3

大神请问下那要是技能号是不规则的顺序(不是123456789)的话该怎么写呢?
比如这句:
如果第1号角色习得第2,4,5,8,9,10,101号技能中任意3个的话

点评

count是Ruby 1.8.7后才有的..我没有没法测试  发表于 2019-11-1 18:18
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
33148
在线时间
10487 小时
注册时间
2009-3-15
帖子
4756
4
发表于 2019-11-1 18:19:51 | 只看该作者
taeckle 发表于 2019-11-1 17:00
大神请问下那要是技能号是不规则的顺序(不是123456789)的话该怎么写呢?
比如这句:
如果第1号角色习得 ...


RUBY 代码复制
  1. [2,4,5,8,9,10,101].count {|i| $game_actors[1].skill_learn?(i) } >= 3


你可以试下这个写法

评分

参与人数 1+1 收起 理由
taeckle + 1 多谢大神!

查看全部评分

回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9128
在线时间
463 小时
注册时间
2015-5-8
帖子
865
5
 楼主| 发表于 2019-11-2 11:19:56 | 只看该作者
KB.Driver 发表于 2019-10-31 17:24
if 1.upto(12).count{|i|  $game_actors[1].skill_learn?(i)} >= 3


报告大神,我刚才试了一下,这么写有报错。。。
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9128
在线时间
463 小时
注册时间
2015-5-8
帖子
865
6
 楼主| 发表于 2019-11-2 11:20:58 | 只看该作者
soulsaga 发表于 2019-11-1 18:19
[2,4,5,8,9,10,101].count {|i| $game_actors[1].skill_learn?(i) } >= 3[/pre]

你可以试下这个写法 ...

报告大神,刚才测了一下,这么写有报错,,

点评

大家都一样..我也没法测试..  发表于 2019-11-2 13:52
难怪,我的才1.81......  发表于 2019-11-2 13:02
1.03 你可以在编辑的帮助看到RUBY的版本..  发表于 2019-11-2 11:40
count是RUBY1.87才有的用法好像..你要是还在用RMXP1.3?可能会没有..就会报错.  发表于 2019-11-2 11:39
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
37759
在线时间
5388 小时
注册时间
2006-11-10
帖子
6545
7
发表于 2019-11-2 12:10:55 | 只看该作者
if ((1..12).to_a & $game_actors[1].skills).size >= 3

点评

这个思路不错  发表于 2019-11-2 19:33
并集的个数  发表于 2019-11-2 14:49
这个是并集后留下两边相同的个数吧?  发表于 2019-11-2 13:02

评分

参与人数 2星屑 +50 +2 收起 理由
RyanBern + 50 + 1 认可答案
taeckle + 1 还是大神你的答案靠谱!测试正确!.

查看全部评分

回复 支持 1 反对 0

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9128
在线时间
463 小时
注册时间
2015-5-8
帖子
865
8
 楼主| 发表于 2019-11-2 12:59:28 | 只看该作者
灯笼菜刀王 发表于 2019-11-2 12:10
if ((1..12).to_a & $game_actors[1].skills).size >= 3

大神请问下那要是技能号是不连续的顺序(不是123456789)的话该怎么写呢?
比如这句:
“如果第1号角色习得第2,4,5,8,9,10,101号技能中任意3个的话”

点评

那就是这么写吗: if ([2,4,5,8,9,10,101] & $game_actors[1].skills).size >= 3  发表于 2019-11-3 13:01
(1..12).to_a 换数组就行了  发表于 2019-11-2 14:48
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
8292
在线时间
720 小时
注册时间
2016-3-12
帖子
34
9
发表于 2019-11-2 14:14:38 | 只看该作者
建立一个专门判定的变量,通过事件习得技能时加一项该变量+1,建立一个并行处理的公共事件用分歧条件来判定刚才专门建立的那个变量是否大于或等于3

评分

参与人数 1+1 收起 理由
taeckle + 1 多谢指点!

查看全部评分

绝对之必胜,史上之最强!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-4-20 22:53

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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