Project1

标题: 事件独立数据Game_SelfData [打印本页]

作者: 沉滞的剑    时间: 2020-12-24 00:00
标题: 事件独立数据Game_SelfData
研究过程中搞出来的小玩具...
可以将Event的数据永久保存到全局, 和独立开关的使用方法一致
可以存储任意类型的数据
大概率也有其他类似的插件吧
理论上应该是MV/MZ通用


JAVASCRIPT 代码复制
  1. {
  2.   class Game_SelfData extends Game_SelfSwitches {
  3.     setValue(key, value) {
  4.       this._data[key] = value;
  5.       this.onChange();
  6.     }
  7.     value(key) {
  8.       return this._data[key];
  9.     }
  10.   }
  11.   window.Game_SelfData = Game_SelfData;
  12. }
  13. {
  14.   const temp = DataManager.createGameObjects;
  15.   DataManager.createGameObjects = () => {
  16.     temp();
  17.     $gameSelfData = new Game_SelfData();
  18.   };
  19. }
  20. {
  21.   const temp = DataManager.makeSaveContents;
  22.   DataManager.makeSaveContents = () => {
  23.     const contents = temp();
  24.     contents.selfData = $gameSelfData;
  25.     return contents;
  26.   };
  27. }
  28. {
  29.   const temp = DataManager.extractSaveContents;
  30.   DataManager.extractSaveContents = (contents) => {
  31.     console.log(contents.selfData);
  32.     temp(contents);
  33.     $gameSelfData = contents.selfData;
  34.   };
  35. }


使用方法, 在事件中插入脚本:

例子:记录数据
JAVASCRIPT 代码复制
  1. const event = $gameMap.event(this._eventId);
  2. const key = [this._mapId, this._eventId, 'pos'];
  3. $gameSelfData.setValue(key, [event.x, event.y, event.direction()]);


例子:读取数据

JAVASCRIPT 代码复制
  1. const event = $gameMap.event(this._eventId);
  2. const key = [this._mapId, this._eventId, 'pos'];
  3. const [x, y, d] = $gameSelfData.value(key);
  4. event.setPosition(x, y)
  5. event.setDirection(d)

作者: ~像素块儿~    时间: 2020-12-24 15:30
哇,支撑





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