Project1

标题: 【简单代码】 扩大事件接触范围 [打印本页]

作者: 清澈淌漾    时间: 2021-6-29 16:27
标题: 【简单代码】 扩大事件接触范围
本帖最后由 清澈淌漾 于 2021-6-29 16:30 编辑

MV开发时 总会遇到那种空气事件的演出,一个NPC站老远 然后走到一个地方通过空气事件去触发NPC
事件多就很烦
于是经过我2分钟溯源  搞了一种解决办法


事件在备注内写下 该事件的接触范围   主要拿的值是冒号后面的数值 前面你想叫什么叫什么


    以下是核心代码
    原版
    Game_Map.prototype.eventsXy = function(x, y) {
    return this.events().filter(function(event) {
        return event.pos(x, y);
    });
    };

   修改后
    Game_Map.prototype.eventsXy = function(x, y) {
        return this.events().filter(function(event) {
            let s=$dataMap.events[event._eventId].note.split("limr:")
            if(s.length>1)
            {return (Math.abs(event._realX-x)<s[1])&&(Math.abs(event._realY-y)<s[1])}
           else return event.pos(x, y);
        });
    };


   角色每次移动都会遍历地图内所有事件 传递自己坐标
   源码是 通过event.pos(x, y)返回坐标x y完全一致的事件。

   修改后 在遍历后把事件备注拿到
   截出范围值 走一个x y绝对值判断



注意 事件优先级 玩家下方与玩家相同有两种不同的结果
如果是与玩家相同建议用障碍把事件围起来
如果是在玩家下方建议拿障碍把事件埋上

GIF.gif (1006.93 KB, 下载次数: 30)

GIF.gif

作者: RyanYe    时间: 2021-6-29 20:30
本帖最后由 RyanYe 于 2021-6-29 20:32 编辑

可以不放在整体的标签里,而是放在某事件页上吗

如果要放在标签里的话,可以变成加个尖括号的吗,例如:<limr:5>




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