private void UpdateGameObject() { if (currentTeam != playerInfo.statsInTick[replay.seekIndex].teamID) { GameObject newAppearance = null; Material teamMaterial = new Material(ApplicationPreferences.playerMaterial); //currentTeam = playerInfo.statsInTick[replay.seekIndex].teamID; if (playerInfo.statsInTick[replay.seekIndex].teamID == replay.demoTicks[replay.seekIndex].ctID) { //GameObject[] ct = Resources.LoadAll<GameObject>("Prefabs/CT"); //newAppearance = GameObject.Instantiate(ct[Random.Range(0, ct.Length)]) as GameObject; newAppearance = GameObject.Instantiate(Resources.Load <GameObject>("Prefabs/Faceless")) as GameObject; teamMaterial.color = ApplicationPreferences.ctColor; Renderer facelessRenderer = newAppearance.GetComponentInChildren <Renderer>(); if (facelessRenderer != null) { facelessRenderer.material = teamMaterial; } newAppearance.GetComponent <Animator>().runtimeAnimatorController = Resources.Load <RuntimeAnimatorController>("Animation/AnimationControllers/CustomHumanoidController"); newAppearance.GetComponent <Animator>().applyRootMotion = false; } else if (playerInfo.statsInTick[replay.seekIndex].teamID == replay.demoTicks[replay.seekIndex].tID) { //GameObject[] t = Resources.LoadAll<GameObject>("Prefabs/T"); //newAppearance = GameObject.Instantiate(t[Random.Range(0, t.Length)]) as GameObject; newAppearance = GameObject.Instantiate(Resources.Load <GameObject>("Prefabs/Faceless")) as GameObject; teamMaterial.color = ApplicationPreferences.tColor; Renderer facelessRenderer = newAppearance.GetComponentInChildren <Renderer>(); if (facelessRenderer != null) { facelessRenderer.material = teamMaterial; } newAppearance.GetComponent <Animator>().runtimeAnimatorController = Resources.Load <RuntimeAnimatorController>("Animation/AnimationControllers/CustomHumanoidController"); newAppearance.GetComponent <Animator>().applyRootMotion = false; } if (newAppearance != null) { //GameObject oldGameObject = gameObject; CSGOPlayer shiftSelf = newAppearance.AddComponent <CSGOPlayer>(); shiftSelf.playerInfo = playerInfo; shiftSelf.replay = replay; shiftSelf.currentTeam = playerInfo.statsInTick[replay.seekIndex].teamID; replay.playerObjects[playerInfo.key] = shiftSelf; GameObject.DestroyImmediate(gameObject); //shiftSelf = this; //GameObject.DestroyImmediate(oldGameObject); } } }
public void Stream() { if (port > -1) { if (gotvSocket != null) { if (gotvSocket.Available > 0) { //Debug.Log("Availability: " + gotvSocket.Available); try { byte[] received = new byte[2048]; int receivedBytes = gotvSocket.Receive(received); byte[] packetData = new byte[receivedBytes]; Array.ConstrainedCopy(received, 0, packetData, 0, receivedBytes); Debug.Log("Packet Length: " + receivedBytes); Debug.Log("Plain Text: " + GetStringUTF16(packetData)); Debug.Log("Numbers: " + ConvertToBunchNumbers(packetData)); ReadNetMessage(packetData); //packetData = ProtoBuf.ProtoReader.DirectReadBytes(new System.IO.MemoryStream(packetData), packetData.Length); //System.IO.MemoryStream decompressed = new System.IO.MemoryStream(); //BZip2.Decompress(new System.IO.MemoryStream(packetData), decompressed, true); //packetData = new byte[((int)decompressed.Length)]; //decompressed.Read(packetData, 0, packetData.Length); //Debug.Log("After ProtoBuf: " + GetStringUTF16(packetData)); } catch (System.Exception e) { Debug.Log(e.Message); } } } } if (play) { if (port > -1) { //set tick to last received } if (demoTicks != null && demoTicks.Count > 0) { if (playerObjects.Count < players.Count) { List <Player> missingKeys = new List <Player>(); foreach (KeyValuePair <Player, DemoEntity> entry in players) { if (!playerObjects.ContainsKey(entry.Key)) { missingKeys.Add(entry.Key); } } foreach (Player key in missingKeys) { GameObject entryObject = new GameObject(); CSGOPlayer entryPlayer = entryObject.AddComponent <CSGOPlayer>(); entryPlayer.replay = this; entryPlayer.playerInfo = players[key]; playerObjects.Add(key, entryPlayer); } } if (seekIndex < 0 || seekIndex >= demoTicks.Count) { seekIndex = 0; } if (port > 0) { demoParser.ParseNextTick(); seekIndex = demoTicks.Count - 1; } if (Time.time - previousTime >= playSpeed) { seekIndex += (int)((Time.time - previousTime) / playSpeed); previousTime = Time.time; } } } else { previousTime = Time.time; } /*if ((Input.GetMouseButton(0) || Input.GetMouseButton(1)) && !switchedTarget) * { * CameraControl theCam = Camera.main.GetComponent<CameraControl>(); * * if (playerObjects != null && playerObjects.Count > 0) * { * int currentIndex = -1; * if (theCam.target != null) * { * for (int i = 0; i < playerObjects.Count; i++) * { * if (playerObjects[i].entityID == theCam.target.gameObject.GetComponent<CSGOPlayer>().entityID) { currentIndex = i; break; } * } * //playerObjects.IndexOf(theCam.target.gameObject.GetComponent<CSGOPlayer>()); * } * //Debug.Log("Previous Index: " + currentIndex); * if (Input.GetMouseButton(0)) currentIndex++; * else if (Input.GetMouseButton(1)) currentIndex--; * if (currentIndex > playerObjects.Count - 1) currentIndex = 0; * if (currentIndex < 0) currentIndex = playerObjects.Count - 1; * * theCam.target = playerObjects[currentIndex].transform; * switchedTarget = true; * } * else * { * theCam.target = null; * } * } * else if (!Input.GetMouseButton(0) && !Input.GetMouseButton(1)) switchedTarget = false;*/ }
public static bool GlowCheck(ClassID id,CSGOPlayer entity, ref Color clr) { switch (id) { case ClassID.CSPlayer: { //if (entity.m_iTeam == Program.localPlayer.m_iTeam) // clr = Color.Blue; //else if (entity.m_bSpotted && (entity.m_iTeam == 3 || entity.m_iTeam == 3)) // clr = Color.Green; //else // clr = Color.Red; break; } case ClassID.AK47: case ClassID.DEagle: case ClassID.WeaponAUG: case ClassID.WeaponAWP: case ClassID.WeaponBizon: case ClassID.WeaponElite: case ClassID.WeaponFiveSeven: case ClassID.WeaponG3SG1: case ClassID.WeaponGalilAR: case ClassID.WeaponGlock: case ClassID.WeaponHKP2000: case ClassID.WeaponM249: case ClassID.WeaponM249x: case ClassID.WeaponM4A1: case ClassID.WeaponMP7: case ClassID.WeaponMP9: case ClassID.WeaponMag7: case ClassID.WeaponNOVA: case ClassID.WeaponNegev: case ClassID.WeaponP250: case ClassID.WeaponP90: case ClassID.WeaponP90x: case ClassID.WeaponSCAR20: case ClassID.WeaponSG556: case ClassID.WeaponSSG08: case ClassID.WeaponTaser: case ClassID.WeaponTec9: case ClassID.WeaponTec9x: case ClassID.WeaponUMP45: case ClassID.WeaponXM1014: case ClassID.WeaponNova: case ClassID.WeaponM4: case ClassID.WeaponUMP45x: case ClassID.WeaponXM1014x: case ClassID.WeaponMAG: case ClassID.WeaponG3SG1x: case ClassID.WeaponDualBerettas: case ClassID.WeaponPPBizon: case ClassID.WeaponSCAR20x: { clr = Color.Violet; break; } case ClassID.HEGrenade: case ClassID.SmokeGrenade: case ClassID.MolotovGrenade: case ClassID.IncendiaryGrenade: case ClassID.Flashbang: case ClassID.DecoyGrenade: case ClassID.ParticleDecoy: case ClassID.ParticleSmokeGrenade: case ClassID.SmokeStack: case ClassID.ParticleIncendiaryGrenade: case ClassID.ParticleFlash: { clr = Color.Green; break; } case ClassID.Hostage: case ClassID.Chicken: { clr = Color.HotPink; break; } case ClassID.C4: case ClassID.PlantedC4: { clr = Color.DarkViolet; break; } default: break; } return clr == Color.Black; }
void LateUpdate() { float horizontal = 0, vertical = 0, scroll = 0; if (!blockControl) { #region Touch Controls if (Input.touches.Length >= 2) { Vector2 firstPosition = Input.touches[0].position; Vector2 secondPosition = Input.touches[1].position; if (firstTouch < 0 || secondTouch < 0 || firstTouch != Input.touches[0].fingerId || secondTouch != Input.touches[1].fingerId) { firstTouch = Input.touches[0].fingerId; secondTouch = Input.touches[1].fingerId; fingerDistance = (firstPosition - secondPosition).magnitude; zoomed = false; } else { if (zoomed || (firstPosition - secondPosition).magnitude - fingerDistance > zoomDeadZone) { scroll += (firstPosition - secondPosition).magnitude - fingerDistance; fingerDistance = (firstPosition - secondPosition).magnitude; zoomed = true; } } } else if (Input.touches.Length >= 1) { if (firstTouch < 0) { firstTouch = Input.touches[0].fingerId; previousMouse = new Vector3(Input.touches[0].position.x, Input.touches[0].position.y, 0); moved = false; } if (firstTouch > -1) { if (moved || Mathf.Abs(Input.touches[0].position.x - previousMouse.x) > movementDeadZone || Mathf.Abs(Input.touches[0].position.y - previousMouse.y) > movementDeadZone) { horizontal = Input.touches[0].position.x - previousMouse.x; vertical = previousMouse.y - Input.touches[0].position.y; previousMouse = new Vector3(Input.touches[0].position.x, Input.touches[0].position.y, 0); moved = true; } } } else { firstTouch = -1; secondTouch = -1; } #endregion #region Mouse Controls if (Input.touches.Length <= 0) { if (!mouseDown && Input.GetMouseButton(0)) { mouseDown = true; previousMouse = Input.mousePosition; } if (!Input.GetMouseButton(0)) { mouseDown = false; } if (mouseDown) { horizontal = Input.mousePosition.x - previousMouse.x; vertical = previousMouse.y - Input.mousePosition.y; previousMouse = Input.mousePosition; } } if (target == null) { scroll += Input.mouseScrollDelta.y; } else { scroll += -Input.mouseScrollDelta.y; } #endregion } #region Add Buffs if (invertZoom) { scroll *= -1; } if (invertX) { horizontal *= -1; } if (invertY) { vertical *= -1; } scroll *= scrollStrength; horizontal *= rotationStrength; vertical *= rotationStrength; #endregion if (target != null) { CSGOPlayer targetPlayer = target.GetComponent <CSGOPlayer>(); if (distance + scroll <= 0) { distance = 0; } else { distance += scroll; } #region Third Person View if (distance > 0) { if (targetPlayer != null && targetPlayer.chestPosition != null) { Camera.main.transform.rotation *= Quaternion.AngleAxis(horizontal, Vector3.up) * Quaternion.AngleAxis(vertical, Vector3.right); Camera.main.transform.position = targetPlayer.chestPosition.position - (Camera.main.transform.forward * distance); Camera.main.transform.rotation = Quaternion.LookRotation((targetPlayer.chestPosition.position - Camera.main.transform.position).normalized); } else { Camera.main.transform.rotation *= Quaternion.AngleAxis(horizontal, Vector3.up) * Quaternion.AngleAxis(vertical, Vector3.right); Camera.main.transform.position = target.position - (Camera.main.transform.forward * distance); Camera.main.transform.rotation = Quaternion.LookRotation((target.position - Camera.main.transform.position).normalized); } } #endregion #region First Person View else { if (targetPlayer != null) { //Vector3 steadyPosition = new Vector3(targetPlayer.headPosition.position.x, 0, targetPlayer.headPosition.position.z); //Quaternion steadyRotation = Quaternion.Euler(targetPlayer.headPosition.eulerAngles.x, targetPlayer.headPosition.eulerAngles.y, 0); Camera.main.transform.position = targetPlayer.transform.position + (targetPlayer.transform.forward * targetPlayer.aimPosition.z) + (targetPlayer.transform.up * targetPlayer.aimPosition.y); //Camera.main.transform.position = targetPlayer.transform.position + targetPlayer.aimPosition; Camera.main.transform.rotation = Quaternion.Euler(targetPlayer.aimDirection.y - 90f, targetPlayer.aimDirection.x, 0); } else { Camera.main.transform.position = target.position; Camera.main.transform.rotation = target.rotation; } } #endregion } else { Camera.main.transform.rotation = (Quaternion.AngleAxis(horizontal, Vector3.up) * Camera.main.transform.rotation) * Quaternion.AngleAxis(vertical, Vector3.right); Camera.main.transform.position += Camera.main.transform.forward * scroll; } }