设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2667|回复: 3
打印 上一主题 下一主题

[交流讨论] 【简单代码】 扩大事件接触范围

[复制链接]

Lv1.梦旅人

梦石
0
星屑
26
在线时间
701 小时
注册时间
2021-3-24
帖子
549
跳转到指定楼层
1
发表于 2021-6-29 16:27:04 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 清澈淌漾 于 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, 下载次数: 34)

GIF.gif
全家活光光~

Lv4.逐梦者

梦石
0
星屑
7089
在线时间
722 小时
注册时间
2021-3-5
帖子
821
2
发表于 2021-6-29 20:30:46 | 只看该作者
本帖最后由 RyanYe 于 2021-6-29 20:32 编辑

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

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

点评

然后用_pageIndex 找对应的数字  发表于 2021-6-30 09:33
事件的备注和数据库的不太一样 尖括号点不出来 你可以试试 怎么写你能通过代码读出来就行, 每个事件页你可以把后面具体范围的数字在进行分割  发表于 2021-6-30 09:31
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-12-1 02:50

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表