public void OnButtonTeleportClick()
        {
            Teleport teleport = Teleport.GetTeleport(out int index, out bool isOneSide);

            if (teleport != null && ActionPoint.CurrentValue > 0)
            {
                isSkillsEnabled[6] = false;
                Refresh();
                RPCInt_Vector3 teleportPosition = new RPCInt_Vector3();
                teleportPosition.valueInt     = isOneSide ? teleport.mapIndexOtherSide : teleport.mapIndexOneSide;
                teleportPosition.valueVector3 = teleport.GetPosition(index, isOneSide);
                SkillLibrary.Instance.CastSkill(GameSystem.CurrentOperator.property.index, 102, GameSystem.Index,
                                                JsonUtility.ToJson(teleportPosition));
            }
        }
        private void CastSkillRPC(int operatorIndex, int skillIndex, int skillLevel, object parameter,
                                  PhotonMessageInfo info)
        {
            m_CurrentOperator = GameSystem.Instance.GetOperatorByIndex(operatorIndex);
            if (skillIndex == 2)
            {
                #region SKILL 2 移动 施放 阶段2

                string         json       = (string)parameter;
                RPCListVector3 path       = JsonUtility.FromJson <RPCListVector3>(json);
                Vector2Int     coordinate =
                    MapManager.Instance.PositionToCoordinate(m_CurrentOperator.property.currentMapIndex, path.value[0]);
                MapManager.Instance.SetWalkable(m_CurrentOperator.property.currentMapIndex, coordinate.x, coordinate.y);
                coordinate = MapManager.Instance.PositionToCoordinate(m_CurrentOperator.property.currentMapIndex,
                                                                      path.value[path.value.Count - 1]);
                MapManager.Instance.SetNotWalkable(m_CurrentOperator.property.currentMapIndex, coordinate.x,
                                                   coordinate.y);
                StartCoroutine(Skill2(path.value));

                #endregion
            }
            else if (skillIndex == 7)
            {
                #region SKILL 7 钝击 施放

                ClearMarks();
                int[] coordinate = (int[])parameter;
                Instantiate(prefabEffectSkill7,
                            MapManager.Instance.CoordinateToPosition(m_CurrentOperator.property.currentMapIndex, coordinate[0],
                                                                     coordinate[1]), Quaternion.identity);
                Operator target =
                    GameSystem.Instance.GetOperatorByCoordinate(m_CurrentOperator.property.currentMapIndex,
                                                                coordinate[0], coordinate[1]);
                if (target != null)
                {
                    target.property.currentHealth = Mathf.Clamp(target.property.currentHealth - skillLevel, 0,
                                                                target.property.maxHealth);
                }
                ButtonsOperator.Instance.Refresh();
                ButtonsSkill.Instance.isAnimationsPlaying[1] = false;
                ButtonsSkill.Instance.Refresh();

                #endregion
            }
            else if (skillIndex == 100)
            {
                #region SKILL 100 技能等级提升

                int value = (int)parameter;
                ++m_CurrentOperator.property.currentSkillLevel[value];
                --m_CurrentOperator.property.skillPoint;
                ButtonsSkill.Instance.isSkillsEnabled[4] = true;
                ButtonsSkill.Instance.Cancel();

                #endregion
            }
            else if (skillIndex == 101)
            {
                #region SKILL 101 据点争夺

                int playerIndex = (int)parameter;
                StrongholdPoint.Instance.AddStrongholdPoint(playerIndex);
                if (GameSystem.Index == playerIndex)
                {
                    ActionPoint.Instance.ChangeActionPoint(true, -1);
                }

                #endregion
            }
            else if (skillIndex == 102)
            {
                #region SKILL 102 传送

                string         json             = (string)parameter;
                RPCInt_Vector3 teleportPosition = JsonUtility.FromJson <RPCInt_Vector3>(json);
                m_CurrentOperator.property.currentMapIndex = teleportPosition.valueInt;
                m_CurrentOperator.transform.position       = teleportPosition.valueVector3;
                if (GameSystem.Index == skillLevel)
                {
                    ActionPoint.Instance.ChangeActionPoint(true, -1);
                }

                #endregion
            }
        }