Project1

标题: 有没有办法实现战斗中按时间持续掉血?(已解决) [打印本页]

作者: 892342302    时间: 2020-2-22 09:18
标题: 有没有办法实现战斗中按时间持续掉血?(已解决)
本帖最后由 892342302 于 2020-2-23 09:21 编辑

不是每回合掉血,是在战斗的选择指令界面每过一秒掉1点血,这样可以增加战斗的紧张感,尝试过用并行运行的公共事件,但在战斗中无法起作用,实在不知道怎么实现,因为是很重要的功能,所以如果有大神会做相应插件的话我愿意定制一下,价格200以内可以接受,有意愿的大大可以私聊我
作者: 白嫩白嫩的    时间: 2020-2-22 11:17
说实话,不建议这么玩,现在mog和yep还有其他比较成熟的即时回合插件已经可以满足战斗时的紧张感了,稍稍磨蹭一下,玩家就被怪物打得满头金星。

加这个界面扣血的话,感觉很有想法、方式也很新颖,但作为玩家,我要是玩这么款游戏,肯定是要卸载的,玩游戏本就是为了休闲玩乐,作者可以用游戏规则限制玩家、把控玩家的方向,但是真心不建议这个方式,因为这种形式带着的满满的恶意啊,虽然一秒才扣1点血,玩家角色一般初始都是200左右的血,不会伤筋动骨,但是给玩家一种牵着鼻子走的感觉,这种形式是为了让玩家赶紧做出选择而设置的,倒不如加个倒计时时间条,不做任何选择就默认攻击。


真心建议使用即时回合插件即可,或者战斗加入倒计时,倒计时结束就战斗失败。

以上,肺腑之言


作者: yang1zhi    时间: 2020-2-22 15:27
本帖最后由 yang1zhi 于 2020-2-22 15:30 编辑

我也不建议这么搞。
这样就是,我要是中途要离开,那不就只能死了吗。

方法嘛,就是在scene_battle类的update方法里面,加个方法。
这是每一贞都被执行到的。
由于60贞是一秒。所以还要建立个变量来倒计时。

MEIMIAO_KOUXUE = Scene_Battle.prototype.update
Scene_Battle.prototype.update = function() {
MEIMIAO_KOUXUE.call(this);
}
这样子写,可以继承前面的Scene_Battle.prototype.update函数,而不是替代。

$gameParty.aliveMembers()  这个方法可以获得我军所有活着的战斗角色
target.gainHp(-value);  这个方法是给角色扣血的

然后写个新的函数
Scene_Battle.prototype.mei_miao_kou_hp = function() {
    //建立一个变量来倒计时
    //判断倒计时变量不存在或者为0时
    if (!this._meimiao_kou_hp_time) {
    //设定倒计时变量
    this._meimiao_kou_hp_time = 60
} else {
    //其他情况
    //倒计时减去1
    this._meimiao_kou_hp_time -= 1
    //判断倒计时为0
    if (this._meimiao_kou_hp_time === 0) {
    //遍历所有角色
    for (var i=0;i<$gameParty.aliveMembers().length;i++) {
    //获得角色
    var actor = $gameParty.aliveMembers()
    //角色扣血
    actor.gainHp(-1);
    //把倒计时恢复
    this._meimiao_kou_hp_time = 61
}
    }
}
}

这个扣血的函数就写好了
然后把他放到update里

MEIMIAO_KOUXUE = Scene_Battle.prototype.update
Scene_Battle.prototype.update = function() {
MEIMIAO_KOUXUE.call(this);
this.mei_miao_kou_hp()
}

作者: 892342302    时间: 2020-2-22 20:31
白嫩白嫩的 发表于 2020-2-22 11:17
说实话,不建议这么玩,现在mog和yep还有其他比较成熟的即时回合插件已经可以满足战斗时的紧张感了,稍稍磨 ...

感谢大大的建议~掉血并不是一直掉,而是在中了敌人的拘束技能以后才会掉,这样可以让玩家必须快速地选择指令,如果手速慢了会失去更多的血量,虽然可以通过别的方式来增加拘束状态的紧张感,但是果然随着时间掉血才是最有效的方式。
作者: 892342302    时间: 2020-2-22 20:44
yang1zhi 发表于 2020-2-22 15:27
我也不建议这么搞。
这样就是,我要是中途要离开,那不就只能死了吗。

哇,实在太感谢您啦,不过这个代码会不会一直触发,我希望这个持续掉血在中了某种状态以后再触发,如果有一个能在战斗中运行并行公共事件的插件就好了,不仅能解决我的这个问题,而且我还能在战斗上玩出更多的花样,上面都是我的自言自语,请不要在意,就算没有解决办法也没关系,本来就是一个锦上添花的东西,没有也无妨~
作者: yang1zhi    时间: 2020-2-22 21:13
本帖最后由 yang1zhi 于 2020-2-22 21:14 编辑
892342302 发表于 2020-2-22 20:44
哇,实在太感谢您啦,不过这个代码会不会一直触发,我希望这个持续掉血在中了某种状态以后再触发,如果有 ...


要设定状态,就再加个状态的判断就可以了

Scene_Battle.prototype.mei_miao_kou_hp = function() {
    //建立一个变量来倒计时
    //判断倒计时变量不存在或者为0时
    if (!this._meimiao_kou_hp_time) {
    //设定倒计时变量
    this._meimiao_kou_hp_time = 60
} else {
    //其他情况
    //倒计时减去1
    this._meimiao_kou_hp_time -= 1
    //判断倒计时为0
    if (this._meimiao_kou_hp_time === 0) {
    //遍历所有角色
    for (var i=0;i<$gameParty.aliveMembers().length;i++) {
    //获得角色
    var actor = $gameParty.aliveMembers()
    //判断角色是否有这个状态
    if (actor.isStateAffected(100)) {
        //角色扣血
        actor.gainHp(-1);
        //把倒计时恢复
        this._meimiao_kou_hp_time = 61
}
   
}
    }
}
}



虽然加了状态,目前是有状态就掉血,不管是不是可操作
作者: 892342302    时间: 2020-2-22 21:50
yang1zhi 发表于 2020-2-22 21:13
要设定状态,就再加个状态的判断就可以了

Scene_Battle.prototype.mei_miao_kou_hp = function() {

感谢大大,大大辛苦了!我去试一试,看看效果怎么样。
作者: soulsaga    时间: 2020-2-22 22:59
https://rpg.blue/thread-477563-1-1.html
楼主你要的菜..
作者: tseyik    时间: 2020-2-22 23:08
不是實時形的戦鬥
這様設定沒意義
作者: 892342302    时间: 2020-2-23 02:32
soulsaga 发表于 2020-2-22 22:59
https://rpg.blue/thread-477563-1-1.html
楼主你要的菜..

天啊,太感谢了,找这个插件好久了,这样以后连动态cg的战斗都可以轻松实现了,实在是太感谢了
作者: sdgn    时间: 2020-2-23 21:11
中毒不就是一種?




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