>現在時刻の~~秒前になったら
現在より前の話なのに「なったら」という未来の話になっていて
ちょっと意味がわからないのですが、
「設定した時刻の~~秒前」という意味だと解釈させていただきます。
何が出来ないのか細かい所がわかりませんが
とりあえず、簡単にAPIのtimeGetTime関数を利用して10秒カウントするソースを作ってみました。
#uselib "winmm.dll"
#func timeGetTime "timeGetTime"
start_time = timeGetTime(); // 開始時間の取得(ms)
end_time = start_time + 10000; // 終了時間の設定(10秒後)
repeat
time = end_time - timeGetTime(); // 残り時間の算出
if( time <= 0 ): break; // 残り時間が0になったらループを抜ける
time_s = time / 1000; // ミリ秒を秒に変換
time_ms = time \ 1000;
redraw 0;
color 255, 255, 255: boxf;
color 0, 0, 0: pos 0, 0;
mes strf("%d.%03d秒前", time_s, time_ms);
redraw 1;
await 1;
loop
dialog "終了";
stop;
ほかにも標準関数のgettimeを使う方法もありますし、
WM_TIMERを利用する方法もあります。
『現在の時間』と『設定した時間』までの差が〇秒になったら何かをするという処理は
ifを使えば簡単に出来ます。
そして文字を数値にするのはintを使うだけで出来ます。
a = "123"; // 文字列
b = int(a); // 整数値型に変換
c = b + 1111; // 適当な計算
mes a;
mes b
mes c;