Exemple #1
0
 private static void HandleSetH2LevelForPlayer(ulong sender, long identity, float value)
 {
     MyVisualScriptLogicProvider.SetPlayersHydrogenLevel(identity, value);
     if (NetworkHandlerSystem.IsServer && NetworkHandlerSystem.IsMultiplayer)
     {
         actionSetH2LevelForPlayer.CallToOthers(identity, value);
     }
 }
Exemple #2
0
        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!");
            }
        }
    }
Exemple #4
0
    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);
            }
        }
    }
Exemple #5
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);
        }