private static void HandleSetH2LevelForPlayer(ulong sender, long identity, float value) { MyVisualScriptLogicProvider.SetPlayersHydrogenLevel(identity, value); if (NetworkHandlerSystem.IsServer && NetworkHandlerSystem.IsMultiplayer) { actionSetH2LevelForPlayer.CallToOthers(identity, value); } }
private void PlayerSpawned(long playerId) { var player = U.GetPlayer(playerId); var neart = Nearest(player); MyVisualScriptLogicProvider.SetPlayersHydrogenLevel(player.Identity.IdentityId, 0); // kill the player if (neart != null) { if (!neart.DidSpawn(player)) { player.Character.Kill(); } } }
private void PlayerSpawned(long playerId) { //logger.WriteLine("Request of Player "+ playerId); IMyIdentity playerIdentity = Player(playerId); //logger.WriteLine("Found Identity " + playerId); if (playerIdentity != null) { //logger.WriteLine("Player is " + playerIdentity.DisplayName); var playerList = new List <IMyPlayer>(); MyAPIGateway.Players.GetPlayers(playerList, p => p != null && p.IdentityId == playerIdentity.IdentityId); var player = playerList.FirstOrDefault(); if (player != null) { if (!MustBeExecuted(player)) { logger.WriteLine("Player " + playerIdentity.DisplayName + " did not spawn near special Medbay!"); return; } MyVisualScriptLogicProvider.SetPlayersHydrogenLevel(playerIdentity.IdentityId, 0); IMyCharacter character = player.Character; if (character == null) { logger.WriteLine("Player " + playerIdentity.DisplayName + " has no Character yet!"); } spawnToolsRemover.Remove(character); } else { logger.WriteLine("Player " + playerIdentity.DisplayName + " not Found!"); } } }
private void PlayerSpawned(long playerId) { //logger.WriteLine("Request of Player "+ playerId); IMyIdentity playerIdentity = Player(playerId); //logger.WriteLine("Found Identity " + playerId); if (playerIdentity != null) { //logger.WriteLine("Player is " + playerIdentity.DisplayName); var playerList = new List <IMyPlayer>(); MyAPIGateway.Players.GetPlayers(playerList, p => p != null && p.IdentityId == playerIdentity.IdentityId); var player = playerList.FirstOrDefault(); if (player != null) { MyVisualScriptLogicProvider.SetPlayersHydrogenLevel(playerIdentity.IdentityId, 0); } } }
private bool RefillTarget(IMyPlayer player) { float oxygen = MyVisualScriptLogicProvider.GetPlayersOxygenLevel(player.IdentityId); float hydrogen = MyVisualScriptLogicProvider.GetPlayersHydrogenLevel(player.IdentityId); float energy = MyVisualScriptLogicProvider.GetPlayersEnergyLevel(player.IdentityId); bool oxygenRefilled = false; bool hydrogenRefilled = false; bool energyRefilled = false; Logging.Instance.WriteLine($"[Life Support] Tank status: Oxygen - {m_hasOxygen}, Hydrogen - {m_hasHydrogen}", 2); if (m_hasOxygen && m_o2RefillLevel > 0f) { if (oxygen + m_o2RefillPerTick <= 1f) { MyVisualScriptLogicProvider.SetPlayersOxygenLevel(player.IdentityId, oxygen + m_o2RefillPerTick); } else { MyVisualScriptLogicProvider.SetPlayersOxygenLevel(player.IdentityId, 1f); oxygenRefilled = true; } } else { oxygenRefilled = true; } if (m_hasHydrogen && m_h2RefillLevel > 0f) { if (hydrogen + m_h2RefillPerTick <= 1f) { MyVisualScriptLogicProvider.SetPlayersHydrogenLevel(player.IdentityId, hydrogen + m_h2RefillPerTick); } else { MyVisualScriptLogicProvider.SetPlayersHydrogenLevel(player.IdentityId, 1f); hydrogenRefilled = true; } } else { hydrogenRefilled = true; } if (m_energyRefillLevel > 0f) { if (energy + m_energyRefillPerTick <= 1f) { MyVisualScriptLogicProvider.SetPlayersEnergyLevel(player.IdentityId, energy + m_energyRefillPerTick); } else { MyVisualScriptLogicProvider.SetPlayersEnergyLevel(player.IdentityId, 1f); energyRefilled = true; } } else { energyRefilled = true; } if (oxygenRefilled && hydrogenRefilled && energyRefilled) { return(true); } return(false); }