起動時のトークを前回からの期間に応じて変える
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
*起動時のトークを前回からの期間に応じて変える [#v220760f]
[[起動・終了関連]]より。そちらのページも参照のこと。
・「久しぶりに起動した時のトーク内容を変えたい」~
・「一週間以上間を空けて起動した時のトーク内容を変えたい」~
といった起動時のトークを変化させたい時のTIPS。
動作のテストをしたい時はPC内蔵時計の時刻を変更する必要が...
SSPであればメニューから表示できる「開発用パレット」に『現...
----
#contents
----
~
*基準となる時間を設定する [#zdacc966]
里々では起動していない間の時間を算出するための基準がない...
基準を作る方法は色々あるので、好みで選択してください。~
こうして得た基準値を、終了時に記録 → 次の起動時に差を計算...
以下のすべての例で、初期値としてsatori_conf.txtで「$終了...
これはsatori_conf.txt内では読み込みの関係で自作関数を使う...
**ユリウス日 [#v844442c]
ざっくり言うと西暦-4713年11月24日を基準として、ここからの...
-参考
--里々で年月日からユリウス日を計算するスクリプト https://...
--ぽな氏による修正版 https://ponapalt.hatenablog.com/entr...
@ユリウス日での経過日数
(calc,
365*(ユリウス日要素)+(ユリウス日要素)/4
+3059*((if,(A1)>2,-2,10)+(A1))/...
+(ユリウス日要素)/400
-(ユリウス日要素)/100
+(A2)+1721089)
@ユリウス日要素
((A0)-(if,(A1)>2,0,1))
*OnSatoriLoad
$終了日からの経過日数=(call,ユリウス日での経過日数,(...
*OnSatoriClose
$終了日【タブ】(call,ユリウス日での経過日数,(現在年)...
*起動
>一年以上経ってから起動【タブ】(終了日からの経過日数)...
>一月以上経ってから起動【タブ】(終了日からの経過日数)...
:こんにちは。
*一月以上経ってから起動
:こんにちは、お久しぶりです。
*一年以上経ってから起動
:お久しぶりです。私の事覚えてます?
#satori_conf.txtに存在する「*初期化」に1行追加
*初期化
$終了日【タブ】0
**フェアフィールドの公式 [#c2c1bbe9]
ユリウス日同様、正確な日数を算出できます。
-参考
--日数差を取得する https://earlduant.blog.fc2.com/blog-en...
@グレゴリオ暦での経過日数
(calc,
365*(A0)+(A0)/4-(A0)/100+(A0...
+306*(calc,(A1)+1)/10+(A2)-428)
*OnSatoriLoad
$終了日からの経過日数=(call,グレゴリオ暦での経過日数,...
*OnSatoriClose
$終了日【タブ】(call,グレゴリオ暦での経過日数,(現在年...
*起動
>一年以上経ってから起動【タブ】(終了日からの経過日数)...
>一月以上経ってから起動【タブ】(終了日からの経過日数)...
:こんにちは。
*一月以上経ってから起動
:こんにちは、お久しぶりです。
*一年以上経ってから起動
:お久しぶりです。私の事覚えてます?
#satori_conf.txtに存在する「*初期化」に1行追加
*初期化
$終了日【タブ】0
**UNIX時間(EPOCH) [#o6dc3962]
コンピュータがよく使っている、協定世界時 (UTC) の1970/1/1...
上記の方法は日数ですが、こちらは「秒」であることに注意し...
@UNIX時間
(
set,__py,(calc,(A0)-1)
)(
set,__y,(calc,(((A0)%400)+400)%400)
)(
set,__scale,31
(when,(__y)%4==0&&(__y)%100!=0||(__y)%400==0,29...
31 30 31 30 31 31 30 31 30 31
)(
nop,(split,(__scale), )
)(
set,__days,0
)(
times,(calc,(A1)-1),(
set,__days,(calc,(__days)+(S(C0)))
)
)(
set,__jst,(when,(A6)==1,0,32400)
)(
calc,(A3)*3600+(A4)*60+(A5)+(
365*(__py)+(__py)/4-(__py)/100+(__py)/400+(__d...
)*86400-(__jst)
)(
set,__days,
)(
set,__jst,
)(
set,__py,
)(
set,__scale,
)(
set,__y,
)
*OnSatoriLoad
$終了日からの経過秒数=(call,UNIX時間,(現在年),(現...
*OnSatoriClose
$終了日【タブ】(call,UNIX時間,(現在年),(現在月),(...
*起動
>10分以内に起動【タブ】(終了日からの経過秒数)<=60*10
>3時間以内に起動【タブ】(終了日からの経過秒数)<=60*6...
:こんにちは。
*10分以内に起動
:あれ、さっき終了したばかりだよ?
*3時間以内に起動
:また会ったねー。
#satori_conf.txtに存在する「*初期化」に1行追加
*初期化
$終了日【タブ】0
「@UNIX時間」の引数は、A0~A5でそれぞれ年月日時分秒を指...
**SAORI [#w2efcb70]
***YAYA [#jc65d5ef]
GETTIME関数を使いEPOCHからの通算秒数を取得します。
-YAYAの使い方
--公式 https://emily.shillest.net/ayaya/
--wiki内解説 [[SAORI/YAYA]]
***華和梨 [#f8b50935]
dateコマンドを使いEPOCHからの通算秒数を取得します。
-華和梨の使い方
--公式 https://kawari.github.io/
--wiki内解説 [[SAORI/華和梨]]
***time_check.dll [#u3c3e01b]
入手先 → [[梨野:http://www.junkyard.jp/nasino/index.shtml...
あらかじめ「saori」フォルダにtime_check.dllを入れ、satori...
time_check,saori/time_check.dll
の一行を追加しておいてください。
*起動
$終了から経過日数=(time_check、how_many_days、(終了年...
>一年以上経ってから起動【タブ】(終了から経過日数)>=365
>一月以上経ってから起動【タブ】(終了から経過日数)>=30
:こんにちは。
*一月以上経ってから起動
:こんにちは。
(終了日からの経過日数)日ぶりですね。
*一年以上経ってから起動
$終了日からの経過年数=(終了日からの経過日数)/365
:(終了日からの経過年数)年ぶりですね。
私の事覚えてます?
*OnSatoriClose
$終了年【タブ】(現在年)
$終了月【タブ】(現在月)
$終了日【タブ】(現在日)
現在日から過去の日に向かって数えているためhow_many_daysで...
「*」は掛け算、「/」は割り算。~
「術師の隠れ里」さんの ユリウス日の計算スクリプト (ssu.d...
*日数だけでなく時間単位、分単位で起動トークを分けたい [#b...
上で紹介したユリウス日、グレゴリオ暦は日数基準なので、前...
その場合は、この基準数値をもう少し分解していく必要があり...
理論上は基準値を24倍して(現在時)を足せば「時」が基準に、~
さらに60倍して(現在分)を足せば「分」に……といった風には...
しかし、実際には里々が扱える数値には限界があるため、''基...
これは秒にしてあるUNIX時間も同様であり、現時点で
-「ユリウス日」''7桁''
-「グレゴリオ暦での経過日数」''6桁''
-「UNIX時間」''10桁''
……という、とてつもない数字。
計算可能な範囲である2,147,483,647~-2,147,483,648に、×24...
確実に分単位まで比較したい場合、使いたい情報に応じて終了...
以下に解決策を記載していきます。
**分単位のための基準値の整形 [#o3113b8c]
一つの解決策として、結果を里々で扱える範囲に落とし込むと...
例としては、関数を呼び出す時、計算で一番桁数が増えてしま...
具体的には、呼び出す時に与える引数A0(年)を減らせばOKで...
閏年を考慮して4の倍数がベター。~
分単位への計算のため、「$終了日」への代入が 【タブ】 ...
***共通 [#b8d6ac10]
*起動
>10分以内に起動【タブ】(経過した分)<=10
>3時間以内に起動【タブ】(経過した分)<=180
>一年以上経ってから起動【タブ】(経過した日)>=365
>一月以上経ってから起動【タブ】(経過した日)>=30
:こんにちは。
*一月以上経ってから起動
:こんにちは、お久しぶりです。
*一年以上経ってから起動
:お久しぶりです。私の事覚えてます?
*10分以内に起動
:あれ、さっき終了したばかりだよ?
*3時間以内に起動
:また会ったねー。
#satori_conf.txt
*初期化
$終了日【タブ】0
$終了分【タブ】0
***ユリウス日の場合 [#z2ec5ab4]
以下の部分を書き換えます。
*OnSatoriLoad
$経過した日=(call,ユリウス日での経過日数,(現在年)-6...
$経過した分=(call,ユリウス日での経過日数,(現在年)-6...
*OnSatoriClose
$終了日=(call,ユリウス日での経過日数,(現在年)-6000,...
$終了分=(call,ユリウス日での経過日数,(現在年)-6000,...
***フェアフィールドの公式の場合 [#p8e683a7]
以下の部分を書き換えます。
*OnSatoriLoad
$経過した日=(call,グレゴリオ暦での経過日数,(現在年)...
$経過した分=(call,グレゴリオ暦での経過日数,(現在年)...
*OnSatoriClose
$終了日=(call,グレゴリオ暦での経過日数,(現在年)-200...
$終了分=(call,グレゴリオ暦での経過日数,(現在年)-200...
***UNIX時間の場合 [#l351a084]
以下の部分を書き換えます。
*OnSatoriLoad
$経過した日=(call,UNIX時間,(現在年)-40,(現在月),...
$経過した分=(call,UNIX時間,(現在年)-40,(現在月),...
*OnSatoriClose
$終了日=(call,UNIX時間,(現在年)-40,(現在月),(現...
$終了分=(call,UNIX時間,(現在年)-40,(現在月),(現...
いわゆる2038年問題もこうした修正で一応の回避ができます。
***補足 [#g71e14c8]
上記の$終了日と$終了分は、ただ1440倍しただけで似た値に...
それはズバリ''「日を跨いだかどうか」''です。~
例えば、24時間(=1440分)きっかりを判定するのか、それとも...
終了行:
*起動時のトークを前回からの期間に応じて変える [#v220760f]
[[起動・終了関連]]より。そちらのページも参照のこと。
・「久しぶりに起動した時のトーク内容を変えたい」~
・「一週間以上間を空けて起動した時のトーク内容を変えたい」~
といった起動時のトークを変化させたい時のTIPS。
動作のテストをしたい時はPC内蔵時計の時刻を変更する必要が...
SSPであればメニューから表示できる「開発用パレット」に『現...
----
#contents
----
~
*基準となる時間を設定する [#zdacc966]
里々では起動していない間の時間を算出するための基準がない...
基準を作る方法は色々あるので、好みで選択してください。~
こうして得た基準値を、終了時に記録 → 次の起動時に差を計算...
以下のすべての例で、初期値としてsatori_conf.txtで「$終了...
これはsatori_conf.txt内では読み込みの関係で自作関数を使う...
**ユリウス日 [#v844442c]
ざっくり言うと西暦-4713年11月24日を基準として、ここからの...
-参考
--里々で年月日からユリウス日を計算するスクリプト https://...
--ぽな氏による修正版 https://ponapalt.hatenablog.com/entr...
@ユリウス日での経過日数
(calc,
365*(ユリウス日要素)+(ユリウス日要素)/4
+3059*((if,(A1)>2,-2,10)+(A1))/...
+(ユリウス日要素)/400
-(ユリウス日要素)/100
+(A2)+1721089)
@ユリウス日要素
((A0)-(if,(A1)>2,0,1))
*OnSatoriLoad
$終了日からの経過日数=(call,ユリウス日での経過日数,(...
*OnSatoriClose
$終了日【タブ】(call,ユリウス日での経過日数,(現在年)...
*起動
>一年以上経ってから起動【タブ】(終了日からの経過日数)...
>一月以上経ってから起動【タブ】(終了日からの経過日数)...
:こんにちは。
*一月以上経ってから起動
:こんにちは、お久しぶりです。
*一年以上経ってから起動
:お久しぶりです。私の事覚えてます?
#satori_conf.txtに存在する「*初期化」に1行追加
*初期化
$終了日【タブ】0
**フェアフィールドの公式 [#c2c1bbe9]
ユリウス日同様、正確な日数を算出できます。
-参考
--日数差を取得する https://earlduant.blog.fc2.com/blog-en...
@グレゴリオ暦での経過日数
(calc,
365*(A0)+(A0)/4-(A0)/100+(A0...
+306*(calc,(A1)+1)/10+(A2)-428)
*OnSatoriLoad
$終了日からの経過日数=(call,グレゴリオ暦での経過日数,...
*OnSatoriClose
$終了日【タブ】(call,グレゴリオ暦での経過日数,(現在年...
*起動
>一年以上経ってから起動【タブ】(終了日からの経過日数)...
>一月以上経ってから起動【タブ】(終了日からの経過日数)...
:こんにちは。
*一月以上経ってから起動
:こんにちは、お久しぶりです。
*一年以上経ってから起動
:お久しぶりです。私の事覚えてます?
#satori_conf.txtに存在する「*初期化」に1行追加
*初期化
$終了日【タブ】0
**UNIX時間(EPOCH) [#o6dc3962]
コンピュータがよく使っている、協定世界時 (UTC) の1970/1/1...
上記の方法は日数ですが、こちらは「秒」であることに注意し...
@UNIX時間
(
set,__py,(calc,(A0)-1)
)(
set,__y,(calc,(((A0)%400)+400)%400)
)(
set,__scale,31
(when,(__y)%4==0&&(__y)%100!=0||(__y)%400==0,29...
31 30 31 30 31 31 30 31 30 31
)(
nop,(split,(__scale), )
)(
set,__days,0
)(
times,(calc,(A1)-1),(
set,__days,(calc,(__days)+(S(C0)))
)
)(
set,__jst,(when,(A6)==1,0,32400)
)(
calc,(A3)*3600+(A4)*60+(A5)+(
365*(__py)+(__py)/4-(__py)/100+(__py)/400+(__d...
)*86400-(__jst)
)(
set,__days,
)(
set,__jst,
)(
set,__py,
)(
set,__scale,
)(
set,__y,
)
*OnSatoriLoad
$終了日からの経過秒数=(call,UNIX時間,(現在年),(現...
*OnSatoriClose
$終了日【タブ】(call,UNIX時間,(現在年),(現在月),(...
*起動
>10分以内に起動【タブ】(終了日からの経過秒数)<=60*10
>3時間以内に起動【タブ】(終了日からの経過秒数)<=60*6...
:こんにちは。
*10分以内に起動
:あれ、さっき終了したばかりだよ?
*3時間以内に起動
:また会ったねー。
#satori_conf.txtに存在する「*初期化」に1行追加
*初期化
$終了日【タブ】0
「@UNIX時間」の引数は、A0~A5でそれぞれ年月日時分秒を指...
**SAORI [#w2efcb70]
***YAYA [#jc65d5ef]
GETTIME関数を使いEPOCHからの通算秒数を取得します。
-YAYAの使い方
--公式 https://emily.shillest.net/ayaya/
--wiki内解説 [[SAORI/YAYA]]
***華和梨 [#f8b50935]
dateコマンドを使いEPOCHからの通算秒数を取得します。
-華和梨の使い方
--公式 https://kawari.github.io/
--wiki内解説 [[SAORI/華和梨]]
***time_check.dll [#u3c3e01b]
入手先 → [[梨野:http://www.junkyard.jp/nasino/index.shtml...
あらかじめ「saori」フォルダにtime_check.dllを入れ、satori...
time_check,saori/time_check.dll
の一行を追加しておいてください。
*起動
$終了から経過日数=(time_check、how_many_days、(終了年...
>一年以上経ってから起動【タブ】(終了から経過日数)>=365
>一月以上経ってから起動【タブ】(終了から経過日数)>=30
:こんにちは。
*一月以上経ってから起動
:こんにちは。
(終了日からの経過日数)日ぶりですね。
*一年以上経ってから起動
$終了日からの経過年数=(終了日からの経過日数)/365
:(終了日からの経過年数)年ぶりですね。
私の事覚えてます?
*OnSatoriClose
$終了年【タブ】(現在年)
$終了月【タブ】(現在月)
$終了日【タブ】(現在日)
現在日から過去の日に向かって数えているためhow_many_daysで...
「*」は掛け算、「/」は割り算。~
「術師の隠れ里」さんの ユリウス日の計算スクリプト (ssu.d...
*日数だけでなく時間単位、分単位で起動トークを分けたい [#b...
上で紹介したユリウス日、グレゴリオ暦は日数基準なので、前...
その場合は、この基準数値をもう少し分解していく必要があり...
理論上は基準値を24倍して(現在時)を足せば「時」が基準に、~
さらに60倍して(現在分)を足せば「分」に……といった風には...
しかし、実際には里々が扱える数値には限界があるため、''基...
これは秒にしてあるUNIX時間も同様であり、現時点で
-「ユリウス日」''7桁''
-「グレゴリオ暦での経過日数」''6桁''
-「UNIX時間」''10桁''
……という、とてつもない数字。
計算可能な範囲である2,147,483,647~-2,147,483,648に、×24...
確実に分単位まで比較したい場合、使いたい情報に応じて終了...
以下に解決策を記載していきます。
**分単位のための基準値の整形 [#o3113b8c]
一つの解決策として、結果を里々で扱える範囲に落とし込むと...
例としては、関数を呼び出す時、計算で一番桁数が増えてしま...
具体的には、呼び出す時に与える引数A0(年)を減らせばOKで...
閏年を考慮して4の倍数がベター。~
分単位への計算のため、「$終了日」への代入が 【タブ】 ...
***共通 [#b8d6ac10]
*起動
>10分以内に起動【タブ】(経過した分)<=10
>3時間以内に起動【タブ】(経過した分)<=180
>一年以上経ってから起動【タブ】(経過した日)>=365
>一月以上経ってから起動【タブ】(経過した日)>=30
:こんにちは。
*一月以上経ってから起動
:こんにちは、お久しぶりです。
*一年以上経ってから起動
:お久しぶりです。私の事覚えてます?
*10分以内に起動
:あれ、さっき終了したばかりだよ?
*3時間以内に起動
:また会ったねー。
#satori_conf.txt
*初期化
$終了日【タブ】0
$終了分【タブ】0
***ユリウス日の場合 [#z2ec5ab4]
以下の部分を書き換えます。
*OnSatoriLoad
$経過した日=(call,ユリウス日での経過日数,(現在年)-6...
$経過した分=(call,ユリウス日での経過日数,(現在年)-6...
*OnSatoriClose
$終了日=(call,ユリウス日での経過日数,(現在年)-6000,...
$終了分=(call,ユリウス日での経過日数,(現在年)-6000,...
***フェアフィールドの公式の場合 [#p8e683a7]
以下の部分を書き換えます。
*OnSatoriLoad
$経過した日=(call,グレゴリオ暦での経過日数,(現在年)...
$経過した分=(call,グレゴリオ暦での経過日数,(現在年)...
*OnSatoriClose
$終了日=(call,グレゴリオ暦での経過日数,(現在年)-200...
$終了分=(call,グレゴリオ暦での経過日数,(現在年)-200...
***UNIX時間の場合 [#l351a084]
以下の部分を書き換えます。
*OnSatoriLoad
$経過した日=(call,UNIX時間,(現在年)-40,(現在月),...
$経過した分=(call,UNIX時間,(現在年)-40,(現在月),...
*OnSatoriClose
$終了日=(call,UNIX時間,(現在年)-40,(現在月),(現...
$終了分=(call,UNIX時間,(現在年)-40,(現在月),(現...
いわゆる2038年問題もこうした修正で一応の回避ができます。
***補足 [#g71e14c8]
上記の$終了日と$終了分は、ただ1440倍しただけで似た値に...
それはズバリ''「日を跨いだかどうか」''です。~
例えば、24時間(=1440分)きっかりを判定するのか、それとも...
ページ名: