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

Project1

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

[有事请教] 求救!随机选取目标的语法问题

[复制链接]

Lv1.梦旅人

梦石
0
星屑
182
在线时间
33 小时
注册时间
2019-2-25
帖子
38
跳转到指定楼层
1
发表于 2019-3-23 15:35:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 動感小野菊 于 2019-3-23 15:39 编辑

用了 yep的被动状态 做了个技能
使用后随机对一个目标造成伤害
并且再随机对第二个目标造成伤害

问题来了:
如何让此技能的
第二个随机目标 不会与 第一个随机目标重复到?

也就是有 a . b . c 三个敌人
我放了此技能
随机打到了 a
并再随机打到了 b

如何使其不会发生
随机打到了 a 又再随机打到了 a ?
只会发生
随机打到了 a 那就只能随机再去打 b 或 c 目标
也就是不会再去打到 a

语法上不知道如何修改

这是随机选取第一个目标的语法

var targets = user.opponentsUnit().aliveMembers()
var a = Math.floor(Math.random() * targets.length)

现在要随机选取第二个目标但不与第一个目标重复到
语法该如何修改?

var a = Math.floor(Math.random() * targets.length)



Lv5.捕梦者

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

整个备注怎么写的?
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
182
在线时间
33 小时
注册时间
2019-2-25
帖子
38
3
 楼主| 发表于 2019-3-23 18:35:17 | 只看该作者
本帖最后由 動感小野菊 于 2019-3-23 18:40 编辑
soulsaga 发表于 2019-3-23 17:05
整个备注怎么写的?


---回合結束時判斷---
<Custom Turn End Effect>

//作用對象為使用者的對手
var targets = user.opponentsUnit().aliveMembers()
//隨機選取敵人
var a = Math.floor(Math.random() * targets.length)
var b = Math.floor(Math.random() * targets.length)
//雷擊傷害1取決於使用者的內力值
var damage1 = Math.round(user.mat * 4)
//雷擊傷害2為雷擊傷害1的50%傷害
var damage2 = Math.round(damage1 * 0.5 )

//如果對手僅有1人
if (user.opponentsUnit().aliveMembers().length == 1 ) {
//隨機對一名敵人造成雷擊傷害1
targets[a].startAnimation(86)
targets[a].gainHp(Math.round(-damage1))
//目標的腐蝕傷害增加此數值
targets[a]._corrosionDamage += damage1
targets[a].startDamagePopup()
targets[a].clearResult()

//如果對手有2人以上時
} else if (user.opponentsUnit().aliveMembers().length >= 2 ) {
//隨機對一名敵人造成雷擊傷害1
targets[a].startAnimation(86)
targets[a].gainHp(Math.round(-damage1))
//目標的腐蝕傷害增加此數值
targets[a]._corrosionDamage += damage1
targets[a].startDamagePopup()
targets[a].clearResult()
//隨機對另一名敵人造成雷擊傷害2
targets[ b ].startAnimation(87)
targets[ b ].gainHp(Math.round(-damage2))
//目標的腐蝕傷害增加此數值
targets[ b ]._corrosionDamage += damage2
targets[ b ].startDamagePopup()
targets[ b ].clearResult()
}

//雷擊致死時播放陣亡效果
if (targets[ a ].isDead()) {
targets[ a ].performCollapse()
}
if (targets[ b ].isDead()) {
targets[ b ].performCollapse()
}

</Custom Turn End Effect>
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
36382
在线时间
10788 小时
注册时间
2009-3-15
帖子
4813
4
发表于 2019-3-23 18:51:12 | 只看该作者
JAVASCRIPT 代码复制
  1. //隨機選取敵人
  2. var a = Math.floor(Math.random() * targets.length)
  3. var b = Math.floor(Math.random() * targets.length)
  4. for(var i = 0; i < 10; i++){
  5. if (a == b) {b = Math.floor(Math.random() * targets.length)};
  6. }

评分

参与人数 1+1 收起 理由
動感小野菊 + 1 认可答案

查看全部评分

回复 支持 1 反对 0

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
182
在线时间
33 小时
注册时间
2019-2-25
帖子
38
5
 楼主| 发表于 2019-3-23 19:10:53 | 只看该作者
soulsaga 发表于 2019-3-23 18:51
//隨機選取敵人
var a = Math.floor(Math.random() * targets.length)
var b = Math.floor(Math.random() * ...

成功了!!
太感谢了!!  
另外针对这个问题
再追问一题
如何在此状态解除时
调用某公共事件?
不知能否这样写

---状态解除时判断---
<Custom Remove Effect>
执行某公共事件的语法
</Custom Remove Effect>


回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
36382
在线时间
10788 小时
注册时间
2009-3-15
帖子
4813
6
发表于 2019-3-23 19:18:36 | 只看该作者
動感小野菊 发表于 2019-3-23 19:10
成功了!!
太感谢了!!  
另外针对这个问题

那你得有状态解除时时机判断..
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
182
在线时间
33 小时
注册时间
2019-2-25
帖子
38
7
 楼主| 发表于 2019-3-23 19:21:47 | 只看该作者
本帖最后由 動感小野菊 于 2019-3-23 19:25 编辑
soulsaga 发表于 2019-3-23 19:18
那你得有状态解除时时机判断..


有的
下面这个就是
它状态结束时自己就解除
只是不知道调用公共事件语法结构怎么写
这样会方便很多
否则在每个敌群页面都要添加这个判断 实在太不便了 @@


---状态解除时判断---
<Custom Remove Effect>
执行某公共事件
</Custom Remove Effect>


回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
36382
在线时间
10788 小时
注册时间
2009-3-15
帖子
4813
8
发表于 2019-3-23 19:30:44 | 只看该作者
動感小野菊 发表于 2019-3-23 19:21
有的
下面这个就是
它状态结束时自己就解除

$gameTemp.reserveCommonEvent(公共事件ID)

评分

参与人数 1+1 收起 理由
動感小野菊 + 1 认可答案

查看全部评分

回复 支持 1 反对 0

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
182
在线时间
33 小时
注册时间
2019-2-25
帖子
38
9
 楼主| 发表于 2019-3-23 19:42:11 | 只看该作者
soulsaga 发表于 2019-3-23 19:30
$gameTemp.reserveCommonEvent(公共事件ID)

咦 竟然成功了...
之前以为这样套用会出错便没使用
感谢大佬!! 获益良多!!

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
177
在线时间
96 小时
注册时间
2019-4-11
帖子
55
10
发表于 2019-9-1 13:10:27 | 只看该作者
soulsaga 发表于 2019-3-23 18:51
//隨機選取敵人
var a = Math.floor(Math.random() * targets.length)
var b = Math.floor(Math.random() * ...

这句代码是放到哪里的?
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-13 11:04

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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