Dialog while event is walking questions

Discussion in 'RPG Maker MV' started by Neil London, Jan 25, 2017.

  1. Neil London

    Neil London Villager Member

    Messages:
    8
    Likes Received:
    0
    Location:
    Portland, Or
    First Language:
    English
    I hope this is in the right place


     


    I'm trying to start an event movement with dialog while it is moving, BUT I don't want the next dialog to start until the movement is completed and the event start moving again.


     


    From what I understand, you either  have the event moving with no dialog until they stop or you risk Move Routes conflicting with each other.


     


    Does this make sense?
    Here is an example of what I have which ALMOST works.


     




    ◆Set Movement Route:Anna
    :Set Movement Route:◇Move Down
    :Set Movement Route:◇Move Left
    :Set Movement Route:◇Turn Down
    ◆Text:SF_Actor1(3), Window, Bottom
    :Text:As you know, Avelanche has been exposing 
    :Text:our company's, not so ethical, practices. \n<Anna> \auto
    ◆Text:SF_Actor1(3), Window, Bottom
    :Text:As a result we have lost a significant
    :Text:amount of the public's support. \n<Anna> \auto
    ◆Set Movement Route:Anna (Wait)
    ◆Set Movement Route:Anna (Wait)
    :Set Movement Route:◇Turn Down
    :Set Movement Route:◇Wait:60 frames
    ◆Set Movement Route:Anna
    :Set Movement Route:◇Move Right
    :Set Movement Route:◇Move Right
    ◆Text:SF_Actor1(3), Window, Bottom
    :Text:Without the public's trust we risk losing 
    :Text:everything we've all worked so very hard to 
    :Text:achieve. \n<Anna> \auto
    ◆Set Movement Route:Anna (Wait)
    ◆Set Movement Route:Anna (Wait)
    :Set Movement Route:◇Turn Down
    :Set Movement Route:◇Wait:30 frames


     


     


    The idea is if someone is trying to power through the dialog I want the events to go where I want them and not have conflicting move routes so the event is in the wrong place.


     


     


     


    Here is what I want as a break down:


     


    ◆Set Movement Route:Anna
    :Set Movement Route:◇Move Down
    :Set Movement Route:◇Move Left
    :Set Movement Route:◇Turn Down
    ◆Text:SF_Actor1(3), Window, Bottom
    :Text:As you know, Avelanche has been exposing 
    :Text:our company's, not so ethical, practices. \n<Anna> \auto
    ◆Text:SF_Actor1(3), Window, Bottom
    :Text:As a result we have lost a significant
    :Text:amount of the public's support. \n<Anna> \auto
    ◆Set Movement Route:Anna (Wait)
    ◆Set Movement Route:Anna (Wait)
    :Set Movement Route:◇Turn Down
    :Set Movement Route:◇Wait:60 frames


     


    Anna moves while saying these 2 lines and even if the player skips them she completes her move route and turns down. This works somewhat.


     


    ◆Set Movement Route:Anna
    :Set Movement Route:◇Move Right
    :Set Movement Route:◇Move Right
    ◆Text:SF_Actor1(3), Window, Bottom
    :Text:Without the public's trust we risk losing 
    :Text:everything we've all worked so very hard to 
    :Text:achieve. \n<Anna> \auto
    ◆Set Movement Route:Anna (Wait)
    ◆Set Movement Route:Anna (Wait)
    :Set Movement Route:◇Turn Down
    :Set Movement Route:◇Wait:30 frames


     


    After she finishes turning down EVEN if the player skipped her dialog she then moves and starts this line of dialog. But if I skip to quickly she'll start this move route before she finished the first one.


     


     


     


    I've tried getting rid of the "Turn Down, Wait "x" Frames" but that hasn't worked either.


     


     


     


    Let me know if it doesn't make sense.


     


     


     


    Thanks!


     


     


     


    Neil
     
    Last edited by a moderator: Jan 25, 2017
    #1
  2. Lantiz

    Lantiz Biterkid Veteran

    Messages:
    719
    Likes Received:
    1,066
    Location:
    Brazil
    First Language:
    Portuguese
    Primarily Uses:
    RMMV
    Try using an event on Parallel Process for the move routes on the first dialog and an Autorun running the text.


    By the end of the text you trigger a switch on the Parallel to stop it and continue the second part on the Autorun.
     
    #2
  3. Andar

    Andar Veteran Veteran

    Messages:
    28,426
    Likes Received:
    6,485
    Location:
    Germany
    First Language:
    German
    Primarily Uses:
    RMMV
    Why do people always suggest parallel processes where they make no sense? Especially the combination of parallel process and set move route should not be used unless you're an experienced eventer and know exactly what you're doing - at which point you'll know that this combinationis rarely a good idea and rarely neccessary.


    Just for your info: autonomous movement is a combination of both parallel process and set move route, but handled by the engine to prevent the problems that occur on handling it manually.


    That said, @Neil London can you give a textual description of what you want this to look like to the player? Do not bother with event code for now, that would only irritate.


    If I'm assuming correctly, you want this as a cutscene - and in that case, you'll just need a correct sequence of set move routes with wait checked and show text commands, but not use waits at all.


    And your problems in the event code above most likely comes from not knowing how the set move command works internally, because at several time you used commands that make no sense in that combination - and empty set move route does nothing but delete the previous move route when called, and having its wait checked has no effect because it deletes all move commands, leaving nothing to wait for.


    If you tell us what you want to be seen on screen, then we can tell you how to proceed.
     
    #3
  4. Engr. Adiktuzmiko

    Engr. Adiktuzmiko Chemical Engineer, Game Developer, Using BlinkBoy' Veteran

    Messages:
    14,544
    Likes Received:
    2,900
    Location:
    Philippines
    First Language:
    Tagalog
    What I understand is that:


    You want to show a text the same time as a move route, but if the player skips/finishes the text before the move route ends, the event should still wait until the move route finishes before the next text is shown.


    Is that right?


    If that's the case, you could probably do this:


    Move route (NO WAIT)


    Show Text


    loop


       Check if event X,Y is at the final position


       if yes, break loop


    end loop


    Show Text


    This way, the move route and the first show text will start at the same time but the 2nd show text will not begin unless the first show text is done and the event is in the final position
     
    Last edited by a moderator: Jan 25, 2017
    #4
  5. Neil London

    Neil London Villager Member

    Messages:
    8
    Likes Received:
    0
    Location:
    Portland, Or
    First Language:
    English


    Yes this is for a cut scene.  kinda hard to explain but I'll give it a shot.


    -Anna starts walking and starts to talk while she is moving.


    -Player skips dialog.


    -Anna finishes her route and stops for 1 second


    -Anna starts to move again and Starts a new dialog box


    -Player skips dialog again


    -Anna finishes her route and stops for one second


    -New person starts to talk.


    Right now if the player skips a dialog box it starts the new move route and dialog sequence. Leaving Anna not in the place I want her to be and in other moves she ends up in walls/npc/desks/etc.


    Does that make sense?


    I've tried using waits after the dialog but if the player doesn't skip the dialog when they get to the end of the move route they wait for that set time before moving on. It works for a player skipping dialog but makes the player who read the dialog wait extra time. It seems like it's one or the other. The only other idea I could think of is some type of conditional branch, but I'm positive that wont work. Unless there is a "no skip dialog" way? i'd be willing to settle with that and make it to where the player has no control of when the dialog boxes appear and disappear.


    I know little about RPG MakerI since I just picked it up not to long ago. I have a lot to learn and I'm eager to. Good to know about the blank wait though. For some reason it helped but that could have been from something else.
     
    #5
  6. Neil London

    Neil London Villager Member

    Messages:
    8
    Likes Received:
    0
    Location:
    Portland, Or
    First Language:
    English


    Exactly!
     
    #6
  7. Engr. Adiktuzmiko

    Engr. Adiktuzmiko Chemical Engineer, Game Developer, Using BlinkBoy' Veteran

    Messages:
    14,544
    Likes Received:
    2,900
    Location:
    Philippines
    First Language:
    Tagalog
    I've updated my last post, please see the method I've posted (it's just the logic flow though, not the exact set of commands)
     
    #7
  8. Neil London

    Neil London Villager Member

    Messages:
    8
    Likes Received:
    0
    Location:
    Portland, Or
    First Language:
    English


    I appreciate it. My next question would be how do I perform an event ID location check? Would that be done with variables?
     
    #8
  9. Engr. Adiktuzmiko

    Engr. Adiktuzmiko Chemical Engineer, Game Developer, Using BlinkBoy' Veteran

    Messages:
    14,544
    Likes Received:
    2,900
    Location:
    Philippines
    First Language:
    Tagalog
    You would do it this way


    Loop


      Control Variables: Variable 001 = Event's Map X


      Control Variables: Variable 002 = Event's Map Y


      Conditional Branch:


       if Variable 001 = The final X position of the event


       then 


          Conditional Branch:


          if Variable 002 = The final Y position of the event


          then


              exit loop


    end loop


    I dont actually know if there is an exit loop command, if there is none you can just put a label before the 2nd show text, then use jump to label
     
    #9
  10. Andar

    Andar Veteran Veteran

    Messages:
    28,426
    Likes Received:
    6,485
    Location:
    Germany
    First Language:
    German
    Primarily Uses:
    RMMV
    Yes, event location checks are a combination of control variable to get the current position and conditional branches to check what that number is.


    That said, while @Engr. Adiktuzmikos method of a loop is one way, I'm wondering if it would not be better to time the show text and prevent the player from skipping it?


    So that a player has to read the message while waiting for the move route to finish?


    There are text codes to force a pause in the display of the show text command, that way you don't need to add a loop for waiting because the message will only be completed after the move is complete as well - just check the help file or the popup of the show text window.


    It will require a bit of experimenting where to place the codes (especially because you have one textcode for a full second pause, and on etext code for a quarter second pause, and need to combine them at the correct places to make the flow of text seem natural while reading.
     
    #10
    Engr. Adiktuzmiko likes this.
  11. Engr. Adiktuzmiko

    Engr. Adiktuzmiko Chemical Engineer, Game Developer, Using BlinkBoy' Veteran

    Messages:
    14,544
    Likes Received:
    2,900
    Location:
    Philippines
    First Language:
    Tagalog
    @Andar - oh yes, pause escape codes.. I forgot those exist even if I am actually using them :)


    Timing the show text using pauses via escape codes in the text box might be good too and uses less commands. Though yeah it will require a bit of experimenting to get the most viable timing for every case.


    While the loop check method is a more general approach to the problem but takes more commands.


    So just pick whichever methods suits you the best
     
    Last edited by a moderator: Jan 25, 2017
    #11
  12. Neil London

    Neil London Villager Member

    Messages:
    8
    Likes Received:
    0
    Location:
    Portland, Or
    First Language:
    English
    I'm sorry for all the questions, but how do I create a variable with "Event's Map X" and "Event's Map Y" as the designation?


    All I have are these options:

    Screen Shot 2017-01-25 at 4.37.55 AM.png
     
    #12
  13. Andar

    Andar Veteran Veteran

    Messages:
    28,426
    Likes Received:
    6,485
    Location:
    Germany
    First Language:
    German
    Primarily Uses:
    RMMV
    @Neil London It's under "character", not under other - because you need to specify for which event you want to get the data.


    "Other" are only informations independent of events or actors but that apply to the entire map or project.
     
    #13
  14. Neil London

    Neil London Villager Member

    Messages:
    8
    Likes Received:
    0
    Location:
    Portland, Or
    First Language:
    English
    Got it!


    I eventually figured that out. I was looking for "Event" not "Character" haha.


    So here is the code that has everything working the way I want it to. It took me awhile to figure it out but I got it.


    ◆Set Movement Route:Anna:Set Movement Route:◇Move Down:Set Movement Route:◇Move Left:Set Movement Route:◇Turn Down◆Text:SF_Actor1(3), Window, Bottom:Text:As you know, Avelanche has been exposing :Text:our company's, not so ethical, practices. \n<Anna> \auto◆Text:SF_Actor1(3), Window, Bottom:Text:As a result we have lost a significant:Text:amount of the public's support. \n<Anna> \auto◆Loop  ◆Control Variables:#0001 Event Map X = Map X of Anna  ◆Control Variables:#0002 Event Map Y = Map Y of Anna  ◆If:Event Map X = 24    ◆If:Event Map Y = 34      ◆If:Anna is facing Down        ◆Wait:30 frames        ◆Break Loop        ◆      :Else        ◆      :End      ◆    :Else      ◆Wait:30 frames      ◆    :End    ◆Wait:60 frames    ◆  :Else    ◆Wait:60 frames    ◆  :End  ◆:Repeat Above◆Text:SF_Actor1(3), Window, Bottom:Text:Without the public's trust we risk losing :Text:everything we've all worked so very hard to :Text:achieve. \n<Anna> \auto◆Text:SF_Actor1(3), Window, Bottom:Text:It goes without saying... \n<Anna> \auto ◆Text:SF_Actor1(3), Window, Bottom:Text:But this something we cannot let happen. \n<Anna> \auto


    The reason for all the "wait" commands in the Loop is because when I first tested it out it bogged down to a crawl and was very choppy. So I added the "else branch" and a "wait" before it would check again since the move takes about 3 seconds in total. I also had to add the extra "If:Anna is facing Down" to make sure it didn't start until she was looking down.


    Thanks for all of your help guys! This is awesome! Screen Shot 2017-01-25 at 6.13.59 AM.png
     
    #14
  15. Andar

    Andar Veteran Veteran

    Messages:
    28,426
    Likes Received:
    6,485
    Location:
    Germany
    First Language:
    German
    Primarily Uses:
    RMMV
    you can disable the else branch of a conditional branch (there is a checkbox) if you don't need it, that makes your event code better readable
     
    #15
  16. Lantiz

    Lantiz Biterkid Veteran

    Messages:
    719
    Likes Received:
    1,066
    Location:
    Brazil
    First Language:
    Portuguese
    Primarily Uses:
    RMMV
    Is this really needed? Would not you be more polite by just telling me where I'm wrong?


    Not all humans are perfect.


    I said it because this is a way I've done it before.


    Thanks for teaching me tho.
     
    #16
  17. Andar

    Andar Veteran Veteran

    Messages:
    28,426
    Likes Received:
    6,485
    Location:
    Germany
    First Language:
    German
    Primarily Uses:
    RMMV
    Sorry - but as you said, not all people are perfect.


    And there had been a few too many cases in the last few weeks where users new to this site tried that form of solution, most probably without knowing the many disadvantages of it.


    It wasn't something personally against you, just venting at the person who was unfortunate to give that advice next.
     
    #17

Share This Page