Tile Control Plugin for MZ

Tyruswoo.com Forums RPG Maker MZ Tile Control Plugin for MZ

  • This topic has 19 replies, 3 voices, and was last updated 1 year ago by Lacke.
Viewing 20 posts - 1 through 20 (of 20 total)
  • Author
    Posts
  • #8301
    BrentBAM
    Participant

    Hi Tyrus.

    I’m a new member. I am using your Tile Control plugin in MZ which works well.

    It works in changing the tiles. However, one problem is that tiles that I change to that are not normally passable become passable.

    (meaning I can walk over the tiles when I’m not supposed to).

    Is there a setting I’m overlooking?

    Appreciate any help.

     

    BrentBAM

    #8365
    Tyruswoo
    Keymaster

    Thank you for the bug report!  I will ask our lead coder, McKathlin, to look into this!

    Also, be sure to check for the following:

    • Plugins that use regions to affect movement, such as a region restriction plugin.  Regions would remain the same, even if tiles are changed.
    • Setting “Through On” for the player would also allow movement through tiles.
    • Ensure that your map’s tileset has the new tiles with the correct passability.  The tileset passability can be checked in the Database.

    Please let me know if any of these solutions help, or if you found a different solution.

    To help us further assist you, please create a small project demonstrating the bug, with only the Tile Control plugin installed, and email the project to support@tyruswoo.com.  Thank you!

    #8423
    BrentBAM
    Participant

    Hi Tyrus.

    I tried those options but it did not appear to fix it.

    It seems that whenever I change any tile over a walkable floor, the new tile is always walkable too – even if the passability is not possible to move on.

    It think what is happening is that it is keeping the passability of the original tile no matter what. And it happens when I disable all other plugins as well.

    Would there be another way to fix this?

    #8429
    Tyruswoo
    Keymaster

    Hi Brent,

    Our lead coder, McKathlin, has tried to reproduce the bug, but has not yet reproduced it.  Once she is able to reproduce the bug, she will be able to find anything that needs to be fixed, or we will be able to provide instructions on how you can fix it in your project.

    Please send us a copy of a small project reproducing the bug.  Or, you can send us a copy of your project where you first encountered the bug, if you like, but also create a save file at the location of the bug in the project, and tell us which save file to use to find the problem.  You can send any file to support@tyruswoo.com.

    We will help find and fix the problem.  A copy of a project containing an example of the bug will help us find a solution.

    Tyruswoo

    #8436
    Tyruswoo
    Keymaster

    Here is another possible solution to consider:

    Each tile location actually contains multiple tiles at various z levels including z0, z1, z2, and z3.  It is possible that your project has a tile that affects movement but is either invisible or covered by one of the tiles at a higher z level.  So checking which tiles are at each z level is important.

    To check tiles at each z level, first make sure the Plugin Manager has the parameter “Tile Info on OK Press” set to true.

    Tile Info on OK Press

    Tile Control includes a “Tile Info on OK Press” parameter, which can be set to true using the Plugin Manager.

    Then, playtest your game, and make sure you open your game’s console window. You can open the console window by pressing the F12 key while playtesting.

    RPG Maker MZ Console Window. Open the console window by pressing the F12 key.

    RPG Maker MZ Console Window. Open the console window by pressing the F12 key.

    Now, go to the location where the tiles will be changed, with the player leader character directly on top of the tile location to be changed.  Press Ctrl+Enter to get the tile information at that location.

    While standing on the location of interest, hold Ctrl and press Enter to get the tile information at that location.

    While standing on the location of interest, hold Ctrl and press Enter to get the tile information at that location.

    As you can see, there is a plethora of data for each tile, including the flags that determine movement properties.  Although the movement properties are difficult to interpret from the flags, you can see the tile codes in green.  Check your tileset to see what movement properties are associated with each of the tiles listed.

    This technique is likely to give you some clues to the problem, especially if you check the tiles both before and after the tile change.

    #8437
    BrentBAM
    Participant

    Hi Tyrus!

    I have made an example project.

    Can you download it and take a look?

    I appreciate it if you could. In my sample game you just need to walk to the star area to trigger the cutscene.

    It will show you that you can walk over the gap tiles which should be unpassable.

     

    Here is the link to my project file:

    https://drive.google.com/file/d/1T0GZeTNqWulxhQ8NE3xBUu6mzGNKBUFA/view?usp=sharing

     

    Edit: I’ll take a look at that debugging info you gave me as well to see if I find out anything.

     

    #8438
    Tyruswoo
    Keymaster

    Hi Brent,

    I sent you a request for access to the project file.

    Tyruswoo

    #8439
    BrentBAM
    Participant

    Hi Tyrus.

    Okay I think I allowed you to.

    Let me know if that didn’t work.

    #8440
    Tyruswoo
    Keymaster

    Hey Brent,

    I accessed the project.  I will test it out, and if needed, I will have McKathlin test it as well.

    #8441
    BrentBAM
    Participant

    Okay. It’s very appreciated.

    #8444
    Tyruswoo
    Keymaster

    I found two components of this problem:

    • An update to Tile Control is currently in development, which fixes a portion of this problem.
    • Even with the update to Tile Control, there is still an incompatibility between AltimitMovement and Tyruswoo_TileControl. Disabling the AltimitMovement plugin results in Tile Control working as expected.

    Most level designers would initially say you need to choose either Tyruswoo_TileControl or AltimitMovement, and disable whichever plugin you do not choose. However, I am sure you would like to keep both. So let’s design a solution using events.

    Solution Using Events:

    Create a variable called “Pit progression” and have it match the regions in which the pit exists. For example, at the end of the event that runs Tile Control plugin commands, also include a Control Variables event command that increases the “Pit progression” variable’s value.

    AltimitMovement and Tile Control collision fix using events.

    AltimitMovement and Tile Control collision fix using events, showing the location of events where pits will appear using Tile Control.

    The collision events only activate when the “Pit progression” variable is increased.

    Example event showing how to use events to fix the collision incompatibility with the AltimitMovement and Tile Control plugins.

    Example event showing how to use events to fix the collision incompatibility with the AltimitMovement and Tile Control plugins. Note that the event priority must be “Same as characters.”

    If the pit extends further, the variable can be increased to a higher value. Matching the value with regions where Tile Control has created pits would be a convenient way to control the variable.

    Ideal Solution:

    1. After the new update to Tile Control is released, you get the update.
    2. You also need an update to AltimitMovement that recognizes the possibility that maps may change dynamically by means of a tile-altering plugin. One possible way the plugin designer might fix the issue is by adding a script that allows you to recalculate the map’s AltimitMovement collision bounds.

    I hope the eventing solution will be sufficient at this time. I do recommend informing the creator of AltimitMovement of the incompatibility between AltimitMovement and Tile Control.

    #8445
    BrentBAM
    Participant

    Hi Tyrus.

    Okay, I understand the problem. Thanks so much for getting back so fast.

    I will try using the events to block collision method you have listed.

    That might be a temporary fix.

    I had another question though – would it be possible to ‘refresh’ the tiles with a script call to update their passability?

    Thanks again though.

     

    #8446
    Tyruswoo
    Keymaster

    Good news!

    I created a patched version of AltimitMovement for you!  You will also need Tyruswoo_TileControl v2.0 or higher for this to run.  See your email for the downloads.

    In the coming weeks, Tyruswoo_AltimitMovement will be added as a post on this site, for others who may be interested.

    Here is how you install:

    1. Download the files for Tyruswoo_AltimitMovement (v0.5) and Tyruswoo_TileControl (v2.0) and place both files in your project’s .js folder.
    2. Open your project’s Plugin Manager.  Deactivate AltimitMovement and in its place use Tyruswoo_AltimitMovement.
    3. Also in the Plugin Manager, make sure you enter into Tyruswoo_TileControl so that it updates to v2.0.
    4. Now, you can edit events.  In any event that runs Tile Control, at the end of the event’s commands, add a plugin command from Tyruswoo_AltimitMovement, the “Recalculate Collision Mesh” plugin command.

    Now, everything should work!  After tiles are changed, be sure to use the “Recalculate Collision Mesh” plugin command to update the map’s collision locations.

    Edit: I tried to send you an email with these files, but the email wasn’t working.  So instead, I sent you a private message through this site.  Please see your messages for the downloads.

    #8449
    BrentBAM
    Participant

    Tyrus! That worked perfect! Thanks so much!

    Appreciate your quick work in fixing it all too.

    #1 MZ programmer!

    You have my vote! 🙂

    #8450
    Tyruswoo
    Keymaster

    I’m glad it is working well with your project!  Wishing you the best for your game!

    #37224
    Lacke
    Participant

    Hello !
    Would it happen this version of Altlimit Movement also correct the incompability issue with TileD integration by any chance ?

    #37229
    Tyruswoo
    Keymaster

    Hey Lacke,

    Thanks for your interest, and sorry it took me awhile to get back to you about Altimit Movement and TileD.  If you let me know how to reproduce the incompatibility issue you noticed between Altimit Movement and TileD, then I can check and see if this Tyruswoo Altimit Movement patch fixes the issue.

    #37266
    Lacke
    Participant

    Hey !
    Thanks for your answer.
    No worries, I’m also late as it seems the mail notification went into spams >:c
    Reproducing should be simple enough :
    • Activate Altlimit plugin
    • Activate Tiled plugin (https://visustella.itch.io/tiledpluginmz)
    (• Create a map in TileD, any would do)
    • Playtest and error should happens directly (”undefined”)

    I have noticed there is some TileD related code in Altlimit but i have no idea what it is about.
    If needed I can send a sample project showing the problem if you have trouble reproducing it.
    Thanks again.

    (I’m a little confused where I was supposed to answer as I got also the same message in DMs it seems :D)

    #37267
    Tyruswoo
    Keymaster

    Hi Lacke,

    I checked on the incompatibility issue.  The crash is occurring due to the difference in the VisuStella Tiled plugin’s code for the function Game_Map.prototype.checkLayeredTilesFlags resulting in checking Tiled data, which is much different than RPG Maker tile flags.  This occurs at VisuMZ_5_TiledMZ.js code file at line 2196 in the code.

    We can get the game to run by adding the following code to the AltimitMovement plugin (or any other plugin):

    Game_Map.prototype.checkLayeredTilesFlags = function(x, y, bit) {
         return false;
    };

    This allows the game to run, and it is possible to move around the map with the mouse in the style of AltimitMovement, with pixel movement.  (Of note, turning off flags will make bush appearance not work, and shopping counters won’t work, ladders won’t work, and damage floor won’t work.)

    Note: At this point, it also becomes clear that another plugin, the VisuMZ_1_EventsMoveCore.js plugin, is also not designed to work with AltimitMovement.  With both plugins active, holding two directional keys should result in diagonal movement, but only results in cardinal movement.  However, the mouse movement still can handle diagonals as would be expected with AltimitMovement.  When we turn off VisuMZ_1_EventsMoveCore.js, then AltimitMovement diagonal key presses work again.

    Back to the incompatibilities between VisuMZ_5_TiledMZ and AltimitMovement.  Here are the problems I’ve now noted:

    • With the flag detection off, we are able to move around, but the altitude changes (z level changes) are no longer detected.  This makes all the altitude features of VisuMZ_5_TiledMZ non-functional.
    • Reflections and mirrors work, but do not expect the player to stand at locations other than standard tile coordinates.  The player’s reflection can appear and disappear in ways that appear wrong.
    • VisuStella “Objects” placed in TileD have bounding boxes that are not expecting the player to be able to move as close as is possible with AltimitMovement.

    Most other features of VisuMZ_5_TiledMZ appear intact.  For example, tile blending looks right, and the player can walk over and under tiles correctly (such as by walking under bridges).  However, the flags that tell the player to change altitude just don’t happen, so the player is stuck on the initial altitude the player has when entering a map.

    Since VisuStella have made VisuMZ_5_TiledMZ an open-source plugin, I was able to look at its code. However, there is no good work-around to get these plugins to work together.  For VisuMZ_5_TiledMZ to work with AltimitMovement, a major overhaul of VisuMZ_5_TiledMZ would be needed.

    At this point, there appear to be a few possible options for you, and none of them result in the plugins working together for at least the time being:

    1. Choose a plugin to use: AltimitMovement or VisuMZ_5_TiledMZ.
    2. Look to see if there is another pixel movement plugin you can find elsewhere that does work with VisuStella plugins.
    3. Ask VisuStella to consider updating VisuMZ_5_TiledMZ to also work with AltimitMovement.
    4. Ask a plugin programmer to make a new pixel movement plugin, or to make a new plugin with the features of VisuMZ_5_TiledMZ.

    Altitude, reflections, etc., are cool ideas for features.  So is pixel movement.  However, my team isn’t able to add such features to our team’s plugins at this time (though we did adapt AltimitMovement to work with Tile Control).  We do have similar ideas for altitude, etc., but I can’t say when we will be able to work on those ideas.  We would be creating our own features from scratch.

    #37268
    Lacke
    Participant

    Thank you for your detailed answer ! This explains quite a lot !
    It unfortunately confirms what I kind of guessed, that it was way more complicated than just turning off/on or adapt a flag/function or two on what already exist.
    But it was also the reason why I hoped, maybe, Tile control would take priority in a way. Ignorant as I am on the coding side it is, haha.
    I will consider all the possible options 🙂

    Thank you for your time and hard work on this issue !

Viewing 20 posts - 1 through 20 (of 20 total)
  • You must be logged in to reply to this topic.