Beispiel #1
0
 public void SendTriggerTo(int contID)
 {
     network_data.trigger m1 = new network_data.trigger();
     m1.set(-1, mychannel.GetChannel());
     m1.netID  = netID;
     m1.count  = counter;
     m1.on     = on;
     m1.accept = link.Accept(on, contID);
     byte[] data1 = network_utils.nData.Instance.SerializeMsg <network_data.trigger>(m1);
     mychannel.GetNetwork().Send(contID, data1);
 }
Beispiel #2
0
 public void SendRequest(int contID)
 {
     if (mychannel.GetNetwork().IsClient())
     {
         network_data.trigger m1 = new network_data.trigger();
         m1.set(contID, mychannel.GetChannel());
         m1.netID = netID;
         m1.count = counter;
         m1.on    = on;
         byte[] data1 = network_utils.nData.Instance.SerializeMsg <network_data.trigger>(m1);
         mychannel.GetNetwork().Send(contID, data1);
     }
 }
Beispiel #3
0
 void SendTrigger(int contID, bool accept)
 {
     network_data.trigger m1 = new network_data.trigger();
     m1.set(contID, mychannel.GetChannel());
     m1.netID  = netID;
     m1.count  = counter;
     m1.on     = on;
     m1.accept = accept;
     byte[] data1 = network_utils.nData.Instance.SerializeMsg <network_data.trigger>(m1);
     mychannel.SendToChannel(ref data1);
     if (!mychannel.GetNetwork().IsClient() && m1.accept)
     {
         DoActivate(contID);
     }
 }
Beispiel #4
0
    public override void ProcessMessage(ref byte[] message)
    {
        network_utils.HEADER header = network_utils.nData.Instance.DeserializeMsg <network_utils.HEADER>(message);
        if (header.signum != network_utils.SIGNUM.BIN)
        {
            return;
        }
        switch (header.command)
        {
        case (int)network_data.COMMANDS.center_ship:
        {
            network_data.enter_ship com = network_utils.nData.Instance.DeserializeMsg <network_data.enter_ship>(message);
            if (Channel.GetNetwork().IsClient() == false)
            {
                GameObject g = GetNextSpawnPoint();
                SpawnPlayer(com.header.containerID, Channel.GetNetwork().IsClient(), false, g.transform.localPosition, g.transform.localRotation, 0);
            }
        }
        break;

        case (int)network_data.COMMANDS.ccreate_player:
        {
            network_data.create_player com = network_utils.nData.Instance.DeserializeMsg <network_data.create_player>(message);
            if (Channel.GetNetwork().IsClient() == true)
            {
                SpawnPlayer(com.header.containerID, Channel.GetNetwork().IsClient(), Channel.GetNetwork().GetComponent <client>().ingameContID == com.header.containerID, com.position, com.rotation, 0);
            }
        }
        break;

        case (int)network_data.COMMANDS.cmove_player:
        {
            network_data.move_player com = network_utils.nData.Instance.DeserializeMsg <network_data.move_player>(message);
            if (Channel.GetNetwork().IsClient())
            {
                if (Channel.GetNetwork().GetComponent <client>().ingameContID != com.header.containerID)
                {
                    GameObject g = Channel.GetEntity(com.header.containerID);
                    if (g != null)
                    {
                        g.GetComponent <puppet>().SetTransform(com.position, com.rotation, puppet.trans_flag_position | puppet.trans_flag_rotation, com.time);
                    }
                }
            }
            else
            {
                GameObject g = Channel.GetEntity(com.header.containerID);
                if (g != null)
                {
                    g.GetComponent <puppet>().SetTransform(com.position, com.rotation, puppet.trans_flag_position | puppet.trans_flag_rotation, com.time);
                }
            }
        }
        break;

        case (int)network_data.COMMANDS.cdisconnect:
        {
            network_data.disconnect com = network_utils.nData.Instance.DeserializeMsg <network_data.disconnect>(message);
            UnregisterEntity(com.header.containerID);
        }
        break;

        case (int)network_data.COMMANDS.ctrigger:
        {
            network_data.trigger com = network_utils.nData.Instance.DeserializeMsg <network_data.trigger>(message);
            if (Triggers.ContainsKey(com.netID))
            {
                trigger t = Triggers[com.netID];
                if (Channel.GetNetwork().IsClient())
                {
                    if (com.accept)
                    {
                        t.SetTrigger(com.count, com.on);
                        t.GetLink().Accept(com.on, com.header.containerID);
                        t.DoActivate(com.header.containerID);
                    }
                }
                else
                {
                    t.TriggerRequest(com.header.containerID);
                    t.DoActivate(com.header.containerID);
                }
            }
        }
        break;
        }
    }