en:vci:updatelog:1.5.4a

VCI update on Virtual Cast 1.5.4a

  • Implemented message system

vci.message.Emit

  • Sends a message
  • The message will be sent to all VCIs of all users including the sender itself.
main.lua
function onUse(self)
    -- Message name: MSG_NAME
    -- Content of the message: 1
    vci.message.Emit('MSG_NAME', 1)
end

vci.message.On

  • Receives a message
  • The message can be received by the same VCI that sent the message or the other VCIs.
  • Receives an Emit message with the first argument that matches the first argument of the On.

The receiving function receives 3 arguments.

  • sender: Information about the sender (set by the system)
  • name: The name of the message. The first argument of Emit function.
  • message: Content of the message. The second argument of Emit function.
main.lua
function onMessage(sender, name, message)
    -- The sender is in a table structure The information of the VCI that executed the vci.message.Emit function
    -- {
    --   type: "vci"
    --   name: "name of the vci"
    -- }
    -- In the future, the sender will have new messages implemented
    for k, v in pairs(sender) do
        print(k .. ":" .. v)
    end
 
    print(name)
    print(message)
end
 
vci.message.On('MSG_NAME', onMessage)

About this feature

  • This is mainly intended for sending messages from one VCI to another
    • For example, creating a switch VCI and a bomb VCI separately.
  • In the future, VCI will be able to receive messages from the system (Planned for future version up)

The difference between the shared variable and the message

  • Shared variable does not have the function to clear all values.
    • As the holder of the shared variable is unknown, it is hard to decide if it's ok to delete them all or not.
    • It is hard to give variable names that are unique to each item
      • What if multiple users spawned same items?
  • Message is one-way and values are not saved (When a user joins a studio in the middle of a session, the messages from the past will not be applied)
    • Almost the same feature can be implemented by combining the item variable `vci.state` and the message system.
      • Item variables can be cleared by deleting the item and re-spawning it
en/vci/updatelog/1.5.4a.txt · Last modified: 2019/10/17 17:33 by h-eguchi

Page Tools