aiちゅーん/スクリプトファイル形式

Last-modified: 2009-03-21 (土) 14:11:45

このページは、ユーザーが解析した結果であって公式発表があったものではありません。
ここのデーターを使って不具合等が起こってもWikiは一切責任を持ちません。
また、運営に問い合わせ等もしないようお願いします。

スクリプトファイル形式

2008年09月29日作成スクリプトファイル($$ ver.0)より作成
ここで使用している名称等は公式ではありません(セクション等)
2009年03月現在スクリプトファイルのバージョンは$$ ver.1なのでこの形式をそのまま利用する事ができません。
注意して使用して下さい。

スクリプトファイル

  • ファイルの拡張子は*.csv
  • 文字コードはUTF-16(Unicode) リトルエンディアン
  • 改行文字は0x0A,0x00(U+000A)(Unicode標準の0x0D,0x00,0x0A,0x00(U+000D,U+000A)ではない)*1

  • Unicodeの認識のため、最初のバイナリ2byteはBOMの0xFF,0xFE(U+FEFF)
  • 以降、データの後、0x0A,0x00(U+000A)で改行

  • フォルダ構成
    user
    └****     ←(ユーザー固有の番号(入国応募でもらう番号?))
      └1
        ├ai
        │ ├─name
        │ │  └*1.csv
        │ └ailist.csv
        └キャラクタ名
           ├save
           └*2.csv

ailist.csvリストファイル*2
*1.csvリストの中にあるファイルの実体・スクリプトファイル *1はちゅーん名
*2.csvリストの中にある変数の状況を示すファイル *2はキャラドル名
  • ailist.csvの形式
    (上手く表現できないので、実際に開いて確認してください)
    S-JISで書かれています
    また、スクリプトファイルのような特殊な改行コードは使用していません
    よって、Excelから編集が可能です
    nはそのファイルが何番目のファイルかを示します(1から順に追加)
    ブロックごとに[]の中に入力します([]は無視してください)
    [n][,][スクリプトファイル名][0x0D0A][n][id][,][n + 1 の値][0x0D0A]
  • Excelでの入力方法
    nスクリプトファイル名
    n[id]n + 1 の値*3
    上の形で追加すると正常に認識されます

スクリプトファイルを外部(Excel等)で開いているとai sp@ceクライアントでの保存に失敗する
保存に失敗した場合でもメッセージが出ないので注意

スクリプト全体の流れ

デフォルトで登録されているスクリプトを参考に記述します。
おそらく上から順番に優先順位が強い?(TALK(優先順位1)->FIND(優先順位2)->OTHER(優先順位3))

スクリプトファイルヘッダー
セクション[TALK]
[TALK]-屋内
[TALK]-屋外
セクション[FIND]
[FIND]-屋内
[FIND]-屋外
セクション[OTHER]
[OTHER]-屋内
[OTHER]-屋外

イベント別のスクリプト処理

スクリプトファイルヘッダー

1つのファイルに1つのみ

$$ ver.--にバージョン番号が入る
##c,,スクリプトファイル全体のコメント(カンマ内を認識)
##n,,スクリプトファイル作成者(カンマ内を認識)

コメントアウト

#以降はコメント
ただし、INITJUDGEFOOTER内に書くと話すとして認識されてしまう*4

セクション(仮)

セクション(仮)は3つのイベントに分かれている。

[TALK]話しかけられた
[FIND]見つけた
[OTHER]その他

内部で屋内・屋外に処理が分かれる。
イベント別のスクリプト


[TALK]

キャラドルに話しかけた時に発生するイベント

[FIND]

キャラドルが対象(指定可能)を見つけたときに発生するイベント

[OTHER]

その他(移動時間等の基本条件)


イベント別のスクリプト処理

  • 屋内・屋外の処理に分かれる
    FILEBLOCKHEAD
     
    [TALK]
    FILEBLOCKHEAD,talk\indoor,
    →屋内で話しかけたときのイベントへ
    FILEBLOCKEND,,
    FILEBLOCKHEAD,talk\outdoor,
    →屋外で話しかけたときのイベントへ
    FILEBLOCKEND,,
    RETURN,,
    [FIND]
    FILEBLOCKHEAD,find\indoor,
    →屋内で見つけた(?)時のイベントへ
    FILEBLOCKEND,,
    FILEBLOCKHEAD,find\outdoor,
    →屋外で見つけた(?)時のイベントへ
    FILEBLOCKEND,,
    RETURN,,
    [OTHER]
    FILEBLOCKHEAD,other\indoor,
    →屋内・その他のイベントへ
    FILEBLOCKEND,,
    FILEBLOCKHEAD,other\outdoor,
    →屋外・その他のイベントへ
    FILEBLOCKEND,,
    RETURN,,
  • 条件分岐
    上のイベント別を基本に、対象や時間を条件に分岐を行います。
    条件分岐

条件分岐

  • スクリプトの開始時点で条件を振り分けることができます。→INITJUDGE
  • スクリプト内での条件の分岐はIF(条件分岐)を使用します
  • スクリプトを一度実行した後、再実行する条件を指定することができます。→RECAST

スクリプト

スクリプト目次

EMOTION_SETエモーションの実行
EMOTION_WAITエモーション待ち
FILEBLOCKHEADパターンのイベント・場所を指定
FILEBLOCKENDFILEBLOCKHEADの終了タグ
FILEJUMPジャンプ
FLAG_SETフラグ
HEADERヘッダー
FOOTERヘッダーを閉じる
IF条件分岐
ENDIF条件分岐を閉じる*5
INITJUDGE実行条件判断
MOVE_SET移動
MOVE_WAIT移動待ち
RECAST再実行条件
RETURNセクションの終了
TALKチャットウィンドウに文字を追加
TARGET_SETターゲット
VARIABLE_CALC
VARIABLE_SET変数
WAITウェイト

EMOTION_SET

  • 説明
    実行するエモーションを設定します
  • 書き方
    EMOTION_SET,A\B,
    A,B説明
    Aname???
    Bnobうなずく
    no首を横に振る
    tumble転ぶ
    joyガッツポーズ
    signifier指を刺す
    bye手を振る
    speak話す
    sheepish恥ずかしがる
    bashful照れる
    disappointがっかりする
    fluster慌てる
    surveyキョロキョロする
    loath頭を抱える
    happy嬉しい
    sad悲しい
    cry泣く
    cadgeねだる
    urprised驚く
    clap拍手
    peaceピース
    dither迷う
    openarms両手を広げる
    think考え事
    swagger威張る
    secret内緒
    promise約束
    wait1ウェイトモーション
    wait2ウェイトモーション2
    wait3ウェイトモーション3

EMOTION_WAIT


FILEBLOCKHEAD

  • 説明
    パターン・場所の条件分離?
  • 書き方
    FILEBLOCKHEAD,A¥B,*6
    カンマを忘れないように!
    Aイベントtalk話しかけられた
    find見つけた
    otherその他
    B場所indoor屋内
    outdoor屋外
  • 組み合わせ
    \は円記号(¥*7)を半角で入力して下さい。*8
    ,talk\indoor,話しかけられた&屋内
    ,talk\outdoor,話しかけられた&屋外
    ,find\indoor,見つけた&屋内
    ,find\outdoor,見つけた&屋外
    ,other\indoor,その他&屋内
    ,other\outdoor,その他&屋外
  • 関連

FILEBLOCKEND

  • 説明
    FILEBLOCKHEADのイベントタグを閉じる
  • 書き方
    FILEBLOCKEND,,

FILEJUMP

  • 説明
    別のファイルに処理を飛ばす
    当然ながらスクリプトが書かれているファイル自身に飛ばすことは無理です
    また、現在FILEJUMPを作成するとA\Bの値が必ずtalk\indoorになっているため、動作しないことが確認されています。(Cβ現在)
    したがって、室内では動作します。
    もしも、室外でも使用させたい時は、バイナリエディタ等でスクリプトファイルを開き、ジャンプさせたいFILEJUMPのBの値をoutdoorに変更することを推奨します(変更時に関係ない部分を変更しないように注意して下さい!)
    (メモ帳での修正はOK(この場合、新たに改行を作成しないで下さい。異なる改行コードが作成されてしまいます))
    (Excelからの修正はどんな場合でも改行コードが変換されるのでNG)
  • 書き方
    FILEJUMP,A\B,C,
    A,B説明
    AFILEBLOCKHEADのAと同じそのファイルのセクション
    BFILEBLOCKHEADのAと同じそのファイルの場所
    Cジャンプファイル名ジャンプ先のファイル。一度クリックするとそのファイルのアイコンの上にジャンプアイコンが出て一度点滅する

FLAG_SET

  • 説明
    フラグの設定を行います
    ON/OFFの設定ができます
  • 書き方
    FLAG_SET,A\B,C\D,
    (下の形式は一つの形式(target)から推測した形式です。これ以外の形であるかもしれません)
    ABCDEF説明
    target[フラグ名]on_off[onかoff]--ターゲットのフラグを指定して設定する
    master--主人のフラグを指定して設定する
    friendanybody[フラグ名]on_off[onかoff]-フレンドのフラグを指定して設定する
    nameフレンド名[フラグ名]on_off[onかoff]
    dollキャラドル名[フラグ名]on_off[onかoff]-キャラドルのフラグを指定して設定する
    name指定する名前名前を指定したキャラクターのフラグを指定して設定する
    global[フラグ名]on_off[onかoff]--グローバルフラグを指定して設定する

HEADER

  • 説明
    スクリプトファイルの内部ファイルの始まり
    FOOTERで閉じるのを忘れないこと
  • 書き方
    HEADER,A,B\C,D,
    A,B,C,D説明
    Anormal???
    B[FILEBLOCKHEADのAと同じ]パターン
    C[FILEBLOCKHEADのBと同じ]場所
    D[文字]内部ファイル名("等は必要ない)

FOOTER


IF

  • 説明
    条件分岐を行います。
  • 書き方
    書式は様々
    Aの値説明
    targetターゲット
    master主人
    friendフレンド
    roboキャラドル
    npcNPC
    date時間パラメータ
    distance距離
    flagフラグ
    variable変数
    basejudge基本条件
  • ターゲット・主人
Bの値Cの値Dの値Eの値Fの値Gの値Hの値説明
bloodgroup==
or
!=
targetbloodgroup---1
masterbloodgroup---2
friendanybodybloodgroup--3
nameフレンド名bloodgroup-4
robo*9anybodybloodgroup--5
nameキャラドル名bloodgroup-6
npcanybodybloodgroup--7
name島名NPC名bloodgroup8
bloodgroup血液型---9
birthdaytargetbirthday---10
masterbirthday11
friendanybodybirthday12
nameフレンド名birthday13
roboanybodybirthday14
nameキャラドル名birthday15
npcanybodybirthday16
name島名NPC名birthday17
datetime_clock18
value_dow曜日19
value_date数値(月)数値(日)20
value_dow_clock曜日数値(時)数値(分)21
value_date_clock数値(月)数値(日)数値(時)数値(分)22

ターゲット(or主人)の血液型が…

  • 1…ターゲットの血液型と
  • 2…主人の血液型と
  • 3…フレンド(誰でも)の血液型と
  • 4…フレンド(名前指定)の血液型と
  • 5…キャラドル(誰でも)の血液型と
  • 6…キャラドル(名前指定)の血液型と
  • 7…NPC(誰でも)の血液型と
  • 8…NPC(名前指定)の血液型と
  • 9…指定した血液型と
    等しい(or 等しくない)

ターゲット(or主人)の誕生日が…

  • 10…ターゲットの誕生日と
  • 11…主人の誕生日と
  • 12…フレンド(誰でも)の誕生日と
  • 13…フレンド(名前指定)の誕生日と
  • 14…キャラドル(誰でも)の誕生日と
  • 15…キャラドル(名前指定)の誕生日と
  • 16…NPC(誰でも)の誕生日と
  • 17…NPC(名前指定)の誕生日と
  • 18…現在時刻と
  • 19…曜日と
  • 20…日時と
  • 21…曜日と
  • 22…月日と
    等しい(or 等しくない)
  • フレンド・キャラドル・NPC*10

誰でも

Bの値Cの値Dの値Eの値Fの値Gの値Hの値Iの値説明
anybodybloodgroup==
or
!=
targetbloodgroup---1
master---2
friendanybodybloodgroup--3
nameフレンド名bloodgroup-4
roboanybodybloodgroup--5
nameキャラドル名bloodgroup-6
npcanybodybloodgroup--7
npcname島名NPC名bloodgroup8
bloodgroup血液型---9
birthdaytargetbirthday---10
master---11
friendanybodybirthday--12
nameフレンド名birthday-13
roboanybodybirthday--14
nameキャラドル名birthday-15
npcanybodybirthday--16
npcname島名NPC名bitrhday17
datetime_clock18
value_dow曜日19
value_date数値(月)数値(日)20
value_dow_clock曜日数値(時)数値(分)21
value_date_clock数値(月)数値(日)数値(時)数値(分)22

名前指定

Bの値Cの値Dの値Eの値Fの値Gの値Hの値Iの値Jの値説明
name指定する名前bloodgroup==
or
!=
targetbloodgroup---1
master---2
friendanybodybloodgroup--3
nameフレンド名bloodgroup-4
roboanybodybloodgroup--5
nameキャラドル名bloodgroup-6
npcanybodybloodgroup--7
npcname島名NPC名bloodgroup8
bloodgroup血液型---9
birthdaytargetbirthday---10
master---11
friendanybodybirthday--12
nameフレンド名birthday-13
roboanybodybirthday--14
nameキャラドル名birthday-15
npcanybodybirthday--16
npcname島名NPC名bitrhday17
datetime_clock18
value_dow曜日19
value_date数値(月)数値(日)20
value_dow_clock曜日数値(時)数値(分)21
value_date_clock数値(月)数値(日)数値(時)数値(分)22

フレンド(orキャラドル)の血液型が…

  • 1…ターゲットの血液型と
  • 2…主人の血液型と
  • 3…フレンド(誰でも)の血液型と
  • 4…フレンド(名前指定)の血液型と
  • 5…キャラドル(誰でも)の血液型と
  • 6…キャラドル(名前指定)の血液型と
  • 7…NPC(誰でも)の血液型と
  • 8…NPC(名前指定)の血液型と
  • 9…指定した血液型と
    等しい(or 等しくない)

フレンド(orキャラドル)の誕生日が…

  • 10…ターゲットの誕生日と
  • 11…主人の誕生日と
  • 12…フレンド(誰でも)の誕生日と
  • 13…フレンド(名前指定)の誕生日と
  • 14…キャラドル(誰でも)の誕生日と
  • 15…キャラドル(名前指定)の誕生日と
  • 16…NPC(誰でも)の誕生日と
  • 17…NPC(名前指定)の誕生日と
  • 18…現在時刻と
  • 19…曜日と
  • 20…日時と
  • 21…曜日と
  • 22…月日と
    等しい(or 等しくない)
  • 時間パラメータ
    Bの値Cの値Dの値Eの値Fの値Gの値Hの値説明
    time_clock==
    or
    !=
    targetbirthday---1
    master---2
    friendanybodybirthday--3
    nameフレンド名birthday-4
    roboanybodybirthday--5
    nameキャラドル名birthday-6
    npcanybodybirthday--7
    name島名NPC名birthday8
    datetime_clock---9
    value_clock数値(時)数値(分)--10
    value_dow曜日---11
    value_date数値(月)数値(日)--12
    value_dow_clock曜日数値(時)数値(分)-13
    value_date_clock数値(月)数値(日)数値(時)数値(分)14
    count_time_movedatecount_time_move---15
    time_login---16
    trip_time---17
    value_time数値(時)数値(分)数値(秒)-18
    time_logindatecount_time_move---19
    time_login---20
    trip_time---21
    value_time数値(時)数値(分)数値(秒)-22
    trip_timedatecount_time_move---23
    time_login---24
    trip_time---25
    value_time数値(時)数値(分)数値(秒)-26

現在時刻が…

  • 1…ターゲットの誕生日と
  • 2…主人の誕生日と
  • 3…フレンド(誰でも)の誕生日と
  • 4…フレンド(名前指定)の誕生日と
  • 5…キャラドル(誰でも)の誕生日と
  • 6…キャラドル(名前指定)の誕生日と
  • 7…NPC(誰でも)の誕生日と
  • 8…NPC(名前指定)の誕生日と
  • 9…現在時刻と
  • 10…指定した時刻と
  • 11…指定した曜日と
  • 12…指定した月日と
  • 13…指定した曜日と時刻とが
  • 14…指定した月日と時刻とが
    等しい(or 等しくない)

連続移動時間が…

  • 15…連続移動時間と
  • 16…今ログイン経過時間と
  • 17…外出してからの移動時間と
  • 18…指定した時間と
    等しい(or 等しくない)

今ログイン経過時間が…

  • 19…連続移動時間と
  • 20…今ログイン経過時間と
  • 21…外出してからの移動時間と
  • 22…指定した時間と
    等しい(or 等しくない)

外出してからの移動時間が…

  • 23…連続移動時間と
  • 24…今ログイン経過時間と
  • 25…外出してからの移動時間と
  • 26…指定した時間と
    等しい(or 等しくない)
  • 距離
    Bの値Cの値Dの値Eの値Fの値説明
    count_distance_move==
    or
    !=
    or
    >=
    or
    <=
    or
    >
    or
    <
    distancecount_distance_move-1
    login_distance_move-2
    trip_distance_move-3
    value_distance数値(km)数値(m)4
    login_distance_movedistancecount_distance_move-5
    login_distance_move-6
    trip_distance_move-7
    value_distance数値(km)数値(m)8
    trip_distance_movedistancecount_distance_move-9
    login_distance_move-10
    trip_distance_move-11
    value_distance数値(km)数値(m)12

連続移動距離が…

  • 1…連続移動距離に
  • 2…今ログイン移動距離に
  • 3…外出してからの移動距離に
  • 4…指定した移動距離に
    等しい(or 等しくない or が次の値以上 or が次の値以下 or が次の値より大きい or が次の値より小さい)

今ログイン移動距離が…

  • 5…連続移動距離に
  • 6…今ログイン移動距離に
  • 7…外出してからの移動距離に
  • 8…
    等しい(or 等しくない or が次の値以上 or が次の値以下 or が次の値より大きい or が次の値より小さい)

外出してからの移動距離が…

  • 9…連続移動距離に
  • 10…今ログイン移動距離に
  • 11…外出してからの移動距離に
  • 12…指定した移動距離に
    等しい(or 等しくない or が次の値以上 or が次の値以下 or が次の値より大きい or が次の値より小さい)
  • フラグ
    • 型A(ターゲット・主人・グローバル)
      Bの値Cの値Dの値Eの値Fの値Gの値Hの値説明
      target
      or
      master
      or
      global
      フラグ名==
      or
      !=
      targetフラグ名--1
      master--2
      friendanybodyフラグ名-3
      nameフレンド名フラグ名4
      dollキャラドル名フラグ名-5
      nameキャラクター名-6
      globalフラグ名--7
      on_offon or off--8
  • 型B(フレンド・キャラドル・名前指定)
    Bの値Cの値Dの値Eの値Fの値Gの値Hの値Iの値説明
    friend*11
    or
    doll
    or
    name
    名前フラグ名==
    or
    !=
    targetフラグ名--1
    master--2
    friendanybodyフラグ名-3
    nameフレンド名フラグ名4
    dollキャラドル名フラグ名-5
    nameキャラクター名-6
    globalフラグ名--7
    on_offon or off--8

指定した(対象の)フラグが…

  • 1…ターゲットのフラグと
  • 2…主人のフラグと
  • 3…フレンド(誰でも)のフラグと
  • 4…フレンド(名前指定)
  • 5…指定するキャラドルのフラグと
  • 6…名前を指定したキャラクターのフラグと
  • 7…グローバルフラグと
  • 8…指定するフラグと
    等しい(or 等しくない)
  • 変数
    Bの値Cの値Dの値Eの値Fの値Gの値Hの値Iの値Jの値Kの値説明
    target値名==
    or
    !=
    or
    >=
    or
    <=
    or
    >
    or
    <
    variabletarget値名----1
    master----2
    friendanybody値名---3
    nameフレンド名値名--4
    dollキャラドル名値名---5
    name指定する名前---6
    global値名----7
    value_number数値-----8
    mastervariabletarget値名----1
    master----2
    friendanybody値名---3
    nameフレンド名値名--4
    dollキャラドル名値名---5
    name指定する名前---6
    global値名----7
    value_number数値-----8
    friendanybody値名==
    or
    !=
    or
    >=
    or
    <=
    or
    >
    or
    <
    variabletarget値名---1
    master---2
    friendanybody値名--3
    nameフレンド名値名-4
    dollキャラドル名値名--5
    name指定する名前--6
    global値名---7
    value_number数値----8
    nameフレンド名値名==
    or
    !=
    or
    >=
    or
    <=
    or
    >
    or
    <
    variabletarget値名--1
    master--2
    friendanybody値名-3
    nameフレンド名値名4
    dollキャラドル名値名-5
    name指定する名前-6
    global値名--7
    value_number数値---8
    dollキャラドル名値名==
    or
    !=
    or
    >=
    or
    <=
    or
    >
    or
    <
    variabletarget値名---1
    master---2
    friendanybody値名--3
    nameフレンド名値名-4
    dollキャラドル名値名--5
    name指定する名前--6
    global値名---7
    value_number数値----8
    name指定する名前variabletarget値名---1
    master---2
    friendanybody値名--3
    nameフレンド名値名-4
    dollキャラドル名値名--5
    name指定する名前--6
    global値名---7
    value_number数値----8
    global値名==
    or
    !=
    or
    >=
    or
    <=
    or
    >
    or
    <
    variabletarget値名----1
    master----2
    friendanybody値名---3
    nameフレンド名値名--4
    dollキャラドル名値名---5
    name指定する名前---6
    global値名----7
    value_number数値-----8

指定した対象の変数の値が…

  • 1…ターゲットの値と
  • 2…主人の値と
  • 3…フレンド(誰でも)の値と
  • 4…フレンド(名前指定)の値と
  • 5…指定するキャラドルの値と
  • 6…名前を指定したキャラクターの値と
  • 7…グローバル変数と
  • 8…指定した数値と
    等しい(or 等しくない or が次の値以上 or が次の値以下 or が次の値より大きい or が次の値より小さい)
  • 基本条件
    Bの値Cの値Dの値Eの値Fの値Gの値Hの値説明
    findmaster-----1
    friendanybody----2
    nameフレンド名---3
    npcanybody----4
    name島名NPC名--5
    anybody-----6
    name指定する名前----7
    otherwait_time数値(分)数値(秒)---8
    move_time数値(分)数値(秒)---9
    move_distance数値(km)数値(m)---10
    datevalue_clock数値(時)数値(分)--11
    value_dow_clock曜日数値(時)数値(分)-12
    value_date_clock数値(月)数値(日)数値(時)数値(分)13
    nocheck-----14
    value_world島名エリア名---15
  • 1…主人を見つけたとき
  • 2…フレンド(誰でも)を見つけたとき
  • 3…フレンド(名前指定)を見つけたとき
  • 4…NPC(誰でも)を見つけたとき
  • 5…NPC(名前指定)を見つけたとき
  • 6…誰かを見つけたとき
  • 7…名前を指定したキャラクターを見つけたとき
  • 8…待機時間が指定した時間のとき
  • 9…移動時間が指定した時間のとき
  • 10…移動した距離が指定した距離の時
  • 11…指定した時刻のとき
  • 12…指定した曜日と時刻のとき
  • 13…指定した日時と時刻のとき
  • 14…必ず実行
  • 15…指定した場所の時

ENDIF

  • 説明
    IFを閉じます
  • 書き方
    ENDIF,,

INITJUDGE

  • 説明
    そのスクリプト(HEADERFOOTER)が実行される条件を設定します
    条件に当てはまらない場合or設定無しを指定した場合はその部分(INITJUDGE(もといHEADER)~FOOTER)に書かれたスクリプトは実行されません
  • 書き方
    INITJUDGE,A\B(\C\D\E\F\G),
    A\Bの値等によって、\C\D\E\F\Gがつく事がある
    セクションAの値Bの値Cの値Dの値説明
    [TALK]talklinkonly--自動では動作しません。ここをジャンプ指定した場合、動作します。,A\B,
    master--主人-に話しかけられたとき,A\B,
    friendanybody-フレンド-誰にでも-に話しかけられたとき,A\B\C,
    name[文字]フレンド-名前指定-[文字]に入力した名前の人-に話しかけられたとき,A\B\C\D,
    anybody--誰にでも-に話しかけられたとき,A\B,
    name[文字]-名前指定-[文字]に入力した名前の人-に話しかけられたとき,A\B\C,

セクションAの値Bの値Cの値Dの値Eの値説明
[FIND]findlinkonly---自動では動作しません。ここをジャンプ指定した場合、動作します。,A\B,
master---主人-を見つけたとき,A\B,
friendanybody--フレンド-誰にでも-を見つけたとき,A\B\C,
name[文字]-フレンド-名前指定-[文字]に入力した名前の人-に話しかけられたとき,A\B\C\D,
npcanybody--NPC-誰にでも-を見つけたとき,A\B\C,
nameダ・カーポ島朝倉音姫NPC-名前指定-ダ・カーポ島-朝倉音姫-を見つけたとき,A\B\C\D\E,
朝倉由夢NPC-名前指定-ダ・カーポ島-朝倉由夢-を見つけたとき
白河ななかNPC-名前指定-ダ・カーポ島-白河ななか-を見つけたとき
雪村杏NPC-名前指定-ダ・カーポ島-雪村杏-を見つけたとき
月島子恋NPC-名前指定-ダ・カーポ島-月島子恋-を見つけたとき
天枷美夏NPC-名前指定-ダ・カーポ島-天枷美夏-を見つけたとき
クラナド島古河渚NPC-名前指定-クラナド島-古河渚-を見つけたとき
藤林杏NPC-名前指定-クラナド島-藤林杏-を見つけたとき
坂上智代NPC-名前指定-クラナド島-坂上智代-を見つけたとき
伊吹風子NPC-名前指定-クラナド島-伊吹風子-を見つけたとき
一ノ瀬ことみNPC-名前指定-クラナド島-一ノ瀬ことみ-を見つけたとき
シャッフル島リシアンサスNPC-名前指定-シャッフル島-リシアンサス-を見つけたとき
ネリネNPC-名前指定-シャッフル島-ネリネ-を見つけたとき
芙蓉楓NPC-名前指定-シャッフル島-芙蓉楓-を見つけたとき
プリムラNPC-名前指定-シャッフル島-プリムラ-を見つけたとき
anybody---誰にでも-を見つけたとき,A\B,
name[文字]--名前指定-[文字]に入力した名前の人-を見つけたとき,A\B\C,

セクションAの値Bの値Cの値Dの値Eの値Fの値Gの値説明
[OTHER]otherlinkonly-----自動では動作しません。ここをジャンプ指定した場合、動作します。,A\B,
wait_time数値(分)数値(秒)---待機時間-操作しなかったら,A\B\C\D,
move_time数値(分)数値(秒)---移動時間-移動し続けたら
move_distance数値(Km)数値(m)---移動距離-移動し続けたら
value_clock数値(時)数値(分)---日時-時刻-になったら
datevalue_dow_clock曜日型数値(時)数値(分)-日時-曜日と時刻-になったら,A\B\C\D\E\F,
value_date_clock数値(月)数値(日)数値(時)数値(分)日時-日時と時刻-になったら,A\B\C\D\E\F\G,
nocheck-----必ず実行-再実行時間になったら,A\B,
value_worldダ・カーポ島風見学園エリア---場所-に移動したら,A\B\C\D,
ダ・カーポ島商店街エリア---場所-に移動したら
クラナド島光坂高校エリア---場所-に移動したら
クラナド島商店街エリア---場所-に移動したら
シャッフル島バーベナ学園エリア---場所-に移動したら
シャッフル島商店街エリア---場所-に移動したら
アキハバラ島アキハバラエリア---場所-に移動したら
アキハバラ島外神田ビル内---場所-に移動したら
その他マイルーム---場所-に移動したら

MOVE_SET

  • 説明
    移動を行います
  • 形式
    MOVE_SET,A,B,
    AB説明
    walknear_master主人に近づく(歩いて)
    away_master主人からすこし離れる(歩いて)
    near_targetターゲットに近づく(歩いて)
    away_targetターゲットからすこし離れる(歩いて)
    move_default_outdoor主人についていく(歩いて)
    move_default_indoor部屋をうろつく(歩いて)
    rannear_master主人に近づく(走って)
    away_master主人からすこし離れる(走って)
    near_targetターゲットに近づく(走って)
    away_targetターゲットからすこし離れる(走って)
    move_default_outdoor主人についていく(走って)
    move_default_indoor部屋をうろつく(走って)

MOVE_WAIT

  • 説明
    移動待ちを行います
  • 書き方
    MOVE_WAIT,,

RECAST

  • 説明
    そのスクリプトの再発動時間
  • 書き方
    RECAST,A\B\C\D,
    Aの値によってB,C,Dの値の型が変化?
    Aの値Bの値Cの値Dの値説明
    value_time数値(時)数値(分)数値(秒)時間,A\B\C\D,
    value_clock数値(時)数値(分)-時刻,A\B\C,
    value_is_login---ログイン,A,
    value_is_areachange---エリアチェンジ,A,
    value_is_myroom---マイルーム,A,

RETURN

  • 説明
    セクションの終了宣言?
  • 書き方
    RETURN,,
  • その他
    今後カンマの間に値等が入る可能性がある?

TALK

  • 説明
    ダブルクオテーションの間にある文字をチャットウィンドウに追加する
  • 書き方
    TALK,"文字列",

TARGET_SET

  • 説明
    ターゲットの設定
  • 書き方
    TARGET_SET,A\B\C\D\E,
    途中の値によって数は変化
    Aの値Bの値Cの値Dの値Eの値説明
    friendanybody---全てのフレンドをターゲットに設定します
    name文字--フレンドの名前を指定してターゲットに設定します
    bloodgroup血液型別--血液型を指定して条件に当てはまるフレンドをターゲットに設定します
    birthdaydate数値(月)数値(日)誕生日(月日)を指定して条件に当てはまる全てのフレンドをターゲットに設定します
    near--誕生日が一番近いフレンドをターゲットに設定します*12
    far--誕生日が一番遠いフレンドをターゲットに設定します
    distancenear--距離が一番近いフレンドをターゲットに設定します
    far--距離が一番遠いフレンドをターゲットに設定します
    anybodybloodgroup血液型別--指定した血液型が当てはまる(全ての)人をターゲットに設定します*13
    birthdaydate数値(月)数値(日)誕生日(月日)を指定して条件に当てはまる(全ての)人をターゲットに設定します
    near-誕生日が一番近い(全ての)人をターゲットに設定します
    far-誕生日が一番遠い(全ての)人をターゲットに設定します
    distancenear--距離が一番近い(全ての)人をターゲットに設定します
    far--距離が一番遠い(全ての)人をターゲットに設定します
    dollname[指定する名前]--名前を指定したキャラドルをターゲットに設定します
    bloodgroup血液型別--指定した血液型が当てはまるキャラドルをターゲットに設定します
    birthdaydate数値(月)数値(日)誕生日(月日)を指定して条件に当てはまるキャラドルをターゲットに設定します
    near--誕生日が一番近いキャラドルをターゲットに設定します
    far--誕生日が一番遠いキャラドルをターゲットに設定します
    distancenear--距離が一番近いキャラドルをターゲットに設定します
    far--距離が一番遠いキャラドルをターゲットに設定します
    npcname[島名][NPC名]-NPCを指定してターゲットに設定します

VARIABLE_CALC

  • 説明
    値の設定を行います
  • 書き方
    VARIABLE_CALC,[値を入れる変数を宣言(全て¥で区切る)],[入れる値(全て¥で区切る)],[演算子(+,-,*,/)],[入れる値(全て¥で区切る)],
  • 値を入れる変数宣言
    値1値2値3値4
    target変数名--
    master変数名--
    friendanybody変数名-
    nameフレンド名変数名
    dollキャラドル名変数名-
    name指定するキャラクター名--
    global変数名--
  • 入れる値
    値1値2値3値4値5
    variabletarget変数名--
    master変数名--
    friendanybody変数名-
    nameフレンド名変数名
    dollキャラドル名変数名
    name指定するキャラクター名変数名-
    global変数名--
    value_number数値---
  • 演算子
    演算子
    +
    -
    *
    /

VARIABLE_SET

  • 説明
    変数の設定を行います
  • 書き方
    VARIABLE_SET,[値を入れられる変数を指定],[入れる値],
  • 値を入れる変数宣言
    値1値2値3値4
    target変数名--
    master変数名--
    friendanybody変数名-
    nameフレンド名変数名
    dollキャラドル名変数名-
    name指定するキャラクター名--
    global変数名--
  • 入れる値
    値1値2値3値4値5
    variabletarget変数名--
    master変数名--
    friendanybody変数名-
    nameフレンド名変数名
    dollキャラドル名変数名
    name指定するキャラクター名変数名-
    global変数名--
    value_number数値---
    value_random範囲開始数値~範囲終了数値

WAIT

  • 説明
    秒・分を指定してウェイト
  • 書き方
    WAIT,A\B,
    A,B説明
    A数値ウェイトする値
    Bsec
    min
    msecミリ秒

スクリプトの値関連の解説

比較演算子について

演算子説明
==が次の値に等しい
!=が次の値に等しくない
>=が次の値以上
<=が次の値以下
>が次の値より大きい
<が次の値より小さい

血液型

血液型スクリプトで渡す値
Aa
Bb
Oo
ABab

距離について

距離は、1m~999km999mまでしか指定できません。
それ以上は認識されないと思われます

時間について

  • 時刻について
    時刻は0時0分~23時59分までです
    一日を越す時刻設定はありません(25時等)
  • 時間について
    時間は1秒~59分59秒まで指定できます。
    一時間以上は設定できません

誕生日について

  • 誕生日が遠いについて
    誕生日が遠いのは365(366)/2=182.5(183)
    なので、自分の誕生日から183日遠いものが最大になる

フラグ・変数について

フラグや変数にはグローバルとキャラクター固有の二種類が存在する

フラグ

フラグにはflag.0~flag.63の64個のフラグを使用できます
フラグはON/OFFの値が入ります

変数

変数にはvalue.0~value.15の16個の変数を使用できます
変数には値(数値)が入ります

マクロについて

現在動作が確認されているマクロ

TALKに挿入する文字列変換される内容
%[master.name]主人の名前が代入される
%[target.name]ターゲットの名前が代入される
%[value.数値]グローバル変数の値を表示
%[global\value.数値]
%[master\value.数値]主人の変数の値を表示
%[target\value.数値]ターゲットの変数の値を表示
%[xxxxx(名前)\value.数値]xxxxx(名前)の変数の値を表示
%[doll\xxxxx(名前)\value.数値]キャラドルのxxxxx(名前)の変数の値を表示
%[flag.数値]グローバルフラグの状態を表示
%[global\flag.数値]
%[master\flag.数値]主人のフラグの状態を表示
%[target\flag.数値]ターゲットのフラグの状態を表示
%[xxxxx(名前)\flag.数値]xxxxx(名前)のフラグの状態を表示

※:状態はONなら「true」OFFなら「false」となる。

このページのコメント

長文があればこちらへもどうぞ
コメント頭のラジオボタンを選択すると返信出来ます。

  • 現在まで使用できる…というか、使用するスクリプトを全て載せ終わりました。以降は変更があってから修正・追加していきます。あと、確認をお願いしたいのですが、条件分岐を使用したときに、キャラドルを指定するとdollでは無く、roboになっているのですが、他のところでも発生していますか? -- ? 2008-10-16 (木) 20:05:45
  • お疲れ様です。MOVE_SETに部屋をうろつくを加えました。roboはどちらかに統一されると信じています。きっと。 -- α? 2008-10-17 (金) 01:18:47
  • 正式サービスから追加された「メッセージに変数を表示できる機能」がうまく動作しないのですが、記述方法を知ってる方はいますか? -- まるしす? 2008-10-19 (日) 12:44:33
    • …試してきました 上手く動作しないどころか認識すらされていないようですw 試したのはmaster.name target.nameですが… 公開しておきながら使用できないというのは… というか、どのように使用すればいいのでしょう? -- ? 2008-10-19 (日) 12:53:54
      • そのまま表示されますよね?(苦笑)、変数やフラグもグローバルや主人等の指定方法も記述ないし(汗 -- まるしす? 2008-10-19 (日) 13:00:15
      • あ、FAQのコメントに%[master.name]で動作するという書き込みが…試したところ動作しました…しかし、書式とは…どんな罠だwそんなわけで色々試してみます… -- ? 2008-10-19 (日) 16:41:00
      • 情報ありがとうございます、target.nameも使えました! -- まるしす? 2008-10-19 (日) 18:58:20
    • %[target.name]はいきなり書くと動作しないようです。先頭にスペースなどを入れると実行されます。 -- にわこ? 2008-10-19 (日) 20:06:42
  • はじめましてにわこと申します。(ai sp@ceアバター名と同一) -- にわこ? 2008-10-19 (日) 19:46:36
    • 解析した結果、フォルダ構成のところ変数が格納されていることがわかったので、フォルダ構成の説明を変えました。 -- にわこ? 2008-10-19 (日) 19:47:42
    • 上の説明で*2.csvすなわちキャラ名.csvのファイルの変数の格納順を説明します。 -- にわこ? 2008-10-19 (日) 19:50:49
    • キャラ名.csvは1から16行目がグローバル変数となっています。 -- にわこ? 2008-10-19 (日) 19:51:51
    • 17-80行目はグローバルのflag変数です -- にわこ? 2008-10-19 (日) 19:52:41
    • そして82行目からはターゲット変数名が追記されていきます。 -- にわこ? 2008-10-19 (日) 19:53:17
    • 形式は例えば、ターゲットがにわこの場合、にわこ\value.0,1のようになります。これはターゲット変数のvalue.0=1担っている場合の例です。 -- にわこ? 2008-10-19 (日) 19:55:18
    • %[target.name] %[master.name]のように話すでグローバル変数の値は%[value.0]などで参照することができます。 -- にわこ? 2008-10-19 (日) 19:57:36
    • しかし、ターゲット変数は参照方法はわかりません。どなたか教えていただくとありがたいです。 -- にわこ? 2008-10-19 (日) 19:58:31
      • %[target\value.0]な感じで出来ました、targetをmasterに変えてもOKでした -- まるしす? 2008-10-20 (月) 15:20:27
      • ありゃ、出なかったんですけどなおったんですかね? -- にわこ? 2008-10-23 (木) 00:51:57
    • とりいそぎコメントしましたが、確認が完全ではありませんので何かあればお話ください^^ -- にわこ? 2008-10-19 (日) 19:59:50
    • 変数名のwikiページをどなたか作ってくださると助かります(面倒くさいので丸投げ 苦笑)。sakuraエディタのようなエディタで更新を検知しながらデバックすることが可能なようです。ただし、ファイルをロックしないよう排他制御してください。 -- にわこ? 2008-10-19 (日) 20:01:50
    • ターゲット変数名は初期化されないみたいなので開発するときは注意したほうがよさそうです。 -- にわこ? 2008-10-19 (日) 20:05:22
      • ありがとうございます -- ? 2008-10-19 (日) 20:12:28
  • 改行コード、Unicode標準でなくてWindows標準でわ? -- 2008-10-20 (月) 00:55:28
    • Winodws標準は0x0D,0x0Aなのですが、Unicodeは0x0D,0x00,0x0A,0x00と、0x00が間に入るので、それを意識した形なのですが… -- ? 2008-10-20 (月) 20:26:50
  • 条件分岐で、条件が真の場合にENDIF以降が処理されないようなのですが、これは仕様なのかバグなのか… -- まるしす? 2008-10-20 (月) 02:11:18
    • 12/16のメンテよりENDIF以降が処理されるようになったようです(未確認) -- まるしす? 2008-12-16 (火) 22:22:38
  • 新しいの出しました…が、総当りチェックをやるのが面倒で、バグ取りを本気でやってません (αやβ版なんて言えないんじゃないかと思わせるぐらいひどいと思います…) -- ? 2008-10-24 (金) 19:03:48
  • 外部作成の部分を別ページに移動した方がわかりやすいですよね、、、移動しましょうか、、、どなたか意見を下さい -- ? 2008-10-29 (水) 13:06:31
    • そうですね、ただでさえスクリプト解析ページは長いのでw別ページにしても良いかと思われます。
      aiちゅーんの子記事あたりが妥当かな。 -- 管理人? 2008-10-29 (水) 16:37:16
      • とりあえず作りますが、子記事化がわからないので後でお願いします -- ? 2008-10-29 (水) 21:32:02
      • 作成しました「外部生成物」ですが、もっといい名前があったら別の名前に変更して下さい。いい名前が思いつきませんでした… -- ? 2008-10-30 (木) 12:39:27
  • 現在時刻を発言するにはどうしたらよいでしょうか?条件分岐による力技? -- 2008-12-23 (火) 12:02:42
  • 追加ですけど、ドルの変数の出し方は%[doll\(ドル名前)\value.数値]で出せるです -- 中ノ島 妙? 2009-02-27 (金) 11:30:59

*1 よって、普通にExcelで作成しても動作しないと思われるので注意
*2 キャラドルを右クリックし、aiちゅーんを選択すると出てくるリストの内容
*3 通常の追加ではこうなるが、空いている番号なら何でもいいらしい…
*4 [話す]の内容は空として表示される [話す]が実行されるかは未確認
*5 aiちゅーんスクリプト編集では自動的に挿入される
*6 \は半角にして下さい。Wikiでは\になってしまうので…
*7 これは全角です
*8 Wikiでは\になってしまうので…
*9 キャラドル
*10 NPCは、フレンド・キャラドルの形式に島名の項目が増え、最大Kの値になる。
*11 注意:フレンドは"anybody""name"の値が入るためずれる(後日修正予定)
*12 キャラドルか主人かは未確認
*13 ターゲットにされる可能性?