private bool ClearPlayerFromCache(
            RequestCache requestCache,
            out string result_code)
        {
            bool success;

            if (m_character_state.game_id != -1)
            {
                World world =
                    WorldCache.GetWorld(
                        requestCache.DatabaseContext,
                        requestCache.SessionCache,
                        m_character_state.game_id);

                if (world != null)
                {
                    requestCache.RemovePlayer(
                        new RoomKey(
                            m_character_state.game_id,
                            m_character_state.room_x,
                            m_character_state.room_y,
                            m_character_state.room_z),
                        m_character_id);

                    result_code = SuccessMessages.GENERAL_SUCCESS;
                    success     = true;
                }
                else
                {
                    result_code = ErrorMessages.INVALID_WORLD;
                    success     = false;
                }
            }
            else
            {
                // Character not bound to game, thus won't be in the cache
                result_code = SuccessMessages.GENERAL_SUCCESS;
                success     = true;
            }

            return(success);
        }
Esempio n. 2
0
 public World GetWorld(
     int game_id)
 {
     return(WorldCache.GetWorld(m_dbContext, m_sessionCache, game_id));
 }