OcRam MZ -plugins

● ARCHIVED · READ-ONLY
Started by OcRam 404 posts Page 14 of 21 View original ↗
  1. Hello fellow RPG Makers!

    This is MAJOR update and a lot of OcRam -plugins have been updated to support new OcRam_Input_EX plugin! OcRam_Input_EX will let you utilize input devices to the MAX!

    Bind common events for L1/R1, L2/R2, Select + Start, Analog stick L/R 'PRESSED' events (or use OcRam built-in functionalities)!
    Use RIGHT ANALOG STICK to look around - optionally even while moving! (never know what's behind your back!)
    Let gamepads RUMBLE and allow the player to use NEW 'Scene_Input_Options' to remap or test input devices!!!

    Also mouse input has been extended to support mouse extra buttons and wheel up/dow/left/right! Bind Common Events to them and use them how you like (or use OcRam built-in functionalities)!

    And let's not forget about keyboard... Yes now you may have 2 layouts (with new buttons to match extended gamepad buttons!) and let player remap them to any buttons desired! And if you use OcRam_Local_Coop, layout 2 can be used by another player!!!

    Input_EX screen shots
    OcRam_Input.png
    OcRam_Input2.png

    Okay enough about Input devices... Ever thought about you'd need map edits in-game?

    I've had several maps for one map to reflect current (or past) game events such as:
    - Water is blocking some areas I'd need to enter
    - Or opposite to above - water is needed somewhere, but water flow is blocked somewhere...
    - Huge bridge must be repaired and it would have been tedious job with event graphics (not to mention about passabilities)...
    - Needed to add more buildings to the town as game progresses?
    - Forest full of vicious monsters and after monsters are no longer problem road can be built accross that forest to get another side
    - Only imagination is the limit for these... RE-Shape your realm (maps) way you like it and as often you like it!

    For me - this plugin sure saves a lot of map slots (or playing around with event graphics and passabilities)!

    OcRam_Map_Editor allows you to autotile (and do 'normal' B-E tiling) maps in-game!
    In addition you may set autosave/load 'ON' to automatically save any map edits made!
    TIP: Make maps in RPG Maker editor as you want them to be in its initial state.

    Opposite to Input_EX this plugin got its first release after few hours I started to make this... Thus OcRam_Map_Editor is free-to-use with credits!

    See more about OcRam_Map_Editor here: Click this link


    BONUS FOR MV USERS! THIS PATCH INCLUDES "SPEAKER NAME" FEATURE! (see RETRO'ed demo -project)


    There are lot of other changes also, which are described in release notes below.

    Release notes
    Core v1.16
    • Removed 'D-Pad' plugin parameter as obsoleted. Replaced by far more superior OcRam_Input_EX!
    • Added 'fake console' in browsers where it doesn't exist!Base for extended Input.gamepadMapper
    • NEW plugin parameter: Screen width & height (ONLY FOR MV!)IN MV use <speaker>...</speaker> tag in MESSAGE field to 'simulate' speaker name as it is in MZ!
    Battle_Core v1.06
    • New plugin param to disable Actor Command Window (Credits to @BlueToo )
    Battle_Troops - No changes

    Time_System - No changes

    Weather_System v1.08
    Movement v1.11
    • RETRO plugin order check fix (for MV)
    Events v1.09
    • Support for diagonal 'EMotions' (remember: add ! suffix)
    • IN MV use <speaker>...</speaker> tag in MESSAGE field to 'simulate' speaker name as it is in MZ!
    Followers v1.09
    • Toggle cooldown no longer needed...
    • KB toggle actors now handled via default buttons 'pageup' and 'pagedown' which can be remapped with OcRam_Input_EX
    Audio - No changes

    Lights - No changes

    Layers - No changes

    Title_Shuffler - No changes

    Title_Info v1.01
    • RETRO plugin order check fix (for MV)
    Indicators v1.06
    • Fixed bug when spawned event bitmap was not yet loaded and/or if event update was called before that
    Passages - No changes

    NPC_Scheduler v1.05
    • RETRO plugin order check fix (for MV)
    Star_Tile_Fix - No changes

    Local_Coop v1.08
    • OcRam.Local_Coop.getDevicePlayer(device_index) and getPlayerDevice(player_number)
    • MAJOR REVAMP on key mapping to support OcRam_Input_EX! (and allows special keys such as TAB, ESC etc...)
    • Start / Select buttons are obsolete (handled in core)!
    • Leave game with "Start" + Confirm /w "OK"
    • "Keyboard2" parameter replaced with "KB2 key codes"
    • TIP: Use OcRam_Input_EX to let player remap all keys! "KB2 key codes" is obsolete if Input_EX is used.
    Map_Transfer - No changes

    Credits v1.01
    • RETRO plugin order check fix (for MV)

    Misc v1.01
    • NEW plugin parameter: Options max commands
    • Compatibility fix with OcRam_Input_EX
    • Fixed some bugs if map was terminated while on map damage popups were shown.
    • New plugin parameter: "Use custom cursor"
    • Add <title> tag to 'speaker name' to fade and center txt! \| waits for 3 frames/character and use \^ to auto close message.
    • IN MV use <speaker><title></speaker> tag in MESSAGE field to 'simulate' speaker name as it is in MZ!
    Char_Converter v1.00 - No changes

    Input_EX - NEW PLUGIN
    Features:
    • Time for gamepads to RUMBLE!
    • NEW 'Scene_Input_Options' to bind and/or test buttons and option to enable / disable gamepad rumble feature!
    • Available gamepad buttons: Action buttons (ABXY), L1/R1/L2/R2, Select/Start and analog stick press left/right
    • Axis mapping for 2 analog sticks (left and right)
    • Remapping can also enable 'analog' D-Pad (where available)
    • Enable RIGHT analog stick for looking around! (optionally even while moving!)
    • Extended amount of keyboard buttons (for L1/R1/L2/R2, Select/Start and analog press left/right)!
    • 2 different KB layouts! (layout 2 can be utilized by OcRam_Local_Coop)
    • Plugin parameters to customize all captions
    • Plugin parameter to disable touch and mouse input
    • Plugin parameter to disable keyboard input
    • Additional JS to enable/disable kb/gamepads/touchinput at anytime!
    • F1 for "help" >> Runs common event if you wish to enable this!
    • Auto disable gamepads where are too few buttons? (ie. joysticks with only 4 buttons isn't good thing if your project relies on shoulder buttons or select + start for example)
    Mouse input:
    • Mouse primary button = Move to cursor (or Interact / OK)
    • Mouse secondary button = Cancel / Menu
    • Scroll wheel up = 'L2' or Common Event
    • Scroll wheel down = 'R2' or Common Event
    • Wheel left (or Mouse extra button1) = 'L1' or Common Event
    • Wheel right (or Mouse extra button2) = 'R1' or Common Event
    • Wheel press (middle button) = 'Select' or Common Event (In OcRam_Events middle button is also used for 'throw'. Carried event prevents 'Menu' and 'Select' temporarely)
    Common events for all 'extra' buttons, which are:
    • Mouse extra buttons (1 and 2), Mouse wheel up/down/press,
    • L1, R1, L2, R2, Analog press left/right, Select and Start


    Map_Editor v1.02 - (First release was 2022/10/02)

    This plugin provides autotiling in-game for your RPG Maker projects! Enable autosave/load for edited map data with 1 plugin parameter!

    OR just do it with custom logics and disable autosave/load. Save map data with $gameMap.saveData() and load it with $gameMap.loadData()

    This plugin offers an "API" for you to edit maps in-game. All edits to the maps are made with JS calls. All data is saved per save file thus allowing different map data for each save file for the same map!

    NO MORE SEVERAL MAPS for the maps which needs some edits to it!

    This is very good to shape maps to reflect current game events such as:
    • Exploded bridges, buildings (after some event in-game) and if those exploded stuffs needs to be repaired - NO PROBLEM!
    • Water flow blocked by an obstacle and when it's removed water flows freely in areas it didn't flow earlier (or vice versa)
    • After forest has been cleared from monsters road can be built through it
    • Or maybe add some new building to the village at some point of game?
    • Edit heroes room after player gets trophies and rewards?
    • Only imagination is the limit for the all possibilities here!
  2. Skurge said:
    Hey mate, there are some plugins here I'm very eager to test out and see if I make use of them, from my understanding for free projects there isn't a fee involved but just credits to you, but on the otherhand when it comes to commercializing you'll need to purchase a license for these correct?

    As a side note i'm interested in using the time and weather system for project testing, i'm only really after a basic system that randomizes transitions of fog, light rain and heavy rain and of course clear but by using Visustella's weather effects for the presentation (i already have predefined effects on standby) what advice can you give me here?
    Thanks.
    Yup if you don't make any money with your project then OcRam -plugins are free to use.

    I don't know how Visu Weather effects work, but if they are used via plugin commands then it should be ok. Go to plugin settings open "Weather" >> [create weather >> give name, Plugin commands etc...]

    Important to remember also "Clear commands" that Weather System knows how to clear weather from all custom effects.
  3. OcRam said:
    Battle_Core v1.06
    • New plugin param to disable Actor Command Window (Credits to @BlueToo )

    Holy damn, I thought this had been forgotten and I was just going to find an in-house solution; I just tested it and it works marvelously. Thank you!
  4. I've also encountered something I can't figure out with the audio plugin, referring to your disco room in your demo you have lanterns emitting a fire bgs and it loops without lagging the game out like you would expect, but if I replicate the same plugin settings and events the event is infinitely looping and causing some serious game lag.

    (also working on weather as mentioned)

    Also found an issue with Ocram's core and Galv's spawn events plugin, for whatever reason when the two are active spawning does not occur, I'm no programmer but I was curious if you knew what the issue is.
  5. Skurge said:
    I've also encountered something I can't figure out with the audio plugin, referring to your disco room in your demo you have lanterns emitting a fire bgs and it loops without lagging the game out like you would expect, but if I replicate the same plugin settings and events the event is infinitely looping and causing some serious game lag.

    (also working on weather as mentioned)
    Thank you for the message,

    Without further info. Sounds like you are using "parallel" trigger in some event(s), badly handled parallel triggers will freeze game that's for sure.

    For example if "Play BGS" command is executed in every frame it may cause severe lag.
  6. OcRam said:
    Thank you for the message,

    Without further info. Sounds like you are using "parallel" trigger in some event(s), badly handled parallel triggers will freeze game that's for sure.

    For example if "Play BGS" command is executed in every frame it may cause severe lag.
    Wierd, I swear I had duplicated it beforehand and it was lagging out but it seems to be fixed now, I've been having this really annoying issue with MZ not updating my save progress during development but I'm glad this issue is resolved.

    I'm struggling a little however with the spawning issue once more, I had recently attempted to try Visustella's spawn commands within it's move route core plugin but that plugin is just riddled with collision issues with other plugins from different authors, not to mention the plugins are obfuscated which is making things virtually impossible to find the fault between them.
    Galv's spawn plugin in my opinion is a much more sophisticated and bares little issues, but I was wondering if you are able to find a fix on how to make galv's compatible with your variety of plugins.

    On a side note, you're misc plugin parameter 'pixel perfect' works nicely with regular windowed test play but full screen is horribly distorting sprites- I don't know why this is the case and I'm sure you would be the first to know why:

    Example:
  7. Skurge said:
    Wierd, I swear I had duplicated it beforehand and it was lagging out but it seems to be fixed now, I've been having this really annoying issue with MZ not updating my save progress during development but I'm glad this issue is resolved.

    I'm struggling a little however with the spawning issue once more, I had recently attempted to try Visustella's spawn commands within it's move route core plugin but that plugin is just riddled with collision issues with other plugins from different authors, not to mention the plugins are obfuscated which is making things virtually impossible to find the fault between them.
    Galv's spawn plugin in my opinion is a much more sophisticated and bares little issues, but I was wondering if you are able to find a fix on how to make galv's compatible with your variety of plugins.

    On a side note, you're misc plugin parameter 'pixel perfect' works nicely with regular windowed test play but full screen is horribly distorting sprites- I don't know why this is the case and I'm sure you would be the first to know why:

    Example:
    Thank you for the message,

    Glad that the lag problem was solved.

    OcRam_Events also provides event spawning, which is compatible with all OcRam -plugins. But what is the problem with Galv event spawning plugin?

    OcRam_Misc "Pixel perfect rendering" uses Bitmap "smooth" (false) property and Canvas "imageRendering" = "pixelated". Does "Pixel perfect rendering" work in OcRam demo -project for you?

    Possible reasons for "Pixel perfect rendering" not work:
    1. Some other plugin is overriding this feature (or some part of it)
    2. Browser doesn't support said features (there's not much I can do, if browser doesn't apply those as expected... but they should work on default NWJS both in MZ and in MV)
  8. OcRam said:
    OcRam_Events also provides event spawning, which is compatible with all OcRam -plugins. But what is the problem with Galv event spawning plugin?
    It's rather complicated and difficult to figure out the reason, but if Galv's spawn is on and VS Move route core are together along with another movement plugin I've been playing with from Sirlegna there's this wierd combination where events do not move or spawn, but when teleporting back to rooms with recorded spawns they begin moving, it's an awkward sequence i'm still trying to unravel.
    OcRam said:
    Possible reasons for "Pixel perfect rendering" not work:
    The pixel perfect rendering seems to look about the same with your demo, maybe it just looks badly pixelated with my own custom graphics, so far VS moveroute core's bitmap smoothing is the only one i that renders my graphics correctly but along with all the conflicts that thing has with everything else under the sun I can't get around it with other types.

    OcRam said:
    OcRam_Events also provides event spawning
    I'm interested in testing this out, what plugin have you hidden it in your massive library?
  9. Skurge said:
    It's rather complicated and difficult to figure out the reason, but if Galv's spawn is on and VS Move route core are together along with another movement plugin I've been playing with from Sirlegna there's this wierd combination where events do not move or spawn, but when teleporting back to rooms with recorded spawns they begin moving, it's an awkward sequence i'm still trying to unravel.

    The pixel perfect rendering seems to look about the same with your demo, maybe it just looks badly pixelated with my own custom graphics, so far VS moveroute core's bitmap smoothing is the only one i that renders my graphics correctly but along with all the conflicts that thing has with everything else under the sun I can't get around it with other types.


    I'm interested in testing this out, what plugin have you hidden it in your massive library?
    Like said OcRam_Events provides event spawning feature. In OcRam demo project when you throw and break those pots it spawns a treasure chest.

    OcRam_Events also provides event templates to streamline your frequently used events.
  10. Unfortunately the spawning feature lacks region destinations and such, assuming this may be edited at some point? I do like the variety of plugins you have :)
  11. Hello again, it appears that the Movement plugin can split a character between tiles, if aligned correctly, causing the player to get "stuck" and needing to back out of the position. For example, walking down a decline, aligned in the middle of the left edge of the walkable tile and the right edge of a non-passable tile. You can also do this left/right.

    This behavior, when combined with the Passages plugin creates an error when splitting a character between two tiles with different regions. For example:
    Screenshot 2022-11-15 at 4.41.18 PM.png
    Screenshot 2022-11-15 at 4.42.10 PM.png
    Walking right and in between the tiles creates an error. You can see in the blurred background where the character wound up: on top of the grey terrain divider for the incline.
    Screenshot 2022-11-15 at 4.43.20 PM.png

    I am happy to show the north/south situations where a character also gets stuck, but thought the subsequent Passages error might give you more to work from.

    Thanks for taking a look.
  12. In regards to your time system plugin -

    For my game, I only need the analog clock, weekday, weather and day phase, and the string "Day x" (x = number of days played, from 1 to 30). Is there a way to display "Day x" instead of listing the day/month/year, or just the day, etc?
  13. Skurge said:
    Unfortunately the spawning feature lacks region destinations and such, assuming this may be edited at some point? I do like the variety of plugins you have :)
    How does region destination feature work? Spawn event x to all regions with y?

    OMGerm said:
    Hello again, it appears that the Movement plugin can split a character between tiles, if aligned correctly, causing the player to get "stuck" and needing to back out of the position. For example, walking down a decline, aligned in the middle of the left edge of the walkable tile and the right edge of a non-passable tile. You can also do this left/right.

    This behavior, when combined with the Passages plugin creates an error when splitting a character between two tiles with different regions. For example:
    View attachment 245240
    View attachment 245241
    Walking right and in between the tiles creates an error. You can see in the blurred background where the character wound up: on top of the grey terrain divider for the incline.
    View attachment 245242

    I am happy to show the north/south situations where a character also gets stuck, but thought the subsequent Passages error might give you more to work from.

    Thanks for taking a look.
    Thank you for the report!

    To be honest this actually has been on my todo list for awhile now. I have countered this issue with map design. But now that someone else needs it, I will raise it's priority.

    Halcy0n said:
    In regards to your time system plugin -

    For my game, I only need the analog clock, weekday, weather and day phase, and the string "Day x" (x = number of days played, from 1 to 30). Is there a way to display "Day x" instead of listing the day/month/year, or just the day, etc?
    Under "Show clock in map" plugin parameter there's "Clock elements" parameter which allows you to choose elements shown in map clock. Also custom graphics can be used, so text "Day" can be drawn to BG image itself.

    But I will add plugin parameter to allow custom prefix/suffix to any text element.
  14. OMGerm said:
    Hello again, it appears that the Movement plugin can split a character between tiles, if aligned correctly, causing the player to get "stuck" and needing to back out of the position. For example, walking down a decline, aligned in the middle of the left edge of the walkable tile and the right edge of a non-passable tile. You can also do this left/right.

    This behavior, when combined with the Passages plugin creates an error when splitting a character between two tiles with different regions. For example:
    View attachment 245240
    View attachment 245241
    Walking right and in between the tiles creates an error. You can see in the blurred background where the character wound up: on top of the grey terrain divider for the incline.
    View attachment 245242

    I am happy to show the north/south situations where a character also gets stuck, but thought the subsequent Passages error might give you more to work from.

    Thanks for taking a look.
    Hello @OMGerm ,

    With the latest update I couldn't replicate this anymore o_O

    Basically what I describe below was the problem with 4-dir passages:

    Tileset setup
    4dir_passages.png

    In-game error previously was caused because character couldn't pass neither up nor down, but now it just works without errors...
    4dir-in-game.png

    Also tried with the same region setup as you described:
    passage_regions_4dir.png

    Are you using the latest version of all OcRam -plugins in use?
  15. OcRam said:
    Are you using the latest version of all OcRam -plugins in use?
    Hello sir, I am using the latest versions of your plugins: Core, Movement, and Passages. I am using 32x32 tiles in the latest version of MZ.

    No Regions:
    Screenshot 2022-11-20 at 2.12.55 PM.png

    Moving Down:
    Screenshot 2022-11-20 at 2.13.46 PM.png

    Stuck:
    Screenshot 2022-11-20 at 2.15.03 PM.png

    Terrain:
    Screenshot 2022-11-20 at 2.16.09 PM.png

    Same Issue as Before, with Regions:
    Screenshot 2022-11-20 at 2.19.40 PM.png

    Moving Right:
    Screenshot 2022-11-20 at 2.20.54 PM.png

    Instead of Getting Stuck, Error/Crash:
    Screenshot 2022-11-20 at 2.21.31 PM.png

    Terrain:
    Screenshot 2022-11-20 at 2.23.40 PM.png

    Plugins:
    Screenshot 2022-11-20 at 2.25.07 PM.png
    Screenshot 2022-11-20 at 2.25.50 PM.png
    Screenshot 2022-11-20 at 2.27.12 PM.png
  16. Noticed something that's a bit unavoidable to hear with Ocram audio.

    If you enter a room and have events using the 3D/distance/proximity (whatever you call it in this context) and the distance isn't immediately in the vicinity of a room you teleport in you briefly hear the soundbite crack/pop for a fraction of a second.

    It's not game breaking or anything-heck this is the most efficient plugin i've come across in this department for ambience but it is especially bad for my ears when that pop comes into play when entering maps.
  17. OMGerm said:
    Hello sir, I am using the latest versions of your plugins: Core, Movement, and Passages. I am using 32x32 tiles in the latest version of MZ.

    No Regions:
    View attachment 245510

    Moving Down:
    View attachment 245511

    Stuck:
    View attachment 245512

    Terrain:
    View attachment 245513

    Same Issue as Before, with Regions:
    View attachment 245514

    Moving Right:
    View attachment 245515

    Instead of Getting Stuck, Error/Crash:
    View attachment 245516

    Terrain:
    View attachment 245517

    Plugins:
    View attachment 245518
    View attachment 245519
    View attachment 245520
    Thank you for the report!

    I'll try to make project with 32 x 32 tiles (when I get time to do it) and see if that is the reason for this... Since on my demo/new project I can't replicate this (with the latest versions).

    Skurge said:
    Noticed something that's a bit unavoidable to hear with Ocram audio.

    If you enter a room and have events using the 3D/distance/proximity (whatever you call it in this context) and the distance isn't immediately in the vicinity of a room you teleport in you briefly hear the soundbite crack/pop for a fraction of a second.

    It's not game breaking or anything-heck this is the most efficient plugin i've come across in this department for ambience but it is especially bad for my ears when that pop comes into play when entering maps.
    Thank you for the report!

    I'll check this before next release.

    Edit: @Skurge I tried to replicate this without success. Can you send screen shots from event pages? And what RPG Maker core JS version you are using?
  18. OcRam said:
    Thank you for the report!

    I'll try to make project with 32 x 32 tiles (when I get time to do it) and see if that is the reason for this... Since on my demo/new project I can't replicate this (with the latest versions).


    Thank you for the report!

    I'll check this before next release.

    Edit: @Skurge I tried to replicate this without success. Can you send screen shots from event pages? And what RPG Maker core JS version you are using?
    Hello again. I created a new project with 48x48 tiles and duplicated the issue using the latest version of your Core, Movement, and Passages plugins. The MZ CoreScript is 1.5.0. I will attempt to duplicate this in your test project as time allows. Thank you!
  19. OcRam said:
    Thank you for the report!

    I'll try to make project with 32 x 32 tiles (when I get time to do it) and see if that is the reason for this... Since on my demo/new project I can't replicate this (with the latest versions).


    Thank you for the report!

    I'll check this before next release.

    Edit: @Skurge I tried to replicate this without success. Can you send screen shots from event pages? And what RPG Maker core JS version you are using?
    Hello one more time. Here are the issues being duplicated in your sample project:

    Moving Down:
    Screenshot 2022-11-24 at 5.12.19 PM.png

    Stuck:
    Screenshot 2022-11-24 at 5.13.15 PM.png

    Regions:
    Screenshot 2022-11-24 at 5.25.35 PM.png

    Moving Right:
    Screenshot 2022-11-24 at 5.27.37 PM.png

    Crash/Error:
    Screenshot 2022-11-24 at 5.28.05 PM.png
  20. OMGerm said:
    Hello one more time. Here are the issues being duplicated in your sample project:

    Moving Down:
    View attachment 245811

    Stuck:
    View attachment 245812

    Regions:
    View attachment 245813

    Moving Right:
    View attachment 245814

    Crash/Error:
    View attachment 245815
    Hello,

    Here's quick fix for this issue in case it needs to be fixed before my next big update. Edit OcRam_Movement.js -file and find: 'Game_CharacterBase, "moveStraight"' in file and replace whole function with code below. Please let me know if this fixed the issue in your project.
    JavaScript:
        this.extend(Game_CharacterBase, "moveStraight", function (d, recursive) {
    
            this._hvDir = false;
    
            if (_pixelMovementEnabled && !this._pixelMovementDisabled) { /* Override */
    
                const rx = roundUpSPX(this._x, d);
                const ry = roundUpSPY(this._y, d);
    
                const mx = this._x % 1;
                const my = this._y % 1;
    
                const ux = $gameMap.roundXWithDirection(rx, d);
                const uy = $gameMap.roundYWithDirection(ry, d);
    
                let suc = false;
    
                if (this.isCollidedWithEvents_OC(ux, uy, d, mx, my)) {
                    /* do nada... */
                } else {
                    suc = this.canPass(rx, ry, d);
                    if (suc) { // Glide for smoother movement
                        if (mx != 0 && (d == 8 || d == 2)) { // Moving vert
                            suc = this.canPass(roundUpSPX(this._x + 1, d), ry, d);
                            if (!suc && !recursive) {
                                this.moveStraight(4, true);
                                return;
                            } else { // Check "narrow" passages
                                if (!recursive && !this.canPass(rx, uy, 6)) {
                                    if (mx > 0.45) {
                                        this.moveStraight(6, true);
                                    } else {
                                        this.moveStraight(4, true);
                                    } return;
                                }
                            }
                        } else if (my != 0 && (d == 4 || d == 6)) { // Moving horz
                            suc = this.canPass(rx, roundUpSPY(this._y + 1, d), d);
                            if (!suc && !recursive) {
                                this.moveStraight(8, true);
                                return;
                            } else { // Check "narrow" passages
                                if (!recursive && suc && !this.canPass(ux, ry, 2)) {
                                    if (my > 0.45) {
                                        this.moveStraight(2, true);
                                    } else {
                                        this.moveStraight(8, true);
                                    } return;
                                }
                            }
                        }
                    } else {
                        if (mx != 0 && (d == 8 || d == 2)) { // Moving vert
                            suc = this.canPass(roundUpSPX(this._x + 1, d), ry, d);
                            if (suc && !recursive) {
                                this.moveStraight(6, true);
                                return;
                            }
                        } else if (my != 0 && (d == 4 || d == 6)) { // Moving horz
                            suc = this.canPass(rx, roundUpSPY(this._y + 1, d), d);
                            if (suc && !recursive) {
                                this.moveStraight(2, true);
                                return;
                            }
                        }
                    }
                }
    
                this.setMovementSuccess(suc);
    
                if (this.isMovementSucceeded()) {
                    this.setDirection(d);
                    this._x = $gameMap.roundXSPWithDirection(this._x, d);
                    this._y = $gameMap.roundYSPWithDirection(this._y, d);
                    this._realX = $gameMap.xSPWithDirection(this._x, this.reverseDir(d));
                    this._realY = $gameMap.ySPWithDirection(this._y, this.reverseDir(d));
                    this.increaseSteps();
                } else {
                    this.setDirection(d);
                    this.checkEventTriggerTouchFront(d);
                }
    
            } else {
                _this["Game_CharacterBase_moveStraight"].apply(this, arguments);
            }
    
        });