Neikoku

Villager
Member
Joined
Apr 17, 2021
Messages
24
Reaction score
8
First Language
Finnish
Primarily Uses
RMMV
Hi! I managed to make a walking-in-water sprite work for the player as well as the follower when crossing a river, but the problem with how I made it is when the player steps in the water and the follower is still on land, the follower also gets the water sprite when he's not yet in the water.

I have a common event checking location ID based on tile regions, and it changes the sprites when the player is in the river.

Is there a way to make the follower's sprite change only when he's actually in the water, instead of based on the player's location? :LZSproud:
 

Shaz

Global Moderators
Global Mod
Joined
Mar 2, 2012
Messages
42,891
Reaction score
14,994
First Language
English
Primarily Uses
RMMV
You would have to make your common event check the player and each follower position separately and update their sprites as necessary, rather than changing all sprites based on where the leader is.

The player and followers are all Game_Character objects, so all have the regionId() function.
 

Dev_With_Coffee

Veteran
Veteran
Joined
Jul 20, 2020
Messages
680
Reaction score
321
First Language
PT-BR
Primarily Uses
RM2k3
If you have any experience with Javascript, see this list of RMMV commands:
RPG MAKER MV / MZ Script Calls

Possibly someone will soon come up with a plugin or practice method, for now I am away from my personal computer where I could do the tests to be sure how to create.

Good luck
 

Neikoku

Villager
Member
Joined
Apr 17, 2021
Messages
24
Reaction score
8
First Language
Finnish
Primarily Uses
RMMV
You would have to make your common event check the player and each follower position separately and update their sprites as necessary, rather than changing all sprites based on where the leader is.

The player and followers are all Game_Character objects, so all have the regionId() function.
Ah yes I got it to work now, thank you!! Still a problem though, the follower's sprite changes only after taking another step outside/in the water. So when he steps on land, he still has the in-water sprite until he takes another step. Is there any way around this? :oops:

I tried the "change actor images" event command and then a script, both working the same. Here's the script:

1620998570772.png

@Dev_With_Coffee thanks for the list! I don't really know javascript (am able to figure it out if have to though) but I have felt a need for this at times.
 

Dev_With_Coffee

Veteran
Veteran
Joined
Jul 20, 2020
Messages
680
Reaction score
321
First Language
PT-BR
Primarily Uses
RM2k3
I will try to do this over the weekend.
 
Joined
May 24, 2021
Messages
2
Reaction score
0
First Language
English
Primarily Uses
RMVXA
Yes, thank you, I've gotten it to work now!! However, there is still a problem: the follower's sprite only changes after taking another step outside/in the water. As a result, when he walks onto land, the in-water sprite remains with him till he makes another step. Is there a way to get out of this? :oops:

I tested both the "change actor images" event command and a script, and they both worked. The following is the script:
 

Dev_With_Coffee

Veteran
Veteran
Joined
Jul 20, 2020
Messages
680
Reaction score
321
First Language
PT-BR
Primarily Uses
RM2k3
I did combining events with javascript, but it has the 4 member limit (default in Rpg Maker), if I create a plugin with this method I can do it for systems that may have more members or affect map events like NPCs.
Code:
◆If:Script:$gameParty.members().length > 0
  ◆Comment:=============================== LEADER =============================
  ◆If:Script:$gamePlayer.regionId() === 0
    ◆Script:$gamePlayer._characterName=$gamePlayer._characterName.split("_")[0]
    ◆
  :End
  ◆If:Script:$gamePlayer.regionId() === 1
    ◆Script:$gamePlayer._characterName=$gamePlayer._characterName.split("_")[0]+"_water"
    ◆
  :End
  ◆If:Script:$gamePlayer.regionId() === 2
    ◆Script:$gamePlayer._characterName=$gamePlayer._characterName.split("_")[0]+"_deep"
    ◆
  :End
  ◆Comment:=============================== Follower 1 =============================
  ◆If:Script:$gameParty.members().length > 1
    ◆If:Script:$gamePlayer._followers.follower(0).regionId() == 0
      ◆Script:$gamePlayer._followers.follower(0)._characterName=$gamePlayer._followers.follower(0)._characterName.split("_")[0]
      ◆
    :End
    ◆If:Script:$gamePlayer._followers.follower(0).regionId() == 1
      ◆Script:$gamePlayer._followers.follower(0)._characterName=$gamePlayer._followers.follower(0)._characterName.split("_")[0]+"_water"
      ◆
    :End
    ◆If:Script:$gamePlayer._followers.follower(0).regionId() == 2
      ◆Script:$gamePlayer._followers.follower(0)._characterName=$gamePlayer._followers.follower(0)._characterName.split("_")[0]+"_deep"
      ◆
    :End
    ◆
  :End
  ◆Comment:=============================== Follower 2 =============================
  ◆If:Script:$gameParty.members().length > 2
    ◆If:Script:$gamePlayer._followers.follower(1).regionId() == 0
      ◆Script:$gamePlayer._followers.follower(1)._characterName=$gamePlayer._followers.follower(1)._characterName.split("_")[0]
      ◆
    :End
    ◆If:Script:$gamePlayer._followers.follower(1).regionId() == 1
      ◆Script:$gamePlayer._followers.follower(1)._characterName=$gamePlayer._followers.follower(1)._characterName.split("_")[0]+"_water"
      ◆
    :End
    ◆If:Script:$gamePlayer._followers.follower(1).regionId() == 2
      ◆Script:$gamePlayer._followers.follower(1)._characterName=$gamePlayer._followers.follower(1)._characterName.split("_")[0]+"_deep"
      ◆
    :End
    ◆
  :End
  ◆Comment:=============================== Follower 3 =============================
  ◆If:Script:$gameParty.members().length > 3
    ◆If:Script:$gamePlayer._followers.follower(2).regionId() == 0
      ◆Script:$gamePlayer._followers.follower(2)._characterName=$gamePlayer._followers.follower(2)._characterName.split("_")[0]
      ◆
    :End
    ◆If:Script:$gamePlayer._followers.follower(2).regionId() == 1
      ◆Script:$gamePlayer._followers.follower(2)._characterName=$gamePlayer._followers.follower(2)._characterName.split("_")[0]+"_water"
      ◆
    :End
    ◆If:Script:$gamePlayer._followers.follower(2).regionId() == 2
      ◆Script:$gamePlayer._followers.follower(2)._characterName=$gamePlayer._followers.follower(2)._characterName.split("_")[0]+"_deep"
      ◆
    :End
    ◆
  :End
  ◆
:End
◆Wait:1 frame

Demo Video:
 

Latest Threads

Latest Posts

Latest Profile Posts

Cause MP Damage instead of HP, Localization Plugin for Translation | RPG Maker News #112

Here in Fla were are seeing crazy covid spikes and some vaccinated getting bad infections. I had a mild fever on Thurs but it went down fast. How is everyone else doing. Hopefully you are all well. :)
Wish I was better at art, specifically that I was faster at it, bc this one NPC took Several Days to complete! It's gonna take So Extremely Long to do all of the art for my game, never mind writing it... Anyways, here's my gorgon, Hopernica Sthyxis!

57b88732c7abbcd84981dacf624a98495af61fcc.gifv
Idk if this is my ADHD or if it's a common problem. But I cant stay motivated for anything. I want to work on so many different things at once. Game dev, skateboarding, ranking up in League, playing OSRS, fitness, nutrition, relationships. It's like, where do I even begin?
Well. Looks like I need to redo the entire battle system in order to have the things I want in it. Also I'd like to say that console.log() is the greatest function in Javascript XD.

Forum statistics

Threads
113,819
Messages
1,077,707
Members
147,877
Latest member
LostSoul
Top