public static List <Vector3> GetPlayerBonePositions_inW2S(EFT.Player player) { List <Vector3> bones = GetPlayerBonePositions(player); List <Vector3> toReturn = new List <Vector3>(); for (int i = 0; i < bones.Count; i++) { _tempBonePos = LocalGameWorld.W2S(bones[i]); toReturn.Add(_tempBonePos); } return(toReturn); }
public PlayerStruct(EFT.Player player) { // this struct should be multithreaded, for the sake of performance and less loop lag _playerData = player; _itemInHands = _playerData.HandsController.Item.ShortName.Localized(); _getHealth = (int)_playerData.HealthController.GetBodyPartHealth(EBodyPart.Common).Current; _getHealthMax = (int)_playerData.HealthController.GetBodyPartHealth(EBodyPart.Common).Maximum; _distance = (int)Vector3.Distance(LocalGameWorld.MainCamera.transform.position, _playerData.Transform.position); _bonePositions = Bones.GetPlayerBonePositions_inW2S(_playerData); _getHealthProcent = (int)Math.Round(_getHealth / _getHealthMax * 100.0, 0); _positionHead = LocalGameWorld.W2S(_playerData.PlayerBody.PlayerBones.Head.position); _positionHead.y = Screen.height - _positionHead.y; _positionBase = LocalGameWorld.W2S(_playerData.Transform.position); _positionBase.y = Screen.height - _positionBase.y; _objectName = _playerData.Profile.Info.Nickname; // for now lets stay like this ;) }
public static List <Vector3> GetPlayerBonePositions(EFT.Player player) { List <Vector3> boneReturn = new List <Vector3>(); // well i preffer to have a static list then dynamic ... boneReturn.Add(GetBoneById(player, 133)); boneReturn.Add(GetBoneById(player, 132)); boneReturn.Add(GetBoneById(player, 14)); boneReturn.Add(GetBoneById(player, 17)); boneReturn.Add(GetBoneById(player, 18)); boneReturn.Add(GetBoneById(player, 90)); boneReturn.Add(GetBoneById(player, 91)); boneReturn.Add(GetBoneById(player, 94)); boneReturn.Add(GetBoneById(player, 22)); boneReturn.Add(GetBoneById(player, 23)); boneReturn.Add(GetBoneById(player, 111)); boneReturn.Add(GetBoneById(player, 112)); boneReturn.Add(GetBoneById(player, 115)); return(boneReturn); }
private static Vector3 GetBoneById(EFT.Player player, int BoneId) { return(player.PlayerBody.SkeletonRootJoint.Bones.ElementAt(BoneId).Value.position); // sometimes throw an error... }