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

Project1

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

[已经解决] 【XP脚本改MV】RB的"简易地图记忆功能“ 移植失败

[复制链接]

Lv3.寻梦者

梦石
0
星屑
1759
在线时间
2524 小时
注册时间
2010-10-12
帖子
1454

开拓者

跳转到指定楼层
1
发表于 2016-3-16 08:12:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
RUBY 代码复制
  1. #=============================================================================
  2. # 简易地图记忆功能
  3. #-----------------------------------------------------------------------------
  4. # By:RyanBern
  5. #=============================================================================
  6.  
  7. #=============================================================================
  8. # 说明
  9. #-----------------------------------------------------------------------------
  10. # 切换地图后,重新进入地图会重新装载一遍地图,导致事件还在原位。这里经过简单
  11. # 修改可使得某些地图的事件位置信息会保存下来。
  12. #=============================================================================
  13.  
  14. class Game_Map
  15.     # 用于储存所记忆地图的变量 ID,这是为了地图信息能保存到下次读档之后,注意,一
  16.   # 旦设置了某变量用于记忆地图,则此变量不可作为他用(即不能出现在事件操作或者
  17.   # 事件出现条件中)。例如,将1号变量用于储存记忆地图,则写 MEMORIZED_POS = 1
  18.  
  19.   MEMORIZED_POS = 1
  20.   alias ryan_setup setup
  21.   def setup(map_id)
  22.     unless $game_variables[MEMORIZED_POS].is_a?(Hash)
  23.       $game_variables[MEMORIZED_POS] = {}
  24.     end
  25.     if $maps_need_memorize.include?($game_map.map_id)
  26.       $game_variables[MEMORIZED_POS][$game_map.map_id] = $game_map.clone
  27.     end
  28.     if $game_variables[MEMORIZED_POS].include?(map_id)
  29.       $game_map = $game_variables[MEMORIZED_POS][map_id]
  30.       return
  31.     end
  32.     @fighters = {}
  33.     @missiles = []
  34.     @bloods = []
  35.     ryan_setup(map_id)
  36.  
  37.  
  38.   end
  39.  
  40. end

ps: $maps_need_memorize 在其他脚本中定义了。是个integer array。存储地图ID





以上是XP脚本 ”简易地图记忆功能 By:RyanBern “

在下尝试着模仿上面写了一个MV的脚本

结果却失败了

你们看看应该怎么改写呢?


我的

JAVASCRIPT 代码复制
  1. MBBS_MV.Core.Game_Map_setup = Game_Map.prototype.setup;
  2. Game_Map.prototype.setup = function(mapId) {
  3.  
  4.     if (typeof $gameVariables.value(Game_Map.MEMORIZED_POS) === 'number'){
  5.       $gameVariables.setValue(Game_Map.MEMORIZED_POS,[]);
  6.       console.log("Created varible for map spot");
  7.     }
  8.  
  9.     //alert(mapId+" "+this._mapId);
  10.     if (Game_Map.MAPS_NEED_MEMORIZE.indexOf(this._mapId)!==-1){
  11.         console.log("operating the data.");
  12.         var temp = $gameVariables.value(Game_Map.MEMORIZED_POS);
  13.         //var bill = (JSON.parse(JSON.stringify(bob)));
  14.         temp[this._mapId] = (JSON.parse(JSON.stringify($gameMap)));
  15.         $gameVariables.setValue(Game_Map.MEMORIZED_POS,temp);
  16.     }
  17.     //console.log("$gameVariables.value(Game_Map.MEMORIZED_POS)[mapId]: "+$gameVariables.value(Game_Map.MEMORIZED_POS)[mapId]);
  18.     if ($gameVariables.value(Game_Map.MEMORIZED_POS)[mapId]){
  19.         console.log("data over loaded: mapId: " +  mapId);
  20.       $game_map = $gameVariables.value(Game_Map.MEMORIZED_POS)[mapId];
  21.       return;
  22.     }
  23.     $gameMap.requestRefresh();
  24.  
  25.     this.setupEFSBattlers();
  26.     MBBS_MV.Core.Game_Map_setup.call(this,mapId);
  27. };


评分

参与人数 2+2 收起 理由
玛尔斯 + 1
众神与将军 + 1

查看全部评分


Lv3.寻梦者

梦石
0
星屑
1244
在线时间
898 小时
注册时间
2014-12-4
帖子
379
2
发表于 2016-3-16 08:40:14 | 只看该作者
yep 不是有一个记录事件位置的插件吗?

点评

好高级,少年继续努力,我看好你!  发表于 2016-3-16 08:54
其实在下需要的不仅仅是事件位置的记录 而是完完全全把$gameMap给保存下来,因为里面还包含了其他数据。  发表于 2016-3-16 08:49
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1232
在线时间
1017 小时
注册时间
2011-4-30
帖子
1516
3
发表于 2016-3-16 11:56:31 | 只看该作者
本帖最后由 汪汪 于 2016-3-16 12:01 编辑

原来的存档不会自动保存吗?


JAVASCRIPT 代码复制
  1. //储存内容的数组
  2. var map = []
  3. //保存
  4. map[id]= JsonEx.stringify($gameMap)
  5. //读取
  6. $gameMap = JsonEx.parse( map[id])
  7. //缺点,把角色那些信息也会保存........... ?
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-1 07:08

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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