vci:script:reference:messagenotification

差分

この文書の現在のバージョンと選択したバージョンの差分を表示します。

この比較画面にリンクする

両方とも前のリビジョン 前のリビジョン
次のリビジョン 両方とも次のリビジョン
vci:script:reference:messagenotification [2020/02/20 17:51]
fumo [vci.message(通知の受信)]
vci:script:reference:messagenotification [2020/03/04 11:46]
fumo
ライン 34: ライン 34:
 | joined | 入室時に通知される | | joined | 入室時に通知される |
 | left | 退室時に通知される | | left | 退室時に通知される |
 +
 +===== サンプル =====
 +
 +凸通知を表示する板です。
 +
 +{{ :​vci:​script:​reference:​notificationboard.zip |通知表示板}}
 +
 +<file lua main.lua>​
 +print("​通知表示板 v1.0")
 +
 +-- 行数
 +local lineSize = 12
 +
 +-- テキストの配列
 +local arr = {}
 +
 +-- 配列を初期化
 +for i = 1, lineSize do
 +    arr[i] = ""​
 +end
 +
 +-- テキストを追加する
 +function addText(text)
 +
 +    -- テキストの位置をシフト
 +    for i = 0, lineSize - 2 do
 +        arr[lineSize-i] = arr[lineSize-i-1]
 +    end
 +
 +    -- 最新のテキストをトップに
 +    arr[1] = text
 +
 +    -- テキストを合成
 +    for i = 2, lineSize do
 +        text = text..'​\n'​..arr[i]
 +    end
 +
 +    -- テキストを表示
 +    vci.assets._ALL_SetText("​Text",​ text)
 +end
 +
 +-- 通知受信
 +function onMessage(sender,​ name, message)
 +    local text
 +
 +    if message == '​joined'​ then
 +        text = sender.name..'​さんが入室しました。'​
 +    elseif message == '​left'​ then
 +        text = sender.name..'​さんが退室しました。'​
 +    end
 +
 +    print(text)
 +
 +    if vci.assets.IsMine then
 +        addText(text)
 +    end
 +end
 +
 +-- 通知を購読する
 +vci.message.On('​notification',​ onMessage)
 +
 +-- テスト用のダミー通知
 +function test()
 +    for i = 1, 50 do
 +        local sender = { name='​てすと'​..i }
 +        local message = '​joined'​
 +        if i % 2 == 0 then
 +            message = '​left'​
 +        end
 +        onMessage(sender,​ '​notification',​ message)
 +    end
 +end
 +
 +-- テストコードを実行する
 +test()
 +</​file>​
vci/script/reference/messagenotification.txt · 最終更新: 2022/08/23 18:02 by pastatto

ページ用ツール