查看: 8531|回复: 10

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

[复制链接]
梦石
0
星屑
182
在线时间
33 小时
注册时间
2019-2-25
回帖
27
发表于 2019-3-23 15:35:51 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 動感小野菊 于 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)



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

整个备注怎么写的?
回复

使用道具 举报

梦石
0
星屑
182
在线时间
33 小时
注册时间
2019-2-25
回帖
27
 楼主| 发表于 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>
回复

使用道具 举报

梦石
0
星屑
39236
在线时间
11155 小时
注册时间
2009-3-15
回帖
4768
发表于 2019-3-23 18:51:12 | 显示全部楼层
[pre lang="javascript"]//隨機選取敵人
var a = Math.floor(Math.random() * targets.length)
var b = Math.floor(Math.random() * targets.length)
for(var i = 0; i < 10; i++){
if (a == b) {b = Math.floor(Math.random() * targets.length)};
}
[/pre]

评分

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

查看全部评分

回复 1 0

使用道具 举报

梦石
0
星屑
182
在线时间
33 小时
注册时间
2019-2-25
回帖
27
 楼主| 发表于 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>


回复

使用道具 举报

梦石
0
星屑
39236
在线时间
11155 小时
注册时间
2009-3-15
回帖
4768
发表于 2019-3-23 19:18:36 | 显示全部楼层
動感小野菊 发表于 2019-3-23 19:10
成功了!!
太感谢了!!  
另外针对这个问题

那你得有状态解除时时机判断..
回复

使用道具 举报

梦石
0
星屑
182
在线时间
33 小时
注册时间
2019-2-25
回帖
27
 楼主| 发表于 2019-3-23 19:21:47 | 显示全部楼层
本帖最后由 動感小野菊 于 2019-3-23 19:25 编辑
soulsaga 发表于 2019-3-23 19:18
那你得有状态解除时时机判断..


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


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


回复

使用道具 举报

梦石
0
星屑
39236
在线时间
11155 小时
注册时间
2009-3-15
回帖
4768
发表于 2019-3-23 19:30:44 | 显示全部楼层
動感小野菊 发表于 2019-3-23 19:21
有的
下面这个就是
它状态结束时自己就解除

$gameTemp.reserveCommonEvent(公共事件ID)

评分

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

查看全部评分

回复 1 0

使用道具 举报

梦石
0
星屑
182
在线时间
33 小时
注册时间
2019-2-25
回帖
27
 楼主| 发表于 2019-3-23 19:42:11 | 显示全部楼层
soulsaga 发表于 2019-3-23 19:30
$gameTemp.reserveCommonEvent(公共事件ID)

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

回复

使用道具 举报

梦石
0
星屑
205
在线时间
81 小时
注册时间
2019-4-11
回帖
24
发表于 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() * ...

这句代码是放到哪里的?
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部