Project1

标题: 如何 在function内获取当前事件的id [打印本页]

作者: momoka333    时间: 2021-9-22 16:15
标题: 如何 在function内获取当前事件的id
        monstermove = function() {
       
                                   var a = this._eventId;
           $gameMap.event(a).moveStraight(6);
            
        };

用一个事件执行monstermove,发现无法获取本事件的id,请大佬指点下
作者: zths    时间: 2021-9-22 23:45
this 不会自动往下传的.
调用的时候得 : monstermove.bind(this)();
this才会跟着走.

或者直接拿当前运行事件的 evid: (但不包括并行运行那些.
function getEvid() {
    if (typeof $gameMap === "undefined" && $gameTroop === "undefined") {
        return 0;
    }
    var target = $gameMap
    if ($gameTroop && $gameTroop._inBattle) {
        target = $gameTroop
    }

    if (target._interpreter === undefined) {
        return 0;
    }
    if (target._interpreter._list === undefined) {
        return 0;
    }
    if (!target._interpreter._list) {
        return 0;
    }
    if (target._interpreter._list.constructor.name !== "Array") {
        return 0;
    }
   
    return target._interpreter._eventId;
}
事件需要递归到子事件.我没写递归. 你自己搞.
作者: momoka333    时间: 2021-9-23 01:13
zths 发表于 2021-9-22 23:45
this 不会自动往下传的.
调用的时候得 : monstermove.bind(this)();
this才会跟着走.

谢谢大佬指点,我基础差,还要多加学习




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