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

Project1

 找回密码
 注册会员
搜索
12
返回列表 发新帖
楼主: 526396987
打印 上一主题 下一主题

[有事请教] 请问在YEP动作序列中如何用脚本判定命中敌人与否?

[复制链接]

Lv3.寻梦者

梦石
0
星屑
3023
在线时间
140 小时
注册时间
2018-1-22
帖子
137
11
 楼主| 发表于 2018-11-8 20:24:44 | 只看该作者
qq1065526265 发表于 2018-11-8 19:47
你具体想怎么写?攻击之后如果命中就有几率附加某一个状态?说详细点

命中之后随机附加一个状态,无论是什么状态,附加几率都是100%,
打个比方,如果命中目标,25%概率附加中毒,25%概率附加混乱,25%附加睡眠,25%附加失明,4个状态里随机附加一个,但是不会什么状态都不附加。
然而关键问题就是,用了yep的action sequence,目标闪避了攻击,状态也会附加。。。。
自分自身の神様になること
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
12157
在线时间
4435 小时
注册时间
2014-4-11
帖子
5955

开拓者

12
发表于 2018-11-8 20:52:38 | 只看该作者
本帖最后由 yang1zhi 于 2018-11-8 21:30 编辑
526396987 发表于 2018-11-8 20:24
命中之后随机附加一个状态,无论是什么状态,附加几率都是100%,
打个比方,如果命中目标,25%概率附加中 ...


你要命中后执行,你直接写在
JAVASCRIPT 代码复制
  1. if (result.i s H i t ()) {

里面就可以了啊。
这里面就是命中后执行的内容。
伤害也是在这里面计算的

点评

你不是有找到Yanfly.BEC.Game_Action_apply = Game_Action.prototype.apply;吗,这里面就是计算这些的  发表于 2018-11-8 21:48
对的,是备注那个。。。 但是插件里没找到判定命中的地方,只有objects.js里才有,我不是很清楚插件里是怎么调用的  发表于 2018-11-8 21:42
你是说写在备注里吗,那个就不好说了。你也可以写在插件里啊  发表于 2018-11-8 21:30
谢谢大佬,也不是我写的脚本,我是在yep action sequence里加的js 语句,不过确实是在if result 后面写的  发表于 2018-11-8 21:19
当你的脚本没效果的时候,你应该多使用console.log()来找出哪里有问题  发表于 2018-11-8 20:53

评分

参与人数 1+1 收起 理由
526396987 + 1 塞糖

查看全部评分

回复 支持 1 反对 0

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
33228
在线时间
10499 小时
注册时间
2009-3-15
帖子
4757
13
发表于 2018-11-8 20:57:10 | 只看该作者
yang1zhi 发表于 2018-11-8 20:52
你要命中后执行,你直接写在
if (result.idear()) {
里面就可以了啊。


问一下大神..
if $gameVariables.value(20) >= 0 && $gameVariables.value(20) < 3
        add state 1: target
    if $gameVariables.value(20) >= 3 && $gameVariables.value(20) < 6
        add state 2: target
    if $gameVariables.value(20) >= 6 && $gameVariables.value(20) < 10
        add state 3: target
end

我不熟YEP的序列插件..这样写是不是要符合这3行条件才会执行?
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
12157
在线时间
4435 小时
注册时间
2014-4-11
帖子
5955

开拓者

14
发表于 2018-11-8 21:14:03 | 只看该作者
本帖最后由 yang1zhi 于 2018-11-8 21:16 编辑
soulsaga 发表于 2018-11-8 20:57
问一下大神..
if $gameVariables.value(20) >= 0 && $gameVariables.value(20) < 3
        add state 1: ...


我不是大神,我没用过YEP。
js应该是没有end的,
用小括号,大括号表示。
没带大括号的大概是执行下面一句的内容。
第二句就不算了
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3023
在线时间
140 小时
注册时间
2018-1-22
帖子
137
15
 楼主| 发表于 2018-11-8 22:17:50 | 只看该作者
yang1zhi 发表于 2018-11-8 20:52
你要命中后执行,你直接写在
if (result.i s H i t ()) {[/pre]
里面就可以了啊。

感谢大佬!这样就没问题了
真的困扰了很久,一开始没想到直接在插件中修改,谢谢大佬指点啦

1.png (47.85 KB, 下载次数: 6)

1.png

2.png (179.24 KB, 下载次数: 5)

2.png

3.png (181.13 KB, 下载次数: 8)

3.png
自分自身の神様になること
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1573
在线时间
374 小时
注册时间
2017-12-26
帖子
306
16
发表于 2018-11-8 23:23:24 | 只看该作者
本帖最后由 qq1065526265 于 2018-11-24 19:06 编辑
526396987 发表于 2018-11-8 20:24
命中之后随机附加一个状态,无论是什么状态,附加几率都是100%,
打个比方,如果命中目标,25%概率附加中 ...


我不会代码所以自己乱写了个不过没什么问题的
<Target Action>
MOTION SWING: user
action animation
wait for animation
action effect
death break
if target.result().missed&&!target.result().evaded
else
change variable 100 = Math.floor(Math.random()*4)
if $gameVariables.value(100) == 0
common event: 1
else
if $gameVariables.value(100) == 1
common event: 2
else
if $gameVariables.value(100) == 2
common event: 3
else
if $gameVariables.value(100) == 3
common event: 4
end
</Target Action>
你把common event这些改为附加状态就行
记得游戏里面把变量100弄出来留空

点评

是这样,不过在我的备注里无论怎么修改result的语句都无济于事,无关result命中的,都能起作用,真的头疼= =  发表于 2018-11-9 00:07
if !target.result().missed&&!target.result().evaded 这句成功之后如果还有if它还是会执行的 所以把感叹号去掉下面换成else就行  发表于 2018-11-8 23:54
谢谢!代码没问题,估计是action sequence的判定顺序存在差异,所以即使miss掉了,变量还是发生了变化,所以我在插件中修改了  发表于 2018-11-8 23:49
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-5 13:59

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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