/// <summary> /// 处理点击防作弊按钮 /// </summary> void HandleAntiCheating() { AntiCheatingPanelData acpd = GameData.Instance.AntiCheatingPanelData; acpd.isPanelShow = true; acpd.iReadyShowAnti++; SystemMgr.Instance.AntiCheatingSystem.UpdateShow(); UIMainView.Instance.AntiCheatingPanel.InitPanel(); }
/// <summary> /// 面板更新 /// </summary> public void UpdateShow() { AntiCheatingPanelData acpd = GameData.Instance.AntiCheatingPanelData; if (acpd.isPanelShow) { gameObject.SetActive(true); } else { isStartClosePanel = false; //再打开防作弊面板之前,关闭消息接口 Debug.LogError("==========================1"); Network.NetworkMgr.Instance.GameServer.Unlock(); gameObject.SetActive(false); } }
/// <summary> /// 产生警告信息 /// </summary> void SpwanWarningMessage() { int count = 0; //表示显示几条警告作弊信息 AntiCheatingPanelData acpd = GameData.Instance.AntiCheatingPanelData; //先获取玩家玩家的ip信息 Dictionary <string, List <int> > ip = acpd.GetPlayerIpSame(); bool isSpwanIp = false; foreach (string key in ip.Keys) { if (ip[key].Count >= 2) { isSpwanIp = true; } } if (isSpwanIp) { //产生预置体 GameObject go = Instantiate(Resources.Load <GameObject>("Game/AntiCheck/Warning")); go.transform.SetParent(content.transform); go.transform.localScale = Vector3.one; go.transform.localPosition = new Vector3(go.transform.localPosition.x, go.transform.localPosition.y, 0); go.GetComponent <Waring>().Ip(ip, 1); count++; } //Dictionary<string, List<int>> mac = acpd.GetPlayerMacIdSame(); //if (mac.Count > 0) //{ // //产生预置体 // GameObject go = Instantiate(Resources.Load<GameObject>("Game/AntiCheck/Warning")); // go.transform.SetParent(content.transform); // go.transform.localScale = Vector3.one; // go.transform.localPosition = new Vector3(go.transform.localPosition.x, go.transform.localPosition.y, 0); // go.GetComponent<Waring>().Ip(mac, 2); // count++; //} bool isSpwanDistance = false; Dictionary <string, List <int> > distance = acpd.GetPlayerDistance(); foreach (string key in distance.Keys) {//0--4 Debug.LogWarning("distancekey:" + key + ",distancevalue:" + distance[key].Count + "======================"); if (distance[key].Count >= 2) { isSpwanDistance = true; } } if (isSpwanDistance) { //产生预置体 GameObject go = Instantiate(Resources.Load <GameObject>("Game/AntiCheck/Warning")); go.transform.SetParent(content.transform); go.transform.localScale = Vector3.one; go.transform.localPosition = new Vector3(go.transform.localPosition.x, go.transform.localPosition.y, 0); go.GetComponent <Waring>().Ip(distance, 3); count++; } content.GetComponent <RectTransform>().SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, 100 * count); //如果没有作弊行为 if (count <= 0) { NoCheatingAction.gameObject.SetActive(true); } //在产生所有预置体之后,2s之后,关闭面板 if (GameData.Instance.AntiCheatingPanelData.iReadyShowAnti <= 1) { isStartClosePanel = true; } acpd.isSpwanEnd = true; }