Exemple #1
0
        public static void HandleResetPosition(Session session, params string[] parameters)
        {
            try
            {
                // if (parameters.Length > 1)
                //    if (parameters[1] != "")
                //        scale = float.Parse(parameters[1]);

                string message = "Error saving position.";

                PositionType type = new PositionType();

                if (Enum.TryParse(parameters[0], true, out type))
                {
                    if (Enum.IsDefined(typeof(PositionType), type))
                    {
                        message = $"Saving position {Enum.GetName(typeof(PositionType), type)}";
                        session.Player.SetCharacterPosition(type, CharacterPositionExtensions.InvalidPosition(session.Id, type));
                    }
                }

                float scale          = 1f;
                var   effectEvent    = new GameMessageScript(session.Player.Guid, Network.Enum.PlayScript.AttribDownRed, scale);
                var   sysChatMessage = new GameMessageSystemChat(message, ChatMessageType.Broadcast);
                session.Network.EnqueueSend(effectEvent, sysChatMessage);
            }
            catch (Exception)
            {
                // Do Nothing
            }
        }
        /// <summary>
        /// Returns an available character positions from the database that match the PositionType.
        /// If no position is found, an invalid position is returned.
        /// </summary>
        public Position GetCharacterPosition(Character character, PositionType positionType)
        {
            Dictionary <string, object> criteria = new Dictionary <string, object>();

            criteria.Add("character_id", character.Id);
            criteria.Add("positionType", positionType);
            Position newPosition = CharacterPositionExtensions.InvalidPosition(character.Id, positionType);

            if (ExecuteConstructedGetStatement(CharacterPreparedStatement.CharacterPositionSelect, typeof(Position), criteria, newPosition))
            {
                return(newPosition);
            }
            return(newPosition = CharacterPositionExtensions.InvalidPosition(character.Id, PositionType.Undef));
        }