Project1

标题: 关于公共事件的伤害数值显示 [打印本页]

作者: porlutia    时间: 2022-2-18 16:03
标题: 关于公共事件的伤害数值显示
本帖最后由 porlutia 于 2022-2-18 19:50 编辑

想要制作一个技能,释放后一定概率造成一次敌方全体的固定数值伤害。
于是在某个技能上绑了个公共事件,
在公共事件中进行了伤害数值的设定,并使用事件指令中的“增减敌方生命值”进行伤害处理;
虽然结果是能够造成伤害,但是 没有办法显示数值,
所以来问一下坛友有没有什么办法能显示公共事件中的伤害数值?

使用的事yep的ATB战斗系统
作者: xiamumomo    时间: 2022-2-18 16:14
this.iterateBattler(1, 0, battler => {
  if (!battler.isDeathStateAffected()) {
    battler.forceAction(skill ID, -2);
  BattleManager.forceAction(battler);
    this.setWaitMode("action");
  }
});这个类似于强制战斗行动,这个是我一起那在论坛找的=。=至于其他数字意思我没太懂反正你选择的技能设置成全部敌人这样应该没问题了=。=有问题也别问我我也不太明白
作者: porlutia    时间: 2022-2-18 16:29
xiamumomo 发表于 2022-2-18 16:14
this.iterateBattler(1, 0, battler => {
  if (!battler.isDeathStateAffected()) {
    battler.forceAct ...

我也确实有想过用强制行动,
不过因为还没尝试,不知道强制行动会不会消耗回合数,
会消耗回合数的话,那有些buff就不太好设置  
这样的话 又引出另一个问题,
如果原本强制行动消耗回合数的话,有没有办法令强制行动不消耗回合数;
或者,有没有办法让buff状态在强制行动的时候回合计数不下降
作者: soulsaga    时间: 2022-2-18 17:15
porlutia 发表于 2022-2-18 16:29
我也确实有想过用强制行动,
不过因为还没尝试,不知道强制行动会不会消耗回合数,
会消耗回合数的话,那 ...

XP有试过改强制行动不消耗BUFF回合..
MV..就不清楚了..
对不起啦
作者: 多卡多卡    时间: 2022-2-18 17:18
可以尝试更改伤害公式,未造成伤害是造成0点伤害就可以了。
Math.random()<0.8?1000:0
这样就是有80%的概率造成1000点伤害,20%不造成伤害,比公共事件使用起来更方便
作者: dabaxhei    时间: 2022-2-18 17:31
是伤害后概率追加一次伤害吗?
作者: 寂静的夜里    时间: 2022-2-18 17:33
建议新做一个技能挂在事件里面 这样就可以显示伤害了
作者: porlutia    时间: 2022-2-18 17:33
多卡多卡 发表于 2022-2-18 17:18
可以尝试更改伤害公式,未造成伤害是造成0点伤害就可以了。
Math.random()

更改伤害公式确实是一个可行的比较有意思的思路,也能玩很多东西;
不过这个方法只能用作单个技能的不同伤害分支,
当前想解决的是:
使用技能后,一定概率追加一个大额伤害,并且显示伤害数值;
使用公共事件中的“增减敌方生命值”选项确实可以实现,但是 没有伤害数值显示,
如果是秒杀效果的话,还好说 直接死了就行,但并不是秒杀效果,
而是一定量的伤害,如果造成了一定量的伤害,却没有伤害数值的话,不是很怪吗?
目前想解决的就是这个伤害数值显示的问题

作者: porlutia    时间: 2022-2-18 17:37
dabaxhei 发表于 2022-2-18 17:31
是伤害后概率追加一次伤害吗?

是的,使用某一技能造成伤害后,概率追加一次伤害
作者: porlutia    时间: 2022-2-18 17:38
寂静的夜里 发表于 2022-2-18 17:33
建议新做一个技能挂在事件里面 这样就可以显示伤害了

这样的话 就得考虑如何让强制行动不消耗行动回合数了 不然buff回合会比较难受
作者: xiamumomo    时间: 2022-2-18 18:04
porlutia 发表于 2022-2-18 17:38
这样的话 就得考虑如何让强制行动不消耗行动回合数了 不然buff回合会比较难受  ...

你那个技能附加公共事件  公共事件写我刚刚发的脚本  脚本你技能改为另一个技能就好了
作者: dabaxhei    时间: 2022-2-18 18:05
porlutia 发表于 2022-2-18 17:37
是的,使用某一技能造成伤害后,概率追加一次伤害

◆注释:开始/开启目标无敌
◆插件指令:VisuMZ_1_BattleCore, ACSET: Setup Action Set
:    :Display Action = true
:    :Immortal: On = true
:    :Battle Step = true
:    :Wait For Movement = true
:    :Cast Animation = true
:    :Wait For Animation = true
◆注释:移动到目标位置
◆插件指令:VisuMZ_1_BattleCore, MOVE: Move To Target(s)
:    :Targets (Moving) = ["user"]
:    :Targets (Destination) = ["all targets"]
:    :Target Location = back base
:    :Melee Distance = -300
:    :Offset Adjustment = horz
:    :Offset: X = 0
:    :Offset: Y = 0
:    :Duration = 12
:    :Face Destination? = true
:    :Movement Easing = Linear
:    :Movement Motion = walk
:    :Wait For Movement? = true
◆注释:播放动画
◆插件指令:VisuMZ_1_BattleCore, ANIM: Action Animation
:    :Targets = ["all targets"]
:    :Mirror Animation = false
:    :Wait For Animation? = false
◆注释:显示武器效果
◆插件指令:VisuMZ_1_BattleCore, MOTION: Motion Type
:    :Targets = ["user"]
:    :Motion Type = attack
:    :Show Weapon? = true
◆注释:开启无敌
◆注释:开始攻击/显示伤害
◆插件指令:VisuMZ_1_BattleCore, MECH: Action Effect
:    :Targets = ["all targets"]
◆等待:60帧
◆变量操作:#0006 测试技能 = 随机 0..10
◆如果:测试技能 < 5
  ◆插件指令:VisuMZ_1_BattleCore, MECH: Action Effect
  :    :Targets = ["all targets"]
  ◆
:结束分支
◆注释:移除无敌效果
◆插件指令:VisuMZ_1_BattleCore, MECH: Immortal
:    :Targets = ["user","all targets"]
:    :Immortal = true
◆注释:End
◆插件指令:VisuMZ_1_BattleCore, ACSET: Finish Action
:    :Immortal: Off = true
:    :Wait For New Line = true
:    :Wait For Effects = true
:    :Clear Battle Log = true
:    :Home Reset = true
:    :Wait For Movement = true


我刚简单测试了下 可以的  不过要用动作序列插件 你可以找找别的类似插件用
作者: 任小雪    时间: 2022-2-18 18:48
本帖最后由 任小雪 于 2022-2-18 18:55 编辑

楼上诸位,我觉得,其实纯事件的强制行动就可以实现,只要多做一个技能就行(如果我没理解错楼主的意思),我做过类似的技能。
要是要判定敌我释放与目标,可以用下伤害公式的那里a.isActor()?(好像是这么写来着)详情,诸位大佬继续解答吧,我比较懒。

话说,强制行动消耗回合数吗?好像是,本回合强制行动前已经行动是不消耗的,不过,若是固定伤害的话,其实也可以让不存在的角色使用强制技能
作者: soulsaga    时间: 2022-2-18 19:00
Game_Battler.prototype.removeState = function(stateId) {
    if (this.isStateAffected(stateId)) {
        if (stateId === this.deathStateId()) {
            this.revive();
        }
        if (!this._actionForcedBattler) this.eraseState(stateId);
        this.refresh();
        this._result.pushRemovedState(stateId);
    }
};

这样强制行动就不消耗回合了
作者: porlutia    时间: 2022-2-18 19:49
soulsaga 发表于 2022-2-18 19:00
Game_Battler.prototype.removeState = function(stateId) {
    if (this.isStateAffected(stateId)) {
   ...

啊这 这波我全责 是我没说清楚  我用的是yep的ATB战斗
你这个放原版应该是可行的
这个yep的ATB我刚刚也试了下
还是不行 大概是因为ATB的关系
我再去ATB里边看看有没有相关的设置
作者: porlutia    时间: 2022-2-18 19:53
任小雪 发表于 2022-2-18 18:48
楼上诸位,我觉得,其实纯事件的强制行动就可以实现,只要多做一个技能就行(如果我没理解错楼主的意思),我 ...

让不存在的人释放强制行动吗,这个思路我还从没想过 等会去试试

作者: porlutia    时间: 2022-2-18 20:08
任小雪 发表于 2022-2-18 18:48
楼上诸位,我觉得,其实纯事件的强制行动就可以实现,只要多做一个技能就行(如果我没理解错楼主的意思),我 ...

确实 可以使用“不存在”的角色实现不消耗当前角色的回合数进行强制攻击的手段 不过如果技能是单体的话技能目标有没有办法控制为和之前的攻击一样呢
作者: 新手制造师    时间: 2022-2-19 02:04
porlutia 发表于 2022-2-18 20:08
确实 可以使用“不存在”的角色实现不消耗当前角色的回合数进行强制攻击的手段 不过如果技能是单体的话技 ...

请问类似于这种思路,可以对某个人物释放的某个技能进行全局计数吗?




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1