Project1

标题: 推箱子,地图事件刷新?(已解决) [打印本页]

作者: king    时间: 2017-12-1 17:42
标题: 推箱子,地图事件刷新?(已解决)
本帖最后由 king 于 2017-12-4 18:58 编辑

就是传统的推箱子事件,如果错了,需要从新来过
但是要刷新箱子的位置,需要转移到其他地图,再返回,箱子的位置才能复原

我想做个道具,地图事件刷新,让箱子的位置回到原来的位置

有脚本?还是插件?


插件: 5-o7x26ots (2).zip (1.3 KB, 下载次数: 68)
http://runjs.cn/code/o7x26ots

作者: elaonesside    时间: 2017-12-1 18:57
设置事件位置,一个个还原就行
作者: 枫叶的北方    时间: 2017-12-1 21:50
出一次进一次地图就刷回来了啊。。。或者干脆场所移动到本地图的某一个位置也能刷回来
作者: 梦想家大魔王    时间: 2017-12-2 18:07
做一个开关事件,内容是传送到本地图的初始/入口位置,然后一切都还原了。
作者: king    时间: 2017-12-2 18:51
本帖最后由 king 于 2017-12-2 18:55 编辑

本想偷懒,看看有什么脚本可以直接刷新!
不过,还是乖乖用事件,用变量记录地图ID进行判断,然后进行传送刷新地图
主要是画地图时没想那么多,越画越大,然后还摆了箱子挡路……
但是现在测试,发现如果玩家推箱子,错误,还要特定再跑一次地图刷新,估计想拍死作者……现在只能补锅了了
作者: 芯☆淡茹水    时间: 2017-12-2 19:49
本帖最后由 芯☆淡茹水 于 2017-12-2 19:50 编辑

把下面的脚本做成插件添加或加入到其它脚本里

要还原时,事件 - 脚本:$gameMap.reductionEvent();

  1. Game_Map.prototype.reduction = function() {
  2.     return this._reduction || false;
  3. };
  4. Game_Map.prototype.setReduction = function(state) {
  5.     this._reduction = state || false;
  6. };
  7. Game_Map.prototype.reductionEvent = function() {
  8.     if (this.setupEvents() || this.setReduction(true)){}
  9. };
  10. Spriteset_Map.prototype.removeCharacters = function() {
  11.     for (var i=0;i<this._characterSprites.length;i++){
  12.         this._tilemap.removeChild(this._characterSprites[i]);
  13.     }
  14. };
  15. Spriteset_Map.prototype.setupCharacters = function() {
  16.     $gameMap.setReduction();
  17.     if (!this._characterSprites || !this._characterSprites.length) return;
  18.     if (this.removeCharacters() || this.createCharacters()){}
  19. };
  20. var XdRsData_Reduction_SMupdate = Spriteset_Map.prototype.update;
  21. Spriteset_Map.prototype.update = function() {
  22.     XdRsData_Reduction_SMupdate.call(this);
  23.     if ($gameMap.reduction() && this.setupCharacters()){}
  24. };
复制代码





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