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

Project1

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

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

[复制链接]

Lv3.寻梦者

梦石
0
星屑
3408
在线时间
141 小时
注册时间
2018-1-22
帖子
137
跳转到指定楼层
1
发表于 2018-11-7 18:08:18 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式

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

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

x
各位好!


我的想法是利用if语句在YEP的action sequense中加入对技能命中的判定,如果为true,则执行×××action,反之则执行×××action,但是不知道具体的语法是什么,还请各位指点!谢谢!


当然,通过判定伤害似乎也能达到相同的效果,例如damage > 0 可以看成是技能命中了,如果各位能指教一下能达成这种判定的任意方法,感激不尽!




自分自身の神様になること

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
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3408
在线时间
141 小时
注册时间
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, 下载次数: 21)

1.png

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

2.png

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

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

使用道具 举报

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的,
用小括号,大括号表示。
没带大括号的大概是执行下面一句的内容。
第二句就不算了
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
36119
在线时间
10712 小时
注册时间
2009-3-15
帖子
4806
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

开拓者

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

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3408
在线时间
141 小时
注册时间
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,目标闪避了攻击,状态也会附加。。。。
自分自身の神様になること
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1573
在线时间
374 小时
注册时间
2017-12-26
帖子
306
10
发表于 2018-11-8 19:47:16 | 只看该作者
526396987 发表于 2018-11-8 17:43
真的谢谢!但是这个判定就是不起作用,头疼。。。
············
wait for popups

你具体想怎么写?攻击之后如果命中就有几率附加某一个状态?说详细点
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3408
在线时间
141 小时
注册时间
2018-1-22
帖子
137
9
 楼主| 发表于 2018-11-8 17:43:59 | 只看该作者
soulsaga 发表于 2018-11-8 15:43
全てのポップアップ(ダメージ表示)が再生し終わるまで待機        wait for popups
不知MISS会如何.. ...

真的谢谢!但是这个判定就是不起作用,头疼。。。
············
wait for popups
  if !target.result().missed && !target.result().evaded
    change variable 20 = Math.random()*10
    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

点评

你可以把随机判断去掉看看通不通过..  发表于 2018-11-8 20:45
自分自身の神様になること
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
36119
在线时间
10712 小时
注册时间
2009-3-15
帖子
4806
8
发表于 2018-11-8 15:43:20 | 只看该作者
全てのポップアップ(ダメージ表示)が再生し終わるまで待機        wait for popups
不知MISS会如何..

点评

改成了显示文本的公共事件来检查变量,数值一直为0无论是否命中 if !target.result().missed && !target.result().evaded change variable 20 = Math.random()*10 end common event:17   发表于 2018-11-8 21:00
配合wait for popups再试试看?  发表于 2018-11-8 17:32
是的 我在动作序列中是这么写的 但是很可惜没有效果  发表于 2018-11-8 17:02
if !target.result().missed  发表于 2018-11-8 16:17
谢谢,这个指令好像不能判定是否命中,因为miss的话也会有弹窗  发表于 2018-11-8 15:53
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-9-20 18:37

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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