查看: 2432|回复: 14

[有事请教] 请大佬们给我一个思路,如何暂时不遇敌?

[复制链接]
梦石
0
星屑
5269
在线时间
733 小时
注册时间
2013-1-18
回帖
525
发表于 2023-2-28 22:21:14 | 显示全部楼层 |阅读模式

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

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

×
是这样的,我设置的敌人是可见的,就是用事件做的,主角碰到敌人就会进入战斗,也就是所谓的“明雷”。
现在问题来了,如果是设置系统的“暗雷”,可以用指令【不遇敌】来避开敌人,但是明雷如何设置一种技能或道具,拥有一段时间或步数不遇敌的功效呢?
请大佬们给一点思路,多谢!

点评

大佬出现了!期待大佬的插件!  发表于 2023-2-28 23:27
写这样一个插件倒是很简单,但是需要你自己去一个一个在明怪事件上加备注。  发表于 2023-2-28 22:55
在触发敌人的事件上加备注或者注释,然后再写个插件用来判定。(狗头  发表于 2023-2-28 22:53
梦石
0
星屑
5483
在线时间
712 小时
注册时间
2022-11-26
回帖
296
发表于 2023-2-28 22:30:35 | 显示全部楼层
我想到的是,在明雷怪物的事件页添加一个需要开关的空白页,物品则可以通过公共事件开启或关闭这个开关,不确定还有没更简单的方法,这种方法好像只能通过手动开启和关闭

点评

这倒是一个办法,感谢支招  发表于 2023-2-28 23:35

评分

参与人数 1赞 +1 收起 理由
BCJT + 1 认可答案

查看全部评分

回复

使用道具 举报

梦石
2
星屑
8479
在线时间
463 小时
注册时间
2021-12-4
回帖
486

MZ评测员

发表于 2023-2-28 23:13:12 | 显示全部楼层
[pre lang="javascript" line="927"]Game_Interpreter.prototype.command301 = function(params) {
    if ($gameParty.hasEncounterNone()) {
        $gameMap.eraseEvent(this._eventId);
        return true;
    } // 开头新增几行:如果当前队伍有【免疫遇敌】状态则怪物直接消失
    if (!$gameParty.inBattle()) {
        let troopId;
        if (params[0] === 0) {
            // Direct designation
            troopId = params[1];
        } else if (params[0] === 1) {
            // Designation with a variable
            troopId = $gameVariables.value(params[1]);
        } else {
            // Same as Random Encounters
            troopId = $gamePlayer.makeEncounterTroopId();
        }
        if ($dataTroops[troopId]) {
            BattleManager.setup(troopId, params[2], params[3]);
            BattleManager.setEventCallback(n => {
                this._branch[this._indent] = n;
            });
            $gamePlayer.makeEncounterCount();
            SceneManager.push(Scene_Battle);
        }
    }
    return true;
};[/pre]
回复

使用道具 举报

梦石
0
星屑
5269
在线时间
733 小时
注册时间
2013-1-18
回帖
525
 楼主| 发表于 2023-2-28 23:25:53 | 显示全部楼层
小秋橙 发表于 2023-2-28 23:13
Game_Interpreter.prototype.command301 = function(params) {
    if ($gameParty.hasEncounterNone()) {
...

感谢大佬,请问这段代码怎么用?
回复

使用道具 举报

梦石
2
星屑
8479
在线时间
463 小时
注册时间
2021-12-4
回帖
486

MZ评测员

发表于 2023-3-1 02:43:31 | 显示全部楼层
nhycs01 发表于 2023-2-28 23:25
感谢大佬,请问这段代码怎么用?

原文在rpg_objects.js的第10130行左右,可以直接在这个函数的开头把928-931那几行加上,如果写插件的话就是把3楼的代码整个抄一遍或者用call/apply语法来写……
回复

使用道具 举报

梦石
0
星屑
7066
在线时间
607 小时
注册时间
2017-11-10
回帖
656

极短21参与

发表于 2023-3-1 07:32:05 | 显示全部楼层
同意2楼的方法,新的事件页还可以设置成敌人不动或闪烁可穿越。总之先好好研究下事件的用法吧。
回复

使用道具 举报

梦石
0
星屑
686
在线时间
100 小时
注册时间
2021-2-3
回帖
35
发表于 2023-3-1 16:32:45 | 显示全部楼层
记得在版头的基础教程中的事件进阶里有一个“在地图中使用隐身技能,行走一定步数解除状态”,就是使用技能后开启一个开关,在敌人事件上新建一个用这个开关开启的空白页,然后设置穿透就可以了

点评

对,这个就是二楼的方法,感谢!  发表于 2023-3-1 18:43
回复

使用道具 举报

梦石
0
星屑
1899
在线时间
181 小时
注册时间
2022-11-30
回帖
49
发表于 2023-3-1 21:02:07 | 显示全部楼层
2樓方法最簡單直接,但手動更換開關不太優雅,有沒有固定區域中使用開關,離開後強制開關 關閉
回复

使用道具 举报

梦石
0
星屑
5483
在线时间
712 小时
注册时间
2022-11-26
回帖
296
发表于 2023-3-1 22:39:03 | 显示全部楼层
本帖最后由 余杭 于 2023-3-1 22:41 编辑

我想到了怎么去设置一定步数之后再次开启遇敌了。

首先不遇敌还是和上面一样,需要在明雷怪物事件页添加一个   “不遇敌”  开关控制的页面,使明雷怪物消失或其他。
其次,通过物品的使用触发  “是否开启不遇敌”  公共事件,给出选项,当选择  “不遇敌”  时,打开  “不遇敌”  开关,并且给全部队友添加  “不遇敌”  状态。
再次,添加一个  “不遇敌判定”  公共事件,设置为  “不遇敌”  开关开启时  并行处理,判断角色是否还有  “不遇敌”  状态,若有则无动作,若没有则关闭  “不遇敌”  开关。

可以把这个  “不遇敌”  状态设置为一定步数之后解除,就可以实现开启不遇敌之后,一定步数后,明雷怪物再次出现。

这样设置明雷怪物的话,建议还是前期修改,可以直接将类似的战斗事件复制粘贴,只修改一些小细节,不然工作量有点大。

点评

感谢感谢!  发表于 2023-3-1 23:49
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部