Project1

标题: 允许穿透的事件不能通过与事件和与角色接触触发 [打印本页]

作者: dsqcr    时间: 2024-5-15 16:09
标题: 允许穿透的事件不能通过与事件和与角色接触触发
能否修改成即使是可穿透的事件也和不可穿透的事件一样触发
作者: 小秋橙    时间: 2024-5-16 13:28
Game_Event.prototype.checkEventTriggerTouch = function(x, y) {
    if (!$gameMap.isEventRunning()) {
        if (this._trigger === 2 && $gamePlayer.pos(x, y)) {
            if (!this.isJumping() && this.isNormalPriority()) { // 似乎跟穿透与否没有关系, 跟优先级有关系,你改成「和玩家相同」试试?
                this.start();
            }
        }
    }
};
作者: dsqcr    时间: 2024-5-16 13:36
小秋橙 发表于 2024-5-16 13:28
Game_Event.prototype.checkEventTriggerTouch = function(x, y) {
    if (!$gameMap.isEventRunning()) { ...

和玩家相同也不能触发。。。是不是设置为穿透会自动修改优先级啊

作者: 小秋橙    时间: 2024-5-16 15:58
dsqcr 发表于 2024-5-16 13:36
和玩家相同也不能触发。。。是不是设置为穿透会自动修改优先级啊

Game_CharacterBase.prototype.moveStraight = function(d) {
    this.setMovementSuccess(this.canPass(this._x, this._y, d));
    if (this.isMovementSucceeded()) {
        this.setDirection(d);
        this._x = $gameMap.roundXWithDirection(this._x, d);
        this._y = $gameMap.roundYWithDirection(this._y, d);
        this._realX = $gameMap.xWithDirection(this._x, this.reverseDir(d));
        this._realY = $gameMap.yWithDirection(this._y, this.reverseDir(d));
        this.increaseSteps();
        this.checkEventTriggerTouch(this._x, this._y); // 本行为新增内容,位于rmmz_objects.js第7400行左右
    } else {
        this.setDirection(d);
        this.checkEventTriggerTouchFront(d);
    }
};
// 编辑器里用词用的不好,应该把「接触」改成「碰撞」的……




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