So I'm using the SayAt function because I need the text to appear as a subtitle, it looks good
problem is: I want the speech to be unskippable, but whatever I try, with a simple click the speech ends
Is there a way to make the SayAt function become blocky and unskippable?
Thanks :kiss:
All the blocking Say functions are controlled by Speech.SkipStyle and other properties from the Speech group:
https://adventuregamestudio.github.io/ags-manual/Speech.html#speechskipstyle
When you need to apply this setting only for particular Say* call, it may be more convenient to write a custom extender function that toggles setting, calls SayAt, and toggles setting back, for example:
function SayAtNoSkip(this Character*, int x, int y, int width, const string text)
{
int old_style = Speech.SkipStyle;
Speech.SkipStyle = eSkipTime;
this.SayAt(x, y, width, text);
Speech.SkipStyle = old_style;
}
and used as
WhateverCharacter.SayAtNoSkip(100, 50, 200, "bla bla");
Of course there are other solutions that do not use character speech, such as: text overlays and displaying text on GUI label. These would require to make your own blocking timer using Wait command, like:
SubtitleLabel.Text = text;
SubtitleLabel.Visible = true;
Wait(time);
SubtitleLabel.Visible = false;
Above also may be put into a custom function for easier use.
Thanks Crimson! You are like an angel in the AGS forums! :)