设为首页收藏本站同能贴吧 切换语言 繁体中文
开启辅助访问 切换到窄版
扫描二维码关注官方公众号
返回列表
+ 发新帖
查看: 84|回复: 0

[制作教程] About Parallel/Autorun+SaveGame+EditProject+LoadGame

[复制链接]
累计送礼:
0 个
累计收礼:
1 个
  • TA的每日心情
    开心
    前天 04:10
  • 签到天数: 209 天

    连续签到: 2 天

    [LV.7]常住居民III

    4455

    主题

    864

    回帖

    2万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    VIP
    7
    卡币
    22917
    OK点
    16
    推广点
    0
    同能卷
    50
    积分
    28266

    灌水之王

    发表于 6 天前 | 显示全部楼层 |阅读模式
    First and foremost, I'm not sure if this behavior is only for Ace.

    Second, this is more of a "BEWARE" kind of thing

    So let's get it on.

    Here's the thing:

    If you have parallel/autorun events on a map, then you use Erase Event to erase them, then used the save command and then quit the game, then opened it up on RM and then edit (or no-edit) then hit save button then start the game and load the old file, the parallel/autorun event will re-run.

    Why? Because DataManager re-calls the Game_Map update method when the internal version of the game on the save file is different from the current internal version of your game.

    So, this problem will probably only appear during development, and on releasing patches I think. For most games that won't get any updates, you won't experience it. And it's easy to counter too

    The most effective method is of course, prevention. basically don't allow saving on maps that has autorun/parallel events that uses erase event.

    Now if you need to, there are some workarounds. One would be "temporary self switches", which is basically using a second page + self switches, but you reset the self switch once you leave the map. That way, once you return to the map, it will still run but when you load from a different version, it won't. The method I used to achieve this is scripted (via aliasing the setup method of Game_Map), and I'm not sure if resetting self switches before a transfer event command will work flawlessly.

    For the method I used:

                    Code:        
    class Game_Map  alias setup_reset_switch setup  def setup(map_id)    setup_reset_switch(map_id)    @id = 0 if @id.nil?    if not @id == map_id      @id = map_id      $game_self_switches[[some_map_id,eventid,self_switch]]=false      #do that for each self switch that needs to be reset      #so like      $game_self_switches[[1,1,"A"]]=false      # this will reset the self switch A of map 1's event 1    end  endend




    本贴来自国际rpgmaker官方论坛作者:Engr. Adiktuzmiko处,因国际论坛即将永久关站,为了存档多年珍贵资料,署名转载到本论坛存档,由于官方帖子为英文原帖,需要中文翻译请点击论坛顶部切换语言为中文就可以将帖子翻译成中文浏览,方便大家随时查看,原文地址:https://forums.rpgmakerweb.com/threads/about-parallel-autorun-savegame-editproject-loadgame.25699/
    天天去同能,天天有童年!
    回复 送礼论坛版权

    使用道具 举报

    文明发言,和谐互动
    文明发言,和谐互动
    高级模式
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    简体中文
    繁體中文
    English(英语)
    日本語(日语)
    Deutsch(德语)
    Русский язык(俄语)
    بالعربية(阿拉伯语)
    Türkçe(土耳其语)
    Português(葡萄牙语)
    ภาษาไทย(泰国语)
    한어(朝鲜语/韩语)
    Français(法语)
    关闭

    幸运抽奖

    社区每日抽奖来袭,快来试试你是欧皇还是非酋~

    立即查看

    聊天机器人
    Loading...

    QQ|Archiver|手机版|小黑屋|同能RPG制作大师 ( 沪ICP备12027754号-3 )

    GMT+8, 2026-7-14 15:40 , Processed in 0.099027 second(s), 52 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

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