OcRam - Passages plugin (MZ/MV)

● ARCHIVED · READ-ONLY
Started by OcRam 528 posts Page 25 of 27 View original ↗
  1. jcruise said:
    I had a similar issue, and I fixed it with this script call:

    $gameMap._events[$gameMap.LastSpawnedEventID()]._higherLevel = false;
    I noticed this var too, but for an obscure reason it doesn't work (it only works when I use the plugin command)

    When I try to change the _higherLevel variable like you did, it doesn't work, but mysteriously when I add $gameMap.LastSpawnedEventID() as a possible parameter for the floor_level like if I specify 1000 as event ID, it will take the last spawned event (implying I edited the code) it works :LZSskeptic:
  2. @Kirby44 the one I give is used in a scriptcall.
    but if that doesn't work either as it isn't parsed, only @OcRam might
    know the answer, if its a bug or need a compability patch, he should
    knows it.

    he might be busy as well for other plugins, creating, fixing, extending.
    so I hope he can answer you.

    depending on the plugin (YEP, Galv, or another one) which can help
    dig to the problem.
  3. 1668734884055.png
    Somebody please help me!
  4. @AnnoyingDog please press F8 or F12 and screenshot the console log.
    maybe your event as well where it crashed.

    as "undefined" is something you didn't add or removed while still reading it.
    so the object don't exist.
  5. Hi, I was coding a quick "Interaction balloon" for my game, and Passages plugin seems to interferate somehow with balloon animations.

    When I finally tested it, I noticed that the balloon restarts a few frames after being started for the first time. I made sure the "wait" instruction was checked, and even added a few "wait" commands in my common event. After alot of investigation. It looks like disabling the Passages plugin solves the problem.

    The code is simple, walking next to an event triggers a switch, leaving it will disable it. I also made sure that the actual function that enables/disables the switch also only occurs once.

    My code is attached to this post. To reproduce the glitch you can create a fresh project with Passages plugin and my file, then put an event with an "Action Button" Trigger, like a chest, for example.

    Then create a parallel common event like this :

    1673623303606.png

    You should notice that the balloon is staggering during the first loop like this :



    Then, disabling Passages plugin solves the problem.


    EDIT : I made several tests to understand what is exactly causing this behavior. It happens ONLY when the ballon is called by event command, when Game_Interpreter.prototype.command213 is the caller. Any other means of summoning a balloon will work.
  6. Hi OcRam, I was considering using your MZ passability plugin in a commercial title I'm developing for, but the Core plugin causes a crash if you try loading a save game after installing it. Is there any way it can be modified to create missing objects at runtime to prevent save issues?
  7. Trihan said:
    Hi OcRam, I was considering using your MZ passability plugin in a commercial title I'm developing for, but the Core plugin causes a crash if you try loading a save game after installing it. Is there any way it can be modified to create missing objects at runtime to prevent save issues?
    Thank you for the message,

    Sure Core can be modified. I just need more info about which objects we are talking about.

    @Kirby44 I'll check issue you mentioned when I get some dev time.
  8. OcRam said:
    Thank you for the message,

    Sure Core can be modified. I just need more info about which objects we are talking about.

    @Kirby44 I'll check issue you mentioned when I get some dev time.
    Basically anything that's created upon starting a new game and referenced by the plugin during runtime. The main dev needs plugins that can be inserted at any point in development without affecting any existing saves so that the playerbase isn't forced to start again when we update.
  9. Trihan said:
    Basically anything that's created upon starting a new game and referenced by the plugin during runtime. The main dev needs plugins that can be inserted at any point in development without affecting any existing saves so that the playerbase isn't forced to start again when we update.
    Thank you so much for this feedback!

    I've added "Save without plugins installed then load that file after plugins are installed" to my test protocols! :)
  10. OcRam said:
    Thank you so much for this feedback!

    I've added "Save without plugins installed then load that file after plugins are installed" to my test protocols! :)
    Excellent. If you can provide me with a version of the passability plugin for MZ that supports existing saves it'll be pretty much an instabuy for our solution to creating bridges.
  11. Trihan said:
    Excellent. If you can provide me with a version of the passability plugin for MZ that supports existing saves it'll be pretty much an instabuy for our solution to creating bridges.
    Hi,

    Ok now I have tested save before ANY OcRam was installed. Then installed all OcRam -plugins and loaded said save file without any issues.

    As hot fix: In OcRam core replace "Game_System.onAfterLoad" function with code below (I will include this in next update):
    JavaScript:
        this.extend(Game_System, "onAfterLoad", function () {
            OcRam._justLoaded = true;
            _this["Game_System_onAfterLoad"].apply(this, arguments);
            if (Imported.OcRam_Audio && !this._bgsBuffers_OC) this._bgsBuffers_OC = [];
            AudioManager.playBgs2(this._bgsOnSave2);
            AudioManager.playBgs3(this._bgsOnSave3);
            if (Imported.OcRam_Followers) {
                if (!this._currentMembers) this._currentMembers = $gameParty._actors;
                if (this._followersFollow === undefined) this._followersFollow = true;
            } if (Imported.OcRam_Events) {
                if (!this._liftPullPushEvents) this._liftPullPushEvents = [];
                if (!this._spawnedEvents) this._spawnedEvents = [];
            } if (Imported.OcRam_NPC_Scheduler) {
                if (!this._scheduledEvents) this._scheduledEvents = [];
                if (!this._linkedSchedules) this._linkedSchedules = [];
            } OcRam.plugins.forEach(p => { OcRam[p].loadPluginData(this); });
        });

    Please let me know if this solved issues you had. Didn't notice any direct issues with Passages though...


    EDIT: Sorry forgot these also...
    JavaScript:
        this.playBgs2 = (bgs, pos) => {
            if (!bgs) { this.stopBgs2(); return; }
            if (this.isCurrentBgs2(bgs)) {
                this.updateBgsParameters2(bgs);
            } else {
                this.stopBgs2();
                if (bgs.name) {
                    this._bgsBuffer2 = this.createBuffer("bgs/", bgs.name);
                    this.updateBgsParameters2(bgs);
                    this._bgsBuffer2.play(true, pos || 0);
                }
            }
            this.updateCurrentBgs2(bgs, pos);
        };
    
        this.playBgs3 = (bgs, pos) => {
            if (!bgs) { this.stopBgs3(); return; }
            if (this.isCurrentBgs3(bgs)) {
                this.updateBgsParameters3(bgs);
            } else {
                this.stopBgs3();
                if (bgs.name) {
                    this._bgsBuffer3 = this.createBuffer("bgs/", bgs.name);
                    this.updateBgsParameters3(bgs);
                    this._bgsBuffer3.play(true, pos || 0);
                }
            }
            this.updateCurrentBgs3(bgs, pos);
        };
  12. OcRam said:
    Hi,

    Ok now I have tested save before ANY OcRam was installed. Then installed all OcRam -plugins and loaded said save file without any issues.

    As hot fix: In OcRam core replace "Game_System.onAfterLoad" function with code below (I will include this in next update):
    JavaScript:
        this.extend(Game_System, "onAfterLoad", function () {
            OcRam._justLoaded = true;
            _this["Game_System_onAfterLoad"].apply(this, arguments);
            if (Imported.OcRam_Audio && !this._bgsBuffers_OC) this._bgsBuffers_OC = [];
            AudioManager.playBgs2(this._bgsOnSave2);
            AudioManager.playBgs3(this._bgsOnSave3);
            if (Imported.OcRam_Followers) {
                if (!this._currentMembers) this._currentMembers = $gameParty._actors;
                if (this._followersFollow === undefined) this._followersFollow = true;
            } if (Imported.OcRam_Events) {
                if (!this._liftPullPushEvents) this._liftPullPushEvents = [];
                if (!this._spawnedEvents) this._spawnedEvents = [];
            } if (Imported.OcRam_NPC_Scheduler) {
                if (!this._scheduledEvents) this._scheduledEvents = [];
                if (!this._linkedSchedules) this._linkedSchedules = [];
            } OcRam.plugins.forEach(p => { OcRam[p].loadPluginData(this); });
        });

    Please let me know if this solved issues you had. Didn't notice any direct issues with Passages though...


    EDIT: Sorry forgot these also...
    JavaScript:
        this.playBgs2 = (bgs, pos) => {
            if (!bgs) { this.stopBgs2(); return; }
            if (this.isCurrentBgs2(bgs)) {
                this.updateBgsParameters2(bgs);
            } else {
                this.stopBgs2();
                if (bgs.name) {
                    this._bgsBuffer2 = this.createBuffer("bgs/", bgs.name);
                    this.updateBgsParameters2(bgs);
                    this._bgsBuffer2.play(true, pos || 0);
                }
            }
            this.updateCurrentBgs2(bgs, pos);
        };
    
        this.playBgs3 = (bgs, pos) => {
            if (!bgs) { this.stopBgs3(); return; }
            if (this.isCurrentBgs3(bgs)) {
                this.updateBgsParameters3(bgs);
            } else {
                this.stopBgs3();
                if (bgs.name) {
                    this._bgsBuffer3 = this.createBuffer("bgs/", bgs.name);
                    this.updateBgsParameters3(bgs);
                    this._bgsBuffer3.play(true, pos || 0);
                }
            }
            this.updateCurrentBgs3(bgs, pos);
        };
    I'll give that a shot and report back.
  13. Hi Ocram, I think we have a problem on MV. I can reach an event set on "player touch" trigger by pressing action button from near tiles, even if the event is "below the player". I made a new project with only Ocram Passage plugin at last version. If plugin is disable the problem is gone.
    If plugin is active the problem came back. Strange thing: the first map auto created with new project it's not affected from this problem.
  14. Hi, complete newbie here, so I'm sorry if this is a dumb question. I'm trying to implement a ledge-hopping mechanic which requires events to be placed over cliff edges. This means that some of the events end up on a lower region tile (16) while the player is still on a higher floor.

    I believe the <higher> comment tag should allow me to interact such events, but it doesn't seem to do anything. The <trigger_always> tag does allow me to interact with them, but then they can also trigger once I'm on the lower floor, which is a bit awkward.

    Am I doing something wrong? Or, perhaps, is there a comment tag that does the reverse of <trigger_always>, only triggering the event from a different floor? Thanks.

    UPDATE:
    Nevermind. I played around with the event priorities and triggers a bit and found out that I can place the events on the player's tile, rather than next to him. Everything seems to be working now. Like I said, newbie here :wink:.

    UNRELATED UPDATE:
    I actually encountered a slight glitch with this plugin. Not sure if it's been mentioned yet, or if there's any way to fix it. On looping maps, once you pass the point where the looped portion is no longer visible, every B-E tile marked with region 18 flickers, revealing only the A tiles beneath them. In some instances, you can even stand still at such a point, then those tiles stay hidden until you take another step.

    I suppose I could adjust my map so that there are no passages within viewing distance of the loop point, but that's a bit less than ideal. Anyways, thanks again for this otherwise very useful plugin.
  15. After playing some time, at a time I still didn't manage to catch, my followers sprites suddenly stop updating themselves.

    Meaning that if I change the opacity of the player, the player's opacity will change, but not the followers. If I change the scale of the player, the player's scale will change, but not the followers.

    If I mistakenly save after the bug occurs, it's done. The followers are bugged forever. Even after disabling all the plugins, the followers won't update anymore. Then I start a new game and can't reproduce the bug until it happens randomly again.

    So i dug through all the plugins, and after a long search I've found that the follower's sprite are replaced by the Passages plugin via the Sprite_Character_OC


    Changing the opacity property of a follower located in the _characterSprites array does nothing, but changing it in the one located in _layerContainer_OC works. Problem is, at some time it stopped updating and I don't know why, when, and how.

    Do you have any clues ?

    EDIT : Knowing that Passages plugin was the cause of the bug helped me debug the case further and I finally found how to reproduce the bug. If your character stands on a tile marked with an underpass Region ID (in my case 16) when transferring to another map, this is when the follower sprites gets corrupted. At least, that's what I thought. In reality, the bug occurs specifically when jumping (via move route) on an Overpass Region ID (17 in my case)
  16. 1687999132518.png
    I'm having a slight issue with characters transferring to a cover region ID they appear under the bridge instead of walking over it like they normally do.
    1687999434725.png
    I've tried the OCRam Passages plugin command to set the floor level, but it doesn't solve the issue either. I even made sure that region ID is set to 18 before transfer.
  17. I seem to have a confliction issue with QMovement and/or QM+CollissonMap. If I place this plugin below those two it works perfectly, but, I suddenly cannot interact with any object (be it a simple event that transports me to another area or a sprite). If I place it above those two plugins, it just doesnt work period.

    Not sure if the layers are interfering with the collisions.
  18. Hi everyone,

    I just finished one of my personal projects, and I'm currently having an issue with the first map using this plugin. The map is set up in such a way that Avery's bridge tileset is over two layers of cliffs, where you are able to go under the bridge on both layers. To get up to the third layer, you jump over a box. The issue that I'm dealing with is that when you cross the bridge, you float over events and tiles on the highest part of the cliff, so I can't activate the events around it.

    I tried using the plugin commands, changing the option "Use automatic floor levels," adjusting the region IDs, adjusting the desert tilesets, etc., and nothing has worked. The images I'm adding to this are, respectively, the map itself, the map with region ids and events, the plugin settings, and the way I configured the tileset. I had done the region IDs like this because it was the only way I was able to get it to work, but I wouldn't be surprised if that is the issue.

    I'm unsure if this issue stems from the RTP tileset, the way I configured it, the region IDs, or the tileset of the bridge itself. If any other information is needed I'll gladly provide it. Thanks!
  19. @LJay24 your bridge tileset looks a bit weird and incorrect.
    railing should be X and not going up, cener to walk as normal.
    while you use the region numbers, it will draw automatically above
    when you walk under it, and below when on top.
  20. hi! sorry if this is a dumb question, or if it's been answered before, but i've been encountering this:
    1750346630604.png
    and i'm not sure how to solve it? i havent altered the game in anyway beyond having a plugin that lets me used WASD controls instead of the arrow keys, and im not well-versed enough in coding to pinpoint the issue in javascript. if there's anything i need to do, please let me know! thanks in advance.