RPGMZ游戏引擎事件技巧大全

个人记录保存

Project1论坛 小圈子 人才 不得学习技术

搜集了一些常用功能 以后不用翻源代码

Game_Event 逻辑功能在这里

Sprite_Character 图形显示在这里

判断是什么角色

javascript 复制代码
if (this._character instanceof Game_Event) {
    // 地图事件
} else if (this._character instanceof Game_Player) {
    // 玩家
} else if (this._character instanceof Game_Follower) {
    // 随从
}

地图角色事件获取

javascript 复制代码
$gameMap.event(5) //获取事件
$gamePlayer  //获取玩家
$gamePlayer.followers().follower(0) //获取随从
this.character() //当前事件 事件页内
$gameMap.character(id) // 通用(0=玩家,1~=事件)

遍历地图上所有的事件拿到事件本身 做自己想做的事情

javascript 复制代码
$gameMap.events().forEach(event => {
    // event = 当前循环到的 每一个事件
});

让地图上所有事件暂停不动弹 可以执行自己的代码功能然后在恢复所有事件运行

javascript 复制代码
//强制静止
$gameMap.events().forEach(ev => (ev._oldMoveType = ev._moveType, ev._moveType = 0));
javascript 复制代码
//恢复正常
$gameMap.events().forEach(ev => ev._oldMoveType && (ev._moveType = ev._oldMoveType, delete ev._oldMoveType));

让某个id的事件静止不动

javascript 复制代码
//事件会转向角色
$gameMap.event(5).lock();
//解除
$gameMap.event(5).unlock();


// 暂停 不转向
const ev = $gameMap.event(5);
ev._oldMoveType = ev._moveType;
ev._moveType = 0;

// 恢复
const ev = $gameMap.event(5);
if (ev._oldMoveType !== undefined) {
  ev._moveType = ev._oldMoveType;
  delete ev._oldMoveType;
}

判断地图某个事件是否存在

javascript 复制代码
//遍历所有事件
const hasEnemy = $gameMap.events().some(e=>e.event().name === "牛头军" && !e._erased);
if(hasEnemy ){

//存在
}else{
//不存在
}


//具体某个id的事件 没消失还存在
$gameMap.event(5) && !$gameMap.event(5)._erased

让某个事件彻底消失

javascript 复制代码
$gameMap.event(5).erase();

//恢复方法
$gameMap.event(5)._erased = false;
$gameMap.event(5).refresh();

移动某个事件 到指定位置

javascript 复制代码
$gameMap.event(4).locate(6, 2);

事件存在并且没有运行的事件页

javascript 复制代码
$gameMap.event(5) && $gameMap.event(5)._pageIndex < 0

让具体的某个事件播放动画

javascript 复制代码
$gameTemp.requestAnimation([$gameMap.event(5)], 1);

为事件添加自定义属性变量 逻辑数据

javascript 复制代码
const _Game_Event_initialize = Game_Event.prototype.initialize;
Game_Event.prototype.initialize = function(mapId, eventId) {
    _Game_Event_initialize.call(this, mapId, eventId);
    this._new_index = 0; //自定义的变量 后续可以获取到 自行操作
};

事件的图像

javascript 复制代码
    const _Sprite_Character_prototype_initialize = Sprite_Character.prototype.initialize;
    Sprite_Character.prototype.initialize = function(character) {
        _Sprite_Character_prototype_initialize.call(this, character);
        //character就是逻辑对象 Game_Event.prototype.initialize 定义的变量可以直接获取
        character._new_index = 1; 改编自定义值
    };

持续更新中。。。。。。

相关推荐
Eastmount6 分钟前
[论文阅读] (54)NDSS26 JSIMPLIFIER:动静态与LLM如何协同完成JavaScript解混淆?
javascript·论文阅读·恶意代码分析·智能体安全·ndss
Ai-_Man38 分钟前
ChatGPT还是不可以导出左侧所有对话,只能点进去单条内容导出,方法不对吗?
开发语言·javascript·人工智能·chatgpt·小程序·ecmascript
miofly1 小时前
GitHub 今日推荐|security-audit-skill:让编码代理自己审计漏洞还互相验证
javascript·开源·github
Wanda12141 小时前
机器人与机电一体化3D数字孪生机器-Day5
人工智能·unity·游戏引擎·数字孪生
এ慕ོ冬℘゜1 小时前
es6理论总结
前端·javascript·es6
Lsx_2 小时前
微信支付接入全流程:JSAPI支付、小程序支付与H5支付
前端·javascript·全栈
试图让你心动2 小时前
【无标题】
前端·javascript·vue.js
Hilaku2 小时前
为什么每个前端都应该拥有一个自己的独立博客?
前端·javascript·程序员
木圭的AI时代指南3 小时前
实测 MiniMax M3.1 Flash:同一道 Three.js 大题,两个 agent 差出 4.6 倍
开发语言·javascript·ecmascript
西红柿炖牛腩3543 小时前
3D 模型压缩脚本又报错又配环境?换个不用维护的方案
javascript·3d·性能优化