Entry

OnTalk

スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー

OnTalkで分岐させると、全トーク中からランダムなトークの分岐ができます。

# 【例】1/2の確率で食べ物トーク
*OnTalk
>(R1)【タブ】(R0)
$テスト変数=(乱数1~2)
>食べ物のトーク【タブ】(テスト変数)==1
()

*食べ物のトーク
:ご飯大好き
# 【例】選択肢付き
# 「食べ物トークして」と言われた場合に1/2の確率で食べ物トーク
*食べ物トークして
$食物=1
:わかったよ。

*食べ物トークしないで
$食物=0
:わかったよ。

*OnTalk
>(R1)【タブ】(R0)
$テスト変数=(乱数1~2)
>食べ物のトーク【タブ】(テスト変数)==1&&(食物)==1
()

>食べ物のトーク【タブ】(乱数1~2)==1
と書いたら動かなかった。

# 【例】1/10の確率でイベント日のトークをする
*OnTalk
>(R1)【タブ】(R0)
$テスト変数=(乱数1~10)
>イベント日トーク【タブ】(テスト変数)==1
()

*イベント日トーク
()
#↑当日イベント日ではない時にランダムトークをする

*イベント日トーク【タブ】5月5日==(現在月)月(現在日)日
:こどもの日だから柏餅食べたい!!

*イベント日トーク【タブ】12月24日==(現在月)月(現在日)日
:イブだからチキン食べたい!!

OnTalkに仕込む利点は、
  *【タブ】5月5日==(現在月)月(現在日)日
  :こどもの日だから柏餅食べたい!!
と書くと「1/全トーク数」という低い割合で喋るのに対し、1/10と比較的高い割合でイベント日のトークをしてくれること。



link
駄でべろぱ>畝傍>里々における季節の自動判定、季節トークの呼出し(例は梅雨の時期にのみ特定のトーク)

replace

スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー
ファイル 27-1.txt

オーナードロー

スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー

オーナードローで深夜0時のみに現れる裏メニュー

オーナードロー見る人少ないと思うのでダブルクリックででるところに仕込んだほうがいいのとちゃんと裏メニューありますって言っておかないと見つけてもらえない

*sakura.recommendsites
(unless、(現在時)==0、-、裏メニュー)
script:\![raise,OnMenuExec,裏メニュー]

*OnMenuExec
>メニューから実行(R0)

*メニューから実行裏メニュー
:やあやあよく見つけたね。

コミュニケート関連

スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー スーパーコピー

ゴースト間同士

サトリwiki>コミュニケート
トークは両ゴーストの辞書の更新が必要。返答の誤爆の可能性あり。
大根(駄でべろぱの小ネタWiki)  LR /大根LR /大根2捕捉)、 レゴキチ/大根3
トークは両ゴーストの辞書の更新が必要。上記のやつに変数を付けて送る。返答の誤爆の可能性なし。
駄でべろぱの小ネタWiki>台本コミュニケート仕様書
トークは片方のゴーストの更新だけで大丈夫。返答の誤爆の可能性あり。

通常&台本コミュニケートだと、語彙が少ないキャラだと誤爆する。(返事が「‥‥」だけだったりが多いと返信できない。)
サトリだと$Value0とかやたら行が増えるからset使えば良いと思うよ

台本コミュニケート+大根2を使ったコミュニケーション方法のサンプル

ダウンロードファイル 20-1.txt

良い所:トーク辞書が片方のゴーストで済む、返答が誤爆しない
⇒コミュニケートトークが片方のゴーストだけなのでゴーストが同作者用(受側は辞書を直したくても勝手に直せない)
2011.02.10更新:変数を少なくした。相手のゴースト名を必須にした。
2011.02.11更新:変数が間違ってた。さらに修正。更新終了。
2012.07.28更新:一部間違ってた。てへぺろ
---
ECHO/1.0名義じゃなくても良いかもね。

ゴースト:ユーザ間

基本:サトリwiki>コミュニケート
超便利(らしい)saori:KeywordReg
正規表現を使った処理方法のサンプル:ファイル 20-2.txt
 *YAYA as SAORI必須

日にち計算

括弧で取得できる変数

(現在年)(現在月)(現在日)(現在曜日)(現在時)(現在分)(現在秒)

現在の干支

(nswitch,(現在年)%12+1,申,酉,戌,亥,子,丑,寅,卯,辰,巳,午,未)

月齢

結果は整数。だいたいの数で出ます。
出典 http://koyomi8.com/directjp.cgi?http://koyomi8.com/reki_doc/doc_0250.htm

(calc,((((現在年)-2009)%19)*11+(現在月)+(現在日))%30+(if,(現在月)<3,2,0))

西暦

細かいですが、閏年は考えていません。

(calc,(現在年)*365+(現在日)+(nswitch,(現在月),0,31,59,90,120,151,181,212,243,273,304,334))

参考;久しぶりに起動した時トーク内容を変える

nob さんのツイッターから転載(https://twitter.com/nobml)

https://twitter.com/nobml/status/286863843399983104

*復活祭計算 
$A=(24+19*((現在年)%19))%30 
$B=(A)-(A)/28 
$C=(B)-((現在年)+(現在年)/4+(B)-13)%7 
$祭月=3+((C)+40)/44 
$祭日=(C)+28-31*((祭月)-3) 
https://twitter.com/nobml/status/287122523202666497

*ユリウス日計算 
$A=((現在月)+9)/12+(現在年) 
$X=7*(A)/4 
$Y=275*(現在月)/9 
$ユリウス日=367*(現在年)-(X)+(Y)+(現在日)+1721014 
1900年3月~2100年2月で有効

ユリウス日

無限花序>「ユリウス日」からわかること

YAYA as SAORI用追加モジュール

calendae.aym 

SAORI

梨野>time_check.dll

*と$

確認用メモ

*
$好感度=(好感度)+1
↑左側に括弧はつけない。トーク内や条件式では「(好感度)」と表記

*好感度
↑×変数名とジャンプ先のイベント名は被ってはいけない。

*0
↑×数字のみの場合も不可。サーフェス番号と被るから。

*【タブ】条件式
でトークに採用条件を書けられる。条件式に合わないと喋らない。
@単語群も可。ただし@の場合は、合う条件が無いと括弧つきでそのまま表示される。

*【タブ】(現在曜日)==日
:今日は日曜日。(曜日トーク)
*【タブ】(現在曜日)!=日
:今日は(現在曜日)曜日。(曜日トーク)

@曜日トーク【タブ】(現在曜日)==日
嬉しい。
@曜日トーク
楽しい。

別モード関連

辞書フォルダを読み込む

※辞書フォルダはsatori_conf.txt の「*初期化」で 指定できません

*
:辞書フォルダ「01」へ切り替え
$辞書フォルダ【タブ】01

*
:辞書フォルダをmasterに戻す
$辞書フォルダ【タブ】.

*
:masterの辞書フォルダと「01」と「02」を読み込む
$辞書フォルダ【タブ】.,01,02

デフォルトサーフェス

素を怒った顔にしたりできるよ。
他にも、初回起動時にサーフェスを表示させたくない場合、satori_conf.txt でデフォルトサーフェスに空画像を指定してあげると有効。

$デフォルトサーフェス0【タブ】100
$デフォルトサーフェス1【タブ】200

サーフェス加算値

$サーフェス加算値0【タブ】100

と指定した場合、
¥0(0)と書くと、サーフェスが加算されて(この場合はsurface100.png)表示される。
※¥0¥s[0]と書くと、加算されない状態のsurface0.pngが表示される。
※デフォルトサーフェスと組み合わせる場合、サーフェス加算値を先に設定する

*
:おやすみなさい。布団に入るね。
$辞書フォルダ【タブ】sleep
$サーフェス加算値0【タブ】100
$サーフェス加算値1【タブ】200
$デフォルトサーフェス0【タブ】100
$デフォルトサーフェス1【タブ】210

ssu.dll の定義

satori_conf.txt に記述

@SAORI
calc,saori/ssu.dll,calc
calc_float,saori/ssu.dll,calc_float
if,saori/ssu.dll,if
unless,saori/ssu.dll,unless
nswitch,saori/ssu.dll,nswitch
switch,saori/ssu.dll,switch
substr,saori/ssu.dll,substr
split,saori/ssu.dll,split
replace,saori/ssu.dll,replace
replace_first,saori/ssu.dll,replace_first
erase,saori/ssu.dll,erase
erase_first,saori/ssu.dll,erase_first
count,saori/ssu.dll,count
compare,saori/ssu.dll,compare
compare_head,saori/ssu.dll,compare_head
compare_tail,saori/ssu.dll,compare_tail
length,saori/ssu.dll,length
zen2han,saori/ssu.dll,zen2han
han2zen,saori/ssu.dll,han2zen
hira2kata,saori/ssu.dll,hira2kata
kata2hira,saori/ssu.dll,kata2hira
sprintf,saori/ssu.dll,sprintf
iflist,saori/ssu.dll,iflist
is_empty,saori/ssu.dll,is_empty
is_digit,saori/ssu.dll,is_digit
is_alpha,saori/ssu.dll,is_alpha

#ポストと狛犬に含まれていない部分
choice,saori/ssu.dll,choice
join,saori/ssu.dll,join

#Mc129以降
reverse,saori/ssu.dll,reverse
at,saori/ssu.dll,at
lsimg,saori/ssu.dll,lsimg
mkdir,saori/ssu.dll,mkdir

引数区切り

里々Wiki>引数区切り追加より
初期状態では実行されている

$引数区切り追加【タブ】、
$引数区切り追加【タブ】、
$引数区切り追加【タブ】,
$引数区切り追加【タブ】,
$引数区切り追加【タブ】(sprintf,%c,1)

追加する場合、*OnSatoriLoadで設定する(保存はされない)

*OnSatoriLoad
$引数区切り追加【タブ】(sprintf,%c,3)

とすると、(sprintf,%c,3)が引数区切りとして使える。
例 (if(sprintf,%c,3)(乱数1~2)>1(sprintf,%c,3)1だよ)

「、」が引数に使えないときなどに便利。

replace.txtに
、【タブ】、\w4
と記入するのはダメ。replace_after.txtに指定しよう。

未分類

辞書

トーク頻度の設定
深瀬さんのブログ参照
自動挿入ウェイトの倍率
あまり意味無いかもしれない
誕生日関連
誕生日設定はサトリwiki/誕生日を覚えさせる参照
1/○ の確率で\1側が時計あわせをしてくれる
なんてことはない。
会話時に音を鳴らす
yusuraさんのブログ参照
ゴーストからのWeb拍手
Don/里々の小技参照
time_check.dll
time_check.dllを使用した、ネットワーク更新の間隔に応じたトーク
Communicate.txt
コミュ
関連;The Zakki./王道コミュワード集関係

起動時のサーフェスを表示させたくない

■方法その1:\s[-1]を使う
*OnBoot
$会話時サーフェス戻し【タブ】無効
:\s[-1]誰も居ません。
$会話時サーフェス戻し【タブ】有効
■方法その2:空画像を使う
\s[-1]だとバルーン位置が変わるため、空画像を使って同じサイズで表示させる。 空画像の場合、「デフォルトサーフェス」で変更を指定する。
*OnBoot
$デフォルトサーフェス0【タブ】1000
:(1000)誰も居ないよ。
$デフォルトサーフェス0【タブ】0

$次のトークが動作しない

「$次のトーク」の後に、
$手動セーブ【タブ】実行
を行い、かつ*OnSatoriBootや*OnSatoriLoadで
$トーク予約のキャンセル【タブ】*
を記入しているとトークの予約を消されてしまう

カウントダウン

*カウントダウン設定
$カウントダウン【タブ】1
:じゃあはじめるね。

*OnSecondChange
>カウントダウン開始【タブ】(カウントダウン)&&(現在秒)>=50

*カウントダウン開始
:\_q(han2zen,(calc,60-(現在秒)))\_q

ユーザ名を一文字ずつ改行

*
$ユーザ名【タブ】あいうえお
$開始カウント【タブ】0
$終了カウント【タブ】(calc,(length,(ユーザ名))-1)
:(substr,(ユーザ名),(開始カウント),1)・
>名前ループ

*名前ループ
$開始カウント【タブ】(開始カウント)+1
:(substr,(ユーザ名),(開始カウント),1)・
>名前ループ終了【タブ】(終了カウント)==(開始カウント)
>名前ループ

*名前ループ終了
:終わり

二行目に注意。内部関数(loopとかsetとか)を使わずに、変数(ユーザ名)を改行せずに表示できる方法があれば教えて頂きたく。 下は内部関数callでのやり方。Legokichiさんから教えていただきました。ありがとうございます。

(call,一文字ずつ改行,あいうえお)

@一文字ずつ改行
(substr,(A0),0,1)\n((unless,(length,(A0))==1,call,nop),一文字ずつ改行,(erase_first,(A0),(substr,(A0),0,1)))

時間

#特にトークが設定されていなければ「(現在時)時です。」とだけ喋る。
*OnMinuteChange
>(現在分)分
*0分
>(現在時)時
:(現在時)時です。

#現在分が一桁のときに、頭にゼロを置く
(if,(現在分)<10,0)(現在分)

サーフェス確認

*サーフェス確認
:\_q\q[1,顔] \q[2,顔] \q[3,顔] \q[4,顔]
*顔
:((選択ラベル))

Page