Pauses during intros create a weird bug I've never encountered before.I added a helper at time = 0 on one of the intros and added this code into it.Code: [State 0, Pause]type = Pausetrigger1 = (time%1) = 0time = 2movetime = 2pausebg = 0Since making the "time = t" and "movetime = t" too long it will make the animations stagger after skipping, therefore I stuck with the time% code as it will provide less of a hassle.The reason for putting 2 on time and movetime is because 1 causes the pause to flicker on and off every 1 tick, so I put 2 ticks just so it won't do that.Problem is, if the helper is destroyed (from expiring, NOT from intro being skipped), the "Round X" announcement shows up immediately, ultimately repeating itself twice. (1 from helper being destroyed & 1 from the actual intro being over.)Any suggestions to prevent the first announcement from showing up?
How about let the helper linger until the Intro is over?[State 0, Pause]type = Pausetriggerall = RoundState = 1trigger1 = (time%1) = 0time = 2movetime = 2pausebg = 0[State 0, DestroySelf]type = DestroySelftrigger1 = RoundState = 2
The Roundstates won't work as RoundState = 1 means pre-intro & RoundState = 2 means fighting period. The helper needs to be in between the intro phase of the game.Plus, the pause helper should only exist for a small amount of time.So basically:Stage entered -> Pause freezes everyone (helper) -> pause finished -> Players do their normal intros -> game begins normally.[State 0, Pause]type = Pausetriggerall = RoundState = 1trigger1 = (time%1) = 0time = 2movetime = 2pausebg = 0[State 0, DestroySelf]type = DestroySelftrigger1 = RoundState = 2 This will make the helper keep pausing the game every 1 tick meaning the destroyself part will actually never come to play as it will be postponed until the actual pause is finished.
Ahhhh m’bad!Well why not just throw another condition into the Pause controller, so that the helper can stay until the entire intro is over? Like triggerall = Time < whatever. And destroyself, time > whatever?
Well, you see then that would be no different from my initial codes.For example,Triggerall = time < 100&destroyselftime >= 100would mean that the pause will stay until time reaches 100.But the problem with pause is that the separate sctrl which includes time and movetime all act differently from the triggers themselves.So,Code: PauseTriggerall = time < 100trigger1 = time = 0time = (X)movetime = (X)Destroyselftime >= 100will be no different fromCode: PauseTrigger1 = time < 100time = (X)movetime = (X)Destroyselftime = 100The time & movetime is what's causing the problem.
In your original code, you are triggering a Pause once every 2 ticks, for 2 ticks, forever.So I imagine that your DestroySelf is probably the thing that you are using to stop your Pause, right?What I'm saying is that you can just stop your pause after a certain time like[State 0, Pause]type = Pausetriggerall = Time < 100trigger1 = (time%1) = 0time = 2movetime = 2pausebg = 0Then Destroyself whenever. Time > 9,000 for instance - long enough for the helper to exist until the Intro phase has ended. This is an invisible helper right?If you have changed your original Pause controller code, please share it so we can work this out differently.
Yep, my original code still provides that same mechanic.The pauses are not the issue at all.Whether it is destroyed or not, the biggest issue is that during intros, if a pause is added, then finished, the announcement for the round (i.e. round #, fight!) will happen imediately.Now, everything will be fine it's just that that specific announcement is totally unncessary as when the actual intros are over, the real once plays again (meaning it will play twice).Since this was probably never detected before, I suggest you try adding a simple pause like our codes above in a character that expires, and see what happens. It's super weird...
O.k. quick question....... Your creating a pause helper to momentarily freeze everyone's intro correct? I just wanted to know the correct intention before I give my suggestion.
Superpause will behave differently. You could try that instead.I'm not clear on why its a multi trigger thing. Why not just pausetime of 100 or something? If you skip the intro it'll kill the pause and helper anyway. I can't see why you'd multipause it. Unless the helper is supplying a menu function and needs to move for that.
Hi, Cyanide.I have tried before using a normal pause trigger.But the longer the input gets for time & movetime, the effects linger on even after skipping the intro and killing the helper.I tried superpause as well and that makes the same effect.So pausing for 150 ticks and skipping will cause the players to stay still for 150 ticks even when the round has started.
So I don't 100% get what you're doing but maybe this thought process will help you get to the solution... at least for the "skipping intro" aspect.How about, during this particular intro, you immediately capture the GameTime to a Var.Then in State -2 or State 0 or wherever, have a Pause controller that is intended to override / cancel the Pause from your intro... with a parameter of TIme = 0.Use these triggers for the Pause to check if the entire Intro played out - and will trigger if the intro was skipped:triggerall = var(xx) != 9999999 ;If it has not yet be triggered.trigger1 = var(XX) + (YOUR INTRO'S TOTAL LENGTH) > GameTimetrigger1 = var(xx) := 0 ;set the Var to 9999999 when triggered, since you can't use persistent in State -2