#//I wonder if there's a chance my name will be recognized šŸ¤” I'll use the reblog blog to be ??? less intimidating?????
Explore tagged Tumblr posts
zichqecs-hoard Ā· 1 year ago
Text
Oh I see šŸ¤” Hmm... yeah, messing with the reload commands can be a little fiddly, in my testing anything after a reload like that does not display. If I do eh...ā€\![reload,shell] shell has been reloadedā€ in script input, I can seeĀ ā€œsheā€ type out, and then the shell reloads and the rest is cut off. I think because these commands are probably expected to be used in a debug way?
You could consider having the alternates as completely separate shells instead, and locking it off so that the user canā€™t switch between them manually (though if you did that, you would need some additional code to prevent switches from the ghost explorer as well, if manual switches are undesirable). That way you could just give each shell its own menu in the first place, and not need the shell reload command.
The downside being, I think the blip would be more noticeable that way, and you would also need code to make the new shell loading in move to the same position that the other shell was when it was unloaded. Iā€™ve done it before, itā€™s not impossible, but it is a bit of a pain šŸ˜… If you did it that way, you could chain the balloon change command onto OnShellChanged.
Thatā€™s probably not ideal unless youā€™re really desperate though, I imagine itā€™d be difficult to switch over everything you have to deal with a multiple shell system depending on how far you are into it.
Another thought... you could set a variable in the OnSwitchMenu function like shellchange = 1 (and in that case, I wouldĀ recommend changing it to an \![embed] tag rather than an embedded element, just in case the user cancels the script before it finishes executing. Or, you could use \t in the changing script to prevent the user from cancelling!), and then in one of the events that fires after the shell reloads, like OnNotifySelfInfo, check for that variable, and if itā€™s 1 set it to 2. Then in OnSecondChange, if itā€™s 2, change the balloon and reset the variable to 0. (Notify events canā€™t run scripts on their own, but if you donā€™t mind a 1 second wait you can shunt it off to OnSecondChange. Itā€™s not my favorite method, but itā€™ll work in a pinch. You have to be careful with OnSecondChange though - under almost no circumstances do you want to end up outputting a script every second; itā€™ll interrupt your balloons and make the ghost unpleasant to use.)
That idea is definitely janky šŸ˜‚ You could also try a timerraise (thatā€™s timer raise, not time raise) command after the reload command instead, if you donā€™t mind waiting a second or two, and have the event that it raises change the balloon. That may come with its own kind of jank (canā€™t guarantee how long itā€™ll take the shell to switch in all environments), but it may be worth testing out to see if itā€™ll suit your needs.
But by far I think the most solid method, at least for changing the balloon, would actually be to combine your balloons into one. A lot of my ghosts have done this lately, where each balloon has multiple color options combined into a single balloon, and I use OnTranslate to change the balloon tags appropriately (but only if the ghost is currently on that balloon). SSP Angel is a good example of this! They go a bit overboard with the customization, in your case it should be a lot simpler. It should be as simple as an if check to make sure your custom balloon is being used, like if SHIORI3FW.BalloonName ==Ā ā€œAster Tooltipā€, and then a check for which mode the ghost is in, and a set of replace commands if itā€™s in the mode with the alt coloration.
That method has a few benefits, primarily that it makes the script more straightforward so the balloon change always happens, and it cuts out any loading time for the balloon. And with OnTranslate handling the color changes, you can keep writing balloon tags as normal. (Side note, I do notĀ recommend trying to use embedded elements for this instead. I used to do that with tags like %(b2) and %(b4), but then I found out that if I asked my ghosts to repeat the last dialogue just after I changed colors, theyā€™d use the wrong one! So I let OnTranslate handle it now.)
I suppose eh... the problem is itā€™s difficult to have the reload shell command and a balloon change command in the same script and guarantee itā€™s not going to behave strangely. So I think the best solution, if youā€™re able to, is to eliminate one of those, and combining the balloons would do just that. But if that doesnā€™t suit your needs for whatever reason, maybe those other methods will work šŸ¤” just test them thoroughly, I suspect they would be plagued with issues of their own šŸ˜‚
Ooh wait, I have one other idea. Have you considered using a change shell command, and simply switching to the same shell that youā€™re currently using? I thinkĀ that would still have the effect of reloading it, but you get the benefit of the OnShellChanged event firing! That way you could set a variable, do the change, and then have OnShellChanged check if that variable is set and perform the rest of the change/dialogue on its end. \![change,shell,%(SHIORI3FW.ShellName)] should change you to the current shell, no matter what it is (uh, these SHIORI3FW variables Iā€™m using assume youā€™re using YAYA and not AYA, since they come standard with YAYA specifically. Iā€™m guessing youā€™re using YAYA if youā€™re using my guide, but Iā€™ll make the note anyways.)
SORRY THATā€™S A LOT but hopefully at least one of those things is helpful šŸ˜‚
Tumblr media Tumblr media
I think I can with certainty say I'm past the halfway point with this. there's not that much random dialogue left to make up
I can only hope the switch works as intended on other computers, since a different timing left them mid-transition. it seems like it doesn't interrupt the bubbles switch but it's only if the menu switch/shell reset comes at a specific point before it šŸ¤”
sakurascript is really weird with calling functions, but I Think if you call it as a variable ( %(function) ) it doesn't interrupt the script?? maybe??
[Image ID:
Two gifs showing off Vega complaining about the messiness of Windows' system32 folder, providing the user with a link to open it and see for themselves, and the right click context menu changing its color scheme alongside Vega switching to Rigel.
End ID]
#003#Ukagaka#//thought process at like 3AM:#//Hm should I post this on my formal art blog or my reblog blog#//I wonder if there's a chance my name will be recognized šŸ¤” I'll use the reblog blog to be ??? less intimidating?????#//zi you donut your name is also in the url of this blog and PEOPLE WILL NOTICE...#//oh god people are seeing me in places and recognizing my name WHERE HAVE I GONE WRONG#//aaaaaaaaaaaaaaaaaaaaaaaaaaaaa šŸ™ˆ I am very glad my guide has been helpful!!#//Also yeah about the thing with the variable changes in embedded elements#//Changing variables through script input is super great!!#//The problem is uhm... *specifically* in functions where there are multiple possible output scripts and only some of them are supposed to#have the variable change#//Because the weird thing about embedded elements is that any time the function that contains them runs#//All of them run whether the script they are in is picked or not#//So if you have like... 100 dialogues in randomtalk and just one of them has a %(variable_change)#//Every single time the ghost says an idle dialogue the %(variable_change) is run#//And you can see how that would result in unintended behaviors! It's a very common bug#//Because wanting a variable to change in response to a dialogue is common#//But that behavior of embedded elements is not at all intuitive#//And it's not explained in very many places#//Embed tags and raise tags are great for such situations though!#//It's 6AM I hope this is coherent šŸ˜‚#//Would be happy to talk about ghosts another time tho!! šŸ˜Š Always happy to chat about em and excited to see more people making em#//And especially seeing folks get creative with YAYA!
151 notes Ā· View notes