vci:script:reference:messagenotification

差分

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

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

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
最新リビジョン 両方とも次のリビジョン
vci:script:reference:messagenotification [2020/02/20 17:51]
fumo [vci.message(通知の受信)]
vci:script:reference:messagenotification [2021/06/17 19:59]
t-daihisa
ライン 1: ライン 1:
 ====== vci.message(通知の受信) ====== ====== vci.message(通知の受信) ======
 ここではメッセージ機能を使って通知を受信する方法を説明します。\\ ここではメッセージ機能を使って通知を受信する方法を説明します。\\
 +
 +** 3/05追記: ver1.9.0aにて修正しました。**
  
 ** 2/20追記: 部屋の人数が多い場合に、通知が重複する不具合があります。こちらは近日中に修正予定です。** ** 2/20追記: 部屋の人数が多い場合に、通知が重複する不具合があります。こちらは近日中に修正予定です。**
-----+
 ===== 入退室通知をVCIのコンソールに表示する ===== ===== 入退室通知をVCIのコンソールに表示する =====
  
ライン 27: ライン 29:
 | message | 通知内容 | | message | 通知内容 |
  
----- 
  
 ==== 通知内容の種類 ==== ==== 通知内容の種類 ====
ライン 34: ライン 35:
 | 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

ページ用ツール