Launch common event in automatic dialogue

● ARCHIVED · READ-ONLY
Started by Pumamori 4 posts View original ↗
  1. First of all, thanks for giving this request a look! I'll do my best to describe it, I desperately need it to improve Astralon, a project I've been working on for quite some time now! If you want to see if the code you write is in good hands, feel free to check it out! Screenshots and a demo already available ^-^ Though I am pretty sure, that others could be using this script as well, it should be pretty helpful in horror scenarios I can imagine...

    But now, to the request. I've been thinking about a mechanic I wanted to implement in Astralon for weeks now, but didn't really find a good and fluent way in eventing to approach it. If you are familiar with the game "Dangan Ronpa", you might remember the "Non-Stop Debates", where the people in a trial started talking about a topic chosen beforehand, and you "shoot" a contradicting statement or lie in general with your "ammunition", the evidence to that case.

    Not familiar with the game? No problem, just take a look at this video.

    This might seem a bit overwhelming at first, but no worries, I do not intend to request the whole system, rather than a simplified version to help with the eventing of it! 

    The Request

    Judging from the not-so-creative title, the basics of what I want, is to interrupt an automatic dialogue by a common event, if you press a button. It sounds simple to me, but it's probably a pain to script, isn't it? However, if it's not too bad, I might request a little more, than that, to make it a more immersive experience for the player, I'm always striving for the most enjoyable result for the player. ^-^

    • Basic idea: Interrupt a dialog with a common event.
    • If possible: Make the dialogue advance slowly on its own, give the player an option to speed it up, or slow it down. (Slowing down would be helpful if the next thing is implemented)
    • If possible: A way to tell, where the player paused it, using colour-coded text for example. Slowing down to easier "hit" these weak spots, would be a cool feature, especially if you can only slow that often.
    The only scripts I use, that affect the way messages are being displayed, are 

    Modern Algebra's ATS Formatting and Yanfly's Ace Message System.

    Just in case any of these would conflict with anything I've written up to this point. Thanks for reading this post all the way, I really hope someone will try their hands on it >-< It'd mean the world to me!
  2. Bumping this up! 

    Is there anything missing with the request? ^-^

    Does it not sound useful or is it impossible to script? It'd be nice to at least know why it's not possible, so I can adjust the request! :)

    Have a nice day!
  3. People tend not to want to watch videos (especially complicated, overwhelming ones, as it sounds like this might be, from your following comment) in order to understand a simple request.


    Maybe you can do it by running a parallel process checking for the button being pressed, which will then take control over what's happening and let you display your player's options/text?


    I don't really know - I'm just guessing.
  4. Oh, well, I meant overwhelming more in the graphical direction, but I see. I might re-word that.

    For your approach, I'm going to try it, but I'm not so sure if it really flows as well, also, it would make the two other features, that would really add some depth in there, impossible to add :/ 

    But thanks a lot for your answer, I really appreciate it! ^-^

    EDIT:

    I attempted to do it myself, but I failed quite miserably.

    class Scene_Map < Scene_Base DestroyEvent = true #Erase event before triggering common event? DestroyedEventID = 12 #Which event should be erased? InterruptedEventSwitch = 2 #Which switch should be turned on when the CE runs? CallCommonEventKey = Input::L #Button you press to initiate the CE. CallCommonEventVariable = 1 #Variable, that decides which CE will be run. #=============================================================================## Editing anything past this point, may result in spontaneous self ignition, ## explosion of vital organs, or brain failure. Edit at your own risk. ##=============================================================================##-------------------------------------------------------------------------## * Alias - Frame Update * ##-------------------------------------------------------------------------# alias pumalarios_update_aosdih :update def update pumalarios_update_aosdih update_common_event_trigger end #-------------------------------------------------------------------------## * New Method - Common Event Trigger Check * ##-------------------------------------------------------------------------# def update_common_event_trigger if Input.trigger?(CallCommonEventKey) && $game_variables[CallCommonEventVariable] != 0 if DestroyEvent == true $game_map.events[DestroyedEventID].erase else $game_switches[InterruptedEventSwitch] = true end $game_temp.reserve_common_event($game_variables[CallCommonEventVariable]) end end end#-------------------------------------------------------------------------## * End of script. * ##-------------------------------------------------------------------------# Problem is, no matter what I do, the common event always launches after the event processing, which is exactly what it shouldn't do D: Any way I could really -interrupt- event processing?