Sophitia

Veteran
Veteran
Joined
Feb 13, 2014
Messages
42
Reaction score
11
First Language
English
Primarily Uses
Howdy hi!

Does anyone know of a way to implement tank controls (up always moves the character in the direction they're facing, left and right turns the character 90 degrees, down moves the character backwards without changing orientation) through events, plugins, or anything else, in RMMZ?

EDIT: While I can make a common event to turn characters, move them forward and back, etc, when the correct button is pressed, it doesn't override the original controls, which is an issue.
 
Last edited:

GmOcean

Veteran
Veteran
Joined
Nov 29, 2020
Messages
111
Reaction score
91
First Language
English
Primarily Uses
RMMZ
It is possible using VisuStella's Events and Movment Core plugin. You can get it for free by downloading their demo package, which contains all the 'Core' plugins.

Within that plugin, there is a Plugin Command, that will let you 'Disable Player Movement controls'.

And then you just create a common event that listens for button inputs and move them accordingly.

When and how you disable the player from being able to move normally I'll leave up to you to decide.
Posting the event via all the pictures it would take is too tiring to do, so here is the event I made, and tested in the copied to text format. So sadly, you'll have to recreate it manually on your own.
(This is the common event that checks for movement inputs).
Code:
◆Wait:2 frames
◆Comment://========================================
:       ://
:       :// A series of Checks based on Button Pressed
:       ://
:       ://========================================
◆Comment://========================================
:       ://
:       :// IF Button [UP] is pressed do [X]
:       ://
:       ://========================================
◆If:Button [Up] is being pressed
  ◆Comment://========================================
  :       :// Check Player direction and move accordingly
  :       ://========================================
  ◆If:Player is facing Up
    ◆Comment://========================================
    :       :// Pressing UP and Facing UP
    :       ://========================================
    ◆Set Movement Route:Player
    :                  :◇1 Step Forward
    ◆
  :Else
    ◆If:Player is facing Down
      ◆Comment://========================================
      :       :// Pressing UP and Facing DOWN
      :       ://========================================
      ◆Set Movement Route:Player
      :                  :◇1 Step Backward
      ◆
    :Else
      ◆If:Player is facing Left
        ◆Comment://========================================
        :       :// Pressing UP and Facing LEFT
        :       ://========================================
        ◆Set Movement Route:Player (Wait)
        :                  :◇Turn 90° Right
        ◆
      :Else
        ◆If:Player is facing Right
          ◆Comment://========================================
          :       :// Pressing UP and Facing RIGHT
          :       ://========================================
          ◆Set Movement Route:Player (Wait)
          :                  :◇Turn 90° Left
          ◆
        :End
        ◆
      :End
      ◆
    :End
    ◆
  :End
  ◆
:Else
  ◆Comment://========================================
  :       ://
  :       ://
  :       ://
  :       ://
  :       ://
  ◆Comment://========================================
  :       ://
  :       :// IF Button [DOWN] is pressed, do [X]
  :       ://
  :       ://
  :       ://========================================
  ◆If:Button [Down] is being pressed
    ◆Comment://========================================
    :       :// Check Player direction and move accordingly
    :       ://========================================
    ◆If:Player is facing Up
      ◆Comment://========================================
      :       :// Pressing [DOWN] and Facing [UP]
      :       ://========================================
      ◆Set Movement Route:Player
      :                  :◇1 Step Backward
      ◆
    :Else
      ◆If:Player is facing Down
        ◆Comment://========================================
        :       :// Pressing [DOWN] and Facing [DOWN]
        :       ://========================================
        ◆Set Movement Route:Player
        :                  :◇1 Step Forward
        ◆
      :Else
        ◆If:Player is facing Left
          ◆Comment://========================================
          :       :// Pressing [DOWN] and Facing [LEFT]
          :       ://========================================
          ◆Set Movement Route:Player (Wait)
          :                  :◇Turn 90° Left
          ◆
        :Else
          ◆If:Player is facing Right
            ◆Comment://========================================
            :       :// Pressing [DOWN] and Facing [RIGHT]
            :       ://========================================
            ◆Set Movement Route:Player (Wait)
            :                  :◇Turn 90° Right
            ◆
          :End
          ◆
        :End
        ◆
      :End
      ◆
    :End
    ◆
  :Else
    ◆Comment://========================================
    :       ://
    :       ://
    :       ://
    :       ://
    :       ://
    ◆Comment://========================================
    :       ://
    :       :// IF Button [RIGHT] is pressed, do [X]
    :       ://
    :       ://
    :       ://========================================
    ◆If:Button [Right] is being pressed
      ◆Comment://========================================
      :       :// Check Player direction and move accordingly
      :       ://========================================
      ◆If:Player is facing Up
        ◆Comment://========================================
        :       :// Pressing [RIGHT] and Facing [UP]
        :       ://========================================
        ◆Set Movement Route:Player (Wait)
        :                  :◇Turn 90° Right
        ◆
      :Else
        ◆If:Player is facing Down
          ◆Comment://========================================
          :       :// Pressing [RIGHT] and Facing [DOWN]
          :       ://========================================
          ◆Set Movement Route:Player (Wait)
          :                  :◇Turn 90° Left
          ◆
        :Else
          ◆If:Player is facing Left
            ◆Comment://========================================
            :       :// Pressing [RIGHT] and Facing [LEFT]
            :       ://========================================
            ◆Set Movement Route:Player
            :                  :◇1 Step Backward
            ◆
          :Else
            ◆If:Player is facing Right
              ◆Comment://========================================
              :       :// Pressing [RIGHT] and Facing [RIGHT]
              :       ://========================================
              ◆Set Movement Route:Player
              :                  :◇1 Step Forward
              ◆
            :End
            ◆
          :End
          ◆
        :End
        ◆
      :End
      ◆
    :Else
      ◆Comment://========================================
      :       ://
      :       ://
      :       ://
      :       ://
      :       ://
      ◆Comment://========================================
      :       ://
      :       :// IF Button [LEFT] is pressed, do [X]
      :       ://
      :       ://
      :       ://========================================
      ◆If:Button [Left] is being pressed
        ◆Comment://========================================
        :       :// Check Player direction and move accordingly
        :       ://========================================
        ◆If:Player is facing Up
          ◆Comment://========================================
          :       :// Pressing [LEFT] and Facing [UP]
          :       ://========================================
          ◆Set Movement Route:Player (Wait)
          :                  :◇Turn 90° Left
          ◆
        :Else
          ◆If:Player is facing Down
            ◆Comment://========================================
            :       :// Pressing [LEFT] and Facing [DOWN]
            :       ://========================================
            ◆Set Movement Route:Player (Wait)
            :                  :◇Turn 90° Right
            ◆
          :Else
            ◆If:Player is facing Left
              ◆Comment://========================================
              :       :// Pressing [LEFT] and Facing [LEFT]
              :       ://========================================
              ◆Set Movement Route:Player
              :                  :◇1 Step Forward
              ◆
            :Else
              ◆If:Player is facing Right
                ◆Comment://========================================
                :       :// Pressing [LEFT] and Facing [RIGHT]
                :       ://========================================
                ◆Set Movement Route:Player
                :                  :◇1 Step Backward
                ◆
              :End
              ◆
            :End
            ◆
          :End
          ◆
        :End
        ◆
      :Else
        ◆
      :End
      ◆
    :End
    ◆
  :End
  ◆
:End
 

Sophitia

Veteran
Veteran
Joined
Feb 13, 2014
Messages
42
Reaction score
11
First Language
English
Primarily Uses
Thank you, GmOcean, this has been a great help!

The modified controls seem to stop working should the player collide with a wall (which seems strange but it is what it is), but I imagine that is something I can solve in time.
 

GmOcean

Veteran
Veteran
Joined
Nov 29, 2020
Messages
111
Reaction score
91
First Language
English
Primarily Uses
RMMZ
Do you mean, to say that if you step in front of the wall, and try to take another step into the wall, it stops working? If that is the case then, I believe if you go to 'EACH' command that says '1 Step Forward' or '1 Step Backward', edit those and click the little check box that says, 'Skip if Cannot Move'.

I think what's happening is, I didn't add those since I was testing in an open field, and the game is trying to make you walk forward/backward even though you can't.
 

Latest Threads

Latest Profile Posts

Kept making a new frame for any change I did so ended up with a gif XD
How is it called a rpg maker game without the default "pokemon-like" battle system?
Unfortunately, while trying to run an app I needed (curse you, Adobe!), my laptop blacked out, so my data got wiped when I got it repaired. Stuff like facesets are saved in my drive, but my sprites now only exist as screenshots I've taken in the past :kaocry:To be fair, I'm a little relieved, since I've been feeling unsatisfied with the visual style of the character sprites, and I guess I can now revamp them?

after lot's of edits to Mike's attacks (to make it seamless with movement, no EX versions, cost 1-ups), I finally got combo skills to work. had to do a lot moving tho to get the combo list to appear where it is lol. that actually took longer than setting up the moves.

Forum statistics

Threads
122,034
Messages
1,146,011
Members
160,294
Latest member
insuranceexchange
Top