Project1

标题: 如何让特定区域不会遇敌? [打印本页]

作者: 58432100    时间: 2024-6-5 10:00
标题: 如何让特定区域不会遇敌?
如图,我想让这片编号为“1”的区域不会随机遇敌,请教各位大佬!!QAQ

屏幕截图 2024-06-05 095801.png (19.92 KB, 下载次数: 118)

屏幕截图 2024-06-05 095801.png

作者: RedTee    时间: 2024-6-5 10:00

作者: 马铃薯条    时间: 2024-6-5 10:22
通义千问的回答,不知道有没有用:
你可以在地图的初始化事件或者其他合适的地方(比如玩家进入特定区域的触发事件)添加以下JavaScript代码来控制遇敌:


// 检查玩家当前是否处于区域1
if ($gamePlayer.regionId() === 1) {
    // 如果在区域1,关闭遇敌
    $gameMap.encounterRate() = 0; // 将遇敌率设置为0意味着不会随机遇敌
} else {
    // 如果不在区域1,可以在这里恢复默认的遇敌率,如果需要的话
    // $gameMap.encounterRate() = 默认遇敌率;
}


这段代码首先检查玩家当前所在的区域ID是否为1,如果是,则通过$gameMap.encounterRate()将遇敌率设置为0,从而在这个区域内不发生随机遇敌。当玩家离开这个区域时,你可能需要在另一个事件或条件判断中恢复正常的遇敌率。

请注意,这种方法可能需要配合事件触发器来实时检测玩家的位置变化,确保当玩家进出该区域时能够正确切换遇敌状态。
作者: 58432100    时间: 2024-6-5 11:03
马铃薯条 发表于 2024-6-5 10:22
通义千问的回答,不知道有没有用:
你可以在地图的初始化事件或者其他合适的地方(比如玩家进入特定区域的 ...

不会用诶
作者: RedTee    时间: 2024-6-5 11:07
设置地图时,将整张地图编号,特定区域号码特殊,比如不遇敌区域编号为1,其他区域编号为2,将敌人出现区域设定为2,这个方法适合非超大地图,也是不会使用插件的人(我)用到的笨办法!
作者: 58432100    时间: 2024-6-5 11:35
RedTee 发表于 2024-6-5 11:07
设置地图时,将整张地图编号,特定区域号码特殊,比如不遇敌区域编号为1,其他区域编号为2,将敌人出现区域 ...

这个该在哪里设置呢
作者: 小秋橙    时间: 2024-6-5 21:30
马铃薯条 发表于 2024-6-5 10:22
通义千问的回答,不知道有没有用:
你可以在地图的初始化事件或者其他合适的地方(比如玩家进入特定区域的 ...

Game_Player.prototype.canEncounter = function() {
    return (
        !$gameParty.hasEncounterNone() &&
        $gameSystem.isEncounterEnabled() &&
        !this.isInAirship() &&
        !this.isMoveRouteForcing() &&
        !this.isDebugThrough()
    ) && this.regionId() !== 1; // 本行为修改内容,位于 rmmz_objects.js 第 8564 行。
};

3楼的AI回答也太不靠谱了吧,哪有把函数返回值Rate()写在赋值等号=左边的呀……




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