Пример #1
0
    private void OnMessageHandler(object sender, MessageEventArgs e)
    {
        CommonTypeMessage msgType = JsonUtility.FromJson <CommonTypeMessage>(e.Data);

        switch (msgType.type)
        {
        case "rotate":
            RotationMessage rotMsg    = JsonUtility.FromJson <RotationMessage>(e.Data);
            Vector2         ourVector = new Vector2(rotMsg.x, rotMsg.z);
            queuedCursorMoves.Enqueue(new StoredCursorMove(ourVector, rotMsg.id));
            break;

        case "fire":
            FireMessage fireMsg = JsonUtility.FromJson <FireMessage>(e.Data);
            queuedPlayerFires.Enqueue(new StoredPlayerFire(fireMsg.id, fireMsg.held));
            break;

        case "userConnect":
            //Only add a new user if there is room
            if (users.Count < userCap)
            {
                UserConnectMessage userMsg = JsonUtility.FromJson <UserConnectMessage>(e.Data);
                queuedUsers.Enqueue(userMsg.id);
            }
            break;

        case "userDisconnect":
            UserConnectMessage userDCMsg = JsonUtility.FromJson <UserConnectMessage>(e.Data);
            queuedDisconnects.Enqueue(userDCMsg.id);
            break;
        }
    }
Пример #2
0
    public void broadcastFire(uint playerId)
    {
        FireMessage fireMessage = new FireMessage();

        fireMessage.playerId = playerId;

        NetworkServer.SendToAll(MsgTypes.MSG_FIRE, fireMessage);
    }
Пример #3
0
        public void OnFireMessage(FireMessage message)
        {
            var entity = World.Entities.FirstOrDefault(e => e.Id == message.EntityId);

            if (entity is Hero hero)
            {
                hero.ShellType = message.ShellType;
                hero.IsFire    = message.IsFire;
            }
        }
        private void fire()
        {
            if (!LaunchEnable && Time.timeScale != 0)
            {
                LaunchEnable = true;
                StartCoroutine(Launch(BulletParticleEffectEvent));
            }

            void BulletParticleEffectEvent()
            {
                fireBaseMethod((bullet) =>
                {
                    var message = FireMessage.CreateMessage(BlockBehaviour, Rigidbody.velocity, bullet.GetComponent <RayBulletScript>().Guid.ToString());
                    ModNetworking.SendToAll(message);
                });
            }
        }
        void fire()
        {
            if (!LaunchEnable && Time.timeScale != 0)
            {
                LaunchEnable = true;
                StartCoroutine(Launch(BulletParticleEffectEvent));
            }

            void BulletParticleEffectEvent()
            {
                var bullet = (GameObject)Instantiate(BulletObject, transform.TransformPoint(SpawnPoint + Direction), transform.rotation);

                bullet.SetActive(true);

                var bs = bullet.GetComponent <BulletScript>();

                bs.Fire(null, (value) =>
                {
                    bs.gameObject.AddComponent <ExplodeScript>().Explodey(ExplodeScript.explosionType.Small, bullet.transform.position, bulletPowerSlider.Value, 3f);
                    bs.GetComponent <TimedSelfDestruct>().Begin(5f);
                }
                        );


                if (StatMaster.isMP && Modding.Common.Player.GetAllPlayers().Count > 1)
                {
                    var message = FireMessage.CreateMessage(BlockBehaviour, Rigidbody.velocity, bs.Guid.ToString());
                    ModNetworking.SendToAll(message);
                }

                fireAudioSource.PlayOneShot(fireAudioSource.clip);
                fireAudioSource.pitch = UnityEngine.Random.Range(0.8f, 1.2f);

                EffectsObject.SetActive(true);
                EffectsObject.GetComponent <Reactivator>().Switch = true;
            }
        }
Пример #6
0
 public void SendFireMessage(FireMessage message)
 {
     message.connectionId = myConnectionId; // make this deprecated
     NetworkUtility.Send(EMessageType.Fire, message, localHostId, unreliableChannel, myConnectionId);
 }