Ejemplo n.º 1
0
        public static void spawnDummy()
        {
            MessageWriter writer;

            if (dummy == null)
            {
                var playerId = (byte)GameData.Instance.GetAvailableId();
                writer = AmongUsClient.Instance.StartRpcImmediately(PlayerControl.LocalPlayer.NetId, (byte)CustomRPC.SpawnDummy, Hazel.SendOption.Reliable, -1);
                writer.Write(playerId);
                writer.Write(PlayerControl.LocalPlayer.transform.position.x);
                writer.Write(PlayerControl.LocalPlayer.transform.position.y);
                writer.Write(PlayerControl.LocalPlayer.transform.position.z);
                AmongUsClient.Instance.FinishRpcImmediately(writer);
                RPCProcedure.spawnDummy(playerId, PlayerControl.LocalPlayer.transform.position);
            }
            writer = AmongUsClient.Instance.StartRpcImmediately(PlayerControl.LocalPlayer.NetId, (byte)CustomRPC.MoveDummy, Hazel.SendOption.Reliable, -1);
            writer.Write(PlayerControl.LocalPlayer.transform.position.x);
            writer.Write(PlayerControl.LocalPlayer.transform.position.y);
            writer.Write(PlayerControl.LocalPlayer.transform.position.z);
            writer.Write(true);
            AmongUsClient.Instance.FinishRpcImmediately(writer);
            // 暫定遅延実行 何故か透明化が解除されないため
            DestroyableSingleton <HudManager> .Instance.StartCoroutine(Effects.Lerp(0.25f, new Action <float>(p => {
                if (p == 1)
                {
                    RPCProcedure.moveDummy(PlayerControl.LocalPlayer.transform.position);
                }
            })));

            if (target != null)
            {
                writer = AmongUsClient.Instance.StartRpcImmediately(PlayerControl.LocalPlayer.NetId, (byte)CustomRPC.PuppeteerMorph, Hazel.SendOption.Reliable, -1);
                writer.Write(target.PlayerId);
                AmongUsClient.Instance.FinishRpcImmediately(writer);
                RPCProcedure.puppeteerMorph(target.PlayerId);
            }
            canSpawn = false;
            isActive = true;
        }