private void TickDeathProcess() { currentRespawnTimer = currentRespawnTimer - Time.fixedDeltaTime; player.TeleportTo(lastPosition, player.GetTrackingData(VRCPlayerApi.TrackingDataType.Head).rotation); if (currentRespawnTimer < 0F) { if (respawnPos != null) { player.TeleportTo(respawnPos.position, respawnPos.rotation); Debug.Log($"CombatSystem: Teleported {player.displayName} to respawn position of {respawnPos.position}."); } currentRespawnTimer = respawnTimer; Debug.Log($"CombatSystem: {player.displayName} is now able to move."); float maxHp = float.Parse(player.GetPlayerTag("combat_max_hp")); player.SetPlayerTag("combat_hp", $"{maxHp}"); inDeathProcess = false; } player.SetPlayerTag("combat_respawn_timer", $"{currentRespawnTimer}"); }
public void Operation() { VRCPlayerApi player = Networking.LocalPlayer; float currValue = float.Parse(player.GetPlayerTag(tagName)); if (operation == Operation_NONE) { return; } else if (operation == Operation_SET) { player.SetPlayerTag(tagName, $"{value}"); } else if (operation == Operation_ADD) { player.SetPlayerTag(tagName, $"{currValue + value}"); } else if (operation == Operation_SUBTRACT) { player.SetPlayerTag(tagName, $"{currValue - value}"); } else if (operation == Operation_MULTIPLY) { player.SetPlayerTag(tagName, $"{currValue * value}"); } else if (operation == Operation_DIVIDE) { player.SetPlayerTag(tagName, $"{currValue / value}"); } else { Debug.LogWarning($"DebugFloatTagSetter: Invalid operation {operation} on {gameObject.name}."); } }
private void FixedUpdate() { VRCPlayerApi p = Networking.LocalPlayer; PlayerInfoText.text = $"DisplayName: {p.displayName}\n" + $"PlayerId: {p.playerId}\n" + $"Position: {p.GetPosition()}\n" + $"CurHitpoint: {p.GetPlayerTag("combat_hp")}\n" + $"MaxHitpoint: {p.GetPlayerTag("combat_max_hp")}\n" + $"isGrounded: {p.IsPlayerGrounded()}\n" + $"isLocal: {p.isLocal}\n" + $"isMaster: {p.isMaster}\n" + $"PlayerTestTagValue: {p.GetPlayerTag("test")}\n" + $"RespawnTimer: {p.GetPlayerTag("combat_respawn_timer")}\n" + $"Id1: {(VRCPlayerApi.GetPlayerById(1) == null ? null : VRCPlayerApi.GetPlayerById(1).displayName)}"; }
private bool TestPlayerTags(VRCPlayerApi player) { Debug.Log("TestPlayerTags"); string playerTag1 = "tag1"; string tagValue1 = "value1"; string tagValue2 = "value2"; string cur = player.GetPlayerTag(playerTag1); if (!string.IsNullOrEmpty(cur)) { Debug.LogError("Empty tag isn't empty!"); return(false); } player.SetPlayerTag(playerTag1, tagValue1); cur = player.GetPlayerTag(playerTag1); if (!cur.Equals(tagValue1)) { Debug.LogError("Set tag does not equal expected value1!"); return(false); } player.SetPlayerTag(playerTag1, tagValue2); cur = player.GetPlayerTag(playerTag1); if (!cur.Equals(tagValue2)) { Debug.LogError("Set tag does not equal expected value2!"); return(false); } // TODO //localPlayer_.GetPlayersWithTag(playerTag); player.ClearPlayerTags(); cur = player.GetPlayerTag(playerTag1); if (!string.IsNullOrEmpty(cur)) { Debug.LogError("Tags were cleared but player still has tag!"); return(false); } return(true); }
private void DoMode() { var t = p.GetPlayerTag(volumeTagName); if (t == "swim") { DoFly(); return; } if (t == "fly") { drag = flyDrag; DoFly(); return; } }
public override void OnPlayerTriggerEnter(VRCPlayerApi player) { if (player.GetPlayerTag("in room") == "true") { return; //done because using chairs you can trigger this multiple times without triggering the exit event } player.SetPlayerTag("in room", "true"); players[count++] = player; if (!_isValidating) { SendCustomEventDelayedSeconds(nameof(Validate), 60); _isValidating = true; } UpdateList(); }