Project1

标题: 请大佬们给我一个思路,如何暂时不遇敌? [打印本页]

作者: nhycs01    时间: 2023-2-28 22:21
标题: 请大佬们给我一个思路,如何暂时不遇敌?
是这样的,我设置的敌人是可见的,就是用事件做的,主角碰到敌人就会进入战斗,也就是所谓的“明雷”。
现在问题来了,如果是设置系统的“暗雷”,可以用指令【不遇敌】来避开敌人,但是明雷如何设置一种技能或道具,拥有一段时间或步数不遇敌的功效呢?
请大佬们给一点思路,多谢!
作者: 余杭    时间: 2023-2-28 22:30
我想到的是,在明雷怪物的事件页添加一个需要开关的空白页,物品则可以通过公共事件开启或关闭这个开关,不确定还有没更简单的方法,这种方法好像只能通过手动开启和关闭
作者: 小秋橙    时间: 2023-2-28 23:13
JAVASCRIPT 代码复制
  1. Game_Interpreter.prototype.command301 = function(params) {
  2.     if ($gameParty.hasEncounterNone()) {
  3.         $gameMap.eraseEvent(this._eventId);
  4.         return true;
  5.     } // 开头新增几行:如果当前队伍有【免疫遇敌】状态则怪物直接消失
  6.     if (!$gameParty.inBattle()) {
  7.         let troopId;
  8.         if (params[0] === 0) {
  9.             // Direct designation
  10.             troopId = params[1];
  11.         } else if (params[0] === 1) {
  12.             // Designation with a variable
  13.             troopId = $gameVariables.value(params[1]);
  14.         } else {
  15.             // Same as Random Encounters
  16.             troopId = $gamePlayer.makeEncounterTroopId();
  17.         }
  18.         if ($dataTroops[troopId]) {
  19.             BattleManager.setup(troopId, params[2], params[3]);
  20.             BattleManager.setEventCallback(n => {
  21.                 this._branch[this._indent] = n;
  22.             });
  23.             $gamePlayer.makeEncounterCount();
  24.             SceneManager.push(Scene_Battle);
  25.         }
  26.     }
  27.     return true;
  28. };

作者: nhycs01    时间: 2023-2-28 23:25
小秋橙 发表于 2023-2-28 23:13
Game_Interpreter.prototype.command301 = function(params) {
    if ($gameParty.hasEncounterNone()) {
...

感谢大佬,请问这段代码怎么用?
作者: 小秋橙    时间: 2023-3-1 02:43
nhycs01 发表于 2023-2-28 23:25
感谢大佬,请问这段代码怎么用?

原文在rpg_objects.js的第10130行左右,可以直接在这个函数的开头把928-931那几行加上,如果写插件的话就是把3楼的代码整个抄一遍或者用call/apply语法来写……
作者: BCJT    时间: 2023-3-1 07:32
同意2楼的方法,新的事件页还可以设置成敌人不动或闪烁可穿越。总之先好好研究下事件的用法吧。
作者: actty    时间: 2023-3-1 16:32
记得在版头的基础教程中的事件进阶里有一个“在地图中使用隐身技能,行走一定步数解除状态”,就是使用技能后开启一个开关,在敌人事件上新建一个用这个开关开启的空白页,然后设置穿透就可以了
作者: rica    时间: 2023-3-1 21:02
2樓方法最簡單直接,但手動更換開關不太優雅,有沒有固定區域中使用開關,離開後強制開關 關閉
作者: 余杭    时间: 2023-3-1 22:39
本帖最后由 余杭 于 2023-3-1 22:41 编辑

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

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

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

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




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